sudo를 사용할 때 이 디렉토리가 내 PATH에 추가되지 않는 이유는 무엇입니까?

sudo를 사용할 때 이 디렉토리가 내 PATH에 추가되지 않는 이유는 무엇입니까?

apachectl방금 소스 에서 Apache 웹 서버를 컴파일하고 설치했으며 이제 PATH.

스크립트를 루트로 실행해야 하기 때문에 root사용자 디렉터리 에 디렉터리를 추가해야 한다는 것을 알고 있으므로 다음 줄을 추가해 볼까 생각했습니다.PATH

  • 문서:/root/.bashrc
#
# add directory of apachectl to PATH
PATH=$PATH:/usr/local/apache2/bin

내가 추가한 경로가 정확하다는 것을 알고 있지만 다음 명령을 실행하면 다음과 같습니다.

sudo apachectl start

나는 얻다:

sudo: apachectl: command not found

이 디렉토리를 내 디렉토리에 어떻게 추가할 수 있나요 PATH?

답변1

sudo에 디렉토리를 추가하는 방법 PATH(발견한 대로)아니요루트와 동일) sudoers파일을 편집하면 됩니다.

sudo visudo

그런 다음 다음 줄을 찾으십시오.

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

끝에 디렉토리를 추가하십시오.

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache2/bin"

또는 실행하려는 실행 파일에 대한 심볼릭 링크를 만들어 직접 넣을 수 있습니다 /usr/local/bin.

sudo find /usr/local/apache2/bin -type f -executable -exec ln -s {} /usr/local/bin/

별칭을 추가하면 sudo환경이 내보내지지만 이는 다소 우아하지 않으며 더 중요한 것은 한 명의 사용자에게만 작동한다는 것입니다.

관련 정보