Gewährung von Schreibberechtigungen für www-data group

Ich erstelle eine Website und ein Teil der Funktion besteht darin, benutzergenerierte Daten mit PHP auszuschreiben. Ich benutze Nginx unter Ubuntu 13.04. Im Moment teste ich nur und alles wird über nginx auf locahost bereitgestellt.

Mein PHP-Skript schreibt die Textdatei nicht (obwohl ich dies manuell tun kann) und ich denke, es ist ein Berechtigungsproblem beim Schreiben in mein Verzeichnis /var/www/example.com/public_html.

Im Moment besitze ich (iain) dieses Verzeichnis, aber es scheint wäre es sinnvoller, den Besitz des Verzeichnisses /var/www und alles darin auf den Benutzer www-data zu übertragen (oder sollte das Gruppe sein?), und fügen Sie mich auf der www-data Gruppe. Ist das Folgende der richtige Weg?

useradd -G www-data iain
chown -R www-data:www-data /var/www/example.com
chmod 775 /var/www

Bedeutet dies also, dass jeder in der www-Datengruppe jetzt in /var/www lesen, schreiben und exec kann?

Author: Calimo, 2013-09-16

1 answers

Zuerst erstellt useradd einen neuen Benutzer. Da Sie (iain) bereits existieren, möchten Sie stattdessen usermod aufrufen. Das wäre also:

sudo usermod -aG www-data iain
addgroup www-data

(beachten Sie die -a auf Debian - basierten Servern (einschließlich Ubuntu), die Sie zu dieser Gruppe hinzufügen und Ihre Mitgliedschaft zu anderen Gruppen beibehalten. Vergessen Sie es und Sie werden nur zur www-Datengruppe gehören-könnte eine schlechte Erfahrung sein, wenn einer von ihnen Rad wäre. Auf SUSE-Type-Servern ist die Option -A anstelle von -aG also lies man usermod sorgfältig, um es zu bekommen Recht.)

Zweitens möchten Sie nicht, dass Apache uneingeschränkten Zugriff auf /var/www hat: Dies ist möglicherweise eine schwerwiegende Sicherheitsverletzung. Erlauben Sie in der Regel nur das, was Sie brauchen, und nicht mehr (Prinzip des geringsten Privilegs). In diesem Fall benötigen Sie apache (www-data) und Sie (www-data group), um in /var/www/example.com/public_html zu schreiben (und zu lesen), also

sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 770 /var/www/example.com/public_html

Edit: Um Ihre ursprüngliche Frage zu beantworten, ja, jedes Mitglied von www-data kann jetzt /var/www lesen und ausführen (weil das letzte Bit Ihres berechtigungen ist 5 = lesen + exec). Da Sie den Schalter -R jedoch nicht verwendet haben, gilt dies nur für /var/www und nicht für die darin enthaltenen Dateien und Unterverzeichnisse. Nun, ob sie schreiben können, ist eine andere Sache und hängt von der Gruppe von /var/www ab, die Sie nicht festgelegt haben. Ich denke, es ist normalerweise root:root, also nein, sie können (wahrscheinlich) nicht schreiben.

Bearbeiten Sie auf 2014-06-22: es wurde ein Hinweis Hinzugefügt, dass -aG option ist nur auf Debian-basierten Servern. Es variiert anscheinend mit der Verteilung, also lesen man sorgfältig vor der Ausführung.

 59
Author: Calimo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-01-11 06:55:35