나는 이 규칙을 알아차렸다.
/usr/sbin/shutdown -- gen_context(system_u:object_r:shutdown_exec_t,s0)
레이블은 /usr/sbin/shutdown
shutdown_exec_t
언제 /usr/sbin
디렉토리입니까? 그러나 /usr/sbin
심볼릭 링크가 있고 bin
안에 shutdown
있으면 동일한 레이블을 복원하지 않습니다 /usr/bin
. 왜? /usr/sbin
심볼릭 링크인 경우 올바른 컨텍스트에 있어야 하는 파일을 bin
제공하는 쉬운 방법이 있습니까 ?/usr/sbin
inode에 2개의 하드 링크가 있고 경로의 기본 파일 컨텍스트가 다른 경우 결과 파일 컨텍스트는 주어진 path 에 따라 달라질 것 같습니다 restorecon
. 전체 파일 시스템의 레이블을 다시 지정하면 어떤 컨텍스트를 갖게 됩니까? 결정론적인가요? 이 방법으로 처리해도 될까요? 이게 좋은가요?
답변1
restorecon
아니요다루다심볼릭 링크는 파일과 마찬가지로 작동합니다. ~에 따르면매뉴얼 페이지(조금 오래되었지만 시작점으로 매우 유용합니다):
노트
Restorecon은 심볼릭 링크를 따르지 않습니다.
이것은 버그 보고서에서 관찰되었습니다.버그 825221: Restorecon은 심볼릭 링크에 대한 사용자 정의 규칙을 무시합니다., 다음과 같은 관련 설명이 포함되어 있습니다.
- 다니엘 월시2012-05-29 13:54:13 EDT
F17에서 이 문제를 해결했습니다.
- 다니엘 월시2012-08-15 14:01:52 EDT
Restorecon은 파일의 실제 경로를 수행하므로 실제 경로로 파일을 변환합니다. 이는 파일의 레이블이 잘못 지정되는 심볼릭 링크 공격을 방지하기 위해 수행됩니다.
- 카렐 슬로트 2012-08-23 06:14:05 EDT
방금 RHEL6.3 및 Fedora 17에서 테스트했습니다.
RHEL6에서 Restorecon은 기호 링크의 컨텍스트를 복원하지 않습니다(기호 링크가 실제 프로젝트인 경우). Fedora 17에서는 컨텍스트가 복원되었습니다. 나는 이것이 #c6에서 언급된 문제라고 생각합니다.
댄, 이 문제가 해결되고 있는지 확인해 주실 수 있나요? 감사해요.
- 미로슬라프 그레이펠2012-08-23 09:59:41 EDT
알겠습니다. 정책에서 오류를 발견했습니다. RHEL6에는 다음 규칙이 없습니다.
allow setfiles_t file_type : lnk_file { read getattr relabelfrom relabelto } ;
우리는 그냥
allow setfiles_t file_type : lnk_file { getattr relabelfrom relabelto } ;
selinux-policy
그래서 이 오류를 구성 요소 로 전환했습니다 .
나중에 (2015)심볼릭 링크에서 Restorecon 사용에 대한 몇 가지 질문, Stephen Smalley는 다음과 같이 말했습니다.
예, 서로 다른 inode로 해석됩니다(Symlink는 대상과 관계없이 Linux에서 자체 파일/inode입니다).기호 링크 SELinux 레이블은 대상(대상 레이블을 기반으로 제어됨)이 아닌 기호 링크에 대한 액세스(즉, 링크 해제, 이름 바꾸기 또는 읽기 기능)만 제어합니다.
따라서...추가 규칙이 없는 한,심볼릭 링크(대부분) 권한에 구애받지 않음표적당신이 관심을 갖는 것.