« Si un fichier est lisible, son répertoire n’a plus d’importance. »
Pour atteindre un chemin, il faut pouvoir traverser chaque répertoire parent. Sur un répertoire, x signifie traverser, r lister les noms et w modifier les entrées.
01Prépare le laboratoire
chmod +x module2-permissions-streams-lab.sh
./module2-permissions-streams-lab.sh setup
export LAB="/tmp/soria-linux-permissions-$USER"
./module2-permissions-streams-lab.sh status
02Décompose une ligne de permissions
ls -ld "$LAB/prive" "$LAB/prive/secret.txt"
stat -c 'type=%F mode=%A octal=%a owner=%U group=%G path=%n' "$LAB/prive" "$LAB/prive/secret.txt"
rwx03Teste sans modifier
test -r "$LAB/prive/secret.txt" && echo readable
test -w "$LAB/prive/secret.txt" && echo writable
test -x "$LAB/bin/diagnostic.sh" || echo not-executable
namei -l "$LAB/prive/secret.txt" 2>/dev/null || true
test répond selon l’identité effective du processus courant. namei -l, lorsqu’il est disponible, affiche chaque composant du chemin et aide à localiser un refus de traversée.
04Distingue contenu et entrée de répertoire
cp "$LAB/documents/rapport.txt" "$LAB/documents/copied.txt"
chmod 0444 "$LAB/documents/copied.txt"
rm "$LAB/documents/copied.txt"
ls -l "$LAB/documents"
w du fichier. C’est une source fréquente d’erreur de diagnostic.05Observe un accès “other” sans créer d’utilisateur
Sur une VM où sudo est disponible, le compte système nobody permet de tester la classe other :
sudo -u nobody test -r "$LAB/documents/rapport.txt" && echo nobody-can-read
sudo -u nobody test -r "$LAB/prive/secret.txt" || echo nobody-cannot-read
Cette vérification est optionnelle. Le cœur du cours reste observable sans privilège.
Explique un refus d’accès
Crée un chemin de trois répertoires, retire le bit x du répertoire intermédiaire, puis prouve avec ls, stat, test et éventuellement namei pourquoi le fichier final n’est plus accessible.
✓Ce que tu retiens
Les permissions sont évaluées avec l’identité du processus et la classe owner, group ou other. Les droits des répertoires contrôlent la résolution des chemins et la gestion des noms ; ceux des fichiers contrôlent principalement contenu et exécution.