최신 정보:
전역 환경 변수 설정은 여전히에서 수행되어야 /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는 사용자가 셸 또는 데스크탑 환경에 들어갈 때마다이 파일을 실행하도록 기본적으로 구성되어 있습니다.