Dateien mit festgelegten ACLs suchen

15

Wie kann ich alle Dateien finden, für die einige erweiterte ACLs festgelegt wurden, dh Dateien mit einer kleinen Markierung +am Ende der Berechtigungsmarkierungen, die von angezeigt werden ls -l?

Ich konnte keine entsprechende Flagge für finden find. Meine naive Herangehensweise wäre eine findKombination mit ls -lund eine grep. Aber ich finde das nicht schön.

Hat jemand eine Idee?

Speckinius Flecksis
quelle

Antworten:

14

getfaclkann ACLs rekursiv sichern, und es gibt eine --skip-baseOption zum Ignorieren von Dateien ohne ACLs.

getfacl -R -s -p /directory | sed -n 's/^# file: //p'
user1686
quelle
0

Ich fand das gegenteil googeln; um Dateien zu finden, für die keine ACLs festgelegt wurden. Dies ist, was ich am Ende (für den Fall, dass es ein anderer Googler findet)

ls --color=auto -lR | grep -v "\+ " | grep -v "^[.,a-z,1-9]" | grep -v "^$"

Anscheinend ls -Rist es schneller als find (ich habe kagillion Dateien und jeder find Befehl dauert 2 Stunden).

matiu
quelle
0

Perl-Version:

getfacl -R -p -s  / | perl -wn -e ' if (/^# file/) { s|^# file: /||; print; }'
Nicola Mingotti
quelle
0

-R: Listen Sie die ACLs aller Dateien und Verzeichnisse rekursiv auf.

-s: Überspringen Sie Dateien, die nur die Basis-ACL-Einträge enthalten (Eigentümer, Gruppe, andere).

getfacl -Rs .
getfacl --recursive --skip-base .
Steely Wing
quelle