blog · git · desktop · images · contact
2011-08-28
Situation: Programm „x“ will als User „y“ auf Pfad „z“ zugreifen, kann’s
aber nicht, weil ihm die Rechte fehlen. Wie erhalte ich jetzt schnell
eine Übersicht über die Rechte entlang des gesamten Pfades? Immerhin
braucht der jeweilige User zumindest „search“-Rechte (gesetztes „x
“)
für jedes Verzeichnis des Pfads.
Ist der Pfad lang genug, wird’s mit „ls
“ schnell mühsam. Klar, ich
kann eine Schleife schreiben. Muss ich aber nicht, denn es gibt
fantastischerweise ein kleines Programm für genau diesen Zweck:
„namei
“ aus dem
util-linux-Paket.
Sinnvoll ist es wohl, standardmäßig die Parameter „-x
“ und „-l
“
zu verwenden, dann erhält man einen guten Überblick:
$ namei -xl ~/cuni/Code/C/lib/simplemath/
f: /home/void/cuni/Code/C/lib/simplemath/
Drwxr-xr-x root root /
Drwxr-xr-x root root home
drwx------ void users void
lrwxrwxrwx void users cuni -> work/uni201101SS/
drwxr-xr-x void users work
drwxr-xr-x void users uni201101SS
drwxr-xr-x void users Code
drwxr-xr-x void users C
drwxr-xr-x void users lib
drwxr-xr-x void users simplemath
Er sagt mir also auch brav, wie es um beteiligte Symlinks steht. Bei
seiner Reise entlang des Pfads startet das Tool an der ersten
angegebenen Komponente, hier also „/
“, und steigt dann immer tiefer
hinab. Ein „namei -xl .
“ bringt also leider nichts, man muss schon den
gesamten Pfad angeben oder zusätzlich „readlink
“ nutzen.
Besonders hilfreich ist das Tool wohl, wenn irgendwo im Netz wieder die
Frage auftaucht, „warum kann mein Programm das Verzeichnis nicht lesen?“
Den Fragenden dann zu bitten, für jedes Verzeichnis ein „ls
“
auszuführen, ist mühsam und fehleranfällig. „namei
“ löst das Problem.
Genau deshalb bin ich auch
wieder auf das Programm gestoßen.