Napisałem usługę / pojedynczą aplikację binarną, którą próbuję uruchomić na Fedorze 24, działa przy użyciu systemd, plik binarny jest wdrażany do /srv/bot
ta usługa / aplikacja, którą napisałem, musi tworzyć / otwierać / czytać i zmieniać nazwy plików w tym katalogu.
Najpierw zacząłem tworzyć nowe zasady oparte na SELinux: zezwól na proces tworzenia dowolnego pliku w określonym katalogu
ale gdy moja aplikacja musiała zmienić nazwę, w wyniku pojawiło się ostrzeżenie:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
Rozejrzałem się dookoła i odkryłem, że powinienem używać bardziej specyficznej etykiety SELinux niż typ podstawowy, ale wszystkie przykłady online pokazują istniejące etykiety z httpd / nginx / etc.
Czy mogę utworzyć niestandardową etykietę tylko dla mojej aplikacji?
Moim pomysłem jest stworzenie czegoś takiego jak myapp_var_t, użyj
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
oraz .pp
plik niestandardowy , który będzie korzystał z tego typu niestandardowego
Jeśli istnieje lepszy sposób na jego rozwiązanie, to też działa.
Dzięki
Aktualizacja
Po dalszych poszukiwaniach myślę, że właściwym terminem na to, co chcę zrobić, jest stworzenie nowego, types
który doprowadził mnie do
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
co w zasadzie mówi: biegnij
sepolgen /path/to/binary
i udało mi się uzyskać szablon, który mogę następnie skompilować do pliku pp i załadować, nadal pojawiają się błędy, ale wygląda na to, że jestem bliżej tego, co chcę zrobić.
Jeśli sprawię, że zadziała, zaktualizuję ten post