„Interaktywna powłoka logowania jest uruchamiana po udanym logowaniu przy użyciu / bin / login poprzez odczytanie pliku / etc / passwd. To wywołanie powłoki zwykle odczytuje / etc / profile i jego prywatny odpowiednik ~ / .bash_profile po uruchomieniu.
Interaktywna powłoka niezalogowana jest zwykle uruchamiana z wiersza poleceń za pomocą programu powłoki (np. [Monit] $ / bin / bash) lub za pomocą polecenia / bin / su. Interaktywna powłoka niezalogowana jest również uruchamiana z programem terminalowym, takim jak xterm lub konsola, w środowisku graficznym. Ten typ wywołania powłoki zwykle kopiuje środowisko nadrzędne, a następnie odczytuje plik ~ / .bashrc użytkownika w celu uzyskania dodatkowych instrukcji konfiguracji uruchamiania. ”
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Dlatego nie umieszczałbym zmiennych środowiskowych w bashrc, ponieważ jest to nie tylko sprzeczne z powszechną konwencją, ale również przegapisz swoje zmienne bashrc podczas wywoływania terminala ze środowiska graficznego pulpitu.
Na Redhat w /etc/profile
I znalazłem ten komentarz:
„Aliasy systemowe i funkcje powinny znajdować się w / etc / bashrc. Osobiste zmienne środowiskowe i programy startowe powinny znajdować się w ~ / .bash_profile. Osobiste aliasy i funkcje powinny znajdować się w ~ / .bashrc.”
Jeśli więc chcesz ustawić zmienne środowiskowe dla poszczególnych użytkowników, zrób to w pliku .bash_profile użytkownika.
Wracając do .bash_profile
I czytam:
„Osobiste zmienne środowiskowe i programy startowe.
Aliasy i funkcje osobiste powinny znajdować się w ~ / .bashrc. Systemowe zmienne środowiskowe i programy startowe znajdują się w / etc / profile. Systemowe aliasy i funkcje znajdują się w / etc / bashrc. ”
Wniosek
Jeśli chcesz, aby tylko root widział programy rezydujące, na przykład w / sbin
I dodałbym tę ścieżkę do .bash_profile
pliku roota . Ale jeśli chcesz, każdy użytkownik, aby zobaczyć co korzeń specyficzne programy są zainstalowane na skrzynce chciałbym umieścić /sbin
na /etc/.profile
. Teraz każdy użytkownik może korzystać z funkcji uzupełniania tabulatorów, aby wyszukiwać programy root i w razie potrzeby podnosić uprawnienia.
Przypadek specjalny: SSH
Kiedy ssh jest uruchamiany z linii poleceń, uruchamiana jest interaktywna powłoka logowania. Ale w tym przypadku /etc/profile
nie jest czytany. Kiedy zdefiniowałem zmienne środowiskowe w .bash_profile
pliku każdego użytkownika, pracował z ssh.
~/.profile
jest również inną prawidłową opcją