关于SUID/SGID特殊权限及/usr/bin/passwd执行权限的疑问
关于SUID大写
S权限位与passwd执行的疑问解答 首先明确两个核心点:
- 大写
S的含义:当设置了SUID位,但文件所有者没有x(执行)权限时,权限位会显示为大写S——这是针对普通用户的权限限制,但root不受该限制。 - Linux系统中,root拥有最高权限,文件权限对root几乎无效:不管文件是否标注执行权限,root都能直接执行它。
回到你的问题:当/usr/bin/passwd被改成-rwSr-xr-x时,所有者(root)的权限是rw-、无x权限,但SUID位已设置。此时普通用户执行passwd时,SUID会让用户以root身份运行该二进制文件;而root可以无视文件本身的执行权限限制,所以命令依然能正常运行,完成密码修改操作。
本质就是:SUID赋予普通用户root身份的执行权限,而root不受文件执行权限约束,哪怕文件所有者权限里没有x,依然能正常执行。
内容的提问来源于stack exchange,提问作者joe
相关产品推荐
相关产品推荐

