На каких технологиях ядра Linux построена контейнеризация? Что такое SUID, SGID и Sticky bit на файловой системе?
Ответ от нейросети
sobes.tech AI
Контейнеризация в Linux базируется на нескольких ключевых технологиях ядра:
- Namespaces — изолируют процессы по различным аспектам (PID, сеть, файловая система, пользователь и др.), создавая отдельные пространства имен.
- Control Groups (cgroups) — ограничивают и контролируют ресурсы (CPU, память, диск) для групп процессов.
- Union файловые системы (OverlayFS, AUFS) — позволяют создавать слои файловой системы, что облегчает создание и управление контейнерами.
Что касается атрибутов файловой системы:
-
SUID (Set User ID) — при запуске файла с этим битом процесс получает права владельца файла, а не пользователя, который запустил программу. Используется для программ, требующих повышенных прав.
-
SGID (Set Group ID) — при запуске файла процесс получает права группы файла. Для директорий этот бит заставляет новые файлы наследовать группу директории.
-
Sticky bit — на директории ограничивает удаление или переименование файлов внутри директории только владельцем файла, владельцем директории или root. Часто используется в /tmp для безопасности.
Пример установки SUID:
chmod u+s /usr/bin/passwd
Это позволяет обычным пользователям менять пароль, используя права владельца (root) для выполнения необходимых операций.