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 :
Sama składnia polecenia dla użytkownika jest dość prosta :
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 :
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:
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ć :
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 :
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ć :
Jeżeli chcemy natomiast by wszyscy użytkownicy z grupy "users" posiadali możliwość wyłączenia maszyny bez pytania o hasło dodamy wpis:
W celu sprawdzenia jakie uprawnienia sudo posiadamy należy wydać polecenie :
sudo -l
Jestem pod wrażeniem. Bardzo ciekawie napisany artykuł.
OdpowiedzUsuń