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
sepolgen /path/to/binary
wyrzuca mi błąd składniowy. Jestem na RHEL 7.6. Myślę, żesepolgen --application /path/to/binary
to właściwa składnia, jeśli Twoim celem jest napisanie polityki dla konkretnej aplikacji?.te
plik rzuca również błąd składni dla mnie przy kompilacji modułu:app.te:5:ERROR 'This block has no require section.' at token 'files_type' on line 5:
. A jeśli dodamrequire
sekcję, otrzymam:ERROR 'syntax error' at token 'files_type' on line 13: