현재 워크스테이션에 액세스하는 모든 사용자가 사용할 수 있어야 하는 일부 bash 정의(함수, 변수)를 설정하려고 합니다. 필요한 모든 콘텐츠가 포함된 /etc/profile.d/ 디렉터리에 확장자가 .sh인 셸 스크립트를 만들었습니다. 이론적으로 이는 사용자가 시스템에 로그인한 후에 실행되어야 합니다.
안타깝게도 사용자가 워크스테이션을 사용하는 경우에는 이러한 기능을 사용할 수 없습니다. 현재 해결 방법은 source
수동으로 수행하는 것입니다.
나를 혼란스럽게 하는 것은 사용자가 SSH를 통해 원격으로 로그인할 때 이러한 스크립트가 실행된다는 것입니다. :|
내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
/etc/profile
/etc/profile.d
로그인 쉘은 의 파일을 읽습니다. 이는 하위 프로세스에 의해 상속되는 환경 변수 설정과 같은 작업에 유용합니다. 이 방법으로 세션의 모든 프로그램에서 설정할 수 있습니다. 함수 정의와 같은 셸 설정은 해당 셸 인스턴스 내에서만 사용할 수 있으므로 이점이 없습니다. 셸 설정의 경우 세션 프로필 대신 셸 프로필을 사용해야 합니다. Bash의 경우 ~/.bashrc
, 및 (활성화된 시스템에서) 입니다 /etc/bash.bashrc
.
자세한 내용은 다음을 참조하세요.모든 쉘이 읽을 수 있는 ".bashrc"에 해당하는 파일이 있습니까?그리고 로그인 쉘과 비로그인 쉘의 차이점은 무엇입니까?