사용자에게 공유 라이브러리에 액세스할 수 있는 권한이 없습니다.

사용자에게 공유 라이브러리에 액세스할 수 있는 권한이 없습니다.

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(놀랍게도 arm-none-eabi-gdb가 2개 있습니다). strace이 문제를 해결하는 데 도움이되었습니다.

답변2

권한 문제인 것 같습니다. 이는 with sudo(즉, "루트"로 작업)가 문제 없이 공유 라이브러리를 찾아 사용할 수 있지만 일반 사용자는 사용할 수 없는 이유를 설명합니다 .

libncurses.so.5귀하의 시스템에서 사용되는 실제 버전에 대한 심볼릭 링크 가 있다고 가정합니다 . 결과는 ls -l링크가 가리키는 위치와 해당 모드(권한)를 이해하고 경로의 권한을 확인하는 데 매우 도움이 됩니다.

라이브러리의 기호 링크는 추적하는 최종 대상이 존재하고접근 가능.

관련 정보