Linux sestatus 命令

Linux 命令大全 Linux 命令大全


sestatus 是 Linux 系统中用于查看 SELinux (Security-Enhanced Linux) 当前状态的命令行工具。SELinux 是由美国国家安全局(NSA)开发的一种强制访问控制(MAC)安全机制,为 Linux 系统提供额外的安全层。


命令语法

sestatus [选项]

常用选项

选项 说明
-v 显示详细输出,包括进程和文件的上下文信息
-b 显示当前加载的策略布尔值(规则开关)

命令输出解析

执行 sestatus 命令后,典型的输出如下:

实例

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

关键字段说明

  1. SELinux status

    • enabled: SELinux 已启用
    • disabled: SELinux 已禁用
  2. Current mode

    • enforcing: 强制执行安全策略
    • permissive: 仅记录违规行为但不阻止
    • disabled: 完全禁用
  3. Loaded policy name

    • targeted: 默认策略,仅保护特定服务
    • mls: 多级安全策略(更严格)
    • minimum: 最小策略

实际应用示例

示例1:检查 SELinux 基本状态

$ sestatus

这是最基本的用法,快速查看 SELinux 是否启用及其运行模式。

示例2:查看详细上下文信息

$ sestatus -v

输出将包含进程和文件的上下文信息,例如:

实例

Process contexts:
Current context:            unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Init context:               system_u:system_r:init_t:s0
...
File contexts:
Controlling terminal:       unconfined_u:object_r:user_devpts_t:s0
...

示例3:查看当前策略布尔值

$ sestatus -b

输出将显示所有可配置的策略规则开关状态,例如:

实例

Policy booleans:
abrt_anon_write                            off
abrt_handle_event                          off
...
httpd_can_network_connect                  off
...

常见问题排查

问题1:SELinux 阻止了正常操作

解决方案

  1. 首先确认是否是 SELinux 导致的问题:
    grep "avc:" /var/log/audit/audit.log
  2. 如果是,可以临时设置为 permissive 模式测试:
    sudo setenforce 0
  3. 永久解决方案是调整 SELinux 策略或修改文件上下文

问题2:sestatus 显示 SELinux 已禁用

可能原因

  • 系统启动时禁用了 SELinux
  • /etc/selinux/config 文件中设置了 SELINUX=disabled

解决方案

  1. 编辑 /etc/selinux/config 文件
  2. 修改 SELINUX=enforcingSELINUX=permissive
  3. 重启系统

最佳实践

  1. 生产环境建议

    • 保持 SELinux 处于 enforcing 模式以获取最大安全性
    • 不要轻易禁用 SELinux,而是学习如何正确配置它
  2. 故障排查步骤

    • 先用 sestatus 检查状态
    • 查看 /var/log/audit/audit.log 获取详细拒绝信息
    • 使用 audit2allow 生成自定义策略模块
  3. 策略调整

    • 优先使用 setsebool 调整布尔值
    • 其次考虑修改文件上下文(chcon)
    • 最后才考虑创建自定义策略模块

总结

sestatus 命令是管理 SELinux 系统的第一道工具,通过它可以快速了解系统的安全状态。掌握这个命令的使用方法,能够帮助系统管理员更好地维护 Linux 系统的安全性,同时在出现权限问题时快速定位原因。


Linux 命令大全 Linux 命令大全