Chmod数字权限表示法UNIX/Linux命令
时间:2020-01-09 10:45:56 来源:igfitidea点击:
chmod命令根据模式更改每个给定文件的文件模式位,该模式位可以是要进行的更改的符号表示,也可以是代表新模式位的位模式的八进制数。
chmod永远不会更改符号链接的权限; chmod系统调用无法更改其权限。
这是没有问题的,因为从不使用符号链接的权限。
但是,对于命令行上列出的每个符号链接,chmod都会更改指向文件的权限。
相反,chmod会忽略在递归目录遍历期间遇到的符号链接。
UNIX/Linux chmod命令
通过对以下零个或者多个进行"或者"运算而创建的位掩码:
Octal模式编号 | 描述 |
---|---|
0400 | 允许所有者阅读 |
0200 | 允许所有者写 |
0100 | 允许所有者执行文件并在目录中搜索 |
0040 | 允许小组成员阅读 |
0020 | 允许小组成员写作 |
0010 | 允许组成员执行文件并在目录中搜索 |
0004 | 允许所有人或者世界阅读 |
0002 | 允许每个人或者全世界写作 |
0001 | 允许每个人或者全世界执行文件并在目录中搜索 |
1000 | 设置粘性位 |
2000 | 设置setgid位 |
4000 | 设置setuid位 |
上述模式编号中的第一位数字用于设置setuid,setgid或者粘滞位。
所有者,组和世界的每个剩余数字设置权限如下:
- 4 = r(读取)
- 2 = w(写)
- 1 = x(执行)
因此,您最终需要通过添加上述数字来为用户创建三元组。
例如
- 要表示rwx三元组,请使用4 + 2 + 1 = 7
- 代表rw-三胞胎使用4 + 2 + 0 = 6
- 要表示r三胞胎,请使用4 + 0 + 0 = 4
- 要表示r-x三元组,请使用4 + 0 + 1 = 5
要仅授予用户完全权限,请按以下方式使用它:
chmod 0700 file.txt
- 0使用set setuid,setgid或者粘滞位
- 7所有者的完全权限(rwx = 4 + 2 + 1 = 7)
- 0删除组权限(= 0 + 0 + 0 = 0)
- 0删除世界权限(= 0 + 0 + 0 = 0)