我对chmod命令有问题。我有一个带有sgid,suid和粘滞位的目录。如果然后运行chmod u=rwx {dirname}或chmod g=rwx {dirname},sgid和suid仍在运行。但是如果我运行chmod o=rwx,粘性位删除。有人能解释为什么会发生这种事吗?
发布于 2020-01-02 11:21:57
来自Debian 10的man chmod:
对于目录,chmod保留set-user-ID和set-group-ID位,除非您显式地指定了其他位。您可以使用符号模式(如
u+s和g-s)设置或清除比特。要用数字模式清除目录的这些位数,需要额外的前导零,或者前导=类似于00755或=755
对于粘性位没有这样明确的保证。因此,这些行为与文档相匹配。
为什么chmod会被设计成这样,这是一个更困难的问题。
这可能是因为set- user -ID或set- group -ID位可能会授予额外的特权,而目录上的粘滞位会造成进一步的限制:如果suid/sgid位被意外地从目录中移除,用户可能会或者可能无法将它们放回目录中(例如,用户拥有的目录与用户不是成员的组),并且可能需要向系统管理员请求帮助;但在粘滞位的情况下,用户可以根据需要简单地切换它。
https://unix.stackexchange.com/questions/559914
复制相似问题