Linux下selinux简单梳理

在linux环境下执行某些程序时,偶尔会遇到来一个关于selinux的强制模式不可执行的情况,这种情况下需要关闭selinux或者将enforcing改为permissive模式后才能进行执行。selinux是Linux内核中提供的强制访问控制(MAC)系统,下面就对selinux的几种模式及其转换进行总结:

selinux的启动、关闭与查看
1)目前selinux支持三种模式,分别如下:
•enforcing:强制模式,代表selinux运作中,且已经正确的开始限制 domain/type 了; 
•permissive:宽容模式:代表selinux运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取。这种模式可以运来作为 selinux 的 debug 之用;
•disabled:关闭,selinux 并没有实际运作。

2)查看selinux的模式
[root@localhost ~]# getenforce  
Enforcing       //显示出目前的模式为 Enforcing

3)查看 selinux的政策 (Policy)?
[root@localhost ~]# 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@localhost ~]# vim /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) 的状态到开启的状态也需要重新开机!

查看selinux状态:
a)/usr/sbin/sestatus -v    //如果selinux status参数为enabled即为开启状态
selinux status: enabled
b)getenforce       //也可以用这个命令检查


关闭selinux:
a)临时关闭(不用重启机器):
setenforce 0      //设置selinux 成为permissive宽容模式
setenforce 1      //设置selinux 成为enforcing强制模式

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

如果你要启动selinux的话,请将上述的selinux=enforcing设定妥当,并且指定selinuxTYPE=targeted 这一个设定,并且到/boot/grub/menu.lst这个文件去,看看核心有无关闭selinux。
[root@localhost ~]# 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后面!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上安装Moodle

Moodle是一个流行的,开源的基于Web的学习管理系统(LMS),任何人都可以免费安装和使用。通过Moodle,您可以为学习者群体创建和提供课程,阅读和讨论板...

2760
来自专栏我的博客

Collectd介绍

collectd是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。它会在系统运行和存储信息时周期性的统计系统的相关统计信息。...

3496
来自专栏L宝宝聊IT

MySQL架构组成、物理文件组成

MySQL经过多年的改进和完善之后,已经基本具备了所有通用数据库管理系统所需要的相关功能。

782
来自专栏沃趣科技

ASM 翻译系列第三弹:基础知识 About ASM disk groups, disks and files

原作者:Bane Radulovic 译者: 赵恩东 审核: 魏兴华 DBGeeK社群联合出品 Oracle ASM使用磁盘组来存放数据文件,每一个...

3918
来自专栏CSDN技术头条

Schemaless架构(二):Uber基于MySQL的Trip数据库

ber的Schemaless数据库是从2014年10月开始启用的,这是一个基于MySQL的数据库,本文就来探究一下它的架构。本文是系列文章的第二部分;第一部分是...

2367
来自专栏不忘初心

基于zookeeper的daemon框架方案——支持容灾和心跳监控

在线上项目中,很多时候需要起一个daemon做守护进程,用于不停地或以一定间隔地执行工作,比如每隔20s把内存中的数据做快照写磁盘。

2065
来自专栏LanceToBigData

MySQL(一)之MySQL简介与安装

大家可能都在用MySQL,其实我也是在用MySQL的,但是你知道吗?大部分人都是在windows中使用,这里将介绍一下在windows中的安装分为安装包安装与M...

2206
来自专栏小勇DW3

线上测试环境搭建过程记录

3.安装完以后  会在 /usr/java/latest 下有对应的 jdk 版本

1721
来自专栏Python、Flask、Django

Docker服务无法正常启动,解决方法之一

1784
来自专栏云计算教程系列

如何在Ubuntu上安装SELinux

Ubuntu有一个类似于SELinux的强制访问控制系统,名为AppArmor。SELinux(Security-Enhanced Linux) 是美国国家安全...

4121

扫码关注云+社区

领取腾讯云代金券