RPM .spec에서 SELinux 컨텍스트를 설정하는 올바른 방법은 무엇입니까?

RPM .spec에서 SELinux 컨텍스트를 설정하는 올바른 방법은 무엇입니까?

RHEL4 및 5를 대상으로 하는 RPM을 구축하려고 합니다. 지금 전화했는데 여러 Google 항목 chcon에서 %post"이것은 당신이 해야 할 일이 아닙니다"라고 말하지만 다음 질문에 대한 도움은 매우 제한적입니다.옳은방법. 나는 또한 fixfiles -R mypackage check파일이 정확했는데 잘못되었다고 말하는 것을 발견했습니다(예상대로; RPM DB는 내가 원하는 것을 깨닫지 못했습니다).

  • 나는 특히 RHEL4라고 말합니다.아니요이것은 semanage올바른 접근법 중 하나인 것 같습니다. (새 정책을 추가하고 의 restorecon디렉터리에서 실행합니다 %post.)

    • 내 자신의 컨텍스트도 필요하지 않고 httpd_cache_t비표준 디렉토리만 필요합니다.
  • "처리하자"도 본 적이 있습니다 . 그러나 루트가 아닌 RPM 빌드 사용자가 빌드 디렉터리에서 실행할 cpio수 없는 새로운 문제에 직면했습니다 . 사양 파일에 뭔가를 chcon속여서 sudo추가했는데 별거 아닌 것 같습니다.

답변1

이것페도라 패키징 가이드패키지에서 SELinux를 처리하는 방법과 사용 방법을 설명하는 초안 문서가 있습니다 semanage. 그렇지 않은 경우 semanageRHEL 4를 지원하는 것이 어려울 것으로 보이며 이를 해결할 방법이 없습니다.

~에 따르면rpm 4.9.0 릴리스 노트, SELinux 정책 관리에 대한 일부 지원은 rpm에서 직접 제공되지만 역사적으로 이는 중단되었습니다.

  • 이전 버전의 RPM은 SELinux 정책을 패킷 헤더에 추가하기 위한 사양에서 %policy 지시문을 지원했지만 실제로는 어떤 용도로도 사용되지 않았습니다. 사양에서 %policy 지시어를 사용하면 제거해야 합니다. 이 사용되지 않은 지시어는 RPM 4.9.0 이상으로 빌드하는 것을 방지하고 이전 버전에서는 아무 작업도 수행하지 않기 때문입니다.
  • RPM 4.9.0부터 SELinux 정책 패키징은 사양의 새로운 %sepolicy 섹션을 통해 지원됩니다. 이러한 패키지는 빌드할 수 없지만 이전 RPM 버전에도 설치할 수 있습니다(그러나 포함된 정책은 어떤 방식으로도 사용되지 않습니다).

거기에는 파일 컨텍스트에 대한 언급이 없으며 직접 파일 컨텍스트 지원에 대한 언급도 찾을 수 없습니다(참고 자료 섹션 %attr참조 %files). 어쨌든 RHEL 6은 rpm 4.8.0만 지원하는 것 같습니다. 따라서 (뭔가 빠진 것이 없는 한) 이 semanage경로는 적어도 RHEL 7까지는 할 수 있는 것입니다.

관련 정보