[teils gelöst]Zugriffberechtigungen sichtbar machen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

[teils gelöst]Zugriffberechtigungen sichtbar machen

Beitrag von ThorstenS » 07.11.2011 13:27:53

Hi Leute,
ich habe einen Fileserver, auf dem sich in einer Freigabe immer wieder die Ordner für Projekte ändern.
Zugriffberechtigungen werden über Gruppenzugehörigkeiten geregelt, es kommen keine ACLs zum Einsatz.

Damit wir auf einen Blick sehen können wer wo Zugriff hat, wird derzeit ein Tabellenblatt mit Namen und Ordnern gepflegt.
wer Zugriff hat, bekommt ein grünes Feld, wer keinen hat, ein rotes Feld. Davon wird sporadisch ein Screenshot erstellt :roll: und in die Freigabe gelegt.

Ich suche jetzt ein kleines Progrämmchen, welches die Zugriffmatrix im cronjob erstellen kann. Gibts dazu was fertiges?

EDIT:
Fürs erste hab ich mir nen Shellscript ins unreine gebaut, welches die Ausgabe macht:

Code: Alles auswählen

#!/bin/bash
set -e
#set -x

export ORDNER=$(find . -maxdepth 1 -type d | tr -d "./" | sort -f | egrep -v "praktikant|alle|Fotokopierer|accessdb|azubi")

function MEMBER(){
        getent group "$@" | awk -F : '{print $NF}' | tr -d '\n' 2>/dev/null
}
( for i in $ORDNER; do
        echo -n "${i}: "
        GRUPPE=$(stat -c%G $i)
        MEMBER "$GRUPPE"
        echo -e
done ) | column -t
Die Ausgabe kann per convert in ein PNG konvertiert werden - als Schnellschuss erstmal ausreichend, auch wenns keine Farbe hat :|

Code: Alles auswählen

convert -pointsize 55 -font /root/couri.ttf label:"`/usr/local/bin/print-samba-share-accessrights.sh`" $SHAREPATH/matrix.png
Zuletzt geändert von ThorstenS am 07.11.2011 14:17:46, insgesamt 1-mal geändert.

uname
Beiträge: 12474
Registriert: 03.06.2008 09:33:02

Re: Zugriffberechtigungen sichtbar machen

Beitrag von uname » 07.11.2011 14:15:03

Du könntest es z.B. so mal versuchen. Vielleicht etwas anpassen wie z.B. die Verzeichnisebenen (maxdepth 2).

Code: Alles auswählen

find /pfad/zum/obersten/ordner -maxdepth 2 -type d|xargs -i ls -ld --time-style=iso {} |cut -d" " -f4,8
Vielleicht habe ich dein Problem auch nicht verstanden.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [teils gelöst]Zugriffberechtigungen sichtbar machen

Beitrag von ThorstenS » 07.11.2011 14:26:23

danke dir, ich habs wohl nicht verständlich genug ausgedrückt.
In der Ausgabe soll nicht der Gruppenname auftauchen, sondern die Gruppenmitglieder.

etwa so:

Code: Alles auswählen

        | Benutzer 1    | Benutzer n |
Ordner 1|     grün      |  rot       |
Ordner 2|     rot       |  rot       |
Ordner 3|     grün      |  grün      |
grün oder rot stehen dabei für die Hintergrundfarbe. Benutzer 1 - Benutzer n stehen für alle samba Benutzer.

Die beiden o.g. Scripte funktionieren aber fürs erste. Den Rest mache ich dann mal, wenn ich mehr Zeit habe. ODER mit jemand ein fertiges Progrämmchen nennt :)

uname
Beiträge: 12474
Registriert: 03.06.2008 09:33:02

Re: [teils gelöst]Zugriffberechtigungen sichtbar machen

Beitrag von uname » 07.11.2011 15:42:40

Ich habe es mal etwas anders programmiert. Dient dir vielleicht nicht, hat aber meinem AWK-Verständnis etwas weitergeholfen.

Code: Alles auswählen

find /pfad -maxdepth 2 -type d|xargs -i ls -ld --time-style=long-iso {} |awk -F" " '{printf "%s;", $8; system ("getent group " $4 "|cut -d\":\" -f1 | tr \"\n\" \";\""); system ("getent group " $4 "|cut -d\":\" -f4")}'
Ausgabe:

Code: Alles auswählen

Verzeichnis;Gruppenname;Mitglieder der Gruppe 
Vielleicht kennt ja jemand eine elegante Methode wie man bei ersten "cut" das nicht gewollte Newline schöner als mit "tr" wegbekommt.

Antworten