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 仍然無法讀取這些檔案——為何?
▶我要如何讓服務在非標準連接埠上監聽?
如果这个工具对你有帮助,请考虑请我喝杯咖啡。
請幫我買杯咖啡吧。