Fájlengedélyek Linuxban / Unixban: Olvasás, írás és módosítás

⚡ Okos összefoglaló

A Linux és Unix rendszerben a fájlengedélyek szabályozzák, hogy ki olvashatja, írhatja és futtathatja az egyes fájlokat, két rétegen keresztül védve a többfelhasználós rendszert: a tulajdonjog, amely hozzárendel egy felhasználót, csoportot és másokat, valamint az olvasási, írási és végrehajtási jogosultságbitek.

  • 👥 Tulajdonjog: Minden fájl és könyvtár egy felhasználóhoz (tulajdonoshoz), egy csoporthoz és másokhoz tartozik, amelyeket néha világnak is neveznek.
  • 🔑 Engedélyek: Három jogosultság vonatkozik minden tulajdonos osztályra: olvasás (r), írás (w) és végrehajtás (x).
  • 📃 Listing: Az ls -l parancs egy jogosultsági karakterláncot jelenít meg, például a -rw-rw-r– értéket a tulajdonos, a csoport és a világ számára.
  • 🔢 Abszolút mód: A háromjegyű oktális számmal rendelkező chmod parancs egyszerre állítja be mindhárom osztály jogosultságait, például 764-et.
  • Szimbolikus mód: A chmod parancs az u, g, o, a és +, -, = parancsokkal egy tulajdonos osztályt megváltoztat a többi érintése nélkül.
  • 🧭 Tulajdonjogi parancsok: A chown parancs a tulajdonost és a csoportot is megváltoztatja, míg a chgrp csak a csoportot.
  • 🤖 MI segítség: A mesterséges intelligencia asszisztensek és a GitHub Copilot képesek chmod és chown parancsokat generálni és elmagyarázni.

Fájlengedélyek Linuxban és Unixban: hogyan lehet olvasni, írni és módosítani

Fájlengedélyek itt: Linux és az Unix dönti el, hogy ki olvashatja, módosíthatja vagy futtathatja az egyes fájlokat, ami biztonságban tartja a megosztott, többfelhasználós rendszert. Ez az oldal végigvezeti a fájlok tulajdonjogán, az olvasási, írási és végrehajtási engedélyeken, valamint az ezeket módosító parancsokon.

A Linux a Unix klónja, amely egy többfelhasználós operációs rendszer, amelyet egyszerre sok felhasználó érhet el. A Linux nagyszámítógépeken és szervereken is használható módosítás nélkül. Ez azonban biztonsági aggályokat vet fel, mivel egy kéretlen vagy rosszindulatú felhasználó megrongálhatja, megváltoztathatja vagy eltávolíthatja a kulcsfontosságú adatokat. A hatékony biztonság érdekében a Linux két szintre osztja a jogosultságokat:

  • Tulajdon
  • Engedély

A fájljogosultságok és a tulajdonjog fogalma kulcsfontosságú a Linuxban. Ebben a cikkben elmagyarázzuk a Linux jogosultságokat és a tulajdonjogot, és mindkettőt megvitatjuk. Kezdjük a tulajdonjoggal.

Linux fájl tulajdonjoga

A Unix/Linux rendszeren minden fájlhoz és könyvtárhoz háromféle tulajdonos tartozik, amelyeket alább láthatunk. Az alábbi ábra azt mutatja, hogyan viszonyul a tulajdonjog a felhasználóhoz, a csoporthoz és másokhoz.

A Linux fájltulajdonlás diagramja, amelyen látható a felhasználó, a csoport és az egyéb jogosultsági osztályok

használó

Egy felhasználó a fájl tulajdonosa. Alapértelmezés szerint a fájlt létrehozó személy lesz a tulajdonosa. Ezért a felhasználót néha tulajdonosnak is nevezik.

Csoport

A felhasználói csoport több felhasználót is tartalmazhat. Egy csoporthoz tartozó összes felhasználó ugyanazokkal a Linux csoportengedélyekkel rendelkezik a fájlhoz. Tegyük fel, hogy van egy projekted, amelyben több személynek is hozzáférésre van szüksége egy fájlhoz. Ahelyett, hogy manuálisan rendelnél engedélyeket az egyes felhasználókhoz, hozzáadhatod az összes felhasználót egy csoporthoz, és csoportengedélyt rendelhetsz a fájlhoz, így csak ezek a csoporttagok, és senki más, olvashatják vagy módosíthatják a fájlokat.

Más

Bármely más felhasználó, aki hozzáféréssel rendelkezik egy fájlhoz. Ez a személy nem hozta létre a fájlt, és nem tartozik olyan felhasználói csoporthoz, amely birtokolhatná azt. Gyakorlatilag ez mindenki mást jelent. Ezért, amikor másoknak adsz meg engedélyt, azt a világ egészére vonatkozó engedélyek beállításának is nevezik.

Most felmerül a nagy kérdés: hogyan tesz különbséget a Linux e három felhasználói típus között, hogy az „A” felhasználó ne tudjon befolyásolni egy olyan fájlt, amely egy másik „B” felhasználó létfontosságú információit vagy adatait tartalmazza? Ez olyan, mintha nem akarnánk egy kollégát, aki a mién dolgozik. Linux számítógép a képek megtekintéséhez. Itt jönnek képbe az engedélyek, amelyek meghatározzák a felhasználói viselkedést.

Nézzük meg a Linux jogosultságrendszerét.

Linux fájljogosultságok

A Unix/Linux rendszered minden fájljához és könyvtárához a következő három jogosultság tartozik, amelyeket a fent tárgyalt mindhárom tulajdonoshoz definiáltunk.

  • Olvasás: Ez az engedély feljogosít egy fájl megnyitására és olvasására. Egy könyvtár olvasási engedélye lehetővé teszi a tartalmának listázását.
  • Ír: Az írási jogosultság feljogosít egy fájl tartalmának módosítására. Egy könyvtárra vonatkozó írási jogosultság feljogosít a könyvtárban tárolt fájlok hozzáadására, eltávolítására és átnevezésére. Vegyünk egy olyan forgatókönyvet, amelyben írási jogosultsággal rendelkezik egy fájlra, de nincs írási jogosultsága arra a könyvtárra, ahol a fájl található. Módosíthatja a fájl tartalmát, de nem nevezheti át, helyezheti át vagy távolíthatja el a fájlt a könyvtárból.
  • Végrehajtás: In Windows, egy futtatható program kiterjesztése általában „.exe”, amelyet könnyen futtathatsz. Unix/Linux alatt nem futtathatsz programot, hacsak nincs beállítva a végrehajtási engedély. Ha a végrehajtási engedély nincs beállítva, akkor továbbra is láthatod vagy módosíthatod a programkódot (feltéve, hogy az olvasási és írási engedélyek be vannak állítva), de nem futtathatod.

Nézzük meg a fájlengedélyeket Linuxban példákkal. Az ls -l parancs futtatása a terminálon a következő eredményt adja:

ls -l

Az alábbi képernyőkép egy hosszú listában mutatja az engedélyezési karakterláncot.

Az ls -l terminál kimenete, amely egy fájlhoz tartozó rw-rw-r-- jogosultsági karakterláncot jelenít meg.

Itt kiemeltük az '-rw-rw-r–' kódot, és ez a furcsa kinézetű kód az, amely a tulajdonosnak, a felhasználói csoportnak és a világnak adott Unix jogosultságokról árulkodik.

Itt az első '-' jel azt jelenti, hogy kiválasztottunk egy fájlt. Az alábbi ikon egy normál fájlt jelöl.

Kis ikon, amely jelzi, hogy a listázott elem egy normál fájl

Egyébként, ha könyvtár lenne, egy 'd' betű jelenne meg, ahogy az alábbi listában is látható.

A terminállista egy olyan könyvtárat jelenít meg, amely az engedélyezési karakterlánc elején d betűvel van jelölve.

A karakterek nagyon könnyen megjegyezhetők.

  • r = olvasási engedély
  • w = írási engedély
  • x = végrehajtási engedély
  • – = nincs engedély

Nézzük meg így. A kód első része 'rw-'. Ez arra utal, hogy a 'Home' tulajdonos a következőket teheti:

  • Olvassa el a fájlt
  • Írja meg vagy szerkessze a fájlt

A tulajdonos nem tudja végrehajtani a fájlt, mivel a végrehajtási bit '-'-re van állítva. Az alábbi ikon azt mutatja, hogy a végrehajtási bit kötőjelre van cserélve.

Kis ikon, amelyen a végrehajtási engedélybit törlődik egy kötőjellé

Tervezésileg számos Linux disztribúció, mint például a Fedora, a CentOS és a Ubuntu adj hozzá egy felhasználót egy azonos nevű csoporthoz. Így a 'tom' felhasználó hozzáadódik egy 'tom' nevű csoporthoz.

A második rész az „rw-”. Ez a „Home” felhasználói csoporthoz tartozik, és a csoport tagjai a következőket tehetik:

  • Olvassa el a fájlt
  • Írja meg vagy szerkessze a fájlt

A harmadik rész a világra vonatkozik, ami bármely felhasználót jelent. Azt írja, hogy „r–”. Ez azt jelenti, hogy a felhasználó csak a következőket teheti:

  • Olvassa el a fájlt

Az alábbi lebontás a jogosultsági karakterlánc minden részét a tulajdonoshoz, a csoporthoz és a világhoz rendeli.

Az rw-rw-r-- jogosultsági karakterlánc lebontása tulajdonos, csoport és világ részekre

Fájl-/könyvtárengedélyek módosítása Linuxban a 'chmod' parancs használatával

Tegyük fel, hogy nem szeretné, hogy egy kollégája lássa a személyes képeit. Ezt a fájlengedélyek módosításával teheti meg.

Használhatjuk a 'chmod'-ot parancs, ami a „módosítási módot” jelenti. A parancs használatával jogosultságokat (olvasás, írás, végrehajtás) állíthatunk be egy fájlra vagy könyvtárra a tulajdonos, a csoport és a világ számára.

Syntax:

chmod permissions filename

A parancs kétféleképpen használható:

  • Abszolút mód
  • Szimbolikus mód

Abszolút (numerikus) mód Linuxban

Ebben a módban a fájlengedélyek nem karakterekkel, hanem háromjegyű oktális számként jelennek meg. Az alábbi táblázat az összes engedélytípushoz tartozó számokat tartalmazza.

Szám Engedély típusa Szimbólum
0 Nincs engedélye -
1 Végrehajt -X
2 Ír -Ban ben-
3 Végrehajtás + Írás -wx
4 Olvass r–
5 Olvasás + Végrehajtás rx
6 Olvasás + Írás rw -
7 Olvasás + Írás + Végrehajtás rwx

Nézzük meg a chmod parancsot működés közben, ahogy az az alábbi terminálablakban látható.

Terminál, amely a fájlmintán chmod 764 parancsot futtat az engedélyek módosításához

A fenti terminálablakban a 'sample' fájl jogosultságait '764'-re változtattuk. A '764' abszolút kód a következőket mondja:

  • A tulajdonos olvashat, írhat és végrehajthat.
  • A felhasználói csoport olvashat és írhat.
  • A világ csak olvasni tud.

Ez '-rwxrw-r–' formátumban jelenik meg, ahogy az alábbi eredményben is látható.

A terminállista, amely a chmod 764 utáni -rwxrw-r-- jogosultsági karakterlánccal rendelkező mintafájlt mutatja

Így módosíthatja a felhasználói jogosultságokat Linuxban egy fájlra vonatkozóan egy abszolút szám hozzárendelésével.

Szimbolikus mód Linuxban

Abszolút módban mindhárom tulajdonos jogosultságait módosíthatod. Szimbolikus módban egy adott tulajdonos jogosultságait módosíthatod. Matematikai szimbólumokat használ a Unix fájlengedélyek módosításához.

Operator Leírás
+ Engedélyt ad egy fájlhoz vagy könyvtárhoz
- Eltávolítja az engedélyt
= Beállítja az engedélyt, és felülírja a korábban beállított engedélyeket.

A különböző tulajdonosokat a következőképpen képviselik.

használó Jelölések
u felhasználó/tulajdonos
g csoport
o egyéb
a minden

Nem számokban, például 755-ben szereplő jogosultságokat fogunk használni, hanem karakterekben, például rwx-ben. Nézzük meg az alábbi példát.

Terminál szimbolikus chmod használatával u, g, o és +, -, = karakterekkel az egyes jogosultságok módosításához

Tulajdonjog és csoport megváltoztatása Linuxban

Egy fájl vagy könyvtár tulajdonjogának megváltoztatásához a következő parancsot használhatja:

chown user filename

Ha egy fájl vagy könyvtár felhasználóját és csoportját is módosítani szeretné, használja a következő parancsot:

chown user:group filename

Nézzük meg ezt működés közben, ahogy az alább látható.

Terminál, amely a chown parancsot futtatja egy fájl tulajdonosának és csoportjának módosításához

Ha csak a csoport tulajdonosát szeretné módosítani, használja a következő parancsot:

chgrp group_name filename

A „chgrp” a csoportváltást jelenti. Az alábbi képernyőkép a chgrp parancs használatát mutatja.

A chgrp parancs futtatásával terminál, amely csak egy fájl csoporttulajdonosát módosítja

típus

  • Az /etc/group fájl tartalmazza a rendszeren definiált összes csoportot.
  • A „groups” parancs segítségével megkeresheted az összes olyan csoportot, amelynek tagja vagy, az alábbiak szerint.

A terminál futtatja a groups parancsot, hogy listázza a felhasználóhoz tartozó csoportokat

  • A newgrp parancs segítségével az alapértelmezett csoporttól eltérő csoport tagjaként is dolgozhat, az alábbiak szerint.

Terminál, ahol a newgrp parancs fut egy másik csoportra való váltáshoz

  • Nem lehet két csoportnak ugyanaz a fájl a tulajdonosa.
  • Linuxban nincsenek beágyazott csoportok. Egyik csoport sem lehet egy másik alcsoportja.
  • x — egy könyvtár végrehajtása azt jelenti, hogy „beléphetünk” egy könyvtárba, és hozzáférhetünk az alkönyvtáraihoz.
  • Vannak más jogosultságok is, amelyeket fájlokra és könyvtárakra állíthatsz be, amelyeket egy későbbi haladó oktatóanyagban tárgyalunk.

GYIK

Add hozzá a végrehajtási jogosultságot a chmod paranccsal. A chmod +x script.sh szimbolikus formátum mindenkinek megadja a végrehajtási jogosultságot, míg a chmod u+x script.sh csak a tulajdonosnak adja meg. Ezután a szkriptet közvetlenül futtathatod a ./script.sh paranccsal a saját könyvtárából.

Az umask beállítja az újonnan létrehozott fájlokról és könyvtárakról eltávolított alapértelmezett jogosultságokat. A fájlok 666-tal, a könyvtárak 777-tel kezdődnek, majd az umask értéke a következő:tracted. Egy gyakori 022-es umask a fájlokat 644-re, a könyvtárakat pedig 755-re adja. Az aktuális érték megtekintéséhez futtassa az umask parancsot.

Ezek speciális jogosultságbitek. A setuid a tulajdonos jogaival futtatja a programot, a setgid a csoport jogaival, vagy az új fájlokat egy könyvtár csoportjának öröklésére kényszeríti, a sticky bit pedig csak a fájl tulajdonosát engedélyezi a fájl törlésére egy megosztott könyvtárban, például a /tmp könyvtárban.

Igen. Csak a root felhasználó, vagy a sudo parancsot futtató felhasználó módosíthatja egy fájl tulajdonosát a chown paranccsal. Egy átlagos tulajdonos átadhatja a fájlját egy olyan csoportnak, amelyhez tartozik, de egy másik felhasználóhoz való átruházáshoz biztonsági okokból root jogosultságok szükségesek.

Ez a hiba azt jelenti, hogy nincsenek jogosultságaid a fájl módosítására. A chmod futtatásához a fájl tulajdonosának vagy root felhasználónak kell lenned; a chown futtatásához általában root felhasználónak kell lenned. Írd a parancs elé a sudo parancsot, vagy válts a fájl tulajdonosára, és próbáld újra.

Használd a rekurzív -R kapcsolót. A chmod -R 755 myfolder parancs a mappára és a benne lévő összes fájlra és almappára alkalmazza a jogosultságokat, a chown -R user:group myfolder pedig ugyanezt teszi a tulajdonjoggal. A -R kapcsolót óvatosan használd, mivel a mappa alatti összes elemre hatással van.

A mesterséges intelligencia asszisztensei le tudják fordítani az olyan kéréseket, mint például a „tegye ezt a szkriptet csak nekem végrehajthatóvá”, a megfelelő chmod parancsra, el tudják magyarázni, mit jelent egy olyan mód, mint a 755, és figyelmeztethetnek a kockázatos beállításokra, mint például a 777. A gépi tanuláson alapuló biztonsági eszközök azokat a fájlokat is megjelölik, amelyek engedélyei veszélyesen nyitottnak tűnnek.

Igen. GitHub másodpilóta A chmod, chown és chgrp parancsokat egy rövid megjegyzésből javasolhatja, amely leírja a kívánt jogosultságokat vagy tulajdonost, és gépelés közben kiegészítheti azokat. RevMinden javaslatot érdemes megtekinteni a futtatás előtt, mivel az engedélyek és a tulajdonjog változásai befolyásolják a biztonságot.

Foglald össze ezt a bejegyzést a következőképpen: