最直接有效的方法是使用semanage boolean -l查看所有布尔值的名称、默认值和当前运行值;结合getsebool、sepolicy list-booleans、手册页(如man 8 booleans)及策略开发包获取详细描述与状态差异。

要查看 SELinux 布尔值的详细描述与当前状态,最直接有效的方法是使用 semanage boolean 命令配合筛选和格式化选项。
查看所有布尔值及其描述和状态
运行以下命令可列出全部布尔值,并显示其当前开关状态(on/off)以及官方描述:
semanage boolean -l
该命令输出包含三列:布尔值名称、默认值(在策略中预设)、当前运行值(实际生效值),但不直接显示描述。要获取描述,需结合 getsebool -a 和系统文档,或使用带注释的增强方式:
semanage boolean -l | grep -E "^(httpd|samba|nfs|ftp)"(按需过滤常见服务相关项)
查看特定布尔值的详情与说明
对某个具体布尔值(如 httpd_can_network_connect),可用:
getsebool httpd_can_network_connect
输出示例:httpd_can_network_connect --> off
再配合手册页或策略文档查描述:
sesearch -A -s httpd_t -t port_t -c tcp_socket -p name_connect | grep boolean(需安装 setools-console)
或更实用的方式是查阅系统内置说明(部分发行版支持):
seinfo -b | grep httpd_can_network_connect -A 2(显示布尔值及后两行上下文)
获取人类可读的描述(推荐方法)
SELinux 布尔值的官方描述通常存于策略源码或 RPM 包文档中,但用户可快速获取近似说明:
- 安装策略开发包(如 CentOS/RHEL):
yum install selinux-policy-devel - 查看布尔值文档:
man 8 booleans或man 8 httpd_selinux(服务专属手册) - 使用
sepolicy list-booleans(需policycoreutils-python-utils包):sepolicy list-booleans | grep "allow.*network"
检查布尔值是否被本地修改过
某些布尔值可能被手动设置过,与默认值不同。用以下命令区分:
getsebool -a | grep "httpd_can"
对比输出中的 on/off 与 semanage boolean -l 中的“default”列,若不一致,说明已被自定义启用或禁用。











