SELinux (англ. Security-Enhanced Linux — Linux с улучшенной безопасностью) — реализация системы принудительного контроля доступа, которая может работать параллельно с классической дискреционной системой контроля доступа. Входит в стандартное ядро Linux. Также для функционирования SELinux требуются модифицированные версии некоторых утилит (ps, ls, и тд), которые обеспечивают поддержку новых функций ядра, и поддержка со стороны файловой системы.
Метод 1: Временное отключение SELinux
Для временного отключения SELinux вы можете модифицировать файл
/selinux/enforce. Обратите внимание, это временное отключение, и после
перезагрузки системы SELinux будет работать снова.
# cat /selinux/enforce
1
# echo 0 > /selinux/enforce
# cat /selinux/enforce
0
Также можно использовать команду setenforce, как показано в примере
ниже. Возможные параметры команды setenforce таковы: Enforcing ,
Permissive, 1 (включить) or 0 (отключить).
# setenforce 0
Метод 2: Постоянное отключение SELinux
Для постоянного отключения SELinux, измените файл /etc/selinux/config
и установите SELINUX=disabled как показано ниже. После этого
перезагрузите сервер.
# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
Метод 3: Отключение SELinux в загрузчике Grub
Третий способ использует возможности загрузчика системы GRUB для отключения SELinux. Добавьте в конец строки
selinux=0
# cat /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet selinux=0
initrd /boot/initrd-2.6.18-92.el5PAE.img
title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet selinux=0
initrd /boot/initrd-2.6.18-92.el5.img
Метод 4: Отключаем SELinux только для определенных сервисов – HTTP/Apache
Если вам необходимо не целиком отключить SELinux, а только для
определенных служб, у вас есть такая возможность. Для примера отключим
SELinux для HTTP/Apache, изменив значение переменной
httpd_disable_trans в файле
/etc/selinux/targeted/booleans.
# grep httpd /etc/selinux/targeted/booleans
httpd_builtin_scripting=1
httpd_disable_trans=1
httpd_enable_cgi=1
httpd_enable_homedirs=1
httpd_ssi_exec=1
httpd_tty_comm=0
httpd_unified=1
Установите переменную также используя команду setsebool. После этого перезапустите httpd для вступления изменений в силу.
# setsebool httpd_disable_trans 1
# service httpd restart
И вуа-ля