当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js fs.chmod(path, mode, callback)用法及代码示例


fs.chmod(path, mode, callback)

历史
版本变化
v18.0.0

将无效回调传递给 callback 参数现在会抛出 ERR_INVALID_ARG_TYPE 而不是 ERR_INVALID_CALLBACK

v10.0.0

callback 参数不再是可选的。不通过它将在运行时抛出TypeError

v7.6.0

path 参数可以是使用 file: 协议的 WHATWG URL 对象。

v7.0.0

callback 参数不再是可选的。不通过它将发出带有 ID DEP0013 的弃用警告。

v0.1.30

添加于:v0.1.30


参数

异步更改文件的权限。除了可能的异常之外,没有为完成回调提供任何参数。

有关更多详细信息,请参阅 POSIX chmod(2) 文档。

import { chmod } from 'node:fs';

chmod('my_file.txt', 0o775, (err) => {
  if (err) throw err;
  console.log('The permissions for file "my_file.txt" have been changed!');
});

文件模式#

fs.chmod()fs.chmodSync() 方法中使用的 mode 参数是使用以下常量的逻辑 OR 创建的数字位掩码:

持续的八进制说明
fs.constants.S_IRUSR0o400所有者阅读
fs.constants.S_IWUSR0o200楼主写的
fs.constants.S_IXUSR0o100按所有者执行/搜索
fs.constants.S_IRGRP0o40分组阅读
fs.constants.S_IWGRP0o20按组写
fs.constants.S_IXGRP0o10按组执行/搜索
fs.constants.S_IROTH0o4 other 读
fs.constants.S_IWOTH0o2 other 写的
fs.constants.S_IXOTH0o1由他人执行/搜索

构造 mode 的一种更简单的方法是使用三个八进制数字的序列(例如 765 )。 left-most 数字(示例中为 7)指定文件所有者的权限。中间数字(示例中为6)指定组的权限。 right-most 数字(示例中为 5)指定其他人的权限。

数字说明
7读、写和执行
6读和写
5读取并执行
4只读
3编写和执行
2只写
1只执行
0没有许可

例如,八进制值 0o765 表示:

  • 所有者可以读取、写入和执行文件。
  • 该组可以读取和写入文件。
  • 其他人可以读取并执行该文件。

在需要文件模式的情况下使用原始数字时,任何大于 0o777 的值都可能导致不支持一致工作的特定于平台的行为。因此,S_ISVTXS_ISGIDS_ISUID 等常量不会在 fs.constants 中公开。

注意事项:在Windows上只能更改写权限,不区分组、所有者或其他权限。

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 fs.chmod(path, mode, callback)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。