GNU/Linux >> Tutoriels Linux >  >> Linux

Donner l'autorisation d'exécution aux répertoires mais pas aux fichiers

Pour donner l'autorisation d'exécution (recherche) aux répertoires, mais pas aux fichiers, utilisez :

chmod -R +X .

Pour attribuer toutes les autorisations comme dans votre exemple, utilisez :

chmod -R u=rwX,g=rX,o= .

-R modifie les fichiers et les répertoires de manière récursive, tandis que +X définit l'exécution/la recherche uniquement si le fichier est un répertoire ou a déjà l'autorisation d'exécution pour un utilisateur. r et w sont bien sûr pour la lecture et l'écriture, respectivement.

Mode X (supérieur x ) est documenté à la fois dans la page de manuel traditionnelle et dans la documentation d'informations.

Il devrait également fonctionner sur d'autres systèmes de type Unix, par ex. FreeBSD, NetBSD ou OpenBSD. Citant la page de manuel chmod(1) de The Open Group Base Specifications Issue 7, édition 2018 :

Le X Le symbole perm a été adopté à partir des systèmes basés sur BSD car il fournit les fonctionnalités généralement souhaitées lors de l'exécution récursive (-R option) modifications. Une fonctionnalité similaire n'est pas fournie par find utilitaire. Versions BSD historiques de chmod , cependant, n'a pris en charge que X avec op + ; il a été étendu dans ce volume de POSIX.1-2017 car il est également utile avec op =. (Il a également été ajouté pour op - même s'il duplique x , dans ce cas, car il est intuitif et plus facile à expliquer.)

man 1 chmod
info '(coreutils)Conditional Executability'


Si vous voulez le faire de manière récursive, c'est-à-dire , aux répertoires dans les répertoires dans les répertoires, la commande à utiliser est :

 find /path/to/starting/directory -type d -exec chmod +x {} \;

Cela localise tous et uniquement les sous-répertoires (-type d flag) du répertoire /path/to/starting/directory, puis effectue le changement requis d'autorisation d'exécution pour chacun d'eux. L'espace avant \; est obligatoire.


Linux
  1. Trouver les plus gros fichiers ou répertoires ?

  2. Linux Supprimer des fichiers et des répertoires

  3. lsof :commande introuvable

  4. décompresser :commande introuvable

  5. Linux :définir l'autorisation uniquement sur les répertoires

Comment modifier les autorisations de fichiers de manière récursive avec chmod sous Linux

Comment modifier les autorisations pour les fichiers et les répertoires

Utilisez la commande find mais excluez les fichiers dans deux répertoires

Trouver les fichiers existant dans un répertoire mais pas dans l'autre

bash - supprime tous les répertoires (et contenus) mais pas les fichiers dans pwd

Comment copier une arborescence de répertoires mais pas les fichiers sous Linux ?