Wie lege ich den Standardgruppenbesitz für Dateien in einem Verzeichnis fest?


19

Ich betreibe eine Cakephp-Webapp mit Linode LAMP. Ich stelle fest, dass meine temporären Dateien mit root: root-Besitz erstellt werden. Die Webapp läuft jedoch mit Apache-Berechtigungen (WWW-Daten). Dies führt jedes Mal zu Warnungen, wenn eine neue Datei erstellt wird, weil sie für den Benutzer www-data nicht schreibbar ist.

Wie ändere ich den Standardbesitz in www-data für alle neuen Dateien, die im temporären Ordner erstellt werden?

Danke für Ihre Hilfe!

Antworten:


22

Um der Gruppe den Besitz von www-data zuzuweisen, unabhängig von der UID / GID des Prozesses, der die Datei erstellt, müssen Sie das Setgid-Bit im Verzeichnis festlegen.

    sudo chown :www-data <dir>
    sudo chmod g+s <dir>

Beachten Sie, dass Sie das Verzeichnis auch für das Erstellen der Dateien beschreibbar machen müssen. Wenn das jemand anderes als root ist, brauchen Sie vielleicht auch chmod o+rwx Damit die Dinge richtig funktionieren.


Was ist mit Unterverzeichnissen?
mcont

Das Anhängen des -R-Flag an chown und chmod macht diesen Befehl rekursiv. Mit den folgenden Befehlen weisen Sie & lt; dir & gt; sowie alle Unterverzeichnisse von & lt; dir & gt ;: sudo chown -R :www-data <dir> und sudo chmod -R g+s <dir>
Josh Wieder
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.