Ich arbeite daran Debian10 with php8 fpm + apache2
, ich habe einen neuen Benutzer mit einer Gruppe erstellt username:username
und ein Home-Verzeichnis für diesen Benutzer eingerichtet, das sich unter befindet
/home/username/www
natürlich habe ich chmod -R
alle Ordner und Dateien zu username:username
, bevor es www-Daten waren, als die Dateien darin waren/var/html
also im Grunde habe ich ein kleines Skript, das versucht, einen Cache-Ordner zu schreiben, aber es funktioniert nicht, wenn ich die Ordner mit CHMOD auf Benutzername:Benutzername ändere. Es funktioniert nur, wenn ich die Ordner mit CHMOD auf WWW-Daten ändere?
der Cache-Ordner chown 755, und es funktioniert gut, wenn im Besitz von www-data
nichtusername
username
ist es möglich , eine Schreibberechtigung wie zuzulassen www-data
?
PS: Der Benutzername ist ein Beispiel für den echten
Antwort1
AmöglichAnsatz, um username
die Kontrolle über Dinge zu behalten, während www-data
aus Sicherheitsgründen nur Lesezugriff besteht und Schreibzugriff nur dort besteht, wo es nötig ist:
username
Als Eigentümer undwww-data
als Gruppe festlegenchown -R username:www-data /home/username/www
Geben Sie dem Besitzer vollen Zugriff (Lesen/Schreiben/Ausführen: 7) und der Gruppe nur Lesezugriff (Lesen/Ausführen: 5). Die
Other
Gruppe hat hier keinen Zugriff (0).chmod -R 750 /home/username/www
Gewähren Sie Schreibzugriff dort,
www-data
wo er benötigt wird:chmod -R 770 /home/username/www/path/writable/by/webserver
Vom Webserver erstellte Dateien bleiben vollständig sein Eigentum ( www-data:www-data
), der Verzeichnisbesitzer ( username
) kann sie jedoch weiterhin verschieben.
Antwort2
Wenn Sie PHP-FPM installieren, wird standardmäßig ein einzelner Pool installiert, der als www-data
Benutzer ausgeführt wird. Wenn Sie user
und group
in /etc/php/8.0/fpm/pool.d/www.conf
den richtigen Benutzer ändern, wird Ihr Skript als Benutzer ausgeführt und www-data
benötigt keine Schreibberechtigungen.
Ihre Konfiguration enthält standardmäßig diese beiden Zeilen:
user = www-data
group = www-data
Ersetzen Sie diese Zeilen durch:
user = username
group = username
Starten Sie den FPM-Daemon neu
service php8.0-fpm restart