sudo cmake install
또는 명령을 사용하여 Debian(Buster) 시스템에 프로젝트를 설치하면 sudo make install
바이너리가 내부에 배치되지만 /usr/local/bin
PATH 변수가 올바르게 설정되었음에도 불구하고 bash 또는 Fish는 바이너리 파일 명령을 재부팅한 후에도 이런 방식으로 설치된 파일을 찾을 수 없습니다.
cmake
지금까지 이런 일이 일어났습니다 nvim
. 예를 들어 nvim
소스에서 빌드하는 방법에 대한 지침을 따랐습니다.
- Git을 사용하여 저장소를 복제합니다.
- CMAKE_BUILD_TYPE=RELEASE로 설정
- sudo 설치
이제 를 실행하면 nvim
명령을 찾을 수 없지만 실행하면 sudo nvim
바이너리가 올바르게 시작됩니다.
sudo 권한 없이 완벽하게 실행되는 내부 바이너리의 파일 권한을 비교했는데 /usr/bin
내부 바이너리와 정확히 동일합니다 /usr/local/bin
.
-rwxr-xr-x 1 root root
.
내가 뭘 잘못하고 있는 걸까요? /usr/bin
실행 파일의 바이너리에는 sudo가 없고 소스에서 설치된 파일에는 sudo가 없는 이유는 무엇입니까 /usr/local/bin
?
이것은 내 경로 변수입니다.
/usr/local/bin:/usr/bin:/bin:/usr/games
추가 정보: 실행하면 /usr/local/bin/nvim
다음이 출력됩니다.
fish: The file “/usr/local/bin/nvim” is not executable by this user
실행하면 type -a nvim
출력은 다음과 같습니다.
type: Could not find 'nvim'
실행하면 sudo ./pathlld /usr/local/bin/nvim
다음과 같은 결과가 나타납니다.
drwxr-xr-x 19 root root 4096 Dec 22 12:17 /
/dev/nvme0n1p2 on / type ext4 (rw,relatime)
drwxr-xr-x 14 root root 4096 May 5 13:19 /usr
drwxr-xr-x 7 root root 4096 Mar 24 15:51 /usr/local
drwx------ 2 root root 4096 May 5 14:21 /usr/local/bin
-rwxr-xr-x 1 root root 10319072 May 5 14:21 /usr/local/bin/nvim
저는 "Siemens Industrial Operating System"이라는 Siemens의 맞춤형 운영 체제를 실행하고 있습니다. 기본적으로 라이브 패치가 포함된 Debian Buster입니다.
답변1
문제는 이것이다:
drwx------ 2 root root 4096 May 5 14:21 /usr/local/bin
그룹 및 기타 그룹에는 실행 및 읽기 권한이 없습니다 /usr/local/bin
. 루트로 실행:
chmod 755 /usr/local/bin
이 디렉터리에 대한 표준 권한을 복원합니다.