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后面! =======================================================
温馨提示一个坑点:
一般而言,要关闭服务器的selinux功能,常用下面两种方法:
1)临时关闭
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce 2)永久关闭
[root@localhost ~]# cat /etc/sysconfig/selinux
SELINUX=disabled
[root@localhost ~]# reboot 之前碰到一个坑,如上设置SELINUX为disabled,并reboot重启服务器后,selinux并没有关闭! 最后发现原因是:
/etc/selinux/config文件里面的SELINUX值没有改过来,所以重启不生效!
一般而言,服务器系统安装后,/etc/sysconfig/selinux会默认为/etc/selinux/config的软链接,所以只需修改/etc/sysconfig/selinux文件中的SELINUX为disabled即可!
因为系统启动后默认会以/etc/selinux/config为主。 [root@localhost ~]# ll /etc/sysconfig/selinux
lrwxrwxrwx. 1 root root 17 Apr 27 02:41 /etc/sysconfig/selinux -> ../selinux/config 但之前碰到过的现象是: /etc/sysconfig/selinux 并不是/etc/selinux/config的软链接,所以这个细节要留意,如果不是软链接关系,就最好两个文件都修改下!
Linux下selinux简单梳理的更多相关文章
- Linux下一个简单的日志系统的设计及其C代码实现
1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...
- linux下EOF写法梳理 自动新建分区并挂载的脚本
linux下EOF写法梳理 - 散尽浮华 - 博客园 https://www.cnblogs.com/kevingrace/p/6257490.html 在平时的运维工作中,我们经常会碰到这样一个场景 ...
- Linux下的简单好用的计算器bc
1. 关于bc bc是随意精度计算器语言,通常在linux下当计算器用,简单好用.相当于windows下的计算器. 2. 支持的运算符 主要的数学运算: + 加法 - 减法 * 乘法 / 除法 ^ 指 ...
- [Android] Linux下JNI简单实现过程
大概梳理了一下JNI的过程: start->先写好A.java文件,里面添加native方法B,调用库C.so->编译成.class文件->用javac生成.h文件,文件包含Java ...
- 小知识积累-linux下一些简单开发配置
系统环境为 redhat enterprise 6.x,主要是针对初学者在linux下用gcc和vi简单测试开发的一些配置 1.vi 自动换行 在终端下敲入vi命令打开文件 : vi ~/.vimrc ...
- (转)live555在Linux下最简单地实现实时流媒体点播
通过Live555交叉编译后运行发现,上面实现的流媒体实时通过文件服务器的文件点播,没有相关的流媒体实现方式, 但在Linux下,可以通过某些技巧实现Live555服务器实时流媒体服务器,并且是傻瓜式 ...
- linux下最简单的端口转发工具
linux下简单好用的工具rinetd,实现端口映射/转发/重定向 官网地址http://www.boutell.com/rinetd 软件下载wget http://www.boutell.com/ ...
- Linux下一个简单sniffer的实现
Sniffer(嗅探器)是一种基于被动侦听原理的网络分析方式.将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获.对于网络监听的基本原理我们不在赘述,我们也不开启网卡的混杂模式,因为现在的 ...
- linux下EOF写法梳理
在平时的运维工作中,我们经常会碰到这样一个场景:执行脚本的时候,需要往一个文件里自动输入N行内容.如果是少数的几行内容,还可以用echo追加方式,但如果是很多行,那么单纯用echo追加的方式就显得愚蠢 ...
随机推荐
- 重写EasyUI的$.fn.datagrid.defaults.editors
$.extend($.fn.datagrid.defaults.editors, { numberbox: { init: function (container, options) { var in ...
- MySQL 8.0 —— 数据字典
1.简介 MySQL 8.0 将数据库元信息都存放于InnoDB存储引擎表中,在之前版本的MySQL中,数据字典不仅仅存放于特定的存储引擎表中,还存放于元数据文件.非事务性存储引擎表中.本文将会介绍M ...
- 第6章 linux的文件权限与目录配置
6.1用户与用户组 用户,自己的抽屉 用户组,自己的家 其他人(others),外人 root,天神 /etc/passwd 所有的系统上的账号与一般身份用户,root的相关信息 /etc/shado ...
- shell脚本之颜色效果显示以及PS1颜色实战
在bash shell脚本中我们可以使用ASCII颜色来显示文本信息. 格式:\033\[31m hello \033[0m ##m: 左侧#:这个#可以是3或者4,作用不一样. 3:前景色 4:背景 ...
- 关于数据库不适合docker的原因(摘抄)
所有的服务都开始了容器化升级,在一切皆容器的主流思想下,无状态的服务采用容器化已经是大势所趋,常常困扰架构师的一个问题是,数据库是否需要容器化? 数据库不适合容器化的七大原因 1. 数据不安全 即使你 ...
- Hive-1.2.1_03_DDL操作
Hive官方文档:Home-UserDocumentation Hive DDL官方文档:LanguageManual DDL 参考文章:Hive 用户指南 注意:各个语句的版本时间,有的是在 hiv ...
- Unity3d自制字体
这篇教学中会使用到BMFont 这个工具 准备好Unity5.3.2版本,其他版本会有异常 一.制作字体 下载链接: http://www.angelcode.com/products/bmfont/ ...
- [经验总结] 在 windows 命令窗口中运行 python 脚本时提示 ModuleNotFoundError: No module named 'xxx'
先给出的代码和目录结构 获取CPU代码如下: # -*- coding:utf-8 -*- ''' Created on Sep 10, 2018 @author: ''' import sys im ...
- ArcGIS栅格影像怎么从WGS84地理坐标转成Xian80投影坐标
事情是这样的,我下载了一个WGS84坐标系的影像图,需要加载到Xian80投影坐标系下,所以需要对影像图进行坐标系的转换 1.因为涉及到两个参考椭球的问题,首先需要计算七参数,如何计算七参数,请参考我 ...
- ajax json 表格排序,分页,自己定义每页数量
ajax json 表格排序.分页,自己定义每页数量 点击表头能够排序.依照升序或者降序,另外支持多列排序 设置每页数量 演示 XML/HTML Code <table id='examp ...