1、SELinux简介

SELinux是Security Enhanced Linux的缩写,字面上的意思就是安全强化的Linux,它是由美国国家安全局 (NSA) 开发的,整合到Linux核心的一个模块,是对于强制访问控制(MAC)的实现,是 Linux历史上最杰出的新安全子系统,提供了比传统的UNIX权限更好的访问控制。在SELinux的访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。

2、SELinux 的启动、关闭和状态

并非所有的 Linux发行版都支持 SELinux 的,CentOS 5.x 以后就支持 SELinux了,目前 SELinux 支持三种模式:

  • enforcing:强制模式,表示SELinux 运行中,且已经正确的开始限制 domain/type 了;
  • permissive:宽容模式,表示SELinux 运行中,不过仅会有警告信息,并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
  • disabled:关闭,SELinux 没有运行。
1)获取SELinux的状态

[root@www ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted

2)获取SELinux运行模式

[root@www ~]# getenforce
Enforcing //当前的模式为 Enforcing

3)SELinux运行模式切换

[root@www ~]# setenforce [0|1]
选项与参数:
0:转成 Permissive 宽容模式;
1:转成 Enforcing 强制模式

[root@www ~]# setenforce 0
[root@www ~]# getenforce
Permissive

[root@www ~]# setenforce 1
[root@www ~]# getenforce
Enforcing

4)SELinux 的启动和关闭

由于SELinux 整合到Linux核心里了,如果由 enforcing 或 permissive模式改成 disabled,或由 disabled 改成其他两个,系统必须要重新启动;
在 SELinux运行(enforcing或permissive模式)时,只能在enforcing和permissive模式切换,不能够直接关闭 SELinux,只能通过修改配置文件,然后重启系统。
在 SELinux关闭(disabled)时,setenforce命令不能设置Enforcing或Permissive模式,只能通过修改配置文件来设置,然后重启系统。

[root@www ~]# vim /etc/selinux/config
SELINUX=enforcing                //默认为enforcing,可设置为enforcing、permissive、disabled中的一项。
SELINUXTYPE=targeted //目前只能设置成targeted、mls中的一项

注意:
1)如果从 disable 切换到enforcing或permissive模式时,由于系统必须要针对文档写入安全性本文的信息,因此开机过程会花费不少时间在等待重新写入 SELinux 安全性本文 (有时也称为 SELinux Label),而且在写完之后还得要再次的重新启动。
2)如果已经运行在Enforcing模式,但是可能由于SELinux的设置问题,导致某些服务无法正常的运行,此时可以将Enforcing 模式改为Permissive模式,让 SELinux只会警告无法顺利联机的信息,而不是直接阻挡主体程序的读取权限。

3、SELinux布尔变量

SELinux的一些布尔变量的设置对程序的运行起着控制作用,有时需要根据情况需要打开或关闭。
[root@www ~]# getsebool -a | grep samba //获取和samba安全性设置有关的布尔值
bacula_use_samba --> off
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off

[root@www ~]#setsebool -P samba_enable_home_dirs=1

[root@www ~]# getsebool samba_enable_home_dirs
samba_enable_home_dirs --> on

4、SELinux安全性文本

1)查看文件的安全性文本
[root@localhost home]# ls -Z rjfws/     
drwxrws---. rjfws rjfws unconfined_u:object_r:user_home_t:s0 data
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 公共的
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 模板
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 视频
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 图片
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 文档
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 下载
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 音乐
drwxr-xr-x. rjfws rjfws unconfined_u:object_r:user_home_t:s0 桌面

2)查看目录的安全性文本
[root@localhost home]# ls -Zd rjfws/   
drwxrwx---. rjfws rjfws unconfined_u:object_r:user_home_dir_t:s0 rjfws/

=-=-=-=-=
Powered by Blogilo

SELinux的启动和关闭的更多相关文章

  1. Linux 防火墙和SELinux的开启和关闭

    防火墙(firewalld) 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临时打开防火墙 syste ...

  2. SElinux以及防火墙的关闭

    [root@localhost targeted]# pwd/etc/selinux/targeted[root@localhost targeted]# getsebool -a|grep samb ...

  3. nginx之旅(第一篇):nginx下载安装、nginx启动与关闭、nginx配置文件详解、nginx默认网站

    一.nginx下载安装 版本nginx 1.15.5 系统环境centos7.5(本机ip192.168.199.228) 关闭selinux 和防火墙firewall 1.下载 wget http: ...

  4. Centos7防火墙和SELinux的开启和关闭

    在虚拟机里面开启多个服务,对应多个端口,在防火墙开启的情况下,就要对外开放端口,这样客户端才能正常访问,但比较繁琐,关闭更直接点. 防火墙 临时关闭防火墙 systemctl stop firewal ...

  5. Linux CentOS中使用SQL*Plus启动和关闭数据库

    启动和关闭数据库的常用工具有三个 一.SQL*Plus 在SQL*Plus环境中,用户以SYSDBA身份连接到Oracle后,可以通过命令行方式启动或关闭数据库. 二.OEM(企业管理器) 利用OEM ...

  6. Oracle12c CDB和PDB数据库的启动与关闭说明

    Oracle 12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB). CDB全称为Container Database,中文翻译为数据库容器,PDB ...

  7. <Oracle Database>数据库启动与关闭

    启动和关闭Oracle数据库 要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆.一般我们常用INTERNAL用户来启动和关闭数据库(INT ...

  8. 启动和关闭ADB服务(adb start-server和adb kill-server)

    1  Android SDK中的常用命令行工具 在<Android SDK安装目录>\tools目录中带了很多命令行工具.虽然一般的开发人员并不需要完全掌握这些工具的使用方法,但了解这些工 ...

  9. MySQL管理_数据库启动与关闭

    MySQL数据库服务器通常指的的是mysqld,而命令行mysql则是mysql客户端程序,这两个概念通常容易混淆.通常启动mysql服务器即是启动mysqld进程,mysqld启动后,可以通过mys ...

随机推荐

  1. python学习之-- assert断言

    assert 断言作用:断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假.可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常.举例如下:a ...

  2. Codechef May Challenge 2015

    随便瞎写,其实没做出多少题: Chef and Cake 题目大概是用输入的数生成 一个数组并且生成出q个[X,Y]的询问, 数组长度N<=1000000,q<=10^7; 开始用线段树, ...

  3. 在Studio中使用Access数据库时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”

    错误提示:

  4. onfocus事件,onblur事件;Focus()方法,Blur()方法

    <1> <pre name="code" class="html"><!DOCTYPE html PUBLIC "-// ...

  5. protobuf 之 MessageLite 接口摘录

    class LIBPROTOBUF_EXPORT MessageLite { public: inline MessageLite() {} virtual ~MessageLite(); // Ba ...

  6. Java使用三种不同循环结构对1+2+3+...+100 求和

    ▷//第一种求法,使用while结构 /** * @author 9527 * @since 19/6/20 */ public class Gaosi { public static void ma ...

  7. 每天复习Shell—ls

    ls命令是linux下最经常使用的命令.ls命令就是list的缩写缺省下ls用来打印出当前文件夹的清单假设ls指定其它文件夹那么就会显示指定文件夹里的文件及文件夹清单. 通过ls 命令不仅能够查 ...

  8. [IT学习]阿铭Linux 微信公众号 每日一题 解析

    1.shell习题171020公布的昨日答案 习题171019 - 打印正方形 #!/bin/bash read -p "please input a number:" sum a ...

  9. 在ubuntu18.0下安装qt4.7以及qt-creator安装过程中遇到的坑

    最近的嵌入式Linux系统上要做课程设计= =要用贼老贼老的qt4.7,配环境踩坑都费了我1天时间.....所以记录下来,希望能给和我遇到相同问题的朋友一点帮助 apt-get install g++ ...

  10. 创建javaScript 对象

    创建新实例person 并向其添加四个属性: person=new Object(); person.firstname="Bill"; person.lastname=" ...