温馨提示×

CentOS SELinux如何管理文件访问

小樊
115
2025-08-26 16:07:04
栏目: 智能运维

CentOS通过SELinux的安全上下文策略规则管理文件访问,核心操作如下:

1. 查看文件安全上下文

使用ls -Z命令查看文件/目录的SELinux标签(包含用户、角色、类型等信息),例如:

ls -Z /var/www/html/index.html
# 输出示例:system_u:object_r:httpd_sys_content_t:s0

2. 临时修改文件上下文

chcon命令直接修改文件的安全上下文(不持久,重启或restorecon后会还原):

sudo chcon -t httpd_sys_content_t /path/to/file  # 将文件设为HTTP服务可访问类型

3. 永久修改文件上下文

通过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显示详情

4. 管理SELinux策略规则

  • 查看策略规则
    sudo semanage fcontext -l  # 列出所有文件上下文规则
    sudo getsebool -a          # 查看所有布尔值策略(如是否允许HTTP服务访问特定目录)
    
  • 修改布尔值策略
    setsebool临时调整(如允许Apache写入临时目录):
    sudo setsebool -P httpd_write_temp_files on  # -P使设置永久生效
    

5. 验证访问控制

  • 检查文件是否被正确标记:
    sudo restorecon -v /path/to/file  # 验证上下文是否应用成功
    
  • 查看SELinux日志(/var/log/audit/audit.log/var/log/messages),确认是否有访问被拒绝的记录。

关键说明

  • 上下文组成:由用户:角色:类型构成,类型(如httpd_sys_content_t)是访问控制的核心。
  • 策略生效条件:需同时满足DAC(传统权限)MAC(SELinux策略),任一不满足则拒绝访问。
  • 模式切换:用getenforce查看当前模式(Enforcing为强制模式,Permissive为仅记录模式)。

通过以上操作,可精细控制进程对文件的访问权限,增强系统安全性。

0