我最近在想三位和四位数字文件权限有什么区别。我通过运行获取数字权限stat --format "%a" $file_name
。0644 和 644 有什么区别?
答案1
四位数许可证的第一位数字是设置用户 ID (4),设置群组 ID(2和黏(1)三位数权限相当于四位数权限,只是第一位设置为零。因此:
- 0644 与 644 完全相同。
- 1644 与 644 类似,但也设置了粘着位
- 4644 与 644 类似,但是也设置了设置用户 ID 位。
第四位权限的使用示例
如果执行了设置了用户 ID 的文件,则该文件将被视为由文件所有者执行,而不是由执行文件的用户执行。因此,例如,/bin/mount
通常由 root 拥有并具有权限 4755,其中 4 表示,即使由普通用户执行,它也将以所有者 (root) 的权限运行。
在目录上设置组 ID 对于共享文件很有用。
粘性位用于目录,/tmp
以便所有用户都可以创建文件,但阻止非所有者删除其他人的文件。因此,的权限/tmp
通常为 1777,其中 1 表示设置了粘性位。
文档
从man chmod
:
数字模式是一到四个八进制数字(0-7),通过将值为 4、2 和 1 的位相加而得出。省略的数字假定为前导零。第一个数字选择设置用户 ID(4)和设置组 ID(2)以及限制删除或粘性(1)属性。第二个数字选择拥有该文件的用户的权限:读取(4)、写入(2)和执行(1);第三个数字选择文件组中其他用户的权限,具有相同的值;第四个数字选择不在文件组中的其他用户的权限,具有相同的值。