A chmod parancs használata Linux alatt

A Linux chmodparancsával szabályozhatja, hogy ki férhet hozzá a fájlokhoz, kereshet könyvtárakba és futtathat parancsfájlokat . Ez a parancs módosítja a Linux fájlengedélyeket, amelyek első pillantásra bonyolultnak tűnnek, de valójában nagyon egyszerűek, ha már tudod, hogyan működnek.

A chmod módosítja a fájlengedélyeket

A Linux rendszerben az, hogy mit tehet egy fájlról vagy könyvtárról, engedélyek halmazán keresztül vezérelhető. Három engedélycsoport van. Egy készlet a fájl tulajdonosának, egy másik készlet a fájl csoportjának tagjainak, egy végső készlet pedig mindenki másnak.

Az engedélyek vezérlik a fájlon vagy a könyvtáron végrehajtható műveleteket. Vagy engedélyezik, vagy megakadályozzák egy fájl olvasását, módosítását vagy - ha szkriptről vagy programról van szó - futtatását. Egy könyvtár esetében az engedélyek szabályozzák, hogy ki léphet cdbe a könyvtárba, és ki hozhat létre vagy módosíthat fájlokat a könyvtárban.

chmod paranccsal állíthatja be ezeket az engedélyeket. Használhatjuk, hogy megnézzük, milyen engedélyeket állítottak be egy fájlra vagy könyvtárra ls.

Fájlengedélyek megtekintése és megértése

Használhatjuk a -l(hosszú formátum) opciót lsa fájlok és könyvtárak fájlengedélyeinek felsorolásához.

ls -l

Minden sorban az első karakter azonosítja a felsorolni kívánt bejegyzés típusát. Ha kötőjel ( -), akkor az egy fájl. Ha betű, d akkor 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ó engedélyeit mutatja ( felhasználói engedélyek ).
  • A középső három karakter a fájlcsoport tagjainak engedélyeit ( csoportengedélyek ) mutatja.
  • Az utolsó három karakter megmutatja azok engedélyeit, akik nem tartoznak az első két kategóriába ( egyéb engedélyek ).

Minden engedélykészletben három karakter található. A karakterek jelzik az egyik engedély meglétét vagy hiányát. Vagy kötőjel ( -) vagy betű. Ha a karakter kötőjel, ez azt jelenti, hogy az engedély nem adható meg. Ha a karakter egy r, wvagy egy x, akkor ezt az engedélyt megadták.

A betűk:

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

Például:

  •  --- azt jelenti, hogy egyáltalán nem kaptak engedélyeket.
  •  rwxazt jelenti, hogy teljes engedélyt kaptak. Az olvasás, az írás és a végrehajtás indikátorok mind megjelennek.

Képernyőképünkön az első sor a-val kezdődik d. Ez a sor az „archív” nevű könyvtárra utal. A könyvtár tulajdonosa „dave”, és annak a csoportnak a nevét, amelyhez a könyvtár tartozik, „dave” -nek is nevezik.

A következő három karakter ennek a könyvtárnak a felhasználói engedélyeit jelenti. Ezek azt mutatják, hogy a tulajdonosnak teljes engedélyei vannak. A r,, wés a xkarakterek egyaránt jelen vannak. Ez azt jelenti, hogy a felhasználó dave olvasási, írási és végrehajtási engedélyeket adott az adott könyvtárhoz.

A második három karakterből álló csoport a csoportengedélyek, ezek r-x. Ezek azt mutatják, hogy a dave csoport tagjai elolvasták és végrehajtották a könyvtár engedélyeit. Ez azt jelenti, hogy felsorolhatják a fájlokat és azok tartalmát a könyvtárban, és cd(futtathatják) az adott könyvtárba. Nincsenek írási engedélyeik, ezért nem tudnak fájlokat létrehozni, szerkeszteni vagy törölni.

A három karakterből álló utolsó készlet is  r-x. Ezek az engedélyek olyan emberekre vonatkoznak, akikre nem az első két engedélykészlet vonatkozik. Ezeknek az embereknek (másoknak hívják) vannak olvasási és végrehajtási engedélyei ebben a könyvtárban.

Összefoglalva, a csoport tagjai és mások olvasási és végrehajtási engedélyekkel rendelkeznek. A tulajdonos, a dave nevű felhasználó írási jogosultsággal is rendelkezik.

Az összes többi fájl esetében (az mh.sh szkriptfájl kivételével) dave és a dave csoport tagjai olvasási és írási tulajdonságokat írtak a fájlokra, a többieknek pedig csak olvasási engedélyei vannak.

Az mh.sh szkriptfájl speciális esetére a tulajdonos dave és a csoport tagjai olvasási, írási és végrehajtási jogosultságokat, a többiek pedig csak olvasási és végrehajtási engedélyeket adtak meg.

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

Az chmod engedélyek beállításához el kell mondanunk:

  • Ki:  Kinek adunk engedélyeket.
  • Mi : Milyen változást hajtunk végre? Hozzáadjuk vagy eltávolítjuk az engedélyt?
  • Melyik : Melyik engedélyt állítjuk be?

Indikátorok segítségével ábrázoljuk ezeket az értékeket, és rövid „jogosultsági utasításokat” alkotunk, például u+x, ahol az „u” jelentése „felhasználó” (aki), a „+” jelentése hozzáadás (mi), az „x” pedig az engedély végrehajtása (amely) .

A „ki” értékek, amelyeket használhatunk:

  • u : Felhasználó, vagyis a fájl tulajdonosa.
  • g : Csoport, vagyis annak a csoportnak a tagjai, amelyhez a fájl tartozik.
  • o : Mások, vagyis olyan emberek, akikre nem vonatkoznak a ués az gengedélyek.
  • a : Mind, ami a fentiek mindegyikét jelenti.

Ha ezek chmodegyikét sem alkalmazzák, úgy viselkedik, mintha a „ a” -t használták volna.

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

  • - : Mínusz jel. Eltávolítja az engedélyt.
  • + : Pluszjel. Megadja az engedélyt. Az engedély hozzáadódik a meglévő engedélyekhez. Ha meg szeretné kapni ezt az engedélyt, és csak ezt az engedélyt szeretné beállítani, használja az =alább leírt lehetőséget.
  • = : Egyenlőségjel. Állítson be egy engedélyt és távolítson el másokat.

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

  • r : Az olvasási engedély.
  • w : Az írási engedély.
  • x : Engedély végrehajtása.

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

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

ls -l new_ file.txt

Azt akarjuk, hogy a felhasználó dave-nek legyenek olvasási és írási engedélyei, a csoportnak és a többi felhasználónak pedig csak olvasási engedélyei. A következő paranccsal tehetjük meg:

chmod u = rw, og = r new_file.txt

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

ellenőrizzük a fájl új engedélyét:

ls -l new_file.txt

A meglévő engedélyeket eltávolítottuk, és az új engedélyeket beállítottuk, amire számítottunk.

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

Tegyük fel, hogy van egy szkriptfájlunk, amelynek szerkesztését befejeztük. Futtathatóvá kell tennünk minden felhasználó számára. A jelenlegi engedélyek így néznek ki:

ls -l new_script.sh

A következő paranccsal hozzáadhatjuk a végrehajtási engedélyt mindenki számára:

chmod a + x új_szkript.sh

Ha megnézzük az engedélyeket, látni fogjuk, hogy a végrehajtási engedélyt most már mindenki megkapja, és a meglévő engedélyek még mindig érvényben vannak.

ls -l new_script.sh

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

chmod + x new_script.sh

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

Engedélyeket alkalmazhatunk egyszerre több fájlra.

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 engedélyeit a „.page” kiterjesztésű fájlokról. Ezt a következő paranccsal tehetjük meg:

chmod vagy * .oldal

Ellenőrizzük, hogy milyen hatása volt:

ls -l

Mint láthatjuk, az „egyéb” kategória felhasználói számára eltávolították az „.page” fájlok olvasási engedélyét. Más fájlokat ez nem érintett.

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

chmod -R vagy * .oldal

Numerikus gyorsírás

A felhasználás másik módja chmodaz, hogy háromjegyű számként adja meg a tulajdonosnak, csoportnak és másoknak megadandó engedélyeket. A bal szélső számjegy a tulajdonos engedélyeit jelöli. A középső számjegy a csoporttagok engedélyeit jelöli. A jobb szélső számjegy a többiek engedélyeit jelöli.

Az Ön által használható számjegyeket és az általuk képviselt számokat itt soroljuk fel:

  • 0: (000) Nincs engedély.
  • 1: (001) Engedély végrehajtása.
  • 2: (010) Írási engedély.
  • 3: (011) Engedélyek írása és végrehajtása.
  • 4: (100) Olvasási engedély.
  • 5: (101) Engedélyek olvasása és végrehajtása.
  • 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 az egyik bit képviseli a tizedesjegy bináris egyenértékében. Tehát az 5, ami binárisan 101, olvasást és végrehajtást jelent. A 2, ami binárisan 010, az írási engedélyt jelentené.

Ezzel a módszerrel beállítja a kívánt engedélyeket; nem adja hozzá ezeket az engedélyeket a meglévő engedélyekhez. Tehát, ha az olvasási és írási engedélyek már megvannak, akkor a 7 (111) paranccsal kell végrehajtási engedélyeket hozzáadnia. 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.

Vegyük vissza az olvasási engedélyt a többi felhasználó kategóriájába a .page fájlokba. Be kell állítanunk a felhasználói és a csoport jogosultságait is, ezért meg kell adnunk őket arra, amik már vannak. Ezek a felhasználók már rendelkeznek olvasási és írási engedéllyel, ami 6 (110). Azt akarjuk, hogy a „többiek” rendelkezzenek olvasási és engedélyezési lehetőségekkel, ezért 4-re (100) kell állítani őket.

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

chmod 664 * .oldal

Ez beállítja a felhasználó, a csoport tagjai és mások számára szükséges engedélyeket arra, amire szükségünk van. A felhasználók és a csoporttagok engedélyeit visszaállítják azokra, amelyek már voltak, a többiek pedig visszaállították az olvasási engedélyeket.

ls -l

Haladó beállítások

Ha elolvassa a man oldalt, chmodláthatja, hogy van néhány speciális beállítás a SETUID és SETGID bitekhez, valamint a korlátozott törléshez vagy a "ragadós" bithez.

A szükséges esetek 99% -ában az chmoditt leírt lehetőségek fedezik.