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


14

RHEL4와 5를 대상으로하는 RPM을 만들려고합니다. 지금 전화 chcon를 걸지만 %post여러 Google 항목에서 "그렇게해야 할 방법이 아닙니다"라는 말이 올바른 방법으로 제한되어 있습니다. 또한 fixfiles -R mypackage check파일이 정확할 때 파일이 잘못되었다는 것을 알았 습니다 (예상대로; RPM DB는 내가 원하는 것을 인식하지 못합니다).

  • 그것 때문에 내가 특별히 RHEL4 말을 하지semanage그것을 할 수있는 적절한 방법 중 하나가 될 것으로 보인다. (새 정책을 추가 한 후 restorecon디렉토리에서 실행 하십시오 %post.)

    • 또한 httpd_cache_t비표준 디렉토리에 내 컨텍스트가 필요하지 않습니다 .
  • 또한 "보자"를 보았습니다. cpio그러나 루트가 아닌 RPM 건물 사용자가 chcon빌드 디렉토리에서 실행할 수 없다는 새로운 문제가 있습니다 . 나는 속임수를 쓰고 sudo사양 파일에 있었지만 어쨌든 중요하지 않은 것 같습니다.

답변:


9

페도라 포장 가이드 라인 패키지로 SELinux를 처리하는 방법을 설명하는 초안을 가지고, 그들은 사용 semanage. 이 없으면 semanageRHEL 4를 지원하는 것이 해킹이 될 것으로 보이며 그 해결 방법은 없습니다.

rpm 4.9.0 릴리스 정보 에 따르면 SELinux 정책 관리를 위해 rpm에서 직접 지원이 있었지만 역사적으로 깨졌습니다.

  • 이전 버전의 RPM은 SELinux 정책을 패키지 헤더에 첨부 할 때 % policy 지시문을 지원했지만 실제로는 사용할 수 없었습니다. 이 미사용 지시문은 RPM 4.9.0 이상으로 빌드하는 것을 방지하면서 이전 버전에서는 아무 것도 수행하지 않으므로 스펙에서 % policy 지시문을 사용하지 않아야합니다.
  • RPM 4.9.0부터 SELinux 정책 패키징은 사양의 새로운 % sepolicy 섹션을 통해 지원됩니다. 이러한 패키지는 빌드 할 수 없지만 이전 RPM 버전에서도 설치할 수 있지만 포함 된 정책은 사용되지 않습니다.

거기에 파일 컨텍스트에 대한 언급이 없으며 섹션 %attr에서 와 같이 직접 파일 컨텍스트 지원에 대한 언급을 찾을 수 없었습니다 %files. 어쨌든 RHEL 6은 rpm 4.8.0에만있는 것처럼 보입니다. 따라서 (내가 무언가를 놓친 경우가 아니라면) semanageRHEL 7까지 최소한 우리가 할 수있는 것처럼 경로가 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.