Что такое Linux capabilities в контейнерах и зачем они нужны?

Capabilities в Linux — это механизм, который позволяет разбивать права суперпользователя (root) на более мелкие, независимые привилегии.

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

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

Capabilities в Linux — это механизм, который позволяет разбивать права суперпользователя (root) на более мелкие, независимые привилегии. Это помогает повысить безопасность, предоставляя процессам только те права, которые им действительно нужны, вместо полного доступа root.

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

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

Capabilities в Linux — это механизм, который позволяет разбивать права суперпользователя (root) на более мелкие, независимые привилегии. Это помогает повысить безопасность, предоставляя процессам только те права, которые им действительно нужны, вместо полного доступа root.

Например, вместо запуска процесса с полными правами root, можно дать ему capability для открытия сетевых сокетов или изменения системного времени.

Основные моменты:

  • Capabilities делятся на наборы: Effective, Permitted, Inheritable и Bounding.
  • Программы могут запускаться с определёнными capabilities, что ограничивает их возможности.
  • Это снижает риск компрометации системы при эксплуатации уязвимостей.

Для просмотра capabilities файла можно использовать команду:

getcap /path/to/binary

А для установки:

setcap cap_net_bind_service=+ep /path/to/binary

Это даст программе право открывать порты ниже 1024 без запуска от root.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее