A futtatható fájlok és könyvtárak számára 3 speciális engedély áll rendelkezésre. Ezek a következők :
1. SUID engedély
2. SGID engedély
3. Sticky bit
- Set-user Identification (SUID)
- Hogyan lehet SUID-t beállítani egy fájlon?
- Set-group identification (SGID)
- SGID engedély a futtatható fájlon
- Hogyan lehet GUID-t beállítani egy fájlon?
- SGID egy könyvtáron
- How to set SGID on a directory
- Sticky Bit
- Példa a sticky bitre :
- Hogyan lehet beállítani a sticky bit jogosultságot?
Set-user Identification (SUID)
Gondoltál már arra, hogy egy nem root felhasználó hogyan tudja megváltoztatni a saját jelszavát, ha nincs írási joga az /etc/shadow fájlhoz. hmmm… érdekes, nem? Nos, hogy megértsd a trükköt, ellenőrizd az /usr/bin/passwd parancs jogosultságát :
# ls -lrt /usr/bin/passwd-r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Ha alaposan megnézed, a jogosultság mezőben 2 S-t találsz. Az első s a SUID-ot, a második pedig az SGID-t jelöli.
– Amikor egy SUID bit be van állítva, egy parancs vagy szkript futtatásakor a tényleges UID a fájl tulajdonosának UID-je lesz, nem pedig a futtató felhasználóé.
– Egy másik jó példa a SUID-ra a su parancs :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– A setuid engedély a tulajdonos execute mezőben “s”-ként jelenik meg.
Hogyan lehet SUID-t beállítani egy fájlon?
# chmod 4555
Ha a tulajdonos execute mezőjében egy nagy “S” betű jelenik meg, az azt jelzi, hogy a setuid bit be van kapcsolva, és a fájl tulajdonosának execute bitje “x” ki van kapcsolva vagy megtagadva.
Set-group identification (SGID)
SGID engedély a futtatható fájlon
– Az SGID engedély hasonló a SUID engedélyhez, a különbség csak annyi, hogy – amikor az SGID-vel bekapcsolt script vagy parancs fut, úgy fut, mintha ugyanannak a csoportnak a tagja lenne, amelynek a fájl is tagja.
# ls -l /usr/bin/write-r-xr-sr-x 1 root tty 11484 Jan 15 17:55 /usr/bin/write
– A setgid engedély a csoport execute mezőjében “s”-ként jelenik meg.
– Ha a csoport execute mezőjében egy kisbetűs “l” jelenik meg, az azt jelzi, hogy a setgid bit be van kapcsolva, a csoport execute bitje pedig ki van kapcsolva vagy megtagadva.
Hogyan lehet GUID-t beállítani egy fájlon?
# chmod 2555
SGID egy könyvtáron
– Ha egy könyvtáron SGID engedély van beállítva, a könyvtárban létrehozott fájlok ahhoz a csoporthoz tartoznak, amelynek a könyvtár tagja.
– Ha például egy felhasználó, akinek írási joga van a könyvtárban, létrehoz ott egy fájlt, akkor az a fájl ugyanannak a csoportnak a tagja, mint a könyvtár, és nem a felhasználó csoportjának.
– Ez nagyon hasznos a megosztott könyvtárak létrehozásánál.
How to set SGID on a directory
# chmod g+s
Sticky Bit
– A sticky bitet elsősorban megosztott könyvtáraknál használjuk.
– Hasznos az olyan megosztott könyvtáraknál, mint a /var/tmp és a /tmp, mert a felhasználók létrehozhatnak fájlokat, olvashatnak és futtathatnak más felhasználók tulajdonában lévő fájlokat, de nem törölhetnek más felhasználók tulajdonában lévő fájlokat.
– Például ha bob felhasználó létrehoz egy /tmp/bob nevű fájlt, akkor más felhasználó tom nem törölheti ezt a fájlt még akkor sem, ha a /tmp könyvtárban 777-es jogosultsággal rendelkezik. Ha a sticky bit nincs beállítva, akkor tom törölheti a /tmp/bob fájlt, mivel a /tmp/bob fájl örökli a szülő könyvtár engedélyeit.
– a root felhasználó (Természetesen!) és a fájlok tulajdonosa törölheti a saját fájljait.
Példa a sticky bitre :
# ls -ld /var/tmpdrwxrwxrwt 2 sys sys 512 Jan 26 11:02 /var/tmp
- T refers to when the execute permissions are off.- t refers to when the execute permissions are on.
Hogyan lehet beállítani a sticky bit jogosultságot?
# chmod +t or # chmod 1777