web-dev-qa-db-fra.com

propriétaire multiple du même dossier

J'ai changé le propriétaire du dossier /var/www/html en www-data. Maintenant, je veux aussi attribuer la propriété à ubuntu.

Comment puis je faire ça. Je ne sais pas à quel groupe ils appartiennent. Je me connecte à ssh en utilisant ubuntu nom_utilisateur et mon FTP fonctionne également avec ubuntu, mais maintenant, en raison de cette modification, je suis confronté à un problème de permission lors de la modification de fichier par ftp.

4
urfusion

Solution 1

Le moyen le plus simple si un seul utilisateur ubuntu et www-data a besoin d’accès serait

Sudo chown ubuntu:www-data <path/to/file or directory>

ceci donne la propriété à l'utilisateur ubuntu mais conserve la propriété du groupe www-data.

Donc, vous contrôlez ce que Ubuntu peut faire en

Sudo chmod u<+|- permission> <path/to/file or directory>

et vous contrôlez ce que www-data peut faire en

Sudo chmod g<+|- permission> <path/to/file or directory>

ou utilisez simplement des masques de permission complets (voir exemple ci-dessous).


Exemple :
L’utilisateur ubuntu doit pouvoir lire (r), écrire (w), exécuter (e)
www-data doit pouvoir lire (r), exécuter (e) mais pas écrire (w)
other users ne pourra faire aucune de ces choses

Sudo chmod u+rwx <path/to/file or directory>
Sudo chmod g-w+rx <path/to/file or directory>
Sudo chmod o-rwx <path/to/file or directory>

ou en utilisant un masque de permission ( générateur utile )

Sudo chmod 750 <path/to/file or directory>

Le paramètre -R des deux commandes, appliquant de manière récursive la propriété et les autorisations sur le contenu d'un dossier, est également intéressant pour votre cas.

Pour plus d'informations sur les options et les paramètres, voir
homme chown et homme chmod



Solution 2

Je préférerais PAS ajouter un utilisateur au groupe d'utilisateurs fonctionnels du système comme suggéré dans les commentaires, comme

Sudo usermod -a -G www-data ubuntu

comme c’est une façon très sale d’accorder des permissions à un utilisateur, car il pourrait aussi foutre les choses en l'air ...

Si vous le souhaitez, vous pouvez ajouter un tout nouveau groupe à l'aide de groupadd (voir man groupadd ).

groupadd <group name>

ajouter tous les utilisateurs qui auront les autorisations sur le (s) fichier (s) à ce groupe

Sudo usermod -a -G <group name> ubuntu
Sudo usermod -a -G <group name> www-data

(pour plus d'informations, voir man usermod )

et maintenant définir la propriété du fichier (s) à ce groupe

Sudo chgrp <group name> <path/to/file or directory>

que vous définissez les autorisations comme décrit précédemment, mais cette fois uniquement pour le
grouper (lire (r), écrire (w), exécuter (e))

Sudo chmod g+rwx <path/to/file or directory>
Sudo chmod u-rwx <path/to/file or directory>
Sudo chmod o-rwx <path/to/file or directory>

ou en utilisant le masque

Sudo chmod 070 <path/to/file or directory>

Notez qu'en utilisant cette solution, vous perdez le contrôle sur les différentes autorisations pour ubuntu et www-data.

6
derHugo