Wyszukiwanie w witrynie

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ć.