![我如何知道 SRPM 包是否含有需要以 root 身份运行的组件?](https://linux22.com/image/177803/%E6%88%91%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%20SRPM%20%E5%8C%85%E6%98%AF%E5%90%A6%E5%90%AB%E6%9C%89%E9%9C%80%E8%A6%81%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E7%9A%84%E7%BB%84%E4%BB%B6%EF%BC%9F.png)
有些软件包安装的软件需要以 root 权限运行,例如 sudo 软件包。其他的,例如 vim,本质上不需要以 root 权限运行。
是否有一种通用方法可以通过查看 SRPM 源中的规范文件、配置文件或其他文件来判断软件包是否将安装以 root 权限运行或 setuid 的软件,而不先在系统上实际安装二进制 rpm 包?
答案1
无法找到 SRC.RPM 中的文件。因为 %build 和 %install 部分中的脚本以及 %files 部分中的标签可以做无数难以检测的事情。唯一的方法是构建二进制包,然后:
rpmdev-extract $PACKAGE.rpm
cd $PACKAGE
find . -perm /4000
find . -perm /2000
第一个find
查找 SUID 文件,第二个查找 SGID 文件。
为了保持高度正确,您应该检查 的输出,rpm -qp --scripts $PACKAGE.rpm
因为邪恶的打包程序也可以隐藏chmod
在那里。