Використання [ред.]

chrootв Unix-операційних системах - це операція зміни кореневого каталогу. На практиці програма (зазвичай це командна оболонка), запущена за допомогою утиліти chroot, сприйматиме вказаний каталог як єдину доступну файлову систему. Тому, якщо потрібно забезпечити програмі доступ до інших каталогів або файлових систем (наприклад /proc), потрібно заздалегідь примонтувати в цільовому каталозі необхідні каталоги або пристрої. chroot зачіпає лише поточний процес та всіх його нащадків. chroot сам собою може посилатися на chroot(2) системний виклик чи програму-обертку chroot(8).

Програма, корінь якої був перенесений в інший каталог, не може звертатися до файлів поза цим каталогом. Це забезпечує зручний спосіб поміщення в «sandbox» («пісочницю») тестової, ненадійної чи іншої небезпечної програми. Це також простий спосіб механізму jail (в'язниці). Але найчастіше chroot використовується для складання дистрибутивів або окремих програм як би в чистому середовищі. також bootstrapping.

На практиці приміщення в chroot ускладнюється програмами, що очікують при запуску, знайти вільне місце на диску, файли конфігурації, файли пристроїв і динамічні бібліотеки в конкретних місцях. Для того щоб дозволити програмам запуститися всередині chroot-каталогу, необхідно забезпечити їх мінімальним набором таких файлів, бажано акуратно вибраним так, щоб не дозволити ненавмисний доступ до системи зовні.

Програмам дозволяється відкривати файлові дескриптори (для файлів, конвеєрів та мережевих з'єднань) у chroot-і, який може спростити виготовлення jail роблячи необов'язковим зберігання робочих файлів усередині каталогу chroot. Це також може використовуватися як найпростіша capability-система, в якій явно дається програмідоступ до ресурсів поза chroot ґрунтуючись на дескрипторах, що містяться всередині.

Використання [ред.]

Недоліки [ред.]

Тільки супер-користувач (root) може виконувати chroot. Це необхідно для того, щоб запобігти атакі з боку користувача за допомогою приміщення setuid-ної програми всередині спеціально виготовленої chroot jail (наприклад, з помилковим файлом /etc/passwd), що буде призводити до того, що вони отримають підвищення привілеїв.

Сам собою механізм chroot не повністю безпечний. Якщо програма, запущена в chroot, має супер-користувацькі привілеї, вона може виконати second chroot для того, щоб вилізти назовні. Це працює тому, що деякі ядра Unix не дозволяють правильно вкладати контексти chroot.

Більшість систем Unix не повністю орієнтовані на файлову систему і залишають потенційно руйнівну функціональність, таку як мережну та контроль процесів доступної через інтерфейс системних викликів до програми в chroot.

Механізм chroot сам по собі не вміє здійснює лімітування на ресурси, такі як пропускна здатність вводу/виводу, дисковий простір або час ЦПУ.