目录
Toggle引言
在做网站的时候总会遇到一些各种各样的问题,selinux真是让人又爱又恨,爱的是能有效保证文件系统的安全,恨的是有些时候做一些服务或者操作时不得不把selinux暂时关闭,接下来写一个最近遇到很多次的selinux安全上下文故障
selinux处于Enforcing模式
故障原因:脚本文件安全上下文值为默认值,selinux禁止php-fpm查看/使用文件导致网站页面报错
解决方案
把/var/www/html/shells目录里的脚本文件的安全上下文值改为httpd_sys_rw_content_t
通过 SELinux 的默认文件上下文规则,让指定目录下的文件自动继承正确的安全上下文。
1. 添加目录的默认安全上下文规则
#在路径中使用正则表达式,如“/var/www/html/shells(/.*)?”来匹配所有子目录和文件。
semanage fcontext -a -t httpd_sys_rw_content_t “/var/www/html/shells(/.*)?”
2. 立即应用新规则到目录及现有文件
restorecon -Rv /var/www/html/shells/
如果文件已存在且需要批量修复安全上下文:
1. 检查当前目录的安全上下文
ls -lZ /var/www/html/shells/
2. 递归修复目录下所有文件的安全上下文
restorecon -Rv /var/www/html/shells/
以后传输文件的操作步骤
1.cp -a /shell/a.sh /var/www/html/shell/
2.递归修复文件安全上下文值(前提已配置selinux默认规则)
restorecon -Rv /var/www/html/shell/
3.修改所有者所有组为apache
chown apache:apache /var/www/html/shell/