mkdir als anderer Benutzer basierend auf der Konfigurationsdatei

mkdir als anderer Benutzer basierend auf der Konfigurationsdatei

Wir haben eine gemeinsam genutzte Linux-Umgebung, in der die meisten Dateien auf vielen Maschinen auf einer NFSv3-Freigabe gemountet sind, die wir nicht kontrollieren. Da uns nur grundlegende Dateisystemberechtigungen zur Verfügung stehen (keine ACLs), suchen wir nach einer Möglichkeit, Benutzern das Ausführen von mkdir auf einer gemeinsam genutzten Festplatte zu ermöglichen, ohne der gesamten Gruppe Schreibberechtigungen für das Stammverzeichnis der Freigabe zu erteilen.

Beispielsweise könnte eine Binärdatei mit gesetztem Setuid-Bit und dem Besitzer der Binärdatei, der auf den Besitzer der Freigabe gesetzt ist, eine Konfigurationsdatei lesen, die definiert, welche Benutzer oder Gruppen ein Verzeichnis in besagtem freigegebenen Verzeichnis erstellen dürfen. Anschließend könnte entschieden werden, ob der Benutzer, der die Binärdatei ausführt, ein Verzeichnis in der Freigabe erstellen darf.

Die Berechtigungen für die Freigabe der obersten Ebene wären:

drwxr-x--- 1 owner group …

Die Idee ist also, dass es einen Wrapper für mkdir gibt, der dann als Freigabebesitzer ausgeführt wird, eine Konfigurationsdatei überprüft und das angeforderte Verzeichnis erstellt, wenn die Konfigurationsdatei dies zulässt. Auf diese Weise können die Benutzer nicht einfach das integrierte mkdir ausführen.

Das erstellte Verzeichnis würde ungefähr so ​​aussehen:

drwx------ 1 normaluser group 4096 Nov 3 18:14 newdir

Ist das der beste Ansatz? Oder erfinden wir das Rad neu?

Antwort1

Legen Sie fest umask, wie sich jeder Benutzer anmeldet:

umask 002

Danach verfügt die Gruppe über dieselben Berechtigungen wie der Benutzer:

mkdir newdir
ls -ld newdir
drwxrwxr-x+ 1 roaima roaima 0 Nov  3 22:04 newdir

Wenn das nicht das ist, was Sie wollen, dann erstellen Sie einen Alias ​​für mkdir

alias md='mkdir -m 775'
md newdir

verwandte Informationen