web-dev-qa-db-fra.com

Comment puis-je accéder en écriture d'un dossier à tous les utilisateurs de Linux?

J'ai installé Apache2 sur Ubuntu tout à l'heure et j'ai remarqué que le dossier/var/www est protégé. Je peux juste Sudo tout mais je préférerais simplement lui donner un accès en écriture.

Comment puis-je faire ceci?

J'ai essayé Sudo chmod 7777 /var/www mais cela n'a pas fonctionné.

184
Carson Myers

Pour partager au mieux avec plusieurs utilisateurs pouvant écrire en /var/www, un groupe commun doit être attribué. Par exemple, le groupe par défaut pour le contenu Web sur Ubuntu et Debian est www-data. Assurez-vous que tous les utilisateurs ayant besoin d'un accès en écriture à /var/www font partie de ce groupe.

Sudo usermod -a -G www-data <some_user>

Puis définissez les autorisations appropriées sur/var/www.

Sudo chgrp -R www-data /var/www
Sudo chmod -R g+w /var/www

En outre, vous devez définir le répertoire et tous les répertoires en-dessous "GID", afin que tous les fichiers new et les répertoires créés sous /var/www appartiennent au groupe www-data.

Sudo find /var/www -type d -exec chmod 2775 {} \;    

Recherchez tous les fichiers dans /var/www et ajoutez les autorisations de lecture et d'écriture pour le propriétaire et le groupe:

Sudo find /var/www -type f -exec chmod ug+rw {} \;

Vous devrez peut-être vous déconnecter et vous reconnecter pour pouvoir apporter des modifications si vous modifiez l'autorisation de votre propre compte.

313
jtimberman

Il existe un moyen plus simple de faire cela, essayez de faire cette commande.

Sudo chmod -R 757 /var/www

En gros, la commande chmod modifie les autorisations et le commutateur -R affecte tous les utilisateurs. Ensuite, il donne simplement les autorisations correctes à utiliser.

32
Krishna Modi

Lire + écrire:

Sudo chmod -R a+rw /var/www

Lire + écrire + exécuter:

Sudo chmod -R a+rwx /var/www
27
paivaric

Vous pouvez également reproduire ce que jtimberman a suggéré d'utiliser - listes de contrôle d'accès . La commande setfacl accepte que -s remplace une ACL existante ou -m pour la modifier; -R pour rendre les ACL d'annuaire récursives; et -d pour définir les paramètres spécifiés comme paramètres par défaut, ce qui est utile si vous prévoyez des comptes d'utilisateurs à venir.

Celles-ci définissent simplement les autorisations comme vous le feriez pour l'utilisateur, le groupe, les autres et le masque à l'aide de chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

Et cela pourrait être comme vous le feriez pour un utilisateur spécifié ou son groupe:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

Et bien sûr, l’atout majeur est que vous pouvez désigner tout utilisateur spécifique, plusieurs utilisateurs, etc., sans avoir à modifier les paramètres de votre groupe. Et contrairement à chmod, si vous voulez que certains groupés aient accès à un répertoire et que d'autres groupés n'aient accès qu'à un autre, c'est possible avec setfacl. Enfin, pour afficher les listes de contrôle d'accès d'un répertoire, exécutez getfacl :

getfacl DIRECTORY

Et vous pouvez spécifier -R pour voir les ACL des sous-répertoires ou -d pour voir les valeurs par défaut.

7
Nikhil Chelliah

La réponse rapide et facile -

une. Ajoutez ( -a ) votre utilisateur ( nom_utilisateur ) au groupe ( -G ) www-data .

Sudo usermod -a -G www-data user_name

b. Donnez au groupe ( g ) les mêmes autorisations ( = ) que l'utilisateur propriétaire ( u ) de/var/www récursivement ( -R ).

Sudo chmod -R g=u /var/www

Explication: Apache 2 sous Debian/Ubuntu définit l'utilisateur et le groupe www-data en tant que propriétaire de/var/www . Les autorisations par défaut pour l'utilisateur sont "Afficher et modifier le contenu". Toutefois, le groupe ne peut afficher que "Afficher le contenu". Par conséquent, vous ajouter au groupe www-data et lui attribuer les mêmes autorisations que l'utilisateur wwww-data est un moyen simple et rapide de développement. Je le fais pour tous mes environnements de développement Web localhost (PC/Laptop).

2
user1138

Je l'utilise typiquement

chmod g+w /folder/ -R

C'est presque explicite.

Tous les membres du groupe g de /folder/ ont un accès write (+w), -R étant destiné à la récursivité des sous-dossiers.

1
Arda