Sudo: najčešća uporaba i konfiguracija
Naredba sudo omogućava administratoru sustavu raspodjelu zaduženja, tako što drugim korisnicima omogućava pokretanje određenih naredbi kao 'root' korisnik, a da im pri tome ne mora reći zaporku root korisnika.
Iako je izrazito fleksibilna u definiranju tko i što može izvršiti, uporaba naredbe sudo se obično ograničava na nekolicinu korisnika s dovoljnim znanjem za obavljanje određenih administrativnih zadataka (ili onih zadataka gdje je potrebna samo viša razina ovlasti).
Uporaba naredbe sudo je jednostavna, no prije toga moramo definirati korisnike koji mogu rabiti ovu naredbu. Konfiguracijsku datoteku /etc/sudoers uređujemo pomoću posebne naredbe visudo.
VAŽNO: iako se kofiguracijska datoteka /etc/sudoers može editirati i direktno, činite to isključivo preko naredbe 'visudo', koja ujedno vrši i sintaktičku provjeru. Naredba sudo neće raditi ako postoji greška u konfiguraciji, što može dovesti do određenih problema (izgubite administratorski pristup jer se ne sjećate ili nemate rootovu zaporku, primjerice)!
Dakle, dodajmo nekoliko korisnika u datoteku /etc/sudoers:
# visudo
root ALL=(ALL) ALL
pero ALL=(ALL) ALL
marko ALL=(ALL) ALL
Dodali smo korisnike (root, pero, marko) koji mogu pokrenuti bilo koju naredbu, ali s privilegijama root korisnika. Uporaba je:
$ sudo naredba
Konkretnije, pretpostavimo da smo korisnik 'marko':
marko@stroj$ sudo id
Password: <korisnikova zaporka>
uid=0(root) gid=0(root) groups=0(root)
Korisnik mora na naredbenoj liniji otkucati svoju vlastitu zaporku, i ta naredba će se izvršiti pod ovlastima root korisnika. To možemo vidjeti iz gornjeg primjera, gdje je uid (user id) jednak nuli, dakle root korisniku.
Ukoliko želite izvršiti još koju naredbu, nećete biti ponovno upitani za zaporku neko vrijeme (15 minuta). Nakon isteka tog vremena, opet će se pojaviti upit o zaporci. Naravno, ovo se događa iz sigurnosnih razloga.
Ukoliko korisnik ne otkuca dobru zaporku, dobit će poruku o grešci:
marko@stroj$ sudo vi /etc/postfix/main.cf
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: ******
marko is not in the sudoers file. This incident will be reported.
Svi se pokušaji pokretanja naredbe sudo zapisuju u syslog:
Mar 27 15:58:33 stroj sudo: marko : TTY=pts/6 ; PWD=/home/marko ;
USER=root ; COMMAND=/usr/bin/vi /etc/postfix/main.cf
Mar 27 22:13:17 stroj sudo: (pam_unix) authentication failure; logname=marko
uid=0 euid=0 tty=pts/6 ruser= rhost= user=marko
Ukoliko korisniku želimo ograničiti prava, možemo navesti naredbe koje može pokretati kao root:
koordinator ALL = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root, /sbin/reboot
Gornji redak omogućuje korisniku 'koordinator' da mijenja zaporku bilo kome osim root korisniku, te da restarta poslužitelj. Druge naredbe ne može izvršavati.
webmaster ALL = (www-data) NOPASSWD: ALL
Korisniku 'webmaster' gornjim retkom omogućava da izvršava bilo koju naredbu kao korisnik 'www-data', i to tako da ne mora unositi zaporku:
webmaster@stroj$ sudo -u www-data vi index.html
www-data@stroj$
Kao što smo rekli, svi se pokušaji, i uspješni i neuspješni, zapisuju u syslog. No, možda bi bilo dobro imati te logove izdvojene u posebnu datoteku kako biste lakši mogli nadgledati tko je i kada pokretao naredbu sudo.
Citirat ćemo dio iz manuala za sudoers (man sudoers):
logfile Path to the sudo log file (not the syslog log file).
Setting a path turns on logging to a file; negating this
option turns it off.
syslog Syslog facility if syslog is being used for logging
(negate to disable syslog logging). Defaults to authpriv.
Postupit ćemo po naputku, i u datoteku /etc/sudoers upisati:
Defaults:ALL !syslog
Defaults:ALL logfile=/var/log/secure.log
Ovo će izgasiti zapisivanje preko sysloga, te zapisivati isključivo u /var/log/secure.log, što može olakšati administriranje.
Za složenije konfiguracije postoje brojni primjeri u manualu za sudo i sudoers, kao i web stranica projekta na http://www.sudo.ws.
- Inačica za ispis
- Logirajte se za dodavanje komentara
- PDF version