Käyttäjätunnukset

Jokaiselle käyttäjälle on syytä tehdä ikioma käyttäjätunnus. Niin sanottu ryhmätunnus, siis tunnus jonka salasanan usea käyttäjä tietää ja käyttää tuota samaa tunnusta, on tietoturvariski ja mahdollistaa anonyymin pahanteon. Jos ryhmätunnuksella tehdään pahoja ei voi olla varma kuka sen teki.

Uusi käyttäjä luodaan komennolla adduser.

Esimerkki 5.3. Käyttäjätunnuksen luonti (NIS käytössä)

dilbert# adduser tapio
Adding user tapio...
make: Entering directory `/var/yp'
make[1]: Entering directory `/var/yp/koti.fi'
Updating netid.byname...
make[1]: Leaving directory `/var/yp/koti.fi'
make: Leaving directory `/var/yp'
Adding new group tapio (1017).
make: Entering directory `/var/yp'
make[1]: Entering directory `/var/yp/koti.fi'
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
make[1]: Leaving directory `/var/yp/koti.fi'
make: Leaving directory `/var/yp'
Adding new user tapio (1017) with group tapio.
make: Entering directory `/var/yp'
make[1]: Entering directory `/var/yp/koti.fi'
Updating passwd.byname...
Updating passwd.byuid...
Updating netid.byname...
Updating shadow.byname...
make[1]: Leaving directory `/var/yp/koti.fi'
make: Leaving directory `/var/yp'
Creating home directory /export/home/tapio.
Copying files from /etc/skel
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for tapio
Enter the new value, or press return for the default
	Full Name []: Tapio Lehtonen
	Room Number []: 
	Work Phone []: +358 40 123 123
	Home Phone []: 
	Other []: Lisätietoja
Is the information correct? [y/n] y
dilbert# 


Yllä olevassa esimerkissä on käytössä Network Information System eli NIS, tällöin käyttäjätunnusta luotaessa on myös NIS:n tietokantaan tehdään lisäykset.

Debian GNU/Linux luo jokaiselle käyttäjälle käyttäjätunnuksen lisäksi oman ryhmän. Käyttäjän kotihakemiston tiedostojen omistaja on käyttäjä ja ryhmäomistaja käyttäjän ryhmä (johon ei kuulu muita kuin käyttäjä itse). Lukuoikeuden antaminen muille omaan kotihakemistoonsa on huono idea, ei haittaa vaikkei kotihakemiston ryhmäomistajaa saakaan hyödynnettyä antamaan lukuoikeus rajoitetulle joukolle käyttäjiä.

Debian GNU/Linux asennusohjelma kysyy haluaako kaikkien luettavissa olevat käyttäjien kotihakemistot (world readable home directories). Jos on tarvetta muuttaa asennuksen aikana antamaansa vastausta voi /etc/adduser.conf:ssa muuttaa DIR_MODE:a. Samassa tiedostossa määritetään myös käyttäjien tunnisteiden arvoalue. Ne ovat numeroita väliltä FIRST_UID .. LAST_UID. Käytettäessä sekä NIS että paikallisia tunnuksia, on syytä käyttää molemmille omaa arvoaluetta.

Komentojen adduser, addgroup jne. käyttö on suositeltavaa. Toki voi muokata tiedostoja /etc/passwd ja /etc/group suoraan, esimerkiksi komennoilla vipw ja vigr, mutta tällöin pitää osata kirjoittaa rivit oikein. Kämmäyksen mahdollisuus kasvaa.

adduser kopioi luotavan käyttäjätunnuksen kotihakemistoon /etc/skel/ -hakemiston sisällön. Tämä on varsin kätevää, näin kaikille käyttäjille tulee halutut perustiedostot kotihakemistoon. Tiedostojen omistajaksi tulee luotava käyttäjätunnus. /etc/skel/ -hakemistossa voi olla myös piilotiedostoja, siis pisteellä alkavia tiedostonimiä, ja nekin kopioidaan.

Ryhmähakemisto

Mikäli työryhmälle tarvitaan hakemisto johon kaikki pääsevät lukemaan ja kirjoittamaan, on syytä luoda projektihakemisto jonka ryhmäomistajaksi tulee projektia varten luotu ryhmä (addgroup projekti). Projektin jäsenet lisätään tähän ryhmään komennolla adduser käyttäjä projekti.

Projektihakemistoon on kätevää pistää ryhmän oikeuksiin +s, jotta hakemistoon luodut tiedostot tulevat hakemiston ryhmän ryhmäomistukseen. Muuten niille tulee ryhmäksi käyttäjän ryhmä. Siis chmod g+s /home/projekti. BSD Unix toimii näin oletusarvoisesti, siis ilman s-bittiä ryhmälle.

Lisäksi pitää ryhmäläisien umask asettaa sopivaksi ainakin silloin kun ryhmähakemiston tiedostoja käsitellään. Umask vaikuttaa siihen, mitkä oikeudet tulevat luodulle tiedostolle. Ryhmähakemistossa tulisi olla ryhmälle rw ja myös x jos kyse on suorituskelpoisesta tiedostosta. Sopiva umask asetetaan komennolla umask u=rwx,g=rw,o=.

Esimerkki 5.4. Ryhmähakemiston käyttö


$ ls -ld /tmp/projekti/
drwxrwsr-x    2 root     horisont     4096 joulu  26 19:14 /tmp/projekti/
tale@dilbert /export2/arkisto/SRC
$ id   
uid=1000(tale) gid=1000(tale) groups=1000(tale),4(adm),6(disk),24(cdrom),25(floppy),29(audio),101(addrs),102(horisontti),1003(wfserver),10104(pelaaja),107(dnsadmin),1010(decem)
tale@dilbert /export2/arkisto/SRC
$ touch /tmp/projekti/testi.txt
tale@dilbert /export2/arkisto/SRC
$ ls -l /tmp/projekti/ 
total 0
-rw-rw-r--    1 tale     horisont        0 joulu  26 19:15 testi.txt
tale@dilbert /export2/arkisto/SRC/Win2000/Intervideo
$ 

Mikäli jostain syystä ei haluta käyttää projektihakemistolle s-bittiä, pitäisi ryhmäläisten muistaa komentaa newgrp projekti kun projektin tiedostoja käsitellään. Luultavimmin tämä kuitenkin unohtuu silloin tällöin, eli pääkäyttäjän on käytävä muuttamassa tiedostojen ryhmäomistajaksi projekti, chgrp projekti *