我的chmod
命令有问题。我有一个带有 sgid、suid 和粘性位的目录。如果我再跑chmod u=rwx {dirname}
还是chmod g=rwx {dirname}
sgid和suid都还在。但是如果我运行chmod o=rwx
粘性位删除。谁能解释它为什么会发生?
我的chmod
命令有问题。我有一个带有 sgid、suid 和粘性位的目录。如果我再跑chmod u=rwx {dirname}
还是chmod g=rwx {dirname}
sgid和suid都还在。但是如果我运行chmod o=rwx
粘性位删除。谁能解释它为什么会发生?
从
man chmod
Debian 10 开始:没有对粘性位做出这样的明确保证。所以行为与文档相匹配。
为什么
chmod
设计成这样是一个更困难的问题。这可能是因为 set-user-ID 或 set-group-ID 位可能会授予额外的权限,而目录上的粘滞位会导致进一步的限制:如果 suid/sgid 位被意外从目录中删除,用户可能会也可能不会能够将它们重新打开(例如,用户拥有的目录,其中包含用户不是其成员的组),并且可能需要请求系统管理员提供帮助;但在粘性位的情况下,用户可以根据需要简单地将其重新打开。