Setuid
Příznaky setuid a setgid jsou potřebné pro úlohy, které vyžadují vyšší oprávnění než ta, která má běžný uživatel. Například při změně vlastního přihlašovacího hesla (viz passwd a soubor shadow). Některé z úloh, které vyžadují zvýšení práv, nemusí být okamžitě zřejmé, jako například příkaz ping, který musí odeslat a přijmout kontrolní pakety přímo na síťovém rozhraní (raw ICMP). Setuid u spustitelných souborůJe-li na spustitelném souboru nastaven „setuid“ atribut, běží po jeho spuštění tento proces s právy toho, kdo je vlastníkem zmíněného spustitelného souboru (obvykle je to root, ale může to být jakýkoliv uživatel systému). Získáním oprávnění uživatele root může aplikace vykonávat v systému úlohy, které běžný uživatel vykonávat nemůže. Uživateli, který program spustil, znemožní systém (resp. jádro systému) vytvoření nového procesu jinou cestou, například použitím systémového volání ptrace, zneužití proměnné prostředí Příklad využitíHesla jsou v unixovém systému uložena v textovém souboru passwd nebo nověji v souboru shadow. Uživatelé nemají možnost tyto soubory měnit, protože by mohli změnit hesla ostatním uživatelů (včetně správce root). To však znamená, že by uživatel nemohl změnit své heslo, protože program za normálních okolností běží s oprávněními uživatele který ho spustil a do těchto souborů tak nemá přístup. Proto je na programu Bezpečnostní rizikaPříznak setuid na programech vlastněných správcem systému (uživatel root) je velmi rizikový. Po úspěšných útocích na některé setuid nástroje byly kolem roku 2000 provedeny v Linuxu audity všech těchto nástrojů a byla snaha jejich počet v systému co nejvíce snížit. Kvůli rizikům byly zavedeny do Linuxu doplňující bezpečnostní subsystémy, jako jsou capabilities (využívá je nástroj Setgid u adresářůPříznaky setuid a setgid nastavené na adresáři mají úplně rozdílný význam. Nastavení setgid oprávnění na adresáři ( [root@foo]# find /path/to/directory -type d -exec chmod g+s '{}' \; Příznak setuid oprávnění nastavené na adresáři je ignorováno v systémech UNIX a Linux. V systému FreeBSD může být nastaveno, aby byl interpretován analogicky k setgid, tedy aby byly všechny nové soubory a podadresáře vlastněné vlastníkem nadřazeného adresáře. Historie
Související článkyExterní odkazy
|