SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统--百度百科。
基于经验来说SELinux在Linux文件“用户-组-其他”这一权限控制的基础上,将各常用软件的“平时只访问这些目录和文件”变成“以后只能访问这些目录和文件”。
比如对于mysql用户有/mysql/log的全部读写执行权限,但你将mysql数据库的日志目录在配置文件中修改成/mysql/log那mysql会被SELinux阻止启动,因为mysql平时的日志目录是/var/log/mysql.log。
所以可以理解SELinux像360一样的安全卫士,360平时当软件可疑时也禁止启动或直接删除,但SELinux更为安全同时也就意着更为死板改个目录都不允许这么严格限制必然和很多服务器软件和运维人员的习惯相冲突。
“所有操作都符合经验程官方文档程序却出现了错误最终你发现是因为不符合SELinux要求”这种现像的经常出现,让更多的人宁愿直接关闭SELinux。
状态查看:
[root@ls unpack]# sestatus
SELinux status: enabled #程序是否启动
SELinuxfs mount: /selinux #软件位置
Current mode: permissive #当前模式,
Mode from config file: enforcing #配置文件中的模式
Policy version: 24 #策略版本
Policy from config file: targeted
[root@ls selinux]# getenforce
Permissive #当前模式
临时关闭:
setenforce 0 #0代表permissive,1代表enforcing;也可直接用permissive和enforcing
彻底关闭:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #修改配置文件中的默认模式 reboot #重启系统,小心执行
关闭SELinux推荐的做法是临时关闭--修改配置文件--不重启。
参考: