chroot

Z Multimediaexpo.cz

chroot je unixový příkaz, který slouží ke změně kořenového adresáře pro daný proces a jeho synovské procesy.

Příkaz chroot může použít pouze uživatel root. Zabrání se tím bezpečnostním rizikům, kdy by běžný uživatel systému například mohl „podstrčit“ nově vytvořený soubor /etc/passwd.

Program tento nový kořenový adresář nemůže změnit.

Příkaz se využívá např. při testování programů, které by mohly dělat nežádoucí změny v souborovém systému, vytváření Live CD nebo sledování potenciálních útočníků, kteří tak nemohou ovlivnit skutečný kořenový systém.

Příklady použití

V současnosti je naprostá většina daemonů poskytujících služby ven uzavřena v chroot jailu, jak se prostředí vyvolaném voláním chroot() také říká. Typicky se uzavírají do jailu webové servery (Apache,Lighttpd ..), FTP servery (FTPD,vsftpd ..), databázové enginy (MySQL ..), DNS servery (BIND ..). Většina programů, u kterých je předpokládaná či nutná vyšší oprávnění (čtení konfigurace z /etc, zápis na disk, či otvírání portů pro komunikaci přes síť mají implementovanou možnost využití chroot jailu, nebo se do něj zavírají sami. Aby mohl program otevřít komunikační port, je třeba oprávnění root.

Typickým scénářem bývá tedy spuštění programu uživatelem root, otevření nutných portů, uzavření se do chroot jailu. Toto chování je jednoznačným přínosem z hlediska bezpečnosti (pri kompromitaci procesu nemůže dojít ke kompromitaci celého systému). Bohužel, proces uzavřený v jailu nemůže přistupovat k obvyklým konfiguračním souborům v /etc, jako je například /etc/localtime (typicky pro www server). Situace se obvykle řeší kopírováním konfiguračních souborů do prostředí jailu.

Externí odkazy