¿Cómo puedo hacer que Windows modifique las ACL CIFS/ZFS 'correctamente'?

¿Cómo puedo hacer que Windows modifique las ACL CIFS/ZFS 'correctamente'?

Tengo un sistema FreeNAS (FreeBSD) con un recurso compartido CIFS (llamado "biblioteca") respaldado por un sistema de archivos ZFS. El recurso compartido está configurado según la GUI de FreeNAS para usar ACL "Windows/Mac", lo que me hace creer que significa ACL NFSv4.

Así es como quiero que sean las ACL básicas:

nas# getfacl /mnt/big/library/test
# file: /mnt/big/library/test
# owner: DOMAIN\administrator
# group: DOMAIN\domain admins
            owner@:rwxpDdaARWcCo-:fd----:allow
            group@:rwxpDdaARWcCo-:fd----:allow
         everyone@:r-x---a-R-c---:fd----:allow

Que desde la GUI de Windows 7 aparece como "Control total" para "DOMINIO\administrador" y "DOMINIO\Administradores de dominio" y "Leer y ejecutar" para "Todos" heredado de la raíz del recurso compartido. Windows incluso reconoce correctamente al propietario como "Administrador".

Tengo dos problemas que creo que podrían estar relacionados.

En primer lugar, si modifico o creo una ACE en un objeto existente (archivo o directorio), Windows reemplaza la owner@ACE con una para group:DOMAIN\administratory, en el caso de agregarla, crea una ACE de grupo para group:DOMAIN\joeel usuario. No me importa mucho el hecho de que piense que un usuario es un grupo (siempre que funcione), pero reemplazar el propietario ACE es una molestia porque ahora, si cambio el propietario del objeto, el ACE seguirá existiendo durante el período anterior. dueño.

La segunda molestia es que cuando se crea un nuevo objeto, la ACL se ve así:

nas2# getfacl /mnt/big/library/test/New\ folder/
# file: /mnt/big/library/test/New folder/
# owner: DOMAIN\joe
# group: DOMAIN\domain users
            owner@:rwxpDdaARWcCo-:fd----:allow
            group@:rwxpDdaARWcCo-:fd----:allow
         everyone@:r-x---a-R-c---:fd----:allow

Aunque parece haber heredado las ACE correctamente, no ha conservado el propietario ni el grupo del directorio principal. ¿Hay alguna manera de crearlo con las propiedades del directorio que lo contiene?

Mirando a lapágina de manual de setfaclafirma:

 -d      The operations apply to the default ACL entries instead of access
         ACL entries.  Currently only directories may have default ACL's.
         This option is not applicable to NFSv4 ACLs.

Lo que para mí implica que las ACL de NFSv4 no admiten ACE predeterminadas, lo que parece ser lo que necesito para solucionar mi segundo problema. ¿Alguien sabe si eso es correcto?

Respuesta1

Así que realmente no me he ocupado mucho de esto, y puede que esté muy equivocado, pero aquí hay algunos fragmentos que podrían explicarlo:

  • Las ACL de NFSv4 son similares perono exactamentecomo las ACL de Windows/CIFS/NTFS.

    Por ejemplo, el formato ACL de Windows no distingue en absoluto entre SID de "usuario", "grupo" o "especial". Dado que el NAS no sabe qué cuentas tiene su sistema Windows, no puede determinar qué SID son usuarios y cuáles son grupos; tiene que adivinar.

  • Sin embargo, si bien las ACL NFSv4 no admiten las 'ACE predeterminadas' de estilo POSIX, síhaceradmite las ACE 'heredables' de estilo Windows/CIFS; es decir, cada entrada puede ser heredable o no.

    En FreeBSDgetfacl, puede ver los indicadores fy dque corresponden a "heredable por archivos" y "heredable por directorios".

    También hay un indicador de "solo herencia" i, que es prácticamente un equivalente exacto de las ACE "predeterminadas" en las ACL POSIX; es decir, la ACE solo se hereda, pero no se usa para el directorio en sí.

  • Al crear un archivo, essiemprepropiedad del usuario que lo creó. No es heredable.

    Si el servidor CIFS estuviera ejecutando Windows Server, tendría una opción para hacer que el grupo integrado "Administradores" fuera el propietario del archivo predeterminado (nuevamente tenga en cuenta cómo permite que el propietario sea un usuario o un grupo, y carece de "propiedad del grupo"). ').

información relacionada