it-swarm.com.de

Berechtigung / Eigentümer des vollständigen Verzeichnisbaums anzeigen

Ich erinnere mich, dass ich etwas wie "XXX/home/user/dir/child/file" gemacht habe und es den Besitzer und/oder die Erlaubnis von zurückgegeben hat:

/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file

Aber ich erinnere mich nicht, was dieser Befehl war. Hat jemand eine Idee?

30

Der Befehl könnte gewesen sein:

namei -m /home/user/dir/child/file
34
user59736

Ich denke, Sie denken vielleicht an den Befehl tree. Zum Beispiel:

$ tree -pufid apps/glassfish3/ | less
apps/glassfish3
[drwxr-xr-x saml    ]  apps/glassfish3/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/config
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/doc-files
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/security
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/sql
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/decorator
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb/embeddable
...
...

Die oben genannten Schalter bewirken Folgendes:

  • -p - Berechtigungen
  • -u - Benutzername/Benutzer-ID
  • -f - vollständigen Pfad
  • -i - keine Einrückungszeilen drucken
  • -d - Nur Verzeichnisse drucken

Verweise

31
slm

Nachdem ich es mir etwas überlegt hatte, kam ich auf diese Idee

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done

Die Ausgabe sieht so aus

-rw------- 1 tant tant 181016423 Jun 25 23:49:17 2013 /home/tant/test_file
drwxr-xr-x 85 tant tant 5632 Jul  9 19:40:11 2013 /home/tant
lrwxr-xr-x 1 root wheel 8 Sep  4 23:53:27 2012 /home -> usr/home

Ich hoffe es ist in Ordnung, dass es in umgekehrter Reihenfolge ist.

Basierend auf den Kommentaren ist hier eine Möglichkeit, von der Wurzel abwärts aufzulisten:

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done | sed '1!G;h;$!d'
3
Raphael Ahrens

In dem Verzeichnis, in dem Sie die Berechtigungen und Eigentümer des Ancesters erfahren möchten:

for i in $(seq 0 $(pwd | tr -cd / | wc -c)) ; do pwd ; ls -lad ; cd .. ; done

Beachten Sie, dass Sie sich danach in / Befinden :) Wenn Sie zu Ihrem ursprünglichen Standort zurückkehren möchten, schließen Sie den Befehl ein

HERE=$(pwd)
...
cd ${HERE}
0
yPhil