Uzyskiwanie Uprawnień
Administratorzy systemu, a w niektórych przypadkach użytkownicy, muszą
wykonywać określone zadania z dostępem administracyjnym. Dostęp do systemu
za pomocą użytkownika root
jest potencjalnie niebezpieczny i może
prowadzić do rozległych uszkodzeń systemu i danych. W tym rozdziale omówiono
sposoby uzyskiwania uprawnień administracyjnych za pomocą programów setuid
takich jak su i sudo. Programy te pozwalają konkretnym
użytkownikom na wykonanie zadań, które normalnie byłyby dostępne jedynie dla
użytkownika root
, jednocześnie zachowując wyższy poziom kontroli i
bezpieczeństwa systemu.
Polecamy zapoznać się również z Poradnikiem Bezpieczeństwa Red Hat Enterprise Linux 7, gdzie znajdziesz dodatkowe informacje na temat mechanizmów zarządzania systemem, potencjalnych zagrożeń oraz sposobów na uniknięcie utraty danych z powodu niepoprawnego użycia uprawnień administratora.
Polecenie su
Gdy użytkownik wywoła polecenie su, zostanie poproszony o hasło
do konta`root`. Po poprawnym uwierzytelnieniu zostanie uruchomiona linia
komend użytkownika root
.
Po zalogowaniu za pomocą komendy su, użytkownik używa konta
root
i ma pełen dostęp do komputera jako administrator. Warto mieć na
uwadze, że dostęp ten wciąż jest limitowany przez ograniczenia narzucane
przez program SELinux, o ile jest włączony. Dodatkowo, gdy użytkownik używa
konta root
, może ponownie użyć polecenia su aby zalogować się
na dowolnego innego użytkownika w systemie bez potrzeby podawania hasła.
Z racji możliwości tego programu, zalecane jest aby administratorzy systemowi w ramach swoich organizacji ograniczali dostęp do tej komendy.
Jednym z prostszych sposobów, aby dać użytkownikowi uprawnienia do tej
komendy jest dodanie go do specjalnej grupy administratorów zwanej
wheel. Aby to zrobić, wpisz następujące polecenie jako root
:
~]# usermod -a -G wheel nazwaUżytkownika
W powyższym poleceniu zastąp słowo użytkownik nazwą użytkownika, którego
chcesz dodać do grupy wheel
.
Możesz również użyć zakładki Użytkownicy w ustawieniach systemu aby zarządzać grupami użytkowników. Potrzebujesz do tego uprawnień administratora.
-
Wciśnij przycisk Super aby otworzyć Podgląd Aktywności, wpisz Użytkownicy i wciśnij Enter. Narzędzie Użytkownicy zostanie wyświetlone. Przycisk Super ma różny wygląd w zależności od klawiatury, ale zwykle jest to przycisk Windows lub Command, zazwyczaj ulokowany na lewo od Spacji.
-
Aby umożliwić wprowadzanie zmian, wciśnij przycisk Odblokuj… i wpisz prawidłowe hasło administratora.
-
Wybierz ikonę użytkownika z kolumny po lewej stronie, aby wyświetlić jego ustawienia w panelu po prawej stronie.
-
Zmień typ konta ze
Standardowe
naAdministrator`za pomocą suwaka. To doda użytkownika do grupy `wheel
.
Zapoznaj się z rozdziałem Managing_Users_and_Groups.adoc#s1-users-configui aby uzyskać więcej informacji na temat narzędzia Użytkownicy.
Po dodaniu odpowiednich użytkowników do grupy wheel
, zaleca się
ograniczenie dostępu do komendy su tylko do kont z tej grupy. Aby
tego dokonać, należy zmodyfikować plik konfiguracji PAM dla komendy
su, /etc/pam.d/su
. Otwórz ten plik w edytorze tekstowym i
odkomentuj następującą linię poprzez usunięcie znaku #
:
#auth required pam_wheel.so use_uid
Ta zmiana spowoduje, że tylko członkowie grupy administracyjnej wheel
będą
mieli możliwość przełączenia się na inne konto za pomocą polecenia
su.
Uwaga
Użytkownik |
Polecenie sudo
Polecenie sudo umożliwia inne podejście do udostępniania
użytkownikowi uprawnień administratora. Gdy użytkownik z odpowiednimi
uprawnieniami poprzedzi polecenie za pomocą komendy sudo,
zostanie poproszony o swoje własne hasło. Jeżeli uwierzytelnienie się
powiedzie oraz użytkownik ma uprawnienia do używania tej komendy, polecenie
zostanie wykonane tak, jakby użytkownik był zalogowany na konto root
.
Podstawowa struktura polecenia sudo wygląda tak:
sudo polecenie
W powyższym przykładzie, polecenie powinno zostać zastąpione wywołaniem
komendy która jest zarezerwowana dla użytkownika root
- na przykład
polecenie mount.
Polecenie sudo pozwala na większą elastyczność. Na przykład,
tylko użytkownicy wymienieni w pliku /etc/sudoers
są uprawnieni korzystać
z polecenia sudo, a polecenie jest wykonywane w kontekście ich
sesji linii komend, a nie użytkownika root
. Oznacza to, że dostęp do sesji
użytkownika root
może być całowicie zablokowana - opis takiego przypadku
znajduje się w
Poradniku
Bezpieczeństwa Red Hat Enterprise Linux 7.
Każde udane uwierzytelnienie za pomocą polecenia sudo jest
zapisywane w pliku /var/log/messages
, a wywołane polecenie wraz z nazwą
konta, z którego zostało wywołane w pliku /var/log/secure
. Jeżeli
dodatkowe wpisy w dzienniku są wymagane, użyj modułu pam_tty_audit
aby
włączyć audyt TTY dla konkretnych użytkowników poprzez dodanie następującej
linii do pliku /etc/pam.d/system-auth
:
session required pam_tty_audit.so disable=wzór enable=wzór
gdzie wzór to oddzielona przecinkami lista użytkowników, z uwzględnieniem
symbolów maski. Przykładowo, następująca konfiguracja udostępni audyt TTY
dla użytkownika root
i zablokuje go dla pozostałych użytkowników:
session required pam_tty_audit.so disable=* enable=root
Kolejną zaletą polecenia sudo jest to, że administrator może umożliwić różnym użytkownikom dostęp do konkretnych poleceń, na podstawie ich potrzeb.
Administratorzy chcący modyfikować plik /etc/sudoers
zawierający
konfigurację komendy sudo, powinni użyć polecenia
visudo.
Aby nadać pełne uprawnienia administratora, użyj polecenia visudo i dodaj linię zbliżoną do następującej w sekcji definiującej uprawnienia użytkowników:
jarek ALL=(ALL) ALL
Na bazie tego przykładu użytkownik jarek
może użyć polecenia
sudo z dowolnego serwera i wykonać dowolne polecenie.
Przykład poniżej pokazuje poziom granulacji, z jaką można konfigurować polecenie sudo:
%users localhost=/sbin/shutdown -h now
Na bazie tego przykładu każdy użytkownik będący w grupie systemowej users
może wywołać polecenie /sbin/shutdown -h now, tak długo jak jest
wywołane z poziomu konsoli.
Dokumentacja man dla sudoers
opisuje dokładniej możliwości
konfiguracji tego pliku.
Ważne
Istnieją pewne zagrożenia, o których należy pamiętać używając polecenia
sudo. Możesz ich uniknąć poprzez wykorzystanie polecenia
visudo do modyfikacji pliku konfiguracji
|
Dodatkowe Materiały
Programy dające uprawnienia administratora stanowią potencjalne źródło zagrożenia dla systemu, ale bezpieczeństwo systemu jest poza zakresem tej książki. Zachęcamy do użycia materiałów przedstawionych poniżej, aby lepiej poznać tematy bezpieczeństwa i uprawnień systemowych.
-
su
(1) — Strona dokumentacji dla polecenia su przedstawia informacje odnośnie dodatkowych opcji, które można podać wraz z tym poleceniem. -
sudo
(8) — Strona dokumentacji dla polecenia sudo przedstawia dokładny opis zachowania tej komendy oraz opisuje jakie są możliwości zmiany ich zachowania. -
pam
(8) — Strona dokumentacji opisuje jak używać wtyczek z modułami uwierzytelniania (Pluggable Authentication Modules, (PAM)) dla systemu Linux.
-
Poradnik Bezpieczeństwa Red Hat Enterprise Linux 7 opisuje dokładniej potencjalne ryzyka bezpieczeństwa podczas używania programów typu setuid, oraz jak im zapobiegać.
-
Managing_Users_and_Groups.adoc#ch-Managing_Users_and_Groups opisuje jak zarządzać użytkownikami i grupami za pomocą zarówno graficznego interfejsu użytkownika, jak i za pomocą linii komend.