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).
A parancs a jogosultság- és hozzáféréskezelést a fájlrendszer szintjén oldja meg.
Történet
A chmod parancs először az AT&T Unix első verziójában jelent meg, és azóta is használják széleskörben (pl. GNU/Linux, BSD-alapú operációs rendszerek).
Használata
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álók, akik részei a csoportnak
|
o |
más – other |
azok a felhasználók, akik nem tartoznak az előbbi kettő közé (beleértve a másodlagos csoportokat is)
|
a |
mindenki – all |
a 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óhoz, csoporthoz
|
- |
megvonja a jogot a megadott felhasználótól, csoporttól
|
= |
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
|
d
|
directory
|
nem valós jog, könyvtárat jelöl[1]
|
E három betű kombinációjaként adhatjuk meg a jogokat.
Példák
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 csak végrehajtási jogot állítunk be.
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
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
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).
|
Jegyzetek
- ↑ Teljes mappák esetében a '-R' kapcsolót szükséges alkalmazni.
|
---|
Fájlrendszer | |
---|
Processzek | |
---|
Felhasználói környezet | |
---|
Szövegkezelés | |
---|
Shell programozás | |
---|
Hálózat | |
---|
Keresés | |
---|
Dokumentáció | |
---|
Egyéb | |
---|