Polska społeczność Fedora Linux

Poradniki

Sudo w Fedorze

Podstawowa konfiguracja

Fedora, podobnie jak inne dystrybucje Linuksa posiada uprzywilejowanego użytkownika „root” oraz zwykłych użytkowników. „root” jest „superużytkownikiem”, czymś w rodzaju Administratora w Windows.

Do codziennej pracy należy używać zwykłego konta utworzonego w trakcie pierwszego po instalacji uruchomienia systemu. Uprawnienia roota potrzebne są tylko do wykonywania czynności administratorskich i instalacyjnych.

Uprawnienia roota można uzyskać na dwa sposoby:
– sposób opisany w artykule konto roota (polecenie su)
– polecenie sudo
Polecenie sudo wymaga jednak odpowiedniego przygotowania.

Najprostsza konfiguracja: po zalogowaniu się na konto roota należy wykonać polecenie:

echo 'loginname ALL=(ALL) ALL' >> /etc/sudoers

gdzie „loginname” to nazwa zwykłego użytkownika.

Plik /etc/sudoers można edytować bezpośrednio jednak aby uniknąć błędnych wpisów należy wykorzystywać do tego celu polecenie visudo. Polecenie to przy wychodzeniu z zapisem z trybu edycji sprawdza poprawność składni w pliku.

Wskazówka. Polecenie visudo otwiera plik w edytorze vi, raczej nieprzyjaznym dla początkujących. Warto więc wcześniej poznać podstawy tego edytora. Można także ustawić inny edytor np. bardziej przyjazne konsolowe edytory nano lub mcedit. W tym celu trzeba ustawić zmienną EDITOR np. export EDITOR=nano

Teraz można już wykonać polecenia administracyjne z konta zwykłego użytkownika wykorzystując składnię sudo. Przed wykonaniem polecenia użytkownik zostanie zapytany o hasło. Należy podać hasło użytkownika nie roota.

Wskazówka. Po podaniu hasła jest ono pamiętane przez 5 minut i nie trzeba go w tym czasie podawać przy wykonywaniu następnych poleceń sudo. Czas przez jaki pamiętane jest hasło możemy zmienić w pliku /etc/sudoers

Licznik czasu możemy wyzerować zyskując kolejne 5 minut wydając polecenie:

sudo -v

Możemy także nakazać natychmiastowe „zapomnienie” hasła:

sudo -k

Można również wykonać polecenie sudo z uprawnieniami roota bez podawania hasła.

Uwaga! Należy zaznaczyć, że nadanie uprawnień do wykonania polecenia sudo bez podania hasła jest szczególnie groźne z punktu widzenia bezpieczeństwa systemu.

Jeżeli mimo wszystko zdecydujemy się na takie rozwiązanie, należy jako root wykonać polecenie:

echo 'loginname ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

Konfiguracja zaawansowana

Najczęściej wpis w /etc/sudoers nadający uprawnienia użytkownikom/grupom ma postać:

loginname system = polecenie1 [, polecenie2, ... polecenieN]

lub

%groupname system = polecenie [, polecenie2, ... polecenieN]

loginname – to nazwa użytkownika występująca w systemie. Uprawnienia można nadać od razu większej ilości użytkowników przypisując ich do określonej grupy. Nazwę grupy w /etc/sudoers poprzedzamy znakiem „%”.
system – nazwa systemu, z którego powinien być zalogowany użytkownik lub grupa, aby móc wykonać polecenie. W warunkach domowych, na typowym desktopie możemy podać w tym miejscu „localhost” lub użyć predefiniowanego aliasu „ALL”. Użycie „ALL” zezwoli na wykonywanie polecenia również użytkownikom/grupom zalogowanym zdalnie.
polecenie – polecenie systemowe z pełną ścieżką lub alias „ALL”. „ALL” oznacza w tym przypadku zezwolenie na wykonywanie wszystkich poleceń.
Dodatkowo możemy przed poleceniem użyć opcji PASSWD lub NOPASSWD.
– Opcja NOPASSWD oznacza, że użytkownik/grupa może wykonać polecenie bez podawania hasła.
– Opcja PASSWD jest domyślna, więc nie zazwyczaj nie ma potrzeby jawnego jej używania, chyba że wcześniej użyto opcji NOPASSWD.

Przykłady:

Poniższy wpis umożliwia wszystkim członkom grupy „users” zalogowanym lokalnie na wykonanie polecenia shutdown (tutaj natychmiastowe zamknięcie systemu) bez podawania hasła

%users localhost=NOPASSWD:/sbin/shutdown -h now

Kolejny wpis nadaje użytkownikowi „franek” zalogowanemu lokalnie na bezzwłoczne wyłączenie systemu bez podawania hasła oraz na wykonywanie polecenia fdisk po podaniu hasła.

franek localhost=NOPASSWD:/sbin/shutdown -h now, PASSWD: /usr/bin/fdisk

Napisz komentarz

Polska Społeczność Fedora Linux.
Logo Fedora jest znakiem towarowym należącym do Red Hat Inc. | Polska strona fedora.pl jest administrowana i utrzymywana przez osoby niezależne od Red Hat Inc.
O ile treść nie stanowi inaczej, artykuły na tej stronie są dostępne na licencji Creative Commons Attribution-ShareAlike 4.0 International License. | Kontakt do redakcji: redakcja fedora.pl