
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.txt
wurde 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