Intereting Posts

Каков правильный способ установки контекста SELinux в RPM .spec?

Я пытаюсь создать RPM, который нацелен на RHEL4 и 5. Сейчас я вызываю chcon из %post но несколько записей в Google говорят, что «это не то, как вы должны это делать» с очень ограниченной помощью на правильном пути. Я также заметил, что fixfiles -R mypackage check что файлы неправильны, когда они правы (как и ожидалось, БД RPM не понимает, чего я хочу).

  • Я специально говорю RHEL4, потому что у него нет семанажа, который, кажется, является одним из правильных способов сделать это. (Добавьте новую политику, а затем запустите restorecon в своих каталогах в %post .)

    • Мне также не нужен мой собственный контекст, просто httpd_cache_t в нестандартном каталоге.
  • Я также видел, что «пусть cpio позаботится об этом», но потом у меня возникла новая проблема, из-за которой пользователь root, не chcon корневого RPM, не может запускать chcon в каталогах сборки. Я обманул и получил sudo в спецификационном файле, но это все равно не имело значения.

В Руководстве по упаковке Fedora содержится проект документа, в котором объясняется, как обрабатывать SELinux в пакетах, и они используют semanage . Без semanage похоже, что поддержка RHEL 4 будет взломать, и нет никакого способа обойти это.

Согласно примечаниям выпуска rpm 4.9.0 , для управления политиками SELinux была некоторая поддержка в rpm, но она исторически была нарушена:

  • Старые версии RPM поддерживали директиву% policy в спецификации для присоединения политик SELinux к заголовку пакета, но это никогда не использовалось ни для чего. Любые применения директивы% policy в спецификациях должны быть удалены, поскольку эта неиспользованная директива предотвращает создание с помощью RPM 4.9.0 и более поздних версий, хотя ничего не делает для более старых версий.
  • Начиная с RPM 4.9.0, пакет политики SELinux поддерживается через новый раздел% sepolicy в спецификации. Такие пакеты не могут быть созданы, но также устанавливаются в старых версиях RPM (но включенные политики не будут использоваться каким-либо образом).

Я не вижу упоминания о файловых контекстах, и я не смог найти упоминания о поддержке прямого файла (например, %attr в разделе %files ). В любом случае, похоже, что RHEL 6 находится только на rpm 4.8.0, поэтому (если только я не пропустил что-то), маршрут semanage так же хорош, как мы можем сделать, по крайней мере, до RHEL 7.