명령어/Linux

[RHEL] setfiles 스펙 파일로 라벨 일괄 적용

jykim23 2026. 8. 16. 16:33
반응형

부제: file_contexts 스펙을 지정해 경로에 라벨을 붙인다

# 스펙 파일과 대상 경로를 넘겨 라벨 적용
setfiles -n -v /etc/selinux/targeted/contexts/files/file_contexts /srv
Would relabel /srv/demo.txt from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:var_t:s0

setfiles는 restorecon의 원형에 해당하는 저수준 도구다. 어떤 file_contexts 스펙 파일을 쓸지 첫 인자로 명시하고, 그 규칙대로 대상 경로에 라벨을 적용한다. restorecon이 현재 정책의 기본 스펙을 자동으로 쓰는 반면, setfiles는 스펙 파일을 직접 골라 준다는 점이 다르다. -n은 변경 없이 미리보기, -v는 상세 출력이다.

주로 정책을 새로 설치하거나 파일시스템을 처음 라벨링할 때, 그리고 뒤에 나올 fixfiles가 내부에서 호출하는 엔진으로 쓰인다. 데비안 AppArmor에는 파일 라벨링 단계가 없어 대응 명령이 없다. AppArmor 프로파일 로드는 apparmor_parser가 맡는데 그건 파일이 아니라 프로그램 규칙을 커널에 올리는 일이다.

이렇게도 쓴다

기본 스펙 파일을 변수로 잡아 두고 미리보기로 확인한다.

SPEC=/etc/selinux/targeted/contexts/files/file_contexts; setfiles -n -v $SPEC /srv

 

현재 라벨이 스펙과 맞는지 검증만 한다(변경 없음).

setfiles -c /etc/selinux/targeted/policy/policy.* /etc/selinux/targeted/contexts/files/file_contexts

 

특정 스펙으로 재귀 적용 대상을 미리 확인하고 개수를 센다(조합용).

setfiles -n -v /etc/selinux/targeted/contexts/files/file_contexts /srv | grep -c relabel
반응형