Configuration utilisateur
Commençons donc par ajouter l'utilisateur principal au groupe d'utilisateurs Apache:
sudo usermod -a -G www-data demo
Cela ajoute l'utilisateur «démo» au groupe «www-data». Assurez-vous d'utiliser à la fois les options -a et -G avec la commande usermod ci-dessus.
Vous devrez vous déconnecter et vous reconnecter pour activer le changement de groupe.
Vérifiez les groupes maintenant:
groups
...
# demo www-data
Alors maintenant, je suis membre de deux groupes: le mien (démo) et le groupe Apache (www-data).
Configuration du dossier
Nous devons maintenant nous assurer que le dossier public_html appartient à l'utilisateur principal (démo) et fait partie du groupe Apache (www-data).
Mettons cela en place:
sudo chgrp -R www-data /home/demo/public_html
Comme nous parlons d'autorisations, j'ajouterai une note rapide concernant la commande sudo: c'est une bonne habitude d'utiliser des chemins absolus (/ home / demo / public_html) comme indiqué ci-dessus plutôt que des chemins relatifs (~ / public_html). Cela garantit que sudo est utilisé au bon endroit.
Si vous avez un dossier public_html avec des liens symboliques en place, soyez prudent avec cette commande car elle suivra les liens symboliques. Dans le cas d'un dossier public_html fonctionnel, modifiez chaque dossier manuellement.
Setgid
Bien jusqu'à présent, mais rappelez-vous que la commande que nous venons de donner n'affecte que les dossiers existants. Et quoi de neuf?
Nous pouvons définir la propriété de sorte que tout ce qui est nouveau se trouve également dans le groupe «www-data».
La première commande modifiera les autorisations du répertoire public_html pour inclure le bit "setgid":
sudo chmod 2750 /home/demo/public_html
Cela garantira que tous les nouveaux fichiers reçoivent le groupe «www-data». Si vous avez des sous-répertoires, vous voudrez exécuter cette commande pour chaque sous-répertoire (ce type d'autorisation ne fonctionne pas avec «-R»). Heureusement, de nouveaux sous-répertoires seront créés avec le bit «setgid» défini automatiquement.
Si nous devons autoriser l'accès en écriture à Apache, à un répertoire de téléchargement par exemple, définissez les autorisations pour ce répertoire comme suit:
sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads
Les autorisations ne doivent être définies qu'une seule fois, car les nouveaux fichiers se verront automatiquement attribuer la propriété appropriée.