Existují 3 speciální oprávnění, která jsou k dispozici pro spustitelné soubory a adresáře. Jsou to :
1. SUID oprávnění
2. SGID oprávnění
3. Sticky bit
Set-user Identification (SUID)
Přemýšleli jste někdy, jak může uživatel, který není root, změnit své vlastní heslo, když nemá právo zápisu do souboru /etc/shadow. hmmm… zajímavé, že? No, abychom pochopili tento trik, zkontrolujte oprávnění příkazu /usr/bin/passwd :
# ls -lrt /usr/bin/passwd-r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Kdybyste se podívali pozorně, našli byste v poli pro oprávnění 2 S. První s znamená SUID a druhé SGID.
– Když je spuštěn příkaz nebo skript s nastaveným bitem SUID, jeho efektivním UID se stane UID vlastníka souboru, nikoliv uživatele, který jej spouští.
– Dalším dobrým příkladem SUID je příkaz su :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– Oprávnění setuid se zobrazuje jako „s“ v poli vlastníka execute.
Jak nastavit SUID u souboru?
# chmod 4555
Pokud se v poli execute vlastníka zobrazí velké „s“, znamená to, že bit setuid je zapnutý a bit execute „x“ pro vlastníka souboru je vypnutý nebo odepřený.
Identifikace skupiny (SGID)
Oprávnění SGID na spustitelném souboru
– Oprávnění SGID je podobné oprávnění SUID, jen s tím rozdílem, že – když je spuštěn skript nebo příkaz se zapnutým SGID, spustí se, jako by byl členem stejné skupiny, ve které je soubor.
# ls -l /usr/bin/write-r-xr-sr-x 1 root tty 11484 Jan 15 17:55 /usr/bin/write
– Oprávnění setgid se zobrazí jako „s“ v poli execute skupiny.
– Pokud se v poli execute skupiny zobrazí malé písmeno „l“, znamená to, že bit setgid je zapnutý a bit execute pro skupinu je vypnutý nebo odepřený.
Jak nastavit GUID u souboru?
# chmod 2555
SGID na adresáři
– Je-li na adresáři nastaveno oprávnění SGID, patří soubory vytvořené v adresáři do skupiny, jejímž je adresář členem.
– Pokud například uživatel, který má v adresáři oprávnění k zápisu, vytvoří v něm soubor, je tento soubor členem stejné skupiny jako adresář, a nikoli skupiny uživatele.
– To je velmi užitečné při vytváření sdílených adresářů.
Jak nastavit SGID u adresáře
# chmod g+s
Sticky bit
– Sticky bit se používá především u sdílených adresářů.
– Je užitečný pro sdílené adresáře, jako jsou /var/tmp a /tmp, protože uživatelé mohou vytvářet soubory, číst a spouštět soubory vlastněné jinými uživateli, ale nesmí odstraňovat soubory vlastněné jinými uživateli.
– Například pokud uživatel bob vytvoří soubor s názvem /tmp/bob, jiný uživatel tom nemůže tento soubor odstranit, i když má adresář /tmp oprávnění 777. Pokud není nastaven bit sticky, pak tom může smazat /tmp/bob, protože soubor /tmp/bob zdědí oprávnění nadřazeného adresáře.
– Uživatel root (Samozřejmě!) a vlastník souborů může odstranit své vlastní soubory.
Příklad sticky bitu :
# 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.
Jak nastavit oprávnění sticky bitu?
# chmod +t or # chmod 1777
.