Tartalomjegyzék
Kivonat
A fájlrendszer-objektumok védelmére a hagyományos jogosultságok kiterjesztéseként használhatók POSIX ACL-ek (hozzáférés-vezérlési listák) is . Az ACL-ek segítségével a jogosultságok rugalmasabban adhatók meg, mint amit a hagyományos jogosultsági alapelvek lehetővé tesznek.
A POSIX ACL elnevezés azt sugallja, hogy ez egy igazi POSIX- (portable operating system interface) szabvány. A vonatkozó szabványtervezeteket – POSIX 1003.1e és POSIX 1003.2c – azonban több okból is visszavonták. Ennek ellenére a UNIX-családhoz tartozó számos rendszeren megtalálható ACL-ek ezekre a tervezetekre épülnek és a fájlrendszer ACL-ek megvalósítása – ahogy a jelen fejezetben le van írva – ezeket a szabványokat követi. Ezek a következő címen tekinthetők meg: http://wt.xpilot.org/publications/posix.1e/.
A hagyományos Linux-fájljogosultságok magyarázata a 15.2. szakasz - Felhasználók és hozzáférési jogosultságok részben olvasható. Speciálisabb lehetőséget biztosítanak a setuid, a setgid és a sticky (ragadós) bitek.
Egyes esetekben a hozzáférési jogosultságok túlságosan korlátozók lehetnek. Éppen ezért a Linux extra beállításokkal lehetővé teszi az aktuális felhasználó és csoport ideiglenes megváltoztatását egy-egy adott műveletre. A passwd program például normál esetben root jogosultságot igényel az /etc/passwd
fájl eléréséhez. Ez a fájl fontos, bizalmas információkat tartalmaz, például a felhasználók home könyvtárait, illetve a felhasználói és csoportazonosítókat. Egy normál felhasználó tehát nem lenne képes megváltoztatni a passwd
fájlt, hiszen túlságosan veszélyes lenne minden felhasználó számára közvetlen hozzáférést adni ehhez a fájlhoz. E probléma egy lehetséges megoldását kínálja a setuid mechanizmus. A setuid (set user ID, "felhasználói azonosító beállítása") egy olyan speciális fájlattribútum, amelyik arra utasítja a rendszert, hogy az így megjelölt programokat egy meghatározott felhasználói azonosító (UID) nevében hajtsa végre. Vegyük példának ismét a passwd parancsot:
-rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd
A felhasználói jogosultságok között látható a setuid bitet jelző s
karakter. A setuid bit beállítása miatt a passwd programot minden felhasználó a root
nevében futtatja.
A setuid bit felhasználókra vonatkozik. Létezik egy párja, amelyik viszont a csoportokra: ez a setgid bit. Egy olyan program, amelyhez ezt a bitet beállítják, azon csoport azonosítója (GID) alatt fog futni, amelyikkel elmentették, függetlenül attól, hogy melyik felhasználó indítja el. Éppen ezért egy olyan könyvtárban, amelynek be van állítva a setgid bitje, az összes újonnan létrehozott fájl és alkönyvtár ahhoz a csoporthoz lesz rendelve, amelyhez a könyvtár maga is tartozik. Vegyük a következő példát:
drwxrws--- 2 tux archive 48 Nov 19 17:12 backup
Az s
karakter jelzi, hogy a setgid bit be lett állítva a csoportjogosultságokhoz. A könyvtárat a könyvtár tulajdonosa és az archive
csoport tagjai érhetik el. Azok a felhasználók, akik nem a csoport tagjai, „leképződnek” a megfelelő csoportra. Az összes kiírt fájl tényleges csoportazonosítója az archive
lesz. Például egy mentést végző program, amely az archive
csoportazonosító nevében fut, elérheti ezt a könyvtárat root jogosultságok nélkül is.
A harmadik speciális jelző a sticky (ragadós) bit. Ennek a szerepe függ attól, hogy egy végrehajtható programra vagy egy könyvtárra van beállítva. Ha egy programhoz tartozik, akkor az így megjelölt fájl RAM-ba töltődik, hogy ne kelljen minden egyes használatkor a merevlemezről betölteni. Az attribútum ilyen használata ma már ritka, mert a modern merevlemezek elég gyorsak. Ha egy könyvtárhoz van rendelve, akkor megakadályozza, hogy a felhasználók törölhessék egymás fájljait. Jellemzően például a /tmp
és /var/tmp
könyvtárakon szokás használni:
drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp