我认为我对文件权限有相当扎实的理解,但有一组特定的权限包含我不理解的元素。
权限集 0755 应显示为rwx-rx-rx
但在我的终端 0755 显示为rwx-rx-x
为什么“其他/世界”位置上的 5 只显示为执行,而“组”权限为 5,却显示为读取/执行?
我已经在 Google 上寻找答案,但我发现每个类似的问题都用权限表的解释来回答,但从未解决 5 的两个不同值。
答案1
权限值是八进制的,代表 3 个 3 位字段。5
只有一个值0b101
。您尝试设置的权限被您的umask
值屏蔽了,我推测是026
:
Value you're trying to set: 755 or 0b111101101
Umask 026 or 0b000010110
-----------------------------------------------
Actual bits used by `chmod` 751 or 0b111101001
Going back to rwx, the bits are rwxrwxrwx
And the actual permissions set are rwxr-x--x
看man umask
。
权限中的三位数字(还有更多,但这是高级课程)指定文件所有者(第一个八进制数字)、具有与文件相同 GID 的用户(第二个八进制数字)和其他所有人(非所有者、不是同一组 ID)(第三个八进制数字)的文件访问权限。