sudo를 사용하여 사용자 정의 명령을 실행하면 작동하지 않습니다.

sudo를 사용하여 사용자 정의 명령을 실행하면 작동하지 않습니다.

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이것이 최선의 방법이 아닐 수도 있습니다.

관련 정보