A setuid bit
Az olvasási, írási, végrehajtási jogosultságok mellett végrehajtható programjainkat ún. tulajdonosi jogokkal is felruházhatjuk. A programokat futtató felhasználók rendes körülmények között a végrehajtás ideje alatt birtokolják is a programokat, még abban az esetben is, ha maga a fájl egyébként egy másik felhasználó tulajdonában van. A felhasználói azonosítón alapuló jogosultságok (Set User ID permission) lehetővé teszik a program tulajdonosa számára, hogy mindig az is maradjon, vagyis folyamatosan birtokában maradjon a fájl, még akkor is, ha azt éppen egy másik felhasználó futtatja. Példának okáért a rendszer legtöbb szoftvere a rendszergazda (root) felhasználó birtokában van, de ennek ellenére a közönséges felhasználók is minden további nélkül futtathatják őket. Ezen alkalmazások közül néhánynak esetleg szüksége lehet arra, hogy működése során módosítsa a rendszergazda által birtokolt fájlok valamelyikét. Ebben az esetben az átlagfelhasználó számára fontos, hogy a rendszergazda megtartsa tulajdonosi jogosultságát ahhoz, hogy a program fel legyen jogosítva a rendszergazda tulajdonában lévő egyéb állományok megváltoztatására.
A setgid bit
A csoportazonosítón alapuló hozzáférési jogosultságok (Set Group ID permission) épp így működnek, azzal a kivétellel, hogy ők a csoporthozzáférését biztosítják. A csoport által birtokolt programok “tulajdonjogi helyzete” így akkor sem változik meg, ha az alkalmazást valamely másik csoportból származó felhasználók futtatják. A program ebben az esetben – az előbbiekhez hasonlóan – módosíthatja a tulajdonosi csoport állományait. Arra azonban fel kell hívnunk a figyelmet, hogy potenciális biztonsági kockázatnak tesszük ki rendszerünket, ha a rendszer átlagfelhasználói számára lényegében korlátozott rendszergazdai szintű hozzáférést biztosítunk.
Tulajdonosi jogok definiálása szimbólumok segítségével
A felhasználói és csoportazonosítón alapuló jogosultságok hozzárendelését egyaránt az s opcióval rendelhetjük a fájlokhoz. A most következő példa a rendszergazda tulajdonában lévő pppd programot ruházza fel felhasználói azonosítóra épülő jogosultsággal. Így, amikor a pppd-t az átlagfelhasználók futtatják, a rendszergazda továbbra is fenntartja a tulajdonosi jogait, ezzel lehetővé téve a pppd program számára, hogy az módosíthassa a rendszergazda által birtokolt állományokat.
chmod +s /usr/sbin/pppd
A felhasználói és csoportazonosítóra épülő jogokat egy s betű képviseli a tulajdonosi és végrehajtási jogosultságok végrehajtási jogra vonatkozó szegmensében. Ezek a jogok lényegében a végrehajtási jogosultság egyfajta módosult változatait jelentik, ahol a felhasználói azonosítóra épülő jogosultság esetében a már megszokott rwx helyett az rws karaktereket fogunk találni. Egy rövid példa:
ls -l /usr/sbin/pppd
-rwsr-sr-x 1 root root 184412 Sep 19 14:50 /usr/sbin/ppd
Tulajdonosi jogok definiálása bináris maszk segítségével
A tulajdonosi jogok megtartása érdekében az előzőkben már megszokott háromjegyű oktális számhoz egy újabb jegyet illesztünk, méghozzá a szám elejére. A felhasználói azonosítóra épülő jog esetén ez a számjegy egy 4-es (100), a csoportazonosítón alapuló jogosultságnál pedig egy 2-es (010) lesz. Ha mindkettőt egyszerre kívánjuk beállítani, a maszk elejére 4+2=6-ot (110) kell írnunk. Az alábbi példa a pppd program felhasználó azonosítóra épülő jogosultságát kapcsolja be amellett, hogy az olvasási és végrehajtási jogot is megadja a tulajdonos, a csoport, valamint az egyéb felhasználók számára.
chmod 4555 /usr/sbin/pppd
A ragadós bithez kapcsolódó jogosultságok (sticky bit)
A könyvtáraknak egy további különleges jogosultság biztosít rendszerünkben még nagyobb biztonságot, ami nem más, mint az ún. “ragadós bit” (sticky bit). A ragadós bit eredetileg arra szolgált, hogy – a hatékonyság érdekében – programokat azután is a memóriában tartsa, hogy azok befejezték működésüket. A jelenlegi Linux-rendszerek azonban már nem élnek ezzel e lehetőséggel, és a ragadós bitet inkább arra használják, hogy a könyvtárakban elhelyezkedő állományokat védjék vele. A beállított ragadós bittel rendelkező könyvtárban szereplő fájlokat ugyanis kizárólag a rendszergazda, illetve e könyvtár tulajdonosa törölheti vagy nevezheti át.
Ragadós bitre épülő hozzáférési jog beállítása szimbólumok használatával
A ragadós bitek szimbólumaként a t betűt használjuk. A ragadós bit t betűje egész pontosan az egyéb felhasználók végrehajtási jogát szabályozó szakaszban tűnik fel. Ha kilistázzuk az írási és végrehajtási jogot ettől a ragadós bittől kapó programok jogosultságait, az r-t karaktereket fogunk látni a képernyőn.
chmod +t /home/linuxtudor/nagytitok/
ls -l /home/linuxtudor/nagytitok/
drwxr-xr-t 1 root root 4096 /home/linuxtudor/nagytitok/
Ragadós bitre épülő hozzáférési jog beállítása a bináris módszer segítségével
A tulajdonosi jog megtartásánál bemutatott módszerhez hasonlóan a ragadós bit számára is egy pótlólagos oktális számjegyet illesztünk a jogosultságokat meghatározó maszk elejére. A ragadós bit esetében ez a hozzáragasztott oktális számjegy az 1 (001) lesz. Most következő példánk a nagytitok könyvtár ragadós bitjét állítja be.
chmod 1755 /home/linuxtudor/nagytitok/
Vegyünk még egy példát, ahol a ragadós bitet (1, illetve 001) és a felhasználói azonosítóra épülő jogosultságot (4, illetve 100) egyszerre állítjuk be a kistitok könyvtárra vonatkozóan. Ebben az esetben az 5755-ös maszkkal jellemzett jogosultsághalmaz bináris megfelelője az 101 111 101 101 számsorozat lesz.
$ chmod 5755 /home/linuxtudor/kistitok/
$ ls -l /home/linuxtudor/kistitok/
drwsr-xr-t 1 root root 4096 /home/linuxtudor/kistitok/