명령어/Linux

[RHEL] sediff 두 SELinux 정책의 차이 비교

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

부제: 정책 두 개를 의미 단위로 대조해 무엇이 늘고 줄었는지 본다

sediff POLICY1 POLICY2            # 두 정책의 전체 차이
sediff --stats POLICY1 POLICY2    # 통계만 요약
sediff --bool POLICY1 POLICY2     # 불린 차이만
usage: sediff [-h] [--version] [--stats] [-v] [--debug] [--common] [-c] [-t]
              ... POLICY1 POLICY2

SELinux policy semantic difference tool.

positional arguments:
  POLICY1             Path to the first SELinux policy to diff.
  POLICY2             Path to the second SELinux policy to diff.

sediff는 두 개의 SELinux 정책을 받아 의미(semantic) 단위로 차이를 계산하는 도구다. 텍스트 diff와 달리 규칙의 뜻을 이해하고 비교하므로, 순서만 바뀐 규칙은 같다고 보고 실제로 허용/거부가 달라진 부분만 짚어 준다. 정책을 업데이트하기 전후를 비교해 "이번 패치가 무엇을 바꿨나"를 검증하거나, 커스텀 정책과 배포판 기본 정책의 차이를 확인할 때 쓴다. 인자로는 컴파일된 정책 파일(예: /etc/selinux/targeted/policy/policy.33이나 실행 중인 /sys/fs/selinux/policy)을 준다. 전체 정책 비교는 파싱·계산 부담이 커서 시간이 꽤 걸리니, --stats나 컴포넌트 옵션으로 범위를 좁히면 빠르다. setools-console에 들어 있다.

이렇게도 쓴다

바뀐 규칙 개수 등 요약 통계만 빠르게 본다.

sediff --stats /etc/selinux/targeted/policy/policy.33 /sys/fs/selinux/policy

 

불린 정의의 차이만 좁혀 비교한다.

sediff --bool old_policy new_policy

 

타입과 속성 차이만 골라 본다(여러 컴포넌트 조합).

sediff -t -a old_policy new_policy

 

allow 규칙 차이만 추린다.

sediff --allow old_policy new_policy

 

두 정책의 공통점까지 함께 출력한다.

sediff --common old_policy new_policy
반응형