fs.chmod()
和 fs.chmodSync()
方法中使用的 mode
参数是使用以下常量的逻辑或运算创建的数字型位掩码:
常量 | 八进制值 | 说明 |
---|---|---|
fs.constants.S_IRUSR |
0o400 |
所有者可读 |
fs.constants.S_IWUSR |
0o200 |
所有者可写 |
fs.constants.S_IXUSR |
0o100 |
所有者可执行或搜索 |
fs.constants.S_IRGRP |
0o40 |
群组可读 |
fs.constants.S_IWGRP |
0o20 |
群组可写 |
fs.constants.S_IXGRP |
0o10 |
群组可执行或搜索 |
fs.constants.S_IROTH |
0o4 |
其他人可读 |
fs.constants.S_IWOTH |
0o2 |
其他人可写 |
fs.constants.S_IXOTH |
0o1 |
其他人可执行或搜索 |
构造 mode
更简单的方法是使用三个八进制数字的序列( 例如 765
)。
最左边的数字(示例中的 7
)指定文件所有者的权限。
中间的数字(示例中的 6
)指定群组的权限。
最右边的数字(示例中的 5
)指定其他人的权限。
数字 | 说明 |
---|---|
7 |
可读、可写、可执行 |
6 |
可读、可写 |
5 |
可读、可执行 |
4 |
只读 |
3 |
可写、可执行 |
2 |
只写 |
1 |
只可执行 |
0 |
没有权限 |
例如,八进制值 0o765
表示:
- 所有者可以读取、写入和执行该文件。
- 群组可以读和写入该文件。
- 其他人可以读取和执行该文件。
当使用期望的文件模式的原始数字时,任何大于 0o777
的值都可能导致不支持一致的特定于平台的行为。
因此,诸如 S_ISVTX
、S_ISGID
或 S_ISUID
之类的常量不会在 fs.constants
中公开。
注意事项:在 Windows 上,只能更改写入权限,并且不会实现群组、所有者或其他人的权限之间的区别。