Umask
umask on komentotulkin sisäinen komento sekä järjestelmäkutsu, jolla muutetaan luotavien tiedostojen oletusoikeuksia. Arvo kertoo mitä oikeuksia luotaviin tiedostoihin järjestelmän ei pidä antaa.
Bashin sisäiselle umask-komennolle vähennettävät oikeudet voi kertoa joko numeerisesti tai kirjaimin, saman tapaan kuin komennolle chmod. Jos arvoa ei määritä, umask kertoo nykyisen arvon. Valitsimilla -p ja -S voi vaikuttaa tulostettavaan muotoon.
Tyypillinen käyttö
umask-arvo asetetaan tyypillisesti shellin käynnistysskripteissä, kuten /etc/profile tai ~/.profile (bashia käytettäessä usein bash_profile). Jotta arvo asettuisi myös muille kuin komentotulkin kautta käynnistyville ohjelmille, se pitää asettaa sopivassa muussa käynnistysskriptissä. Arvo periytyy lapsiprosesseille.
Tavallisia umask-arvoja ovat 022, 027 ja 077. Yksittäiset numerot kertovat mitä oikeuksia ei pidä antaa käyttäjälle itselleen, ryhmälle sekä muille ja numero itsessään muodostuu numeroiden 1, 2 ja 4 summasta, jossa 1 vaikuttaa suoritusoikeuteen (hakemistojen osalta oikeuteen käyttää hakemistoa polun osana), 2 kirjoitusoikeuteen ja 4 lukuoikeuteen. Katso lähemmin chmod, jolla muutetaan oikeuksia jälkikäteen, tiedoston oikeudet sekä kansion yhteiskäyttö ryhmässä.
umask 027 jättää käyttäjälle kaikki oikeudet sekä poistaa ryhmältä kirjoitusoikeuden ja muilta käyttäjiltä kaikki oikeudet. Tämä on tavanomainen arvo, silloin kun joitakin tiedostoja haluaa jakaa ryhmän kanssa, mutta koneelle saattaa (muulla ryhmätunnuksella) olla sellaisia, joille ei tahdo näyttää kaikkia tiedostojaan.
umask 077 epää muilta käyttäjiltä kaikki oikeudet. Asetus on sopiva silloin, kun ei tee yhteistyötä koneen muiden käyttäjien kanssa.
umask 022 jättää kaikille käyttäjille muut kuin kirjoitusoikeudet. Arvo sopii jos usein jakaa tiedostoja sellaisten kanssa, joilla ei ole yhteistä ryhmää, eikä tiedostojen salassapitoon ole suurempaa syytä. Tämä on usein oletusasetus.
Yksittäisten hakemistojen ja tiedostojen oikeuksia voi asettaa umask-arvosta riippumatta. Yleensä kannattaa antaa kotihakemistolle "suoritusoikeuden" kaikille, jotta muut pääsevät käsiksi julkisiksi tarkoitettuihin tiedostoihin (~/public_html yms.), mutta lukuoikeuden voi evätä, ettei vahingossa luettavaksi jäänyt arkaluonteinen tiedosto paljastu turhaan:
chmod go=x ~
Vastaavasti kotihakemistossa voi olla salaisiksi ja julkisiksi tarkoitettuja hakemistoja:
chmod go=rx ~/public_html chmod g=rx,o= ~/ryhmälle_jaetut chmod go= ~/salaiset
Tekninen kuvaus
Järjestelmä pitää prosessikohtaisesti lukua umask-tiedosta. Kun jokin ohjelma luo tiedoston (esimerkiksi järjestelmäkutsulla open tai mkdir) järjestelmä vähentää oikeuksia umaskin mukaan ohjelman tarjoamista (yleensä väljistä) oikeuksista. Näin ohjelmien ei tarvitse itse välittää käyttäjän haluista jakaa tiedostoja. Ohjelma voi umaskista riippumatta asettaa tiukemmat rajoitukset esimerkiksi tilapäistiedostoille: umask-arvo vähennetään tarjotuista oikeuksista.