Käyttäjien hallinta
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
Debianissa on käytössä myös vastaavat, hieman monipuolisemmat komennot:
* adduser käyttäjä * deluser käyttäjä * addgroup ryhmä * delgroup ryhmä * adduser käyttäjä ryhmä * deluser käyttäjä ryhmä
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. Komento adduser kysyy myös salasanan ja finger-tiedot. Sille voi antaa valitsimen --system, jolloin käytetään järjestelmäkäyttäjille (ei-ihmisille) sopivia oletuksia.
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, paitsi ensimmäisenä merkkinä. Muita merkkejä ei yleensä kannata käyttää; esimerkiksi kirjaimet 'ä' ja 'ö' saattavat aiheuttaa suuriakin ongelmia.
useradd ja adduser luovat haluttaessa kotihakemistot ja kopioivat sinne tiedostot hakemistosta /etc/skel, muuttaen omistajaksi uuden tunnuksen.
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. deluser huolehtii haluttaessa tästä. 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. addgroup ja delgroup toimivat vastaavasti, komennolle addgroup voi lisäksi antaa valitsimen --system, luotaessa ryhmiä ohjelmien käyttöön.
Jos ennen ryhmän poistamista tahtoo etsiä sille 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.