На чём построена контейнеризация Linux и что означают SUID, SGID и sticky bit?

Роль namespaces и cgroups в контейнерах, необязательность OverlayFS и точное действие специальных битов доступа Linux.

Короткий ответ

Что ответить на собеседовании

Namespaces разделяют представления процессов, сети, монтирований и других ресурсов; cgroups управляют потреблением ресурсов. OverlayFS удобна для слоев образа, но не обязательна. SUID/SGID у исполняемого файла могут менять эффективные UID/GID с учетом ограничений. SGID каталога задает наследование группы, а sticky bit ограничивает удаление и переименование его содержимого.

Подробный разбор

Ответ с пояснениями

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

Контейнеризация. Namespaces дают процессам отдельные представления ресурсов: PID, сети, точек монтирования, идентификаторов пользователей и других объектов. Cgroups обеспечивают учет и управление ресурсами групп процессов, например CPU, памятью и вводом-выводом. Наличие cgroup само по себе не означает, что все лимиты настроены.

Обычные Linux-контейнеры разделяют ядро хоста, а не получают каждое собственное ядро как VM. Для ограничения возможностей дополнительно применяют capabilities, seccomp и механизмы контроля доступа в зависимости от конфигурации. OverlayFS удобна для объединения слоев образа, но не является обязательным условием контейнера: корневая файловая система может предоставляться иначе.

SUID и SGID. При выполнении подходящего бинарного файла SUID меняет эффективный UID процесса на UID владельца файла, а SGID — эффективный GID на группу файла. Это не обязательно root и не полная замена идентичности: реальный UID остается прежним. Биты могут не применяться, например при no_new_privs или монтировании nosuid; Linux также игнорирует их на скриптах. Условия описаны в execve(2).

На каталоге SGID заставляет новые файлы наследовать его группу; новые подкаталоги также наследуют SGID. Sticky bit дополнительно ограничивает удаление и переименование: нужны соответствующие права, а действовать может владелец файла, владелец каталога или привилегированный процесс. Он не запрещает изменение содержимого файла при наличии права записи. См. inode(7).

Для объяснения не требуется менять разрешения системных программ: такие эксперименты проводят только в отдельном учебном окружении.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку