SELinux (Security-Enhanced Linux) — це шар безпеки в системах сімейства RHEL, який суворо контролює, до яких ресурсів може звертатися кожен процес. Він корисний, але іноді блокує легітимне ПЗ і викликає помилки «permission denied», причину яких неочевидно. У цьому посібнику показано, як перевірити статус SELinux і вимкнути його — тимчасово або постійно — на CentOS, RHEL, AlmaLinux, Rocky Linux і Fedora.

Перш ніж повністю вимикати SELinux, розгляньте можливість переведення його в режим permissive. У режимі permissive SELinux залишається активним і лише записує в журнал те, що заблокував би, дозволяючи виправити реальну проблему без втрати шару захисту. Повне вимкнення SELinux прибирає важливу захист — робіть це лише за наявності конкретної причини.

Перевірка поточного статусу SELinux

Спочатку подивіться, у якому режимі працює SELinux:

sestatus
# або, щоб дізнатися лише поточний режим:
getenforce

Ви побачите один із трьох станів: Enforcing (правила застосовуються), Permissive (правила лише записуються в журнал, але не застосовуються) або Disabled (SELinux вимкнено).

Тимчасове вимкнення SELinux (до перезавантаження)

Щоб одразу перевести SELinux у режим permissive без перезавантаження:

sudo setenforce 0
# перевірка:
getenforce # має повернути: Permissive

Це рекомендований перший крок при усуненні несправностей — після перезавантаження режим знову стане enforcing, тому ви не зможете «заблокувати» себе назавжди. Щоб повернути режим enforcing, використовуйте sudo setenforce 1.

Постійне вимкнення SELinux

Щоб змінити режим назавжди (після перезавантажень), відредагуйте конфігураційний файл SELinux:

sudo nano /etc/selinux/config

Знайдіть рядок SELINUX і встановіть значення permissive (рекомендується) або disabled:

# для режиму permissive (безпечніше):
SELINUX=permissive

# або для повного вимкнення:
SELINUX=disabled

Збережіть файл і перезавантажте систему, щоб зміни набули чинності:

sudo reboot

Перевірка після перезавантаження

getenforce
# поверне Permissive або Disabled відповідно до вашого конфігу