/ etc / environment와 / etc / profile의 차이점은 무엇입니까?


25

나는 전자가 후자보다 먼저로드된다는 것을 이해하지만 개념상의 차이점은 무엇입니까? 하나의 변수를 다른 변수가 아닌 다른 변수에 설정 해야하는 좋은 이유가 있습니까? /etc/environment시스템이 실행하는 모든 프로세스에 대해 환경을 설정 하는 것으로 보이지만 /etc/profile로그인 쉘에서 사용 및 전파되는 환경을 설정하는 것 외에는 맞습니까?

또한, 부가 적으로, 어떤 프로그램이 전통적으로 /etc/environment? POSIX와 관련이 있습니까, 아니면 협약입니까?

답변:


11

Ubuntu 도움말 에서 추출

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

/etc/profile -이 파일은 bash 로그인 쉘이 입력 될 때마다 (예 : 콘솔 또는 ssh를 통해 로그인 할 때) 데스크톱 세션이로드 될 때 DisplayManager에 의해 실행됩니다.

나는이 모든 것이 단지 관습이지만 표준과 멀지 않다고 생각한다 (시스템과 같은 RedHat에 대해서는 모른다).


RedHat (7.6 현재)에서 작동합니다. '/ etc / environment'가 비어 있습니다. 서버 VAR=value가 다시 설정 되어 셸에서 다시 로그인 한 후에 설정 이 적용되었습니다.
DKroot

39

/etc/environmentPOSIX의 일부가 아니며 PAM (Pluggable Authentication Module)에 속하며 PAM 지원으로 컴파일 된 프로그램 만 사용할 수 있습니다 (주로 로그인 시스템, 이후 쉘 또는 사용자 환경을 시작 함). 이것은 심지어 당신의 쉘이 읽지 않는다는 것을 의미합니다.

다음을 사용하여 프로그램을 볼 수 있습니다 /etc/environmentgrep -l pam_env /etc/pam.d/*.

그래서 /etc/environment보통 쉘에서 시작되지 않은 프로그램에 대한 변수를 설정하는 데 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.