开启Selinux遇到的坑及解决

 更新时间:2024年02月01日 16:59:14   作者:秋风哇  
这篇文章主要介绍了开启Selinux遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

事故起因

由于SeLinux会限制部分系统资源访问权限,所以很多开发者很喜欢禁用SeLinux,在布署程序的自动化角本中,也默认加入了禁用SeLinux的代码。

这样会导致用户在安装Centos7的计算机上所有帐号都无法登录(包括root),但使用SecureCRT等软件连Ssh却可以正常登录。

这还是会造成较大风险,一旦网络环境变化,该机器就会变成一个谁都无法登录的机器。

开启SELinux

实例上运行以下命令,编辑SELinux的config文件。

vi /etc/selinux/config

找到SELINUX=disabled,按i进入编辑模式,通过修改该参数开启SELinux。

您可以根据需求修改参数,开启SELinux有以下两种模式:

  • 强制模式SELINUX=enforcing:表示所有违反安全策略的行为都将被禁止。
  • 宽容模式SELINUX=permissive:表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。

修改完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

**说明:**修改config文件后,需要重启实例,但直接重启实例将会出现系统无法启动的错误。因此在重启之前需要在根目录下新建autorelabel文件。

在根目录下新建隐藏文件autorelabel,实例重启后,SELinux会自动重新标记所有系统文件。

touch /.autorelabel

验证SELinux状态

运行命令getenforce,验证SELinux状态。

返回状态应为enforcing或者permissive,本教程当前状态为enforcing。

运行命令sestatus,获取更多SELinux信息。

1

参数信息SELinux status显示为enabled,表示SELinux已启动。

关闭SELinux

1.运行命令getenforce,验证SELinux状态

  • 返回状态如果是enforcing,表明SELinux已开启。

2.选择临时关闭或者永久关闭SELinux。

  • 执行命令setenforce 0临时关闭SELinux。
  • 永久关闭SElinux。

a.运行以下命令,编辑SELinux的config文件。

vi /etc/selinux/config

b.找到SELINUX=enforcing,按i进入编辑模式,将参数修改为SELINUX=disabled

修改完成后,按下键盘Esc键,执行命令:wq,保存并退出文件。

当SeLinux选permissive(宽容模式)后,系统认为SeLinux有效,就能正常登录。

而且,对系统资源的管控也只是打印警告信息,不作实质性的限制,在开发者非要关闭SeLinux的情况下,我们可以用permissive模式代替disabled,不会影响程序的正常运行。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux移动文件与目录-mv命令的10个实用例子

    Linux移动文件与目录-mv命令的10个实用例子

    在Linux中很重要也很基础的一个命令就是mv移动或重命名文件与目录命令。当你想要将文件从一个位置移动到另一个地方并且不想复制它,那么mv 命令是完成这个任务的首选。下面这篇文章给大家详细介绍了使用mv命令的10个实用例子,有需要的朋友们可以参考借鉴。
    2017-01-01
  • 在Apache服务器上利用Varnish优化移动端访问的方法

    在Apache服务器上利用Varnish优化移动端访问的方法

    这篇文章主要介绍了在Apach服务器上利用Varnish优化移动端访问的方法,包括清除缓存等常用操作的介绍,需要的朋友可以参考下
    2015-06-06
  • CentOS 7使用samba共享文件夹的完整步骤

    CentOS 7使用samba共享文件夹的完整步骤

    这篇文章主要给大家介绍了关于CentOS 7使用samba共享文件夹的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Linux命名管道方式

    Linux命名管道方式

    这篇文章主要介绍了Linux命名管道方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Logrotate实现Catalina.out日志每俩小时切割示例

    Logrotate实现Catalina.out日志每俩小时切割示例

    Logrotate是一个日志文件管理工具,它是Linux默认自带的一个日志切割工具。本篇文章主要介绍了Logrotate实现Catalina.out日志每俩小时切割示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助
    2019-02-02
  • CentOS 7 搭建ntp时钟服务器的步骤详解

    CentOS 7 搭建ntp时钟服务器的步骤详解

    架设NTP服务器,是个相对比较简单的事情, 架设NTP服务器目的就是使各个工作站的时间统一,下面这篇文章主要给大家介绍了CentOS 7中搭建ntp时钟服务器的步骤,需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • Linux多线程编程(一)

    Linux多线程编程(一)

    linux多线程设计是指基于Linux操作系统下的多线程设计,包括多任务程序的设计,并发程序设计,网络程序设计,数据共享等。Linux系统下的多线程遵循POSIX线程接口,称为pthread。
    2014-08-08
  • Linux中英文命令对应

    Linux中英文命令对应

    本文我们把Linux的中英文命令做了对应翻译,给需要的朋友参考一下。
    2017-12-12
  • linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    这篇文章主要介绍了linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目环境,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Centos7服务器下启动jar包项目的最佳方法

    Centos7服务器下启动jar包项目的最佳方法

    这篇文章主要给大家分享介绍了关于Centos7服务器下启动jar包项目的最佳方法,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03

最新评论