当运行启用位的程序时,我观察到一个奇怪的行为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)。