chmod
A chmod
parancs (change mode rövidítésből jön) egy shell utasítás és rendszerhívás. Arra használjuk, hogy megadjuk, megváltoztassuk az állományok hozzáférési jogait, többféle módon, például karakteres kapcsolókkal (r, w, stb.), vagy oktálisan (számjegyekkel).
Történet[szerkesztés]
A chmod parancs először az AT&T Unix első verziójában jelent meg, és azóta is használják.
Használata[szerkesztés]
A chmod specifikációja:
$ chmod [options] mode[,mode] file1 [file2 ...]
Ahhoz, hogy egy állománynak lássuk a jelenlegi hozzáférési jogait használjuk a következő parancsot:
$ ls -l file
Referencia | Osztály | Leírás |
---|---|---|
u | felhasználó - user | az állomány tulajdonosa |
g | csoport - group | azok a felhasználok kik részei a csoportnak |
o | más - other | azok a felhasználok kik nem tartoznak az előbbi kettő közé (beleértve a másodlagos csoportokat is) |
a | mindenki - all | az összes fenti három egyben, azaz ugo |
Ahhoz, hogy jogokat rendeljünk vagy vonjunk el a következő operátorokat használjuk:
Operátor | Leírás |
---|---|
+ | hozzáad egy jogot a megadott felhasználót, csoportot |
- | eltávolítja a jogot a megadott felhasználót, csoportot |
= | a megadott jogokkal felruházza az adott felhasználót, csoportot |
A jogok különböző betűkkel vannak jelölve:
Mód | Neve | Leírás |
---|---|---|
r | read | olvasási jog |
w | write | írási jog |
x | execute | végrehajtási jog |
X | special execute | végrehajtási jog |
s | setuid/gid | tulajdonos, vagy csoport váltási jog |
t | sticky | ragadós bit, a fájlok eltávolításának joga |
E három betű kombinációjaként adhatjuk meg a jogokat.
Példák[szerkesztés]
Például adjunk olvasás és írás jogot a felhasználónak és a csoportjának.
$ chmod ug+rw pelda $ ls -ld pelda drw-rw---- 2 unixguy usergroup 08 Jun 17 17:53 pelda
A következő példa eltávolítja mindenkitől az összes jogot (olvasás, írás, végrehajtás).
$ chmod a-rwx pelda $ ls -l pelda ---------- 2 unixguy usergroup 08 Jun 17 17:53 pelda
Az alábbi példában a pelda nevű állományra nem adunk csak végrehajtási jogot.
Lássuk milyen jogaink voltak:
$ ls -ld pelda drw-rw---- 2 unixguy usergroup 08 Jun 17 17:53 pelda $ chmod ug=rx pelda $ ls -ld pelda dr-xr-x--- 2 unixguy usergroup 08 Jun 17 17:53 pelda
Számok segítségével[szerkesztés]
A chmod parancs elfogadja a jogok megadását számokkal is, ez egy három vagy négyjegyű szám, melynek számjegyei nyolcas-számrendszerbeli számok (ennek jelölésére használjuk az első nulla számjegyet). Figyeljük meg az alábbi példákat:
$ chmod 0664 pelda
$ chmod 664 pelda
vagy
$ chmod +r,-x,ug+w pelda
Parancssor példák[szerkesztés]
Parancs | magyarázat |
---|---|
chmod a+r fajl | olvasás jog mindenkinek |
chmod a-x fajl | végrehajtási jog eltávolítva mindenkitől |
chmod u=rw,go= fajl | olvasás és írás jog a felhasználónak, a csoporttól és a többi felhasználótól eltiltva minden |
chmod +rw fajl | olvasás és írásjogot adtunk mindenkinek, érdemes azonban az a (all=mindenki) használata, mivel nem minden rendszer esetén működik enélkül (pl. chmod a+rw file). |
chmod -R u+w,go-w docs/ | megváltoztatja a docs könyvtár összes állományának a jogait, úgy, hogy ezek tartalma írható lesz a felhasználónak, a csoporttól pedig elveszi az írás jogot. |
chmod 0 file | eltávolítja az összes jogot mindenkitől |
chmod 664 file | olvasás és írás jogot ad a felhasználónak, és a csoportnak, a többinek pedig csak olvasás jogot. |
chmod 0755 file | ekvivalens a u=rwx (4+2+1),go=rx (4+1 & 4+1). A 0 nem ad jogokat. |
chmod 4755 file | A 4 speciális beállítás set user ID a többi pedig ekvivalens a u=rwx (4+2+1),go=rx (4+1 & 4+1). |
find path/ -type d -exec chmod a-x {} \; | eltávolítja a végrehajtásjogot az összes könyvtártól (ha '-type f'-et használunk akkor az állományokra vonatkozik). |