使用数字模式清除setuid权限

使用数字模式清除setuid权限

在 Ubuntu Linux 上,我有一个设置了 setuid 位 ( drwsr-xr-x) 的目录,我想取消设置。

也不是chmod 755也不chmod 0755chmod 00755(我虽然可能第一个 0 被解释为“这是八进制”)清除了 setuid 位。然而,chmod u-s做到了。

清除 setuid 位的正确数字模式是什么?

答案1

有趣的是。使用 GNU 这似乎是不可能的chmod,这是一个功能。从info进入chmod我的系统开始;请注意,虽然设置位的条目引用符号和数字模式,但清除它们的条目仅引用符号 ( ug-s) 模式:

27.4 目录以及 Set-User-ID 和 Set-Group-ID 位

这些便利机制依赖于目录的 set-user-ID 和 set-group-ID 位。如果像chmod' and mkdir' 这样的命令经常清除目录上的这些位,那么该机制将不太方便,并且共享文件将变得更加困难。因此,像“chmod”这样的命令不会影响目录的 set-user-ID 或 set-group-ID 位,除非用户以符号模式特别提及它们,或者以数字模式设置它们。

[...]

如果您想尝试设置这些位,则必须在符号或数字模式中明确提及它们,例如:

[...]

如果您想尝试清除这些位,则必须以符号模式明确提及它们,例如:

[...]

此行为是 GNU 扩展。可移植脚本不应依赖于设置或清除目录上这些位的请求,因为 POSIX 允许实现忽略这些请求。

相关内容