Ho scritto un servizio / singola app binaria che sto cercando di eseguire su Fedora 24, funziona usando systemd, il binario è distribuito su /srv/bot
questo servizio / app che ho scritto deve creare / aprire / leggere e rinominare i file in questa directory.
Ho iniziato a creare una nuova politica basata su SELinux: consentire a un processo di creare qualsiasi file in una determinata directory
ma quando la mia app doveva rinominare, l'output aveva un avviso:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
Ho cercato su Google e ho scoperto che dovrei usare un'etichetta SELinux più specifica di un tipo di base, ma tutti gli esempi online mostrano etichette esistenti da httpd / nginx / etc.
È possibile creare un'etichetta personalizzata solo per la mia app?
La mia idea è di creare qualcosa come myapp_var_t, usare
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
e un .pp
file personalizzato che utilizzerà questo tipo personalizzato
Se esiste un modo migliore per risolverlo, anche quello funziona.
Grazie
Aggiornare
Dopo ulteriori ricerche, penso che il termine corretto per ciò che voglio fare sia creare nuovo types
che mi abbia portato a
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
che in pratica dice: corri
sepolgen /path/to/binary
e sono stato in grado di ottenere un modello che posso quindi compilare in un file PP e caricare, ancora ottenere alcuni errori ma sembra che io sia più vicino a quello che voglio fare.
Se riesco a farlo funzionare, aggiorno questo post