Escribí un servicio / aplicación binaria única que estoy tratando de ejecutar en Fedora 24, se ejecuta utilizando systemd, el binario se implementa en /srv/bot
Este servicio / aplicación que escribí necesita crear / abrir / leer y renombrar archivos en este directorio.
Primero comencé a crear una nueva política basada en SELinux: permitir un proceso para crear cualquier archivo en un determinado directorio
pero cuando mi aplicación necesitaba cambiar el nombre, la salida tenía una advertencia:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
Busqué en Google y descubrí que debería usar una etiqueta SELinux más específica que un tipo base, pero todos los ejemplos en línea muestran etiquetas existentes de httpd / nginx / etc.
¿Hay alguna manera de crear una etiqueta personalizada solo para mi propia aplicación?
Mi idea es crear algo como myapp_var_t, usar
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
y un .pp
archivo personalizado que usará este tipo personalizado
Si hay una mejor manera de resolverlo, eso también funciona.
Gracias
Actualizar
Después de más búsquedas, creo que el término apropiado para lo que quiero hacer es crear nuevas types
que me llevaron a
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
que básicamente dice, corre
sepolgen /path/to/binary
y pude obtener una plantilla que luego puedo compilar en un archivo pp y cargar, todavía recibo algunos errores pero parece que estoy más cerca de lo que quiero hacer.
Si lo hago funcionar, actualizaré esta publicación
sepolgen /path/to/binary
escupe un error de sintaxis para mí. Estoy en RHEL 7.6. ¿Creo quesepolgen --application /path/to/binary
es la sintaxis adecuada si su objetivo es escribir una política para una aplicación en particular?.te
archivo también genera un error de sintaxis para mí al compilar el módulo:app.te:5:ERROR 'This block has no require section.' at token 'files_type' on line 5:
. Y si agrego unarequire
sección, obtengo:ERROR 'syntax error' at token 'files_type' on line 13: