Das ist also die Situation:
Habe einen Server für Web-Entwickler. Es gibt viele Entwickler. Alle developers
+ PHP
+ Apache
gehört zu www
Gruppe. Es gibt ein Entwicklungsverzeichnis – development
.
Das Ziel ist, dass jede Datei in der development
Verzeichnis hat 755
Berechtigungen und wann immer ein beliebiger Entwickler eine Datei in development
erstellt, ändert Verzeichnis haben die Dateien immer noch 755
.
Also ich habe eine Reihe von acl
gelesen Tutorials, Anleitungen und Anleitungen, aber ich kann immer noch nicht das gewünschte Ergebnis erzielen.
- meine Festplatte ist mit
acl
gemountet - Ich habe
chown -R www:www development
chmod g+s development
hinzugefügt-
Ich setze eine Reihe von
acl
Regeln zurdevelopment
Verzeichnis und habe folgendes erhalten:$ getfacl development # file: development # owner: www # group: www # flags: -s- user::rwx user:www:rwx group::rwx group:www:rwx mask::rwx other::r-x default:user::rwx default:user:www:rwx default:group::rwx default:group:www:rwx default:mask::rwx default:other::r-x p.s. I know its messy, was doing a number of tests
-
Nach meiner Vorstellung von
ACL
, wenn das Verzeichnis solche Regeln hätte, sollte meine Aufgabe erfüllt sein, aber wenn ich versuche, eine Datei indevelopment
zu erstellen dir, bekomme ich:-rw-rw-r--+ 1 www www 0 Nov 21 09:14 newfile
Ich kann anscheinend nicht verstehen, warum es rw-
erstellt statt rwx
.
Es ist wahrscheinlich etwas Einfaches, das ich übersehen habe, oder ein allgemeines Konzept, das ich nicht verstehe.
Akzeptierte Antwort:
Ihre Standard-ACLs ersetzen die umask, die nicht default angibt Berechtigungen, aber maximal Berechtigungen zum Erstellen neuer Dateien. In diesem Fall rwxrwxr-x
.
Dann ruft Ihre Anwendung open
auf oder creat
mit den gewünschten Berechtigungen. Fast alle Anwendungen fragen nach rw-rw-rw-
für Dateien.
Sie können dies sehen, indem Sie strace
ausführen , z. B.
$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
(0666
ist dasselbe wie rw-rw-rw-
.)
Die beiden Berechtigungen werden mit bitweisem UND kombiniert, um rw-rw-r--
zu ergeben .
rwxrwxr-x # default ACL
rw-rw-rw- # permission requested (e.g. by touch, vim, etc.)
& _________
rw-rw-r-- # effective permissions
Eine weitere Erklärung finden Sie unter POSIX-Zugriffskontrolllisten – „Standard-ACL-Beispiel“.
Die eigentliche Frage ist also:Warum müssen die Dateien ausführbar sein?