Frage linux / setfacl - Setzt alle aktuellen / zukünftigen Dateien / Verzeichnisse im übergeordneten Verzeichnis auf 775 mit dem angegebenen Besitzer / Gruppe


Ich habe ein Verzeichnis namens "Mitglieder" und darunter befinden sich Ordner / Dateien. Wie kann ich alle aktuellen Ordner / Dateien rekursiv setzen und alle zukünftigen Ordner, die dort angelegt werden, standardmäßig 775 Berechtigungen haben und zum Besitzer / Gruppe nobody / admin gehören? Ich habe ACL aktiviert, gemountet, kann aber den Befehl setfacl nicht richtig ausführen. Irgendeine Idee, wie man das erreicht?


33
2017-11-02 17:37


Ursprung




Antworten:


Ich habe tatsächlich etwas gefunden, das bisher das tut, wonach ich gefragt habe, und teile es hier, damit jeder, der auf dieses Problem stößt, diese Lösung ausprobieren kann:

sudo setfacl -Rdm g:groupnamehere:rwx /base/path/members/
sudo setfacl -Rm g:groupnamehere:rwx /base/path/members/

R ist rekursiv, was bedeutet, dass auf alles unter diesem Verzeichnis die Regel angewendet wird.
d Dies ist standardmäßig, dh für alle zukünftigen Elemente, die in diesem Verzeichnis erstellt wurden, gelten diese Regeln standardmäßig. m wird benötigt, um Regeln hinzuzufügen / zu ändern.

Der erste Befehl, ist für neue Elemente (daher der d), der zweite Befehl, ist für alte / vorhandene Elemente unter dem Ordner. Hoffe, das hilft jemandem, da dieses Zeug ein bisschen kompliziert und nicht sehr intuitiv ist.


49
2017-11-03 16:36



Dies ist genau das, was ich brauchte, um den Besitzer eines Großeltern-Verzeichnisses dazu zu bringen, den Inhalt neuer Enkel-Verzeichnisse richtig zu ändern. - Joost
Wenn Sie der einzige Benutzer Ihres Rpi sind, können Sie g: Gruppenname durch pi: pi oder nur pi ersetzen - SDsolar


Um mit Ihrer akzeptierten Antwort zu gehen ...

Sie können diese Befehle folgendermaßen kombinieren:

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/

12
2018-05-20 15:05



Das ist cool. Wie kommst du drauf? d: auf den ersten Artikel statt -Rmd? Ich kann sagen, dass der zweite Parameter keine haben sollte default- Es ist nur komisch, wie Linux es mir annimmt. - JREAM
@ JREAM: Linux (eigentlich getopt_long) sendet das ganze Argument an Möglichkeit -m welches ist von Hand gegliedert durch setfacl, durch Kommas trennen die übergebenen Argumente. Sie werden zu einer verknüpften Liste hinzugefügt, die am Ende durchlaufen wird, wenn die ACL tatsächlich geändert wird. - Benoit Duffez


setfacl auf linux hat die -d und -k Optionen für die Manipulation von Standard-Berechtigungen, die wahrscheinlich das sind, was Sie suchen (siehe Mann für weitere Informationen).


2
2017-11-02 19:12





Es ist leicht, einfache UNIX-Berechtigungen bei Bedarf eines entsprechend autorisierten Benutzers, den Berechtigungen von Verzeichnissen und Dateien rekursiv zu setzen. Es ist nicht möglich, dies automatisch zu erzwingen.

Sie können den Benutzern sagen, dass sie die Umask von 0002 verwenden, und das hilft, neue Dateien bei 0775 zu erstellen (abhängig von der Anwendung). Aber es ist nicht durchsetzbar.

Ich verstehe, dass ACLs nicht auf UNIX / Linux-Systemen vererbt werden. Sie sind auf Nachfrage festgelegt.

Was Datei- / Verzeichnisbesitz angeht, haben Sie hier ziemlich viel Glück.

Bezüglich der Datei- / Verzeichnisgruppeneigentümer bewirkt das Einstellen des Verzeichnis-set-gid-Bits (d. H. G + s auf VERZEICHNISSE), dass die Gruppenbesitzrechte geerbt werden.

Was ich in solchen Situationen getan habe, ist ein periodisches Root-Cron-Skript auszuführen, das nicht konforme Berechtigungen / Ownerships auf den Standard in solchen Verzeichnissen zurücksetzt.

Ein anderer (NICHT EMPFOHLENER) Prozess besteht darin, dieselbe Benutzer-ID zu verwenden, wenn Sie an diesen Dateien arbeiten. Dies könnte erreicht werden, indem sich der Benutzer unter seiner eigenen UID am System anmeldet und dann sudo oder su als ID verwendet. Dies ist immer noch nicht 100% besonders in Bezug auf ACLs und Berechtigungsbits.


1
2017-11-02 17:56