NFS에는 다른 필수 액세스 제어 또는 MAC 레이블이 있고, httpd에는 다른 필수 액세스 제어 또는 MAC 레이블이 있으며, SaMBa에는 다른 필수 액세스 제어 또는 MAC 레이블이 있습니다. 요즘에는 Restorecon을 통해 적절하게 레이블을 다시 지정하고 서버 측의 세 서비스 모두에서 성공적으로 액세스할 수 있으며 시스템 업데이트 후에도 유지되도록 서버에서 단일 공유 파일 시스템 계층을 표시하는 올바른 방법은 무엇입니까?
즉, 서버측 fs 계층 구조가 NFS를 통해 공유되는 것으로 표시되면 동일한 서버에 있는 httpd 및 smb 데몬의 액세스가 중단됩니다. httpd로 표시되면 파일이 httpd로만 표시되어 읽기 및 쓰기가 거부되므로 NFS 및 SMB 서비스는 공유를 중지합니다. 마지막으로 SMB 태그는 NFS 및 httpd 서비스를 중단시킵니다.
이 문제를 해결하기 위해 Ansible 재생 목록과 같은 최신 DevOps 방법을 채택하고 있습니까? 이전에 맞춤형 라벨을 만들었지만 시스템 업데이트 후 다시 제작해야 했기 때문에 마찰이 너무 많았습니다. 맞춤 태그의 경우에는 여전히 해당되지만 이제는 자동화를 사용하는 경우가 궁금하십니까?
답변1
NFS 서버가 NFSv4.2에서 "security_label"을 지원하는 경우 SELinux 레이블에 대한 확장 속성을 지원하는 내보내기를 생성할 수 있습니다. 나는 작동하는 smb 구현에 대해 알지 못합니다(아마도 SMB3의 Posix 확장이 미래에 이를 얻을 수 있을까요?).
그렇지 않고 특정 레이블을 갖기 위해 NFS를 통해 마운트된 특정 디렉토리가 필요한 경우 context="mylabel_t" 마운트 옵션을 사용하십시오. 해당 공유에서 제공하는 모든 파일 및 디렉터리에 대한 컨텍스트를 갖게 됩니다.
SELinux 정책에는 다양한 서비스에 대한 부울 값도 있으므로 nfs 및 smb 공유에서 읽을 수 있습니다.
편집하다: nfs, smb 및 http를 통해 디렉토리(/data라고 함)를 내보내려면 public_content_t를 사용해 보십시오.
# semanage fcontext -a -t public_content_t "/data(/.*)?"
# restorecon -F -R -v /data