setuid 可执行文件的环境设置

setuid 可执行文件的环境设置

当运行启用位的程序时,我观察到一个奇怪的行为setuid

程序由设置了 setuid 位foo的用户拥有。bar

用户execbar运行foo

foo报告动态库之一无法访问。

有问题的动态库位于正常ld.so.conf搜索路径之外的目录中,因此它是通过LD_LIBRARY_PATH为用户设置的execbar

问题是:运行一个程序是否会setuid清除用户设置的环境execbar

答案1

不会,但是动态链接器在使用 setuid 运行时会忽略一些环境变量,否则您可以让它以目标用户身份加载和运行任何代码。这适用于LD_LIBRARY_PATHLD_PRELOAD甚至更多。看ld.so(8)

相关内容