forum dyskusyjne użytkowników wyjątkowej polskiej dystrybucji linuksa
amarok / incarnatus / Mr.Raggahashish
sudo - howto
Spis treści: 0. Sudo - czyli co? 1. Pobieranie i instalacja: 2. Konfiguracja: 2.a Podstawowa składnia /etc/sudoers 2.b Udzielanie członkom grupy XXX prawa do wykonywania polecenia YYY 2.c Zezwalanie na wykonanie wielu komend 3. Używanie sudo: 3.a Podstawowe użycie sudo 4. Aliasy: 4.a Aliasy w sudo 4.b Wykonywanie programu jako inny użytkownik ( nie root) 5. Hasła: 5.a Aby sudo nigdy nie zapamiętywało haseł 5.b Żądanie hasła innego użytkownika 5.c Aby sudo nie domagało się hasła 6. Inne opcje: 6.a Sprawdzanie uprawnień 6.b Aby wydłużyć czas ważności hasła o kolejne 5 minut 6.c Aby hasło zostało zapomniane od razu
0. Sudo – czyli co?
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ń. Pracując na koncie użytkownika nie musimy logować się na konto root'a. 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 to HOWTO.
2. 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.
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 komputer może wykonać komendę z prawami root'a. 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
3. 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 root'a)
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
4. 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_uzytkownika = user1, user2, ... //aliasy użytkowników
Standardowo istnieje już zdefiniowany alias ALL i jest aliasem wszystkich możliwych wartości.
PORADA: aby się nie pogubić przyjmuje się, że nazwy aliasów pisze się 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.
5. Hasła.
Po użyciu, sudo poinformuje użytkownika o konieczności wpisania hasła (hasła danego użytkownika). Hasło zostanie zapamiętane na 5 minut.
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
6. 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 root'a a $ zwykłego użytkownika.
Po więcej informacji o sudo odsyłam do man sudoers i man sudo.
źródło: http://forum.slackware.pl/viewtopic.php?t=11870
Offline