Crmgo Blog

SELinux

SELinux

4 metody wyłączenia SELinux W niektórych dystrybucjach Linuksa SELinux jest domyślnie włączony, co może powodować różne problemy. Jeśli nie rozumiesz, jak działa SELinux i nie potrafisz go poprawnie skonfigurować, najlepiej jest go wyłączyć do czasu…

SELinux

4 metody wyłączenia SELinux

W niektórych dystrybucjach Linuxa SELinux jest domyślnie włączony, co może powodować różne problemy. Jeśli nie rozumiesz, jak działa SELinux i nie potrafisz go poprawnie konfigurować, najlepiej jest go wyłączyć, dopóki nie opanujesz podstawowych zasad jego działania.

Aby wyłączyć SELinux, możesz użyć dowolnej z 4 opisanych metod.

Nie będziemy szczegółowo omawiać celu, dla którego używa się SELinux, i przejdziemy bezpośrednio do jego wyłączenia. Jeśli w systemie używany jest SELinux, wykonując polecenie ls -Z możesz zobaczyć podobny obraz.
# ls -Z /etc/
-rw-r--r-- root root system_u:object_r:etc_t:s0 a2ps.cfg
-rw-r--r-- root root system_u:object_r:adjtime_t:s0 adjtime
-rw-r--r-- root root system_u:object_r:etc_aliases_t:s0 aliases
drwxr-x--- root root system_u:object_r:auditd_etc_t:s0 audit
drwxr-xr-x root root system_u:object_r:etc_runtime_t:s0 blkid
drwxr-xr-x root root system_u:object_r:bluetooth_conf_t:s0 bluetooth
drwx------ root root system_u:object_r:system_cron_spool_t:s0 cron.d
-rw-rw-r-- root disk system_u:object_r:amanda_dumpdates_t:s0 dumpdates
Metoda 1: Tymczasowe wyłączenie SELinux

Aby tymczasowo wyłączyć SELinux, możesz zmodyfikować plik /selinux/enforce. Pamiętaj, że jest to tymczasowe wyłączenie, a po ponownym uruchomieniu systemu SELinux będzie działać ponownie.
# cat /selinux/enforce
1
# echo 0 > /selinux/enforce
# cat /selinux/enforce
0

Można również użyć polecenia setenforce, jak pokazano w poniższym przykładzie. Dostępne parametry polecenia setenforce to: Enforcing, Permissive, 1 (włącz) lub 0 (wyłącz).
# setenforce 0
Metoda 2: Stałe wyłączenie SELinux

Aby trwale wyłączyć SELinux, zmień plik /etc/selinux/config i ustaw SELINUX=disabled, jak pokazano poniżej. Następnie zrestartuj serwer.
# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
Metoda 3: Wyłączenie SELinux w bootloaderze Grub

Trzecia metoda wykorzystuje możliwości bootloadera GRUB do wyłączenia SELinux. Dodaj na końcu wiersza 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
Metoda 4: Wyłączamy SELinux tylko dla określonych usług – HTTP/Apache

Jeśli nie chcesz całkowicie wyłączać SELinux, ale tylko dla określonych usług, masz taką możliwość. Jako przykład wyłączymy SELinux dla HTTP/Apache, zmieniając wartość zmiennej httpd_disable_trans w pliku /etc/selinux/targeted/booleans.

# grep httpd /etc/selinux/targeted/booleans
httpd_builtin_scripting=1
<strong>httpd_disable_trans=1
</strong>httpd_enable_cgi=1
httpd_enable_homedirs=1
httpd_ssi_exec=1
httpd_tty_comm=0
httpd_unified=1

Ustaw zmienną, używając również polecenia setsebool. Następnie zrestartuj httpd, aby zmiany zostały wprowadzone.
# <strong>setsebool httpd_disable_trans 1
</strong># service httpd restart

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.