Hogyan működik a Linux fájl?
Ha már régóta használta a Linuxot (és még az OS X-et is), valószínűleg „engedélyek” hibát talált. De pontosan mit jelentenek, és miért szükségesek vagy hasznosak? Vegyünk egy belső megjelenést.
Felhasználói engedélyek
A nap folyamán a számítógépek hatalmas gépek voltak, amelyek hihetetlenül drágák voltak. Ahhoz, hogy a lehető legtöbbet hozzák ki, több számítógépes terminál is csatlakozott, ami sok felhasználó számára lehetővé tette, hogy egyszerre folytassák üzleti tevékenységüket. Az adatok feldolgozása és tárolása a gépen történt, míg maguk a terminálok kicsit többet jelentenek az adatok megtekintésének és bevitelének eszközeként. Ha úgy gondolja, hogy ez eléggé nagy, hogyan jutunk hozzá a „felhő” adataihoz; nézd meg az Amazon Cloud MP3 rendszerét, a Gmailet és a Dropboxot, és észre fogod venni, hogy bár a változtatások helyben történhetnek, mindent távolról tárolunk.
(Kép: Zenith Z-19 „hülye” terminál; hitel: ajmexico)
Ahhoz, hogy ez működjön, az egyes felhasználóknak fiókokat kell készíteniük. Szükségük van egy résszel a tárolási területre, és meg kell engedni, hogy parancsokat és programokat futtassanak. Mindenki megkapja a „felhasználói jogosultságokat”, amelyek azt diktálják, hogy mit tehetnek, és nem tehetnek, hol a rendszeren, és nem rendelkeznek hozzáféréssel, és amelyek fájljai módosíthatók és nem módosíthatók. Minden felhasználó különböző csoportokba kerül, amelyek további hozzáférést biztosítanak vagy korlátozzák.
Fájl hozzáférés
Ebben a szokatlanul több felhasználó világában már meghatároztuk a felhasználók számára elérhető határokat. De mi van azzal, hogy mit érnek hozzá? Nos, minden fájl rendelkezik jogosultságokkal és tulajdonossal. A tulajdonos megnevezése, amely rendszerint a fájl létrehozásakor kötődik, kijelöli, hogy melyik felhasználóhoz tartozik, és csak a felhasználó módosíthatja a hozzáférési engedélyeit.
A Linux világában az engedélyek három kategóriába sorolhatók: olvasás, írás és végrehajtás. Az „olvasás” hozzáférés lehetővé teszi egy fájl tartalmának megtekintését, az „írás” hozzáférés lehetővé teszi egy fájl tartalmának módosítását, és a „végrehajtás” lehetővé teszi, hogy az utasításokat, például egy parancsfájlt vagy egy programot futtasson. Mindegyik kategória különböző osztályokra vonatkozik: felhasználó, csoport és világ. „Felhasználó” a tulajdonos, a „csoport” azt jelenti, hogy minden olyan felhasználó, aki ugyanabban a csoportban van, mint a tulajdonos, és a „világ” bárkit és mindenkit jelent..
A mappák ezen engedélyekkel is korlátozhatók. Például engedélyezheti, hogy a csoportban lévő más személyek megtekinthessék az otthoni mappában lévő könyvtárakat és fájlokat, de nem a csoporton kívül. Valószínűleg csak magadra kívánja korlátozni az „írási” hozzáférést, kivéve, ha valamilyen közös projekten dolgozik. Létrehozhat egy megosztott könyvtárat is, amely lehetővé teszi, hogy bárki megtekinthesse és módosítsa a mappában lévő fájlokat.
Engedélyek módosítása az Ubuntu-ban
GUI
Az Ubuntu tulajdonában lévő fájl engedélyeinek módosításához kattintson a jobb gombbal a fájlra, és lépjen a „Tulajdonságok” menüpontra.
Megváltoztathatja, hogy a Tulajdonos, a Csoport vagy a Mások képes-e olvasni és írni, olvasni vagy semmit sem tenni. Beállíthat egy jelölőnégyzetet a fájl végrehajtásának engedélyezéséhez, és ez egyidejűleg lehetővé teszi azt a Tulajdonos, a Csoport és a többi számára.
Parancs sor
Ezt a parancssoron keresztül is elvégezheti. Ugrás egy könyvtárba, amely fájlokat tartalmaz, és írja be a következő parancsot a listában lévő összes fájl megtekintéséhez:
Ls -al
Az egyes fájlok és könyvtárak mellett megjelenik egy speciális szakasz, amely felvázolja az engedélyeket. Ez így néz ki:
-rwxrw-R-
A r jelentése: „olvasás”, a w a „írás” és a „ x A könyvtárak „d” -vel kezdődnek a „-” helyett. Azt is észre fogja venni, hogy 10 hely van, amelyek értéket tartanak. Az elsőt figyelmen kívül hagyhatja, majd 3-at 3-as készletből áll. Az első készlet a tulajdonos számára, a második a csoport, a legutóbbi pedig a világ számára.
Fájl vagy könyvtár engedélyeinek módosításához nézzük meg a chmod parancs alapformáját.
chmod [class] [operátor] [engedély] fájl
chmod [ugoa] [+ vagy -] [rwx] fájl
Ez először bonyolultnak tűnhet, de bízz bennem, ez elég könnyű. Először nézzük meg az osztályokat:
- u: Ez a tulajdonosnak szól.
- g: Ez a csoportra vonatkozik.
- o: Ez mindenki másra vonatkozik.
- a: Ez megváltoztatja a fenti engedélyek engedélyeit.
Ezután az operátorok:
- +: A pluszjel hozzáadja a következő engedélyeket.
- -: A mínuszjel eltávolítja a következő engedélyeket.
Maradj velem? Az utolsó rész ugyanaz, mint amikor egy fájl engedélyeit ellenőriztük:
- r: Lehetővé teszi az olvasási hozzáférést.
- w: Lehetővé teszi az írási hozzáférést.
- x: Lehetővé teszi a végrehajtást.
Most tegyük össze. Tegyük fel, hogy van egy "todo.txt" nevű fájl, amely az alábbi jogosultságokkal rendelkezik:
-rw-rw-r-
Vagyis a tulajdonos és a csoport olvashat és írhat, és a világ csak olvasni tud. Az alábbi jogosultságokat szeretnénk módosítani:
-rwxr-
Ez azt jelenti, hogy a tulajdonos teljes jogosultságokkal rendelkezik, és a csoport olvashat. Ezt 3 lépésben tehetjük meg. Először hozzáadjuk a felhasználó végrehajtási engedélyét.
chmod u + x todo.txt
Ezután eltávolítjuk a csoport írási engedélyét.
chmod g-w todo.txt
Végül eltávolítjuk az összes többi felhasználó olvasási engedélyét.
chmod o-r todo.txt
Ezeket egy parancsba is kombinálhatjuk, mint például:
chmod u + x, g-w, o-r todo.txt
Láthatjuk, hogy minden szakasz vesszővel van elválasztva, és nincs szóköz.
Íme néhány hasznos engedély:
- -rwxr-xr-x: A tulajdonos teljes jogosultsággal rendelkezik, a csoport és a többi felhasználó olvashatja a fájl tartalmát és végrehajthatja.
- -rwxr-r-: A tulajdonos teljes jogosultsággal rendelkezik, a csoport és a többi felhasználó csak fájlokat olvashat (hasznos, ha nem bánja, hogy mások megnézik a fájljait).
- -rwx-: A tulajdonos teljes jogosultsággal rendelkezik, mindenki másnak nincs (hasznos a személyes szkriptekhez).
- -rw-rw--: A tulajdonos és a csoport olvashat és írhat (hasznos a csoporttagokkal való együttműködéshez).
- -rw-r-r-: A tulajdonos olvashat és írhat, csoportos és más felhasználók csak fájlokat olvashatnak (hasznosak személyes fájlok tárolására egy megosztott hálózaton).
- -rw--: A tulajdonos olvashat és írhat, mindenki másnak nincs (hasznos személyes fájlok tárolásához).
Van még néhány más dolog, amit a chmod-szal tehetsz - mint a setuid és a setgid -, de egy kicsit mélyebb, és a legtöbb felhasználónak valóban nem kell őket használni..
A gyökér vagy a Super-felhasználó és a rendszerfájlok
Napjainkban nem mindig futtatunk olyan rendszereket, amelyek több felhasználóval rendelkeznek. Miért kell még aggódnunk az engedélyek miatt?
Nos, a Unix és annak származékai - Linux, OS X - többek között megkülönböztetik a felhasználó által kezelt dolgokat, a rendszergazda által működtetett dolgokat vagy az adminisztrátori jogosultságokat, valamint a rendszer által működtetett dolgokat. Mint ilyen, a rendszernek szerves részét képező dolgokhoz adminisztrátori jogosultságokat kell módosítani vagy hozzáférni. Ily módon nem véletlenül elrontod.
Az Ubuntu-ban a rendszerfájlok módosítását a „sudo” vagy „gksudo” használatával végezheti el, hogy megkapja a rendszergazdai jogosultságok egyenértékűségét. Más területeken a „gyökér” vagy a „szuper-felhasználó” -ra vált, ami ugyanezt teszi, amíg ki nem jelentkezik.
Ne feledje, hogy mindkét esetben a fájljogosultságok megváltoztatása olyan programokhoz vezethet, amelyek nem működnek, a fájl tulajdonjogának véletlen megváltoztatása a root felhasználóra (a tulajdonos helyett), és a rendszer kevésbé biztonságos (több engedély megadása) révén. Ezért ajánlott, hogy ne változtassa meg a fájlok - különösen a rendszerfájlok - engedélyeit, kivéve, ha szükséges, vagy tudod, mit csinálsz.
Fájljogosultságok vannak a felhasználók alapvető biztonsági rendszerének biztosítására. A munkájuk megtanulása segíthet az alapmegosztás több felhasználó környezetben történő beállításában, a „nyilvános” fájlok védelmében, és arra utal, hogy mikor baj van a rendszerfájl tulajdonjogával.
Szerintem könnyebb megmagyarázni a dolgokat? Javítson? Szeretne emlékezni a régi időkre? Vegyünk egy kis szünetet, és tegyük a gondolataidat a megjegyzésekbe.