El comando semanage en SELinux
Semanage
semanage es una herramienta de línea de comandos utilizada para administrar configuraciones de políticas de SELinux que no están cubiertas directamente por los archivos de contexto predeterminados. Permite ajustar y extender la política de SELinux sin modificar directamente los archivos de políticas.
Es parte del paquete policycoreutils-python-utils, por lo que si el comando no está disponible, puede instalarse con:
sudo dnf install policycoreutils-python-utils
Se usa comúnmente para:
- Definir contextos de archivos personalizados.
- Administrar tipos de puertos asociados a servicios.
- Manejar usuarios SELinux.
- Configurar booleans persistentes.
Sintaxis general
semanage <subcomando> [opciones]
Subcomandos comunes:
semanage fcontext– Administrar contextos de archivos.semanage port– Asociar puertos con tipos SELinux.semanage boolean– Modificar booleanos de SELinux.semanage login– Asociar usuarios del sistema a usuarios SELinux.
Algunos ejemplos
1. Añadir un contexto personalizado para un directorio web:
sudo semanage fcontext -a -t httpd_sys_content_t "/miweb(/.*)?"
sudo restorecon -Rv /miweb
2. Asignar un nuevo puerto a un servicio SELinux:
sudo semanage port -a -t ssh_port_t -p tcp 2222
3. Listar puertos administrados por SELinux:
sudo semanage port -l
4. Modificar un booleano de SELinux de forma persistente:
sudo semanage boolean -m --on httpd_can_network_connect
Ver ayuda y subcomandos disponibles
semanage --help
Nota
Los cambios hechos con semanage son persistentes y sobreviven reinicios. Es preferible usar semanage en lugar de editar manualmente archivos de contexto o puertos.