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).

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

  1. Teljes mappák esetében a '-R' kapcsolót szükséges alkalmazni.
Sablon:Unix parancsok
  • m
  • v
  • sz
Unix parancssoros programok és utasítások
Fájlrendszer
cat · cd · chmod · chown · chgrp · cksum · cmp · cp · dd · du · df · file · fsck · fuser · ln · ls · lsattr · lsof · mkdir · mount · mv · pwd · rm · rmdir · sha1sum · size · split · tee · type  · touch · umask
Processzek
at · chroot · cron · exit · kill · killall · nice · pgrep · pidof · pkill · ps · pstree · sleep · time · top · wait
Felhasználói környezet
env · finger · id · logname · mesg · passwd · su · sudo · uptime · tput · w · wall · who · whoami · write
Szövegkezelés
awk · banner · comm · cut · ed · ex · fmt · head · iconv · join · less · more · paste · sed · sort · strings · talk · tac · tail · tr · uniq · vi · wc · xargs
Shell programozás
alias · basename · case  · clear · dirname · echo · expr · false · for · if · printf · seq · test · true · uname · unset  · until  · while  · yes
Hálózat
dig · host · inetd · netstat · ping · rlogin · netcat · traceroute
Keresés
find · grep · locate · whereis · which · whatis
Dokumentáció
apropos · help · man
Egyéb
bc · cal · date · info · lp · history
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap