Ha már régóta használja a Linuxot (és még az OS X-et is), valószínűleg „engedélyek” hibával találkozik. De pontosan mik is, és miért szükségesek vagy hasznosak? Vessünk egy belső pillantást.
Felhasználói engedélyek
A napokban a számítógépek hatalmas gépek voltak, amelyek hihetetlenül drágák voltak. Ahhoz, hogy a legtöbbet hozza ki belőlük, több számítógépes terminált csatlakoztattak, ami lehetővé tette sok felhasználó számára, 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 alig voltak többek, mint az adatok megtekintésének és bevitelének eszközei. Ha belegondolunk, nagyjából az, hogy miként férünk hozzá az adatokhoz a „felhőn”; nézd meg az Amazon Cloud MP3-rendszerét, a Gmail-t és a Dropbox-ot, és észreveszed, hogy bár a változtatások lokálisan is elvégezhetők, mindent távolról tárolnak.
(Kép: Zenith Z-19 „buta” terminál; jóváírás: ajmexico )
Ahhoz, hogy ez működjön, az egyes felhasználóknak fiókokkal kell rendelkezniük. Rendelkeznie kell a tároló területének egy részével, és engedélyezni kell számukra a parancsok és programok futtatását. Mindenki megkapja a „felhasználói jogosultságokat”, amelyek meghatározzák, hogy mit tehetnek és mit nem, hol a rendszeren, hol nem, és mihez nem férnek hozzá, és kinek a fájljait módosíthatják és nem. Minden felhasználó különféle csoportokba is sorolható, amelyek további hozzáférést biztosítanak vagy korlátoznak.
Fájlhozzáférés
Ebben az ócska többfelhasználós világban már meghatároztuk a határokat, hogy mit tehetnek a felhasználók. De mi van azzal, amihez hozzáférnek? Nos, minden fájl rendelkezik engedélyekkel és tulajdonosokkal. A tulajdonos megnevezése, amelyet általában a fájl létrehozásakor kötnek meg, kijelenti, hogy melyik felhasználóhoz tartozik, és csak ez a felhasználó módosíthatja hozzáférési engedélyeit.
A Linux világában az engedélyeket három kategóriába sorolják: olvasás, írás és végrehajtás. Az „olvasás” hozzáférés lehetővé teszi a fájlok tartalmának megtekintését, az „írási” hozzáférés lehetővé teszi a fájlok tartalmának módosítását, a „végrehajtás” pedig egy utasításkészlet, például egy szkript vagy egy program futtatását. Ezeket a kategóriákat különböző osztályokra alkalmazzák: felhasználó, csoport és világ. A „felhasználó” a tulajdonos, a „csoport” minden olyan felhasználó, aki a tulajdonossal azonos csoportba tartozik, a „világ” pedig bárkit és mindenkit.
Ezekkel az engedélyekkel a mappák is korlátozhatók. Megengedheti például, hogy a csoport más tagjai megtekinthessék a könyvtárakat és fájlokat az otthoni mappában, de senkit ne a csoportján kívül. Valószínűleg csak magadra akarod korlátozni az „írási” hozzáférést, hacsak nem valamilyen megosztott projekten dolgozol. Létrehozhat egy megosztott könyvtárat is, amely lehetővé teszi, hogy bárki megtekinthesse és módosítsa az adott mappában lévő fájlokat.
Engedélyek módosítása az Ubuntuban
GUI
Az Ubuntuban lévő fájl engedélyeinek megváltoztatásához kattintson a jobb gombbal a fájlra, és lépjen a „Tulajdonságok” részhez.
Megváltoztathatja, hogy a Tulajdonos, a Csoport vagy mások tudnak-e olvasni és írni, csak olvasni, vagy nem csinálni semmit. Jelölhet egy négyzetet is a fájl végrehajtásának engedélyezéséhez, és ez lehetővé teszi azt a Tulajdonos, a Csoport és mások számára egyszerre.
Parancs sor
Ezt a parancssoron keresztül is megteheti. Lépjen egy könyvtárba, amelyben fájlok vannak, és írja be a következő parancsot a listában szereplő összes fájl megtekintéséhez:
ls -al
Minden fájl és könyvtár mellett egy speciális szakasz jelenik meg, amely felvázolja a rendelkezésére álló engedélyeket. Ez így néz ki:
-rwxrw-r–
A r jelentése: „olvassa”, a ban ben jelentése: „ír”, és a x a „kivégez” kifejezést jelenti. A könyvtárak a „-“ helyett „d” betűvel kezdődnek. Azt is észreveszi, hogy van 10 szóköz, amelyek értéket képviselnek. Az elsőt figyelmen kívül hagyhatja, és akkor 3 halmaz áll rendelkezésre. Az első készlet a tulajdonosé, a második a csoporté, az utolsó pedig a világé.
A fájl vagy könyvtár engedélyeinek megváltoztatásához nézzük meg a chmod parancs alapvető formáját.
chmod [class][operator][permission] fájl
chmod [ugoa][+ or –] [rwx] fájl
Ez elsőre bonyolultnak tűnhet, de hidd el, ez nagyon egyszerű. Először nézzük meg az osztályokat:
- u: Ez a tulajdonosé.
- g: Ez a csoportnak szól.
- o: Ez minden másra vonatkozik.
- a: Ez megváltoztatja a fentiek engedélyeit.
Ezután az operátorok:
- +: A pluszjel hozzáadja a következő engedélyeket.
- -: A mínusz jel eltávolítja a következő engedélyeket.
Maradj velem? És az utolsó szakasz ugyanaz, mint amikor egy fájl engedélyeit ellenőriztük:
- r: Engedélyezi az olvasási hozzáférést.
- w: Írási hozzáférést engedélyez.
- x: Engedélyezi a végrehajtást.
Most rakjuk össze. Tegyük fel, hogy van egy „todo.txt” nevű fájlunk, amely a következő engedélyekkel rendelkezik:
-rw-rw-r–
Vagyis a tulajdonos és a csoport tud írni és olvasni, a világ pedig csak olvasni. A következő engedélyeket szeretnénk megváltoztatni:
-rwxr—–
Vagyis a tulajdonosnak teljes engedélyei vannak, és a csoport képes olvasni. 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.
χμοδ ο-ρ τοτό.τχτ
Ezeket egy parancsba is kombinálhatjuk, így:
chmod u + x, g-w, o-r todo.txt
Láthatja, hogy az egyes szakaszokat vesszők választják el, és nincsenek szóközök.
Íme néhány hasznos engedély:
- -rwxr-xr-x: A tulajdonos teljes jogosultsággal rendelkezik, a csoportos és más felhasználók pedig olvashatják a fájl tartalmát és futtathatják azokat.
- -rwxr – r–: A tulajdonosnak teljes engedélyei vannak, a csoportos és más felhasználók csak fájlokat olvashatnak (hasznos, ha nem bánja, ha mások megnézik a fájljait.
- -rwx——: A tulajdonosnak teljes engedélyei vannak, a többieknek nincsenek (személyes szkriptekhez hasznosak).
- -rw-rw—-: A tulajdonos és a csoport tud írni és olvasni (hasznos a csoporttagokkal való együttműködéshez).
- -rw-r – r–: A tulajdonos tud írni és olvasni, a csoportos és más felhasználók pedig csak fájlokat olvashatnak (hasznos személyes fájlok megosztott hálózaton történő tárolásához).
- -rw ——-: A tulajdonos tud írni és olvasni, az összes többi nem rendelkezik (hasznos személyes fájlok tárolásához).
Van még néhány dolog, amit megtehetsz a chmod-mal - például a setuid és a setgid -, de ezek kissé mélyrehatóak, és a legtöbb felhasználónak úgysem kell majd használni őket.
A gyökér vagy a szuperfelhasználói és a rendszerfájlok
Manapság nem mindig működtetünk olyan rendszereket, amelyek több felhasználóval rendelkeznek. Miért kellene mégis aggódnunk az engedélyek miatt?
Nos, a Unix és származékai - többek között a Linux, az OS X - szintén különbséget tesznek a felhasználó által futtatott dolgok, az adminisztrátor által vagy adminisztrátori jogosultságokkal működtetett dolgok és a rendszer által futtatott dolgok között. Mint ilyen, a rendszerhez nélkülözhetetlen dolgokhoz rendszergazdai jogosultságokra van szükség, hogy megváltoztassák vagy elérjék őket. Így nem ront el véletlenül semmit.
Az Ubuntuban a rendszerfájlok módosításához a „sudo” vagy a „gksudo” parancsot használja az adminisztrátori jogosultságok megegyezéséhez. Más disztribúciókban a „root” -ra vagy a „super-user” -re vált, amely gyakorlatilag ugyanezt teszi, amíg ki nem jelentkezik.
Ne feledje, hogy mindkét esetben a fájlengedélyek megváltoztatása azt eredményezheti, hogy a programok nem működnek, akaratlanul megváltoztatja a fájl tulajdonjogát a root felhasználónak (a tulajdonos helyett), és a rendszert kevésbé biztonságossá teszi (több engedély megadásával). Mint ilyen, javasoljuk, hogy csak a fájlok - különösen a rendszerfájlok - engedélyeit változtassa meg, hacsak nem szükséges, vagy tudja, mit csinál.
A fájlengedélyek biztosítják a felhasználók alapvető biztonsági rendszerének biztosítását. A működésük megtanulása elősegítheti az alapvető megosztás beállítását többfelhasználós környezetben, a „nyilvános” fájlok védelmét, és tippet adhat arról, hogy mikor történik valami baj a rendszerfájlok tulajdonjogával.
Gondolod, hogy könnyebben meg tudod magyarázni a dolgokat? Javítás van? Szeretne felidézni a régi időket? Tartson egy kis szünetet, és tegye le gondolatait a megjegyzésekben.