프로그램 파일이 / usr / bin에 있지만 사용할 수 없습니다


15

분명히 내 파일은 /usr/bin

$ ls /usr/bin/ngrok
/usr/bin/ngrok

그러나 시도 할 때 chown오류가 발생합니다.

$ sudo chown my_user:users /usr/bin/ngrok
chown: cannot dereference '/usr/bin/ngrok': No such file or directory

추가 실행 시도도 실패합니다!

$ ngrok
bash: ngrok: command not found
$ sudo /usr/bin/ngrok
sudo: /usr/bin/ngrok: command not found

여기서 무슨 일이 일어나고 있습니까?


'/ usr / bin /'이 PATH에 없으면 세 번째 포인트도 발생할 수 있습니다. 로 /usr/bin/ngrok다음과 같은 경우를 완전히 대칭으로 테스트해야합니다 sudo.
Patrick Mevzek

답변:


52

/usr/bin/ngrok아무데도 가리 키지 않거나 존재하지 않는 파일을 가리키는 심볼릭 링크가됩니다. 로 확인하십시오 ls -l.


13
"역 참조 할 수 없음"오류는 여기서 경품입니다. 일반 파일을 "역 참조"하지 않고 엽니 ​​다.
케빈

1
또는 readlink -f /usr/bin/ngrok링크가 가리키는 위치를 찾으십시오.
Eric Duminil

또는namei -l /usr/bin/ngrok
hanshenrik

4

chown오류가 주어지면 Sven이 대답 한 것처럼 심볼릭 링크 일 가능성이 큽니다 . 그러나 파일이 존재하고 링크가 아닌 경우에 누군가가 여기에 도달하지만 명령을 찾을 수 없음 / 파일을 찾을 수없는 오류가 발생하는 경우를 대비하여 실행 파일이 동적으로 링크되고 어떤 이유로 라이브러리를로드 할 수 없습니다 :

  • 라이브러리 누락 (실행 ldd 바이너리에서 하여 해당 를 확인)
  • 로더 누락
  • 의류라이브러리 또는 로더에 대한 액세스를 거부하는
  • ...

또한 스크립트의 경우 shebang의 인터프리터를 비슷한 이유로 실행할 수없는 경우 동일한 오류가 발생합니다.


더 혼란 스럽지만 실제로는 "그러한 파일이나 디렉토리가 없습니다"라는 수수께끼가 될 수 있습니다.
rackandboneman

0

심볼릭 링크 자체의 소유권을 변경할 수도 있습니다.

chown -h my_user:users /usr/bin/ngrok

대상 파일의 소유권을 변경하지 않으려는 경우 (또는 권한이없는 경우)


2
이것이 어떻게 질문에 대답하는지 확실하지 않습니다. 문제는 "여기서 무슨 일이 있습니까?" 문제는 대상 파일이 존재하지 않는다는 것입니다. 이것은 문제를 해결하지 못하며 질문에 대답하지 않습니다.
wizzwizz4

1
@ wizzwizz4 나는 또한 질문이 "파일이 존재한다 (심볼릭 링크는 파일이다). 왜 다른 말을하고 왜 소유권을 바꿀 수 없는가?" 이 답변은 그 해석을 다룹니다. Sven은 OP가 대상 파일로 작업하기를 원한다고 가정합니다.
JoL

1
@muru 심볼릭 링크에 대한 권한이없는 Linux 시스템에는 적용되지 않습니다. 사실, 리눅스는 몇 가지 중 하나입니다 (유일한?) POSIX 계열의 OS 않습니다 세트 심볼릭 링크의 소유자 / 그룹 기능이 있습니다. Linux chown(1)매뉴얼 페이지를 참조하십시오 . 가능한 이유 리눅스는이이 논의된다 않습니다 unix.stackexchange.com/questions/33180/...
앤드류 헨레에게

2
@AndrewHenle 그리고 어떻게 도움이 되나요? 실행시 적용된 권한이 항상 대상 파일이므로 symlink의 소유자 / 그룹을 변경해도 아무런 차이가 없습니다. 따라서 누구나 소유 한 링크를 가질 수 있지만 해당 링크의 소유권을 변경해도 링크를 실행할 때 고려되는 권한과 전혀 차이가 없습니다.
muru

1
@muru 그리고 어떻게 도움이됩니까? 읽기 이미 연결 문제 가 특별히 요청 이후를 : "그 소유자 또는 심볼릭 링크 (심볼릭 링크)의 그룹 소유자를 변경하는 것이 가능 리눅스에서. 사람이 그렇게 할 이유 심볼릭 링크의 권한이 아니기 때문에 내가 궁금 해서요 파일을 통해 파일에 액세스 할 때 사용
Andrew Henle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.