244 votes

Comment puis-je donner l'accès en écriture d'un dossier à tous les utilisateurs sous linux ?

Je viens d'installer apache2 sur Ubuntu et j'ai remarqué que le dossier /var/www est protégé. Je peux juste sudo tout mais je préférerais lui donner un accès en écriture.

Comment puis-je le faire ?

J'ai essayé sudo chmod 7777 /var/www mais ça n'a pas marché.

0 votes

S'agit-il d'un serveur accessible au public ou n'a-t-il pas de connexion directe à Internet ? Dans le premier cas, il est important que vous preniez en compte les décisions relatives à la sécurité - les serveurs sur Internet sont constamment attaqués (jetez un coup d'œil dans votre /var/log/messages ou équivalent).

0 votes

C'est juste mon ordinateur portable, il n'est pas accessible depuis internet.

363voto

Loïc Wolff Points 14389

Pour mieux partager avec de multiples utilisateurs qui doivent pouvoir écrire en /var/www il faut lui attribuer un groupe commun. Par exemple, le groupe par défaut pour le contenu web sur Ubuntu et Debian est www-data . Assurez-vous que tous les utilisateurs qui ont besoin d'un accès en écriture à /var/www sont dans ce groupe.

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

Ensuite, définissez les permissions correctes sur /var/www.

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

En outre, vous devez faire en sorte que le répertoire et tous les répertoires qui lui sont inférieurs soient "set GID", de sorte que tous les nouveau les fichiers et répertoires créés sous /var/www appartiennent à la www-data groupe.

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

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

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

Il se peut que vous deviez vous déconnecter et vous reconnecter pour pouvoir effectuer des modifications si vous modifiez l'autorisation pour votre propre compte.

3 votes

C'est assez fastidieux... Je ne peux pas simplement donner aux utilisateurs un accès à ce dossier, comme s'il s'agissait de n'importe quel autre dossier ?

11 votes

Ce est comment vous y donnez accès. Il est plus rapide de copier et coller les commandes que d'essayer de naviguer dans les dialogues d'un gestionnaire de fichiers graphique pour faire la même chose. À long terme, il est utile de lire les pages de manuel de chmod et chgrp, au moins ("man chmod").

0 votes

Je n'ai peut-être pas compris les commandes la première fois que je l'ai lu, et votre modification le rend beaucoup plus clair.

79voto

paivaric Points 661

Read+Write :

sudo chmod -R a+rw /var/www

Lire+Écrire+Exécuter :

sudo chmod -R a+rwx /var/www

43voto

Krishna Modi Points 475

Il y a un moyen plus simple de le faire, essayez de faire cette commande.

sudo chmod -R 757 /var/www

Essentiellement, le chmod modifie les permissions et la commande -R affecte tous les utilisateurs. Il s'agit alors simplement de donner les bonnes autorisations d'utilisation.

3 votes

Pourriez-vous donner un aperçu de ce que la commande fait pour le PO ?

13 votes

-1 pour manque d'explication. D'ailleurs, chmod $permissions -R $file n'est pas valable

1 votes

Il s'agit d'options puis de permissions et non l'inverse

9voto

Eggs McLaren Points 945

Vous pouvez aussi reproduire ce que jtimberman a suggéré en utilisant les listes de contrôle d'accès . Le site setfacl accepte -s pour remplacer une liste de contrôle d'accès existante ou -m pour la modifier ; -R pour rendre les listes de contrôle d'accès aux répertoires récursives ; et -d pour que les paramètres spécifiés deviennent les paramètres par défaut, ce qui est utile si vous anticipez les comptes utilisateurs à venir.

Ceux-ci définissent simplement les autorisations comme vous le feriez pour l'utilisateur, le groupe, autre, et le masque en utilisant chmod :

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

Et c'est ainsi que vous pourriez le faire pour un utilisateur spécifique ou son groupe :

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

Et bien sûr, la force est que vous pouvez désigner un utilisateur spécifique, plusieurs utilisateurs, etc., le tout sans avoir à modifier vos paramètres de groupe. Et contrairement à chmod, si vous voulez que certains groupies aient accès à un répertoire et que d'autres groupies n'aient accès qu'à un autre, c'est réellement possible avec setfacl. Enfin, pour visualiser les ACLs d'un répertoire, exécutez getfacl :

getfacl DIRECTORY

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

5voto

user1138 Points 97

La réponse rapide et facile -

a. Ajouter ( -a ) votre utilisateur ( nom d'utilisateur ) au groupe ( -G ) www-data .

sudo usermod -a -G www-data user_name

b. Donnez au groupe ( g ) le même ( \= ) en tant qu'utilisateur propriétaire ( u ) de /var/www De manière récursive ( -R ).

sudo chmod -R g=u /var/www

Explication : Apache 2 sur Debian/Ubuntu définit les paramètres de l'utilisateur et du groupe. www-data en tant que propriétaire de /var/www . Les permissions par défaut de l'utilisateur sont "Voir et modifier le contenu", mais le groupe ne peut que "Voir le contenu". Donc, en vous ajoutant au groupe www-data et en lui donnant les mêmes permissions que l'utilisateur wwww-data, c'est un moyen rapide et facile de commencer à développer. Je fais cela pour tous mes environnements de développement Web sur l'hôte local (PC/ordinateur portable).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X