운영 체제를 다시 설치한 후 로컬 selinux 컨텍스트를 다시 생성합니다.

운영 체제를 다시 설치한 후 로컬 selinux 컨텍스트를 다시 생성합니다.

"semanage fcontext ..." 명령을 통해 SELinux에 몇 가지 특정 컨텍스트를 추가했습니다. 이러한 스키마는 /etc/selinux/targetd/contexts/files/file_contexts.local에 저장됩니다.

다른 머신에서 동일한 권한을 얻고 싶거나 해당 머신에 운영 체제를 다시 설치해야 한다고 가정해 보겠습니다. file_contexts.local을 올바른 위치에 두는 것으로 충분할까요? SELinux 프로세스를 활성화하고 이 파일을 사용하기 위해 수행해야 하는 추가 단계가 있습니까?

운영 체제: RHEL 6.7

감사합니다!

답변1

/etc/selinux/targetd/contexts/files/file_contexts.local파일을 복사하는 것 외에도 restorecon해당 파일에서 참조되는 디렉터리 및 파일에 대해 명령을 실행 해야 합니다 /etc/selinux/targetd/contexts/files/file_contexts.local.

이를 수행하는 쉬운 방법(SELinux 기본값에 의해 참조되는 시스템의 모든 파일에 대한 SELinux 컨텍스트도 설정함 /etc/selinux/targetd/contexts/files/file_contexts)은 다음 명령을 실행하는 것입니다.

$ sudo restorecon -R /

노트: 이 플래그는 하위 디렉터리와 파일로 재귀하여 및 files 에 정의된 -R대로 시스템에 있는 모든 파일의 컨텍스트를 복원한다는 의미입니다 .file_contextfile_context.local

편집하다:Sourcejedi가 댓글에서 현명하게 지적했듯이. 전체 파일 시스템에서 실행하면 restorecon이를 지원하지 않는 파일 시스템(예: 마운트된 드라이브 등)의 레이블을 변경하려고 시도할 수 있습니다. 이 문제를 방지하려면 이 명령을 사용할 수 있습니다 fixfiles restore.

fixfiles매뉴얼 페이지 에서 :

By default it will relabel all mounted ext2, ext3, xfs and jfs file systems as 
long as they do not have a security context mount option. The file 
/etc/selinux/fixfiles_exclude_dirs can contain a list of directories 
excluded from relabeling.

fixfiles onboot또한 다음 재부팅 시 다시 표시하는 데 사용할 수도 있습니다 .

마찬가지로 touch /.autorelabel && reboot재부팅 중에 files/의 레이블이 다시 지정됩니다.

관련 정보