ZFS - use ACLs puras para forçar que as permissões de gravação do grupo sejam herdadas

3

Estou migrando uma estrutura de diretórios de um sistema de arquivos UFS para o ZFS. No local antigo, eu tinha as ACLs POSIX definidas para forçar todos os novos arquivos / diretórios dentro da estrutura a serem criados com permissões de gravação de grupo -

group::rwx
default:group::rwx

No novo sistema de arquivos ZFS, tentei replicar isso usando ACLs NFSv4 com o conjunto de sinalizadores "file_inherit / dir_inherit", mas descubro que elas estão separadas (ou, no caso de diretórios, substituídas por uma ACE com "inherit_only" set), para que outros usuários no grupo não tenham permissões de gravação no novo diretório. Por exemplo:

$ chmod A+group@:rwxp:fd:allow .
$ ls -Vd .
drwxrws---+  6 user1    grp1         13 Nov  8 12:55 .
            group@:rwxp----------:fd----:allow
            owner@:--------------:------:deny
            owner@:rwxp---A-W-Co-:------:allow
            group@:--------------:------:deny
            group@:rwxp----------:------:allow
         everyone@:rwxp---A-W-Co-:------:deny
         everyone@:------a-R-c--s:------:allow
$ mkdir test
$ ls -Vd test
drwxr-sr-x+  2 user1    grp1          2 Dec  1 14:24 test
            group@:rwxp----------:fdi---:allow
            group@:--------------:------:allow
            owner@:--------------:------:deny
            owner@:rwxp---A-W-Co-:------:allow
            group@:-w-p----------:------:deny
            group@:r-x-----------:------:allow
         everyone@:-w-p---A-W-Co-:------:deny
         everyone@:r-x---a-R-c--s:------:allow
$ touch afile
$ ls -V afile
-rw-r--r--+  1 user1    grp1          0 Dec  1 14:40 afile
            group@:--------------:------:allow
            owner@:--x-----------:------:deny
            owner@:rw-p---A-W-Co-:------:allow
            group@:-wxp----------:------:deny
            group@:r-------------:------:allow
         everyone@:-wxp---A-W-Co-:------:deny
         everyone@:r-----a-R-c--s:------:allow

Eu posso consertar isso configurando umask para 002, mas gostaria de saber se há uma maneira pura de ACL (como as versões de FTP e SSH atualmente instaladas não permitem que umask seja definida por usuário) .

    
por meulop 01.12.2011 / 15:43

1 resposta

4

Eu uso algo como abaixo para o meu armazenamento NAS sem senha. Eu não sou bem versado em todas as permissões refinadas, então é provavelmente um exagero no perms de proprietário / grupo e um underkill em todos, mas aqui está:

setfacl -m owner@:full_set:fd:allow /zfs/raid1/storage
setfacl -m group@:full_set:fd:allow /zfs/raid1/storage
setfacl -m everyone@:rx:fd:allow /zfs/raid1/storage

Está no FreeBSD, então as ACLs NFSv4 do ZFS são construídas em setfacl. Eu acho que eles também podem estar em nfs4_setfacl e chmod em alguns sistemas operacionais. Eu sou muito novo em ACLs e ainda mais novo no FreeBSD, então tudo isso pode fazer os administradores de sistemas chorarem. Ele também age como chmod 2774 e define novos grupos de arquivos / diretórios para o grupo do conjunto de dados.

Edite para esclarecer um pouco: /zfs/raid1 é a montagem real do ZFS, storage é um conjunto de dados dentro dela.

    
por 19.08.2013 / 07:53