Als Admin kennt man das, irgendein Programm will auf eine Datei zugreifen und es geht nicht. Da kommt pathdiscover ins Spiel. Das kleine Linuxtool aus Cyborgs Github-Repository macht Schluß mit dem ewigen Suchen. Es zeigt alle Pfadsegmente mit allen Rechten in einem Schritt an.
Die Ausgabe
Die Ausgabe wird am besten als vorformatierter Text angezeigt, kann sein, daß Ihr da jetzt mal etwas scrollen müßt:
# pathdiscover /home/wordpress/jetpack/ '/home/wordpress/jetpack/' translates to '/opt/root/home/wordpress/jetpack' 4096 Bytes wordpress/wordpress drwxr-xr-x : jetpack ( directory ) 4096 Bytes wordpress/services drwxr-x--- : wordpress ( directory ) 4096 Bytes root/root drwxr-xr-x : home ( directory ) 4096 Bytes root/root drwxr-xr-x : root ( directory ) 4096 Bytes root/root drwxr-xr-x : opt ( directory )
Die Ausgabe kann man mit diversen Optionen anpassen, z.b. auch so, daß alle atime,ctime und mtime Zeitstempel angezeigt werden:
# pathdiscover -d /home/wordpress/jetpack/ '/home/wordpress/jetpack/' translates to '/opt/root/home/wordpress/jetpack' 4096 Bytes (2013-10-29 15:24:51 | 2013-09-19 17:54:54 | 2017-12-06 06:30:20) wordpress/wordpress drwxr-xr-x : jetpack ( directory ) 4096 Bytes (2017-11-20 16:38:07 | 2017-11-20 16:38:07 | 2017-12-06 06:30:08) wordpress/services drwxr-x--- : wordpress ( directory ) 4096 Bytes (2017-11-09 10:34:50 | 2017-11-09 10:34:50 | 2017-12-06 03:58:54) root/root drwxr-xr-x : home ( directory ) 4096 Bytes (2017-09-01 22:09:15 | 2015-02-10 15:27:53 | 2017-12-05 22:45:02) root/root drwxr-xr-x : root ( directory ) 4096 Bytes (2017-09-01 22:16:29 | 2017-09-01 22:16:29 | 2017-12-06 03:58:39) root/root drwxr-xr-x : opt ( directory )
Die Optionen
Die Hilfe gibt folgende Programmoptionen aus :
pathdiscover [-a] [-d] [-h] [-n] [-V] <filename>
Die Optionen im Einzelnen …
-V gibt die Versionsnummer aus.
-n –names schaltet die Übersetzung von UID in Namen ab.
-N –numbers zeigt die Größe der Datei und Ordner in Bytes an, statt in „Größen“
-a –alternative zeigt den kompletten Pfad zu dem Segment an, statt nur den Segmentnamen
-d –full-time fügt atime, ctime und mtime Ausgaben hinzu.
-NC versucht erst gar nicht die Ausgabe zu formatieren, was z.b. den Einsatz von AWK und SED leichter macht.
Selbst kompilieren leicht gemacht
Da es sich im GITHUB um den rohen C-Sourcecode handelt, muß man das Programm selbst kompilieren, falls es nicht schon in einer Distribution enthalten ist. Stand „Heute“ wird das nicht der Fall sein 😉
Im Gegensatz zu manch anderem Tool, ist das kompilieren, eine einfache Sache:
gcc pathdiscover.c -o pathdiscover
Das war es dann auch schon. Jetzt kann man das Programm z.b. nach /usr/bin/ verschieben und so allen Benutzern zur Verfügung stellen. Kann aber sein, daß es in einigen Monaten und Jahren, wenn sich die Systemumgebung geändert hat, man neu kompiliert werden muß.
Wann braucht man das Programm ?
Das Einsatzgebiet liegt hauptsächlich bei Admins, die sich z.b. fragen, wieso eine Datei von Serverdienst X nicht erreicht werden kann. Meistens sind da die Besitzerrechte der Ordner und Dateien im Weg, weil man z.b. vergessen hat, den Besitzer der Datei zu ändern oder globale Leserechte vergessen hat.
Mit dem Programm bekommt man alles auf einmal übersichtlich angezeigt, so daß es recht einfach wird, solche Probleme zu beheben. Man sieht auch gleich, ob Sym-LInks im Spiel sind, die z.b. von Proftp und Apache nicht immer akzeptiert werden. Kurzum, ein sehr praktischer Befehl.