La réponse acceptée ne s'appliquera qu'aux fichiers en cours. Cependant, je voulais que mes scripts PHP puissent modifier en écriture les fichiers dans /var/www/html
Pour le préparer, Chaque nouveau fichier devrait se voir attribuer le groupe www-data par défaut. (même les fichiers créés par root, cron ou un utilisateur sudo) Et nous avons besoin du groupe write sur tous les fichiers dans /var/www/html
De plus, je voulais que /var/www soit accessible en écriture par PHP mais non visible par les autres. (pour garder les error_logs, etc)
Certains diront que ce n'est pas sûr, mais tous les fichiers PHP sont mes scripts. Et je veux qu'ils puissent créer de nouveaux fichiers, ajouter des données dans des fichiers existants et même les supprimer. J'avais donc besoin de cette configuration.
Voici comment procéder :
# Assign Recursive WWW User & Group: (logs + html)
sudo chgrp www-data /var/www
sudo chmod 770 /var/www
sudo chmod 775 /var/www/html
sudo chmod g+s /var/www
sudo chmod g+s /var/www/html
sudo chown -R <a_sudo_user>:www-data /var/www
# Apply File And Folder Defaults:
See more: https://unix.stackexchange.com/questions/1314/how-to-set-default-file-permissions-for-all-folders-files-in-a-directory
# -d: default, -m: modify, g:: apply to group permissions, o:: other permissions, -R: apply recursively
# set group to rwx default:
setfacl -d -m g::rwx /var/www
setfacl -d -m g::rwx /var/www/html
# Reboot Server Anyway:
sudo reboot
# Check Permissions
getfacl /var/www
getfacl /var/www/html
getfacl /var/www/test.txt
getfacl /var/www/html/test.txt
OR USE: FTP FileZilla GUI