718 votes

Chmod 777 pour un dossier et tout son contenu

J'ai un répertoire web /www et un dossier dans ce répertoire appelé store .

Sur store sont plusieurs fichiers et dossiers. Je veux donner au dossier store et tous les fichiers et dossiers dans le store dossier toutes les permissions.

Comment dois-je m'y prendre ? Je suppose que c'est par le biais de .htaccess.

67 votes

Vous devez sérieusement penser à donner la valeur 777 à tous les fichiers et dossiers du répertoire /www, ce qui signifie que tous vos fichiers et répertoires seront lisibles, inscriptibles et exécutables par le monde entier.

71 votes

Pour contrer la désinformation alarmiste dans les commentaires : vos fichiers sont probablement ne le fera pas être accessible en écriture ou même probablement lisible "par le monde entier". Vous devriez configurer un serveur web qui autorise explicitement ces choses, ce qui est très rare. Ces fichiers seront lisibles, inscriptibles et exécutables par tout utilisateur capable de se connecter à votre système.

3 votes

JoshNoe Ce n'est pas alarmiste. Lisez le top 10 des vulnérabilités de sécurité des applications web de l'OWASP : A5 est une "mauvaise configuration de la sécurité" (par exemple 777 sur le répertoire de téléchargement) et A1 est une "injection". A1 + A5 = pwnd . google.com/search?q=nginx+config+php+code+injection+jpg+commentaire Sous Linux, le serveur web s'exécute sous un utilisateur (par exemple www-data), de sorte qu'à chaque fois que le serveur sert un fichier il est un utilisateur connecté au système.

1289voto

petervaz Points 1240

Si vous optez pour une commande de console, ce serait :

chmod -R 777 /www/store . Le site -R (ou --recursive ) le rendent récursif.

Ou si vous voulez que tous les fichiers du répertoire actuel aient toutes les permissions, tapez :

chmod -R 777 ./

Si vous avez besoin de plus d'informations sur chmod voir la commande : Autorisation du fichier

3 votes

Et si vous avez un lien symbolique vers ce dossier, pour changer les permissions sur ce lien symbolique, procédez comme suit chmod -h 777 /some_path/symlink

4 votes

Parfois, vous devez ajouter sudo pour que cela fonctionne. sudo chmod -R 777 /www/store

0 votes

211voto

Daniel Elliott Points 13253

Si par toutes les permissions vous voulez dire 777

Naviguez vers le dossier et

chmod -R 777 .

0 votes

Est-ce qu'il couvre aussi tous les fichiers cachés en regardant avec . comme .git/ ?

196voto

Somnath Muluk Points 10173

Vous pouvez donner la permission au dossier et à tout son contenu en utilisant l'option -R c'est-à-dire les autorisations récursives.

Mais je suggère de ne pas donner l'autorisation 777 à tous les dossiers et à leur contenu. Vous devez donner une autorisation spécifique à chaque sous-dossier des dossiers du répertoire www.

Idéalement, donnez 755 pour des raisons de sécurité au dossier web.

sudo chmod -R 755 /www/store

Chaque chiffre a une signification dans la permission. Ne donnez pas la permission complète.

N   Description                      ls   binary    
0   No permissions at all            ---  000
1   Only execute                     --x  001
2   Only write                       -w-  010
3   Write and execute                -wx  011
4   Only read                        r--  100
5   Read and execute                 r-x  101
6   Read and write                   rw-  110
7   Read, write, and execute         rwx  111
  • Premier numéro 7 - Lecture, écriture et exécution pour l'utilisateur.
  • Deuxième numéro 5 - Lire et exécuter pour le groupe.
  • Troisième numéro 5 - Lire et exécuter pour les autres.

Si votre dossier Web de production compte plusieurs utilisateurs, vous pouvez définir les autorisations et les groupes d'utilisateurs en conséquence.

Plus d'informations :

  1. Comprendre les autorisations de fichiers : Que signifie "Chmod 777" ?
  2. Quelles sont les autorisations de fichiers à définir sur Web Root ?
  3. Pourquoi /var/www ne devrait pas avoir chmod 777

0 votes

Pourquoi le downvote ? Est-ce une mauvaise réponse ? Expliquez-moi s'il vous plaît pour que je puisse améliorer la qualité de la réponse.

2 votes

Je n'ai pas rétrogradé, mais je pense que la raison est que votre réponse ne couvre pas la question du PO. C'est toujours une bonne réponse, mais pas pour ce sujet.

8 votes

@MarijkeLuttekes : Il y a déjà des réponses qui donnent des lumières sur comment donner des permissions 777 à un dossier. Ce n'est pas mon intention de répondre. Je dis qu'il ne faut pas du tout donner l'autorisation 777 au dossier pour www dossier. Voir le premier commentaire pour la question d'anubhava. Donnez plutôt 755 ou les permissions requises. Nous comprenons parfois, à partir de la question, que le PO va dans la mauvaise direction. Nous devons alors indiquer le chemin à suivre. Ce n'est pas seulement le PO qui aura besoin de la solution. Avec la même question, une autre personne viendra sur cette page pour trouver la réponse, puis cette personne comprendra ce qu'est cette réponse.

32voto

eladrin201 Points 40

Vous pouvez également utiliser chmod 777 *

Cela donnera des permissions à tous les fichiers actuellement dans le dossier et aux fichiers ajoutés dans le futur sans donner de permissions au répertoire lui-même.

NOTE : Ceci doit être fait dans le dossier où se trouvent les fichiers. Pour moi, c'était une image qui avait un problème, alors je suis allé dans mon dossier d'images et j'ai fait ceci.

1 votes

Non, cela ne fonctionne pas sur Ubuntu. Les nouveaux fichiers semblent avoir des permissions différentes de celles des fichiers qui étaient déjà dans le répertoire.

20voto

Oui, très juste que le -R option dans chmod fait que les fichiers/sous-répertoires sous le répertoire donné obtiennent 777 permission. Mais généralement, ce n'est pas une bonne pratique de donner 777 à tous les fichiers et répertoires, car cela peut entraîner une insécurité des données. Essayez d'être très précis en donnant tous les droits à tous les fichiers et répertoires. Et pour répondre à votre question :

chmod -R 777 your_directory_name

... fonctionnera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X