4.9. 파일 시스템 마운트


기본적으로 확장 속성을 지원하는 파일 시스템이 마운트되면 각 파일의 보안 컨텍스트는 파일의 security.selinux 확장 특성에서 가져옵니다. 확장 특성을 지원하지 않는 파일 시스템의 파일에는 파일 시스템 유형에 따라 정책 구성에서 하나의 기본 보안 컨텍스트가 할당됩니다.
mount -o context 명령을 사용하여 기존 확장 속성을 재정의하거나 확장 속성을 지원하지 않는 파일 시스템에 대해 다른 기본 컨텍스트를 지정합니다. 이 기능은 여러 시스템에서 사용되는 이동식 미디어와 같이 올바른 속성을 제공하기 위해 파일 시스템을 신뢰하지 않는 경우에 유용합니다. mount -o context 명령을 사용하여 파일 할당 테이블(FAT) 또는 NFS 볼륨과 같은 확장된 속성을 지원하지 않는 파일 시스템의 레이블을 지원할 수도 있습니다. 컨텍스트 옵션으로 지정된 컨텍스트 는 디스크에 작성되지 않습니다. 원래 컨텍스트가 유지되며, 파일 시스템에 첫 번째 위치에서 확장된 속성이 있는 경우 컨텍스트 없이 마운트할 때 표시됩니다.
파일 시스템 레이블 지정에 대한 자세한 내용은 James Morris의 "SELinux의 파일 시스템 레이블 지정" 문서를 참조하십시오 http://www.linuxjournal.com/article/7426.

4.9.1. 컨텍스트 마운트

지정된 컨텍스트를 사용하여 파일 시스템을 마운트하려면 기존 컨텍스트를 덮어쓰거나 확장 속성을 지원하지 않는 파일 시스템의 다른 기본 컨텍스트를 지정하려면 root 사용자로 필요한 파일 시스템을 마운트할 때 mount -o context=SELinux_user:type:level 명령을 사용합니다. 컨텍스트 변경 사항은 디스크에 기록되지 않습니다. 기본적으로 클라이언트쪽의 NFS 마운트는 NFS 볼륨의 정책에서 정의한 기본 컨텍스트로 레이블이 지정됩니다. 일반적인 정책에서 이 기본 컨텍스트는 nfs_t 유형을 사용합니다. 추가 마운트 옵션이 없으면 Apache HTTP 서버와 같은 다른 서비스를 사용하여 NFS 볼륨을 공유하지 못하게 할 수 있습니다. 다음 예제에서는 Apache HTTP 서버를 사용하여 공유할 수 있도록 NFS 볼륨을 마운트합니다.
~]# mount server:/export /local/mount/point -o \ context="system_u:object_r:httpd_sys_content_t:s0"
Copy to Clipboard Toggle word wrap
이 파일 시스템에서 새로 생성된 파일과 디렉터리에 -o 컨텍스트로 지정된 SELinux 컨텍스트가 있는 것처럼 나타납니다. 그러나 이러한 변경 사항은 디스크에 작성되지 않으므로 이 옵션과 함께 지정된 컨텍스트는 마운트 간에 유지되지 않습니다. 따라서 필요한 컨텍스트를 유지하려면 마운트할 때마다 이 옵션을 동일한 컨텍스트와 함께 사용해야 합니다. 컨텍스트 마운트를 영구적으로 만드는 방법에 대한 자세한 내용은 4.9.5절. “컨텍스트 마운트 영구 설정” 을 참조하십시오.
유형 적용은 SELinux 대상 정책에 사용되는 기본 권한 제어입니다. 대부분의 경우 SELinux 사용자와 역할을 무시할 수 있으므로 -o 컨텍스트를 사용하여 SELinux 컨텍스트를 재정의하고 SELinux system_u user 및 object_r 역할을 사용하고 유형에 중점을 둘 수 있습니다. MLS 정책 또는 다중 범주 보안을 사용하지 않는 경우 s0 수준을 사용합니다.
참고
파일 시스템을 컨텍스트 옵션으로 마운트하면 사용자와 프로세스의 컨텍스트 변경이 금지됩니다. 예를 들어 컨텍스트 옵션으로 마운트된 파일 시스템에서 chcon 명령을 실행하면 Operation not supported 오류가 발생합니다.

4.9.2. 기본 문맥 변경

4.8절. “file_t 및 default_t 유형” 에서 언급했듯이 확장 속성을 지원하는 파일 시스템에서는 디스크의 SELinux 컨텍스트가 없는 파일에 액세스하면 SELinux 정책에 정의된 기본 컨텍스트가 있는 것처럼 처리됩니다. 일반적인 정책에서 이 기본 컨텍스트는 file_t 유형을 사용합니다. 다른 기본 컨텍스트를 사용하려면 defcontext 옵션을 사용하여 파일 시스템을 마운트합니다.
다음 예제에서는 새로 생성된 test/ 디렉터리에 새로 생성된 파일 시스템을 /dev/sda2 에 마운트합니다. /etc/selinux/targeted/contexts/files/test/ 디렉터리에 대한 컨텍스트를 정의하는 규칙이 없는 것으로 가정합니다.
~]# mount /dev/sda2 /test/ -o defcontext="system_u:object_r:samba_share_t:s0"
Copy to Clipboard Toggle word wrap
이 예에서는 다음을 수행합니다.
  • defcontext 옵션은 system_u:object_r:samba_share_t:s0 이 "지정되지 않은 파일의 기본 보안 컨텍스트"임을 정의합니다.[5].
  • 마운트 시 파일 시스템의 루트 디렉터리(test/)는 defcontext 에서 지정한 컨텍스트로 레이블이 지정된 것처럼 처리됩니다(이 레이블은 디스크에 저장되지 않음). test/: 새 파일은 samba_share_t 유형을 상속하며 이러한 레이블은 디스크에 저장됩니다.
  • 파일 시스템이 defcontext 옵션으로 마운트되는 동안 test/ 에서 생성된 파일은 레이블을 유지합니다.

4.9.3. NFS 볼륨 마운트

기본적으로 클라이언트쪽의 NFS 마운트는 NFS 볼륨의 정책에서 정의한 기본 컨텍스트로 레이블이 지정됩니다. 일반적인 정책에서 이 기본 컨텍스트는 nfs_t 유형을 사용합니다. 정책 구성에 따라 Apache HTTP Server 및 MariaDB와 같은 서비스는 nfs_t 유형으로 레이블이 지정된 파일을 읽지 못할 수 있습니다. 이렇게 하면 이 유형으로 레이블이 지정된 파일 시스템이 마운트되지 않은 다음 다른 서비스에서 읽거나 내보내지 못하게 할 수 있습니다.
NFS 볼륨을 마운트하고 다른 서비스로 해당 파일 시스템을 읽거나 내보내려면 마운트 시 nfs_t 유형을 재정의할 때 컨텍스트 옵션을 사용합니다. 다음 컨텍스트 옵션을 사용하여 Apache HTTP 서버를 사용하여 공유할 수 있도록 NFS 볼륨을 마운트합니다.
~]# mount server:/export /local/mount/point -o context="system_u:object_r:httpd_sys_content_t:s0"
Copy to Clipboard Toggle word wrap
이러한 변경 사항은 디스크에 작성되지 않으므로 이 옵션과 함께 지정된 컨텍스트는 마운트 간에 유지되지 않습니다. 따라서 필요한 컨텍스트를 유지하려면 마운트할 때마다 이 옵션을 동일한 컨텍스트와 함께 사용해야 합니다. 컨텍스트 마운트를 영구적으로 만드는 방법에 대한 자세한 내용은 4.9.5절. “컨텍스트 마운트 영구 설정” 을 참조하십시오.
컨텍스트 옵션을 사용하여 파일 시스템을 마운트하는 대신 부울을 활성화하여 nfs_t 유형으로 레이블이 지정된 파일 시스템에 대한 서비스 액세스를 허용할 수 있습니다. nfs_t 유형에 대한 서비스 액세스를 허용하도록 부울 구성 방법에 대한 지침은 II 부. 제한된 서비스 관리 를 참조하십시오.

4.9.4. 여러 NFS 마운트

동일한 NFS 내보내기에서 여러 마운트를 마운트할 때 각 마운트의 SELinux 컨텍스트를 다른 컨텍스트로 재정의하려고 하면 후속 마운트 명령이 실패합니다. 다음 예에서 NFS 서버에는 두 개의 하위 디렉터리 web/database/ 가 있는 단일 내보내기인 export/ 가 있습니다. 다음 명령은 단일 NFS 내보내기에서 두 개의 마운트를 시도하고 각각에 대한 컨텍스트를 재정의합니다.
~]# mount server:/export/web /local/web -o context="system_u:object_r:httpd_sys_content_t:s0"
Copy to Clipboard Toggle word wrap
~]# mount server:/export/database /local/database -o context="system_u:object_r:mysqld_db_t:s0"
Copy to Clipboard Toggle word wrap
두 번째 mount 명령이 실패하고 다음 명령은 /var/log/messages:에 기록됩니다.
kernel: SELinux: mount invalid.  Same superblock, different security settings for (dev 0:15, type nfs)
Copy to Clipboard Toggle word wrap
마운트마다 다른 컨텍스트가 있는 단일 NFS 내보내기에서 여러 마운트를 마운트하려면 -o nosharecache,context 옵션을 사용합니다. 다음 예제에서는 마운트마다 다른 컨텍스트를 사용하여 단일 NFS 내보내기에서 여러 마운트를 마운트합니다(각 각각에 단일 서비스 액세스 허용).
~]# mount server:/export/web /local/web -o nosharecache,context="system_u:object_r:httpd_sys_content_t:s0"
Copy to Clipboard Toggle word wrap
~]# mount server:/export/database /local/database -o \ nosharecache,context="system_u:object_r:mysqld_db_t:s0"
Copy to Clipboard Toggle word wrap
이 예에서 server:/export/webhttpd_sys_content_t 유형으로 레이블이 지정된 모든 파일과 함께 /local/web/ 디렉터리에 로컬로 마운트되어 Apache HTTP Server 액세스를 허용합니다. server:/export /database mysqld_db_t 유형으로 레이블이 지정된 모든 파일과 함께 로컬로 마운트됩니다. 이러한 유형 변경 사항은 디스크에 기록되지 않습니다.
중요
nosharecache 옵션을 사용하면 다른 컨텍스트(예: /export/web/ 마운트)를 여러 번 사용하여 내보내기의 동일한 하위 디렉터리를 여러 번 마운트할 수 있습니다. 다른 컨텍스트에서 파일에 액세스할 수 있는 중복 마운트를 생성하므로 내보내기에서 동일한 하위 디렉터리를 여러 번 마운트하지 마십시오.

4.9.5. 컨텍스트 마운트 영구 설정

다시 마운트 및 재부팅할 때마다 컨텍스트를 영구적으로 마운트하려면 /etc/fstab 파일 또는 Cryostat 맵의 파일 시스템에 대한 항목을 추가하고 필요한 컨텍스트를 마운트 옵션으로 사용합니다. 다음 예제에서는 NFS 컨텍스트 마운트의 경우 /etc/fstab 에 항목을 추가합니다.
server:/export /local/mount/ nfs context="system_u:object_r:httpd_sys_content_t:s0" 0 0
Copy to Clipboard Toggle word wrap


[5] Morris, James. "SELinux에서 파일 시스템 레이블 지정". 2004년 10월 1일 게시됨. 2008년 10월 14일 확인됨: http://www.linuxjournal.com/article/7426.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat