SELinux 布尔值是什么
SELinux 布尔值是策略预先留出的开关:策略本身规定进程域能访问哪些类型,某些访问(例如 Web 服务发起网络连接、FTP 读写用户家目录)被设计成可选功能,用布尔值控制。相比改策略模块或打标签,切换布尔值是放行一类访问的最小代价手段,改错也能一键回退。用 getsebool 查看、setsebool 修改,加 -P 才会写进持久配置,不加只对当前运行期有效。
基本信息
| 适用平台 | 启用 SELinux 的 RHEL 系与信创服务器版 |
|---|---|
| 查看单个 | getsebool 名称 |
| 查看全部 | getsebool -a,配合 grep 过滤关键字 |
| 修改 | setsebool 名称 on|off,加 -P 持久化 |
| 看描述 | semanage boolean -l | grep 名称,含用途说明与当前/默认值 |
典型使用场景
- Web 反向代理:httpd_can_network_connect 允许 Web 进程连后端
- Samba 共享:需要共享非标准目录时开启对应导出开关
- FTP 服务:允许读写用户家目录或全盘访问
- 数据库远程连接:允许服务进程发起网络访问
- 排障对照:AVC 解释提示建议开启某布尔值时,按提示验证是否解决
查看与设置
查看与设置
getsebool -a | grep httpd # 列出 Web 相关开关
getsebool httpd_can_network_connect # 查看单个开关当前值
getsebool -P httpd_can_network_connect on # -P 写入持久配置
setsebool httpd_can_network_connect on # 不加 -P:仅当前生效,重启恢复
semanage boolean -l | grep httpd_can_network_connect # 看描述与默认值
semanage boolean -l -C | head # 只看被本地改动过的开关
getsebool -a | grep -c on # 统计当前处于开启状态的开关数量常见开关示例
常见开关示例
setsebool -P httpd_can_network_connect on # Web 进程可发起网络连接
setsebool -P httpd_read_user_content on # Web 读取用户家目录内容
setsebool -P ftpd_full_access on # FTP 完整读写(安全评估后开启)
setsebool -P samba_export_all_rw on # Samba 全目录读写(谨慎)
setsebool -P nis_enabled on # 涉及 NIS 类认证时的兼容开关常见开关读法
| 开关 | 作用 | 风险提示 |
|---|---|---|
| httpd_can_network_connect | Web 进程可连网络 | 放行后 Web 可访问任意后端,按需开启 |
| httpd_read_user_content | Web 可读家目录内容 | 扩大可读范围,注意数据暴露 |
| ftpd_full_access | FTP 完整读写 | 近似放宽到传统 FTP 行为,权限面大 |
| samba_export_all_rw | Samba 全目录读写 | 共享范围失控风险高,优先用标签方案 |
| use_nfs_home_dirs | 允许 NFS 家目录 | 集约环境常需开启 |
| domain_can_mmap_files | 进程可 mmap 文件 | 部分应用依赖,按需开启 |
semanage boolean -l -C 只列出被本地改过的开关,变更审计与复核时用它比翻全量列表高效。
布尔值本质上就是放宽策略边界,开启前确认业务真实需要并记录变更原因,满足安全核查中「变更可追溯」的要求。