Czasami administratorzy Linuksa muszą wybranemu userowi dać prawo do uruchomienia programu standardowo dostępnego wyłącznie rootowi.
Atrybuty (prawa)
SUID/SGID opisane na
sąsiedniej stronie są przydatne, lecz stwarzają zagrożenie dla systemu, gdyż umożliwiają ewentualne przejęcie praw roota.
Trzeba więc poznać program
sudo (strona domowa:
http://www.sudo.ws) i tak go skonfigurować, by wybrany user musiał podać tylko swoje hasło usera (nie hasło roota) po wpisaniu:
sudo nazwaprogramu.
SUDO standardowo powinien być zainstalowany w systemie. Jeżeli go nie ma, to poszukaj na płytce CD paczki rpm ze słowem
sudo w nazwie lub skorzystaj ze zlecenia
urpmi.
Konfiguracja
sudo (pod rootem) odbywa się na dwa sposoby: poprzez ręczną edycję pliku /etc/
sudoers lub domyślnym edytorem
vi za pomocą zlecenia:
visudo
lub
sudo visudo -f /etc/sudoers.
Wpisy mają ogólną postać:
user1 host=(user2) program
czyli: użytkownik
user1 może wykonać na komputerze
host aplikację o nazwie
program z uprawnieniami użytkownika
user2.
W praktyce wygląd wpisów może mieć postać:
root ALL=(ALL) ALL
zezwala userowi
root na uruchomienie za pomocą
sudo wszystkich programów w systemie.
nazwausera1 ALL = ALL
zezwala userowi
nazwausera1 na uruchomienie (za pomocą
sudo) wszystkich programów w systemie (także będzie mógł zmienić hasło rootowi!).
nazwausera2 ALL = ALL, !/usr/bin/passwd root
zezwala userowi
nazwausera2 na uruchomienie (za pomocą
sudo) wszystkich programów w systemie oprócz polecenia zmiany hasła dla roota
nazwausera3 ALL = NOPASSWD: /usr/bin/crontab, PASSWD: /usr/bin/procmail, /usr/bin/lpr
zezwala userowi
nazwausera3 na uruchomienie (za pomocą
sudo) tylko trzech programów:
crontab,
procmail,
lpr, z tym, że do uruchomienia zleceń:
procmail,
lpr potrzebne jest hasło, a do uruchomienia zlecenia
crontab nie ma potrzeby podawania hasła.
%users ALL = NOPASSWD: /usr/bin/passwd, !/usr/bin/passwd root
zezwala userom należącym do grupy
users na uruchomienie (za pomocą
sudo) komendy
passwd, ale bez prawa do modyfikacji hasła usera root.
antek localhost=(root) /sbin/ifconfig
zezwala userowi
antek na uruchomienie "w imieniu" roota zlecenia
ifconfig, wyświetlającego interfejs sieciowy.
Zlecenie
visudo pracuje tak jak edytor
vi. Dlatego kilka słów na koniec o tym potężnym edytorze.
Uwaga: z powodu namnożenia się różnych złodziejskich witryn www, które kopiują moje strony i umieszczają je u siebie wraz z komercyjnymi reklamami (na których zarabiają) informuję, że wszelkie prawa są zastrzeżone.
Uwaga.
Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).