Käyttäjien ja ryhmien hallinta Linuxissa

Linuxissa jokaisella käyttäjällä on oma tunnus, ja käyttäjä kuuluu yhteen tai useampaan ryhmään. Käyttäjien ja ryhmien hallinta on helppoa, lyhyesti tiivistettynä:

Yleistä

Linuxissa jokaisella käyttäjällä 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.

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

Käyttäjien luonti ja poisto

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

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. Numerot ja väliviiva ovat myös "turvallisia" merkkejä, mutta esimerkiksi kirjaimet 'ä' ja 'ö' ovat vältettäviä.

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 userdel-komennolla, joko userdel tunnus tai userdel -r tunnus. Viimeksimainittu poistaa myös kotihakemiston ja mahdollisen meililaatikon. (Mutta ei esim. muissa hakemistoissa olevia, käyttäjän ylläpitämiä WWW-sivuja tms.)

Ryhmien luonti ja poisto

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

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.

Henkilökohtainen ryhmä

Fedora Core -linuxjakelussa jokaisella käyttäjällä on 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. Henkilökohtaisen ryhmän nimi on sama kuin tunnuksella. Juuri tästä johtuu, että ls -l tulostaa usein käyttäjätunnuksen kahteen kertaan.

Käyttäjätietojen selvittäminen

Edellä jo selvitettiin finger komentoa. -m -optio on myös kertomisen arvoinen: kun pelkkä finger matti kertoo tiedot käyttäjästä jonka käyttäjätunnus on matti, mutta myös kaikista muista joiden nimi on Matti, antaa finger -m matti vain tunnuksen "matti" tiedot.

Komennolla groups matti näkee mihin ryhmiin Matti kuuluu.

Ryhmään kuuluvat ihmiset saa helpoiten selville grep-komennolla. Usein pelkkä grep ryhmannimi /etc/group riittää, mutta jos haluaa varmistaa ettei joukkoon tule virheellisiä rivejä (haettaessa ryhmää "aila" löytyisi myös rivi jossa on nimi "Saila"), voi sanoa
grep -E '^ryhmannimi:' /etc/group

Sekalaisia huomioita

Jos tahtoo tarkistaa missä kaikkialla käyttäjän omistamia tiedostoja on, ne löytää sanomalla find / -user tunnus. Jos käyttäjä ehdittiin jo poistaa, pitää komennolla find / -nouser etsiä tiedostot joilla ei ole enää omistajaa.

Ryhmien osalta vastaavat komennot ovat find / -group ryhma ja find / -nogroup

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 suoraan tiedostoja /etc/passwd (käyttäjät), /etc/group (ryhmät) ja /etc/shadow (salasanat). Tämä on joskus nopeampaa, mutta ei suositeltavaa jos ylläpitäjiä on useampia.

Ryhmän admineiksi voi laittaa useampia yhdellä komennolla:
gpasswd -A tunnus1,tunnus2 ryhmannimi
Komento ei toimi käyttäjiä lisätessä. On myös mahdollista korvata ryhmän ihmiset kerralla uudella listalla:
gpasswd -M tunnus1,tunnus2 ryhmannimi
poistaa ensin ryhmästä kaikki tunnukset ja lisää siihen sitten kaksi käyttäjää.