간단히 말해서 매번 PATH를 플러시하지 않는 방법은 무엇입니까?
Ruby on Rails로 작성된 일부 웹 사이트를 서버에 배포했습니다 (Debian 테스트). 나는 Mongrel + Nginx를 사용하여 호스팅하지만 Mongrel을 다시 시작해야 할 때 (예 : 변경 후) 한 가지 문제가 있습니다.
모든 사이트는 VCS (git이지만 중요하지는 않음)에서 확인되며 소유자와 그룹이 내 사용자로 설정되어있는 반면 Mongrel은 권한이 심각하게 제한되어있는 허, mongrel 사용자로 실행됩니다. 따라서 Mongrel은 루트 (UID를 자동으로 변경할 수 있음) 또는 mongrel에서 시작해야합니다.
mongrel을 관리하려면 mongrel_cluster gem을 사용합니다. mongrel_cluster gem은 하나의 명령으로 여러 Mongrel 서버를 시작하거나 중지 할 수 있기 때문입니다. 그러나 /var/lib/gems/1.8/bin 디렉토리가 PATH에 있어야 합니다 . 절대 경로로 시작하기에는 충분하지 않습니다 .
루트 .bashrc에서 PATH를 수정하면 아무것도 변경되지 않았으며 sudo의 env_reset 및 env_keep도 조정하지 않았습니다.
그래서 질문 : PATH에 디렉토리를 추가하거나 사용자의 PATH를 sudo에 유지하는 방법은 무엇입니까?
업데이트 : 몇 가지 예
$ env | grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/var/lib/gems/1.8/bin
$ sudo cat /etc/sudoers | egrep -v '^$|^#'
Defaults env_keep = "PATH"
root ALL=(ALL) ALL
%sudo ALL=NOPASSWD: ALL
$ sudo env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
또한 데비안 안정 (레니) 에서도이 방법으로 정확하게 작동한다고 말할 수 있습니다.