Android

Chmod parancs a linuxban (fájljogosultságok)

EXPLAINED: How to use "chmod" command [COMPLETE GUIDE]

EXPLAINED: How to use "chmod" command [COMPLETE GUIDE]

Tartalomjegyzék:

Anonim

Linux alatt a fájlokhoz való hozzáférést a fájljogosultságokon, attribútumokon és tulajdonjogon keresztül kezelik. Ez biztosítja, hogy csak engedélyezett felhasználók és folyamatok férjenek hozzá fájlokhoz és könyvtárakhoz.

Ez az oktatóanyag ismerteti, hogyan lehet a chmod parancsot használni a fájlok és könyvtárak hozzáférési engedélyeinek megváltoztatásához.

Linux fájljogosultságok

Mielőtt továbbmennénk, magyarázza meg az alapvető Linux engedélyek modelljét.

Linuxban minden fájl társítva van egy tulajdonoshoz és egy csoporthoz, és engedély hozzáférési jogokkal rendelkezik három különböző felhasználói osztályra:

  • A fájl tulajdonosa. A csoport tagjai.Mások (mindenki más).

A fájl tulajdonjoga megváltoztatható a chown és a chgrp parancsokkal.

Három fájljogosultságtípus vonatkozik minden osztályra:

  • Az olvasási engedély.Az írás engedélye.A végrehajtási engedély.

Ez a koncepció lehetővé teszi annak meghatározását, hogy mely felhasználók használhatják a fájlt, olvassa el a fájlt vagy futtathatja azt.

A fájljogosultságok az ls paranccsal tekinthetők meg:

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

Az első karakter a fájltípust mutatja. Ez lehet egy szokásos fájl ( - ), a ( d ) könyvtár, egy szimbolikus link ( l ), vagy bármilyen más típusú fájl.

A következő kilenc karakter a fájl engedélyét képviseli, három három karakterből áll, egyenként három karakterből áll. Az első hármas a tulajdonos engedélyét, a második a csoport engedélyét, az utolsó hármas pedig a többi jogosultságát mutatja. Az engedélyeknek a fájltípustól függően más jelentése lehet.

A fenti példában ( rw-r--r-- ) azt jelenti, hogy a fájltulajdonos olvasási és írási engedélyeket ( rw- ), a csoport és mások csak olvasási engedélyeket ( r-- ).

A három engedély hármasát felépíthetjük a következő karakterekből és eltérő effektusokkal rendelkeznek, attól függően, hogy fájlra vagy könyvtárra van-e állítva:

Az engedélyek hatása a fájlokra

Engedély karakter Jelentés a fájlban
Olvas - A fájl nem olvasható. A fájl tartalma nem tekinthető meg.
r A fájl olvasható.
Ír - A fájl nem módosítható.
w A fájl megváltoztatható vagy módosítható.
kivégez - A fájl nem futtatható.
x A fájl végrehajtható.
s Ha megtalálható a user hármasban, akkor beállítja a setuid bitet. Ha megtalálható a group hármasban, akkor beállítja a setgid bitjét. Ez azt is jelenti, hogy az x zászló be van állítva.

Ha a setuid vagy setgid zászlókat egy végrehajtható fájlra állítja, akkor a fájl a fájl tulajdonosa és / vagy csoportjogosultságaival kerül végrehajtásra.

S Ugyanaz, mint az s de az x zászló nincs beállítva. Ezt a jelzőt ritkán használják a fájlokon.
t Ha megtalálják a others hármasban, akkor ez rögzíti a sticky darabot.

Ez azt is jelenti, hogy az x zászló be van állítva. Ez a jelző haszontalan a fájlokon.

T Ugyanaz, mint a t de az x jelző nincs beállítva. Ez a jelző haszontalan a fájlokon.

Az engedélyek hatása a könyvtárakra (mappákra)

Linuxban a könyvtárak speciális fájltípusok, amelyek más fájlokat és könyvtárakat tartalmaznak.

Engedély karakter Jelentés a könyvtárban
Olvas - A könyvtár tartalma nem jeleníthető meg.
r A könyvtár tartalma megjeleníthető.

(Például az ls fájlokat felsorolhatja a könyvtárban).

Ír - A könyvtár tartalma nem módosítható.
w A könyvtár tartalma megváltoztatható.

(pl. nem hozhat létre új fájlokat, nem törölhet fájlokat.. stb.)

kivégez - A könyvtár nem változtatható meg.
x A könyvtár a cd segítségével navigálható.
s Ha megtalálható a user hármasban, akkor beállítja a setuid bitet. Ha megtalálható a group hármasban, akkor beállítja a setgid bitjét. Ez azt is jelenti, hogy az x zászló be van állítva. Ha a setgid jelzőt egy könyvtárra állítja, akkor a benne létrehozott új fájlok a könyvtárak csoportjának azonosítóját (GID) örökölnek, a fájlot létrehozó felhasználó elsődleges csoport azonosítója helyett.

setuid nincs hatása a könyvtárakra.

S Ugyanaz, mint az s de az x zászló nincs beállítva. Ez a zászló haszontalan a könyvtárakban.
t Ha megtalálják a others hármasban, akkor ez rögzíti a sticky darabot.

Ez azt is jelenti, hogy az x zászló be van állítva. Ha a ragadós bit egy könyvtárban van beállítva, akkor csak a fájl tulajdonosa, a könyvtár tulajdonosa vagy az adminisztratív felhasználó törölheti vagy átnevezheti a mappában lévő fájlokat.

T Ugyanaz, mint a t de az x jelző nincs beállítva. Ez a zászló haszontalan a könyvtárakban.

A chmod használata

A chmod parancs a következő általános formában chmod :

chmod MODE FILE…

A chmod parancs lehetővé teszi a fájl engedélyének megváltoztatását szimbolikus vagy numerikus módban vagy referenciafájl segítségével. A módokat később részletesebben ismertetjük. A parancs argumentumokként elfogadhat egy vagy több fájlt és / vagy könyvtárat, amelyeket szóközzel elválasztanak.

Csak a root, a fájltulajdonos vagy a sudo jogosultságokkal rendelkező felhasználó változtathatja meg a fájl engedélyét. Különösen óvatosnak kell lennie a chmod használatakor, különösen, ha rekurzívan változtatja meg az engedélyeket.

Szimbolikus (szöveges) módszer

A chmod parancs szintaxisa a szimbolikus mód használatakor a következő formátumú:

chmod perms… FILE…

Az első zászlókészlet ( ), a felhasználói zászlók, meghatározza, hogy a felhasználók melyik osztályba sorolják a fájl engedélyét.

  • u - A fájl tulajdonosa. g - A csoport tagjai. o - Minden más felhasználó. a - Minden felhasználó, azonos az ugo .

Ha a felhasználói jelző ki van hagyva, akkor az alapértelmezett a és az umask által beállított engedélyeket nem érinti.

A második zászlókészlet ( ), a művelet jelzői, meghatározza, hogy az engedélyeket törölni, hozzáadni vagy beállítani:

  • - Eltávolítja a megadott engedélyeket. + Meghatározott engedélyeket ad hozzá. = A jelenlegi engedélyeket a megadott engedélyekre változtatja. Ha a = szimbólum után nem adunk meg engedélyeket, akkor a megadott felhasználói osztály minden engedélyét eltávolítják.

Az engedélyek ( perms… ) kifejezetten beállíthatók nulla vagy a következő betűk közül egyet vagy többet használva: r , w , x , X , s és t . Használjon egyetlen betűt az u , g és o készletből, ha az engedélyeket másolja az egyik felhasználói osztályba.

Ha egynél több felhasználói osztályhoz engedélyeket állít be ( ), vesszővel (szóköz nélkül) válassza ki a szimbolikus módot.

Az alábbiakban bemutatunk néhány példát a chmod parancs szimbolikus módban történő használatáról:

  • Adjon engedélyt a csoport tagjai számára a fájl elolvasására, de ne írására és végrehajtására:

    chmod g=r filename

    Távolítsa el az összes felhasználó végrehajtási engedélyét:

    chmod ax filename

    Eltávolító módon távolítsa el a többi felhasználó számára az írási engedélyt:

    chmod -R ow dirname

    Távolítsa el az olvasási, írási és végrehajtási engedélyt minden felhasználó számára, kivéve a fájl tulajdonosát:

    chmod og-rwx filename

    Ugyanezt lehet elérni a következő forma használatával:

    chmod og= filename

    Adjon olvasási, írási és végrehajtási engedélyt a fájl tulajdonosának, olvasási engedélyeket adjon meg a fájlcsoportnak, és ne engedélyezze a többi felhasználót:

    chmod u=rwx, g=r, o= filename

    Adja hozzá a fájl tulajdonosának engedélyét a fájlcsoport tagjainak jogosultságaihoz:

    chmod g+u filename

    Adjon hozzá ragacsos darabot egy adott könyvtárhoz:

    chmod o+t dirname

Numerikus módszer

A chmod parancs szintaxisa numerikus módszer használata esetén a következő formátumú:

chmod NUMBER FILE…

A numerikus mód használatakor mindhárom felhasználói osztályra (tulajdonos, csoport és minden más) engedélyt állíthat be egyszerre.

A NUMBER lehet 3 vagy 4 jegyű szám.

Három számjegyű szám használata esetén az első számjegy a fájl tulajdonosának engedélyét jelzi, a fájlcsoport második, az utolsó pedig a többi felhasználó engedélyeit.

Minden írási, olvasási és végrehajtási engedély a következő számértékkel rendelkezik:

  • r (olvasás) = 4 w (írás) = 2 x (végrehajtás) = 1 nincs engedély = 0

Egy adott felhasználói osztály engedélyszámát az adott csoporthoz tartozó engedélyek értékének összege képviseli.

A fájl engedélyének numerikus módban történő megismeréséhez egyszerűen kiszámítja az összes felhasználói osztály összesített értékét. Például, ha olvasási, írási és végrehajtási engedélyt ad a fájl tulajdonosának, elolvassa és végrehajtja a fájlcsoport engedélyét, és csak az összes többi felhasználó számára engedélyezi az olvasást, akkor az alábbiak szerint járhat el:

  • Tulajdonos: rwx = 4 + 2 + 1 = 7Grup: rx = 4 + 0 + 1 = 5Egyéb: rx = 4 + 0 + 0 = 4

A fenti módszer alkalmazásával eljutunk a 754 számhoz, amely a kívánt engedélyeket képviseli.

A setuid , setgid és sticky bit zászlók beállításához négy számjegyű számot kell használni.

A 4 számjegyből álló szám használatakor az első számjegy a következő jelentéssel bír:

  • setuid = 4setgid = 2sticky = 1nem változás = 0

A következő három szám azonos jelentéssel bír, mint ha három számjegyből áll.

Ha az első szám 0, akkor kihagyható, és az üzemmód 3 számjeggyel ábrázolható. A 0755 numerikus mód ugyanaz, mint a 755 .

A numerikus mód kiszámításához használhat másik módszert is (bináris módszer), de ez egy kicsit bonyolultabb. A legtöbb felhasználó számára elegendő a 4, 2 és 1 numerikus mód számításának ismerete.

A stat engedélyével a numerikus jelöléssel ellenőrizheti a fájl engedélyeit:

stat -c "%a" filename

644

Néhány példa a chmod parancs numerikus módban történő használatára:

  • Adjon a fájl tulajdonosának olvasási és írási engedélyeket, és csak a csoporttagoknak és az összes többi felhasználónak az olvasási engedélyeket:

    chmod 644 dirname

    Adjon a fájl tulajdonosának olvasási, írási és végrehajtási engedélyeket, olvasási és végrehajtási engedélyeket a csoporttagok számára, és ne engedélyezze a többi felhasználót:

    chmod 750 dirname

    Adjon olvasási, írási és végrehajtási engedélyeket, valamint ragadós bitet egy adott könyvtárhoz:

    chmod 1777 dirname

    Rekurzív módon állítsa be az olvasási, írási és végrehajtási engedélyeket a fájltulajdonosnak, és ne engedélyezze az adott könyvtár összes többi felhasználóját:

    chmod -R 700 dirname

Referencia fájl használata

A --reference=ref_file opció lehetővé teszi, hogy a fájl engedélyei megegyezjenek a megadott referenciafájl engedélyével ( ref_file ).

chmod --reference=REF_FILE FILE

Például a következő parancs hozzárendeli a file1 engedélyét a file2 file1

chmod --reference=file1 file2

Rekurzív módon változtassa meg a fájl engedélyét

Az adott könyvtárban található összes fájl és könyvtár rekurzív működéséhez használja az -R ( --recursive ) opciót:

chmod -R MODE DIRECTORY

Például, ha a /var/www könyvtárban lévő összes fájl és alkönyvtár engedélyét 755 szeretné változtatni, akkor az a következő:

chmod -R 755 /var/www

Működés a szimbolikus linkeken

A szimbolikus hivatkozásoknak mindig 777 engedélyük van.

Alapértelmezés szerint, amikor megváltoztatja a szinklin engedélyeit, a chmod megváltoztatja a linkre mutató fájl engedélyét.

chmod 755 symlink

Valószínű, hogy a céltulajdonos megváltoztatása helyett a „nem tud hozzáférni a„ linkhez ”: Az engedély megtagadva” hibát kap.

A hiba azért merül fel, mert a legtöbb Linux disztribúció alapértelmezés szerint védve van a hivatkozásokról, és a célfájlokon nem működhet. Ezt a beállítást a /proc/sys/fs/protected_symlinks adjuk meg. 1 azt jelenti, hogy engedélyezve és 0 letiltva. Javasoljuk, hogy ne kapcsolja ki a szinkronvédelmet.

A fájljogosultságok megváltoztatása ömlesztve

Időnként vannak olyan helyzetek, amikor a fájlok és a könyvtárak engedélyei tömegesen változnak.

A leggyakoribb forgatókönyv az, hogy a webhelyfájl engedélyét rekurzív módon 644 , a könyvtári engedélyeket pedig 755 .

A numerikus módszer használata:

find /var/www/my_website -type d -exec chmod 755 {} ; find /var/www/my_website -type f -exec chmod 644 {} ;

A szimbolikus módszer használata:

find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ; find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;

A find parancs megkeresi a fájlokat és könyvtárakat a /var/www/my_website és továbbítja az összes megtalált fájlt és könyvtárat a chmod parancshoz az engedélyek beállításához.

Következtetés

A chmod parancs megváltoztatja a fájl jogosultságait. Az engedélyek szimbolikus vagy numerikus módban állíthatók be.

Ha többet szeretne tudni a chmod látogasson el a chmod man oldalára.

chmod terminál