Все о GNU/Linux

Что такое SELinux и как управлять его режимами и контекстами?

Джун (Junior):
«SELinux — какая-то защита в Linux, иногда мешает приложениям».

Мидл (Middle):
«SELinux — механизм Mandatory Access Control, который ограничивает доступ процессов к ресурсам с помощью меток (labels). Есть режимы Enforcing (включён), Permissive (логирует, но не блокирует) и Disabled. Проверка: getenforce или sestatus».

Сеньор (Senior):
«SELinux — MAC (не ACL) система, работает через метки (file contexts) и политики.

Команды:

  • getenforce/setenforce 0|1 для временной смены режима, sestatus для статуса.
  • Для диагностики отказов использовать ausearch, audit2why/audit2allow.
  • Изменение контекста: chcon -t httpd_sys_rw_content_t /var/www/html -R (временное), для постоянного правила — semanage fcontext -a -t type '/path(/.*)?' и restorecon -Rv /path.
  • Также есть SELinux booleans: getsebool -a, изменить: setsebool -P httpd_can_network_connect

1. Совет: не отключать SELinux как первый шаг — лучше временно перевести в permissive и создать правило или скорректировать контексты. Отличие от AppArmor: SELinux — label-based, AppArmor — path-based; выбор зависит от дистрибутива и политики поддержки.»