Pro spustitelné soubory a adresáře jsou k dispozici 3 speciální oprávnění. Jsou to:
1. Oprávnění SUID
2. Oprávnění SGID
3. Lepivý bit
Nastavit identifikaci uživatele (SUID)
Přemýšleli jste někdy o tom, jak může uživatel bez oprávnění root změnit své vlastní heslo, když nemá oprávnění k zápisu do souboru /etc/shadow. hmmm… zajímavé, že? Abychom pochopili trik kontroly 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
– Pokud pečlivě zkontrolujete, najdete 2 S v poli oprávnění. První s znamená SUID a druhé znamená SGID.
– Když je spuštěn příkaz nebo skript s nastaveným bitem SUID, jeho efektivním UID se stává vlastník souboru, nikoli uživatel, 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 zobrazené jako „s“ v poli spuštění vlastníka.
Jak nastavit SUID u souboru?
# chmod 4555 [path_to_file]Poznámka:
Pokud se v prováděcím poli vlastníka objeví velké „S“, znamená to, že bit setuid je zapnutý a bit spuštění „x“ pro vlastníka souboru je vypnutý nebo zamítnutý.
Identifikace skupiny (SGID)
Oprávnění SGID ke spustitelnému souboru
– Oprávnění SGID je podobné oprávnění SUID, rozdíl je pouze – když je skript nebo příkaz se zapnutým SGID spuštěn, běží, jako by byl členem stejné skupiny, ve které je soubor členem.
# 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“ ve spouštěcím poli skupiny.
Poznámka:– Pokud se ve spouštěcím poli skupiny objeví malé písmeno „l“, znamená to, že bit setgid je zapnutý a spouštěcí bit pro skupinu je vypnutý nebo zamítnutý.
Jak nastavit GUID u souboru?
# chmod 2555 [path_to_file]
SGID v adresáři
– Když je v adresáři nastaveno oprávnění SGID, soubory vytvořené v adresáři patří do skupiny, jejímž je adresář členem.
– Pokud například uživatel s oprávněním k zápisu v adresáři vytvoří soubor, tento soubor je členem stejné skupiny jako adresář a není členem skupiny uživatele.
– To je velmi užitečné při vytváření sdílených adresářů.
Jak nastavit SGID v adresáři
# chmod g+s [path_to_directory]
Sticky Bit
– Sticky bit se primárně používá u sdílených adresářů.
– Je užitečný pro sdílené adresáře, jako je /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 nemohou odstraňovat soubory vlastněné jinými uživateli.
– Pokud například uživatel bob vytvoří soubor s názvem /tmp/bob, jiný uživatel tom může nesmazat tento soubor, i když má adresář /tmp oprávnění 777. Pokud není nastaven sticky bit, Tom může smazat /tmp/bob, protože soubor /tmp/bob dědí oprávnění nadřazeného adresáře.
– uživatel root (Samozřejmě!) a vlastník souborů mohou odstranit své vlastní soubory.
Příklad lepivého bitu:
# ls -ld /var/tmp drwxrwxrwt 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í pro lepivý bit?
# chmod +t [path_to_directory] or # chmod 1777 [path_to_directory]