![Bash에서 경로를 올바르게 설정한 후 명령을 찾을 수 없습니다.](https://linux55.com/image/105325/Bash%EC%97%90%EC%84%9C%20%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EC%98%AC%EB%B0%94%EB%A5%B4%EA%B2%8C%20%EC%84%A4%EC%A0%95%ED%95%9C%20%ED%9B%84%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
이전과 같이 경로를 올바르게 설정했지만 명령을 찾을 수 없다는 오류가 발생합니다.
$echo $PATH
/usr/local/bin/node
따라서 매번 전체 경로를 사용하여 노드를 실행해야 하며 sudo 없이 실행하면 항상 "권한 거부" 오류가 발생합니다.
$sudo /usr/local/bin/node ***
문제가 무엇인지 아시는 분 계신가요?
답변1
$PATH
에서 으로 /usr/local/bin/node
줄 이세요 /usr/local/bin
.
이 $PATH
변수는 실행 파일이 포함된 디렉터리의 이름을 저장하는 데 사용됩니다.아니요실행 파일을 저장하는 데 사용되는 모든 이름이내에그 디렉토리. 이 file
명령은 차이점을 보여줍니다.
file /usr/local/bin /usr/local/bin/node
문제 sudo
는 현재 사용자에게 실행 권한이 부족함을 의미할 수 있습니다 node
. 권한 및 소유권을 확인하세요.
stat --printf="%a %G:%U\n" /usr/local/bin/node
다음과 같이 말해야 합니다.
777 root:root
그렇지 않다고 가정하지만, 항상 작동하고 올바른 권한과 소유권을 갖는 foo
다른 파일이 그 안에 있습니다 . 다음과 동일한 권한과 소유권을 usr/local/bin/
부여합니다 .node
foo
sudo chown --reference=/usr/local/bin/foo /usr/local/bin/node
sudo chmod --reference=/usr/local/bin/foo /usr/local/bin/node