Ich habe gerade apache2 auf Ubuntu installiert und dabei festgestellt, dass der Ordner /var/www geschützt ist. Ich kann einfach alles mit sudo
machen, aber ich würde ihm lieber nur Schreibrechte geben.
Wie kann ich das machen?
Ich habe sudo chmod 7777 /var/www
versucht, aber es hat nicht funktioniert.
Um am besten mit mehreren Benutzern, die in /var/www
schreiben können sollen, zu teilen, sollte es einer gemeinsamen Gruppe zugeordnet werden. Zum Beispiel ist die Standardgruppe für Webinhalte unter Ubuntu und Debian www-data
. Stellen Sie sicher, dass alle Benutzer, die Schreibzugriff auf /var/www
benötigen, in dieser Gruppe sind.
sudo usermod -a -G www-data <some_user>
Setzen Sie dann die richtigen Berechtigungen auf /var/www.
sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www
Zusätzlich sollten Sie das Verzeichnis und alle Verzeichnisse darunter "set GID" machen, so dass alle neuen Dateien und Verzeichnisse, die unter /var/www
erstellt werden, der Gruppe www-data
gehören.
sudo find /var/www -type d -exec chmod 2775 {} \;
Suchen Sie alle Dateien in /var/www
und fügen Sie Lese- und Schreibrechte für Eigentümer und Gruppe hinzu:
sudo find /var/www -type f -exec chmod ug+rw {} \;
Möglicherweise müssen Sie sich ab- und wieder anmelden, um Änderungen vornehmen zu können, wenn Sie die Berechtigung für Ihr eigenes Konto bearbeiten.
Sie können auch replizieren, was jtimberman mit access control lists vorgeschlagen hat. Der Befehl setfacl akzeptiert -s, um eine bestehende ACL zu ersetzen oder -m, um sie zu ändern; -R, um Verzeichnis-ACLs rekursiv zu machen; und -d, um die angegebenen Einstellungen als Standard zu setzen, was nützlich ist, wenn Sie zukünftige Benutzerkonten vorhersehen.
Damit setzen Sie die Berechtigungen so, wie Sie es mit chmod für den Benutzer, die Gruppe, andere und die Maske tun würden:
setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY
Und so könnte man es für einen bestimmten Benutzer oder seine Gruppe machen:
setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY
Der Vorteil ist natürlich, dass Sie einen bestimmten Benutzer, mehrere Benutzer usw. angeben können, ohne Ihre Gruppeneinstellungen ändern zu müssen. Und im Gegensatz zu chmod ist es mit setfacl tatsächlich möglich, dass einige Gruppen Zugriff auf ein Verzeichnis haben und andere Gruppen nur auf ein anderes. Um schließlich die ACLs eines Verzeichnisses einzusehen, führen Sie getfacl aus:
getfacl DIRECTORY
Und Sie können -R angeben, um die ACLs für Unterverzeichnisse zu sehen, oder -d, um die Standardeinstellungen zu sehen.
Können Sie einfach chmod 0777 /var/www
ausprobieren?
Ein Wort der Warnung: Wenn Sie jedem den Zugriff auf diesen Ordner erlauben, bedeutet das, dass Hacker auf diesen Ordner zugreifen können, wenn sie Zugang zu Ihrem System erhalten. Deshalb ist es besser, eine Gruppe zulässiger Benutzer zu erstellen und dieser Gruppe Schreibrechte zu geben.