it-swarm.com.de

www-datenberechtigungen?

Ich habe also ein Verzeichnis in/var/www (Kuchen genannt) und muss zulassen, dass WWW-Daten darauf schreiben, aber ich möchte auch darauf schreiben (ohne Sudo verwenden zu müssen). Ich habe Angst, die Berechtigungen auf 777 zu ändern, falls ein anderer Benutzer auf meinem Computer (oder ein Hacker) versucht, Dateien in diesem Verzeichnis zu ändern. Wie erlaube ich mir und Apaches WWW-Daten nur den Zugriff?

95
q3d
Sudo chown -R yourname:www-data cake

dann

Sudo chmod -R g+s cake

Der erste Befehl ändert den Besitzer und die Gruppe. Der zweite Befehl fügt das Attribut s hinzu, mit dem neue Dateien und Verzeichnisse in Cake mit denselben Gruppenberechtigungen gespeichert werden

151
James L.

Wie in einem Artikel von Slicehost angegeben:

Benutzereinstellung

Beginnen wir also damit, den Hauptbenutzer der Apache-Benutzergruppe hinzuzufügen:

Sudo usermod -a -G www-data demo

Dadurch wird der Benutzer 'demo' zur Gruppe 'www-data' hinzugefügt. Stellen Sie sicher, dass Sie sowohl die Optionen -a als auch -G mit dem oben gezeigten Befehl usermod verwenden.

Sie müssen sich abmelden und erneut anmelden, um die Gruppenänderung zu aktivieren.

Überprüfen Sie jetzt die Gruppen:

groups
...
# demo www-data

Also bin ich jetzt Mitglied von zwei Gruppen: Meine eigene (Demo) und die Apache-Gruppe (www-data).

Ordnereinrichtung

Jetzt müssen wir sicherstellen, dass der Ordner public_html dem Hauptbenutzer (demo) gehört und Teil der Apache-Gruppe (www-data) ist.

Lassen Sie uns das einrichten:

Sudo chgrp -R www-data /home/demo/public_html

Da es sich um Berechtigungen handelt, füge ich eine kurze Anmerkung zum Sudo-Befehl hinzu: Es ist eine gute Angewohnheit, absolute Pfade (/ home/demo/public_html) anstelle von relativen Pfaden (~/public_html) zu verwenden. Dadurch wird sichergestellt, dass Sudo am richtigen Ort verwendet wird.

Wenn Sie einen public_html-Ordner mit Symlinks haben, gehen Sie mit diesem Befehl vorsichtig um, da er den Symlinks folgt. Ändern Sie in den Fällen eines funktionierenden Ordners public_html jeden Ordner manuell.

Setgid

Bisher gut, aber denken Sie daran, dass der Befehl, den wir gerade gegeben haben, nur vorhandene Ordner betrifft. Was ist mit etwas Neuem?

Wir können den Eigentümer so einstellen, dass alles, was neu ist, sich auch in der Gruppe "www-data" befindet.

Mit dem ersten Befehl werden die Berechtigungen für das Verzeichnis public_html so geändert, dass das Bit "setgid" enthalten ist:

Sudo chmod 2750 /home/demo/public_html

Dadurch wird sichergestellt, dass alle neuen Dateien die Gruppe "WWW-Daten" erhalten. Wenn Sie über Unterverzeichnisse verfügen, möchten Sie diesen Befehl für jedes Unterverzeichnis ausführen (dieser Berechtigungstyp funktioniert nicht mit '-R'). Glücklicherweise werden neue Unterverzeichnisse erstellt, in denen das Bit 'setgid' automatisch gesetzt wird.

Wenn wir den Schreibzugriff auf Apache zulassen müssen, beispielsweise auf ein Upload-Verzeichnis, legen Sie die Berechtigungen für dieses Verzeichnis wie folgt fest:

Sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads

Die Berechtigungen müssen nur einmal festgelegt werden, da neuen Dateien automatisch der richtige Besitz zugewiesen wird.

42
Kwadz