Ich bin Webentwickler. Ich erlaube einigen Leuten SSH-Zugriff auf meinen Rechner.
Ich möchte sicherstellen, dass sie nicht auf meine Dateien in zugreifen können /var/www/
.
Ist es also möglich, diese Dateien nur für den Webserver lesbar zu machen und dem Root-Benutzer Lese-/Schreibzugriff zu gewähren?
Antwort1
Ich gehe davon aus, dass der Apache-Benutzer heißt www-data
. Wenn Sie möchten, dass die Dateien /var/www/
nur von diesem Benutzer gelesen werden können, müssen Sie ihm den Eigentümer zuweisen:
sudo chown -R www-data /var/www/
Jetzt möchten Sie www-data
der einzige Benutzer sein, der Folgendes tatsächlich lesen/schreiben kann:
sudo chmod -R 700 /var/www/
Beachten Sie, dass root
immer Lese-/Schreibzugriff auf jede Datei besteht, unabhängig von den Berechtigungen. Ob dieses Setup eine gute Idee ist oder nicht – nun, ich würde diese SSH-Benutzer lieber in ihren Home-Ordnern chrooten. SieheKann ich einen SSH-Benutzer erstellen, der nur auf bestimmte Verzeichnisse zugreifen kann?
Antwort2
Abhängig vom Benutzer Ihres Webservers (normalerweise www-data):
chown www-data /var/www
chmod -R 700 /var/www
Dadurch wird der www-data-Benutzer zum Eigentümer Ihres /var/www-Verzeichnisses gemacht und nur der Eigentümer kann auf das Verzeichnis zugreifen.
Antwort3
Möglicherweise möchten Sie root oder einen anderen Benutzer zum Eigentümer Ihrer Webinhalte machen. Dadurch wird verhindert, dass der Webserver Inhalte überschreibt, wenn jemand über ein Skript oder einen anderen Einstiegspunkt Zugriff erhält. Ersetzen Sie root
in diesen Befehlen den Benutzer, dem die Inhalte gehören sollen.
chown -R root:www-data /var/www
chmod 2750 /var/www
user
Um (außer Root) die Verwaltung des Inhalts zu ermöglichen, müssen Sie den Benutzer zur Gruppe „www-data“ hinzufügen.
adduser user www-data
Einige Webanwendungen verfügen möglicherweise über Verzeichnisse, in die dynamische Inhalte geschrieben werden. Um den Zugriff zu ermöglichen, ändern Sie entweder den Besitzer in www-data oder erlauben Sie das Schreiben für die Gruppe.