Ich werde an einem Webprojekt arbeiten und habe daher einen www
Ordner darin $HOME
. Ich möchte, dass dieser Ordner der Gruppe gehört und user
gleichzeitig dieser Gruppe angehört www-data
. Ich gebe Folgendes ein:
mkdir $HOME/www
chmod g+rxs,u+rwx,o-rwx $HOME/www
chown user.www-data $HOME/www
Dann ls -alh | grep www
ergibt sich:
drwxr-s--- 2 user www-data 4,0K Aug 10 17:33 www
Darüber hinaus möchte ich, dass Standardberechtigungen unabhängig von den Berechtigungen der erstellenden Prozesse festgelegt werden. Also mache ich:
setfacl -m d:u::rwx,d:g::rx,d:o::- $HOME/www
Dann getfacl $HOME/www
ergibt sich:
# file: www
# owner: user
# group: www-data
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:other::---
Nun habe ich cd
in den neu erstellten Ordner Folgendes eingegeben:
touch testfile
Und dann ls -alh | grep testfile
gibt es:
-rw-r----- 1 user www-data 0 Aug 10 17:44 testfile
Wie Sie sehen, www-data
wurde die Gruppe aufgrund des setgid
Bits übernommen. Die Standard-ACLs des Verzeichnisses $HOME/www
wurden jedoch nicht übernommen (wie ich erwartet hätte). $HOME
hat andere Standard-ACLs als $HOME/www
- aber ich würde erwarten, dass das manuelle Überschreiben der Standard-ACLs der Unterverzeichnisse recht unkompliziert funktioniert.
Ich möchte, dass die Unterverzeichnisse und Dateien darin $HOME/www
die oben angegebenen Standardberechtigungen haben. Was übersehe ich hier?
Antwort1
Dateien erhalten standardmäßig keine Ausführungsberechtigung. Verzeichnisse schon. Versuchen Sie, ein Verzeichnis zu erstellen. Es sollte die erwarteten Berechtigungen haben. Dateien sollten die erwarteten Standardberechtigungen abzüglich der Ausführungsberechtigungen erhalten.