SELinux(예: Cent-OS)를 사용하는 시스템에 ecryptfs를 마운트하려고 하며 모든 개별 기본 파일의 보안 레이블을 보존하고 싶습니다. 명령을 사용하면 mount -o
모든 파일에 대한 보안 레이블을 설정할 수 있습니다.
mount -t ecryptfs /var/lib/mysql /var/lib/mysql -o context="system_u:object_r:mysqld_db_t:s0"
이것은 내가 원하는 것이 아닙니다. 내가 아는 한, ecryptfs는 확장된 속성과 및 ecryptfs 커널 모듈의 파일 ecryptfs_setxattr
에 정의된 기능을 지원합니다. 또한 options 을 살펴보면 이것이 바로 내가 원하는 것입니다.ecryptfs_getxattr
inode.c
man mount
fscontext
fscontext= 옵션은 xattr 지원에 관계없이 모든 파일 시스템에 적용됩니다. fscontext 옵션은 전체 파일 시스템 레이블을 특정 보안 컨텍스트로 설정합니다. 이 파일 시스템 레이블은 파일의 개별 레이블과 별개입니다. 설치나 파일 생성 등 전체 파일 시스템을 대신하여 특정 유형의 권한 확인을 수행합니다.개별 파일 태그는 여전히 파일 자체의 xattr에서 가져옵니다.개별 파일에 대해 동일한 레이블을 제공하는 것 외에도 context 옵션은 실제로 fscontext에서 제공하는 집계 컨텍스트를 설정합니다.
또는 다음 명령
mount -t ecryptfs /var/lib/mysql /var/lib/mysql -o fscontext="system_u:object_r:mysqld_db_t:s0"
system_u:object_r:mysqld_db_t:s0
원본 레이블이 있는 파일을 포함하여 모든 파일의 SELinux 레이블을 로 변경합니다 ./var/lib/mysql/mysql.sock
system_u:object_r:mysqld_var_run_t:so
내 질문:
1) ecryptfs를 디렉토리에 마운트하고 각 파일의 보안 레이블(예: SELinux 레이블)을 보존하는 방법은 무엇입니까?
mount -o fscontext
2) ecryptfs가 예상대로 작동하지 않는 이유는 무엇입니까?
노트: mysql 디렉토리를 예로 사용했고 SELinux에 정책 모듈을 추가하고 그 위에 설치된 ecryptfs와 mysqld가 작동하도록 할 수 있었습니다. 여기서는 ecryptfs를 SELinux에 투명하게 만드는 일반적인 솔루션을 요청합니다.