Tengo un servidor que ejecuta PC-BSD (FreeBSD) 10 y almacenamiento puramente ZFS. Creé una cárcel con Warden e instalé Samba 4. Proporcioné un dominio, usando las opciones para ntvfs y rfc2307 como se recomienda para configuraciones FreeBSD+ZFS. Estoy usando dos zpools en mi configuración. El primer zpool tiene un par de unidades de 1 TB reflejadas y contiene todos los volúmenes del sistema operativo y cualquier cárcel que configuré. El segundo zpool tiene cuatro pares de unidades de 4 TB que proporcionan almacenamiento masivo. Los volúmenes asignados desde este segundo zpool se encarcelan y se montan en la cárcel que configuré para Samba. Todo lo relacionado con esta configuración funciona bien, excepto las ACL. He incluido las siguientes opciones en mi archivo smb4.conf, que si entiendo las cosas correctamente, deberían permitir a Samba usar ACL de ZFS para almacenar permisos de Windows:
objetos vfs = zfsacl
nfs4:mode = especial
mfs4:acedup = fusionar
nfs4:chwon = yes
También configuré aclmode=passthrough y aclinherit=passthrough en todos los volúmenes ZFS que comparte Samba. Sin embargo, independientemente de lo que intente, las ACL de ZFS se ignoran. Los usuarios de Samba son visibles (puedo iniciar sesión usando mi nombre de usuario y contraseña de Samba, mi nombre de usuario aparece en los listados de directorios) y puedo asignar permisos ACL para otros usuarios de Samba a archivos usando el comando setfacl. Sin embargo, Samba ignora por completo las ACL de ZFS y todas las ACL de Windows se almacenan en un atributo extendido user.NTACL. Me gustaría que los permisos de Windows se almacenen en las ACL de ZFS para que el acceso sea coherente entre los usuarios que inician sesión a través de SSH y los usuarios que acceden a los recursos compartidos a través de Windows.
Estoy seguro de que esto es solo el resultado de que me falta algún parámetro u opción pequeño pero crucial en alguna parte, y espero que alguien pueda orientarme en el camino correcto. Si necesita más información sobre mi sistema, hágamelo saber y la publicaré.
EDITAR
Bueno, después de varios días más de búsqueda intensa en línea, parece que encontré el problema: estaba usando NTVFS en lugar de S3FS. Cuando estaba configurando mi servidor Samba hace muchos meses, tuve problemas con el script de provisión del dominio fallando debido a ZFS. La solución fue agregar la opción "--use-ntvfs" como se menciona en varias guías diferentes. Es posible que esta fuera una opción necesaria para la versión de Samba4 que estaba vigente en el momento de la instalación, pero parece que el módulo zfsacl no funciona con NTVFS en la versión que estoy ejecutando ahora (4.0.25). Al cambiar mi archivo smb4.conf para usar S3FS, el módulo zfsacl de repente comenzó a funcionar.
TL;DR: use S3FS, no NTVFS con el módulo zfsacl