Como encontrar arquivos / diretórios com ACL específica

4

Como fazer algo como

find . -acl u:jim:rx
find . -acl u:*:r
find . -noacl u:jim:r

etc.

Eu sei que o comando find não suporta isso, mas você tem a ideia. Existem scripts, mesmo para alguns cenários específicos?

Nota 1 : Sou particularmente interespetido no debian, mas se aplica a qualquer sistema operacional * nix.

Nota 2 : Esta questão se concentra em um caso prático, mas na verdade é muito mais geral - quais são as boas ferramentas para encontrar arquivos em conexão com o ACL.

    
por gorn 10.12.2014 / 02:56

1 resposta

4

Você pode usar a ferramenta getfacl com a opção -R ecursive, os arquivos -s kipping que possuem apenas a ACL base e canalizar a saída para grep .

Por exemplo, o seguinte comando é executado sob /dev directory dá para mim:

$ getfacl -Rs . | awk -v RS= -v ORS='\n\n' '/\nuser:jimmij:rw-\n/'

# file: sg1
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---

# file: sr0
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---

(...)

Para obter apenas os nomes dos arquivos impressos:

getfacl -Rs . | awk -v RS= '/\nuser:jimmij:rw-\n/ {sub(/\n.*/, ""); sub(/^[^:]*: /, ""); print}'
    
por 10.12.2014 / 04:04

Tags