GNU/Linux >> Tutoriels Linux >  >> Linux

Les autorisations du répertoire parent sont-elles importantes lors de l'accès à un sous-répertoire ?

Si j'ai un dossier racine avec une autorisation restrictive, disons 600, et si les dossiers/fichiers enfants ont une autorisation 777, tout le monde pourra-t-il lire/écrire/exécuter le fichier enfant même si le dossier racine en a 600 ?

Réponse acceptée :

La règle précise est la suivante :vous pouvez parcourir un répertoire si et seulement si vous avez l'autorisation d'exécution dessus.

Ainsi par exemple pour accéder à dir/subdir/file , vous avez besoin d'une autorisation d'exécution sur dir et dir/subdir , plus les permissions sur file pour le type d'accès que vous souhaitez. Dans les cas particuliers, je ne sais pas s'il est universel que vous ayez besoin d'une autorisation d'exécution sur le répertoire en cours pour accéder à un fichier via un chemin relatif (vous le faites sous Linux).

La façon dont vous accédez à un fichier est importante. Par exemple, si vous avez des autorisations d'exécution sur /foo/bar mais pas sur /foo , mais votre répertoire actuel est /foo/bar , vous pouvez accéder aux fichiers dans /foo/bar par un chemin relatif mais pas par un chemin absolu. Vous ne pouvez pas passer à /foo/bar dans ce scénario; un processus plus privilégié a probablement fait cd /foo/bar avant de passer sans privilège. Si un fichier a plusieurs liens physiques, le chemin que vous utilisez pour y accéder détermine vos contraintes d'accès.

Les liens symboliques ne changent rien. Le noyau utilise les droits d'accès du processus appelant pour les parcourir. Par exemple, si sym est un lien symbolique vers le répertoire dir , vous avez besoin d'une autorisation d'exécution sur dir pour accéder à sym/foo . Les autorisations sur le lien symbolique lui-même peuvent ou non avoir de l'importance selon le système d'exploitation et le système de fichiers (certains les respectent, d'autres les ignorent).

La suppression de l'autorisation d'exécution du répertoire racine restreint effectivement un utilisateur à une partie de l'arborescence des répertoires (dans laquelle un processus plus privilégié doit se transformer). Cela nécessite que les listes de contrôle d'accès soient utiles. Par exemple, si / et /home sont interdits à joe (setfacl -m user:joe:0 / /home ) et /home/joe est joe le répertoire personnel de, puis joe ne pourra pas accéder au reste du système (y compris l'exécution de scripts shell avec /bin/sh ou des binaires liés dynamiquement qui doivent accéder à /lib , vous devrez donc aller plus loin pour une utilisation pratique, par ex. setfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib ).

Connexe :Obtenez "Autorisation refusée" lors de la redirection de la sortie de sudo echo "xyz" vers un fichier ?

L'autorisation de lecture sur un répertoire donne le droit d'énumérer les entrées. Donner la permission d'exécution sans donner la permission de lecture est parfois utile :les noms des entrées servent de mots de passe pour y accéder. Je ne vois aucune utilité à donner une autorisation de lecture ou d'écriture à un répertoire sans autorisation d'exécution.


Linux
  1. Introduction à la commande Linux chmod

  2. Comment auditer les autorisations avec la commande find

  3. [CentOS 7 Apache] :Autorisation refusée :les autorisations de fichier refusent l'accès au serveur

  4. Quand `relatime` a-t-il été défini par défaut ?

  5. Rsync modifie les autorisations du répertoire ?

Comment modifier les autorisations sous Linux

Nouveau processus parent lorsque le processus parent meurt ?

Accéder aux journaux d'accès bruts dans cPanel

Autorisation refusée lors de l'accès au dossier partagé VirtualBox lorsqu'il est membre du groupe vboxsf

Comment puis-je définir les bits de parité lors de l'utilisation de l'écran pour accéder à un port série

Autorisation refusée car les autorisations de recherche sont manquantes sur un composant du chemin, après chmod et chgrp