Chmod
Chmod (change mode) on Unix-ohjelma, jolla muutetaan tiedostojen ja hakemistojen kayttooikeuksia. Kayttooikeuksia kutsutaan Unixissa yleisesti myos moodeiksi (mode). Oikeuksien muuttamiseen chmodissa voidaan kayttaa joko numeerisia tai symbolisia moodeja.[1]
Komennon syntaksi
[muokkaa | muokkaa wikitekstia]chmod [OPTION]... MODE[,MODE]... FILE...
Vapaaehtoisia argumentteja ovat muun muassa -R (rekursiiviset muutokset), -v (tulostaa tiedot kaikista kasitellyista tiedostoista ja kansioista) ja -f (sivuuttaa suuren osan virheilmoituksista).[2]
Ensimmainen versio on komennon numeerinen muoto, joka tehokas erityisesti silloin kun halutaan asettaa tiedoston tai kansion oikeudet kokonaan uusiksi. Jalkimmainen on komennon symbolinen muoto, joka puolestaan soveltuu erityisesti tilanteisiin, joissa halutaan lisata tai poistaa tiettyja oikeuksia vaikuttamatta tiedoston muihin oikeuksiin.
Tiedostojen ja kansioiden oikeudet voi tarkastaa komennolla ls.
Numeerinen muoto
[muokkaa | muokkaa wikitekstia]Komennon numeerisella muodolla voidaan tehokkaasti vaihtaa kerralla tiedoston tai kansion kaikki oikeudet. Numeerinen muoto hyvaksyy maksimissaan 4 oktaalista numeroa. Oikeanpuoleiset kolme numeroa edustavat omistajan, ryhman ja muiden kayttajien oikeuksia, vastaavassa jarjestyksessa. Neljannella numerolla (ensimmainen vasemmalta) voidaan asettaa erityinen setuid, setgid, tai sticky moodi.
Numeeriset oikeudet muodostuvat seuraavasti:
| # | Oikeus |
|---|---|
| 1 | suoritusoikeus eli x-oikeus |
| 2 | kirjoitusoikeus eli w-oikeus |
| 4 | lukuoikeus eli r-oikeus |
Yhdistetyt oikeudet saadaan laskemalla halutut oikeudet yhteen, jolloin esimerkiksi suoritus- ja lukuoikeus saadaan luvulla 1 + 4 = 5.[1] Seuraavassa on viela lista eri lukuarvojen muodostamista oikeuksista.
Numeeriset oikeudet
| # | Oikeudet | rwx |
|---|---|---|
| 7 | kaikki | 111 |
| 6 | luku ja kirjoitus | 110 |
| 5 | luku ja suoritus | 101 |
| 4 | vain luku | 100 |
| 3 | kirjoitus ja suoritus | 011 |
| 2 | vain kirjoitus | 010 |
| 1 | vain suoritus | 001 |
| 0 | ei oikeuksia | 000 |
Seuraava komento esimerkiksi antaa tiedostoon testi.txt kaikille kayttajaluokille lukuoikeuden, ryhmalle lisaksi suoritusoikeuden ja kayttajalle viela kirjoitusoikeudenkin:
Symbolinen muoto
[muokkaa | muokkaa wikitekstia]Muutettavat oikeudet on myos mahdollista maarata symbolisilla parametreilla. Symboleista muodostetaan merkkijono, joka seuraavaa seuraavaa rakennetta:
Kohteella maaritetaan kenen oikeuksia ollaan muuttamassa. Mikali kohdetta ei ole maaritetty kaytetaan oletusarvona kohdetta "kaikki". Seuraavassa taulukossa on listattu tunnistetut symbolit ja niiden merkitykset. Tiedoston tai kansion omistajaa ja ryhmaa on mahdollista vaihtaa komennolla chown
| Kohde | Kayttajaluokka | Kuvaus |
|---|---|---|
u |
kayttaja (user) | tiedoston omistaja |
g |
ryhma (group) | tiedoston ryhmaan kuuluvat kayttajat |
o |
muut (others) | kayttajat, jotka eivat kuuluu kumpaankaan edellisista |
a |
kaikki (all) | kaikki edelliset, sama kuin ugo
|
Operaattorilla maaritetaan kuinka oikeuksia muutetaan. Komento hyvaksyy seuraavat operaattorit:
| Operaattori | Kuvaus |
|---|---|
+ |
lisaa maaratyt moodit maaratyille luokille |
- |
poistaa maaratyt moodit maaratyilta luokilta |
= |
maarattyjen luokkien moodit asetetaan tasmalleen maarattyjen moodien mukaisiksi |
Moodit ilmaisevat mita oikeuksia maaratyille luokille ollaan antamassa, poistamassa tai asettamassa. Seuraavassa on listattu kaytossa olevat perusmoodit:
| Moodi | Nimi | Kuvaus |
|---|---|---|
r |
luku (read) | tiedoston lukeminen tai kansion sisallon listaaminen |
w |
kirjoitus (write) | tiedostoon tai kansioon kirjoittaminen |
x |
suoritus (execute) | tiedoston suorittaminen tai kansiopuun listaaminen rekursiivisesti |
Naiden lisaksi hyvaksytaan moodit X, s (setuid/setgid) ja t (sticky).
Seuraava komento esimerkiksi lisaa kaikille lukuoikeuden tiedostoon testi.txt
Symbolisessa muodossa on mahdollista tehda useita muutoksia kerralla. Talloin parametriksi annetaan useita edella kuvatun mukaisia merkkijonoja toisistaan pilkulla erotettuina. Seuraava lause esimerkiksi poistaa ryhmalta ja "kaikilta" kaikki oikeudet ja lisaa omistajalle kirjoitus- ja lukuoikeuden tiedostoon testi.txt:
Esimerkkeja
[muokkaa | muokkaa wikitekstia]| Komento | Selitys |
|---|---|
chmod 750 tiedosto |
nimetyn tiedoston omistusoikeuksiksi rwxr-x--- (omistajalle kaikki oikeudet, ryhmalle luku- ja suoritusoikeus, muille ei oikeuksia)
|
chmod u=rwx,g=rx,o= tiedosto |
samat oikeudet kuin edella kayttaen symbolista notaatiota |
chmod u=rw,go= tiedosto |
tiedoston omistajalle luku- ja kirjoitusoikeus, ryhmalla ja muilla ei oikeuksia |
chmod -R u+w,go-w dokumentit |
muutetaan kansion dokumentit oikeudet ja rekursiivisesti kaikki sen sisalto seuraavasti: lisataan kirjoitusoikeus omistajalle ja evataan se kaikilta muilta |
chmod = tiedosto |
poistaa kaikilta kaikki oikeudet tiedostoon kayttaen symbolista notaatiota |
chmod 777 tiedosto |
antaa kaikille luokille taydet oikeudet tiedostoon kayttaen numeerista notaatiota |
chmod 750 public_html |
asettaa kansiolle public_html oikeuksiksi rwxr-x---
|
chmod 0644 index.html |
asettaa tiedostolle index.html oikeuksiksi -rw-r--r--, sama kuin u=rw (4+2),go=r (4), 0 alussa tarkoittaa, ettei aseteta erikoismoodeja ja se voidaan yhta hyvin jattaa poiskin
|
Muuta
[muokkaa | muokkaa wikitekstia]Monissa Unix-versioissa on myos mahdollista tehda tiedostoille tarkkoja kayttooikeuslistoja muun muassa yksittaisten kayttajien ja ryhmien mukaan. POSIX-standardiin kehitetty ehdotus on myohemmin vedetty pois mutta useat jarjestelmat toteuttavat sen.[3]
Linuxissa kayttooikeuslistoja kasitellaan setfacl ja getfacl -komentojen avulla.[4]
Muut kayttojarjestelmat
[muokkaa | muokkaa wikitekstia]Muihin komentoa tukeviin kayttojarjestelmiin kuuluu Plan 9.[5]
Komento on myos IBM i -alustalle.[6]
Katso myos
[muokkaa | muokkaa wikitekstia]Lahteet
[muokkaa | muokkaa wikitekstia]- | a b Jukka K. Korpela: Unix-opas: Luku 7 - Tiedostot ja hakemistot jkorpela.fi. 18.10.2003. Viitattu 14.9.2013.
- | UNIX man pages - chmod unixhelp.ed.ac.uk. Viitattu 14.9.2013.
- | 10 Access Control Lists in Linux documentation.suse.com. Arkistoitu 18.1.2021. Viitattu 23.3.2021. (englanniksi)
- | An introduction to Linux Access Control Lists (ACLs) redhat.com. Viitattu 21.11.2020. (englanniksi)
- | https://9p.io/magic/man2html/1/chmod
- | Programming Qshell (PDF) ibm.com. Viitattu 12.8.2021. (englanniksi)