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


Autorisation pour les fichiers:

chmod 664 myFile // rw-rw-r--

Et pour les dossiers:

chmod 774 myFolder // rwxrwxr--

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

Quelle est la raison de cela?


26
2017-07-28 00:11


origine




Réponses:


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

Pour les répertoires, write permet de créer de nouveaux fichiers à l'intérieur.

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

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


33
2017-07-28 00:15



Un moyen facile de se souvenir est d'imaginer un double clic sur quelque chose. Lorsque vous double-cliquez sur le répertoire (ou cd) vous entrez (exécutez). - John T
Gardez à l'esprit qu'un simple accès en écriture sur un répertoire ne vous permettra pas de créer de nouveaux fichiers. Vous avez également besoin du permisson d'exécution sur le répertoire pour le faire. - Matthias Braun


Comme vous ne pouvez pas "exécuter" un répertoire, le bit d’exécution a été mieux utilisé. Le bit d'exécution d'un répertoire vous permet d'accéder aux éléments qui se trouvent dans le répertoire, même si vous ne pouvez pas répertorier le contenu des répertoires.

$ mkdir -p dir/
$ echo 'Hello World!' > 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
Hello World!

Du chmod page de manuel:

Les lettres rwxXst sélectionnent les bits du mode fichier pour les utilisateurs concernés: read (r), write (w), exécuter (ou rechercher des répertoires) (x), exécutez / recherchez uniquement si le fichier est un répertoire ou a déjà une autorisation d'exécution pour un utilisateur (X), définissez l'ID utilisateur ou de groupe sur l'exécution (s), l'indicateur de suppression restreinte ou le bit sticky (t).


9
2017-07-29 13:46





Le bit "execute" signifie en réalité "search" lorsqu'il est appliqué à des répertoires (à partir de man chmod). Cela semble raisonnable car execute n’a aucun sens pour un répertoire.


1
2017-07-28 00:15





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


1
2017-07-28 00:15





le x bit sur un dossier fait référence à l'indexation / recherche de répertoire / liste; rien de tout cela n'est possible si vous restez un peu faible.

Voici un exemple de son utilisation: Si vous voulez avoir un utilisateur avec des autorisations de lecture limitées sur chaque répertoire, sauf son domicile, par exemple /home/dummy, alors vous devez faire / et /home avoir la x bit set, sinon il ne peut même pas accéder à son répertoire personnel.


0
2017-07-28 00:14