Sudo
Z FluxboxPL.org
Praca z sudo
Sudo jest programem dzięki któremu administrator może zezwolić dowolnemu użytkownikowi na wykonywanie programów i poleceń, do których normalnie nie miałby uprawnień. Dzięki sudo, pracując na koncie użytkownika nie musimy logować się na konto roota. W praktyce wygląda to tak: zamiast pisać su -> hasło -> komenda piszemy sudo komenda. Wystarczy tylko odpowiednio skonfigurować sudo. A w tym ma pomóc ten poradnik.
Spis treści
Pobieranie i instalacja.
Źródła programu do samodzielnej kompilacji można pobrać ze strony domowej projektu. Ponieważ sudo jest popularnym narzędziem administracyjnym dostępny jest w większości dystrybucji. Jeśli jednak nie mamy zainstalowanego sudo to przed kompilacją dobrze jest sprawdzić czy nie ma programu w repozytoriach naszego systemu.
Konfiguracja.
Konfiguracja sudo odbywa się poprzez edycję pliku /etc/sudoers. Plik ten powinien być edytowany tylko i wyłącznie za pomocą polecenia:
- visudo
zapobiega to sytuacji, że dwóch administratorów będzie jednocześnie edytować plik /etc/sudoers, a także gwarantuje zachowanie odpowiednich bitów uprawnień. Dodatkowym atutem konfiguracji przez visudo jest to, że sprawdzana jest składnia. Obsługa visudo sprowadza się do znajomości obsługi Vi.
2.a. Podstawowa składnia /etc/sudoers. Podstawowa składnia /etc/sudoers wygląda następująco:
użytkownik komputer = komenda
W skrócie polega to na tym, ze dany użytkownik będąc zalogowany na maszynie o nazwie komputer może wykonać komendę z prawami roota. Przykład:
kazik localhost = /usr/bin/vim
Uwaga. Jeśli nazwa komputera została zmieniona należy podać jego rzeczywistą nazwę.
2.b. Udzielanie członkom grupy XXX prawa do wykonywania polecenia YYY.
% XXX localhost = /ścieżka/do/polecenia/YYY
2.c. Zezwalanie na wykonanie wielu komend.
kazik localhost = /usr/bin/vim, /usr/bin/nail, /usr/bin/sane
Używanie sudo.
3.a. Podstawowe użycie sudo.
Polecenie $ sudo vim, którego efektem jest:
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
- 1) Respect the privacy of others.
- 2) Think before you type.
- 3) With great power comes great responsibility.
Password: (wpisać własne hasło, a nie roota)
Uwaga: sudo nie zmienia zawartości zmiennej $PATH. Żeby uruchomić z sudo program spoza własnej zmiennej $PATH należy podać pełną ścieżkę do programu np:
$ sudo /usr/sbin/checkinstall
Aliasy.
Jeśli mamy w systemie wielu użytkowników, którzy mogą logować się na inne komputery perspektywa przypisania do /etc/sudoers wszystkich potrzebnych kombinacji nie jest zbyt kusząca. Na szczęście mamy możliwość skorzystania z aliasów.
4.a. Aliasy w sudo.
Cmnd_Alias alias_polecenia = command1, command2, ... // aliasy komend
Host_Alias alias_hosta = hostname1, hostname2, ... //aliasy komputerów
User_Alias alias_użytkownika = user1, user2, ... //aliasy użytkowników
Standardowo istnieje już zdefiniowany alias ALL i jest on aliasem wszystkich możliwych wartości (w praktyce użytkownik sudo z uprawnieniem ALL jest równoważny rootowi).
PORADA: aby się nie pogubić przyjmuje się, że nazwy aliasów piszemy wielkimi literami.
4.b. Wykonywanie programu jako inny użytkownik (nie root). użytkownik komputer = (uruchom-jako) komenda(y)
Przykład:
kazik localhost = (adam, grześ) /usr/bin/vim
Teraz wydając komendę sudo -u adam vim, vim zostanie uruchomione przez użytkownika adam.
Hasła.
Po użyciu, sudo poinformuje użytkownika o konieczności wpisania hasła (hasła danego użytkownika). Hasło domyślnie zapamiętane jest na 5 minut. Po tym czasie będziemy musieli je podać ponownie, aby użyć komendy sudo.
5.a. Aby sudo nigdy nie zapamiętywało haseł. W tym celu należy dopisać w pliku /etc/sudoers:
Defaults:kazik timestamp_timeout=0
Wstawienie zamiast 0 liczby -1 spowodowałoby zapamiętanie hasła do czasu restartu systemu.
5.b. Żądanie hasła innego użytkownika. Należy dopisać do wiadomego pliku:
Defaults:adam runaspw, passwd_tries=2
Teraz sudo zażąda hasła użytkownika adam.
5.c. Aby sudo nie domagało się hasła. Należy wpisać:
kazik localhost = NOPASSWD: /usr/bin/vim
Oczywiście tej opcji należy używać rozważnie. Może to stanowić ogromne zagrożenie dla bezpieczeństwa systemu.
Inne opcje.
6.a. Sprawdzanie uprawnień.
sudo -l
6.b. Aby wydłużyć czas ważności hasła o kolejne 5 minut.
sudo -v
6.c Aby hasło zostało zapomniane od razu.
sudo -k
UWAGA NA KONIEC: znaki # i $ poprzedzające polecenia oznaczają jaki użytkownik powinien je wykonać, i tak # oznacza roota a $ zwykłego użytkownika.
Po więcej informacji o sudo odsyłam do manuali: man sudoers i man sudo.
Artykuł opublikowany w serwisie jakilinux.org
Ten artykuł udostępniony jest na licencji Creative Commons Uznanie Autorstwa. Oznacza to, że możesz kopiować, rozpowszechniać, odtwarzać i wykonywać utwór oraz tworzyć utwory zależne, pod warunkiem podania autora oryginału (largo3) oraz źródła (jakilinux.org) w postaci linku zwrotnego.