Jaki jest właściwy sposób ustawienia kontekstu SELinux w pliku RPM .spec?

14

Próbuję zbudować RPM, który jest ukierunkowany na RHEL4 i 5. W tej chwili dzwonię chconz, %postale wiele wpisów Google mówi „nie tak należy to robić” z bardzo ograniczoną pomocą we właściwy sposób. Zauważyłem również, fixfiles -R mypackage checkże pliki są nieprawidłowe, gdy są prawidłowe (zgodnie z oczekiwaniami; DB RPM nie zdaje sobie sprawy z tego, czego chcę) ..

  • Mówię konkretnie RHEL4, ponieważ nie ma tego, semanageco wydaje się być jednym z właściwych sposobów na zrobienie tego. (Dodaj nową zasadę, a następnie uruchom restoreconkatalogi w %post.)

    • Nie potrzebuję też własnego kontekstu, tylko httpd_cache_tniestandardowy katalog.
  • Widziałem także „pozwól się tym cpiozająć” - ale mam nowy problem, że użytkownik nie będący rootem nie może uruchomić chconsię w katalogach kompilacji. Oszukiwałem i miałem go sudow pliku specyfikacji, ale to i tak nie miało znaczenia.

Aaron D. Marasco
źródło

Odpowiedzi:

9

W Fedora Wytyczne Opakowanie posiada projekt dokument wyjaśniający, jak radzić SELinux w pakietach, a oni korzystają semanage. Bez semanagetego wygląda na to, że obsługa RHEL 4 będzie hackem i nie ma na to szans.

Zgodnie z informacjami o wersji rpm 4.9.0 bezpośrednio w rpm było obsługiwane zarządzanie politykami SELinux, ale historycznie było zepsute:

  • Starsze wersje RPM wspierały dyrektywę% policy w specyfikacji dla dołączania polityk SELinux do nagłówka pakietu, ale tak naprawdę nigdy nie było to do niczego przydatne. Wszelkie zastosowania dyrektywy% policy w specyfikacjach powinny zostać usunięte, ponieważ ta nieużywana dyrektywa zapobiega tworzeniu z RPM 4.9.0 i nowszymi, nie robiąc nic dla starszych wersji.
  • Począwszy od RPM 4.9.0, pakowanie polityk SELinux jest obsługiwane przez nową sekcję% sepolicy w specyfikacji. Takie pakiety nie mogą być budowane, ale można je również zainstalować na starszych wersjach RPM (ale dołączone zasady nie będą w żaden sposób używane).

Nie widzę tam żadnej wzmianki o kontekstach plików i nie znalazłem żadnej wzmianki o bezpośredniej obsłudze kontekstów plików (jak %attrw %filessekcji). W każdym razie wygląda na to, że RHEL 6 działa tylko na rpm 4.8.0, więc (chyba że coś przeoczyłem) semanagetrasa jest tak dobra, że ​​będziemy w stanie pokonać ją przynajmniej do RHEL 7.

Steven Pritchard
źródło