AIX LIBPATH和STICKY BIT Set

时间:2010-11-24 17:41:33

标签: aix

我有可执行程序以正常方式运行良好。它加载一个共享库。并在启动该exe之前设置LIBPATH。 现在,如果我将exe的权限更改为root所拥有并设置了粘滞位,则无法加载共享库。 如果我在/ usr / lib中创建链接到共享库,一切正常。

此问题的任何原因和解决方案。

1 个答案:

答案 0 :(得分:6)

这是一个安全功能 - 在运行粘滞位设置时,不会使用来自用户环境的LIBPATH。如果它允许您对其上设置了suid的可执行文件使用用户集LIBPATH,则有人可能会加载恶意库以破坏系统。

另请注意,Linux系统中也存在此安全功能 - 运行粘滞位可执行文件时,将忽略用户环境中的LD_LIBRARY_PATH

可能的解决方案

1 - 一种解决方案是授予用户sudo权限来执行该命令,在这种情况下,您可以执行类似的操作......

sudo LIBPATH="..." executable

2 - 另一种解决方案是创建一个设置LIBPATH然后执行可执行文件的shell脚本,并在shell脚本上设置粘滞位,就像这样......

#/bin/sh

LIBPATH="/whatever/path" /path/to/executable