【发布时间】:2012-04-10 07:28:38
【问题描述】:
我有一个二进制文件(名称为 bmu),在调用 statfs 函数时需要 root 权限。
操作系统是SuSE Linux 2.6.16.60-0.21-smp
用户是 test 运行 bmu 并且是非 root 用户
test@SuSE:~> id
uid=1056(test) gid=0(root) groups=0(root),16(dialout),33(video)
我已经测试了 3 种场景。
--->场景1
如果bmu没有配置SUID,可以执行bmu但调用会失败。
-rwxr-xr-x 1 test root 14389879 2012-04-10 10:38 bmu
--->场景2
如果bmu配置了SUID,当bmu通过test运行时会失败,提示“DBMS API Library 'libclntsh.so' loading failed”
-rwsr-sr-x 1 root root 14389879 2012-04-10 10:38 bmu
--->场景3
如果 bmu 由 root 运行,它将被成功执行。当然,无论是否配置了 SUID。
-rwxr-xr-x 1 root root 14389879 2012-04-10 10:38 bmu
-rwsr-sr-x 1 root root 14389879 2012-04-10 10:38 bmu
从场景二看,好像是LD_LIBRARY_PATH配置的问题,但从场景一看,这应该不是LD_LIBRARY_PATH配置的问题。从场景3中,我们可以发现bmu是root可执行的。
只有场景2有问题,所以有人可以提出一些建议吗?谢谢!
【问题讨论】: