TGViewer
CORTEL CORTEL @cortel_cloud · 4.07K subscribers
Post #2737 1.13K
🖥 chroot (change root) — системный вызов и одноимённая утилита в Unix-подобных системах, появившаяся ещё в 1979 году в Version 7 Unix.

Позволяет запустить процесс с подменённым корневым каталогом /, ограничивая ему видимость файловой системы.

🤓 Это самый базовый и древний механизм изоляции в Linux — предок современных контейнеров.

➡️ Как это работает?

— Ядро меняет для процесса значение корневого каталога на указанную директорию
— Процесс и все его дочерние процессы видят эту директорию как /
— Доступ к файлам выше нового корня становится невозможным
— Изоляция работает только на уровне файловой системы — процессы, сеть, PID и пользователи остаются общими с хостом

‼️ chroot — это не песочница и не средство безопасности в полном смысле.

Root-процесс внутри chroot может выйти из него через системные вызовы. Для настоящей изоляции используются namespaces, cgroups и контейнеры.

➡️ Базовый синтаксис


chroot [параметры] КАТАЛОГ [КОМАНДА [АРГУМЕНТЫ]]


Если команда не указана — запускается ${SHELL} или /bin/sh.

➡️ Основные параметры

— --userspec=USER:GROUP — выполнить от имени указанного пользователя/группы
— --groups=G_LIST — задать список дополнительных групп
— --skip-chdir — не делать cd / после смены корня

1️⃣ Пример
Минимальное окружение для bash


# Создаём структуру
mkdir -p /mnt/user/{bin,lib,lib64}

# Копируем bash
cp /bin/bash /mnt/user/bin/

# Копируем зависимости
ldd /bin/bash | grep -o '/lib.*\.[0-9]*' | xargs -I {} cp {} /mnt/user{}

# Запускаем chroot
sudo chroot /mnt/user /bin/bash


Внутри уже работает только bash — никаких ls, cat и прочего.

2️⃣ Пример
Запуск от имени конкретного пользователя


sudo chroot --userspec=1000:1000 /mnt/user /bin/bash


➡️ Где chroot пригодится:

— Восстановление системы — починка загрузчика, сброс паролей, обновление пакетов с LiveCD
— Сборка пакетов и ПО — изолированное окружение нужной версии дистрибутива (классика для debootstrap, pbuilder, mock)
— Тестирование — проверка установочных скриптов на чистой системе
— Хостинг устаревшего ПО — запуск приложений со старыми зависимостями без конфликтов
— DNS/FTP-серверы — bind9 и vsftpd исторически умеют сами себя помещать в chroot для ограничения области поражения при компрометации

chroot — простой, но мощный инструмент, лежащий в основе многих современных технологий. Понимание его принципов помогает осознать, как устроена изоляция в Docker, LXC и systemd-nspawn — там просто к смене корня добавлены namespaces для PID, сети, IPC и cgroups для ресурсов.

#линуксятина
  • ❤ 5
  • 👍 5
  • 🔥 3
More from @cortel_cloud
  1. Oct 1, 2026🖥 sed — потоковый редактор текста в Linux 🤓 Появился в Bell Labs в 1970-х и до сих пор и…
  2. Sep 29, 2026🖥 РАЗНИЦА Block, File и Object Storage 🧑‍🎓Повторение — мать учения. Для разных задач по…
  3. Sep 25, 2026😎 Когнитивная РАЗгрузка За неделю с горящими дедлайнами, часовыми ВКС и постоянным перекл…
  4. Sep 23, 2026💻 kubectl diff: обработка изменений в CI/CD kubectl diff сравнивает текущую конфигурацию…
  5. Sep 18, 2026🛡 ДА! У НАС ЦЕЛАЯ ЧЕРЕДА ПОЛЕЗНЫХ ЭФИРОВ ПРО ИБ! 🎙 Уже 24 сентября Вероника Нечаева, выс…
  6. Sep 16, 2026👩‍💻 Работа с ПДн это непрерывный процесс. Компания меняется — появляются новые сервисы,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →