Erzwinge Datei- und Unterverzeichnisberechtigungen auf dem OS X-Server


0

Wir haben einen OS X-Entwicklungsserver für fünf Entwickler im Einsatz, der hauptsächlich Symfony2-basierte Websites erstellt. Von den fünf sind nur zwei in der Sudo-Gruppe, dh wenn die anderen Probleme mit den Berechtigungen hätten, könnten sie sie nicht einfach mit Sudo reparieren.

Ich habe uns alle zu einer developersGruppe zusammengefasst, einschließlich des Apache-Benutzers, und die Gruppe des Stammverzeichnisses aller Websites auf festgelegt developers. Ich habe auch das setgidFlag hinzugefügt , sodass alle Unterverzeichnisse und Dateien, die innerhalb von erstellt werden, die Gruppe erben. Das funktioniert perfekt.

Das einzige Problem besteht darin, dass alle von Symfony2 erstellten Dateien oder Unterverzeichnisse (dh der Cache und die Protokolldateien) nicht mit der Berechtigung zum Beschreiben von Gruppen erstellt werden . Ich bin auf diese chmod +aOption gestoßen und habe versucht, einen ACL-Eintrag wie folgt einzurichten:

sudo chmod -R +a "developers allow write" path/

Welches fügte ein "+" am Ende der Berechtigungsliste mit ls. Leider werden beim Gruppenschreiben immer noch keine neuen Dateien erstellt. Kann mir bitte jemand sagen, was ich falsch mache?

Antworten:


0

Diese neuen Dateien haben das group writeSet nicht, da die von Ihnen vorgenommene Änderung nur die Zugriffssteuerungsliste der Datei betrifft. ACL und POSIX-Rechte sind zwei getrennte Dinge!

In meinen Augen haben Sie zwei Möglichkeiten:

  • Ändern Sie die umask des Webservers oder
  • Legen Sie die ACL auf den übergeordneten Ordner fest, damit sie nach unten vererbt wird. Da die ACL zuerst überprüft wird, sollten alle hier festgelegten Lese- oder Schreibberechtigungen vom Server verwendet werden.

Die zweite Alternative wäre meiner Meinung nach die bessere, da es keine Rolle spielt, welche umask in der PHP-Anwendung eingestellt ist, die Ihre Dateien oder Ordner so erstellt, wie sie auf Systemebene eingestellt sind.


Danke für die Antwort. Der chmod +a -RBefehl, den ich zuvor ausprobiert habe, wurde auf das Stammverzeichnis der Webserver-Dateien angewendet, schien jedoch nicht zu funktionieren. Soll ich es verwenden find, um es auf jede einzelne Datei anzuwenden?
Adam

Sie müssen es auf alle bereits vorhandenen Dateien anwenden. Wichtig ist, dass es auf den übergeordneten Ordner angewendet wird. Werfen Sie einen Blick auf ideocentric.com/technology/articles/title/osx-acl für weitere Informationen über Äpfel Implementierung auf ACLs.
Heiglandreas

Ich glaube, ich weiß, was ich tun muss :) Ich habe das Büro jetzt zwar verlassen, aber ich werde es am Montagmorgen noch einmal versuchen. Danke für Ihre Hilfe!
Adam
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.