semanage 命令生成器
生成用于管理SELinux策略映射(fcontext、login、user、port、boolean)的semanage命令
开始使用 semanage
## 什么是 semanage?
`semanage`用于管理 SELinux 策略映射——这些标签用于告知内核某个进程、文件、端口或登录用户被*允许*执行哪些操作。它本身并不切换强制模式或宽容模式(那是`setenforce`的功能);而是配置 SELinux 策略所使用的持久映射规则。
## 使用方法
1. **选择对象**:`fcontext`(文件标签)、`login`(Linux 用户到 SELinux 用户的映射)、`user`、`port` 或 `boolean`。 2. **选择操作**:`add`(`-a`)、`modify`(`-m`)、`delete`(`-d`)或`list`(`-l`)。 3. **设置 SELinux 类型**(`-t`)以及**值**(路径正则表达式、端口、用户等)。 4. **应用文件上下文**:对于`fcontext`类型的更改,需随后运行`restorecon`,以便为现有文件重新标记标签。 5. **复制并运行**:在命令前加上`sudo`即可。
对象、操作与选项
### `fcontext` 文件上下文映射 将路径正则表达式绑定到 SELinux 类型。添加或修改后,运行 `restorecon -Rv /path` 为现有文件重新标记标签:`semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?'`。
### `login` Linux 用户 → SELinux 用户映射 将 Linux 登录用户(或 `__default__`)映射到 SELinux 用户,例如 `semanage login -a -s user_u john`。
### `user` SELinux 用户 创建或修改 SELinux 用户及其可承担的角色。
### `port` 端口 → 类型映射 为网络端口标记标签,以便受限制的服务能够绑定到该端口:`semanage port -a -t http_port_t -p tcp 8080`。
### `boolean` 策略布尔值 通过开启或关闭指定的布尔值来改变策略行为(`semanage boolean -m --on httpd_can_network_connect`)。
### 操作 `-a` / `-m` / `-d` / `-l` 添加新的映射、修改现有映射、删除映射,或列出当前的所有映射。
▶什么是 SELinux 上下文?它为何重要?
▶我添加了 fcontext 规则,但 httpd 仍然无法读取这些文件——为什么?
▶如何让服务在非标准端口上监听?
如果这个工具对你有帮助的话,请考虑请我喝杯咖啡。
请给我买杯咖啡吧。