РАЗРАБОТКА

Linux позволяет настраивать тонкие права доступа — используйте file capabilities

Сократите риски, избегая setuid: настройте права доступа в Linux через file capabilities. Узнайте, как это сделать правильно.

✍️ Редакция iTech News | 25.04.2026 | ⏱ 2 мин | 👁 1 | Источник: DEV Community
Linux: настройка прав доступа с file capabilities

Традиционно многие приложения в Linux используют полные права root при запуске, что не всегда оправдано. Возможно, им требуется лишь одна конкретная привилегия, чтобы, например, привязаться к порту 80. Избегайте устаревшей практики использования setuid и полномочий root без необходимости, используя file capabilities, которые делят полномочия root на более узкие права.

Что такое file capabilities

File capabilities — это режим прав доступа, который позволяет назначать узкие полномочия приложению. Например, вместо того чтобы предоставить полные привилегии root, можно активировать только CAP_NET_BIND_SERVICE для привязки к портам ниже 1024. Это ограничит доступ и повысит безопасность системы.

Как настроить в Linux

Для работы с file capabilities на Debian или Ubuntu установите пакет libcap2-bin, если он у вас еще не установлен. Выполните команды:

sudo apt update
sudo apt install -y libcap2-bin

Затем проверьте файлы, уже имеющие привилегии, с помощью команды:

sudo getcap -r / 2>/dev/null

Для использования file capabilities вы можете настроить, например, службу, которая слушает на port 80, следующим образом:

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/myapp

После этого проверьте настройки:

getcap /usr/local/bin/myapp

Ожидается вывод: /usr/local/bin/myapp cap_net_bind_service=ep.

Сравнение с setuid

Часто разработчики применяют setuid для запуска приложений с привилегиями root, что создает уязвимости. Подобный подход не — оптимальным, особенно когда возможно применение только одной права. Использование file capabilities снижает риски, позволяя процессу работать с необходимыми правами без лишних полномочий. Не забывайте, что не стоит добавлять права к интерпретатору, чтобы не расширять привилегии ненужным образом.

Практические выводы для разработчиков

Настройка file capabilities — это разумный шаг на пути к повышению безопасности в Linux. В условиях постоянного увеличения угроз важно минимизировать полномочия, предоставляемые вашим приложениям. Если ваша команда разрабатывает приложения, работающие с сетью или системными ресурсами, рекомендуется внедрить file capabilities для повышения безопасности.

Следующий шаг — продолжить изучение других доступных возможностей управления правами в Linux, чтобы улучшить безопасность ваших приложений и минимизировать риски.

Поделиться: Telegram X LinkedIn