Chmod

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. augusztus 8-án felülvizsgált verziótól ; az ellenőrzéshez 1 szerkesztés szükséges .

chmod
Típusú program a fájlok és könyvtárak engedélyeinek módosításához
Fejlesztő GNU projekt
Beírva C
Operációs rendszer Unix-szerű
Első kiadás 1971. november 3
legújabb verzió 8,5 (2010. április 23.)
Engedély GPLv3+
Weboldal gnu.org

A chmod (az angol  change mode szóból ) egy parancs a Unix-szerű operációs rendszerekben használt fájl- és könyvtárjogosultságok megváltoztatására . A POSIX szabvány tartalmazza a Coreutils -ben .

Szintaxis:

chmod [opciók] mód[,mód] fájl1 [fájl2 ...]

Lehetőségek:

A parancs soha nem módosítja a szimbolikus hivatkozások engedélyeit ; azonban a parancssorban megadott minden szimbolikus hivatkozás esetén módosítja a társított fájl engedélyeit. A parancs figyelmen kívül hagyja a könyvtárak rekurzív feldolgozása során talált szimbolikus hivatkozásokat.

A chmod parancs engedélyes argumentuma két formátumban írható: numerikus és karakteres.

Számformátum

A jogok egy sorba vannak írva egyszerre három típusú felhasználó számára:

Numerikus formában az abszolút jogok egy fájlhoz vagy könyvtárhoz, míg szimbolikus formában egyedi jogosultságok adhatók meg különböző típusú felhasználók számára.

Példa: numerikusan, állítsa be az rwxr-xr-x engedélyeket:

chmod 755 fájlnév

Példa - a jobb oldali "755" értéke
tulajdonos Csoport pihenés
oktális érték 7 5 5
karakter jelölés rwx rx rx
felhasználói típus megjelölés u g o

Így a „755” jogok szimbolikus formában „rwxr-xr-x”-ként vannak írva. Ugyanakkor ahhoz, hogy megértsük a jogok beállításának lényegét Unix rendszerekben, hasznos ismerni a számok bináris számrendszerben való ábrázolását .

Három lehetőség a felhasználói jogok írására
bináris nyolcas szimbolikus fájl engedélyek címtárjogok
000 0 --- Nem Nem
001 egy --x teljesítmény fájl tulajdonságainak olvasása
010 2 -w- rekord Nem
011 3 -wx rögzítés és végrehajtás mindent, kivéve a fájlnevek beszerzését
100 négy r-- olvasás fájlnevek olvasása
101 5 rx olvasás és végrehajtás olvasási hozzáférés a fájlokhoz/tulajdonságaikhoz
110 6 rw- Olvass és írj fájlnevek olvasása
111 7 rwx minden jog minden jog

Egyes engedélyeknek csak másokkal együtt van értelme. Az első négy elem közül (amely nem ad jogot a fájl olvasására) általában csak a „---”-t használjuk a fájlokhoz, vagyis a fájlhoz való hozzáférés teljes megtagadását az ilyen típusú felhasználók számára. A teljes lista könyvtáraihoz általában csak a 0, 5 és 7 használatos – tiltás, olvasás és végrehajtás, valamint teljes hozzáférés.

Ezeket a kódokat három típusú felhasználóra összegezve numerikus vagy szimbolikus bejegyzést kaphat. Például chmod 444 {fájlnév} : 400+40+4=444 - mindenkinek csak olvasási hozzáférése van (azonos az "r--r--r--"-vel).

A szabványos 'rwx' jogosultságokon kívül a chmod parancs az SGID, SUID és T biteket is vezérli.Ha a SUID vagy SGID attribútumok be vannak állítva, akkor a fájl futtatható fájltulajdonosi, illetve csoportos jogosultságokkal.

A SUID esetében a súly 4000, az SGID esetében pedig 2000. Ezek az attribútumok akkor értelmesek, ha a megfelelő végrehajtási bit be van állítva, és „s” betűvel vannak jelölve szimbolikus jelöléssel: „rw s rwxrwx” és „rwxrw s rwx ”, ill.

Példa: chmod 4555 {fájlnév}  - mindenkinek joga van olvasni és végrehajtani, de a fájl tulajdonosi jogokkal indul végrehajtásra.

Az SGID beállítása egy könyvtárhoz azt eredményezi, hogy minden új létrehozott fájl ugyanabba a csoportba tartozik, mint maga a könyvtár, nem pedig a tulajdonos elsődleges csoportja, ahogy ez alapértelmezés szerint történik. A SUID egy könyvtárhoz értelmetlen [1] .

ragadós bit vagy korlátozott törlési jelző (t-bit) csak a könyvtárakban használatos. Ha egy könyvtár t-bitje nincs beállítva, a könyvtárban lévő fájlt bármely, a könyvtárhoz írási jogosultsággal rendelkező felhasználó törölheti (átnevezheti). A t-bit beállításával egy könyvtárban megváltoztatjuk ezt a szabályt úgy, hogy csak ennek a fájlnak a tulajdonosa törölhet (átnevezhet) egy fájlt. A fenti kódolást követve a t-bit súlya 1000.

Megjegyzés: Az írási (w) engedély lehetővé teszi a felhasználó számára, hogy fájlt írjon vagy módosítson, míg a könyvtárírási engedély új fájlok létrehozását vagy fájlok törlését teszi lehetővé a könyvtárból. Ha egy könyvtár írható (w), akkor a könyvtárban lévő fájl akkor is törölhető, ha a fájlnak nincs írási jogosultsága . (A POSIX fájlrendszer koncepciója szerint).

Népszerű jelentések

400 (-r--------) A tulajdonosnak olvasási joga van; senki másnak nincs joga semmihez 440 (-r--r-----) A tulajdonos és a csoport olvasási hozzáféréssel rendelkezik; senki másnak nincs joga semmihez 644 (-rw-r--r--) Minden felhasználó olvasási hozzáféréssel rendelkezik; a tulajdonos szerkesztheti 660 (-rw-rw----) A tulajdonos és a csoport olvashat és szerkeszthet; a többiek semmilyen műveletet nem hajthatnak végre 664 (-rw-rw-r--) Minden felhasználó olvasási hozzáféréssel rendelkezik; a tulajdonos és a csoport szerkesztheti 666 (-rw-rw-rw-) Minden felhasználó olvashatja és szerkesztheti 700 (-rwx------) A tulajdonos tud olvasni, írni és végrehajtani; senki másnak nincs joga semmihez 744 (-rwxr--r--) Minden felhasználó olvashat, a tulajdonosnak szerkesztési és végrehajtási joga van 755 (-rwxr-xr-x) Minden felhasználónak joga van elolvasni és végrehajtani; a tulajdonos szerkesztheti 777 (-rwxrwxrwx) Minden felhasználó olvashatja, szerkesztheti és végrehajthatja 2555 (-r-xr-sr-x) Minden felhasználónak joga van olvasni és végrehajtani a fájl tulajdonosának felhasználói csoportjának jogaival 4555 (-r-sr-xr-x) Minden felhasználónak joga van elolvasni és végrehajtani a fájl tulajdonosának jogaival

Karakterformátum

Szimbolikus formában a parancs használatával rugalmasabban adhat hozzá, állíthat be vagy távolíthat el engedélyeket a fájlok vagy könyvtárak számára:

$ chmod [hivatkozások][operátor][módok] fájl ...

A hivatkozások meghatározzák azokat a felhasználókat, akiknek a jogai megváltoznak. A hivatkozásokat egy vagy több betű határozza meg:

Referencia osztály Leírás
u felhasználó A fájl tulajdonosa
g csoport Felhasználók a fájltulajdonos csoportban
o mások Más felhasználók
a összes Minden felhasználó (vagy ugo)

Az operátor határozza meg a chmod által végrehajtott műveletet:

operátor Leírás
+ adjon hozzá bizonyos engedélyeket
- bizonyos jogokat törölni
= állítson be bizonyos engedélyeket

A módok meghatározzák, hogy mely engedélyek lesznek beállítva, hozzáadva vagy eltávolítva:

mód Név Leírás
r olvas fájl vagy könyvtár tartalmának olvasása
w ír fájlba vagy könyvtárba írás
x végrehajtani fájl végrehajtása vagy egy könyvtár tartalmának beolvasása
x speciális végrehajtás végrehajtani, ha a fájl egy könyvtár, vagy már rendelkezik végrehajtási engedéllyel néhány felhasználó számára
s setuid/gid a beállított SUID vagy SGID attribútumok lehetővé teszik a fájl futtatását végrehajtásra a fájl tulajdonosának vagy csoportjának jogaival
t ragadós a t-bit beállításával egy könyvtárban megváltoztatjuk ezt a szabályt úgy, hogy csak a fájl tulajdonosa törölhet fájlt

Példák

Állítsa be az "rwxr-xr-x" (0755) engedélyeket egy fájlhoz:

chmod u=rwx,g=rx,o=rx fájlnév

Végrehajtási engedélyek beállítása a fájltulajdonos számára, végrehajtási engedélyek eltávolítása a csoportból, írási és végrehajtási engedélyek eltávolítása más felhasználóktól:

chmod u+x,gx,o-wx fájlnév

Állítson be rekurzív olvasási engedélyeket minden felhasználó számára:

chmod -R a+r könyvtár

Rekurzív módon távolítsa el a SUID és SGID attribútumokat:

chmod -R us,gs könyvtár

Jellemzők

Az alapértelmezett értékek a következők:

A fájlok és könyvtárak értékei eltérőek, mivel az "végrehajtás" jelző eltérően befolyásolja a fájlokat és a könyvtárakat. Futtatható fájlok esetén az "execute" a futtatást jelenti, a könyvtáraknál a fájl olvasásának jogát (ha van olvasási jog rajta) és a fájl attribútumait ismert névvel (olvasási jog nélkül nem kaphatja meg a fájlok neve a könyvtárban).

A következő parancs rekurzív módon alkalmazza a szabályokat a "/home/test" könyvtárban lévő összes fájlra , valamint az összes alkönyvtárban lévő összes fájlra:

# megtalálja /home/test -type f -exec chmod 644 {} \;

A következő parancs rekurzív módon alkalmazza a szabályokat a "/home/test" könyvtárban lévő összes könyvtárra , valamint az összes alkönyvtárban lévő összes könyvtárra:

# megtalálja /home/test -type d -exec chmod 755 {} \;

Ugyanezt az eredményt érheti el a find használata nélkül (figyelje meg a nagy X-et):

# chmod -R go=rX,u=rwX /home/test

Jegyzetek

  1. Scott Granneman "Linux Pocket Guide", Williams Publishing House, 2007

Linkek