semanage Befehlsgenerator
semanage-Befehle generieren, um SELinux-Policy-Konfigurationen (fcontext, login, user, port, boolean) zu verwalten
Einführung in semanage
## Was ist semanage?
`semanage` verwaltet die Zuordnungen der SELinux-Policy – die Labels, die dem Kernel mitteilen, was ein Prozess, eine Datei, ein Port oder ein Anmeldenutzer *erlaubt* ist zu tun. Es schaltet nicht selbst den durchsetzenden/permisiven Modus um (das erledigt `setenforce`); stattdessen konfiguriert es die dauerhaften Zuordnungen, die von der SELinux-Policy verwendet werden.
## So wird es verwendet
1. **Wählen Sie ein Objekt**: `fcontext` (Dateilabels), `login` (Zuordnung Linux-User → SELinux-User), `user`, `port` oder `boolean`. 2. **Wählen Sie eine Aktion**: `add` (`-a`), `modify` (`-m`), `delete` (`-d`) oder `list` (`-l`). 3. **Legen Sie den SELinux-Typ** (`-t`) sowie den **Wert** (Path-Regex, Port, Benutzer usw.) fest. 4. **Wenden Sie den Dateikontext an**: Bei Änderungen von `fcontext` führen Sie danach `restorecon` aus, damit bestehende Dateien neu gelabelt werden. 5. **Kopieren & Ausführen**: Fügen Sie voran `sudo` ein.
Objekte, Aktionen & Optionen
### `fcontext` Zuordnungen im Dateikontext Verknüpfen Sie eine Path-RegEx mit einem SELinux-Typ. Nach Hinzufügen oder Ändern führen Sie `restorecon -Rv /path` aus, um bestehende Dateien neu zu kennzeichnen: `semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?'`.
### `login` Zuordnung von Linux-Benutzern → SELinux-Benutzern Verknüpfen Sie einen Linux-Anmeldenamen (oder `__default__`) mit einem SELinux-Benutzer, z. B. `semanage login -a -s user_u john`.
### `user` SELinux-Benutzer Erstellen oder ändern Sie SELinux-Benutzer sowie die Rollen, die sie übernehmen können.
### `port` Zuordnungen von Ports → Typen Kennzeichnen Sie einen Netzwerkport, damit ein eingeschränkter Dienst sich darauf binden kann: `semanage port -a -t http_port_t -p tcp 8080`.
### `boolean` Policy-Boolesche Werte Schalten Sie einen benannten booleschen Wert ein oder aus, um das Verhalten einer Policy zu ändern (`semanage boolean -m --on httpd_can_network_connect`).
### Aktionen `-a` / `-m` / `-d` / `-l` Fügen Sie eine neue Zuordnung hinzu, ändern Sie eine bestehende, löschen Sie eine oder listeten Sie aktuelle Zuordnungen auf.
▶Was ist ein SELinux-Kontext und warum ist er wichtig?
▶Ich habe eine fcontext-Regel hinzugefügt, aber httpd kann die Dateien immer noch nicht lesen – warum?
▶Wie kann ich einer Dienstleistung erlauben, auf einem nicht-standardmäßigen Port zuzuhören?
Wenn dieses Tool Ihnen geholfen hat, zögern Sie nicht, mir einen Kaffee zu kaufen.
Kaufe mir einen Kaffee.