Root ja muut käyttäjätunnukset

Linux-käyttöjärjestelmässä, kuten muissakin UNIX-pohjaisissa käyttöjärjestelmissä, on mahdollisuus käyttää useita käyttäjätunnuksia. Käyttäjätunnus on kokonaisuus johon kuuluu tunnus, salasana, komentotulkki (engl. shell) ja kotihakemisto. (näiden tarkoituksesta myöhemmin lisää) Perinteisesti Linuxin käyttäjätunnukset ovat listattuna tiedostossa /etc/passwd, joka näyttää tällaiselta:

Esimerkki 2-1. /etc/passwd

root:AAAAAAAAAAAAA:0:0:root:/root:/bin/tcsh   
esko:BBBBBBBBBBBBB:500:100:Esko Peruskayttaja:/home/esko:/bin/tcsh
   

Tiedostossa olevat merkinnät ovat erotettuna ':'- merkillä. Jokainen rivi on uusi käyttäjätunnus. Rivit tiedostossa ovat muotoa:

tunnus : salasana : UID : GID : kommentti : kotihakemisto : komentotulkki
     

Jokaisen kohdan erillinen selitys:

tunnus

Tämä on käyttäjätunnus. Järjestelmässä ei voi olla kahta samannimistä tunnusta käytössä yhtäaikaa.

salasana

Vanhemmissa järjestelmissä (kuten tässä on oletettu) tällä kohdalla on salasana salattuna crypt-ohjelmalla. Uudemmissa järjestelmissä (jotka käyttävät ns. Shadow-järjestelmää) on tällä kohdalla pelkkä x (tai *), ja oikea salattu salasana sijaitsee /etc/shadow-tiedostossa, jossa on myös muuta tietoa ko. käyttäjästä. Salasanaa voi jokainen käyttäjä vaihtaa passwd-komennolla. Käyttäjän ei tarvitse huolehtia itse salasanan salauksesta vaan passwd-ohjelma hoitaa sen käyttäjän puolesta. Lisäksi passwd-komento "huomaa" myös /etc/shadow tiedoston ja päivittää salasanan sinne ilman käyttäjän puuttumista. Yleensäottaen Linux-järjestelmän (ja muiden UNIX-varianttien) salasanat eivät ole kovin turvallisia, sillä salasanan enimmäispituus on vain kahdeksan merkkiä. Sen vuoksi on tärkeää että salasana valitaan huolella. Salasanan tulisi olla 8 merkkiä pitkä ja sen tulisi sisältää pieniä ja isoja kirjaimia sekä numeroita. Esimerkkejä HUONOISTA salasanoista ovat sellaiset jotka ovat arvattavissa tai jotka sisältävät joitain yleisiä suomen tai englanninkielisiä (tai muunkielisiä) sanoja. HYVÄT salasanat ovat tyyppiä "hDuuJ3K1", ne eivät ole arvattavissa.

UID

UID on jokaiselle käyttäjälle /etc/passwd-tiedostossa määrätty User ID-numero. Jokaista tunnusta (yhdessä järjestelmässä) vastaa tasan yksi tunnus.

GID

GID (Group ID-number) on (pää-)käyttäjäryhmä, johon ko. tunnus kuuluu. Käyttäjäryhmät ja niitä vastaavat numerot ovat listattuna tiedostossa /etc/group

kommentti

Yleensä käyttäjän koko nimi.

kotihakemisto

Käyttäjän kotihakemisto. Kirjautumisen yhteydessä tämä kirjataan käyttäjäkohtaiseen ympäristömuuttujaan $HOME.

komentotulkki

Ohjelma joka ajetaan sisäänkirjautumisen yhteydessä. Yleensä tämä on komentotulkki, joka välittää komentosi Linux-järjestelmälle. Komentotulkkeja ovat esim. tcsh, bash, zsh ...

Käyttäjätunnuksella root on oikeus lukea, kirjoittaa ja ajaa kaikkien muidenkin käyttäjien tiedostoja. Lisäksi rootin käynnistämillä ohjelmilla on oikeus käsitellä kaikkia laitteita tietokoneessasi kovalevystä näytönohjaimeen. Tämä tarkoittaa sitä, että root-tunnuksella todellakin voi saada Linux-järjestelmänsä tuhottua. Käyttämällä jotain toista tunnusta suojaat järjestelmäsi tahattomilta kämmähdyksiltä. Sen vuoksi olisi aina suotavaa luoda Linux-järjestelmään erillinen tunnus, jota käyttää jokapäiväisessä käytössä. Seuraavassa esimerkki uuden tunnuksen luomisesta (# merkkaa käskyt jotka sinä kirjoitat): (kirjaudu sisään root-tunnuksella)

# cat /etc/passwd
root:x:0:0:root:/root:/bin/tcsh
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd: 
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
ftp:x:14:50:FTP User:/home/ftp: 
jatorvin:x:503:100:Jarmo Torvinen:/home/jatorvin:/bin/tcsh
     

lisätään uusi tunnus:

# useradd heppu
     

Komento lisää uuden käyttäjän, luo käyttäjän kotihakemiston ja kopioi tiedostot hakemistosta /etc/skel uuteen kotihakemistoon. Käyttäjän luomisessa käytetään oletusarvoja.

Katsotaan, että tunnus varmasti lisättiin. Kaikissa järjestelmissä ei käytetä tiedostoa /etc/shadow, jolloin kryptatut salasanat ovat tiedostossa /etc/passwd. Shadow-tiedosto on vain root-tunnuksen luettavissa, ja sen takia turvallisempi.

Esimerkki 2-2. /etc/passwd

root:x:0:0:root:/root:/bin/bash 
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin: 
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
ftp:x:14:50:FTP User:/home/ftp: 
jatorvin:x:503:100:Jarmo Torvinen:/home/jatorvin:/bin/tcsh
heppu:x:506:506::/home/heppu:/bin/bash
     

Esimerkki 2-3. /etc/shadow


root:hdh5Fdhsgd:10450:0:99999:7::: 
bin:*:10450:0:99999:7::: 
daemon:*:10450:0:99999:7:::
lp:*:10450:0:99999:7:::
sync:*:10450:0:99999:7:::
shutdown:*:10450:0:99999:7:::
halt:*:10450:0:99999:7:::
mail:*:10450:0:99999:7::: 
news:*:10450:0:99999:7:::
uucp:*:10450:0:99999:7:::
operator:*:10450:0:99999:7:::
ftp:*:10450:0:99999:7:::
jatorvin:hj67HDfsWgpW:10482:0:99999:7:-1:-1:134529876
heppu:!!:10577:0:99999:7:::
   

Käyttäjälle ei ole vielä asetettu nimeä tai salasanaa, joten asetetaan ne seuraavaksi:

#chfn heppu
Changing finger information for heppu.
Name []:Heppu Heppunen
Office []: 
Office Phone []: 
Home Phone []: 
Finger information changed.
#passwd heppu
Changing password for user juhani
New UNIX password: näppäile salasanasi
Retype new UNIX password:näppäile salasana uudelleen 
passwd: all authentication tokens updated successfully

     

Nyt olet luonut koneellesi uuden käyttäjän, ja asettanut sille nimen sekä salasanan. Voit kokeilla vasta luomaasi käyttäjää lopettamalla istunnon root-tunnuksella ja antamalla Login-kehotteeseen vasta luomasi käyttäjän tunnuksen ja salasanan.

Uudemmissa järjestelmissä voit muuttaa joitain käyttäjän luontiin käytettäviä arvoja muokkaamalla tiedostoja /etc/login.defs ja /etc/default/useradd.

Jos käytät konetta tekstitilassa, voit käyttää useampaa yhtäaikaista istuntoa valitsemalla näppäimillä Alt+F1-F6 käyttämäsi virtuaalikonsolin. Jos käytät X-ikkunointia, voit käyttää näppäimiä Ctrl+Alt+Fn päästäksesi virtuaalikonsoleille. X-ikkunointi käynnistyy ensimmäiselle vapaalle konsolille, yleensä numerolle 7.

Mikäli käytät konettasi verkon kautta pääteohjelmalla, virtuaalikonsolit eivät ole käytettävissä. Sen sijaan voit käyttää ohjelmaa nimeltä screen , jolla voit käyttää useampia virtuaalikonsoleita myös verkkoyhteyden kautta.