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

42

Ich habe ein Verzeichnis mit dem Namen "members" und darunter befinden sich Ordner / Dateien. Wie kann ich rekursiv festlegen, dass alle aktuellen Ordner / Dateien und alle zukünftigen Ordner / Dateien, die dort erstellt wurden, standardmäßig 775 Berechtigungen haben und dem Eigentümer / der Gruppe nobody / admin gehören? Ich habe die Zugriffssteuerungsliste aktiviert und diese aktiviert, kann jedoch den Befehl setfacl nicht ordnungsgemäß ausführen. Irgendeine Idee, wie das erreicht werden kann?

Einzelgänger
quelle

Antworten:

62

Ich habe tatsächlich etwas gefunden, das bis jetzt das erfüllt, wonach ich gefragt habe, und das ich hier teile, 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 alle Ordner in diesem Verzeichnis die Regel angewendet wird.
d ist Standard, dh für alle zukünftigen Elemente, die in diesem Verzeichnis erstellt werden, gelten diese Regeln standardmäßig. m wird zum Hinzufügen / Ändern von Regeln benötigt.

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

Einzelgänger
quelle
2
Dies ist genau das, was ich brauchte, um den Besitzer eines Großeltern-Verzeichnisses zu bekommen, um den Inhalt neuer Enkelkind-Verzeichnisse richtig ändern zu können.
Joost
Wenn Sie der einzige Benutzer Ihres RPI sind, können Sie g: groupname
SDsolar
Sie können für Benutzer, Gruppen und andere in einer Zeile angeben, z -Rdm g:groupnamehere:rwx, -Rdm u:groupnamehere:rwx.
user2340939
18

Um mit Ihrer akzeptierten Antwort zu gehen ...

Sie können diese Befehle wie folgt kombinieren:

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/
Joshua
quelle
Das ist cool. Wie kommt es, dass Sie sich d:für den ersten Gegenstand entschieden haben -Rmd? Ich kann sagen, dass der zweite Parameter nein haben sollte default- es ist nur seltsam, wie Linux es für mich akzeptiert.
JREAM
1
@JREAM: Linux getopt_longsendet (tatsächlich ) das gesamte Argument an die Option,-m die von Hand analysiert wird setfacl, wobei die übergebenen Argumente durch Kommas getrennt werden . Sie werden zu einer verknüpften Liste hinzugefügt, die am Ende durchlaufen wird, wenn die ACL geändert wird.
Benoit Duffez
2

setfacl unter Linux bietet die Optionen -dund -kzum Bearbeiten von Standardberechtigungen, nach denen Sie wahrscheinlich suchen (weitere Informationen finden Sie unter man).

peterph
quelle
1

Es ist einfach, einfache UNIX-Berechtigungen auf Anforderung eines entsprechend autorisierten Benutzers, die Berechtigungen von Verzeichnissen und Dateien, rekursiv festzulegen. Dies kann nicht automatisch durchgesetzt werden.

Sie können den Benutzern mitteilen, dass sie die umask von 0002 verwenden sollen, und dies hilft, um 0775 neue Dateien zu erstellen (abhängig von der Anwendung). Aber es ist nicht durchsetzbar.

Nach meinem Verständnis werden ACLs auf UNIX / Linux-Systemen nicht vererbt. Sie werden nach Bedarf festgelegt.

Was den Besitz von Dateien / Verzeichnissen angeht, haben Sie hier so ziemlich Pech.

In Bezug auf den Besitz von Dateien / Verzeichnisgruppen wird der Besitz der Gruppe durch Setzen des Verzeichnis-Set-GID-Bits (dh g + s in DIRECTORIES) vererbt.

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

Ein weiterer (NICHT EMPFOHLENER) Vorgang besteht darin, bei der Bearbeitung dieser Dateien dieselbe Benutzer-ID zu verwenden. Dies kann dadurch erreicht werden, dass sich der Benutzer unter seiner eigenen UID am System anmeldet und dann sudo oder su als ID verwendet. Dies ist insbesondere bei ACLs und Berechtigungsbits immer noch nicht 100%.

mdpc
quelle