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


14

Я намагаюся побудувати RPM , що цілі RHEL4 і 5. Зараз я викликаю chconз %postале кілька записів Google говорять «що це не так, як ви повинні робити це» з дуже обмеженою допомоги на правильному шляху. Я також помітив, що fixfiles -R mypackage checkкажуть, що файли помиляються, коли вони праві (як очікувалося; RPM DB не розуміє, що я хочу).

  • Я спеціально кажу RHEL4, оскільки він не має, semanageщо здається, одним із належних способів це зробити. (Додайте нову політику, а потім запустіть restoreconсвої каталоги в %post.)

    • Мені також не потрібен власний контекст, лише httpd_cache_tв нестандартному каталозі.
  • Я також бачив "нехай cpioпотурбується про це" - але тоді у мене з’явилася нова проблема, що користувач, що не має кореневих RPM-будівель, не може працювати chconв каталогах збирання. Я обдурив і мав sudoу файлі spec, але це, здавалося, не має значення.

Відповіді:


9

Посібники з упаковки Fedora містять проект документа, що пояснює, як обробляти SELinux у пакунках і якими вони користуються semanage. Без semanageцього, схоже, що підтримка RHEL 4 стане хак-так, і цього не обійти.

Згідно з примітками до випуску rpm 4.9.0 , у rpm була підтримка безпосередньо для управління політиками SELinux, але вона історично була порушена:

  • Старіші версії RPM підтримували директиву% policy в специфікації щодо приєднання політик SELinux до заголовка пакета, але це ніколи не було корисним ні для чого. Будь-яке використання директиви% policy у специфікаціях слід видалити, оскільки ця невикористана директива запобігає побудові з RPM 4.9.0 і пізніших версій, не роблячи нічого для старих версій.
  • Починаючи з RPM 4.9.0, упаковка політик SELinux підтримується через новий% сеполічний розділ у специфікації. Такі пакети неможливо побудувати, але вони також можуть бути встановлені на старих версіях RPM (але включені політики не використовуватимуться жодним чином).

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.