Alle Root-Dateien in Nicht-Root-Ordnern auflisten

Alle Root-Dateien in Nicht-Root-Ordnern auflisten

Ich muss eine Prüfung bezüglich der Entfernung von Root-Rechten für einen Server durchführen. Um das Risiko zu minimieren, dass etwas kaputt geht oder den Weg des Dodos geht, möchte ich nach allen Root-eigenen Dateien/Ordnern in Ordnern suchen, die nicht dem Root gehören.

Gibt es eine Möglichkeit, die Dateien zu finden und aufzulisten, beispielsweise:

> ls -la
drwxr-xr-x. 24 admin users     4096 Sep 27 12:53 .      [non root folder]
dr-xr-xr-x. 28 root root       4096 Mar 15  2017 ..
drwxrwxr-x.  2 admin users     4096 Sep 27 13:00 bin
drwxr-xr-x.  6 root  root      4096 Feb  9  2017 monit  [root file/folder]

als

/bin/opt/monit
...

Danke schön.

Antwort1

1

find /starting/path -type d ! -user root -exec find {} -maxdepth 1 -user root \;

Für jedes Verzeichnis, das nicht dem Root-Verzeichnis gehört, findwird eine separate Ausführung ausgeführt, die die direkten untergeordneten Verzeichnisse auflistet, die dem Root-Verzeichnis gehören.

2

find /starting/path -user root -execdir sh -c 'test `stat -c %U ./` != root' \; -print

Für jede Datei, die dem Root gehört, wird eine separate Shell ausgeführt, die prüft, ob das übergeordnete Verzeichnis nicht dem Root gehört.


Die beiden Befehle haben unterschiedliche Leistung. Der erste erstellt einen untergeordneten Prozess für jedes Verzeichnis, das nicht root gehört. Der zweite Befehl erstellt zwei Prozesse für jede Datei, die root gehört. Wenn Sie relativ wenige solcher Verzeichnisse und viele solcher Dateien erwarten, verwenden Sie (1). Wenn Sie viele solcher Verzeichnisse und wenige solcher Dateien erwarten, verwenden Sie (2) (evtl.).

Im Allgemeinen haben Sie mehr Dateien als Verzeichnisse, deshalb sollten Sie (1) bevorzugen.

verwandte Informationen