Sous Linux, la permission «écriture» est-elle équivalente à «exécuter» pour les répertoires?

16

L'autorisation d'exécution est logique pour les fichiers (qui incluent des scripts, etc.), mais en ce qui concerne les répertoires, l' write (w)autorisation fonctionne de la même manière que execute (x), non?

Ce qui signifie que si nous accordons l'autorisation d'écriture à un répertoire, nous vérifions également normalement "x" (pour exécuter) pour ce répertoire, non?

c'est moi
la source
2
Votre question est désormais incompréhensible. Il n'est pas clair où vous parlez des autorisations sur un fichier et où vous parlez des autorisations sur le répertoire qui le contient.
Gilles 'SO- arrête d'être méchant'
1
Si vous avez une nouvelle question, pouvez-vous simplement la poster séparément ?
Michael Mrozek
1
Que voulez-vous dire par "l'autorisation de lecture est tout ce dont nous avons besoin pour un fichier?" Tout ce dont vous avez besoin pour quoi? Pour lire un fichier? Oui. Pour modifier un fichier ... non, sauf si vous êtes le propriétaire de ce fichier.
gabe.
En plus d'omettre les opérations "peut lire, peut renommer / supprimer des fichiers dans le répertoire", votre "000: ne peut pas le supprimer" est en fait incorrect. Si le répertoire est déjà vide, vous pouvez le supprimer si vous pouvez écrire dans son répertoire parent. S'il n'est pas vide, vous ne pouvez pas le supprimer jusqu'à ce qu'il soit vide (le rendre vide est une opération récursive qui nécessite les trois autorisations et tous les sous-répertoires non vides)
Random832
Votre modification de cette question a rendu vraiment déroutant de comprendre ce qui était demandé et ne semblait pas ajouter de valeur pour les futurs visiteurs. Je suis revenu au formulaire de question simple d'origine auquel @Gilles a répondu. Si vous avez un nouveau problème, vous pouvez poser une autre question . Veuillez essayer de concentrer chaque question sur un seul problème.
Caleb

Réponses:

49

L'autorisation d'exécution sur les répertoires permet d'accéder aux fichiers à l'intérieur du répertoire. L'autorisation de lecture permet d'énumérer les entrées du répertoire. L'autorisation d'écriture permet de créer et de supprimer des entrées.

Avoir une autorisation de lecture ou d'écriture sur un répertoire sans autorisation d'exécution n'est pas utile. Avoir une autorisation d'exécution mais pas de lecture est parfois utile: cela permet d'accéder aux fichiers uniquement si vous connaissez leur nom exact, une sorte de protection par mot de passe primitif.

Donc, dans la pratique, les autorisations utiles sur un répertoire sont:

  • ---: pas d'accès
  • --x: peut accéder aux fichiers dont le nom est connu (parfois utile)
  • r-x: accès normal en lecture seule
  • rwx: accès normal en lecture et en écriture

Voir aussi Annuaire avec permission + x, parents sans lui. Quand cela serait-il utile? et Les autorisations du répertoire parent importent-elles lors de l'accès à un sous-répertoire?

Gilles 'SO- arrête d'être méchant'
la source
@ Gilles a raison! Faire des recherches à ce sujet pour Linux révèle: 1) Lorsqu'un répertoire n'a pas de permission 'x' pour l'utilisateur, c'est l'appel système stat ou lstat qui échoue. Cela se traduit par l'obtention d'aucune métadonnée des entrées de répertoire, même si l'obtention des entrées de répertoire (nom, inode) est possible lorsque l'utilisateur a l'autorisation «r» sur le répertoire. 2) Voir man 7 path_resolution sous Linux pour plus d'informations.
Kedar Mhaswade
2
w-xpeut également avoir ses utilisations. Par exemple, il était habituel pour les sites FTP publics d'avoir un dossier uploadou incomingqui était accessible en écriture mais lisible uniquement par les administrateurs de serveur.
jmbpiano
Que ferait rw-cela r--pour les répertoires? Cette réponse mentionne la possibilité de changer l'heure de modification, mais sur mon système Linux ZFS, ce n'est pas vrai, j'ai pu changer l'heure de modification même lorsque mon répertoire ne l'était que r--.
CMCDragonkai
@CMCDragonkai Vous avez raison, la modification des métadonnées est basée sur la propriété, elle n'est pas liée aux autorisations. Je ne pense pas que vous puissiez faire quoi que ce soit avec un rw-répertoire autre que lister les entrées (et le déplacer / supprimer si vous possédez son parent, cela ne nécessite aucune autorisation sur le répertoire).
Gilles 'SO- arrête d'être méchant'
@ Gilles: C'est vrai. avec rw-sur le dir, je ne peux pas créer de nouveaux fichiers ou changer ceux existants, même si j'ai rw-sur le fichier que j'essaye de changer. Je ne peux pas non plus touchle fichier. Je suis sur Arch Linux 4.14.13.
Matthias Braun