Zrozumienie plików inicjujących powłokę i profili użytkowników w systemie Linux
Linux to system wieloużytkownikowy z podziałem czasu, co oznacza, że więcej niż jeden użytkownik może zalogować się i korzystać z systemu. Administratorzy systemu mają za zadanie zarządzać różnymi aspektami obsługi systemu przez różnych użytkowników w zakresie instalowania/aktualizowania/usuwania oprogramowania, programów, które mogą uruchamiać, plików, które mogą przeglądać/edytować i tak dalej.
Linux umożliwia także tworzenie i utrzymywanie środowisk użytkowników na dwa główne sposoby: przy użyciu konfiguracji ogólnosystemowych (globalnych) i specyficznych dla użytkownika (osobistych). Zwykle podstawową metodą pracy z systemem Linux jest powłoka, a powłoka tworzy środowisko w zależności od określonych plików, które odczytuje podczas inicjalizacji po pomyślnym zalogowaniu użytkownika.
Sugerowana lektura: Jak ustawić zmienne środowiskowe w systemie Linux
W tym artykule wyjaśnimy pliki inicjujące powłokę w odniesieniu do profili użytkowników do lokalnego zarządzania użytkownikami w systemie Linux. Poinformujemy Cię, gdzie przechowywać niestandardowe funkcje powłoki, aliasy, zmienne i programy startowe.
Ważne: na potrzeby tego artykułu skupimy się na bash, powłoce kompatybilnej z sh, która jest najpopularniejsza/używana powłoka w systemach Linux.
Jeśli używasz innego programu powłoki (zsh, ash, fish itp.), przeczytaj jego dokumentację, aby dowiedzieć się więcej o niektórych powiązanych plikach, o których będziemy tutaj mówić.
Inicjalizacja powłoki w systemie Linux
Po wywołaniu powłoki odczytywane są pewne pliki inicjujące/uruchamiające, które pomagają skonfigurować środowisko dla samej powłoki i użytkownika systemu; czyli predefiniowane (i dostosowane) funkcje, zmienne, aliasy i tak dalej.
Istnieją dwie kategorie plików inicjujących odczytywanych przez powłokę:
- systemowe pliki startowe – zawierają konfiguracje globalne, które dotyczą wszystkich użytkowników systemu i zwykle znajdują się w katalogu /etc. Należą do nich: /etc/profiles i /etc/bashrc lub /etc/bash.bashrc.
- Pliki startowe specyficzne dla użytkownika – przechowują konfiguracje mające zastosowanie do pojedynczego użytkownika w systemie i zwykle znajdują się w katalogu domowym użytkownika jako pliki kropkowe. Mogą zastąpić konfiguracje ogólnosystemowe. Należą do nich: .profiles, .bash_profile, .bashrc i .bash_login.
Ponownie, powłokę można wywołać w trzech możliwych trybach:
1. Interaktywna powłoka logowania
Powłoka jest wywoływana po pomyślnym zalogowaniu się użytkownika do systemu przy użyciu /bin/login, po odczytaniu danych uwierzytelniających zapisanych w pliku /etc/passwd.
Kiedy powłoka jest uruchamiana jako interaktywna powłoka logowania, odczytuje plik /etc/profile i jego odpowiednik ~/.bash_profile specyficzny dla użytkownika.
2. Interaktywna powłoka bez logowania
Powłokę uruchamia się z wiersza poleceń za pomocą programu powłoki, na przykład $/bin/bash lub $/bin/zsh. Można go również uruchomić, uruchamiając polecenie /bin/su.
Dodatkowo interaktywną powłokę niezalogowaną można również wywołać za pomocą programu terminalowego, takiego jak konsole, terminator lub xterm, ze środowiska graficznego.
Kiedy powłoka jest uruchamiana w tym stanie, kopiuje środowisko powłoki nadrzędnej i czyta specyficzny dla użytkownika plik ~/.bashrc w celu uzyskania dodatkowych instrukcji konfiguracji uruchamiania.
su
ls -la
3. Nieinteraktywna powłoka
Powłoka jest wywoływana, gdy uruchomiony jest skrypt powłoki. W tym trybie przetwarza skrypt (zestaw poleceń/funkcji powłoki lub ogólnych poleceń systemowych) i nie wymaga wprowadzania danych przez użytkownika pomiędzy poleceniami, chyba że jest inaczej. Działa w oparciu o środowisko odziedziczone z powłoki nadrzędnej.
Zrozumienie ogólnosystemowych plików startowych powłoki
W tej sekcji rzucimy więcej światła na pliki startowe powłoki, które przechowują konfiguracje dla wszystkich użytkowników systemu i obejmują one:
Plik/etc/profile – przechowuje konfiguracje środowiska ogólnosystemowego i programy startowe do konfiguracji logowania. W tym pliku należy dodać wszystkie konfiguracje, które chcesz zastosować dla wszystkich środowisk użytkowników systemu.
Na przykład możesz tutaj ustawić globalną zmienną środowiskową PATH.
cat /etc/profile
Uwaga: w niektórych systemach, takich jak RHEL/CentOS 7, zobaczysz takie ostrzeżenia, jak „Nie zaleca się zmieniania tego pliku, chyba że wiesz co robisz. Znacznie lepiej jest utworzyć niestandardowy skrypt powłoki .sh w pliku /etc/profile.d/, aby wprowadzić niestandardowe zmiany w środowisku, ponieważ zapobiegnie to konieczności łączenia przyszłe aktualizacje ”.
Katalog /etc/profile.d/ – przechowuje skrypty powłoki używane do wprowadzania niestandardowych zmian w Twoim środowisku:
cd /etc/profile.d/
ls -l
Plik /etc/bashrc lub /etc/bash.bashrc – zawiera ogólnosystemowe funkcje i aliasy, w tym inne konfiguracje mające zastosowanie do wszystkich użytkowników systemu.
Jeśli twój system ma wiele typów powłok, dobrym pomysłem jest umieszczenie w tym pliku konfiguracji specyficznych dla basha.
cat /etc/bashrc
Zrozumienie plików startowych powłoki specyficznych dla użytkownika
Następnie wyjaśnimy więcej na temat plików startowych powłoki (bash) specyficznych dla użytkownika, które przechowują konfiguracje dla konkretnego użytkownika w systemie, znajdują się w katalogu domowym użytkownika i obejmują:
ls -la
Plik ~/.bash_profile – przechowuje specyficzne dla użytkownika konfiguracje środowiska i programów startowych. Możesz tutaj ustawić niestandardową zmienną środowiskową PATH, jak pokazano na zrzucie ekranu poniżej:
cat ~/.bash_profile
Plik ~/.bashrc – w tym pliku przechowywane są aliasy i funkcje specyficzne dla użytkownika.
cat ~/.bashrc
Plik ~/.bash_login – zawiera określone konfiguracje, które normalnie wykonywane są dopiero po zalogowaniu się do systemu. Gdy nie ma ~/.bash_profile, plik ten zostanie odczytany przez bash.
Plik ~/.profile – ten plik jest odczytywany w przypadku braku ~/.bash_profile i ~/.bash_login; może przechowywać te same konfiguracje, które mogą być również dostępne dla innych powłok w systemie. Ponieważ mówiliśmy tutaj głównie o bashu, pamiętaj, że inne powłoki mogą nie rozumieć składni basha.
Następnie wyjaśnimy także dwa inne ważne pliki specyficzne dla użytkownika, które niekoniecznie są plikami inicjującymi bash:
Plik ~/.bash_history – bash przechowuje historię poleceń wprowadzonych przez użytkownika w systemie. Ta lista poleceń jest przechowywana w katalogu domowym użytkownika w pliku ~/.bash_history.
Aby wyświetlić tę listę, wpisz:
history
or
history | less
Plik ~/.bash_logout – nie jest używany do uruchamiania powłoki, ale przechowuje specyficzne dla użytkownika instrukcje dotyczące procedury wylogowania. Jest odczytywany i wykonywany, gdy użytkownik opuszcza interaktywną powłokę logowania.
Praktycznym przykładem może być wyczyszczenie okna terminala po wylogowaniu. Jest to ważne w przypadku połączeń zdalnych, które po ich zamknięciu pozostawią czyste okno:
cat bash_logout
Aby uzyskać dodatkowe informacje, sprawdź zawartość plików inicjujących powłokę w różnych dystrybucjach Linuksa, a także przeczytaj stronę podręcznika bash:
To wszystko na teraz! W tym artykule wyjaśniliśmy pliki uruchamiania/inicjowania powłoki w systemie Linux. Skorzystaj z poniższego formularza komentarza, aby do nas napisać.