Solution 1 :
Voici comment cela fonctionne :lorsque vous vous connectez via FTP/SSH et que vous téléchargez des fichiers, ils sont créés avec vos autorisations. PHP s'exécute avec différents privilèges d'utilisateur (ils sont spécifiés dans la configuration PHP-FPM, pas dans la configuration nginx), et comme le répertoire est accessible en écriture, l'utilisateur PHP (www-data) peut également y écrire. Mais le propriétaire de ce fichier est www-data, pas votre compte. Ce sont 2 comptes distincts au niveau d'autorisation du système de fichiers.
Je vous suggère de créer un utilisateur dédié avec le moins de privilèges possibles, qui posséderait le répertoire webroot et serait utilisé pour le téléchargement FTP/SSH ET exécuterait php. afin que vous puissiez rendre les fichiers de votre site Web non lisibles par le monde et plus sécurisés.
N'exécutez pas PHP avec un utilisateur privilégié (capacité sudo, privilèges d'écriture hors site docroot), cela pourrait compromettre la sécurité du serveur.
Solution 2 :
Le www-data
l'utilisateur et le groupe sont assez standard. Il peut s'agir de www ou de web sur d'autres systèmes mais l'idée est la même :exécutez les services Web avec un compte dédié. Ainsi, lorsque votre serveur Web est compromis, l'attaquant ne pourra accéder qu'aux fichiers auxquels ce compte a été accordé. .
Si un utilisateur doit gérer les services Web, vous devez ajouter l'utilisateur au groupe concerné (www-data) ou lui permettre de se connecter en su (ou sudo) à l'utilisateur concerné (toujours www-data).