1

我已经安装了一个程序 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
4

1 回答 1

0

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

于 2013-06-27T22:07:21.880 回答