Przejdź do głównej zawartości

SUDO - nadawanie uprawnień użytkownikom Linux

Sudo to polecenie (funkcja) w środowiskach Linux umożliwiająca wykonywanie poleceń (programów) przez  wybranych użytkowników z uprawnieniami innych użytkowników np.: z uprawnieniami "root". Aby wybrany użytkownik mógł wykonywać polecenia , które są poza jego standardowymi uprawnieniami musi zostać dodany odpowiedni wpis w pliku konfiguracyjnym kontrolującym polecenie sudo. Plikiem konfiguracyjnym jest zazwyczaj :

/etc/sudoers 

Strona domowa projektu : http://www.sudo.ws/

Sama składnia polecenia dla użytkownika jest dość prosta : 

sudo [polecenie do wykonania z poziomu roota]

Po wydaniu polecenia ( jeżeli nie ustawiono opcji bez hasła) użytkownik zostanie poproszony o podanie hasła i jest to hasło własne nadane użytkownikowi.

Po podaniu hasła zostaje ono zapamiętane na 5 min i nie trzeba go podawać ponownie podczas wykonywania poleceń sudo. Konfiguracja czasu pamiętania hasła jest skonfigurowana w pliku /etc/sudoers. Użytkownik może również przedłużać pamiętanie hasła o kolejny interwał ( domyślnie kolejne 5 min ) wydając polecenie: 

sudo -v 

możemy również zarządać natychmiastowe zapomnienie hasła poleceniem : 

sudo -k 

Najprostsze podstawowe ustawienie można przeprowadzić wydając z konta "root" polecenie : 

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

gdzie "loginname" to nazwa zwykłego użytkownika. 

Jeżeli nie ma potrzeby wymagania podawania hasła przez użytkownika podczas gdy będzie wykonywał polecenia sudo możemy wyłączyć opcje pytania o hasło poprzez dodanie wpisu: 

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

Pomimo tego, że plik /etc/sudoers możemy edytować bezpośrednio np edytorem vi czy nano lepiej jest jednak skorzystać z narzędzia specjalnie przygotowanego w tym celu o nazwie : visudo. Polecenie to jest lepsze ponieważ w momencie wychodzenia z edycji w raz zapisaniem zmian w pliku zostaje również przeprowadzony test poprawności składni i w razie wystąpienia błędów wyświetlony zostanie stosowny komunikat. 

Zazwyczaj wpisy dotyczące uprawnień sudo w pliku /etc/sudoers maja postać : 

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

gdzie "loginname" oznacza nazwę użytkownika, "system" host z jakiego możliwe będzie wykonywanie polecenia, czyli system do którego musi być zalogowany użytkownik w chwili wydawania polecenia sudo oraz  "polecenie1 ..." polecenia jakie będzie mógł wykonywać dany użytkownik poza poziomem własnych uprawnień. 

Możemy również tym sposobem nadać uprawnienia dla całej grupy użytkowników w postaci : 

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

gdzie "groupname" oznacza nazwę grupy w systemie, a pozostałe parametry jak wyżej. Pamiętać należy by nazwę grupy poprzedzić znakiem "%". 

Dla przykładu wpis umożliwiający wykonanie polecenia "fdisk" użytkownikowi "user1" zalogowanemu lokalnie oraz bez podawania hasła ma postać : 

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

Jeżeli chcemy natomiast by wszyscy użytkownicy z grupy "users" posiadali możliwość wyłączenia maszyny bez pytania o hasło dodamy wpis: 

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

W celu sprawdzenia jakie uprawnienia sudo posiadamy należy wydać polecenie :

sudo -l 

Dokumentacja (manual) dla wersji 1.8.6 - http://www.sudo.ws/sudo/man/1.8.6/sudo.man.html

Komentarze

Prześlij komentarz

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości