Каков правильный способ установки контекста SELinux в RPM .spec?
Я пытаюсь создать RPM, который нацелен на RHEL4 и 5. Сейчас я вызываю chcon
из %post
но несколько записей в Google говорят, что «это не то, как вы должны это делать» с очень ограниченной помощью на правильном пути. Я также заметил, что fixfiles -R mypackage check
что файлы неправильны, когда они правы (как и ожидалось, БД RPM не понимает, чего я хочу).
-
Я специально говорю RHEL4, потому что у него нет семанажа, который, кажется, является одним из правильных способов сделать это. (Добавьте новую политику, а затем запустите
restorecon
в своих каталогах в%post
.)- Системный контейнер systemd-nspawn непригоден, потому что я не могу установить пароль root
- Как настроить SELinux для печати даты и времени в каждой записи в журнале аудита?
- Почему для выполнения semodule -i mypol.pp требуется много времени?
- Как restorecon обрабатывает ссылки?
- compgen и SELinux
- Мне также не нужен мой собственный контекст, просто
httpd_cache_t
в нестандартном каталоге.
-
Я также видел, что «пусть
cpio
позаботится об этом», но потом у меня возникла новая проблема, из-за которой пользователь root, неchcon
корневого RPM, не может запускатьchcon
в каталогах сборки. Я обманул и получилsudo
в спецификационном файле, но это все равно не имело значения.
- SELinux не переключается в «принудительный» режим
- Внедряет ли реализация Android MAC-сервера SELinux корневые приложения с привилегиями root от доступа к данным приложения?
- SELinux, ProFTPd и тихий журнал
- SELinux Enforcing предотвращает вход в другую учетную запись пользователя?
- Запретить создание каталогов, но разрешить создание файлов
- Ход взлома, процесс выполняется под пользователем apache
- Что использовать для упрощения Linux-бокса? Аппаргор, SELinux, grsecurity, SMACK, chroot?
- Apache не запускается на Fedora 15
One Solution collect form web for “Каков правильный способ установки контекста SELinux в RPM .spec?”
В Руководстве по упаковке 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.