AIX LIBPATH和STICKY BIT Set

Avi*_*ash 2 aix

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

这个问题的任何原因和解决方案.

wkl*_*wkl 6

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

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

可能的解决方案

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

sudo LIBPATH="..." executable

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

#/bin/sh

LIBPATH="/whatever/path" /path/to/executable
Run Code Online (Sandbox Code Playgroud)