Sudo

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania
Tools.png
Artykuł w budowie
Potrzebne uzupełnienie o bardziej szczegółowe przykłady jak np.nadanie praw określonej grupie, nadanie praw do poszczególnych poleceń.

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:

  1. sposób opisany w artykule konto roota (polecenie su)
  2. 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.
Warn.png
UWAGA!
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.

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 <polecenie> 
Przed wykonaniem polecenia użytkownik zostanie zapytany o hasło. Należy podać hasło użytkownika nie roota.
Tip.png
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.

Warn.png
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 jednak 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 



Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia