RHEL 6.5에서 SELinux(허용 모드)를 실행 중인데 denied
audit.log에 이상한 오류가 표시됩니다. 추측되는 것은netutils_t프로세스 유형은 initrc_tmp_t 유형으로 표시된 파일을 관리할 수 있지만 제 생각에는 그렇지 않은 것 같습니다. 자세한 내용은 다음과 같습니다.
tcpdump
gzip으로 압축된 pcap 파일을 실행하고 보조 드라이브(/mydrive에 마운트됨)에 쓰는 init 스크립트가 있습니다 . 저장된 pcap 로그 파일의 전체 경로는 /mydrive/Logs/Netlog_입니다.날짜.pcap.gz.
를 사용했기 semanage
때문에 restorecon
/mydrive/Logs/의 모든 새 파일은 initrc_tmp_t로 표시됩니다.
semanage fcontext --add --type initrc_tmp_t "/mydrive/Logs(/.*)?"
restorecon -r -v /mydrive/Logs
ls -Z
후속 실행 시 내 스크립트에 의해 생성된 /mydrive/Logs의 새 pcap.gz 파일에 예상대로 initrc_tmp_t 태그가 지정된 것으로 보입니다.
그러나 audit.log 파일에는 denied
몇 가지 불만 사항이 표시됩니다.
type=AVC msg=audit(1469228718.525:138): avc: denied { open } for pid=1535 comm="tcpdump" name="Netlog_07-22-2016_23-05-18.pcap.gz" dev=sdb1 ino=12845323 scontext=system_u:system_r:netutils_t:s0 tcontext=system_u:object_r:initrc_tmp_t:s0 tclass=file
audit2why
보여주다:
Missing type enforcement (TE) allow rule.
audit2allow
보여주다:
#============= netutils_t =============
allow netutils_t initrc_tmp_t:file open;
왜 이런 일이 발생하는지 아시나요? 매뉴얼 페이지에 따르면 netutils_t는 이미 initrc_tmp_t를 열 수 있어야 합니다.