압축이 풀린 squashfs 파일 시스템에서 SELinux 파일 시스템의 레이블을 어떻게 다시 지정할 수 있습니까?

압축이 풀린 squashfs 파일 시스템에서 SELinux 파일 시스템의 레이블을 어떻게 다시 지정할 수 있습니까?

라이브 부팅 데비안 시스템용으로 selinux를 구성하려고 합니다.

SELinux는 빌드 및 시스템 구성 중 많은 변경으로 인해 작동할 수 없으며 전체 파일 시스템에 레이블을 다시 지정해야 합니다. 이는 chroot 또는 systemd-nspawn 내부 또는 호스트 시스템에서 압축을 푼 squashfs 파일로 파일 시스템을 사용하여 빌드할 때 수행되어야 합니다.

이를 성공적으로 수행할 수 있는 방법은 아직 발견되지 않았습니다. /etc/selinux/default/contexts/files/file_contexts.subs_dist 파일은 파일 시스템 위치 뒤에 파일 시스템 대상의 별칭을 지정해야 하지만 이를 사용하여 SELinux 레이블 재지정 중에 호스트 파일 시스템을 압축이 풀린 스쿼시 시스템으로 리디렉션하려는 시도가 작동하지 않았습니다. SELinux 호스트 파일 시스템의 레이블을 계속 변경했으며 squashfs 파일 시스템은 알 수 없는 파일 형식으로 인용되었습니다.

squashfs에서 SELinux용 파일 시스템의 레이블을 변경하는 간단한 방법이 있습니까?

답변1

현재 이 문제에는 내가 찾을 수 있는 알려진 해결책이 없습니다. 하지만 쓰기 가능한 압축 해제된 squashfs에서 SELinux를 작동하는 것이 가능해야 한다고 확신합니다.

그렇지 않은 경우 라이브 빌드 솔루션 중 하나는 debootstrap을 사용하여 수동으로 빌드하는 것입니다. 이 단계에서는 isolinux 없이 squashfs나 iso 없이 커널과 패키지를 추가합니다. 그런 다음 이 쓰기 가능한 데비안을 USB 키로 부팅하거나 가상 게스트로 부팅하세요. 그런 다음 파일 시스템에 대해 SELinux 레이블 재지정을 실행하십시오. 이 작업이 완료되면 isolinux에서 squashfs, iso 및 일반적인 쓰기 불가능한 하이브리드 시스템으로 빌드 프로세스를 계속할 수 있습니다.

쓰기 가능한 방법은 다음과 같습니다.

https://vdmit.org/linux/debian-live-usb-debootstrap.html

유리하고 쓰기 불가능한 하이브리드 수동 빌드(데비안 라이브 빌드 스크립팅으로 자동화하려고 시도한 수동 방법)에 대한 개요는 다음과 같습니다.

https://l3net.wordpress.com/2013/09/21/how-to-build-a-debian-livecd/

이 방법의 유일한 단점은 라벨링이 정확하려면 부팅 가능한 하이브리드 시스템에서처럼 완전한 구성이 디부트스트랩 단계에 있어야 하며, 압축을 푼 스쿼시에 라벨을 다시 붙일 수 있는 방법이 계속해서 제공되지 않는다는 것입니다. 나는 squashfs가 빌드 후에 편집되어야 할 수도 있기 때문에 받아 들일 수 없다고 생각합니다.

물론 config-hooks를 사용하여 가져온 추가 개체에는 적절하거나 사용자 정의된 컨텍스트 또는 부팅 후 레이블이 지정된 허용 컨텍스트가 필요하지만 이는 RAM을 거의 소모하지 않는 사소한 작업입니다.

그렇지 않으면 이것은 여전히 ​​​​미해결 질문입니다.

관련 정보