Benutzereinrichtung
Beginnen wir also damit, den Hauptbenutzer zur 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 mit dem oben gezeigten Befehl usermod sowohl die Optionen -a als auch -G 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
Jetzt bin ich Mitglied in zwei Gruppen: Meine eigene (Demo) und die Apache-Gruppe (www-Daten).
Ordner einrichten
Jetzt müssen wir sicherstellen, dass der Ordner public_html dem Hauptbenutzer gehört (Demo) und Teil der Apache-Gruppe ist (www-data).
Lassen Sie uns das einrichten:
sudo chgrp -R www-data /home/demo/public_html
Während wir über Berechtigungen sprechen, füge ich einen kurzen Hinweis zum Befehl sudo hinzu: Es ist eine gute Angewohnheit, absolute Pfade (/ home / demo / public_html) wie oben gezeigt anstelle relativer Pfade (~ / public_html) zu verwenden. Es stellt sicher, 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 von Hand.
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 Besitz so einstellen, dass alles Neue auch in der Gruppe "www-data" enthalten ist.
Der erste Befehl ändert die Berechtigungen für das Verzeichnis public_html so, dass sie das Bit "setgid" enthalten:
sudo chmod 2750 /home/demo/public_html
Dadurch wird sichergestellt, dass alle neuen Dateien die Gruppe 'www-data' erhalten. Wenn Sie Unterverzeichnisse haben, möchten Sie diesen Befehl für jedes Unterverzeichnis ausführen (diese Art von Berechtigung funktioniert nicht mit '-R'). Glücklicherweise werden neue Unterverzeichnisse erstellt, wobei das Bit 'setgid' automatisch gesetzt wird.
Wenn wir 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.