Différence entre le répertoire exécutable et les fichiers exécutables

20

Le fait d'avoir une autorisation exécutable sur un répertoire signifie-t-il que les fichiers qu'il contient sont également exécutables même si les fichiers n'ont pas explicitement défini d'autorisations exécutables?

Programmeur Shady
la source
Non. L'autorisation d'exécution sur les répertoires signifie l'autorisation de recherche (pour lire les attributs de fichier et cd'ing dans le répertoire). Pour exécuter un fichier, vous devez disposer de l'autorisation d'exécution sur ce fichier.
ridgy
Également pertinent: unix.stackexchange.com/a/251302/135943
Wildcard

Réponses:

27

Non, l'autorisation exécutable pour les répertoires signifie que vous pouvez entrer dans le répertoire, en faisant votre répertoire de travail actuel en utilisant cd, et voir quels fichiers il contient.

Il est utile de considérer un répertoire comme un fichier qui est une liste de noms de fichiers.

Bit de lecture - S'il est défini, vous pouvez lire cette liste. Si vous avez un répertoire nommé livres:

  • Vous pouvez lslivres et vous obtiendrez une liste des fichiers qu'il contient ( -lne fonctionnera pas cependant).

  • Vous pouvez utiliser la complétion en ligne de commande, c'est-à-dire touch books/bo+ Tabpour obtenir books/bookfile.

  • Vous ne pouvez pas faire des livres votre répertoire de travail, cdcela ne fonctionnera pas.

Écrire un bit - Vous pouvez modifier les noms de cette liste dessus. Vous ne pouvez le faire que si le bit d'exécution est également défini.

Exécuter le bit - Vous avez besoin de cette autorisation si vous voulez:

  • Avoir un accès aux fichiers du répertoire.
  • Modifiez les détails de la liste elle-même. Vous pouvez ajouter, renommer ou supprimer des noms dans la liste, mais cela nécessite également une autorisation d'écriture sur le répertoire.

La définition du bit d'exécution sur un répertoire n'affecte en rien les fichiers eux-mêmes, mais affecte votre accès à ceux-ci. Par exemple, si vous disposez d'un accès en écriture et en exécution pour un répertoire, vous pouvez déplacer, renommer et supprimer des fichiers, même si vous ne pouvez pas écrire dans les fichiers eux-mêmes.

Arronical
la source
Cela explique beaucoup de choses en fait! Maintenant, je comprends pourquoi certains répertoires apparaissent avec une superposition d'arrière-plan colorée sur leur nom dans l'émulateur de terminal.
Shady Programmer
J'ai ajouté un peu d'informations sur toutes les autorisations, penser à un répertoire comme un dossier plein de fichiers n'est pas aussi utile que de le considérer comme un fichier en soi, qui n'est qu'une liste de fichiers en matière d'autorisations.
Arronical