43 votes

Pourquoi un dossier doit-il être exécutable ?

Autorisation pour les fichiers :

chmod 664 monFichier // rw-rw-r--

Et pour les dossiers :

chmod 774 monDossier // rwxrwxr--

Si je n'utilise que les autorisations de "lecture et écriture", les dossiers ne montreront pas leur contenu.

Quelle en est la raison ?

53voto

Daenyth Points 6152

Les répertoires (ils ne sont généralement pas appelés dossiers dans *nix) ont une signification différente pour les bits de permission que les fichiers normaux.

Pour les répertoires, l'écriture permet de créer de nouveaux fichiers et de supprimer des fichiers à l'intérieur.

Lecture vous permet de lister les fichiers à l'intérieur.

L'exécution vous permet d'y entrer et d'accéder aux fichiers (ou autres répertoires) à l'intérieur.

28voto

rlanham Points 61

Étant donné que vous ne pouvez pas "exécuter" un répertoire, le bit d'exécution a été mis à meilleure utilisation. Le bit d'exécution sur un répertoire vous permet d'accéder aux éléments qui se trouvent à l'intérieur du répertoire, même si vous ne pouvez pas lister le contenu des répertoires.

$ mkdir -p dir/
$ echo 'Bonjour le monde!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Bonjour le monde!

D'après la page de manuel de chmod:

Les lettres rwxXst sélectionnent les bits de mode de fichier pour les utilisateurs affectés : lire (r), écrire (w), exécuter (ou rechercher pour les répertoires) (x), exécuter/rechercher uniquement si le fichier est un répertoire ou a déjà la permission d'exécution pour certains utilisateurs (X), définir l'ID utilisateur ou de groupe lors de l'exécution (s), drapeau de suppression restreint ou bit collant (t).

2voto

Les permissions d'exécution sur un répertoire vous permettent de le traverser, pour utiliser les ressources qu'il contient.

1voto

Le bit "execute" signifie en réalité "recherche" lorsqu'il est appliqué aux répertoires (cf. man chmod). Cela semble raisonnable puisque "execute" n'a pas de sens pour un répertoire.

0voto

SillyInventor Points 71

Le bit x sur un dossier fait référence à l'indexation/la recherche/l'affichage du répertoire ; aucun de ces éléments n'est possible si vous maintenez ce bit bas.

Voici un exemple de son utilisation : Si vous voulez qu'un utilisateur ait des autorisations de lecture limitées sur chaque répertoire sauf le sien, disons /home/dummy, alors vous devez définir les bits x sur / et /home, sinon il ne pourra même pas accéder à son répertoire personnel.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X