Linux — utilisation avancée et administration · Étape 06

Lis les propriétaires, groupes et permissions

Interprète les droits d’un fichier et d’un répertoire, puis prédis les opérations réellement autorisées.

Durée indicative · ~1 h 20Niveau débutantPrérequis conseillé · Leçon 5 — liens et inodesPratique · TP
L’idée reçue

« 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"
Position
Fichier
Répertoire
r
lire les octets
lister les noms
w
modifier le contenu
créer, renommer ou supprimer des entrées
x
demander l’exécution
traverser et résoudre les noms

03Teste 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"
La suppression dépend surtout des droits sur le répertoire parent, pas du bit 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.

Challenge autonome

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.

Ta progression

Chargement de l’état… Se connecter pour synchroniser.