用户无权访问共享库

用户无权访问共享库

arm-none-eabi-gdb我使用 Debian,但以用户身份执行时遇到问题。我收到以下消息:arm-none-eabi-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory。运行它的唯一方法是输入sudo arm-none-eabi-gdb。我检查了库 libncurses.so.5 ,发现用户没有执行权限,所以我将其更改为chmod.现在所有用户都可以执行它,但在没有 sudo 的情况下调用时我仍然收到错误arm-none-eabi-gdb

谁能解释一下阻止我的机制是什么?

答案1

问题解决了。发生该arm-none-eabi-gdb命令正在执行位于不同目录中的 gdb 程序sudo arm-none-eabi-gdb(令人惊讶的是我有 2 个 arm-none-eabi-gdb)。strace帮助我解决了这个难题。

答案2

看来是权限问题。这可以解释为什么 with sudo(即以“root”身份工作)可以毫无问题地查找和使用共享库,但普通用户却不能。

我假设您有一个libncurses.so.5到系统中使用的实际版本的符号链接。其结果ls -l对于了解链接指向的位置及其模式(权限)以及检查路径的权限非常有帮助。

库上的符号链接可以正常工作,只要它们跟踪的最终目标存在并且可以访问

相关内容