각 사용자 셸에 대해 독립적인 환경 변수 설정

각 사용자 셸에 대해 독립적인 환경 변수 설정

사용된 셸과 관계없이 각 사용자에 대해 영구 환경 변수( bash및 ) zsh를 어떻게 설정할 수 있습니까 fish?

답변1

편집 : 따르면환경 변수를 설정하는 가장 좋은 distro/shell 독립적 방법은 무엇입니까?, 이에 대한 가장 좋은 해결책은 다음과 같습니다.~/.pam_environment

~/.profile편집: 모든 쉘이 읽히지 않기 때문에 해키 솔루션으로 되돌리기 :

모든 쉘 소스 코드 /etc/profile.

/etc/profile, 다음과 같은 줄을 넣을 수 있습니다.

. $HOME/.custom-profile

~/.custom-profile그런 다음 각 사용자에 대한 변수를 추가할 수 있습니다.

답변2

모든 쉘은 서로 다른 사용자별 프로필을 읽습니다(zsh: ~/.profile, bash: ~/.bash_profile, csh에는 하나의 rc 파일만 있음 등). 따라서 이러한 잠재적 후보를 모두 변경해야 합니다.

그러나 대부분의 쉘은 최소한 ~/.profile 읽기로 돌아가므로(이 점을 지적한 @terdon에게 감사드립니다!) 내보내기를 여기에 넣을 수 있습니다.

"로그인"은 일반적으로 uid 및 gid를 변경할 수 있는 프로세스(보통 루트로 실행되는 로그인 관리자)에 의해 수행되므로 프로그램이 생성되는 환경(예: 셸)을 정의하는 것은 이러한 프로그램에 달려 있습니다.

하지만 로그인 관리자가 두 개 이상(GDM/lightdm/KDM/... 시각적 로그인 관리자, getty, logind/loginct, ssh, getty...) 있고 서로 다른 파일에서 구성을 읽으므로 일관성이 없습니다. 저쪽으로 접근해 보세요.

관련 정보