Chmod pour autoriser les permissions en lecture et en écriture pour le répertoire

62

J'ai créé des répertoires à la racine. Je recherche la chmodcommande permettant à tous les utilisateurs de lire et d'écrire des autorisations sur un répertoire spécifique. Je l'ai fait chmod 775pour un fichier, mais j'en ai besoin pour un répertoire. Cela inclut les autorisations sur tous les fichiers et sous-répertoires.

chrissygormley
la source

Réponses:

34

0775est rarement correct pour un fichier. Les éléments suivants ajouteront les autorisations souhaitées appropriées au type approprié, sans perturber les autorisations existantes:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

Voir la page de manuel de find pour aider à déchiffrer cela.

Ignacio Vazquez-Abrams
la source
48

Ce serait un peu dangereux pour tous les utilisateurs d’avoir un accès en lecture et en écriture 0777, surtout si vous utilisez un serveur Web. Comme @unwind a dit:

chmod -R 0777 /mydirectory Permettra à tous les utilisateurs d'accéder en lecture et en écriture à tous les fichiers et dossiers de ce répertoire

En fonction de votre objectif, vous voudrez peut-être vous renseigner sur les éléments rémanents, qui permettent à tous les utilisateurs de créer de nouveaux fichiers, mais pas de supprimer ou de modifier les autres fichiers d'un répertoire:

chmod +t /mydirectory

De plus, au cas où vous ne le sauriez pas man chmod, la page de manuel de la chmodcommande apparaîtra , vous pouvez rechercher le texte "récursif" en tapant/recursive


la source
15

Ce n'est pas ainsi que fonctionne le modèle de protection Unix, vous ne pouvez pas définir des autorisations de manière récursive. Vous devez les définir sur chaque répertoire, complètement "en bas".

Bien sûr, vous pouvez effectuer le paramétrage de manière récursive, mais cela signifie simplement "passer en revue et définir ces autorisations sur tous les fichiers et dossiers ci-dessous", ce n'est pas ainsi que je comprends votre question.

Pour ce faire, utilisez l' option -R pour chmod:

$ chmod -R 0755 /my-cool-directory
se détendre
la source
@unwind - Je veux dire tous les fichiers et sous-répertoires d'un répertoire dans lequel chmod a des autorisations de lecture et d'écriture pour tous. Est-ce ce que cette commande fait? Merci
1
Lorsque je mets le -r avant le 0755, je reçois 0755 - aucun fichier ni répertoire de ce type .. mettre le -r après résout mon problème.
Tim Mottram
"faire". lol. agréable.
Ytpillai