温馨提示×

Ubuntu SELinux如何使用标签

小樊
44
2025-08-23 17:27:32
栏目: 智能运维

在Ubuntu中使用SELinux标签需先启用SELinux,再通过命令管理标签,核心操作如下:

1. 启用SELinux

  • 安装工具包
    sudo apt install selinux-basics selinux-policy-default auditd  
    
  • 激活SELinux
    sudo selinux-activate  
    
    (首次启用需重启系统完成文件系统标签初始化)

2. 查看标签

  • 查看文件/目录标签

    ls -Z /path/to/file  
    

    输出示例:-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
    httpd_sys_content_t为文件类型标签)

  • 查看进程标签

    ps -eZ | grep 进程名  
    

    输出示例:system_u:system_r:httpd_t:s0 1234 ? 00:00:01 httpd
    httpd_t为进程类型标签)

3. 修改标签

  • 临时修改文件标签

    sudo chcon -t 新类型_t /path/to/file  
    

    例如:将文件标记为Web服务器可访问类型:

    sudo chcon -t httpd_sys_content_t /var/www/html/index.html  
    
  • 永久修改文件标签

    sudo semanage fcontext -a -t 新类型_t /path/to/file  
    sudo restorecon -Rv /path/to/file  
    

    semanage修改策略规则,restorecon应用规则)

4. 标签类型说明

  • 核心标签组件
    • 用户(User):如unconfined_u(未受限用户)、system_u(系统用户)。
    • 角色(Role):如object_r(普通对象角色)、system_r(系统角色)。
    • 类型(Type):定义访问权限的核心标签,如httpd_sys_content_t(Web内容)、tmp_t(临时文件)。
    • 级别(Level):多级安全场景使用,如s0(默认级别)。

5. 注意事项

  • 与AppArmor冲突:Ubuntu默认使用AppArmor,启用SELinux前需卸载AppArmor:
    sudo apt purge apparmor  
    
  • 策略选择:默认使用targeted策略(针对常见服务),如需更细粒度控制可配置mls策略(需手动定义安全级别)。
  • 调试工具:若标签配置错误导致访问被拒,可通过/var/log/audit/audit.log查看拒绝日志,并用audit2allow生成修复策略。

以上操作需在已启用SELinux的系统上进行,生产环境建议优先使用默认策略,谨慎修改核心标签。

0