Wie legen Sie die Linux-ACL so fest, dass sie standardmäßig einer bestimmten Gruppe mit Berechtigungen zugewiesen wird?

Wie legen Sie die Linux-ACL so fest, dass sie standardmäßig einer bestimmten Gruppe mit Berechtigungen zugewiesen wird?

Ich habe also ein Verzeichnis, www\das so aussieht:

[eugene@server ~]$ ll
gesamt 0
drwxrwx---. 2 eugene eugene 57 Dez 10 16:04 www

Ich möchte, dass alle neuen Dateien, die in diesem Verzeichnis erstellt werden, zur Gruppe gehörenapache Undhabe die Berechtigungen 770.

So tat ich:

[eugene@server ~]$ chgrp apache www/
[eugene@server ~]$ setfacl -Rm u:eugene:rwx,d:g:apache:rwx,d:o:--- www/
[eugene@server ~]$ ll
drwxrwx---+ 2 eugene apache 43 Dez 10 16:10 www
[eugene@server ~]$ echo 123 > www/test.txt
[eugene@server ~]$ ll www/
-rw-rw----+ 1 eugene eugene 4 Dez 10 16:11 test.txt
[eugene@server ~]$  

Wie Sie sehen, test.txtwurde es ohne die erwartete Gruppe erstellt apache. Auch die x(Ausführungs-)Berechtigung wurde nicht festgelegt ...

Was übersehe ich hier?

Antwort1

Damit Dateien in Ihrem Verzeichnis mit der Apache-Gruppe erstellt werden, sollten Sie das SETGUID-Bit setzen:

chmod +2000 www

Was die Standardrechte zum Erstellen von Dateien betrifft, können Sie dies nicht mit ACL tun, da die standardmäßige Linux-Umask immer gewinnt. Umask erlaubt nicht das Erstellen von Dateien mit 7 Ziffern (rwx) in den Rechten erstellter Dateien.

Stattdessen können Sie ein Skript erstellenMK-Dateimit folgendem Inhalt:

touch $1
chmod 770 $1

ausführbar machen:

chmod 750 mkfile

und legen Sie es im Ordner /usr/local/bin ab. Jetzt können Sie überall Dateien mit 770-Berechtigungen erstellen:

mkfile my_file

verwandte Informationen