Jokaiselle Linuxiin tutustuvalle tulee eteen tilanne, jossa käyttöoikeudet eivät riitäkään tiedoston muokkaamiseen (kirjoitusoikeus) tai ohjelman (tai komennon) ajamiseen (suoritusoikeus). Samoin joskus on hyödyllistä kirjoitussuojata tärkeä tiedosto. Käyttöikeuksien muuttaminen tehdään Linuxissa chmod-komenolla. Muuta oikeuksia kuitenkin harkiten, koska jokainen lisää annettu suoritus- tai kirjoitusoikeus lisää myös omalta osaltaan tietoturvallisuusriskiä. Sivun malliesimerkit on otettu konsolissa SuSEsta, Debianista ja Knoppixista omalta koneeltani.
Kirjoittamalla konsolissa ls -l näet hakemistolle annetut käyttöoikeudet:
tapsa@tapsa:/mnt> ls -l total 4 drwxr-xr-x 2 root root 48 2003-01-25 18:40 mandrake90 drwxr-xr-x 2 root root 48 2003-03-01 20:46 mandrake91 drwxr--r-- 27 root root 4096 1970-01-01 02:00 windows tapsa@tapsa:/mnt>
Normaalisti kotihakemistojen oikeudet Linuxissa ovat drwxr-xr-x (tai 755 numeroita käyttäen; numeroiden käyttö on selvitetty hieman myöhemmin).
Samoin jos kirjoitat ls -l tiedoston_nimi näet yksittäiselle tiedostolle annetut käyttöoikeudet:
tapsa@tapsa:~> ls -l .xsession -rwxr-xr-x 1 tapsa users 2794 2003-01-25 14:08 .xsession
Jos haluat katsoa piilotettujen tiedostojen käyttöoikeudet, lisää kirjain a listauskomennon 'ls -l' lisäksi: ls -la
Mitä nuo edellä olevat kirjaimet (merkit) sitten tarkoittavat? Kirjaimilla ja viivoilla on oma merkityksensä seuraavasti:
Mutta kenellä nuo oikeudet sitten ovat? Parhaiten se selviää, kun jaetaan listaus pienempiin osiin ja tarkastellaan, mitä mikin osa tarkoittaa:
tapsa@tapsa:~> ls -l .xsession -rwxr-xr-x 1 tapsa users 2794 2003-01-25 14:08 .xsession 1. - kyseessä on tiedosto (merkki 1) 2. rwx omistajan (user) oikeudet (merkit 2-4) 3. r-x ryhmän (group) oikeudet (merkit 5-7) 4. r-x muiden (others) oikeudet (merkit 8-10) 5. 1 hakemistoon / tiedostoon viittaavien linkkien määrä 6. tapsa hakemison / tiedoston omistaja 7. users omistajaryhmä 8. 2794 tiedoston koko 9. 2003-01-25 14:08 viimeinen muokkauspäivä 10. .xsession tiedostonimi
Eli -rwxr-xr-x tarkoittaa siis, että kyseessä on tiedosto, jossa käyttäjällä (user) on rwx-oikeudet eli luku-, kirjoitus- ja suoritusoikeus. Käyttäjäryhmällä (group) on r-x-oikeus eli luku- ja suoritusoikeus (kirjoitusoikeutta ei ole). Muilla käyttäjillä (others) on samat oikeudet kuin käyttäjäryhmälläkin (group).
Tiedoston tai hakemiston käyttöoikeuksia (permissions) muutetaan Linuxissa chmod-käskyllä (change mode).
Tiedostoilla ja hakemistoilla voi Linuxissa olla erilaisia käyttäjäkohtaisia oikeuksia, joista käytetään lippu-nimitystä (access flag), joka voi olla joko päällä tai pois. Englanninkielisen access flag tilalla voidaan käyttää myös access bit tai permission bit -nimitystä, joista hyvin selviää, että kyse on bitistä, joka on joko päällä tai pois ja sillä määritellään tietynlainen käyttöoikeus johonkin tiedostoon tai hakemistoon.
Hakemistojen käyttöoikeuksia et pääse muuttamaan tavallisena käyttäjänä (paitsi tietysti omia hakemistoja kotihakemistossasi) vaan saat seuraavan ilmoituksen:
tapsa@tapsa:/> chmod 777 /mnt chmod: changing permissions of `/mnt': Operation not permitted tapsa@tapsa:/>
Mutta superuserina (su tai su -) pääset muuttamaan oikeudet (listausta lyhennetty):
tapsa@tapsa:/> su Password: tapsa:/ # chmod 777 /mnt --- tapsa:/ # ls -l drwxrwxrwx 5 root root 136 2003-03-03 18:36 mnt ---
Muutetaan nyt oikeudet takaisin entiselleen (listausta lyhennetty):
tapsa:/ # chmod 755 /mnt --- tapsa:/ # ls -l drwxr-xr-x 5 root root 136 2003-03-03 18:36 mnt
Tärkeä valitsin on myös -R (--recursive), joka ulottaa oikeuksien muuttamisen myös alihakemistoihin, esim.:
tapsa:/ # chmod -R 755 /mnt
Edellä muutimme käyttöoikeuksia käyttämällä numeroyhdistelmiä 777 ja775. Mitä ne nyt sitten tarkoittavat?
Kolmen numeron yhdistelmä tarkoittaa omistajalle (user), ryhmälle (group) ja muille (others) annettavia oikeuksia oktaalilukuina (8-järjestelmän lukuina):
Oikeudet koostuvat siis kolmesta numerosta (4, 2, 1) tai niiden yhdistelmästä. Esimerkiksi 7 (luku, kirjoitus, suoritus eli rwx) koostuu luvuista 4 (luku), 2 (kirjoitus) ja 1 (suoritus) eli 4+2+1=7. Samalla tavoin 5 (luku, suoritus eli r-x) koostuu luvuista 4 (luku) ja 1 (suoritus) eli 4+1=5.
Kolmen numeron yhdistelmä 777 tarkoittaa, että kaikilla (user, group, others) on täydet oikeudet (luku = read, kirjoitus = write, suoritus = execute). Numeroyhdistelmä 775 tarkoittaa kaikkia oikeuksia (rwx) omistajalle (user), luku- ja suoritusoikeutta (r-x) omistajaryhmälle (group) sekä luku- ja kirjoitusoikeuksia (r-x) muille (others).
Katsotaan ensin, mitkä ovat luotavien hakemistojen oletusoikeudet tekemällä omaan kotihakemistoon huuhaa-niminen hakemisto:
tapsa@abc:~$ mkdir huuhaa
Oletusoikeudet luodulle hakemistolle ovat:
drwxr-xr-x 2 tapsa tapsa 4096 2004-05-01 10:49 huuhaa
Katsotaan sitten, mitkä ovat /usr/local/mozilla-hakemiston oletusoikeudet:
root@abc:/usr/local# la drwxr-s-x 10 root staff 4096 2004-04-01 20:57 mozilla
Huomaa, että ryhmän oikeus onkin nyt s eikä x kuten normaalisti. Kirjain s tarkoittaa, että hakemistolle on määritelty s-bitti (set group ID eli setgid), jolloin ohjelman suoritusoikeus annetaan ryhmän perusteella eikä tiedoston käyttäjän perusteella. Edellä siis kaikki, jotka kuuluvat staff-ryhmään, voivat käyttää Mozilla-hakemistoa ja käyttää selainta. Otin tarkoituksella Mozillan esimerkkiohjelmaksi, koska monilla on ollut vaikeuksia käynnistää selainta joissakin distroissa puutteellisten käyttöoikeuksien takia.
Huomaa ero x:n ja s:n välillä: x-bitti kertoo, ketkä saavat ajaa ohjelman; s-bitti kertoo, ajetaanko ohjelma normaalisti sen käynnistäneen käyttäjän oikeuksin vai tiedoston omistajan tai ryhmän perusteella.
Myös käyttäjälle voidaan antaa s-bitti (set user ID eli setuid), joka tarkoittaa, että suoritusoikeus annetaan tiedoston omistajan perusteella eikä tiedoston tekijän perusteella. Myös substitute-user-id (suid) -nimitystä voidaan käyttää, joka kuvastaa hyvin 'korvaavaa' käyttäjää. Ryhmästä puhuttaessa voidaan vastaavasti käyttää substitute-group-id (sgid) -nimitystä.
Sticky-bitin käyttö on käytännöllistä, kun hakemistoon halutaan antaa kirjoitusoikeus kaikille (esim. /tmp-hakemisto) mutta kukin käyttäjä voi poistaa vain omia tiedostojaan.
Ohjelman omistaja voi myös sallia ohjelman käytön muille omilla oikeuksillaan, jolloin ohjelmaa kutsutaan SUID-ohjelmaksi. Suid-ohjelmalle annetaan oikeudet esim. seuraavasti (kirjaimilla):
chmod u+s ohjelma
Muista, että suid-oikeuksien asettaminen rootin (pääkäyttäjän) omistamalle ohjelmalle voi saada aikaan turva-aukon systeemissäsi, koska mahdollinen virheellisesti tomiva ohjelma sallii pääsyn järjestelmään. Älä siis anna turhaan lisäoikeuksia kellekään. Toisaalta jotkut ohjelmat vaativat oikein toimiakseen suidin (tai sgid) asettamisen (esim. kppp, xmms, mozilla jne.). Näin siksi, että näiden tiedostojen omistaja on yleensä pääkäyttäjä ja rootin oikeuksin on käytössä korkeampi prioriteetti ohjelmien ajamiseen ja suid antaa 'tehokkaamman user ID':n käyttöön ja sallii pääsyn kaikkiin tarvittaviin tiedostoihin. Tiedostojen omistajan näet 'ls -l' -komennolla.
SUID-ohjelmien ajamisen suid-oikeuksilla voi tarvittaessa estää liittämällä levyosion /etc/fstab-tiedostossa nosuid-optiolla.
Mutta miten s-bitti annetaan? Toistaiseksi olemme käyttäneet kolmen numeron yhdistelmää oikeuksien antamiseen, jolla tarkoitetaan käyttäjälle (u), ryhmälle (g) ja muille (o) annettavia oikeuksia. Lisäoikeudet annetaan käyttämällä neljättä numeroa edeltämään kolmen numeron yhdistelmää seuraavasti:
Ensimmäinen numero voi myös olla nolla (0) mutta silloin se jätetään yleensä pois tarpeettomana.
Muutetaan mozilla-hakemiston oikeudet ensin normaaliksi chmod 755 (drwxr-xr-x), jotta päästään kokeilemaan, miten s-bitti saadaan annettua.
Kokeillaan chmod 4755:
root@abc:/usr/local# chmod 4755 mozilla drwsr-xr-x 10 root staff 4096 2004-04-01 20:57 mozilla
Upsista. Nyt muutimmekin vahingossa käyttäjän x-bitin (suoritusoikeus) s-bitiksi (set user ID) eikä ryhmän (set group ID) kuten oli tarkoitus. Muutetaan takaisin alkutilaan chmod 755 (drwxr-xr-x), jolloin pääsemme aloittamaan uudelleen alusta.
Kokeillaan chmod 2755:
root@abc:/usr/local# chmod 2755 mozilla drwxr-sr-x 10 root staff 4096 2004-04-01 20:57 mozilla
Nyt saimme s-bitin asetettua ryhmälle, joka tarkoittaa, että suoritusoikeus on annettu käyttäjäryhmän perusteella eikä käyttäjän oikeuksien perusteella.
Tehdään sama kirjaimilla muuttamalla pelkästään ryhmän (g) r-bitti s-bitiksi chmod g+s:
root@abc:/usr/local# chmod g+s mozilla drwxr-sr-x 10 root staff 4096 2004-04-01 20:57 mozilla
Kokeillaan vielä sticky-bitin käyttöä chmod 1755 (1 numeroina annettuna; t kirjaimina annettuna):
root@abc:/usr/local# chmod 1755 mozilla drwxr-xr-t 10 root staff 4096 2004-04-01 20:57 mozilla
Muutetaan oikeudet takaisin alkuperäisiksi chmod 2755.
Kun sticky bit on asetettu hakemistolle, niin kuka tahansa voi luoda tiedostoja tehtyyn hakemistoon (tietysti olettaen, että myös x- ja w-bitit ovat päällä), mutta käyttäjät voivat poistaa vain omia tiedostojaan. Sticky-bittiä käytetään /tmp-hakemistossa seuraavasti:
drwxrwxrwt 2 root root 4096 2004-05-01 09:53 .X11-unix drwxrwxrwt 8 root root 4096 2004-05-01 10:01 tmp
Huomaa, että puuttuvat oikeudet /tmp-hakemistoon estävät X:n käynnistymisen.
Jos numeroyhdistelmien muistaminen vaikuttaa mahdottomalta, niin käyttöoikeuksia voidaan määritellä myös toisellakin tavalla. Tarkastellaan vielä uudelleen alussa mainittua .xsession-tiedostoa:
tapsa@tapsa:~> ls -l .xsession -rwxr-xr-x 1 tapsa users 2794 2003-01-25 14:08 .xsession
Kyseessä on siis tiedosto (-) ja käyttäjäoikeudet ovat käyttäjälle (user) rwx, käyttäjäryhmälle (group) r-x ja muille (others) r-x
Muutetaan nyt kokeeksi hieman oikeuksia käyttäen kirjaimia.
tapsa@tapsa:/> chmod o+w .xsession
Tässä lisätään (+) muille (others) kirjoitusoikeudet (w) tiedostoon .xsession. Nyt listaus näyttää seuraavalta:
tapsa@tapsa:~> ls -l .xsession -rwxr-xrwx 1 tapsa users 2794 2003-01-25 14:20 .xsession
Muutetaan nyt oikeudet takaisin entiselleen:
tapsa@tapsa:/> chmod o-w .xsession
tapsa@tapsa:~> ls -l .xsession -rwxr-xr-x 1 tapsa users 2794 2003-01-25 14:20 .xsession
Oikeudet (r, w tai x) eri käyttäjille (u = user, g = group ja o = other) annettiin +-merkillä ja poistettin --merkillä. Jos haluat antaa oikeuden kaikille, niin käytä kirjainta a (all), esim. 'chmod a+w .xsession' antaa kirjoitusoikeuden kaikille .xsession-tiedostoon.
Myös =-merkkiä voi käyttää määrittelemään merkin jälkeen annettavia täsmällisiä oikeuksia. Seuraavassa esimerkissä määritellään ryhmän oikeuksiksi r ja x filu-tiedostoon:
chmod g=rx filu
Käytännön esimerkki: skripteille ei tekstitiedostoina anneta suoritusoikeuksia automaattisesti vaan niille pitää antaa ajo-oikeus (suoritusoikeus) erikseen chmod-komennolla:
chmod u+x tiedosto.sh
Tiedostoilla voi olla myös erilaisia attribuutteja kuten Windowsissa on r (read-only), h (hidden), a (archive).
Linuxissa piilotetut tiedostot ovat .:llä (piste) -alkavia tiedostoja eikä niille tarvita mitään erikoista atrribuuttia, mutta Windowsin read-only -attribuutin antamiseen verrattava (toki huomattavasti laajempi) Linuxin komento atribuuttien muuttamiseen on chattr, jonka yhteydessä käytettävät kaikki mahdolliset attribuutit selviävät esim. sivulta http://www.onlamp.com/linux/cmd/cmd.csp?path=c/chattr. Tutustu myös Linuxin omaan manuaalisivuun 'man chattr'.
Voit lisätä attribuutin +-merkillä ja poistaa --merkillä. Muutama poiminta mahdollisista yleisimmin käytetyistä attribuuteista lienee paikallaan: attribuutti i (immutable) estää tiedoston muuttamisen, attribuutilla a (append only) tiedostoon voi ainoastaan lisätä tietoa ja s (secure) vaikuttaa sen, että tiedosto nollataan täydellisesti sen poistamisen yhteydessä eli sen olemassaolosta ei jää jälkeäkään, joten sitä ei voi palauttaa (undelete) poistamisen jälkeen mitenkään. Ikävä kyllä sanoa mutta chattr-komennon käyttöön törmätään usein vasta, kun koneeseen on hakkeroitu :(
Seuraavassa on vielä malliesimerkki a-attribuutin lisäämisestä tiedostolle (tarvitaan pääkäyttäjän oikedet):
# chattr + a tiedoston_nimi
Käyttäjätunnuksen luonnin yhteydessä luodaan samalla myös käyttäjäryhmä. Esim. 'tapsa'-käyttäjänimen luonnin yhteydessä luodaan myös samanniminen ryhmä 'tapsa'. Komennolla id näet, mihin käyttäjäryhmään kuulut.
tapsa@tapsa:~> id uid=500(tapsa) gid=100(users) groups=100(users),14(uucp),16(dialout),17(audio),33(video)
Edellä olevassa UID = User ID number ja GID = Group ID number eli pääkäyttäjäryhmä, johon ko. tunnus kuuluu.
Jos kirjoitat groups, näet mihin käyttäjäryhmiin kuulut. Linuxissa voi kuulua samanaikaisesti useampiin käyttäjäryhmiin, josta on hyötyä esim. silloin, jos työskentelee useammassa projektissa yhtäaikaa.
tapsa@tapsa:~> groups users uucp dialout audio video tapsa@tapsa:~>
Jos tapsa-käyttäjä ei olisi kuulunut audio-ryhmään aikaisemmin, lisäys ryhmään olisi voitu tehdä adduser-komennolla seuraavasti (ainakin Debianissa):
adduser tapsa audio
Käyttäjäryhmää, jolla on pääsy kotihakemistoosi, voit vaihtaa komennolla chgrp (change group).
chgrp laskutus hyvitys.lista
Esimerkikssä hyvitys.lista-tiedoston uudeksi käyttäjäryhmäksi muutettiin laskutus.
Jos saat joltakin toiselta tiedoston kotihakemistoosi, tiedoston omistajana säilyy kuitenkin tiedoston lähettäjä. Omistajaa voi vaihtaa pääkäyttäjän oikeuksin komennolla chown (change owner).
# chown tapsa tiedosto.txt
Tässä tiedosto tiedosto.txt on nyt tapsan omistuksessa :)
Voit saada omistusoikeuden tiedostoon myös kopioimalla alkuperäisen tiedoston toiseen paikkaan tai toisen nimiseksi ja tuhoamalla sitten alkuperäisen tiedoston.
Vaihdetaan vielä malliksi /usr/local-hakemiston omistaja rootista tapsaksi (otetaan ensin listaus hakemiston oikeuksista):
tapsa:/usr # ls -l --- drwxr-xr-x 11 root root 264 2003-02-15 18:35 local
tapsa:/usr # chown tapsa local tapsa:/usr # ls -l --- drwxr-xr-x 11 tapsa root 264 2003-02-15 18:35 local
Annetaan nyt kuitenkin local-hakemiston omistusoikeudet takaisin rootille :)
tapsa:/usr # chown root local
Käyttäjät ovat Linuxin kernelille pelkkiä numeroita (nopeampi prosessoroida kuin tekstiä sisätävät nimet) ja jokaiselle käyttäjälle on oma tunnistenumero user id (tai uid). Jokaiselle user id:lle on sitten olemassa käyttäjänimi (username) erillisessä tietokannassa.
Käyttäjän lisääminen tehdään perinteisesti adduser-käskyllä ja poistaminen deluser-käskyllä (userdel -r kayttajatunnus). Ryhmän lisääminen tehdään vastaavasti addgroup- ja poistaminen delgroup-käskyllä. Useimmissa uusimmissa distroissa on myös erillinen graafinen ohjelma käyttäjätietojen muuttamiseen (esim. redhat-config-users). Käyttäjän lisäämisen (adduser) yhteydessä luodaan myös samanninimen käyttäjäryhmä. Esimerkiksi 'samu'-nimisen käyttäjän luonnin yhteydessä luodaan myös 'samu'-käyttäjäryhmä samulle.
Käyttäjän lisääminen adduser-komennolla kysyy myös kaikki muut tarvittavat tiedot ja tekee kotihakemiston ja antaa normaalin käyttäjän käyttöoikeudet. Seuraavassa on mallina 'samu'-nimisen käyttäjän lisääminen Debianissa:
tapsa:/home/tapsa# adduser
Enter a username to add: samu
Adding user samu...
Adding new group samu (1002).
Adding new user samu (1002) with group samu.
Creating home directory /home/samu.
Copying files from /etc/skel
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for samu
Enter the new value, or press return for the default
Full Name []: Samuel Räikkönen
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [y/n] y
tapsa:/home/tapsa#
Kuten edellä olevasta esimerkistä huomataan, niin hakemistot ja tiedostot uuden käyttäjän kotihakemistoon kopioidaan /etc/skel-hakemistosta (Copying files from /etc/skel). Systeemin ylläpitäjä voi säätää uusien käyttäjien työpöydän jo ennakolta mahdollisimman hienoksi muokkaamalla /etc/skel-hakemistoa halutunlaiseksi. Yleensä kylläkin /etc/skel-hakemisto kannattaa pitää mahdollisimman yksinkertaisena.
Jos haluat muuttaa jälkeenpäin esim. käyttäjän täydellistä nimeä, niin sen voit tehdä komennolla chfn (change the full name). Katso lisätietoa sivulta Changing user properties.
Käyttäjän luonnin yhteydessä käyttäjällä on vain yksi samanniminen käyttäjäryhmä, johon hän kuuluu. Käyttäjälle voi lisätä helposti eri käyttäjäryhmään addgroup-käskyllä. Seuraavassa esimerkissä samu lisätään sudo-ryhmään.
tapsa:/home/tapsa# addgroup samu sudo Adding user samu to group sudo... Done. tapsa:/home/tapsa#
Voit myös muuttaa käyttäjän ensisijaisen ryhmän newgrp-komennolla.
Jos adduser ei toimi omassa distrossasi, kokeile useradd-komentoa (adduser saattaa olla myös symbolinen linkki useradd-komennolle, esim. RH). Sen käyttö Debianissa on hieman hankalampaa ja vaatii mm. käyttöoikeuksien antamisen erikseen (luultavasti distrossasi on silloin graafinen apuohjelma käyttöoikeuksien määrittelemiseen, jonka käyttö on aloittelijalle suositeltavampaa). Seuraavassa esimerkissä on kuitenkin mallina 'useradd'-komennon käyttö:
tapsa:/home/tapsa # useradd tera
Edellä on luotu uusi käyttäjä 'tera', jolle annetaan vielä salasana:
tapsa:/home/tapsa # passwd tera Changing password for tera. New password: Password changed tapsa:/home/tapsa #
Katso man adduser saadaksesi lisätietoa uusien käyttäjien lisäämisestä. Huolehdi myös uusien käyttäjien oikeuksista (rwx) ainakin omaan kotihakemistoonsa (pitäisi saada oikeudet kyllä oletuksena).
Btw, moni on ihmetellyt, miksi uuden käyttäjän kotihakemistoon on muilla oletuksena lukuoikeus, jolloin oikeudet 'ls -l' -komennolla ovat drwxr-xr-x (0755). Jos ei halua kaikkien käyttäjien lukevan omia tiedostojaan, voi oikeudet muutta hyvinkin, esim. 'chmod 0751' (drwxr-x--x) tai 'chmod 0750' (drwxr-x---). Ehkäpä hyvät oletusoikeudet olisivatkin pelkästään 'drwx------', jotka saat 'chmod 0700'. Ensimmäinen numero jätetään yleensä pois, jos se on nolla (0), koska se on silloin tarpeeton.
Debianissa voit muuttaa uusien käyttäjien oletusoikeutta kirjoittamalla konsolissa:
# dpkg-reconfigure --priority low adduser
jonka jälkeen eteesi tulee seuraava teksti (sama kuin Debianin asennuksen aikana, jolloin siihen ei yleensä kiinnitetä mitään huomoiota):
Adduser
Normally, home directories can be viewed by all users on the system. If
you want to increase the security/privacy on your system, you might want
your home directories only readable by the user. If you are unsure,
enable system wide readable home directories.
This will only affect home directories of users added with the adduser program later.
Do you want system wide readable home directories?
<Kyllä> <Ei>
Jos vastaat 'ei', niin uusien käyttäjien kohdalla muiden lukuoikeudet on poistettu drwxr-x--x (chmod 751), kun okeudet aikaisemmin olivat oletuksena drwxr-xr-x (chmod 755).
Salasanaa vaihdetaan komennolla passwd. Ensin kysytään vanhaa salasanaa ja sitten syötetään uusi salasana. Uusi salasana ei saa olla liikaa entisen kaltainen eikä liian yksinkertainen eikä yli 8 merkin pituinen, jos MD5-salasanoja (max. 256 merkkiä) ei ole valittu käyttöön. Seuraavassa esimerkissä on kaikki vaihtoehdot esillä:
tapsa@tapsa:~> passwd Changing password for tapsa. Old Password: New password: Bad password: too similar New password: Bad password: too simple New password: Password will be truncated to 8 characters Re-enter new password: Password changed
Umaskilla (Un-Mask) asetetaan tiedostojen oletusoikeudet uusia tiedostoja luotaessa (yleensä 022); chmodilla taas voidaan muuttaa oletusoikeuksia. Umask 022 tarkoittaa, että kirjoitusoikeudet on poistettu ryhmältä (g) ja muilta (o). Oikeudet ovat aina jollakin tapaa rajoitettuja tavalliselle käyttäjälle ja umaskin käytössä onkin kysymys käyttöoikeuksien rajoittamisesta vastakohtana käyttöoikeuksien antamiselle (oletusoikeuksien muuttamiselle) chmod-komennolla.
Bash-shellissä umaskin oletusoikeudet annetaan /etc/profile-tiedostossa ja oletuksena on yleensä umask 022. Voit tarkistaa oletusoikeudet omasta distrostasi tulostamalla näytölle:
$ grep umask /etc/* 2>/dev/null
Oikeuksista (chmod) puhuttaessa käytetään kolmen numeron yhdistelmää, jolla tarkoitetaan omistajalle (u = user), ryhmälle (g = group) ja muille (o = others) annettavia oikeuksia oktaalilukuina:
0 = ei oikeuksia
1 = suoritus (x)
2 = kirjoitus (w)
3 = kirjoitus ja suoritus (=2+1)
4 = luku (r)
5 = luku ja suoritus (=4+1)
6 = luku ja kirjoitus (=4+2)
7 = luku, kirjoitus ja suoritus (=4+2+1)
Oikeudet annetaan aina järjestyksessä omistaja - ryhmä - muut.
Oikeuksien rajoittamisesta (umask) puhuttaessa 7 tarkoittaakin 'ei mitään oikeuksia' ja 0 'kaikki oikeudet' - päinvastoin kuin chmodissa. Umask on siis käänteinen komento chmodille!
Umask merkitsee ykkösellä (binääriluku) niitä oikeuksia, joita ei anneta (kysymys on siis oikeuksien rajoittamisesta)! Esim. umask 023 tarkoittaa:
rwx r-x r-- 000 010 011 = 0 = 2 = 3
Edellä siis omistajalta (user) ei rajoiteta oikeuksia millään tavoin (rwx), ryhmälle (group) ei anneta kirjoitusoikeutta (r-x) ja muille (others) taas ei anneta kirjoitus- eikä suoritusoikeutta (r--).
Siten esim. umask 002 tarkoittaa, että omistajan (u) ja ryhmän (g) oikeuksia ei ole rajoitettu millään tavoin, mutta muilta (o) on evätty kirjoitusoikeus (luku- ja suoritusoikeus siis kuitenkin on):
rwx rwx r-x 000 000 010 = 0 = 0 = 2
Samalla tavoin uusien tiedostojen oletusoikeudet umask 022 (joista aluksi mainittiin) tarkoittavat, että käyttäjällä (u) on täydet oikeudet (rwx), mutta ryhmältä (g) ja muilta (o) on poistettu kirjoitusoikeus (r-x). Toisin sanoen jokaisen luomasi tiedoston oletusoikeuksiksi on rajoitettu (masked) 022, jolloin vain sinulla on oikeus tehdä muutoksia (kirjoitusoikeus) tekemääsi tiedostoon.
rwx r-x r-x 000 010 010 = 0 = 2 = 2
Seuraavassa vielä esimerkki umaskin käytöstä Mandrake 9.2:n /etc/fstab-tiedostosta:
/dev/hda1 /mnt/windows vfat iocharset=iso8859-15,codepage=850,umask=0,defaults 0 0
Voit tarvittaessa kirjoittaa edellä olevan myös muodossa umask=000 (kenenkään oikeuksia ei ole rajoitettu millään tavoin mainitulle Windows-osiolle). Muista että jos fstab-tiedostoon on tehty muutoksia, niin seuraavaksi ajetaan superuserina (su) mount -a, joka päivittää fstabin, jolloin konetta ei tarvitse käynnistää uudelleen.
Katso lisätietoa chmodin käytöstä sivulta http://www.onlamp.com/linux/cmd/cmd.csp?path=c/chmod ja Linuxin manuaalisivulta man chmod.
Tutustu myös Finnish Linux User Group FLUG ry:n sivuun http://flug.mpoli.fi/ohjeita/oikeudet.html ja Ilpo Kuivasen sivuun http://cs.stadia.fi/~kuivanen/linux/oikeus.php.
Päivitetty viimeksi: 27.11.2004
Copyright © 2003-2004 Tapani Räikkönen. All rights reserved.