2011-08-27 8 views
0

sudo 액세스로 우분투 컴퓨터에서 node를 실행해야합니다. 노드의 디렉토리는 sudo 경로에 있지만 실행하려고 할 때 명령을 찾을 수 없습니다. 명시 적으로 작동하는 노드를 호출 할 수 있습니다.수도 경로 - Node.js를 찾지 못했습니다.

//works 
node 
> 

which node 
/root/local/node/bin/node 

echo sudo $PATH 
sudo /root/local/node/bin:/usr/bin/node:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

sudo node --version 
sudo: node: command not found 

//explicitly calling it works 
sudo node /root/local/node/bin 
> 
+1

마지막 명령은/root/local/node에서 "bin"이라는 프로그램을 실행하고 있습니다. 이것이 효과가 있다면, 첫 번째 거짓말이 있습니다. – geoffspear

+0

@Wooble 실제로 명시 적 호출은/root/local/node/bin/node로 가야합니다. 지금까지는 다른 버전의 노드 설치에서 추측 할 수 있습니다. 벡의 마지막 명령이 불완전하다. PATH가 수동으로 추가되었으며 마지막에/node가 누락되었습니다./node/bin은 소스에서 빌드 할 때 항상 디렉토리입니다. – moonstruck

답변

2

음, 내가 "sudo는 경로"와 같은 일이 있다고 생각하지 않는다 - 당신의 두 번째 명령은 일반 경로 다음 "는 sudo를"이 반향된다. 어쨌든 sudo을 실행하는 경우 실제로는 이 아니라이 경로에 의존해야합니다. 보안 위험을 최소화하기 위해 가능할 때마다 모든 명령과 파일 인수에 대해 명시 적 경로 이름을 지정해야합니다. sudo을 실행하지 않으려면 visudo을 사용하여 /etc/sudoers에 추가해야합니다.

+0

내가 잘못한 것을 나에게 밝혀 주려는 사람을 보복하려고 했습니까? –

관련 문제