Restorecon은 링크를 어떻게 처리합니까?

Restorecon은 링크를 어떻게 처리합니까?

나는 이 규칙을 알아차렸다.

/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 레이블은 대상(대상 레이블을 기반으로 제어됨)이 아닌 기호 링크에 대한 액세스(즉, 링크 해제, 이름 바꾸기 또는 읽기 기능)만 제어합니다.

따라서...추가 규칙이 없는 한,심볼릭 링크(대부분) 권한에 구애받지 않음표적당신이 관심을 갖는 것.

관련 정보