![Ist es sicher, den Besitzer des Ordners „html/“ in Apache zu ändern?](https://rvso.com/image/1127594/Ist%20es%20sicher%2C%20den%20Besitzer%20des%20Ordners%20%E2%80%9Ehtml%2F%E2%80%9C%20in%20Apache%20zu%20%C3%A4ndern%3F.png)
Ich weiß, wie man chmod und so benutzt, das ist also nicht die Frage. Ich habe einen kleinen Server (Ubuntu LTS), auf dem Apache läuft, mit dem Standardordner in /var/www/html/
. Standardmäßig ist root der Besitzer des html/
Ordners.
Frage: Ist es sicher, den Besitzer des html/
Ordners zu ändern?
Antwort1
Das Ändern des Eigentümers von Dateien ist völlig ungefährlich /var/www
. Sie können alle Inhalte dieses Ordners nach Belieben bearbeiten und ändern.
Wenn der Benutzer beispielsweise tsmith
in Dateien in schreiben können muss, /var/www/myweb
ist es völlig in Ordnung, den Besitzer dieser Dateien auf festzulegen tsmith
. Oder, wenn Sie es vorziehen, behalten Sie den Besitzer bei root
und verlangen Sie tsmith
sudo, um in die Dateien schreiben zu können – wenn Sie ihm/ihr mit sudo vertrauen.
Wenn Sie mehrere Benutzer haben, die die Dateien bearbeiten können müssen, und Sie ihnen kein sudo erteilen möchten, können Sie alternativ die Gruppenmitgliedschaft verwenden. Erstellen Sie beispielsweise eine Gruppe und fügen Sie Benutzer zu dieser Gruppe hinzu. Legen Sie dann Gruppeneigentum und Gruppenschreibrechte für die entsprechenden Dateien fest, damit Mitglieder dieser Gruppe diese Dateien ändern können. Dabei möchten Sie wahrscheinlich das SetGID-Bit ( chmod g+s dir
) im enthaltenen Verzeichnis verwenden, um sicherzustellen, dass neue Dateien denselben Gruppenbesitz erben, und umask 002
in jedem Benutzer, ~/.profile
um sicherzustellen, dass sie Gruppenschreibrechte erhalten, da sonst alle neuen Dateien nur von ihrem Ersteller und nicht von anderen Mitgliedern der Gruppe bearbeitet werden können.
Sie sollten sich jedoch der folgenden schlechten Praktiken bewusst sein:
Legen Sie den Eigentümer von Dateien nicht auf den
www-data
Benutzer oder diewww-data
Gruppe fest, wenn Sie der Gruppe Schreibberechtigungen erteilen. Derwww-data
Benutzer ist ein nicht privilegierter Benutzer, der keine Dateien schreiben kann. Server-Daemons, auf die vom externen Netzwerk aus zugegriffen werden kann (z. B. der Webserver), werden normalerweise als nicht privilegierter Benutzer ausgeführt, sodass die Möglichkeiten des Angreifers, sie aufgrund einer Sicherheitslücke zu hacken, minimal sind.Ausnahme: Einige Webanwendungen erfordern Schreibzugriff auf bestimmte Dateien und Ordner, um beispielsweise die Speicherung von Anhängen usw. zu implementieren. In diesen Fällen sollten Sie den Eigentümer auf
www-data
NURfür diese Dateien, wobei die Anzahl der beschreibbaren Dateien aufwww-data
ein Minimum beschränkt bleiben muss.Aus demselben Grund sollten Sie keine Dateien für alle Benutzer beschreibbar machen.
Wenn Sie Gruppen erstellen, verwenden Sie keine vorhandenen Benutzergruppen wie
admin
odersudo
insbesonderewww-data
, die bereits in Ubuntu einen Zweck haben, für einen anderen Zweck. Dies kann die Systemsicherheit beeinträchtigen, wenn diese Gruppen nicht dazu gedacht sind, in Dateien schreiben zu können. Erstellen Sie stattdessen Ihre eigenen Gruppen und fügen Sie diesen Mitglieder hinzu.
Antwort2
Es ist nicht sehr sicher, Verzeichnisse oder Dateien mit Root-Berechtigungen (Eigentümerrechte oder Einzelrechte) zu verwenden. Bei statischen HTML-Dateien wäre das kein großes Sicherheitsproblem, aber sobald dort Skripte (PHP, JavaScript, Formulare usw.) ausgeführt werden, können ernsthafte Probleme auftreten.
Antwort3
Wenn Sie nur Inhalte (HTML, Bilder usw.) bereitstellen müssen, ist es nicht erforderlich, den Verzeichnissen/Dateien in einen speziellen Besitz zuzuweisen /var/www
, solange der Apache2-Benutzer ( www-data
) über die Berechtigung zum Zugriff auf die Inhalte verfügt.
Falls Sie noch mehr tun müssen, müssen Sie möglicherweise die Eigentümer ändern. Wenn Sie beispielsweise Dateien aus einem CMS (wie WordPress, Joomla usw.) hochladen müssen, müssen Sie den Eigentümer des Upload-Verzeichnisses ändern www-data
(oder diesem Benutzer zumindest Schreibrechte erteilen).
Mir persönlich /var/www
gehören die Verzeichnisse dem root
Benutzer mit Mod 1777
(dasselbe wie /tmp
) und die Websites (d. h.: /var/www/site1
), die dem gehören www-data
.
Ich hoffe es hilft!