我无法设置其他人的 setuid 位。为什么?有安全锁吗?
$ ls -l
-rwxrwxr-x 1 allexj allexj 16784 Mar 11 17:30 a.out
$ chmod o=+s a.out
$ ls -l
-rwxrwx--- 1 allexj allexj 16784 Mar 11 17:30 a.out
man chmod
有一个关于 setuid 和 setgid 的特殊部分。
但首先,只要仔细看看名字:set u id, set g id。
对于其他人,应该设置o id 位。但它不存在,因为拥有这样一点没有任何意义。
传统的 Unix 权限由 12 位组成
这些额外的位允许您启用三个“附加模型” [1]:
所以,既然我们知道这些位如何在现代系统上运行,请问自己一个问题:如果第 12 位不是专用于上述行为,如果我们将 setuid 位的行为应用于“其他”用户,它会是什么样子? 使用 setuid 和 setgit 很明显,但是“允许任何用户将其有效用户 ID 用作任何其他用户的 ID”是什么意思?对我来说,这看起来像是除以零,这没有逻辑意义,因为答案可能是“有效的用户 ID 将同时是任何和所有其他可能的用户 ID”。没有安全锁或影响,拥有这样的东西没有任何意义。最初的 Unix 设计者可能没有
希望这可以帮助。