루트 / 스도를 포함하여 모든 사용자에게 적용되도록 PATH 설정


41

서버의 모든 사용자에 대해 PATH 변수를 설정하는 방법 의 지시 사항은 무엇입니까? 모든 '정상적인'사용자에 대한 PATH를 설정하십시오. 그러나, 내가 할 경우 sudo -s다음 printenv PATH업데이트 된 경로가 표시되지 않습니다. 예를 들어 root 용 TeX Live 경로 설정을 살펴 보았지만 Windows 배경에서 나왔을 때 이것은 나에게 의미가없는 것 같습니다. 시스템에서 실행되는 모든 프로세스가 항목을 상속받을 수 있도록 시스템 전체 경로를 설정하는 방법이 있습니까?

답변:


43

최신 정보:

전역 환경 변수 설정은 여전히에서 수행되어야 /etc/environment하지만, 지적한 바와 같이 sudo -s이러한 변수의 효과는 "소멸"됩니다.

그 이유 는 환경sudo재설정하고 보안 경로를 설정하는 정책 이 있기 때문입니다 . 기본적으로 활성화되어 있습니다.

/etc/sudoers:

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

따라서 /etc/environment경로에 설정된 모든 것은 로 대체됩니다 sudo.

sudoers상태 매뉴얼 페이지 :

   env_reset       If set, sudo will reset the environment to only contain
                   the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
                   variables.  Any variables in the caller's environment
                   that match the env_keep and env_check lists are then
                   added.  The default contents of the env_keep and
                   env_check lists are displayed when sudo is run by root
                   with the -V option.  If the secure_path option is set,
                   its value will be used for the PATH environment
                   variable.  This flag is on by default.

이 문제를 해결 sudo su하기 위해 루트 권한이 있지만 올바른 PATH를 포함하는 쉘을 제공 할 수 있습니다 .


원래 답변

에서 설정해야합니다 /etc/environment.

시도하십시오 sudo YOUR_TEXT_EDITOR /etc/environment(먼저 백업을 작성하십시오).

자세한 정보 : EnvironmentVariables

시스템 전체 환경 변수

시스템 전체에 영향을 미치는 환경 변수 설정 (특정 사용자가 아닌)은 시스템 또는 데스크탑 세션이로드 될 때 실행되는 많은 시스템 수준 스크립트에 배치되어서는 안됩니다.

/etc/environment-이 파일은 특히 시스템 전체 환경 변수 설정을위한 것입니다. 스크립트 파일은 아니지만 한 줄에 하나씩 할당 표현식으로 구성됩니다. 특히이 파일은 시스템 전체 로캘 및 경로 설정을 저장합니다.

권장하지 않음 :

/etc/profile-이 파일은 bash 로그인 쉘이 입력 될 때마다 (예 : 콘솔 또는 ssh를 통해 로그인 할 때) 데스크탑 세션이로드 될 때 DisplayManager에 의해 실행됩니다. 이것은 아마도 베테랑 UNIX 시스템 관리자에게 환경 변수에 대해 문의 할 때 참조 할 파일입니다. 그러나 우분투에서는이 파일이 /etc/bash.bashrc 파일을 조금 더 호출합니다.

/etc/bash.bashrc-이것은 ~ / .bashrc 파일의 시스템 전체 버전입니다. Ubuntu는 사용자가 셸 또는 데스크탑 환경에 들어갈 때마다이 파일을 실행하도록 기본적으로 구성되어 있습니다.


아아 잘 : 이것은 나에게 이것이 잘못된 길입니다 (모두가 같은 길, 기간을 상속해야합니다). 그러나 그것이 어떻게 된 것 같아요.
Joseph Wright

visudo(루트 권한 필요)를 사용하여 보안 경로 설정을 편집 할 수 있습니다 . 이것은 권장되지 않습니다. 바로 교육을위한 것입니다.
Elliot Labs LLC

2

sudo -i(와 비슷한 방식으로 sudo su -) 로그인을 시뮬레이션하여 이러한 환경 변수를 제공합니다.


1
그런 식으로 작동하지 않습니다. 적어도 PATH가 Ubuntu Trusty test-vm에서 재설정됩니다.
Martijn Heemels가 12:15
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.