教你暂时或永久禁用 SELinux 的 4 种有效方法

举报
Tiamo_T 发表于 2021/10/12 09:09:32 2021/10/12
【摘要】 各位好,本文将教你暂时或永久禁用 SELinux 的 4 种有效方法在某些 Linux 发行版上,SELinux 默认启用,这可能会导致一些不必要的问题,如果您不了解 SELinux 的工作原理以及如何配置它的基本细节。我强烈建议您了解 SELinux 并在您的环境中实施它。但是,在您了解 SELinux 的实现细节之前,您可能希望禁用它以避免一些不必要的问题。要禁用 SELinux,您可以...

各位好,本文将教你暂时或永久禁用 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
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。