Käyttäjät ja käyttäjäryhmät


Käyttäjät, käyttäjäryhmät, Käyttäjien nimeäminen, /etc/passwd, Ongelmia /etc/passwd:n suhteen, Keskitettyä käyttäjähallintaa

Käyttäjät

Pohjimmiltaan Linuxissa on kahdenlaisia käyttäjiä, tavallisia käyttäjiä ja pääkäyttäjä,super user, englanniksi root, joka on yleensä pääkäyttäjän käyttäjätunnus.

Pääkäyttäjä hallitsee ja ylläpitää koko järjestelmää. Hän voi lisätä käyttäjiä järjestelmään tai poistaa heitä järjestelmästä. Hän voi myös muuttaa näiden tietoja tai antaa heille uuden salasanan, jos tämä on heiltä unohtunut.

Pääkäyttäjällä ei ole mitään rajoituksia järjestelmässä, hän voi esimerkiksi käydä käyttäjien kotihakemistoissa, jos hän haluaa, tai lukea halutessaan näiden postia postipalvelimelta. Oikeastaan ainoa tapa estää pääkäyttäjää näkemästä tiedostojesi sisältöä, on yksinkertaisesti salakirjoittaa ne. Mikään suojaustason vaihtaminen ei onnistu eikä riitä!

Tästä syystä pääkäyttäjän tunnuksella järjestlemän käyttäminen on hyvin riskialtista. Yksi väärässä kohdassa kirjoitettu rm-komento saattaa saada pahojakin tuhoja aikaiseksi. Näin ollen, vaikka olisitkin mikrosi ainoa käyttäjä, kannattaa aina tehdä tunnus tavalliselle käyttäjälle ja käyttää sitä aina kun työskennellään mikrolla muuten. Ainoastaan erilaisissa ylläpitopuuhissa, kuten vaikkapa ohjelmia asennettaessa, käytetään root-tunnusta.

Jos joskus tarvitsee tehdä jokin asennus- tai muu operaatio pääkäyttäjänä, Linuxissa ei välttämättä tarvitse kirjautua ulos järjestelmästä. Voi joko vaihtaa virtuaalipäätettä (CTRL-ALT-F1 ... CTRL-ALT-F6 graafisessa ja ALT-F1 ... ALT-F6 tekstitilassa) ja kirjautua sisään root-tunnuksella.

Toinen vaihtoehto on su-käsky päätteellä:

su
Password:

su-komennolla (Switch User) voit vaihtaa itsesi toiseksi käyttäjäksi. komennon muoto on

su kayttajatunnus

ja jos käyttäjätunnusta ei anneta, oletetaan että ollaan vaihtamassa pääkäyttäjäksi. Komennon jälkeen pitää antaa käyttäjän (rootin) salasana.

Kun operaatio on valmis, voidaan joko sulkea pääteikkuna exit-komennolla tai jatkaa muualla työtilassa työskentelyä. Pääkäyttäjän oikeudet toimivat vain tässä yhdessä pääteikkunassa, muualla olet edelleen se ns. tavallinen käyttäjä.


Käyttäjien nimeäminen

Linuxissa käytetään Unix-maailmasta tuttua tapaa, jossa käyttäjätunnusten pituus on maksimissaan 8 merkkiä. Linuxissa käyttäjätunnuksen maksimipituus on 32 merkkiä.Kuitenkin tällöin menetetään yhteensopivuus eri järjestelmien välillä. Tietenkin jos yhteyksiä ei ole taikka ne ovat eri Linux-järjestelmien välilä, tämä ei liene ongelma....

Käyttäjätunnuksessa voi käyttää kirjaimiaa-z, A-Z, numeroita ja muutamia erikoismerkkejä. Skandimerkkejä (ÅÄÖ) eisaa käyttää. Isot kirjaimet ovat luonnollisesti eri asia kuin pienet.Lisäksi tunnuksen pitäisi alkaa jollakin muulla merkillä kuin numerolla.


Käyttäjäryhmät

Linuxissa jokaisen tiedoston omistaa joku. Omistussuhde määrittää sen, kuka saa tiedostolle tehdä ja mitä. Tarkastellaan seuraavaksi ls -l -komennon listausta: (ls näyttää hakemiston sisällön, -l -optio taas kertoo haluttavan yksityiskohtaisen listauksen.

drwxr-xr-x    2 ile	 user           9 Mar  9  1999 Mail
drwxr-xr-x    2 ile      user           9 Mar  9  1999 News
drwxr-xr-x    2 ile	 user         156 Sep 13 21:11 bin
-rw-------    1 ile	 user         578 Sep 10 12:46 dead.letter
-rw-r--r--    1 ile	 user       12480 Nov 28  1998 eyetest.gif
drwxr-xr-x    2 ile	 user          65 Feb  4  1998 htmlvara
drwxr-xr--    2 ile	 user          57 Sep 13 14:08 kokeilut
drwx------    2 ile	 user        4096 Sep 17 13:29 mail
drwxr-xr-x    2 ile	 user        4096 May 11 13:14 public_html
drwx------    2 ile	 user        4096 Sep  2  1998 ryhmat
-rw-r--r--    1 ile	 user       27136 Feb  5  1999 tiedote.doc

Listauksen kaksi saraketta keskellä kertovat tiedostojen omistajan (ile) sekä ryhmän, jolle tiedosto kuuluu (user). Ryhmä on oletusarvoisesti se ryhmä, johon tiedoston omistaja kuuluu. Käyttäjä määritellään kuuluvaksi johonkin ryhmään, kun hänen käyttäjätunnuksensa luodaan. Tämä mahdollistaa sen, että järjestelmään voidaan määritellä eritasoisia oikeuksia, riippuen siitä, mihin ryhmään käyttäjä kuuluu. Esimerkiksi tarkistellaan em. listauksesta riviä

drwxr-xr--    2 ile	 user          57 Sep 13
14:08 kokeilut

Tässä 10 ensimmäistä merkkiä (drwxr-xr--) määrittelevät eri ryhmien oikeudet:

  • ensimmäinen merkki kertoo tiedoston tyypin. 'd' tarkoittaa hakemistoa (directory), '-' on tavallinen tiedosto..
  • seuraavat kolme merkkiä (rwx) kertovat omistajan ("ile") oikeudet. Omistajalla on kaikki oikeudet tiedostoon (r - read, luku, w - write, kirjoitus sekä x - eXecute, suoritus)
  • kolme seuraavaa merkkiä (r-x) kertovat ryhmän ("user") oikeudet. Kaikki käyttäjät, jotka kuuluvat tähän ryhmään saavat näin ollen luku- ja suoritusoikeudet tiedostoon.
  • viimeiset kolme merkkiä (r--) kertovat kaikkien muiden käyttäjien oikeudet.

Linuxissa "tavalliset" käyttäjät jaetaan siis kolmeen ryhmään:

  1. Omistaja, user (u)
  2. Ryhmä, group (g)
  3. Muut, others (o), "koko maailma"

...eli aivan normaali Unix-jako!


/etc/passwd-tiedosto

Perus-unixissa jokaista käyttäjää kohti yksi rivi tiedostossa /etc/passwd. Tiedostoon on jokaisella käytäjällä lukuoikeus ja se näyttää esim. tällaiselta:

ile:x:4774:140:Ilpo Kuivanen:/home/ile:/bin/bash
 1  2  3    4   5             6          7

Ensimmäisenä tiedostossa on käyttäjän käyttäjätunnus. Kentät erotetaan toisistaan kaksoispisteellä. Käyttäjätunnuksen jälkeen tulee joko salakirjoitetttuna käyttäjän salasana tai "x", kuten esimerkissä. Tämä tarkoittaa, että salasanat on piilotettu salakirjoitettuina /etc/shadow-tiedostoon. Tähän tiedostoon ei tavallisella käyttäjällä ole lukuoikeuksia ollenkaan.

kaksi lukua seuraavana ovat käyttäjän id-numero ja käyttäjän ryhmän id-numero. Näitä seuraa käyttäjän nimi (mielivaltainen merkkijono), käyttäjän kotihakemisto (yleensä sama kuin käyttäjätunnus) sekä lopulta käyttäjän komentotulkki.

Ns. normaalien käyttäjien lisäksi järjestelmässä on yleensä erilaisia erikoiskäyttäjiä, joita käytetään esimerkiksi erilaisten palvelinten yhteydessä ja näillä voidaan määritellä oikeuksia satunnaisille vierailijoille. Esimerkkinä vaikkapa käyttäjä nimeltään nobody: Koska jokaisella palvelimen käyttäjällä pitää olla käyttöoikeus järjestelmään, näin tarvitaan käyttäjätunnus myös jopa www-sivujen selailua varten. Asia on ratkaistu siten, että määritellään järjestelmään käyttäjä, jolla ei ole käytännössä oikeuksia mihinkään muuhun kuin tiedostojen katseluun tietyissä hakemistoissa. nobody-käyttäjä on tällainen. Www-palvelin tulkitsee sitten kaikki sivujen lukijat tämän nimiseksi käyttäjäksi ja toimii sen oikeuksien mukaan.


Ongelmia /etc/passwd:n suhteen

Tiedostoon /etc/passwd perustuva käyttäjähallinta on luotu aikakaudella, jossa tietojenkäsittelyä hoidettiin keskuskoneisiin liitetyillä päätteillä. Näin ollen sen toimintaperiaate on monessa suhteessa nykyisissä hajautetuissa tietojenkäsittely-ympäristöissä ongelmallinen. Esimerkiksi PC:illä tapahtuva tietojenkäsittely: on erittäin hankalaa, jos jokaiselle firman tai koulun tietokoneelle pitäisi luoda oma käyttäjätietokantansa. Lisäksi niiden ajantasalla pitäminen olisi erittäin hankalaa ja monimutkaista.

Ongelmaksi voidaan myös lukea se, että jokainen käyttäjä pääsee lukemaan tämän tietokannan sisältöä ja hakemaan sieltä heidän salasanatkin pahimmassa tapauksessa. Unixien salaus perustuu crypt()-nimiseen funktioon (C-kielen peruspalikka) ja tämä salaus on jo iät ja ajat sitten todettu erittäin heikoksi. Asia voidaan korjata käyttämällä shadow-salasanoja ja MD5-salausta, joka on salauksena huomattavasti parempi kuin crypt.


Keskitettyä käyttäjähallintaa

Keskitettyä käyttäjähallintaa varten on luotu erilaisia ratkaisuja. Näissä ideana on se, että perustetaan palvelin, joka hallinnoi käyttäjätietokantaa. Muut koneet sitten sisäänkirjautumisvaiheessa hakevat käyttäjätiedot tältä palvelimelta. Näin ei tarvitse jakaa käyttäjätietoja useaan paikkaan. Tavanomaisimmat ratkaisut asian hoitamiseksi ovat NIS ja LDAP.

Käyttäjän kannalta on jokseenkin sama, mitä menetelmää käytetään. Hyvin toteutettu järjestelmä näyttää käyttäjältä aivan samalta kuin hän kirjautuisi sisään järjestelmään, jossa käytetään perinteistä unix-käyttäjähallintaa /etc/passwd-tiedostoineen kaikkineen.

NIS, eli Network Information Server on jo jokseenkin iäkäs, alunperin Sunin Yellow Pages-nimellä luoma järjestelmä keskitettyyn käyttäjähallintaan. NIS-järjestelmässä on sekä NIS-palvelin ja NIS-asiakkaita. NIS-palvelin sisältää tiedot NIS-piiristä, johon kuuluvat koneet autentikoivat käyttäjät NIS-palvelimella olevasta käyttäjätietokannasta. Näin /etc/passwd-tiedosto jää käytännössä merkityksettömäksi. Järjestelmä kuitenkin rakennetaan siten, että pääkäyttäjän tunnukset ovat paikallisia. Näin root pääsee kirjautumaan yksittäisille koneille, vaikka palvelin olisikin alhaalla. On myös mahdollista tehdä muitakin paikallisia tunnuksia NIS-tunnusten rinnalle, jos näin halutaan.

Periaatteessa NT:n domain-järjestelmä on saanut runsaasti vaikutteita NIS:stä. Ilmeisesti se on jollain tasolla suoraan NIS:stä kopioitu.

NIS:n suurin ongelma on tietoturva. Sitä pitäisi oikeastaan käyttää ainoanstaan ns. luotetussa verkossa, jossa voidaan olla varmoja, että kirjautuva kone on juuri se, miksi itseään väittää. NIS nimittäin luottaa sokeasti siihen, mitä asiakas väittää olevansa. Lisäksi NIS:n suojaukset ovat kehnot.

NIS:n yhteydessä lienee puolipakollista kertoa, miksi sen nimi vaihdettiin Yellow Pagesta NIS:ksi. Syy oli se, että "Yellow Pages" oli Britannian puhelinlaitoksen rekisteröimä tavaramerkki. Tästä alkuperäisestä nimestä kuitenkin juontaa juurensa se, että NIS:n mukana tulevien apuohjelmien nimet alkavat kirjaimilla "yp": Esimerkiksi yppasswd on ohjelma, jolla voidaan vaihtaa salasana.

LDAP, eli Lightweight Directory Access Protocol NIS:n lisäksi toinen tapa luoda keskitetty käyttäjien autentikointi. Ideana siinäkin on perustaa palvelin, joka hoitaa käyttäjätietokannan ylläpidon. NIS:iin verrattuna LDAP on moduulinen: otetaan moduuli, joilla liitetään järjestelmä palvelimeen, joka oikeasti pitää yllä käyttätietokantaa. LDAP:n avulla voidaan autentikointi hoitaa aivan eri järjestelmistä, esimerkiksi NT:n käyttäjätietokannasta tai Novellin Directory Servidestä.

LDAP:ssa on kiinnitetty enemmän huomiota tietoturvaan ja se on huomattavasti turvallisempi järjestelmä kuin NIS.


Alkuun