As ACLs POSIX permitem definir ACLs herdáveis. Se você definir a acl padrão para um diretório, isso é herdado na pilha conforme novos arquivos são criados.
$ sudo mkdir /tmp/acltest
$ ls -ld /tmp/acltest
drwxr-xr-x 2 root root 4096 2011-01-13 20:39 /tmp/acltest
$ touch /tmp/acltest
touch: setting times of '/tmp/acltest': Permission denied
Neste ponto, meu usuário (daniel) não pode criar arquivos neste diretório. Eu defino a acl padrão para o diretório, bem como a configuração de um usuário acl no diretório superior (o padrão se aplica a arquivos / diretórios criados neste diretório, não ao diretório propriamente dito)
$ sudo setfacl -m d:u:daniel:rwx /tmp/acltest/
$ sudo setfacl -m u:daniel:rwx /tmp/acltest/
E agora, posso criar um arquivo:
$ touch /tmp/acltest/foo
$ ls -la /tmp/acltest/foo
-rw-r--r-- 1 daniel daniel 0 2011-01-13 20:41 /tmp/acltest/foo
Além disso, posso fazer o que quiser em arquivos que outros usuários criem nesse diretório:
$ sudo mkdir /tmp/acltest/foo2
$ ls -ld /tmp/acltest/foo2
drwxrwxr-x+ 2 root root 4096 2011-01-13 20:49 /tmp/acltest/foo2
$ sudo touch /tmp/acltest/foo2/bar
$ ls -la /tmp/acltest/foo2/bar
-rw-rw-r--+ 1 root root 0 2011-01-13 20:43 /tmp/acltest/foo2/bar
As permissões normais de unix não permitem que eu toque nisso, no entanto, as ACLs dizem o contrário:
$ getfacl /tmp/acltest/foo2/bar
# file: tmp/acltest/foo2/bar
# owner: root
# group: root
user::rw-
user:daniel:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
Note que este arquivo está dentro de um subdiretório do diretório / tmp / acltest, e assim as permissões normais do unix não me deixam fazer nada com este arquivo.
E, de fato, o usuário daniel pode fazer o que quiser com esse arquivo:
$ mv /tmp/acltest/foo2/bar /tmp/acltest/foo2/bar2
$ ls -la /tmp/acltest/foo2/
total 8
drwxrwxr-x+ 2 root root 4096 2011-01-13 20:49 .
drwxrwxr-x+ 3 root root 4096 2011-01-13 20:43 ..
-rw-rw-r--+ 1 root root 0 2011-01-13 20:43 bar2
Observe que os acls padrão só serão propagados à medida que novos arquivos e diretórios forem criados. Você precisará fazer uma operação de conjunto recursivo uma vez para definir tudo no lugar e, em seguida, sua ACL padrão assumirá.
Para acls do usuário, você precisa ter certeza de que seu sistema de arquivos está montado com a opção acl em / etc / fstab.
As ACLs POSIX TL; DR permitem definir permissões de usuário / grupo fixas que se propagam por uma árvore do sistema de arquivos.
EDIT: Formatação e opção de montagem