/ opt / godi / sbin (사용자 정의 디렉토리)에 설치된 프로그램을 실행해야합니다. 해당 디렉토리를 PATH에 추가하면 .bashrc 파일에 다음 줄을 추가하여
export PATH=$PATH:/opt/godi/bin:/opt/godi/sbin
그런 다음 명령을 제대로 실행하려고 시도 할 수 있습니다 (sudo가 필요하기 때문에 실패한다는 것을 제외하고). 그러나 sudo를 사용하려고하면 :
sudo godi_console
다음과 같은 오류가 발생합니다
sudo: godi_console: command not found
sudo를 사용한 후 PATH 변수를 검사하면 일반 사용자와 동일한 PATH가 포함되어 있지 않습니다.
$ sudo sh
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH가 다른 이유는 무엇입니까? 내가 뭔가 잘못하고 있습니까? 나는 데비안 Jessie를 사용하고 있지만 불행히도 sudi 절대 링크를 godi_console에 전달하여 문제를 해결할 수 없습니다. godi_console 자체도 올바르게 설정된 PATH에 의존하기 때문입니다.
답변
당신은 항상 할 수 있습니다 :
sudo env "PATH=$PATH" godi_console
데비안에 대한 보안 조치로서, /etc/sudoers
이 secure_path
안전한 값으로 설정 옵션을 선택합니다.
참고 :
sudo "PATH=$PATH" godi_console
어디에서 sudo
취급이 포함 된 인수 선도 =
자체가 환경 변수 할당과 같은 문자를, 또한 실행에서 일하는 것이 godi_console
와 당신의 $PATH
합니다 (반대 secure_path
의 환경에서)하지만, 영향을 미치지 않을 것 sudo
‘의 실행 파일의 검색 경로를, 그래서 도움이되지 것입니다 sudo
것을 찾는 godi_console
.
답변
당신은 또한 기본 경로를 설정할 수 있습니다 /etc/sudoers
파일을 사용하여 편집 visudo
원하는대로 라인을 업데이트하십시오.
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
답변
SUDO는 기본적으로 env 변수를 재설정합니다.
env_reset이라는 매뉴얼과 옵션을 확인하십시오.
/ etc / sudoers에서 비활성화해야합니다.
답변
이것은 작동합니다 :
sudo $(which your_command)
gps
Nvidia GPU의 프로세스를 나열하는 스크립트를 호출하는 예 :
$ sudo gps
sudo: gps: command not found
$ sudo $(which gps)
PID TTY TIME CMD
9922 tty7 02:42:47 Xorg
설명 :
$ set -x;sudo $(which gps);set +x
++ which gps
+ sudo /home/xyztuv/myScripts/shl/gps
PID TTY TIME CMD
9922 tty7 02:42:39 Xorg
+ set +x
답변
sudo --preserve-env=PATH env [command]
이것은 내 끝에 secure_path를 ovverrides
답변
이것은 효과가 있었다 :
sudo "PATH=$PATH" [your command]
경로 값으로 $ PATH를 변경하지 말고 다음과 같이 작성하십시오.
예: $ sudo env "PATH=$PATH" ant -f webAppConfig.xml regenWebAppConf....
답변
OP가 요구하는 것을 정확하게하지는 않지만 도움이 될 수 있습니다.
sudo -u the_user PATH=$PATH:/opt/godi/bin sh -c 'echo $PATH'
이것은 sudoed 명령 내부 의 PATH를 변경합니다 .
편집 : 위의 내용이 거의 말이되지 않기 때문에 이것이 무엇을 의미하는지 잘 모르겠습니다. 대신 다음을 사용하십시오.
sudo -u the_user sh -c 'PATH=$PATH:/opt/godi/bin echo $PATH'