bash에서 사용자 정의 명령을 생성하여 ~/.local/bin
에 배치했습니다 ~/.profile
. 터미널을 통해 명령을 실행하면 문제가 없지만 출력으로 실행 sudo
하려고 하면 다음과 같습니다 .sudo
sudo: my_command: command not found
어떻게 하면 되는지 알려주실 수 있나요?
답변1
시도해 보십시오 sudo -E
. 이는 환경을 보호할 수 있지만 모든 상황에서는 작동하지 않을 수 있습니다.
.profile에 의해 설정된 환경 변수가 필요하다는 점을 고려하여, 또한 sudo -i
사용이 필요한 로그인을 수행해 보십시오. 여전히 옵션 없이 사용 -c my_command
하려면 /etc/sudoers 파일을 확인하고 secure_path 변수가 설정되어 있는지 확인하십시오. sudo my_command
명령이 포함된 경로를 포함합니다. 이를 위해서는 일반적으로 사용 가능한 곳에 배치해야 할 수도 있습니다./usr/local/bin
답변2
sudo
당신과 다른 PATH가 있습니다. sudo
읽지 마세요 ~/.profile
.
확인 해봐:
$ sudo sh
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#
얻은 출력을 비교하여 포함되지 않았는지 확인하십시오 ~/.local/bin
.
원하는 것을 달성하려면 다음을 수행하는 것이 가장 좋습니다.
sudo ~/.local/bin/YourBashScript
기술적으로 PATH를 변경할 수도 있지만 sudo
이것이 최선의 방법이 아닐 수도 있습니다.