Überprüfen von Dateibesitzern und Berechtigungen

Antworten
Nachricht
Autor
seddist

Überprüfen von Dateibesitzern und Berechtigungen

#1 Beitrag von seddist » 05. Dez 2007 23:44

Und noch einer.

Ich würde gerne herausfinden, wer Eigentümer und Gruppe eines Verzeichnisses/einer Datei sind und wie die Berechtigungen aussehen.
Für den Eigentümer habe ich den test Befehl, der aber nicht wie beschrieben klappt.

Code: Alles auswählen

# ls -al
-rw-r--r-- 1 root daten  0 Dec  5 23:27 datei
# test -G datei=daten; echo $?
1
# test -G datei=lalelu; echo $?
1
Es ist dabei egal, ob ich ersatzweise die numerische Gruppen ID angebe, ob ich Gänsefüsschen benutze oder zwei Gleichheitzeichen. Ich bekomme immer einen Fehler. Ob die Gruppe stimmt oder nicht.
Das Gleiche gilt für "test -O"

Berechtigungen kann ich mittels test laut man page gar nicht abfragen. Gibt es dazu vielleicht eine Alternative?
sowas wie:
if mode datei ="0770"; then do something; fi
oder
if mode datei o!=rwx"; then do something; fi

Benutzeravatar
jochen
prolinux-forum-admin
Beiträge: 699
Registriert: 14. Jan 2000 15:37
Wohnort: Jülich
Kontaktdaten:

#2 Beitrag von jochen » 06. Dez 2007 9:23

test(1) vergleicht immer die Gruppenzugehörigkeit der Datei mit der Gruppenzugehörigkeit des Prozesses, der das test-Kommando ausführt - sprich, er beantwortet die Fragestellung "Habe ich Gruppenrechte auf die Datei oder nicht?".

Ein Ansatz im Rahmen der Shellskriptprogrammierung wäre stat(1). Mittels

Code: Alles auswählen

stat -c "%a %G" datei
bekommst Du in zwei Feldern die Zugriffsrechte (%a, beispielsweise 644) und den Gruppenname heraus (%G, %g wäre die GID).

Jochen
Die grösste Lüge der EDV? "Mal eben..."

Antworten