Sudoers
/etc/sudoers-asetustiedostossa määritetään asetukset ja komennot, joita tavallinen käyttäjä voi suorittaa toisen käyttäjän (yleensä pääkäyttäjän) oikeuksilla käyttäen sudo-ohjelmaa. Jotta tiedoston muokkaus on turvallista tulee sitä muokata visudo -ohjelmalla, joka muunmuassa tarkastaa syötteiden oikeellisuuden.
Peruskäyttö
Perussyntaksi oikeuksien määrittämiseen sudoers-tiedostossa on:
tunnus työasema=(käyttäjä jona komento ajetaan) komento(t)
Esimerkiksi annettaan käyttäjälle esko oikeus sammuttaa kone:
esko ALL=(root) /sbin/shutdown
Joten esko voi esimerkiksi tämän jälkeen käynnistää koneen uudelleen komennolla:
sudo shutdown -r now
Jos halutaan, että eskon ei tarvitse syöttää salasanaa komennon yhteydessä, lisätään riville NOPASSWD-optio. Useat komennot erotetaan toisistaan pilkulla:
esko ALL=(root) NOPASSWD: /sbin/shutdown,/sbin/reboot
Eskolle voidaan antaa oikeudet ajaa kaikkia komentoja pääkäyttäjänä rivillä
esko ALL=(root) ALL
Vastaavasti sama oikeus voitaisiin antaa kaikille "admin"-käyttäjäryhmään kuuluville käyttäjille rivillä
%admin ALL=(root) ALL
Annetaan käyttäjälle anna-liisa oikeus ajaa ohjelmia /usr/bin/firefox ja /bin/arch käyttäjänä esko:
anna-liisa ALL=(esko) /usr/bin/firefox, /bin/arch
Käyttäjäaliakset
Käyttäjät voidaan ryhmittää myös aliaksien avulla sudoers-tiedostossa:
# User alias specification User_Alias GURUT = esko, petteri, kameli
Tämän jälkeen aliasta voidaan käyttää tunnuksen asemesta.
GURUT ALL=(root)ALL
Komentoaliakset
Jos halutaan määritää useampia komentoja joita käyttäjä(t) voivat käyttäää. Voidaan nämä komennot myös ryhmittää aliaksen avulla:
# Cmnd alias specification Cmnd_Alias MOUNTS = /bin/mount,/sbin/mount.cifs,/bin/umount,/sbin/umount.cifs
MOUNTS aliakseen on määritetty liitoskomennot jotka voidaan myöntää käyttäjille:
GURUT=(root) NOPASSWD: MOUNTS
Kysyttävän salasanan valinta
Sudo kysyy oletuksena komennon suorittavan käyttäjän omaa salasanaa. Sen voi kuitenkin saada kysymään myös kohdekäyttäjän (yleensä root) salasanaa lisäämällä asetustiedostoon rivin
Defaults targetpw
Mikäli yhdessä tämän rivin kanssa lisätään rivi
ALL ALL=(ALL) ALL
mikä sallii kaikkien komentojen suorittamisen kaikkina käyttäjinä kaikille käyttäjille, käyttäytyy sudo käytännössä samoin kuin su.
Asetuksella
Defaults rootpw
voidaan sudo saada kysymään kaikissa tapauksissa rootin salasanaa, riippumatta siitä minä käyttäjänä (valitsin -u) komentoa ollaan ajamassa.
Aikaleiman vanhentuminen
Oletuksena käyttäjän aikaleima vanhentuu viidessä minuutissa, eli käyttäjä voi suorittaa komentoja viiden minuutin ajan ilman tarvetta salasanan uudelleensyöttämiseen. Aikaleiman vanhentumisaikaa on mahdollista muuttaa asetuksella
Defaults timestamp_timeout=minuuttimäärä
Asettamalla minuuttimäärän nollaksi salasanaa kysytään joka komennon yhteydessä. Negatiivinen minuuttimäärä tarkoittaa, ettei salasanaa ensimmäisen kerran jälkeen koskaan kysytä uudestaan.