쉘 환경 변수(Bourne과 같은 쉘, bahsrc, zshrc, zshenv 등의 프로필과 같은)와 독립적인 가장 일반적인 방식으로 사용자에 대한 환경 변수를 설정하는 방법은 무엇입니까? 아이디어는 사용자 로그인 중에 사용자에 대한 환경 변수를 설정하고 모든 종류의 셸을 포함하여 모든 프로세스(셸 프로세스뿐만 아니라 다른 프로세스에 의해 생성됨)에서 사용할 수 있도록(포크) 만드는 것입니다.
답변1
이 우분투 문서다음에 대해 이야기합니다 ~/.pam_environment
:
세션 전체 환경 변수
(시스템 전체가 아닌) 특정 사용자에게만 영향을 미치는 환경 변수 설정에 적합한 파일은
~/.pam_environment
및 입니다~/.profile
. 해당 파일 중 하나를 편집한 후 다음을 수행해야 합니다.재 로그인변수를 초기화하기 위해서입니다.
~/.pam_environment
이 파일은 특히 사용자 환경을 설정하기 위한 것입니다. 이는 스크립트 파일이 아니며 한 줄에 하나씩 할당 표현식으로 구성됩니다. 이 예에서는 변수 FOO를 리터럴 문자열로 설정하고 PATH 변수를 수정합니다.
FOO=bar PATH DEFAULT=${PATH}:${HOME}/MyPrograms
메모:
예시처럼 간단한 변수 할당을 할 때는 값을 인용하면 안 됩니다
FOO=bar
.변수 확장이 작동하려면 PATH 수정에 사용되는 구문(스크립트 파일과 다른 구문)이 필요합니다.
~/.pam_environment
다양한 GUI를 사용하여 언어 또는 지역 형식을 설정할 때 작성됩니다. 결과적으로, 예를 들어~/.pam_environment
수동으로 편집하여 LC_TIME을 설정한 경우 나중에 언어 지원 GUI를 사용하여 지역 형식 설정을 변경하면 항목을 덮어쓰게 됩니다.
이 파일은 뿐만 아니라 /etc/environment
에서 참조한 것으로 보입니다.pam_env.so
이는 로그인 프로세스의 일부로 발생하며 모든 셸과 별개일 것이라고 생각합니다.