chmod: impossible de lire le répertoire `. ‘: permission refusée

J’essaye de changer récursivement la permission des répertoires et des sous-répertoires pour le répertoire “data” et de courir dans error..can quelqu’un peut fournir des entrées sur l’erreur ci-dessous?

chmod -R 0644 . chmod: cannot read directory `.': Permission denied 

Les répertoires ont besoin du jeu d’permissions d’exécution pour voir leur contenu.

De http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm

Vous pouvez penser à lire et à exécuter des répertoires de cette façon: les répertoires sont des fichiers de données contenant deux informations pour chaque fichier, le nom du fichier et son numéro d’inode. L’autorisation de lecture est nécessaire pour accéder aux noms des fichiers d’un répertoire. La permission Execute (aka search) est nécessaire pour accéder aux inodes des fichiers dans un répertoire, si vous connaissez déjà le nom du fichier.

Lorsque vous modifiez une autorisation de répertoire sur 644, vous ne pouvez pas lire les fichiers dans ce répertoire, mais vous pouvez lire ce répertoire pour voir s’il existe.

Vous devez faire ceci:

 $ chmod -R 0755 . 

Un meilleur moyen pourrait être d’utiliser une autorisation de chaîne si vous voulez simplement désactiver

Sinon, vous pouvez voir le répertoire, mais pas accéder aux informations dans ce répertoire.

Vous pouvez peut-être mieux utiliser les permissions relatives au lieu d’permissions absolues:

 $ chmod -R go-w . 

Supprime les droits d’écriture du groupe et des autres utilisateurs, sans toucher aux permissions d’exécution.

Vous pouvez également utiliser find juste pour définir les répertoires ou simplement pour définir des fichiers:

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

Cela ne touchera que les répertoires, en définissant les permissions de lecture et d’exécution sur tous les répertoires et en définissant les droits d’écriture pour le propriétaire. De cette façon, vous ne définissez pas de droits d’exécution sur les fichiers eux-mêmes.

Je suppose que, puisque vous utilisez la récursivité, vous essayez de créer un CD dans un répertoire qui n’a pas de permission d’exécution pour vous.