• SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭(disabled) 几种模式之间的转换


    This file controls the state of SELinux on the system.

    SELINUX= can take one of these three values:

    enforcing - SELinux security policy is enforced.

    permissive - SELinux prints warnings instead of enforcing.

    disabled - No SELinux policy is loaded.

    SELINUX=enforcing

    SELINUX=disabled

    SELINUXTYPE= can take one of these two values:

    targeted - Targeted processes are protected,

    mls - Multi Level Security protection.

    SELINUXTYPE=targeted

    SELinux 的基本介绍及用法
    安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统
    SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

    在Android的root相关的文章里经常会看到关于SElinux,Android4.3以后引进SElinux。
    SELinux 的启动、关闭与查看
    1、并非所有的 Linux distributions 都支持 SELinux
    目前 SELinux 支持三种模式,分别如下:
    •enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限制 domain/type 了;
    •permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
    •disabled:关闭,SELinux 并没有实际运作。
    2,查看SELinux的模式

    getenforce Enforcing <==就显示出目前的模式为 Enforcing

    3,查看 SELinux 的政策 (Policy)?
    [root@master oracle]# sestatus
    SELinux status: enabled <是否启动 SELinux
    SELinuxfs mount: /selinux <
    SELinux 的相关文件资料挂载点
    Current mode: enforcing <目前的模式
    Mode from config file: enforcing <
    设定档指定的模式
    Policy version: 21
    Policy from config file: targeted <==目前的政策为何?

    4,通过配置文件调整SELinux的参数
    [root@www ~]# vi /etc/selinux/config
    SELINUX=enforcing <调整 enforcing|disabled|permissive
    SELINUXTYPE=targeted <
    目前仅有 targeted 与 strict

    5,SELinux 的启动与关闭
    【重要常识】上面是预设的政策与启动的模式!你要注意的是,如果改变了政策则需要重新开机;如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他两个,那也必须要重新开机。这是因为 SELinux 是整合到核心里面去的, 你只可以在 SELinux 运作下切换成为强制 (enforcing) 或宽容 (permissive) 模式,不能够直接关闭 SELinux 的!
    同时,由 SELinux 关闭 (disable) 的状态到开启的状态也需要重新开机啦!所以,如果刚刚你发现 getenforce 出现 disabled 时, 请到上述文件修改成为 enforcing 吧!
    【重点】如果要启动SELinux必须满足以下两个点:
    所以,如果你要启动 SELinux 的话,请将上述的 SELINUX=enforcing 设定妥当,并且指定 SELINUXTYPE=targeted 这一个设定, 并且到 /boot/grub/menu.lst 这个文件去,看看核心有无关闭 SELinux 了呢?
    [root@www ~]# vi /boot/grub/menu.lst
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.18-92.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet selinux=0
    initrd /initrd-2.6.18-92.el5.img

    如果要启动 SELinux ,则不可以出现 selinux=0 的字样在 kernel 后面!
    【问题】通过上面的学习我们知道,如果将启动着的SELinux改为禁用,需要重启电脑,我们不想重启电脑又不想开启SELinux该怎么办呢?
    【答案】将强制模式改为宽松模!
    [root@www ~]# setenforce [0|1]
    1
    选项与参数:
    0 :转成 permissive 宽容模式;
    1 :转成 Enforcing 强制模式
    范例一:将 SELinux 在 Enforcing 与 permissive 之间切换与查看
    [root@www ~]# setenforce 0
    [root@www ~]# getenforce Permissive
    [root@www ~]# setenforce 1
    [root@www ~]# getenforce Enforcing

    6,查看已启动程序的type设定
    [root@master oracle]# ps aux -Z
    LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    system_u:system_r:init_t root 1 0.0 0.4 2060 520 ? Ss May07 0:02 init [5 system_u:system_r:kernel_t root 2 0.0 0.0 0 0 ? S< May07 0:00 [migra] system_u:system_r:kernel_t root 11 0.0 0.0 0 0 ? S< May07 0:00 [kacpi] system_u:system_r:auditd_t root 4022 0.0 0.4 12128 560 ? S<sl May07 0:01 auditd system_u:system_r:auditd_t root 4024 0.0 0.4 13072 628 ? S<sl May07 0:00 /sbin/a system_u:system_r:restorecond_t root 4040 0.0 4.4 10284 5556 ? Ss May07 0:00 /usr/sb

    说明:其实这些东西我们都不用管,都是SELinux内置的。只要学会在强制和宽松模式间转换就行了!
    小结附:
    关闭SELinux的方法:
    修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
    如果不想重启系统,使用命令setenforce 0
    注:
    setenforce 1 设置SELinux 成为enforcing模式
    setenforce 0 设置SELinux 成为permissive模式
    在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux

    ---------------------------------------------------------------

    查看selinux状态:
    /usr/bin/setstatus -v
    如下:
    SELinux status: enabled
    SELinuxfs mount: /selinux
    Current mode: permissive
    Mode from config file: enforcing
    Policy version: 21
    Policy from config file: targeted

    getenforce/setenforce查看和设置SELinux的当前工作模式

    -----------------------------------------------------------------------

    查看SELinux状态:
    1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
    SELinux status: enabled
    2、getenforce ##也可以用这个命令检查
    关闭SELinux:
    1、临时关闭(不用重启机器):
    setenforce 0 ##设置SELinux 成为permissive模式
    ##setenforce 1 设置SELinux 成为enforcing模式

    2、修改配置文件需要重启机器:
    修改/etc/selinux/config 文件
    将SELINUX=enforcing改为SELINUX=disabled
    重启机器即可

  • 相关阅读:
    大规模分布式存储系统笔记一二章 概述与单机存储系统
    Apache Avro总结
    可汗学院公开课统计学笔记 第11到16集 样本 总体 方差 标准差 诸方差公式
    可汗学院公开课统计学笔记 第1到10集 均值 中位数 众数 极差 统计图
    Mock、Powermock使用汇总
    如何解决NoSuchMethodError
    2019年我看手机之华为篇
    活着
    log4j使用指北
    关于Eclipse导入maven项目报空指针异常
  • 原文地址:https://www.cnblogs.com/ITniu/p/11138372.html
Copyright © 2020-2023  润新知