![setuid 可执行文件的环境设置](https://linux22.com/image/25671/setuid%20%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E7%9A%84%E7%8E%AF%E5%A2%83%E8%AE%BE%E7%BD%AE.png)
当运行启用位的程序时,我观察到一个奇怪的行为setuid
。
程序由设置了 setuid 位foo
的用户拥有。bar
用户execbar
运行foo
foo
报告动态库之一无法访问。
有问题的动态库位于正常ld.so.conf
搜索路径之外的目录中,因此它是通过LD_LIBRARY_PATH
为用户设置的execbar
问题是:运行一个程序是否会setuid
清除用户设置的环境execbar
?
答案1
不会,但是动态链接器在使用 setuid 运行时会忽略一些环境变量,否则您可以让它以目标用户身份加载和运行任何代码。这适用于LD_LIBRARY_PATH
,LD_PRELOAD
甚至更多。看ld.so(8)。