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.
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éketulajdonos | 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árabiná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).
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 |
Állítsa be az "rwxr-xr-x" (0755) engedélyeket egy fájlhoz:
chmod u=rwx,g=rx,o=rx fájlnévVé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árRekurzív módon távolítsa el a SUID és SGID attribútumokat:
chmod -R us,gs könyvtárAz 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/testUnix parancsok | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|