CentOS通过SELinux的安全上下文和策略规则管理文件访问,核心操作如下:
使用ls -Z命令查看文件/目录的SELinux标签(包含用户、角色、类型等信息),例如:
ls -Z /var/www/html/index.html
# 输出示例:system_u:object_r:httpd_sys_content_t:s0
用chcon命令直接修改文件的安全上下文(不持久,重启或restorecon后会还原):
sudo chcon -t httpd_sys_content_t /path/to/file # 将文件设为HTTP服务可访问类型
通过semanage fcontext添加自定义规则,并用restorecon应用到文件系统:
# 安装工具(如未安装)
sudo yum install policycoreutils-python
# 添加规则(如将/var/www/html目录设为httpd_sys_content_t类型)
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
# 应用规则到文件
sudo restorecon -Rv /var/www/html # -R递归处理,-v显示详情
sudo semanage fcontext -l # 列出所有文件上下文规则
sudo getsebool -a # 查看所有布尔值策略(如是否允许HTTP服务访问特定目录)
setsebool临时调整(如允许Apache写入临时目录):sudo setsebool -P httpd_write_temp_files on # -P使设置永久生效
sudo restorecon -v /path/to/file # 验证上下文是否应用成功
/var/log/audit/audit.log或/var/log/messages),确认是否有访问被拒绝的记录。用户:角色:类型构成,类型(如httpd_sys_content_t)是访问控制的核心。getenforce查看当前模式(Enforcing为强制模式,Permissive为仅记录模式)。通过以上操作,可精细控制进程对文件的访问权限,增强系统安全性。