我是 unix 新手,我试图找出执行权限和特殊权限之间的区别。例如,“su”命令具有权限
-rws-r-xr-x
在该权限下,用户可以以 root 身份执行该命令。
我已经改为
-rwx-r-xr-x
使用 chmod 命令,在此权限下我也可以执行该命令。这两个权限之间有什么区别。
答案1
两者并不相互排斥。这封信s
这里的意思是“是可执行的”和具有‘setuid’位”。(如果文件有仅有的'setuid',但不是可执行文件,你会看到一个大写的S
反而。)
正如您所指出的,'setuid' 位用于允许用户以 root 身份执行命令(更准确地说,以命令的所有者身份执行命令,但 root 是最常见的身份)。它通常设置在那些需要访问 root 专属功能的程序上。
在这种情况下,/bin/su
需要 root 权限才能切换用户帐户。如果删除“setuid”位,您仍然可以执行该程序,但它将无法按预期工作,因为 1) 无法检查其他用户的密码,因此您总是会收到“身份验证失败”的提示,2) 无法切换到其他用户的帐户,因此没有人可以su root
再使用。