à partir du niveau au-dessus de dir :
chmod -R a+x *dir*
pour donner à tous les utilisateurs (a) l'autorisation d'exécution sur tous les sous-répertoires et fichiers (+x) ou :
chmod -R a+X *dir*
pour donner à tous les utilisateurs l'autorisation d'exécution sur tous les sous-répertoires uniquement (+X)
Puisque vous avez rompu un arbre d'autorisations de répertoire avec chmod -R
vous devez tous les réparer. Exécutez ceci à partir du répertoire au-dessus de dir
:
find dir -type d -exec chmod u=rwx,go=rx {} +
find dir \! -type d -exec chmod u=rw,go=r {} +
Au cas où vous vous poseriez la question, vous avez besoin du x
autorisation d'accéder à un répertoire. Vous avez besoin de rx
pour pouvoir le lire.
Pour ceux qui ont une version moderne (GNU) de chmod
vous pourrez peut-être faire tout cela en une seule étape. Symboliquement, cela équivaut à "tout le monde (groupe/autre) a la même chose que le propriétaire, mais supprime les autorisations d'écriture du groupe/autre"
chmod -R a=u,go-w dir