为什么 chmod 对于 5 有两个不同的含义?

为什么 chmod 对于 5 有两个不同的含义?

我认为我对文件权限有相当扎实的理解,但有一组特定的权限包含我不理解的元素。

权限集 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)(第三个八进制数字)的文件访问权限。

相关内容