教你暂时或永久禁用 SELinux 的 4 种有效方法
各位好,本文将教你暂时或永久禁用 SELinux 的 4 种有效方法
在某些 Linux 发行版上,SELinux 默认启用,这可能会导致一些不必要的问题,如果您不了解 SELinux 的工作原理以及如何配置它的基本细节。我强烈建议您了解 SELinux 并在您的环境中实施它。但是,在您了解 SELinux 的实现细节之前,您可能希望禁用它以避免一些不必要的问题。
要禁用 SELinux,您可以使用本文中提到的 4 种不同方法中的任何一种。
SELinux 将实施安全策略,包括某些地区使用 Linux 内核中定义的 Linux 安全模块 (LSM) 定义的强制访问控制。系统中的每个文件和进程都将被标记为 SELinux 将使用的特定标签。您可以使用 ls -Z 并查看这些标签,如下所示。
# 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
方法一:暂时关闭SELinux
要暂时禁用 SELinux,您必须修改 /selinux/enforce 文件,如下所示。请注意,此设置将在系统重新启动后消失。
# cat /selinux/enforce
1
# echo 0 > /selinux/enforce
# cat /selinux/enforce
0
您还可以使用如下所示的 setenforce 命令禁用 SELinux。setenforce 命令的可能参数有:Enforcing、Permissive、1(启用)或 0(禁用)。
# setenforce 0
方法 2:永久禁用 SELinux
要永久禁用 SELinux,请修改 /etc/selinux/config 并设置 SELINUX=disabled,如下所示。对 /etc/selinux/config 进行任何更改后,重新启动服务器以考虑更改。
# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
以下是/etc/selinux/config文件中SELINUX变量的可能值
- 强制执行– 安全策略始终强制执行
- permissive - 这只是通过仅打印警告消息而不是真正执行 SELinux 来模拟执行策略。最好先了解 SELinux 的工作原理,然后再确定应该执行哪些策略。
- disabled – 完全禁用 SELinux
以下是/etc/selinux/config文件中SELINUXTYPE变量的可能值。这表示可用于 SELinux 的策略类型。
- 目标- 此策略将仅保护特定的目标网络守护程序。
- 严格- 这是为了最大限度地保护 SELinux。
方法 3:从 Grub 引导加载程序禁用 SELinux
如果您在系统上找不到 /etc/selinux/config 文件,您可以将禁用 SELinux 作为参数传递给 Grub 引导加载程序,如下所示。
# 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 服务禁用 SELinux,修改/etc/selinux/targeted/booleans文件中的httpd_disable_trans变量。 将 httpd_disable_trans 变量设置为 1,如下所示。
# 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
使用 setebool 命令设置 SELinux 布尔值,如下所示。确保在此更改后重新启动 HTTP 服务。
# setsebool httpd_disable_trans 1
# service httpd restart
- 点赞
- 收藏
- 关注作者
评论(0)