SELinux (Security-Enhanced Linux) - это механизм безопасности в Linux, который добавляет обязательные контроль доступа поверх стандартных прав файловой системы. Он помогает ограничивать доступ процессов к системным ресурсам и повышает защиту системы.
Иногда SELinux мешает работе приложений или усложняет конфигурацию, особенно при первом знакомстве с системами на базе RHEL/CentOS. В этой статье мы разберём, как проверить статус SELinux, временно отключить его и полностью отключить навсегда на разных дистрибутивах Linux.
Что такое SELinux и зачем он нужен
SELinux реализует дополнительный уровень безопасности, задавая подробные правила, кто и что может выполнять в системе. Его задачи:
Ограничить доступ программ к файлам, процессам и ресурсам;
Защитить систему от угроз на уровне ядра и приложений;
Помочь в расследовании инцидентов благодаря подробному логированию.
Как узнать, включён ли SELinux
Перед изменением настроек полезно проверить текущий статус:
Через команду sestatus
Выполните в терминале:
sestatusПример вывода, когда SELinux включён:
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Если SELinux отключён полностью, вывод будет таким:
SELinux status: disabledЧерез команду getenforce
getenforceЭта команда покажет текущий режим работы:
Enforcing - правила активны и применяются;
Permissive - SELinux логирует нарушения, но не блокирует действия;
Disabled - полностью отключён.
Проверка конфигурационного файла
Файл /etc/selinux/config содержит настройки SELinux. Просмотреть его можно так:
cat /etc/selinux/configПример содержимого файла:
# This file controls the state of SELinux on the system.
SELINUX=enforcing
SELINUXTYPE=targetedЗначение SELINUX определяет режим работы после перезагрузки.
Временное отключение SELinux
Если требуется быстро отключить SELinux без изменения настроек навсегда (например, для тестирования), это можно сделать так:
Способ 1
echo 0 > /sys/fs/selinux/enforceЭто немедленно отключает принудительное применение политик, но только до перезагрузки.
Способ 2
setenforce 0Переводит SELinux в Permissive режим, т.е. он будет только логировать нарушения, но не блокировать действия.
Выбор режима permissive
setenforce PermissiveЭто полезно, когда нужно посмотреть, какие действия блокируются, не отключая SELinux полностью.
Важно: все эти команды действуют только до следующей перезагрузки. После reboot система снова вернёт SELinux в исходный режим.
Полное отключение SELinux (постоянно)
Чтобы SELinux оставался отключённым после перезагрузки, надо изменить конфигурацию системы.
На RHEL
В RHEL (Red Hat Enterprise Linux) основной конфигурационный файл находится в /etc/sysconfig/selinux.
Откройте его в редакторе:
sudo nano /etc/sysconfig/selinuxНайдите строку:
SELINUX=enforcingи замените на:
SELINUX=disabledСохраните изменения и перезагрузите систему:
sudo rebootПосле запуска проверьте статус через sestatus должен быть disabled.
На Ubuntu, Debian и CentOS
В этих системах конфигурационный файл находится по пути /etc/selinux/config.
Откройте его:
sudo nano /etc/selinux/configНайдите строку:
SELINUX=enforcingи замените на:
SELINUX=disabledПосле этого сохраните файл и перезагрузите систему:
sudo rebootТеперь SELinux будет отключён навсегда.
Отключение через загрузчик (GRUB)
Ещё один способ отключиение это добавить параметр в конфигурацию загрузчика GRUB. Это полезно, если по каким-то причинам изменение конфигурационного файла не работает.
Откройте файл GRUB:
sudo nano /boot/grub/grub.cfgНайдите строку запуска ядра, она начинается с linux /boot/vmlinuz…. В конец строки добавьте:
selinux=0Сохраните и перезагрузите систему. SELinux будет отключён ещё на этапе загрузки ядра.
SELinux - это мощный инструмент контроля доступа и безопасности. Но в некоторых случаях он мешает работе приложений или усложняет администрирование. Если вы решили временно или навсегда отключить SELinux, используйте описанные выше методы зависимо от ваших задач и дистрибутива.
Учтите, что полное отключение SELinux снижает уровень защиты системы, поэтому во многих случаях лучше настроить его в Permissive режиме или скорректировать политики под ваши нужды.