내 홈 디렉토리에 Eclipse를 설치하고 PATH
해당 경로를 ~/.profile
.
그래서 그것이 작동하는 방식은
$ eclipse
그러나 으로 호출하면 sudo
아무것도 eclipse
발견되지 않습니다.
$ sudo eclipse
sudo: eclipse: command not found
어느 것을 검색 PATH
할까요 ? 그것은 사용자 의 것인가 ?sudo eclipse
eclipse
root
PATH
감사해요.
답변1
sudo
기본적으로 사용됨가장 작은 PATH
, 안전하게 사용할 수 있도록뿌리사용자. 이는 반드시 PATH
로그인하여 얻을 수 있는 것과 동일한 결과 는 아닙니다.뿌리사용자 또는 다음을 수행하여
sudo su -
예를 들어 최신 Red Hat 버전에서는 경로가 생략된 것을 발견했습니다 /usr/local/bin
.
"라는 제목의 장에 있는 매뉴얼 페이지안전 설명서:
sudo는 외부 명령을 실행할 때 보안을 보장하려고 시도합니다.
환경 변수를 처리하는 방법에는 두 가지가 있습니다. 기본적으로,
env_reset
sudoers 옵션이 활성화되었습니다. 이로 인해 다음을 포함하는 최소 환경에서 명령이 실행됩니다.TERM
,PATH
,HOME
,SHELL
,LOGNAME
,USER
그리고USERNAME
env_check
sudoers 옵션에서 허용하는 호출 프로시저의 변수 외에env_keep
. 실제로 환경 변수에 대한 화이트리스트가 있습니다.
추가 자료:
sudoers - 사용자가 어떤 작업을 수행할 수 있는지 목록
secure_path
sudo에서 실행되는 각 명령에 사용되는 경로입니다. sudo를 실행하는 사람이 일반 PATH 환경 변수를 가지고 있다는 것을 신뢰하지 않는 경우 이 방법을 사용할 수 있습니다. 또 다른 용도는 "사용자 경로"에서 "루트 경로"를 분리하려는 경우입니다. 지정된 그룹의 사용자exempt_group
옵션은 영향을 받지 않습니다.secure_path
. 이 옵션은 기본적으로 설정되어 있지 않습니다.