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. C. Nearest vectors--cf598C(极角排序)

    http://codeforces.com/problemset/problem/598/C 题目大意: 给你你个向量  向量的起点都是从(0,0)开始的   求哪个角最小  输出这两个向量 这是第一 ...

  2. Segments--poj3304(判断直线与线段之间的关系)

    http://poj.org/problem?id=3304 给你几条线段  然后 让你找到一条直线让他在这条直线上的映射有一个重合点 如果有这条直线的话  这个重合的部分的两个端点一定是某两条线段的 ...

  3. 通过XMLHttpRequest,ActiveXObject实现ajax请求

    今天学习了原生的ajax请求.我将涉及到的ajax请求方法封装成了一个对象: var xhr={     getXHR:function(){         var XHR = null;      ...

  4. 某考试 T1 arg

    题目描述 给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS. 输入格式 第一行两个整数 n, m. 接下来一行 m 个整数, 表示 A. 输出格式 ...

  5. npm Error: Cannot find module 'proto-list'

    Error: Cannot find module 'proto-list' at Function.Module._resolveFilename (module.js:338:15) at Fun ...

  6. OSChinaclient源代码学习(3)--轮询机制的实现

    主要以OSChina Androidclient源代码中Notice的轮询机制进行解读. 一.基础知识 一般IM(即使通讯)的实现有两种方式:推送和轮询,推送就是server主动向client发送消息 ...

  7. 【转载】epoll与select/poll的区别总结

    因为这道题目经常被问到.干脆总结一下,免得遗漏了. 参考文章:http://www.cnblogs.com/qiaoconglovelife/p/5735936.html 1 本质上都是同步I/O 三 ...

  8. md5sum使用注意事项

    1. linux 命令行的 md5sum命令 echo -n "123456" | md5sum     //echo的时候, 默认是自带回车的, 必须要去掉 -n 去掉回车. 2 ...

  9. SQL 通用数据类型

    SQL 通用数据类型 数据类型定义列中存放的值的种类. SQL 通用数据类型 数据库表中的每个列都要求有名称和数据类型.Each column in a database table is requi ...

  10. iOS学习之动画效果的实现

    // //  ViewController.m //  UI-动画练习 // //  Created by jzq_mac on 15/7/22. //  Copyright (c) 2015年 jz ...