A chmod parancs használata Linuxon

A Linux chmod parancsával szabályozhatja, hogy ki férhet hozzá a fájlokhoz, kereshet könyvtárakat és futtathat parancsfájlokat. Ez a parancs módosítja a Linux fájlengedélyeit, amelyek első pillantásra bonyolultnak tűnnek, de valójában nagyon egyszerűek, ha ismerjük a működésüket.

chmod Módosítja a fájlengedélyeket

Linuxban azt, hogy ki mit tehet egy fájllal vagy könyvtárral, engedélykészletek szabályozzák. Három engedélykészlet létezik. Egy készlet a fájl tulajdonosának, egy másik készlet a fájlcsoport tagjainak, és egy végső készlet mindenki másnak.

Az engedélyek szabályozzák a fájlon vagy könyvtáron végrehajtható műveleteket. Engedélyezik vagy megakadályozzák egy fájl olvasását, módosítását, vagy ha az egy parancsfájl vagy program, akkor a végrehajtását. Egy könyvtár esetében az engedélyek szabályozzák, hogy ki léphet be a könyvtárba, és ki hozhat létre vagy módosíthat fájlokat a könyvtárban.

Használja a chmod parancsot állítsa be ezeket az engedélyeket. Nak nek nézze meg, milyen engedélyek vannak beállítva fájlban vagy könyvtárban használhatjuk az ls-t.

Fájlengedélyek megtekintése és értelmezése

Használhatjuk a -l (hosszú formátum) opciót, hogy az ls listázza a fájlok és könyvtárak fájlengedélyeit.

ls -l

Minden sorban az első karakter azonosítja a listán szereplő bejegyzés típusát. Ha ez egy kötőjel (-), akkor fájl. Ha ez a d betű, akkor ez egy könyvtár.

A következő kilenc karakter a három engedélykészlet beállításait jelenti.

Az első három karakter a fájlt birtokló felhasználó jogosultságait mutatja (felhasználói engedélyek).
A középső három karakter a fájlcsoport tagjainak jogosultságait mutatja (csoportjogosultságok).
Az utolsó három karakter az első két kategóriába nem tartozó személyek jogosultságait mutatja (egyéb engedélyek).

Minden engedélykészletben három karakter található. A karakterek az engedélyek meglétét vagy hiányát jelzik. Ezek vagy egy kötőjel (-) vagy egy betű. Ha a karakter egy kötőjel, az azt jelenti, hogy az engedély nincs megadva. Ha a karakter r, w vagy x, akkor ez az engedély megadva.

A betűk a következőket képviselik:

r: Olvasási engedélyek. A fájl megnyitható, tartalma megtekinthető.
w: Írási engedélyek. A fájl szerkeszthető, módosítható és törölhető.
x: Végrehajtási engedélyek. Ha a fájl egy script vagy egy program, akkor futtatható (futtatható).

  A legjobb SNMP hálózatfigyelő eszközök, amelyeket 2020-ban tesztelünk

Például:

— azt jelenti, hogy egyáltalán nem adtak meg engedélyeket.
Az rwx azt jelenti, hogy a teljes engedélyt megadták. Az olvasási, írási és végrehajtási jelzők mind jelen vannak.

Képernyőképenken az első sor d-vel kezdődik. Ez a sor az „archívum” nevű könyvtárra utal. A címtár tulajdonosa „dave”, és a csoport nevét, amelyhez a címtár tartozik, „dave”-nek is hívják.

A következő három karakter a felhasználói engedélyek ehhez a könyvtárhoz. Ezek azt mutatják, hogy a tulajdonos teljes jogosultsággal rendelkezik. Az r, w és x karakterek mind jelen vannak. Ez azt jelenti, hogy a Dave felhasználó olvasási, írási és végrehajtási jogosultsággal rendelkezik az adott könyvtárhoz.

A második három karakterkészlet a csoportjogosultságok, ezek az rx. Ezek azt mutatják, hogy a dave csoport tagjai olvasási és végrehajtási jogosultságokkal rendelkeznek ehhez a könyvtárhoz. Ez azt jelenti, hogy kilistázhatják a fájlokat és azok tartalmát a könyvtárban, és cd-t (végrehajtást) végezhetnek ebbe a könyvtárba. Nem rendelkeznek írási jogosultsággal, így nem hozhatnak létre, nem szerkeszthetnek vagy törölhetnek fájlokat.

Az utolsó három karakterkészlet szintén rx. Ezek az engedélyek olyan személyekre vonatkoznak, akikre nem vonatkozik az első két engedélykészlet. Ezeknek az embereknek (az úgynevezett „másoknak”) olvasási és végrehajtási jogosultságuk van ebben a könyvtárban.

Összefoglalva tehát, a csoporttagok és mások olvasási és végrehajtási jogosultságokkal rendelkeznek. A tulajdonosnak, egy Dave nevű felhasználónak is van írási jogosultsága.

Az összes többi fájl esetében (az mh.sh script fájl kivételével) a dave és a dave csoport tagjai olvasási és írási tulajdonságokkal rendelkeznek a fájlokon, a többiek pedig csak olvasási jogosultsággal rendelkeznek.

Az mh.sh szkriptfájl speciális esetére a tulajdonos dave és a csoporttagok olvasási, írási és végrehajtási jogosultságokkal rendelkeznek, a többiek pedig csak olvasási és végrehajtási jogosultságokkal rendelkeznek.

Az engedély szintaxisának megértése

A chmod használatához az engedélyek beállításához meg kell mondanunk:

Ki: Kinek állítunk be engedélyeket.
Mi: Milyen változtatásokat hajtunk végre? Hozzáadjuk vagy eltávolítjuk az engedélyt?
Melyik: Melyik engedélyt állítjuk be?

Jelzőket használunk ezen értékek ábrázolására, és rövid „engedélyezési utasításokat” alkotunk, például u+x, ahol az „u” jelentése „felhasználó” (ki), a „+” a hozzáadást (mit), az „x” pedig a végrehajtási engedélyt. (melyik).

  Hogyan lehet távolról törölni egy iPhone-t az asztalról

A „ki” értékeket használhatjuk:

u: Felhasználó, azaz a fájl tulajdonosa.
g: Csoport, vagyis annak a csoportnak a tagjai, amelyhez a fájl tartozik.
o: Mások, vagyis olyan személyek, akikre nem vonatkoznak az u és g engedélyek.
a: Mind, vagyis a fentiek mindegyike.

Ha ezek közül egyiket sem használja, a chmod úgy viselkedik, mintha „a”-t használnának.

A „mit” értékeket használhatjuk:

–: Mínusz jel. Eltávolítja az engedélyt.
+: Plusz jel. Megadja az engedélyt. Az engedély hozzáadódik a meglévő engedélyekhez. Ha ezt az engedélyt szeretné, és csak ezt az engedélyt szeretné beállítani, használja az alábbiakban ismertetett = opciót.
=: egyenlőségjel. Állítson be engedélyt, és távolítson el másokat.

A „melyik” értékeket használhatjuk:

r: Az olvasási engedély.
w: Az írási engedély.
x: A végrehajtási engedély.

Engedélyek beállítása és módosítása

Tegyük fel, hogy van egy fájlunk, ahol mindenki teljes jogosultsággal rendelkezik.

ls -l new_ file.txt

Azt akarjuk, hogy a Dave felhasználó olvasási és írási jogosultsággal, a csoport és a többi felhasználó pedig csak olvasási jogosultsággal rendelkezzen. A következő paranccsal tehetjük meg:

chmod u=rw,og=r new_file.txt

Az „=” operátor használata azt jelenti, hogy töröljük a meglévő engedélyeket, majd beállítjuk a megadottakat.

nézzük meg az új engedélyt ehhez a fájlhoz:

ls -l new_file.txt

A meglévő engedélyeket eltávolítottuk, és az új engedélyeket beállítottuk, ahogy azt vártuk.

Mit szólna ahhoz, ha engedélyt adna hozzá a meglévő engedélybeállítások eltávolítása nélkül? Ezt is könnyen megtehetjük.

Tegyük fel, hogy van egy szkriptfájlunk, amelynek szerkesztését befejeztük. Minden felhasználó számára futtathatóvá kell tennünk. Jelenlegi engedélyei így néznek ki:

ls -l new_script.sh

Mindenki számára megadhatjuk a végrehajtási engedélyt a következő paranccsal:

chmod a+x new_script.sh

Ha megnézzük az engedélyeket, látni fogjuk, hogy a végrehajtási engedélyt most mindenki megkapta, és a meglévő engedélyek továbbra is érvényben vannak.

ls -l new_script.sh

Ugyanezt elérhettük volna az „a+x” utasításban szereplő „a” nélkül is. A következő parancs ugyanilyen jól működött volna.

chmod +x new_script.sh

Engedélyek beállítása több fájlhoz

Egyszerre több fájlra is alkalmazhatunk engedélyeket.

Ezek a fájlok az aktuális könyvtárban:

ls -l

Tegyük fel, hogy el akarjuk távolítani az „egyéb” felhasználók írási jogosultságát az „.page” kiterjesztésű fájlokból. Ezt a következő paranccsal tehetjük meg:

chmod o-r *.page

Nézzük meg, milyen hatással volt:

ls -l

Amint látjuk, az „egyéb” kategóriájú felhasználók „.page” fájljaiból eltávolították az olvasási engedélyt. Más fájlokat ez nem érint.

  Hogyan dolgozzunk Snap-csomagokkal Linuxon

Ha az alkönyvtárakba fájlokat akartunk volna belefoglalni, használhattuk volna a -R (rekurzív) opciót.

chmod -R o-r *.page

Numerikus gyorsírás

A chmod használatának másik módja az, hogy háromjegyű számként megadja a tulajdonosnak, csoportnak és másoknak adni kívánt engedélyeket. A bal szélső számjegy a tulajdonos jogosultságait jelöli. A középső számjegy a csoporttagok jogosultságait jelöli. A jobb szélső számjegy a többiek jogosultságait jelöli.

A használható számjegyek listája itt található:

0: (000) Nincs engedély.
1: (001) Engedély végrehajtása.
2: (010) Írási engedély.
3: (011) Írási és végrehajtási engedélyek.
4: (100) Olvasási engedély.
5: (101) Olvasási és végrehajtási engedélyek.
6: (110) Olvasási és írási engedélyek.
7: (111) Olvasási, írási és végrehajtási engedélyek.

A három engedély mindegyikét a decimális szám bináris megfelelőjének egy-egy bitje képviseli. Tehát az 5, ami binárisan 101, olvasást és végrehajtást jelent. 2, ami binárisan 010, az írási engedélyt jelentené.

Ezzel a módszerrel beállíthatja a kívánt jogosultságokat; ezeket az engedélyeket nem adja hozzá a meglévő engedélyekhez. Tehát ha az olvasási és írási engedélyek már megvoltak, akkor a 7 (111)-et kell használnia a végrehajtási engedélyek hozzáadásához. Az 1 (001) használata eltávolítja az olvasási és írási engedélyeket, és hozzáadja a végrehajtási engedélyt.

Adjuk hozzá az olvasási engedélyt a „.page” fájlokhoz a többi felhasználói kategória számára. Meg kell adnunk a felhasználói és csoportjogosultságokat is, tehát a már meglévőkre kell beállítanunk őket. Ezek a felhasználók már rendelkeznek olvasási és írási jogosultsággal, ami 6 (110). Azt akarjuk, hogy a „többieknek” legyen olvasási és jogosultsága, ezért 4-re (100) kell őket állítani.

A következő parancs fogja ezt végrehajtani:

chmod 664 *.page

Ez beállítja a felhasználó, a csoporttagok és mások számára szükséges engedélyeket az általunk igényeltekre. A felhasználók és a csoporttagok jogosultságait visszaállítják a korábbira, a többiek olvasási jogosultságait visszaállítják.

ls -l

Haladó beállítások

Ha te olvasd el a man oldalt A chmod esetében látni fogja, hogy van néhány speciális opció a SETUID és SETGID bitekhez, valamint a korlátozott törléshez vagy a „ragadós” bithez.

Az esetek 99%-ában szükséged lesz a chmod-ra, az itt leírt lehetőségek segítenek Önnek.