====== Permissions Linux ====== --- //[[f.raynaud@arles-linux.org|François Raynaud]] 2020/06/08 15:52// Mise en production d'openAssociation La procédure est valable pour toutes les applications openMairie source : [[https://www.debian-fr.org/t/apache-reglage-des-droits/52588|réglage des droits apache]] ===La sécurisation de /var/www/html/openassociation_1.0.1=== L'utilisateur Apache (et donc PHP) est « www-data ». Seul le propriétaire (u=root) peut modifier les fichiers ou écrire dans /var/www, et le groupe (g=www- data) peut uniquement les lire. Les autres (o) ne peuvent rien faire. chown -R root:www-data /var/www/html/openassociation_1.0.1 find /var/www/html/openassociation_1.0.1 -type f -print0 | xargs -0 chmod -t,a-rwxs,u+rw,g+r find /var/www/html/openassociation_1.0.1 -type d -print0 | xargs -0 chmod -t,a-rwxs,u+rwx,g+rx [[https://fr.wikipedia.org/wiki/Chmod|chmod sur wikipedia]] * option -t de chmod : * option a-rwxs : efface les droits à tous (a) * option a-rwxs : "s" est le sticky bit qui permet de supprimer un dossier ou un fichier seulement si on en est propriétaire * option u+rw : donne les droits lecture et écriture à u * option g+r : donne les droits de lecture à g * option -print0 de find : les noms de fichiers avec espaces et caractère particulier seront traités * xarg : permet de récupérer les arguments en sortie de la commande précédente et de les traiter à travers un pipe. On peut alternativement utiliser la méthode octale qui se présente comme ceci : * r (4) : autorisation de lecture * w (2) : autorisation d'écriture * x (1) : autorisation d'exécution chown -R root:www-data /var/www/html/openassociation_1.0.1 find /var/www/html/openassociation_1.0.1 -type f -print0 | xargs -0 chmod 640 find /var/www/html/openassociation_1.0.1 -type d -print0 | xargs -0 chmod 750 ===Mettre les droits d'écriture d'apache /var/www/html/openassociation_1.0.1/var=== Il faut que www-data puisse écrire dans le répertoire var pour écrire les logs et les fichiers. Le -R (récursif) dans le cas d’un dossier, car openAssociation a besoin d’écrire dans le dossier mais elle a aussi besoin de pouvoir écrire dans les sous-dossiers et les fichiers. chmod -R g+w /var/www/html/openassociation_1.0.1/var Si il n'existe pas il faut créer le dossier /var/www/html/openassociation_1.0.1/var avec la méthode octale, cas ou les fichiers sont stockés en var/www/html/files chown -R root:www-data files/ find /var/www/html/files -type f -print0 | xargs -0 chmod 660 find /var/www/html/files -type d -print0 | xargs -0 chmod 770 Note de JPA du 11 mai 2020 Il faut effectuer les actions dans cet ordre : mkdir /var/www/html/files touch /var/www/html/files/test chown -R root:www-data files/ find /var/www/html/files -type f -print0 | xargs -0 chmod 660 find /var/www/html/files -type d -print0 | xargs -0 chmod 770 [[https://gitlab.com/arles-linux/install_openmairie/-/tree/master/debian/scripts_droits|Procédures sous gitlab]]