154 votes

Linux - Comment chmoder récursivement un dossier ?

Comment puis-je donner récursivement un chmod à tout ce qui se trouve dans un dossier ?

Par exemple, j'ai un dossier appelé var qui contient de nombreux sous-dossiers et fichiers.

Comment puis-je appliquer chmod 755 de manière récursive à ce dossier et à tout son contenu ?

228voto

slhck Points 209720

Veuillez vous référer au manuel ( man chmod ):

-R, --recursive
change files and directories recursively

chmod -R 755 /path/to/directory réaliserait ce que vous voulez.

Cependant

  1. Vous n'avez pas l'habitude de vouloir 755 tous les fichiers ; ceux-ci devraient être 644, car ils n'ont souvent pas besoin d'être exécutables. Par conséquent, vous pourriez faire find /path/to/directory -type d -exec chmod 755 {} \; pour modifier uniquement les permissions des répertoires. Utilisez -type f y chmod 644 pour appliquer les permissions aux fichiers.

  2. Cela écrasera toutes les permissions existantes. Ce n'est pas une bonne idée de le faire pour /var - ce dossier a déjà les permissions correctes définies par le système. Par exemple, certains répertoires dans /var nécessitent 775 permissions (par ex, /var/log ).

Donc, avant de faire sudo chmod - en particulier sur les dossiers système - faites une pause et demandez-vous si cela est vraiment nécessaire.

18voto

Mike2012 Points 123

Pour un site web basé sur PHP, de nombreuses sources comme celui-ci recommande 755 pour les répertoires et 644 pour les fichiers.

Si vous êtes dans le DocumentRoot du site Web, vous pouvez le définir comme suit :

find . -type d -exec chmod 755 {} \;

find . -type f -exec chmod 644 {} \;

4voto

Vishrant Points 167

Si vous souhaitez postuler chmod vers un répertoire/fichier spécifique, vous pouvez faire usage de find comme suit :

find . -type f -name "*.sh" -print0 |xargs -0 chmod 755

1voto

BitKoch Points 11

Pour définir les droits de tous les fichiers (à 644) et de tous les répertoires (à 755) de votre répertoire YOUR_CATALOG en une seule fois, vous pouvez utiliser ceci :

find YOUR_CATALOG -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +

0voto

MD SHAYON Points 101

Vous pouvez donner toutes les autorisations pour votre localhost

sudo chmod -R goa=rwx /path/to/directory

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