Sudo
Z Fedora Wiki
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/sudoersgdzie "loginname" to nazwa zwykłego użytkownika.
sudo <polecenie>Przed wykonaniem polecenia użytkownik zostanie zapytany o hasło. Należy podać hasło użytkownika nie roota.
sudo -vMożemy także nakazać natychmiastowe "zapomnienie" hasła:
sudo -k
Można również wykonać polecenie sudo z uprawnieniami roota bez podawania hasła.
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
