Qual é o limite da ACL do ZFS?

5

Alguém sabe quantos usuários o ZFS da ACL pode manipular?

Com outras palavras: para quantos usuários eu posso definir as ACLs como esta para o mesmo diretório?

setfacl -m user:test1:rwxpDdaARWcCos:fd----:allow /mnt/project1

Ou uma estimativa também seria boa. Por exemplo. estamos falando de 100, 500, 1000 ou mais?

Atualizar

121 não é um bug no FreeBSD 9.

  • O limite da ACL do ZFS é 1024.
  • O limite de ACL do FreeBSD é 254.
  • O limite de ACL do FreeBSD NFSv4 é cerca de metade de 254.

Veja /sys/sys/acl.h

    
por Sandra 05.12.2012 / 23:35

3 respostas

5

De acordo com o código-fonte ZFS , o número máximo é definido como 1024. Posso confirmar que 1024 ACLs podem ser definidas em um arquivo no ZFS no Solaris. Pode haver um limite inferior na implementação do ZFS ou setfacl no FreeBSD

# cat maxacl
#!/bin/ksh

touch file
i=1
while true; do
  for u in $(getent passwd | nawk -F: '{print $1}'); do
    chmod A+user:$u:read_data:allow file || break 2
    printf "%d %s\n" $i $u
    i=$((i+1))
  done
  ls -v file | head
  ls -v file | wc -l
done

# ls -v file | head
-rw-r--r--+  1 root     root           0 déc   6 13:05 file
     0:user:utku3:read_data:allow
     1:user:utku2:read_data:allow
     2:user:utku1:read_data:allow
     3:user:utku0:read_data:allow
     4:user:utwww:read_data:allow
     5:user:jlliagre:read_data:allow
     6:user:nobody4:read_data:allow
     7:user:noaccess:read_data:allow
     8:user:nobody:read_data:allow
# ls -v file | tail
     1017:user:root:read_data:allow
     1018:owner@:execute:deny
     1019:owner@:read_data/write_data/append_data/write_xattr/write_attributes
         /write_acl/write_owner:allow
     1020:group@:write_data/append_data/execute:deny
     1021:group@:read_data:allow
     1022:everyone@:write_data/append_data/write_xattr/execute/write_attributes
         /write_acl/write_owner:deny
     1023:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow
    
por 06.12.2012 / 14:11
3

Eu estou supondo que você é a mesma pessoa que perguntou no fórum do FreeBSD e foi testado como sendo 127, quando o sistema de arquivos deu 'sem espaço sobrando' erros.

    
por 06.12.2012 / 11:29
2

Depois de escrever um script, eu consegui o limite em 121 no FreeBSD 9 64bit.

setfacl -b /tank/project1

i=0
for u in $(ypcat passwd|awk -F':' '{print $1}'); do
    setfacl -m user:$u:rwxpDdaARWcCos:fd----:allow /tank/project1
    let i=i+1
    echo $i $u
done
    
por 06.12.2012 / 13:20