Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная

Команда Linux chroot

Автор: admin, 30 июня, 2024
Команды

В Linux команда chroot (change root) — временная смена корневого каталога для текущего запущенного процесса и его дочерних процессов.

Использование в Linux команды chroot

Содержание

  • Цель выполнения команды
  • Установка в Arch Linux
  • Синтаксис
  • Параметры
  • Выходной статус
  • Использование в Linux команды chroot
    • Простой пример
    • Работа с командой chroot
    • Возможные трудности
    • Изменение поведения команды
  • Заключение

Цель выполнения команды

Команда может выполняться с разными целями. Например, загружаемся с Rescue флешки и чиним поломанную систему или меняем забытый пароль пользователя root, для чего монтируем корень целевой системы и делаем в него chroot.

Установка в Arch Linux

oleg@mobile:~:$ yay -S arch-install-scripts
Sync Explicit (1): arch-install-scripts-28-1
разрешение зависимостей...
проверка конфликтов...
Пакеты (1) arch-install-scripts-28-1
Будет загружено:    0,02 MiB
Будет установлено:  0,05 MiB
:: Приступить к установке? [Y/n] y
:: Получение пакетов...
 arch-install-scripts-28-1-any                         15,8 KiB  60,2 KiB/s 00:00 [###############################################] 100%
(1/1) проверка ключей                                                             [###############################################] 100%
(1/1) проверка целостности пакета                                                 [###############################################] 100%
(1/1) загрузка файлов пакетов                                                     [###############################################] 100%
(1/1) проверка конфликтов файлов                                                  [###############################################] 100%
(1/1) проверка доступного места                                                   [###############################################] 100%
:: Обработка изменений пакета...
(1/1) установка arch-install-scripts                                              [###############################################] 100%
:: Запуск post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
oleg@mobile:~:$

Синтаксис

$ chroot [ПАРАМЕТР] НОВЫЙ_КОРЕНЬ [КОМАНДА [АРГ]…]

или

$ chroot ПАРАМЕТР

Параметры

--groups=G_LIST

Задать вспомогательные группы как гр1, гр2, …, грN

--userspec=ПОЛЬЗ:ГРУППА

Задать пользователя и группу (ID или именем)

--skip-chdir

Не изменять рабочий каталог на /

--help

Показать эту справку и выйти

--version

Показать информацию о версии и выйти

Если команда не задана, выполняет $SHELL -i (по умолчанию: /bin/sh -i).

Выходной статус

125

Если сама команда chroot не удалась

126

Если КОМАНДА найдена, но не может быть вызвана

127

Если КОМАНДА не найдена

-

Статус выхода COMMAND в противном случае

Использование команды chroot

Простой пример

Для понимания принципа работы утилиты в каталоге /tmp создаём новый подкаталог /tmp/newroot:

oleg@mobile:~:$ mkdir /tmp/newroot
oleg@mobile:~:$
oleg@mobile:~:$ cp /bin/bash /tmp/newroot
oleg@mobile:~:$
oleg@mobile:~:$ sudo chroot /tmp/newroot /bin/bash
oleg@mobile:~:$

В этом примере утилита была использована для изменения корневого каталога на /newroot и запущена команда /bin/bash. Это эффективно изолирует запущенный процесс и его дочерние элементы в каталоге /newroot.

Работа с командой chroot

Команда chroot в Linux — это мощный инструмент, который изменяет видимый корневой каталог для текущего запущенного процесса и его дочерних процессов. Это означает, что процесс не будет «видеть» каталоги выше нового корневого каталога. Это похоже на создание «песочницы», в которой будет работать ваш процесс, изолированной от остальной системы.

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

Возможные трудности

Существуют некоторые потенциальные подводные камни, о которых следует знать. Например, при смене корневого каталога процесс не будет иметь доступа к своему обычному окружению, включая системные библиотеки и файлы конфигурации. Это может привести к сбою процесса, если он полагается на эти ресурсы. Поэтому важно убедиться, что новый корневой каталог содержит все необходимые файлы и каталоги для правильной работы процесса.

Изменение поведения команды

ПараметрОписаниеПример
-uЗапускать команду от имени указанного пользователяchroot -u user /newroot /bin/bash
-gИспользовать указанную группу для командыchroot -g group /newroot /bin/bash
-GИспользовать указанные дополнительные группы для командыchroot -G group /newroot /bin/bash
-nЗапрещать изменение любых идентификаторов (пользователя, группы, возможностей)chroot -n /newroot /bin/bash
--userspecИспользовать указанную группу пользователя:группу для командыchroot --userspec=user:group /newroot /bin/bash
--groupsИспользовать указанные дополнительные группы для командыchroot --groups group /newroot /bin/bash
--skip-chdirНе изменять рабочий каталог на /chroot --skip-chdir /newroot /bin/bash

Заключение

В этой небольшой вводной статье об использовании команды chroot приведён пример изменения корневого каталога. Эта возможность уже является мощным инструментом в Linux.

 По мере дальнейшего ознакомления с этой утилитой вы изучите её более продвинутое использование: создание chroot-тюрьмы в целях безопасности, выполнение определённых команд в chroot-среде и многое другое.

Последние материалы

  • Утилита sensors
    1 hour ago
  • Сканер Rkhunter
    1 week ago
  • Программа resize2fs
    1 week 6 days ago
  • Аудиопроигрыватель QMMP
    2 weeks 4 days ago
  • Программа Timeshift
    3 weeks 3 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru