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

Modifie les droits avec chmod

Passe des modes symboliques aux modes octaux, rends un script exécutable et évite les permissions excessives.

Durée indicative · ~1 h 20Niveau débutantPrérequis conseillé · Leçon 6 — lecture des permissionsPratique · TP
L’idée reçue

« Quand une permission bloque, chmod 777 règle le problème. »

777 supprime presque toute séparation entre propriétaire, groupe et autres. Le bon diagnostic consiste à identifier l’opération nécessaire et à accorder uniquement le droit correspondant.

01Provoque l’échec d’exécution

export LAB="/tmp/soria-linux-permissions-$USER"
"$LAB/bin/diagnostic.sh" || true
stat -c '%a %A %n' "$LAB/bin/diagnostic.sh"

Le shebang est présent, mais le bit x manque. Le shell refuse l’exécution directe.

02Corrige en mode symbolique

chmod u+x "$LAB/bin/diagnostic.sh"
stat -c '%a %A %n' "$LAB/bin/diagnostic.sh"
"$LAB/bin/diagnostic.sh"
Expression
Effet
Intention
u+x
ajoute exécution au propriétaire
script personnel
g-w
retire écriture au groupe
protéger un fichier partagé
o=
retire tous les droits aux autres
donnée privée
a+r
ajoute lecture à tous
document réellement public

03Traduis les bits en octal

Chaque classe additionne r=4, w=2 et x=1.

chmod 0640 "$LAB/partage/equipe.txt"
chmod 0750 "$LAB/prive"
chmod 0755 "$LAB/bin/diagnostic.sh"
stat -c '%a %A %n' "$LAB/partage/equipe.txt" "$LAB/prive" "$LAB/bin/diagnostic.sh"
640 signifie rw-r—–. 750 signifie rwxr-x—. Le premier chiffre optionnel est réservé aux bits spéciaux étudiés dans la leçon suivante.

04Compare deux corrections possibles

cp "$LAB/prive/secret.txt" "$LAB/prive/secret-copy.txt"
chmod 0666 "$LAB/prive/secret-copy.txt"
stat -c '%a %A %n' "$LAB/prive/secret-copy.txt"
chmod 0600 "$LAB/prive/secret-copy.txt"
stat -c '%a %A %n' "$LAB/prive/secret-copy.txt"

Les deux modes permettent au propriétaire de lire et modifier. Le second évite d’exposer le secret au groupe et aux autres utilisateurs.

05Vérifie avant et après

before=$(stat -c '%a' "$LAB/documents/rapport.txt")
chmod g+w "$LAB/documents/rapport.txt"
after=$(stat -c '%a' "$LAB/documents/rapport.txt")
printf 'before=%s after=%s
' "$before" "$after"
chmod "$before" "$LAB/documents/rapport.txt"

Conserver la valeur précédente permet un rollback simple et documenté.

Challenge autonome

Applique une matrice de droits

Prépare trois fichiers : public en lecture, partagé en lecture/écriture pour owner et group, privé pour owner uniquement. Produis pour chacun le mode symbolique, le mode octal et une commande stat de preuve.

Ce que tu retiens

chmod traduit une intention d’accès en bits. Les modes symboliques expriment une modification relative ; les modes octaux fixent un état complet. Toute correction doit être suivie d’une preuve et éviter les droits plus larges que nécessaire.

Ta progression

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