Käyttäjien hallinta

Linux.fista
Versio hetkellä 19. maaliskuuta 2008 kello 23.16 – tehnyt Maakuth (keskustelu | muokkaukset) (uid)
Siirry navigaatioon Siirry hakuun
Artikkeli soveltuu vain tietylle jakelulle vaikka sen tulisi käsitellä aihetta neutraalisti. Sitä tulisi muuttaa siirtämällä jakeluriippuvaiset yksityiskohdat Jakelukohtaista kappaleen alle - tai koko sivu kyseisen jakelun alasivuksi.

Linuxissa jokaisella käyttäjällä on käyttäjänimi sekä tunnistenumero (UID), ja käyttäjä kuuluu yhteen tai useampaan ryhmään. Käyttäjien ja ryhmien hallinta on helppoa, lyhyesti tiivistettynä:

   * useradd kayttaja
   * userdel kayttaja
   * groupadd ryhma
   * groupdel ryhma
   * gpasswd -a kayttaja ryhma
   * gpasswd -d kayttaja ryhma 

Yleistä

Linuxissa jokaisella käyttäjällä ('maija', 'matti') on oma käyttäjätunnus. Lisäksi on aina vähintään pääkäyttäjän root-tunnus, ja toisinaan luodaan myös jotain tehtävää varten omia ei-henkilökohtaisia käyttäjätunnuksia ('myynti', 'kanslia'). Järjestelmässä on myös teknisiä tunnuksia mm. erilaisia palveluita varten ('mail', 'wwwdata').

Jokainen käyttäjä kuuluu yhteen tai useampaan ryhmään. Ryhmät vastaavat yleensä reaalimaailman ryhmiä, esimerkiksi jonkin projektin osallistujia tai yrityksen tietyn osaston työntekijöitä.

Jokaisella tiedostolla ja hakemistolla on joku käyttäjä omistaja ja täsmälleen yksi ryhmä. Siis yksi käyttäjä voi kuulua moneen ryhmään, yksi tiedosto ei. Tämä kirjoitus ei selitä tiedostojen oikeuksia, tarvittaessa lue Opi Linux ja tiedostojen oikeudet Akun ja Iineksen kanssa.

Käyttäjätunnuksia ja ryhmiä voi hallita vain root. Seuraavat komennot antavat virheilmoituksen, jos muu kuin root käyttää niitä. Poikkeuksena on gpasswd, jota voivat käyttää myös ryhmän ylläpitäjät, jos sellaisia on määritelty, sekä sudon tai vastaavan järjestelyn kautta käytettävät skriptit.

Jos käytössä on NIS, NFS, Samba tms., tämä järjestely on huomioitava käyttäjähallinnassa. Alla kuvatut komennot eivät silloin välttämättä toimi odotetulla tavalla.

Käyttäjien luonti ja poisto

Käyttäjätunnus lisätään komennolla useradd. Tämän jälkeen tunnukselle asetetaan salasana komennolla passwd. Käytännössä kannattaa myös lisätä finger-tietoihin käyttäjän nimi komennolla chfn (ellei tietoja määritelty käyttäjätunnusta luotaessa).

Useradd on äärimmäisen yksinkertainen: useradd tunnus lisää käyttäjätunnuksen "tunnus". Jos komento onnistuu, se ei tulosta mitään. Tunnuksen on hyvä olla korkeintaan 8 merkkiä pitkä ja koostua pienistä kirjaimista a-z. Myös numeroita käytetään yleisesti. Muita merkkejä ei yleensä kannata käyttää; esimerkiksi kirjaimet 'ä' ja 'ö' saattavat aiheuttaa suuriakin ongelmia.

passwd tunnus kysyy salasanan juuri luodulle käyttäjälle, kirjoitusvirheiden varalta kahteen kertaan. chfn tunnus kysyy ns. finger-tiedot, jotka näet komennolla finger tunnus. Nimi kannattaa aina lisätä heti luonnin jälkeen, jotta vielä ensi vuonna tietää kenen tunnus "vpvirt" olikaan.

Käyttäjien poisto tapahtuu komennolla userdel, joko userdel tunnus tai userdel -r tunnus. Viimeksimainittu poistaa myös kotihakemiston (ja sähköpostitiedoston). Käyttäjän omistamia tiedostoja voi jäädä muuallekin – ne löytyvät ennen käyttäjän poistoa komennolla find / -user tunnus. Jos käyttäjä ehdittiin jo poistaa, pitää komennolla find / -nouser etsiä tiedostot joilla ei ole enää omistajaa. Tämänkin jälkeen käyttäjän tiedostoja on esimerkiksi varmuuskopioissa.

Ennen käyttäjän ja käyttäjän tiedostojen poistamista pitää varmistua siitä, etteivät muut käyttäjät tarvitse käyttäjän omistamia tiedostoja. Käytännössä tunnus kannattaa ensisijaisesti poistaa käytöstä lukitsemalla tunnus. Komento passwd -l tunnus estää kirjautumisen salasanalla. Kirjautuminen muuta kautta (varsinkin SSH:n avaimet) saattaa vielä olla mahdollista. Komentotulkin vaihtaminen sellaiseen, joka ei löydy tiedostosta /etc/shells, auttaa joidenkin palvelinten osalta. Tämä onnistuu esimerkiksi komennolla chsh -s /bin/false tunnus

Ryhmien luonti ja poisto

Tämä(kin) on helppoa: groupadd ryhma lisää ryhmän ja groupdel ryhma poistaa ryhmän.

Jos tahtoo ensin etsiä ryhmälle kuuluvat tiedostot, se onnistuu sanomalla find / -group ryhma. Jos tämä unohtui, voi sanoa find / -nogroup myöhemmin hakeakseen tiedostot joilta puuttuu ryhmä.

Käyttäjät ryhmiin

Myöskään käyttäjien lisääminen ja poistaminen ryhmistä ei rasita paljoa: gpasswd -a tunnus ryhma lisää ryhmään ja gpasswd -d tunnus ryhma poistaa ryhmästä.

Ylläpitäjä voi delegoida ryhmän hallinnan jollekin ryhmän jäsenistä. gpasswd -A tunnus ryhma tekee tunnuksesta "tunnus" ryhmän ylläpitäjän, joka voi käyttää gpasswd-komentoa liittääkseen tai poistaakseen käyttäjiä ryhmästä. Ryhmän ylläpitäjä voi antaa ylläpito-oikeuden eteenpäin samalla gpasswd -A -komennolla. Ryhmän ylläpito-oikeuksia ei voi suoraan poistaa, mutta toinen ylläpitäjä voi poistaa ylläpitäjän ryhmästä ja liittää takaisin, jolloin ylläpito-oikeus poistuu.

Joissakin linuxjakelussa jokaista käyttäjää vastaa henkilökohtainen ryhmä. Tämä on tavallaan kierto sille Linuxin rajoitukselle, että jokaisella tiedostolla pitää olla jokin ryhmä, vaikka se olisi tarkoitettukin vain yhden tunnuksen käyttöön. Käytäntöä voi muuttaa tiedostossa /etc/default/useradd, /etc/adduser.conf tai vastaavassa. Samalla on määriteltävä korvaava oletusryhmä (usein "users", gid 100).

Sekalaisia huomioita

Todellisuudessa tiedoston omistaja tallennetaan numerona, ja tiedostosta /etc/passwd katsotaan numeroa vastaava tunnus. Jos viimeksi luodun käyttäjän poistaa ja luo uuden, saa tämä uusi käyttäjä omistukseensa poistetun käyttäjän tiedostot. Ole siis varovainen! Omistajan tapaan myös tiedoston ryhmä on tallennettu numerona.

Käyttäjätietoja on mahdollista hallita myös muokkaamalla suoraan tiedostoja /etc/passwd (käyttäjät), /etc/group (ryhmät) ja /etc/shadow (salasanat). Tämä on joskus nopeampaa, mutta ei suositeltavaa, etenkään jos ylläpitäjiä on useampia. Tiedostoja voi myös silloin muokata komennoilla vipw ja vigr, jotka huolehtivat lukituksista.