Como posso fazer com que o Windows modifique as ACLs CIFS/ZFS 'corretamente'

Como posso fazer com que o Windows modifique as ACLs CIFS/ZFS 'corretamente'

Eu tenho um sistema FreeNAS (FreeBSD) com um compartilhamento CIFS (chamado "biblioteca") apoiado por um sistema de arquivos ZFS. O compartilhamento é configurado de acordo com a GUI do FreeNAS para usar ACLs "Windows/Mac", que sou levado a acreditar que significam ACLs NFSv4.

É assim que quero que as ACLs básicas sejam:

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 na GUI do Windows 7 aparece como "Controle total" para "DOMÍNIO\administrador" e "DOMÍNIO\Administradores de domínio" e "Ler e executar" para "Todos" herdados da raiz do compartilhamento. O Windows até reconhece o proprietário como o “Administrador” corretamente.

Estou tendo dois problemas que acredito que possam estar relacionados.

Primeiramente se eu modificar ou criar uma ACE em um objeto existente (arquivo ou diretório) o Windows substitui a owner@ACE por uma para group:DOMAIN\administratore no caso de adicionar, cria uma ACE de grupo para group:DOMAIN\joeo usuário. Eu não me importo muito com o fato de ele pensar que um usuário é um grupo (desde que funcione), mas substituir o proprietário ACE é uma dor porque agora, se eu mudar o proprietário do objeto, o ACE ainda existirá para o anterior proprietário.

O segundo incômodo é que ao criar um novo objeto a ACL fica assim:

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

Embora pareça ter herdado as ACEs corretamente, não manteve o proprietário ou grupo do diretório pai. Existe uma maneira de criá-lo com as propriedades do diretório que o contém?

Olhando para opágina de manual 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.

O que para mim implica que as ACLs NFSv4 não suportam ACEs padrão, o que parece ser o que preciso para corrigir meu segundo problema. Alguém sabe se isso está correto?

Responder1

Então, eu realmente não lidei muito com nada disso e posso estar seriamente errado, mas aqui estão algumas coisas que podem explicar isso:

  • As ACLs do NFSv4 são semelhantes, masnão exatamentecomo ACLs do Windows/CIFS/NTFS.

    Por exemplo, o formato ACL do Windows não faz distinção entre SIDs de 'usuário' ou 'grupo' ou 'especiais'. Como o NAS não sabe quais contas o seu sistema Windows possui, ele não pode determinar quais SIDs são usuários e quais são grupos – ele precisa adivinhar.

  • No entanto, embora as ACLs NFSv4 não suportem 'ACEs padrão' no estilo POSIX, elasfazersuporta ACEs 'herdáveis' no estilo Windows/CIFS; isto é, cada entrada pode ser herdável ou não.

    No FreeBSDgetfacl, você pode ver os sinalizadores fe dque correspondem a "herdável por arquivos" e "herdável por diretórios".

    Há também um sinalizador "somente herança" i, que é praticamente um equivalente exato às ACEs 'padrão' em ACLs POSIX - ou seja, a ACE é apenas herdada, mas não é usada para o diretório em si.

  • Ao criar um arquivo, ésemprepropriedade do usuário que o criou. Não é herdável.

    Se o servidor CIFS estivesse executando o Windows Server, ele teria a opção de tornar o grupo interno "Administradores" o proprietário do arquivo padrão (observe novamente como ele permite que o proprietário seja um usuário ou um grupo e não possui 'propriedade do grupo ').

informação relacionada