4 metody vypnutí SELinuxu
V některých distribucích Linuxu je SELinux ve výchozím nastavení povolen, což může způsobovat různé problémy. Pokud nechápete, jak SELinux funguje, a neumíte ho správně konfigurovat, je nejlepší ho vypnout, dokud se neosvojíte základní principy jeho fungování.
Pro vypnutí SELinuxu můžete použít kteroukoli ze 4 popsaných metod.
Podrobně se nebudeme zabývat tím, k čemu SELinux slouží, a přejdeme přímo k jeho vypnutí. Pokud je v systému používán SELinux, příkazem ls -Z můžete vidět něco jako:
# 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: Dočasné vypnutí SELinuxu
Pro dočasné vypnutí SELinuxu můžete upravit soubor /selinux/enforce. Pamatujte, že toto je dočasné vypnutí a po restartu systému bude SELinux opět fungovat.
# cat /selinux/enforce
1
# echo 0 > /selinux/enforce
# cat /selinux/enforce
0
Můžete také použít příkaz setenforce, jak ukazuje příklad níže. Možné parametry příkazu setenforce jsou: Enforcing, Permissive, 1 (povolit) nebo 0 (zakázat).
# setenforce 0
Metoda 2: Trvalé vypnutí SELinuxu
Pro trvalé vypnutí SELinuxu změňte soubor /etc/selinux/config a nastavte SELINUX=disabled, jak je uvedeno níže. Poté restartujte server.
# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
Metoda 3: Vypnutí SELinuxu v zavaděči Grub
Třetí způsob využívá možnosti zavaděče systému GRUB k vypnutí SELinuxu. Přidejte na konec řádku 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: Vypnutí SELinuxu pouze pro určité služby – HTTP/Apache
Pokud potřebujete SELinux nevypnout úplně, ale pouze pro určité služby, máte tuto možnost. Jako příklad vypneme SELinux pro HTTP/Apache změnou hodnoty proměnné httpd_disable_trans v souboru /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
Nastavte proměnnou také pomocí příkazu setsebool. Poté restartujte httpd, aby se změny projevily.
# <strong>setsebool httpd_disable_trans 1
</strong># service httpd restart
