Wie lege ich Standard-Dateiberechtigungen für alle Ordner / Dateien in einem Verzeichnis fest?


254

Ich möchte einen Ordner so einrichten, dass alle darin erstellten Elemente (Verzeichnisse, Dateien) Standardberechtigungen und -gruppen erben.

Nennen wir die Gruppe "Medien". Außerdem sollten die im Verzeichnis erstellten Ordner / Dateien automatisch g + rw haben.


1
Wird das nicht vom Benutzer gesteuert, der die neue Datei / den neuen Ordner erstellt, und von seiner umask?
— Wadih M.

umask bezieht sich auf Berechtigungen, aber ich glaube nicht, dass es etwas mit dem Festlegen einer Standardgruppe zu tun hat, die nicht der Benutzer selbst ist.
— Chris

1
Welches Betriebssystem? Tags benötigt. setfaclund Standard-ACLs existieren unter AIX nicht.
— Amit Naidu

Antworten:


269

Ich habe es gefunden: Anwenden von Standardberechtigungen

Aus dem Artikel:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

Als nächstes können wir überprüfen:

getfacl /<directory>

Ausgabe:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

5
Yay für das klebrige Stück!
— gabe.

22
Verwechseln wir gid nicht mit sticky bit.
— Amit Naidu

10
g + s stellt sicher, dass neue Inhalte im Verzeichnis die Gruppeneigentümer übernehmen. setfacl ändert nur den chmod, setzt in deinem Fall die Erlaubnis auf o = rx
— Steen Schütt

10
Beachten Sie, dass die Zugriffssteuerungsliste aktiviert sein muss (als eine der Einhängeoptionen für das eingehängte Dateisystem enthalten), damit die Dateiberechtigungen übernommen werden können.
— SG23

11
Vielleicht möchten Sie stattdessen 'X' verwenden, damit nur die Ausführungsberechtigung für Verzeichnisse und nicht für Dateien festgelegt wirdsetfacl -d -m g::rwX /<directory>
— Adrian Gunawan

27

Dies ist eine Ergänzung zu Chris 'Antwort. Sie basiert auf meinen Erfahrungen mit meinem Arch Linux-Rig.

Wenn Sie den Standardschalter (-d) und den Änderungsschalter (-m) verwenden, werden nur die Standardberechtigungen geändert, die vorhandenen bleiben jedoch erhalten:

setfacl -d -m g::rwx /<directory>

Wenn Sie die gesamte Berechtigungsstruktur des Ordners einschließlich der vorhandenen ändern möchten (Sie müssen eine zusätzliche Zeile einfügen und sie rekursiv machen - R:

setfacl -R -m g::rwx /<directory>

z.B.

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( CREDIT in den Kommentaren für die Synthax des revoke all Privilegien Linie markdwite)


2
So widerrufen Sie Gruppenberechtigungen (als Beispiel): sudo setfacl -d -mg :: --- / path
— markdwhite

1
Ist das nur ein Tippfehler, der setfacl -R -m g::rwx /<directory>in Ihrer Antwort zweimal vorkommt?
— Shane Rowatt

0

Fügen Sie sich selbst / den angemeldeten Benutzer zur WWW-Datengruppe hinzu, damit wir mit Dateien arbeiten können, die vom WWW-Datenserver erstellt wurden

sudo usermod -a -G www-data $USER

Muss neu gestartet / angemeldet werden, damit die neu hinzugefügte Gruppe wirksam wird

cd /var/www

Fügen Sie www-data als Gruppenmitglied des HTML-Ordners und Ihren Benutzer als Eigentümer hinzu, damit wir es ebenso besitzen wie ein Gruppenmitglied

sudo chown -R $USER:www-data html

Geben Sie Ihren Benutzernamen anstelle von USER ein

Setze Lese-, Schreib- und Ausführungsrechte wie erforderlich, (ugo) u = Benutzer, g = Gruppe, o = andere

sudo chmod 750 html

Stellen Sie die GID von html ein. Neu erstellte Dateien in html erben nun die Eigentumsrechte:

sudo chmod g+s html

Dadurch werden die Standardregeln für neu erstellte Dateien / Verzeichnisse im HTML-Verzeichnis und in den Unterverzeichnissen erstellt.

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Wenn SELinux installiert ist, ignorieren Sie die Anforderungen für den WWW-Datenkontext, damit Schreibberechtigungen zugelassen werden

sudo setsebool -P httpd_unified 1

Verzeichnis auflisten, um die neuen Berechtigungen anzuzeigen

ls -ld html

Gibt dies zurück

drwxrwsr-x+   3 html www-data

Das abschließende + bedeutet, dass die Zugriffssteuerungsliste (ACL) für das Verzeichnis festgelegt ist.

Hinweis : Link zum Forum


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.