Sudoers

Linux.fista
Versio hetkellä 25. toukokuuta 2013 kello 03.11 – tehnyt IDe- (keskustelu | muokkaukset) (→‎Peruskäyttö)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

/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.

Katso myös