SELinux (Security-Enhanced Linux) to warstwa bezpieczeństwa w systemach z rodziny RHEL, która egzekwuje ścisłe reguły dotyczące tego, do czego każdy proces może mieć dostęp. Jest wartościowa, ale czasem blokuje legalne oprogramowanie i powoduje błędy „permission denied”, których przyczyna nie jest oczywista. Ten przewodnik pokazuje, jak sprawdzić status SELinux i wyłączyć go — tymczasowo lub na stałe — w CentOS, RHEL, AlmaLinux, Rocky Linux i Fedora.

Zanim całkowicie wyłączysz SELinux, rozważ ustawienie go w trybie permissive. Tryb permissive utrzymuje SELinux w aktywności i tylko rejestruje to, co zostałoby zablokowane, dzięki czemu możesz naprawić rzeczywisty problem bez utraty warstwy bezpieczeństwa. Pełne wyłączenie SELinux usuwa istotną ochronę — rób to tylko wtedy, gdy masz konkretny powód.

Sprawdzenie bieżącego statusu SELinux

Najpierw sprawdź, w jakim trybie działa SELinux:

sestatus
# lub, aby zobaczyć tylko bieżący tryb:
getenforce

Zobaczysz jeden z trzech stanów: Enforcing (reguły są stosowane), Permissive (reguły są tylko logowane, ale nie stosowane) lub Disabled (SELinux jest wyłączony).

Tymczasowe wyłączenie SELinux (do restartu)

Aby natychmiast przełączyć SELinux w tryb permissive bez restartu:

sudo setenforce 0
# potwierdzenie:
getenforce # powinno zwrócić: Permissive

To zalecany pierwszy krok przy rozwiązywaniu problemów — po restarcie tryb wraca do enforcing, więc nie zablokujesz się na stałe. Aby ponownie włączyć tryb enforcing, użyj sudo setenforce 1.

Stałe wyłączenie SELinux

Aby zmienić tryb na stałe (po restartach), edytuj plik konfiguracyjny SELinux:

sudo nano /etc/selinux/config

Znajdź linię SELINUX i ustaw ją na permissive (zalecane) lub disabled:

# dla trybu permissive (bezpieczniej):
SELINUX=permissive

# lub aby całkowicie wyłączyć:
SELINUX=disabled

Zapisz plik i zrestartuj system, aby zmiany weszły w życie:

sudo reboot

Weryfikacja po restarcie

getenforce
# zwróci Permissive lub Disabled zgodnie z Twoją konfiguracją