Vous exécutez chmod 000 sur un fichier. Root peut-il encore le lire ?
Réponse courte
Oui. Les bits de mode d'un fichier sont un contrôle d'accès discrétionnaire appliqué aux processus non privilégiés. La page de manuel capabilities(7) indique que les processus privilégiés contournent tous les contrôles de permission du noyau, et que CAP_DAC_OVERRIDE contourne précisément les contrôles de lecture, d'écriture et d'exécution des fichiers. Un chmod 000 arrête donc un utilisateur ordinaire, mais pas root ni un processus disposant de cette capacité. Pour protéger un secret d'un accès root, il faut du chiffrement ou de l'isolation, pas des bits de mode.
Les bits de permission semblent absolus : --------- ressemble à une porte verrouillée. Pour root, ce n'est pas le cas.
Ce que fait le noyau
Les modes de fichier Linux sont des contrôles d'accès discrétionnaire appliqués aux processus non privilégiés. La page de manuel capabilities(7) indique que les processus privilégiés contournent tous les contrôles de permission du noyau, tandis que les autres subissent des contrôles complets selon l'UID effectif, le GID et les groupes supplémentaires. Les capacités découpent ce pouvoir de root en unités, et CAP_DAC_OVERRIDE est documentée comme contournant les contrôles de lecture, d'écriture et d'exécution des fichiers. CAP_DAC_READ_SEARCH contourne les contrôles de lecture des fichiers et de lecture et d'exécution des répertoires.
Conséquences de sécurité
chmod 000ne protège pas contre un attaquant root ni contre un processus détenant ces capacités.- Les secrets devant résister à root exigent du chiffrement (clés conservées ailleurs) ou de la séparation, pas des bits de mode.
- Accorder CAP_DAC_OVERRIDE à un service est presque aussi puissant que root pour l'accès aux fichiers — une revue du moindre privilège doit le signaler.
Pourquoi les distracteurs échouent
Le mode 000 ne bloque pas root. S'approprier le fichier avec chown est inutile, root contournant déjà le contrôle. Le sticky bit régit la suppression dans les répertoires partagés et n'a aucun rapport avec la lecture de ce fichier.
Ce que veulent les recruteurs
« Oui — les permissions retiennent les utilisateurs normaux, pas les processus privilégiés », et le nom de la capacité en bonus.
Questions de suivi probables
- Quelle capacité permettrait à un service de lire n'importe quel fichier sans être root complet ?
- En quoi les attributs immuables (chattr +i) diffèrent-ils des bits de mode face à root ?
- Pourquoi est-ce important si un processus de serveur web compromis tourne sous un compte root ?