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は依然としてファイルを読み取れません — なぜでしょうか?
▶標準でないポートでサービスがリスンできるようにするにはどうすればよいですか?
このツールがあなたに役立ったなら、私にコーヒーをご馳走することをお勧めします。
私にコーヒーを買ってください。