web-dev-qa-db-fra.com

Autorisation refusée pour certains fichiers, même avec Sudo et chmod 777

Plusieurs fois, je n'ai pas été autorisé à éditer un fichier. Même quand je chmodé à 777 et ouvre le fichier avec Sudo. Par exemple. le fichier /sys/kernel/debug/vgaswitcheroo/switch in this tutorial.

Tout d'abord, comment est-ce possible? Deuxièmement, comment puis-je accéder à ce type de fichiers?

5
OrangeTux

Il ne suffit pas d'avoir une permission de lecture sur un fichier pour le lire. Vous devez également disposer d'une autorisation de lecture sur le répertoire auquel il appartient. Dans le cas de /sys/kernel/debug/vgaswitcheroo/switch, le problème est /sys/kernel/debug qui, par défaut, n'est lisible que par l'utilisateur root:

$ ls -ld /sys/kernel/debug
drwx------ 22 root root 0 Nov 20 18:25 /sys/kernel/debug

Vous devez chmod a+r /sys/kernel/debug pour avoir accès au contenu de ce répertoire.

(Je ne le recommanderais pas, car donner un accès global à /sys/kernel/debug n'est pas une chose sûre à faire, mais c'est un problème différent.)

Le moyen le plus courant d'accéder à de tels fichiers est d'utiliser un shell racine:

Sudo -i
5
Andrea Corbellini