D'abord, réfléchissez: qu'est-ce qu'un répertoire? C'est juste une liste d'éléments (fichiers et autres répertoires) qui y vivent. Donc: répertoire = liste de noms.
Lire bit = Si défini, vous pouvez lire cette liste. Donc, par exemple, si vous avez un répertoire nommé poems
:
- Vous pouvez
ls poems
et vous obtiendrez une liste des objets qui y vivent ( -l
ne révélera aucun détail!).
- Vous pouvez utiliser la complétion de ligne de commande c'est-à-dire
touch poems/so <TAB> poems/somefile
.
- Vous ne pouvez pas créer
poems
votre répertoire de travail cd
.
Write bit = Si défini, vous pouvez modifier cette liste, c'est-à-dire vous pouvez {ajouter, renommer, supprimer} des noms. Mais! En réalité, vous ne pouvez le faire que si le bit d'exécution est également défini.
Execute bit = Définissez ce répertoire comme votre répertoire de travail cd
. Vous avez besoin de cette permission si vous voulez:
- accéder (lire, écrire, exécuter) les éléments qui y vivent.
- modifier la liste elle-même, c'est-à-dire y ajouter, renommer, supprimer des noms (bien entendu, le bit d'écriture doit être défini sur le répertoire).
Cas intéressant 1 : Si vous disposez des autorisations d'écriture + exécution sur un répertoire, vous pouvez {supprimer, renommer} les éléments qui y sont contenus même si vous ne disposez pas d'une interdiction d'écriture sur ces éléments. (utilisez un peu collant pour éviter cela)
Cas intéressant 2 : Si vous disposez d'une autorisation d'exécution (mais pas d'écriture) sur un répertoire ET que vous avez l'autorisation d'écriture sur un fichier résidant dans celui-ci, vous ne pouvez pas supprimer le fichier (car il implique de le supprimer de la liste). Cependant, vous pouvez en effacer le contenu. Par exemple, s'il s'agit d'un fichier texte, vous pouvez utiliser vi pour l'ouvrir et tout supprimer. Le fichier sera toujours là, mais il sera vide.
Sommaire:
Lire le bit = Vous pouvez lire les noms sur la liste.
Write bit = Vous pouvez {ajouter, renommer, supprimer} les noms de la liste SI le bit d'exécution est également défini.
Execute bit = Vous pouvez faire de ce répertoire votre répertoire de travail.
PS: L'article mentionné par Kusalananda est une bonne lecture.