linux异常处理:selinux配置错误导致无法重启
linux异常处理:selinux配置错误导致无法重启
一次linux无法重启异常记录:


当时第一反应就是梳理最近的配置变更,特别是能预知相关的就是selinux配置变更。
原来是误将SELINUXTYPE看成SELINUX后,将其值改为disabled。导致操作系统服务启动,无法进入单用户模式。变更回来之后,一切正常。
解决方法一:
系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,使用上下键选择“kernel ” 一行,按‘e’键进入编辑,在末尾增加“enforcing=0”,按“enter”保存设置并退到上一层,按‘b’键继续引导后正常开机。收到
恢复“/etc/selinux/config”中的配置信息。再按需求修改“SELINUX=disabled”。
解决方法二:
直接更改。

下面就是谈谈selinux。
安全增强型 Linux(Security-Enhanced Linux)
SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。
1、SELinux 的作用及权限管理机制
1.1 SELinux 的作用
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
目前系统文件权限的管理有两种:DAC(传统的) 和 MAC(SELinux)
1.2 DAC
传统的文件权限与帐号关系:自主式存取控制, DAC(Discretionary Access Control, DAC)
在没有使用 SELinux 的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。
只要访问这个资源的进程符合以上的条件就可以被访问。
而最致命问题是,root 用户不受任何管制,系统上任何资源都可以无限制地访问。
这种权限管理机制的主体是用户,也称为自主访问控制(DAC)。
1.3 MAC
以政策规则订定特定程序读取特定文件:委任式存取控制,MAC
在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。
这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。
即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。
这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。
而 MAC 又细分为了两种方式,一种叫类别安全(MCS)模式,另一种叫多级安全(MLS)模式。
- 在 DAC 模式下,只要相应目录有相应用户的权限,就可以被访问
- 在 MAC 模式下,还要受进程允许访问目录范围的限制。
【总结理解】
- DAC是以用户为出发点来管理权限的
- MAC是以程序为出发点来管理权限的
- 以前:root--->启动httpd---->httpd可以访问系统任何文件
- 现在:root--->启动httpd---->httpd只能访问/var/www/目录(这是MAC)规则的约束
如果httpd想要访问其他目录,那么必须满足两个条件:DAC的rwx + MAC的规则
2、SELinux 基本概念
2.1 主体(Subject)
可以完全等同于进程。
2.2 目标(Object)
被主体访问的资源。可以是文件、目录、端口、设备等。
注:为了方便理解,如无特别说明,以下均把文件或者目录视为对象。
2.3 政策和规则(Policy & Rule)
系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性地对某些进程进行管制。
而哪些进程需要管制、要怎么管制是由政策决定的。
一套政策里面有多个规则。部分规则可以按照需求启用或禁用(以下把该类型的规则称为布尔型规则)。
规则是模块化、可扩展的。在安装新的应用程序时,应用程序可通过添加新的模块来添加规则。用户也可以手动地增减规则。
在 CentOS 7 系统中,有三套政策,分别是:
- targeted:对大部分网络服务进程进行管制。这是系统默认使用的政策(下文均使用此政策)。
- minimum:以 targeted 为基础,仅对选定的网络服务进程进行管制。一般不用。
- mls:多级安全保护。对所有的进程进行管制。这是最严格的政策,配置难度非常大。一般不用,除非对安全性有极高的要求。
政策可以在 /etc/selinux/config 中设定。
【总结以上重要原理】SELinux 是透过 MAC 的方式来控管程序
- 主体 (Subject):SELinux 主要想要管理的就是程序,主体= process;
- 目标 (Object):主体程序将访问的文件,目标=文件;
- 政策 (Policy):由于程序与文件数量庞大,因此 SELinux 依据服务来制订基本的存取安全性政策。这些政策内包含有详细的规则 (rule) 来指定不同的服务开放某些资源的存取与否。
2.4 安全上下文(Security Context)
主体能不能存取目标除了政策指定之外,主体与目标的安全性文本必须一致才能够顺利存取。
这个安全性文本 (security context) 有点类似文件系统的 rwx !安全性文本的内容与设定是非常重要的!
如果设定错误,你的某些服务(主体程序)就无法存取文件系统(目标资源),当然就会一直出现『权限不符』的错误讯息了!
安全上下文有四个字段,分别用冒号隔开。形如:system_u:object_r:admin_home_t:s0。
SELinux 有三种工作模式,分别是:
- enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
- permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
- disabled:关闭 SELinux。
SELinux 工作模式可以在 /etc/selinux/config 中设定。
如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。反过来也一样。
enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。

需要注意,如果系统已经在关闭 SELinux 的状态下运行了一段时间,在打开 SELinux 之后的第一次重启速度可能会比较慢。因为系统必须为磁盘中的文件创建安全上下文。
SELinux 日志的记录需要借助 auditd.service 这个服务,请不要禁用它。
........
linux异常处理:selinux配置错误导致无法重启的更多相关文章
- HWADDR配置错误导致network重启失败处理
如果因为/etc/sysconfig/network-scripts/下的ifcfg-eth0(此处以eth0网卡名为例),其中的HWADDR配置错误,不知道到哪里找到原来的HWADDR时,可以尝试一 ...
- Linux在fstab中因配置错误导致服务器主机无法重启的问题应该如何解决
fstab中配置错误导致系统无法启动的恢复方案 1制造错误的案例发生,在/etc/fstab中配置如下内容 结尾的倒数第一个为1表示进行磁盘检查,为0表示不进行磁盘检查,倒数第二个为0表示不备份,为1 ...
- SELinux配置不当导致vsftpd系统用户不能登陆
1.测试是否是SELinux配置不当导致的: setenforce 0 再次登陆ftp,正常,说明是SELinux配置不当导致.还原配置 setenforce 1 2.查看配置: getsebool ...
- 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错
遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...
- vmware Selinux配置错误,导致无法启动虚拟机
Linux 开机提示kernel panic - not syncing: Attempted to kill init! 解决方法: 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜 ...
- selinux配置错误实例介绍
错误原因 配置关闭SELinux,结果误操作 应修改配置文件/etc/selinux/config中的“SELINUX”参数的值, # SELINUX=enforcing 原始配置 SELINUX= ...
- SELinux配置不当导致httpd无法在非80端口启动
检测是否为selinux导致httpd启动失败,若setenforce 0以后就可以启动,就表示selinux配置不当. 首先本机要支持semanage命令,安装方法网上有. semanage po ...
- Linux iptables配置错误导致ORA-12535 & ORA-12170
实验环境: 操作系统 : Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库版本: Oracle Databa ...
- Linux实例/etc/fstab文件配置错误导致系统启动异常
Centos 7.3系统 问题现象: 阿里云ECS升级配置后重启,SSH连接不上.登录控制台远程连接ECS,出现以下界面. 提交工单阿里云反馈:https://help.aliyun.com/kno ...
随机推荐
- springboot 读取 yml 配置的几种方式
前言:在springboot 项目中一般默认的配置文件是application.properties,但是实际项目中我们一般会使用application.yml 文件,下面就介绍一下在springbo ...
- 程序员眼中的Redis
Redis 是用C语言编写的内存中的数据结构存储系统,可以用来作数据库.缓存.消息中间件. 数据结构 字符串(strings):值是任何种类的字符串 散列(hashs):值是map 字典,数组+链表, ...
- KVM虚拟机管理——资源调整
1. 概述2. 计算资源调整2.1 调整处理器配置2.2 调整内存配置3. 存储资源调整3.1 根分区扩展3.2 添加磁盘4. 网络资源调整 1. 概述 KVM在使用过程中,会涉及到计算(CPU,内存 ...
- oracle如何导出和导入数据库/表
oracle如何导出和导入数据库/表 oracle如何将项目中的表导出后在导入自己的数据库中,这是一个完整的操作,对于数据库备份或在本地查看数据验证数据进场用到,一般情况下我都用dos黑窗口进行操作, ...
- iOS APP 中H5视频默认全屏播放问题解决
问题描述:在Android中,视频可以正常在H5页面局部播放,iOS中则自动切换至全屏模式. 查看资料得以解决,20190301记录下来. 解决方法:IOS10及以后,在 video标签页中只包含 w ...
- UPC-5063-二分图最大匹配
好吧二分图的最小点覆盖=最大匹配 这道题也就变成模板题了... 写一个提醒,在写二分图时,尽量清零操作清空为-1,比如这个题,匹配数组girl[]如果清空为0,代表每个点都与0点连接,但是实际上是并没 ...
- 毕业设计 之 五 PHP语法学习笔记
毕业设计 之 四 PHP语法学习笔记 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 说明:该笔记是对网站编程语言的详细学习 一.PHP基础 0. 关于环境 ...
- 《Linux内核设计与实现》读书笔记 5
第五章系统调用 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种硬件的抽象接口:保证了系统的稳定和安全,避免应用程序不正确使用硬件,窃取其他进程的资源 ...
- Linux系统知识汇总
1 系统相关 1.1 静态IP地址配置 Ubuntu配置和修改IP地址 1.2 Linux内核升级和降级 内核升级 Linux升级内核的正确姿势 内核降级 Ubuntu 16.04 内核降级 1.3 ...
- Filter(转载)
web.xml中元素执行的顺序listener->filter->struts拦截器->servlet. 1.过滤器的概念 Java中的Filter 并不是一个标准的Servlet ...