使用sudo时无法访问共享对象

时间:2013-06-27 22:04:23

标签: sudo player-stage

我已经安装了一个程序Player,现在我正在尝试运行player命令。 播放器需要.cfg文件作为输入,例如

player create.cfg

我注意到我能够像普通用户一样运行上述命令,但是当我以root身份运行 时,

sudo player create.cfg

我收到以下错误:

error while loading shared libraries: libplayerdrivers.so.3.0: cannot open shared object file: No such file or directory

我的问题是,为什么命令在以普通用户身份运行时会起作用,但在以root用户身份运行时?我会理解是否反过来。是什么给了什么?

更多细节

我知道错误通常意味着LD_LIBRARY_PATH设置不正确。有问题的共享对象位于/usr/local/lib,因此我将命令

EXPORT LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

在我的.bashrc文件中并获取它。但是使用player运行sudo命令仍然无法找到它。

执行ls -l /usr/local/lib | grep libplayerdrivers会得到以下输出:

lrwxrwxrwx 1 root root 23 Jun 27 16:34 libplayerdrivers.so -> libplayerdrivers.so.3.0
lrwxrwxrwx 1 root root 25 Jun 27 16:28 libplayerdrivers.so.3.0 -> libplayerdrivers.so.3.0.2
-rw-r--r-- 1 root root 3042066 Jun 27 16:28 libplayerdrivers.so.3.0.2

1 个答案:

答案 0 :(得分:0)

sudo会覆盖LD_LIBRARY_PATH,因为它存在安全风险。