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!


quelle

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.

CodeGnome
quelle
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