Ограничение доступа пользователей к определенным ресурсам: команды chroot и sudo.

Ограничение доступа пользователей к определенным ресурсам: команды chroot и sudo.

Life-Hack - Linux/Хакинг/Хакер/ИБ/Osint

Chroot - это утилита Linux, которая позволяет создавать изолированное окружение для запуска приложений. Она помогает обеспечить безопасность, провести тестирование и восстановление системы.

Команда chroot требует прав администратора. Команда chroot позволяет вам войти в новую корневую директорию (chroot jail) и запускать процессы внутри нее, сограничивая доступ к внешним ресурсам. Это может быть полезно для изолирования приложений и предотвращения несанкционированного доступа к системному окружению.

Команда chroot принимает два обязательных аргумента: путь к новому корневому каталогу и команду или программу, которая должна быть выполнена в этой изолированной среде. При запуске команды chroot, текущий процесс Linux становится потомком нового корневого каталога и все ссылки на файлы и директории будут относиться к новой корневой файловой системе.

Например, чтобы запустить команду /bin/bash в изолированной среде с новым корневым каталогом /newroot, вы можете использовать следующую команду:

chroot /newroot /bin/bash

После выполнения этой команды будет создан новый процесс с измененным корневым каталогом, что позволит вам выполнять команды в изолированной среде. Пример использования команды /bin/bash приведен лишь для наглядности, вы можете использовать любую другую команду или программу.

Управление ресурсами: chroot позволяет задавать ограничения для программ, запущенных в изолированном окружении. Это может включать ограничение использования памяти, процессорного времени и доступа к сети. Это позволяет предотвращать нежелательное взаимодействие с другими программами и системой в целом.

Chroot применяется для создания безопасных окружений, в которых можно запускать подозрительные или небезопасные программы. Благодаря изоляции от основной операционной системы уменьшается риск воздействия вредоносного программного обеспечения или выполнения неправильных операций. Из-за этого chroot широко используется как инструмент для обеспечения безопасности в различных областях.

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

Для создания новой файловой системы выполните следующие шаги:

а) Создание директории для новой файловой системы:

sudo mkdir /new_root

б) Скачивание базовой файловой системы:

sudo debootstrap stable /new_root

в) Монтирование и настройка файловой системы:

sudo mount —bind /dev /new_root/dev
sudo mount —bind /dev/pts /new_root/dev/pts
sudo mount —bind /sys /new_root/sys
sudo mount —bind /proc /new_root/proc
sudo cp /etc/resolv.conf /new_root/etc/resolv.conf

Для выполнения команды chroot вы можете создать пользовательскую среду в новой файловой системе. Для этого выполните следующие шаги:

а) Установка базовых пакетов:

sudo chroot /new_root apt-get update
sudo chroot /new_root apt-get install -y bash vim

б) Создание пользователя в новой файловой системе:

sudo chroot /new_root adduser username

Sudo – это утилита для операционных систем семейства Linux, позволяющая пользователю запускать программы с привилегиями другой учётной записи, как правило, суперпользователя. В части запуска команд от имени root’а sudo является альтернативой утилите su. Правда, в отличие от su, которая запускает оболочку root’а и предоставляет суперполномочия всем дальнейшим инструкциям, sudo предоставляет только временное повышение привилегий. Таким образом, включая полномочия root’а только когда это действительно необходимо, применение команды sudo снижает вероятность того, что опечатка или ошибка в вызываемой команде причинит какой-нибудь вред системе.

Параметры командной строки:

-A, --askpass - использовать вспомогательную программу для ввода пароля

-b, --background - выполнить команду в фоновом режиме

-C, --close-from=num - закрыть все дескрипторы файлов >= num

-E, --preserve-env - сохранить пользовательское окружение при выполнении команды

-e, --edit - редактировать файлы вместо выполнения команды

-g, --group=group - выполнить команду от имени или ID указанной группы

-H, --set-home - установить для переменной HOME домашний каталог указанного пользователя

-h, --help - показать справку и выйти

-h, --host=host - выполнить команду на узле (если поддерживается модулем)

-i, --login - запустить оболочку входа в систему от имени указанного пользователя; также можно задать команду

-K, --remove-timestamp - полностью удалить файл с timestamp

-k, --reset-timestamp - объявить недействительным файл timestamp

-l, --list - показать список прав пользователя или проверить заданную команду; в длинном формате используется дважды

-n, --non-interactive - автономный режим без вывода запросов пользователю

-P, --preserve-groups - сохранить вектор группы вместо установки целевой группы

-p, --prompt=prompt - использовать указанный запрос пароля

-S, --stdin - читать пароль из стандартного ввода

-s, --shell - запустить оболочку от имени указанного пользователя; также можно задать команду

-U, --other-user=user - в режиме списка показывать права пользователя

-u, --user=user - выполнить команду (или редактировать файл) от имени или ID указанного пользователя

-V, --version - показать сведения о версии и выйти

-v, --validate - обновить временную метку пользователя без выполнения команды

-- - прекратить обработку аргументов командной строки


Report Page