2010. július 22. - Német Krisztián
Hozzáférési jogosultságok #1.
A fájlokhoz tartozó hozzáférési jogosultságok meghatározzák, hogy melyik felhasználó melyik fájlon hajthat végre műveletet, és még a műveletet is meghatározza. A Linux a felhasználókat három csoportra osztja, amikor a fájlokhoz és könyvtárakhoz való viszonyukat vizsgálja:
a fájl tulajdonosa (user)
csoport (group)
egyéb (others)
A csoport segítségével csoportosíthatjuk a felhasználókat – lehetőleg valamilyen logika szerint -, hogy meg tudják osztani egymással a megfelelő fájljaikat vagy szabályozni tudjuk a hozzáféréseket.
A fájlokkal és könyvtárakkal három dolgot tehetnek a felhasználók:
1. olvashatják (read)
2. írhatják (write)
3. végrehajthatnak, futathatnak (execute)
Mindhárom felhasználói csoportra külön-külön be lehet állítani ezeket az engedélyeket.
Fájloknál elég egyértelmű, hogy mit takar ez a három dolog: olvasás, írás és végrehajtás, de könyvtáraknál már nem az. Egy könyvtár olvasása azt jelenti, hogy egy erre a célra szolgáló paranccsal ki tudjuk listázni a könyvtár tartalmát. Egy könyvtárat akkor nevezünk írhatónak, ha a megfelelő parancsokkal bejegyzéseket tudunk létrehozni, módosítani vagy törölni az adott könyvtárban, illetve törölhetjük magát a könyvtárat. Talán a végrehajtás a legnehezebben megérthető, mert hasonlít egy kicsit az olvasás engedélyhez. De abban az esetben, ha egy könyvtárra csak olvasási jogunk van, akkor nem tudjuk megnézni a fájloknak a bejegyzéseit; míg ha végrehajtási jogunk van csak, akkor – ha ismerjük a fájl teljes nevét – az ls parancs megmutatja a fájlt (de csak azt az egy fájlt, mert a könyvtárban esetleg lévő többi fájlt már nem fogjuk látni), és el is tudjuk indítani (amennyiben az egy végrehajtható script vagy program, és van engedélyünk a fájlra).
Egy példán keresztül magyarázom el a fájlokra vonatkozó engedélyeket, és azok hatását a felhasználókra:
# -rwxrwxrwx 1 root root 7770 Feb 29 14:22 index.html
A legelső karakter a “-” jel helyén a következő jelölések állhatnak:
- közönséges fájl
b blokkos eszköz (például: adattároló eszközök)
c karakteres eszköz (például: nyomtató, terminál, stb.)
d könyvtár
l szimbolikus link
p pipe (csatorna)
s socket
A következő kilenc karakter azt mutatja, hogy ki mit tehet a fájllal:
r olvasási engedély (read)
w írási engedély (write)
x végrehajtási engedély (execute)
- az engedélyek hiánya
s suid bit
t sticky bit
Tehát a fenti index.html nevű fájl jelölései sorrendben a következő dolgokat jelentik:
- közönséges fájl
r olvasási engedély a tulajdonos számára
w írási engedély a tulajdonos számára
x végrehajtási engedély a tulajdonos számára
r olvasási engedély a csoport számára
w az írási engedély a csoport számára
x végrehajtási engedély a csoport számára
r olvasási engedély bárki más számára
w írási engedély hiánya bárki más számára
x végrehajtási engedély hiánya bárki más számára
A sor többi mezőjét a későbbiekben tisztázzuk!
Lássunk egy példát a könyvtárakra vonatkozó engedélyekre, és azok hatását a felhasználókra:
# drwxr----x 1 root root 1024 Feb 29 14:30 administrator
Az administrator nevű könyvtár jelölései sorrendben a következő dolgokat jelentik:
d könyvtár
r olvasási engedély a tulajdonos számára
w írási engedély a tulajdonos számára
x végrehajtási engedély a tulajdonos számára
r olvasási engedély a csoport számára
- az írási engedély hiánya a csoport számára
- végrehajtási engedély hiánya a csoport számára
- olvasási engedély hiánya bárki más számára
- írási engedély hiánya bárki más számára
x végrehajtási engedély bárki más számára
Mit is jelent ez pontosan: a tulajdonos bármit tehet a könyvtárral (könyvtárban) – kilistázhatja (olvashatja) a tartalmát, fájlokat és könyvtárakat hozhat létre benne és elindíthatja az itt található programokat (amennyiben azokra a fájlokra van engedélye). A csoport számára csak olvasási engedély van adva, tehát láthatja a könyvtárban lévő fájlneveket, de magukat a fájlokat nem. Tehát amennyiben az administrator-ban található egy olyan fájl, ami olvasható a csoport számára, akkor sem fogják tudni elolvasni a csoport tagjai, mert magát a fájlt nem látják! Csak a bejegyzését látják a könyvtár fájlban. Bárki más számára pedig csak végrehajtási engedély van megadva. Tehát sem írni, sem olvasni nem tudják az administrator könyvtárat. De ha tudják egy fájlnak (vagy könyvtárnak) a nevét, akkor azt ki tudja listázni, tehát látni fogja a fájl (vagy könyvtár) összes bejegyzését. Sőt, ha a fájlra vonatkozó jogosultságok megengedik, akkor akár írhatja is az adott fájlt (vagy könyvtárat).
