저는 PC-BSD(FreeBSD) 10과 순수 ZFS 저장소를 실행하는 서버를 가지고 있습니다. Warden으로 감옥을 만들고 Samba 4를 설치했습니다. FreeBSD+ZFS 설정에 권장되는 대로 ntvfs 및 rfc2307 옵션을 사용하여 도메인을 프로비저닝했습니다. 내 설정에서는 두 개의 zpool을 사용하고 있습니다. 첫 번째 zpool에는 미러링된 1TB 드라이브 쌍이 있으며 운영 체제에 대한 모든 볼륨과 내가 설정한 감옥이 포함되어 있습니다. 두 번째 zpool에는 대용량 스토리지를 제공하는 4쌍의 4TB 드라이브가 있습니다. 이 두 번째 zpool에서 할당된 볼륨은 Samba용으로 설정한 감옥에 갇혀 마운트됩니다. ACL을 제외하고 이 설정에 관한 모든 것이 잘 작동합니다. smb4.conf 파일에 다음 옵션을 포함시켰습니다. 올바르게 이해했다면 Samba가 ZFS ACL을 사용하여 Windows 권한을 저장할 수 있도록 허용해야 합니다.
vfs 객체 = zfsacl
nfs4:mode = 특수
mfs4:acedup = 병합
nfs4:chwon = 예
또한 Samba가 공유하는 모든 ZFS 볼륨에 대해 aclmode=passthrough 및 aclinherit=passthrough를 설정했습니다. 그러나 내가 무엇을 시도하든 ZFS ACL은 무시됩니다. Samba 사용자가 표시되며(내 Samba 사용자 이름과 비밀번호를 사용하여 로그인할 수 있으며 내 사용자 이름이 디렉토리 목록에 표시됩니다.) setfacl 명령을 사용하여 다른 Samba 사용자의 ACL 권한을 파일에 할당할 수 있습니다. 그러나 Samba는 ZFS ACL을 완전히 무시하고 모든 Windows ACL은 확장 속성 user.NTACL에 저장됩니다. SSH를 통해 로그인한 사용자와 Windows를 통해 공유에 액세스하는 사용자 간에 액세스가 일관되도록 Windows 권한을 ZFS ACL에 저장하고 싶습니다.
나는 이것이 단지 작지만 중요한 매개 변수나 옵션을 어딘가에서 놓친 결과일 뿐이라고 확신하며 누군가가 나를 올바른 길로 인도할 수 있기를 바랍니다. 내 시스템에 대한 추가 정보가 필요한 경우 알려주시면 게시해 드리겠습니다.
편집하다
글쎄, 며칠 동안 온라인에서 집중적으로 검색한 후에 문제를 발견한 것 같습니다. 저는 S3FS 대신 NTVFS를 사용하고 있었습니다. 몇 달 전에 Samba 서버를 설정할 때 ZFS로 인해 도메인 제공 스크립트가 실패하는 문제에 직면했습니다. 해결책은 다양한 가이드에서 언급한 대로 "--use-ntvfs" 옵션을 추가하는 것이었습니다. 설치 당시 최신 버전이었던 Samba4 버전에 꼭 필요한 옵션이었을 가능성이 있지만, 현재 실행 중인 버전(4.0.25)에서는 zfsacl 모듈이 NTVFS와 작동하지 않는 것 같습니다. 대신 S3FS를 사용하도록 smb4.conf 파일을 변경하면 zfsacl 모듈이 갑자기 해당 작업을 수행하기 시작했습니다.
TL;DR - zfsacl 모듈과 함께 NTVFS가 아닌 S3FS를 사용하십시오.