Si nous vérifions la propriété de site1, nous trouverons quelque chose comme ceci,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
Cela signifie que le répertoire appartient à l'utilisateur root, au groupe root. Bien que l'utilisateur root dispose d'autorisations en écriture (plus les autorisations de lecture et d'exécution) sur le répertoire, le groupe root dispose uniquement des autorisations de lecture et d'exécution.
Nous voudrons changer la propriété du groupe en un autre (nouveau) groupe et ajouter utilisateur1 à ce groupe particulier. Nous donnerons également une permission en écriture à ce groupe particulier.
Créer un nouveau groupe,
sudo addgroup site1
Ajouter utilisateur1 au groupe nouvellement créé,
sudo adduser user1 site1
Vérifiez que l'utilisateur1 est vraiment dans ce groupe,
groups user1
La sortie devrait être une liste quelque chose comme,
user1 : <other-groups> site1
Nous pouvons maintenant changer la propriété du groupe de votre répertoire prévu.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Accorder l'autorisation d'écriture à ce nouveau propriétaire du groupe,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Vérifiez que tous les changements sont bien là,
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
Ainsi, le répertoire appartient maintenant à l'utilisateur root, groupe site1. L'utilisateur root et le groupe site1 ont tous deux l'autorisation d'écriture (plus les autorisations de lecture et d'exécution) sur le répertoire. Tout utilisateur appartenant au groupe site1 bénéficiera de tous les privilèges accordés à ce groupe.
Maintenant, connectez-vous en tant qu'utilisateur1, accédez au répertoire site1 et essayez de créer un fichier dans ce répertoire,
echo "My User1 Site" > index.html
bash: index.html: Permission denied
Cela a échoué car le groupe principal d'utilisateur1 n'est probablement pas le site1. Alors, changez pour ce groupe.
newgrp - site1
Essayez de recréer le fichier (sachez que vous avez été déplacé dans le répertoire de base de l'utilisateur1 après avoir changé de groupe), cela devrait fonctionner maintenant. Puisque les fichiers créés auront l’autorisation de lecture universelle, Apache (ou votre serveur Web) ne devrait rencontrer aucun problème pour y accéder.
MODIFIER
De plus, comme l'a souligné dan08 dans un commentaire, vous devez ajouter www-data au groupe site1.
sudo adduser www-data site1
Sur de nombreuses distributions (pas toutes), www-data est l'utilisateur sous lequel le serveur Web Apache s'exécute. Cela signifie également que tout ce que fait Apache (notamment les scripts PHP) sera effectué par défaut avec les autorisations de l'utilisateur www-data (et du groupe www-data) également. WordPress utilise l'utilisateur www-data pour écrire des fichiers.
Si vous voulez voir comment fonctionne le serveur Web Apache, lancez la commande,
ps aux | grep apache2 | less
Permission denied
message n'est pas dû au "groupe principal", mais plutôt à l'utilisateur qui ne fait pas encore partie de ce groupe (en ce qui concerne le système d'exploitation). Si vous vous déconnectez et que vous vous reconnectez, cela fonctionnera comme prévu (sans exécuternewgrp - site1
).www-data
des autorisations d'écriture au groupe si vous finissez par devoir ajouterwww-data
à quoi que ce soitsite1
?www-data' write permissions? If that is the question,
www-data 'n'est pas un groupe, c'est un utilisateur. S'il vous plaît laissez-moi savoir si j'ai mal compris votre question.Créez deux groupes:
site1grp
etsite2grp
Ajouter
www-data
aux deux groupes.Ajouter utilisateur1 et utilisateur2 aux groupes appropriés
Modifiez l'autorisation de vos dossiers de site de sorte que le propriétaire de l'utilisateur soit www-data et que le propriétaire du groupe soit le groupe approprié.
A maintenant
www-data
les autorisations d'utilisateur et de groupe sur les deux sites et chaque utilisateur a les autorisations de groupe pour leur site respectif.la source
Pour ceux qui ont leur dossier racine wordpress sous leur dossier personnel:
Ubuntu / apache
Ajoutez votre utilisateur au groupe www-data:
CREDIT Octroi d'autorisations d'écriture sur le groupe www-data
Vous voulez faire appel
usermod
à votre utilisateur. Donc ce serait:En supposant que le
www-data
groupe existeVérifiez que votre utilisateur est dans le
www-data
groupe:Vous devriez obtenir quelque chose comme:
votreUserGroupName est généralement similaire à votre nom d'utilisateur
Changer récursivement la propriété de groupe du dossier en conservant la propriété de l'utilisateur
Changer de répertoire sur yourWebSiteFolder
Modifiez de manière récursive les premissions de groupe des dossiers et sous-dossiers pour activer les autorisations en écriture:
mode de
/home/yourUserName/yourWebSiteFolder/'
changé de0755 (rwxr-xr-x)
à0775 (rwxrwxr-x)
Modifiez récursivement les premissions de groupe des fichiers et des sous-fichiers pour activer les autorisations d'écriture:
Le résultat devrait ressembler à quelque chose comme:
Équivalent à:
Les autorisations seront comme 664 ou 775.
la source
Vous devez créer un nouveau groupe pour le "nouvel utilisateur", puis ajouter le www-data et le "nouvel utilisateur" à ce groupe:
Ensuite, vous pouvez changer le propriétaire
new_user
et le groupe pournew_group
:Ensuite, vous devrez donner un accès de groupe au site1. www-data pourra toujours accéder au site, car il appartient au groupe new_group, tandis que new_user ne pourra pas accéder à site2, car il n'appartiendra pas au groupe www-data, qui possède le site2.
la source
chmod
)? Votre réponse ne mentionne pas le mode où que ce soit qui peut faire la différence d'être en sécurité (ou casser des choses).chmod
) en révoquant toutes les autorisations pour OTHERS.En supposant que tous les fichiers appartiennent déjà à l'
www-data
utilisateur (vous pouvez le vérifier avec lals -slah
commande) appartenant auwww-data
groupe (colonne suivante après le nom d'utilisateur dans la liste des fichiers), vous pouvez simplement ajouter votre utilisateur au mêmewww-data
groupe pour permettre l'édition de ces fichiers.pour utilisateur existant, ou
pour nouvellement créé
la source