Accueil/Réseaux & Systèmes /Chapitre 05 /Exercices corrigés

Administration Linux — exercices

Le test noté, les exercices d'application et les deux TP, corrigés avec les commandes exactes et les pièges qui coûtent des points.

🎯

Comment travailler ce chapitre

Linux ne s'apprend pas en lisant. Ouvrez une VM Debian et tapez chaque commande. Les corrections donnent la commande et la raison — c'est la raison qui est notée, parce que c'est elle qui vous permettra de retrouver la commande le jour où vous l'aurez oubliée.

01Test Linux noté /20

L'évaluation, en 30 minutes. Répondez d'abord entièrement, puis ouvrez la correction.

1Commandes et permissions — questions 1 à 5 Facile

  1. Quelle commande affiche les informations détaillées, y compris les permissions, pour tous les fichiers d'un répertoire ?
  2. Que signifie la lettre x dans le bloc de permissions d'un fichier régulier, par exemple -rwxr-x--- ?
  3. Quelle commande permet de créer un nouvel utilisateur ?
  4. Quel fichier système contient la liste principale des comptes utilisateurs locaux, avec leur UID, GID principal et répertoire personnel ?
    A /etc/shadow · B /etc/passwd · C /etc/group · D /etc/login.defs
  5. Vous exécutez chmod 640 fichier.txt. Quels droits obtient le groupe ?
✅ Correction
N°RéponseCommentaire
1ls -l ls -la pour inclure les fichiers cachés. ll existe sur certaines distributions, mais c'est un alias, pas une commande — ne le citez pas seul
2Exécution (execute) Sur un fichier : permet de le lancer comme un programme. Attention, sur un répertoire, x signifie « traverser » — c'est la question 15
3useradd ou adduser Ex. sudo useradd marc. Sous Debian, adduser est préférable : il est interactif et crée le répertoire personnel
4B — /etc/passwd /etc/shadow contient les mots de passe chiffrés. Malgré son nom, passwd n'en contient plus depuis longtemps
5Lecture seule (r--) 640 = rw- r-- ---. Le 4 du milieu correspond au groupe : r seul
⚠️ Question 4 — le piège du nom

/etc/passwd ne contient aucun mot de passe, alors que c'est ce que son nom suggère. Historiquement il en contenait, mais comme il doit rester lisible par tous — pour que le système puisse traduire un UID en nom d'utilisateur — les mots de passe ont été déplacés dans /etc/shadow, lisible par root seul. Le nom est resté.

2Groupes, suppression, sécurité — questions 6 à 10 Moyen

  1. Quelle commande ajoute un utilisateur au groupe developpeurs sans le retirer de ses autres groupes ?
    A groupadd developpeurs utilisateur · B usermod -aG developpeurs utilisateur · C usermod -G developpeurs utilisateur · D gpasswd -d developpeurs utilisateur
  2. Que se passe-t-il si vous exécutez rm -r /home/utilisateur ?
  3. Sur un système multi-utilisateurs, quel est le meilleur moyen de permettre à plusieurs utilisateurs d'écrire dans un même répertoire de projet, sans leur donner un accès complet au système ?
    A permission 777 · B mot de passe root pour tous · C groupe commun et rwxrwx--- · D compte unique partagé
  4. Quelle commande change le propriétaire ET le groupe d'un fichier en une seule opération ?
    A chown · B passwd · C chmod · D chgrp
  5. Donner à un utilisateur le droit d'exécuter systemctl restart apache2 sans lui ouvrir un shell root complet : quel mécanisme ?
    A modifier /etc/shadow UID 0 · B sudo avec une règle dans /etc/sudoers · C donner le mot de passe root · D changer le propriétaire de /usr/bin/systemctl
✅ Correction
N°RéponseCommentaire
6B — usermod -aG L'option -a (append) est indispensable. La réponse C, sans -a, remplace toute la liste des groupes secondaires
7Suppression récursive Supprime /home/utilisateur et tout son contenu : fichiers, sous-dossiers. Très destructeur, et sans corbeille
8C — groupe commun, 770 Sécurisé et propre. 777 ouvrirait à tout le système
9A — chown Syntaxe : chown alice:projet fichier. chgrp ne change que le groupe
10B — sudoers Sécurisé et granulaire : on autorise une commande précise, pas tout le système
🧰 Question 10 — la règle sudoers exacte
/etc/sudoers
sudo visudo          # TOUJOURS visudo : il vérifie la syntaxe avant d'enregistrer

# autoriser bob à redémarrer apache2, et rien d'autre, sans mot de passe
bob ALL=(root) NOPASSWD: /usr/bin/systemctl restart apache2

Pourquoi les autres réponses sont dangereuses : mettre l'UID 0 à un compte en fait un second root. Donner le mot de passe root supprime toute traçabilité. Changer le propriétaire de systemctl lui donnerait le droit de tout redémarrer, pas seulement Apache.

3Fichiers, réseau, noyau — questions 11 à 20 Moyen

  1. Commande pour aller dans son répertoire personnel, sans spécifier de chemin ?
  2. Vous exécutez rm * dans un répertoire contenant fichiers et sous-répertoires. Que se passe-t-il ?
    A rien sans -r · B seuls les fichiers sont supprimés, les sous-répertoires restent · C tout est supprimé récursivement · D seuls les sous-répertoires sont supprimés
  3. Différence la plus significative entre cp et mv ?
  4. Commande pour changer le mot de passe d'un utilisateur ?
  5. Quelle action nécessite la permission x sur un répertoire ?
    A lister le contenu · B modifier les fichiers · C accéder (traverser) · D supprimer le répertoire
  6. Commande pour afficher l'adresse IP d'une machine Linux ?
  7. Sous Debian, commande pour redémarrer proprement le service réseau principal ?
    A ifconfig restart · B /etc/init.d/network restart · C systemctl restart networking · D service network restart
  8. Configuration correcte dans /etc/network/interfaces pour ens33 en IP statique 10.0.0.10/24, passerelle 10.0.0.1 ?
  9. Sur un serveur accessible en permanence, quel adressage et pourquoi ?
  10. Rôle principal du noyau dans un système Linux, en une phrase ?
✅ Correction
N°RéponseCommentaire
11cd tout seul, ou cd ~ Les deux sont acceptés
12B Les fichiers sont supprimés ; rm échoue sur les dossiers et affiche une erreur pour chacun, sauf avec -r
13cp duplique, mv déplace ou renomme Avec cp l'original reste ; avec mv il disparaît de son emplacement d'origine
14passwd Pour soi-même. sudo passwd bob pour un autre utilisateur
15C — traverser Pour lister il faut r ; pour modifier un fichier il faut w sur le fichier
16ip addr ou ip a ifconfig est l'ancienne commande, souvent absente des Debian récentes
17C — systemctl restart networking Debian récente utilise systemd. Les réponses B et D sont les anciennes syntaxes SysVinit
18B Syntaxe classique avec netmask sur une ligne séparée
19Statique Pour garantir une IP stable et prévisible : les clients et le DNS doivent pouvoir retrouver le serveur à la même adresse
20Gérer les ressources Le noyau gère le matériel, la mémoire et les processus, et fournit l'interface entre le matériel et les logiciels
🧰 Question 18 — la configuration correcte, ligne à ligne
/etc/network/interfaces
auto ens33                      ← indispensable : active l'interface au démarrage
iface ens33 inet static         ← « static » et non « dhcp »
    address 10.0.0.10           ← SANS le /24 dans ce fichier
    netmask 255.255.255.0       ← le masque sur sa PROPRE ligne
    gateway 10.0.0.1

Pourquoi A est faux : il manque auto, et l'adresse est écrite en CIDR (10.0.0.10/24), ce que cette syntaxe n'accepte pas.
Pourquoi C est faux : dhcp au lieu de static — c'est exactement l'inverse de ce qui est demandé.
Pourquoi D est faux : iface ens33 inet address n'est pas une syntaxe valide ; il faut le mot-clé static.

⚠️ Question 12 — l'erreur de raisonnement

Beaucoup répondent A (« rien sans -r ») ou C (« tout est supprimé »). Les deux sont faux, et pour la même raison : rm * traite les entrées une par une. Les fichiers partent, les dossiers provoquent une erreur — et la commande continue. Le résultat est donc partiel : c'est le pire des cas, car on croit que rien ne s'est passé alors que tous les fichiers ont disparu.

02Manipuler fichiers et dossiers

4Exercice d'application du cours Facile

Depuis votre répertoire personnel, écrivez les commandes pour :

  1. Lister les fichiers et dossiers cachés
  2. Créer un fichier fich
  3. Créer un dossier rep
  4. Créer un dossier et un sous-dossier à l'intérieur : dossier1/dossier2
  5. Afficher le répertoire de travail
  6. Retourner à la racine
  7. Effacer l'écran
  8. Afficher l'aide de la commande date
✅ Correction
bash
1.  ls -a                    # ou ls -la pour le détail en plus
2.  touch fich
3.  mkdir rep
4.  mkdir -p dossier1/dossier2
5.  pwd
6.  cd /
7.  clear
8.  man date                 # ou date --help pour un résumé court
⚠️ Les trois pièges de cet exercice
  • Question 4 — l'option -p. Sans elle, mkdir dossier1/dossier2 échoue : « impossible de créer le répertoire : aucun fichier ou dossier de ce type », parce que dossier1 n'existe pas encore. -p crée toute la chaîne.
  • Question 6 — la racine, pas le parent. C'est cd /. cd .. remonterait d'un seul niveau, vers /home.
  • Question 1 — -a et non -l. C'est -a (all) qui révèle les fichiers cachés, ceux dont le nom commence par un point. -l ne fait qu'ajouter le détail.

03Paquets et processus

5Gestion des paquets APT Facile

  1. Mettre à jour la base locale APT
  2. Mettre à jour l'intégralité de la distribution avec les éventuels nouveaux paquets disponibles dans les dépôts
  3. Installer le paquet php
✅ Correction
bash
1.  sudo apt update           # rafraîchit le CATALOGUE des paquets disponibles
2.  sudo apt full-upgrade     # met à jour TOUT, y compris en retirant des paquets
                              # (sudo apt upgrade suffit si rien ne doit être retiré)
3.  sudo apt install php
⚠️ La distinction que l'énoncé teste

La question 1 dit « base locale » : c'est apt update, qui ne met aucun logiciel à jour — il télécharge seulement la liste de ce qui est disponible.

La question 2 dit « l'intégralité de la distribution » : c'est full-upgrade (anciennement dist-upgrade), qui accepte de retirer des paquets devenus incompatibles, là où upgrade refuse de supprimer quoi que ce soit.

Et l'ordre compte : upgrade sans update préalable travaille sur un catalogue périmé.

6Gestion des processus Moyen

  1. Comment afficher une arborescence de tous les processus ?
  2. Lancez le processus sleep 1000 en arrière-plan. Récupérez son PID.
  3. Replacez ce processus en avant-plan, puis stoppez-le (ne le tuez pas) et replacez-le en arrière-plan.
  4. Indiquez les détails de ce processus.
✅ Correction
bash
1.  pstree                    # l'arborescence père → fils
    pstree -p                 # avec les PID affichés

2.  sleep 1000 &
    [1] 4271                  ← le shell répond : [n° de tâche] PID
    echo $!                   # affiche le PID du dernier processus lancé en arrière-plan
    jobs -l                   # liste les tâches AVEC leur PID

3.  fg %1                     # ramène la tâche 1 en AVANT-plan
    Ctrl + Z                  # la STOPPE (suspend) — elle n'est PAS tuée
    bg %1                     # la relance en ARRIÈRE-plan

4.  ps -f -p 4271             # les détails du processus
    ps -f -p $(pgrep -f "sleep 1000")   # sans avoir noté le PID
⚠️ « Stoppez-le, ne le tuez pas »

L'énoncé insiste, et c'est là que se joue la question. Stopper, c'est Ctrl+Z : le processus est suspendu, il reste en mémoire dans l'état T (stopped) et peut repartir. Tuer, c'est kill ou Ctrl+C : il disparaît définitivement.

Répondre kill à la question 3 fait perdre le point, même si la commande est juste par ailleurs.

🌍 Pourquoi sleep 1000 pour cet exercice

Parce qu'il ne fait rien pendant mille secondes : c'est le processus idéal pour observer les états sans risque. On peut le suspendre, le relancer, le tuer — rien ne se casse. C'est le « cobaye » standard des TP sur les processus.

04Utilisateurs et groupes

7Créer des comptes et un groupe Facile

  1. Créer deux utilisateurs : Bob et Alice
  2. Créer un groupe Projet et y ajouter les deux utilisateurs
✅ Correction
bash
sudo adduser bob                  # interactif : demande le mot de passe, crée /home/bob
sudo adduser alice

sudo addgroup projet              # ou : sudo groupadd projet

sudo usermod -aG projet bob       # -aG : AJOUTE sans écraser les groupes existants
sudo usermod -aG projet alice

# vérification
groups bob                        # doit afficher :  bob : bob projet
cat /etc/group | grep projet      # projet:x:1002:bob,alice
id alice
⚠️ Deux réflexes à prendre
  • Toujours -aG, jamais -G seul. Sans -a, vous retirez l'utilisateur de tous ses autres groupes — y compris sudo. Sur votre propre compte, vous perdez l'administration de la machine.
  • Noms en minuscules. L'énoncé écrit « Bob », « Alice » et « Projet » avec des majuscules, mais l'usage sous Linux est le tout-minuscule : les noms sont sensibles à la casse et les majuscules provoquent des surprises dans les scripts. Créez bob, alice, projet.
🧰 adduser ou useradd ?
adduseruseradd
NatureScript convivial (Debian)Commande bas niveau, universelle
Mot de passeDemandé interactivementAucun — compte inutilisable tel quel
Répertoire personnelCréé automatiquementSeulement avec -m
RecommandationEn TP et en pratiqueDans les scripts d'automatisation

05TP permissions

8Droits symboliques et octaux Moyen

Sur votre répertoire personnel :

  1. Créer le fichier fichier
  2. Lister les permissions
  3. Enlever tous les droits en écriture et en lecture pour le groupe, avec les symboles
  4. Ajouter le droit en exécution pour le propriétaire et les autres, avec les numéros
✅ Correction
bash
1.  touch fichier

2.  ls -l fichier
    -rw-r--r--  1 la copie A la copie A  0  9 sep 10:12 fichier     ← 644 par défaut

3.  chmod g-rw fichier          # retire r ET w au groupe
    ls -l fichier
    -rw----r--                                             ← 604

4.  chmod 705 fichier           # u = 7 (rwx), g = 0 (---), o = 5 (r-x)
    ls -l fichier
    -rwx---r-x                                             ← 705
🧰 Le raisonnement de la question 4, pas à pas
calcul
état après l'étape 3 :   rw- --- r--        =  6 0 4

on ajoute x au propriétaire :   6 + 1 = 7   →  rwx
le groupe ne change pas :             0     →  ---
on ajoute x aux autres :        4 + 1 = 5   →  r-x

                                            =  705

L'énoncé impose la méthode : symboles à la question 3, numéros à la question 4. Utiliser chmod u+x,o+x à la question 4 donne le bon résultat mais ne répond pas à la consigne.

⚠️ Le piège du calcul octal

En octal, on ne « modifie » pas : on réécrit les trois chiffres en entier. Il faut donc connaître l'état actuel avant de calculer. C'est pourquoi la question 2 — lister les permissions — n'est pas décorative : sans elle, la question 4 est infaisable.

9Le fichier exécutable Exigeant

  1. Créez un répertoire test, puis un fichier essai dans ce répertoire, et écrivez-y une phrase de votre choix. Listez les permissions du répertoire et du fichier.
  2. Retirez-vous le droit en lecture et en écriture sur essai, puis essayez d'afficher son contenu et de le remplacer.
  3. Rétablissez la lecture. Remplacez le contenu de essai par le texte echo "Ceci est un essai". Ajoutez-vous le droit en exécution et lancez ./essai. Quel est le problème ?
  4. Placez-vous dans test et retirez-vous le droit en lecture sur le répertoire. Listez le contenu avec ls, puis affichez le contenu de essai. Qu'en déduisez-vous ?
✅ Correction

1. Mise en place

bash
mkdir test
cd test
echo "une phrase" > essai
ls -l
ls -ld .                        # -d : les droits du RÉPERTOIRE lui-même, pas de son contenu

drwxr-xr-x  2 la copie A la copie A  4096 ... .        ← 755 pour le répertoire
-rw-r--r--  1 la copie A la copie A    11 ... essai    ← 644 pour le fichier

2. Sans lecture ni écriture

bash
chmod u-rw essai
cat essai
  cat: essai: Permission non accordée      ← la LECTURE est refusée

echo "autre phrase" > essai
  bash: essai: Permission non accordée      ← l'ÉCRITURE est refusée
⚠️ Vous êtes propriétaire, et pourtant bloqué

Résultat contre-intuitif : le fichier vous appartient, mais vous ne pouvez plus le lire. Les droits s'appliquent aussi au propriétaire. La seule différence est que vous pouvez, vous, chmod pour vous les redonner — ce que personne d'autre ne peut faire. Le propriétaire n'est pas au-dessus des droits, il est maître des droits. root, lui, ignore tout cela.

3. Le fichier exécutable — et son problème

bash
chmod u+rw essai
echo 'echo "Ceci est un essai"' > essai
chmod u+x essai
./essai
  Ceci est un essai                          ← ça fonctionne

Le problème : le fichier ne comporte aucune ligne shebang — la première ligne #!/bin/bash qui indique au système quel interpréteur doit lire ce fichier.

Ici cela fonctionne quand même, parce que le shell, ne trouvant pas de shebang, se rabat sur lui-même pour exécuter le contenu. Mais ce comportement n'est pas garanti : un script Python ou Perl sans shebang échouerait. Et si l'utilisateur travaille sous un shell différent, le résultat peut varier.

bash
# la version correcte
printf '#!/bin/bash\necho "Ceci est un essai"\n' > essai
chmod u+x essai
./essai
🌍 Pourquoi ./essai et pas essai

Le shell ne cherche les commandes que dans les répertoires listés dans la variable PATH — /bin, /usr/bin… Le répertoire courant n'y figure pas, délibérément : si c'était le cas, il suffirait de déposer un fichier nommé ls dans un dossier partagé pour piéger quiconque y taperait ls. Le ./ est donc une mesure de sécurité : il dit explicitement « exécute ce fichier-ci, celui du répertoire où je suis ».

4. Sans droit de lecture sur le répertoire

bash
cd ~/test
chmod u-r .            # on retire r sur le RÉPERTOIRE (x est conservé)

ls
  ls: impossible d'ouvrir le répertoire '.': Permission non accordée

cat essai
  Ceci est un essai                          ← ça marche encore !

Ce qu'on en déduit — et c'est tout l'objet du TP :

  • Sur un répertoire, r autorise à lire la liste des noms qu'il contient.
  • x autorise à le traverser, donc à accéder à un fichier dont on connaît déjà le nom.

Sans r mais avec x, le répertoire devient une pièce plongée dans le noir : on ne voit pas ce qu'il y a dedans, mais si l'on sait exactement où tendre la main, on attrape l'objet. C'est un mécanisme réellement utilisé — par exemple sur /home, pour que chacun atteigne son propre dossier sans pouvoir énumérer ceux des autres.

🧰 Le tableau complet des droits sur un répertoire
DroitsLister les nomsOuvrir un fichier connuCréer / supprimer
r-xOuiOuiNon
--xNonOuiNon
r--Les noms seulementNonNon
rwxOuiOuiOui
-wxNonOuiOui

À retenir : sans x, rien n'est possible dans un répertoire, quels que soient les autres droits. Et w sur un répertoire permet de supprimer un fichier même si l'on n'a aucun droit sur ce fichier — car supprimer, c'est modifier le répertoire, pas le fichier.

06TP accès et privilèges

10Groupes HR et DIR Moyen

Sur une VM Debian, dans le cadre de la mise en œuvre de la sécurité d'un serveur :

  1. Ajoutez deux groupes nommés HR et DIR.
  2. Vérifiez que les nouveaux groupes ont bien été ajoutés.
  3. Ajoutez l'utilisateur jenny (mot de passe lasocial), puis intégrez-la au groupe HR.
  4. Ajoutez joe (mot de passe tooth) et intégrez-le à HR.
  5. Ajoutez john, sans l'intégrer à HR.
✅ Correction
bash
1.  sudo groupadd HR
    sudo groupadd DIR

2.  cat /etc/group                 # les nouveaux groupes apparaissent en BAS du fichier
    cat /etc/group | tail -5       # plus lisible
    getent group HR                # affiche uniquement la ligne du groupe HR

3.  sudo adduser jenny             # mot de passe : lasocial, nom complet : Jenny
    sudo usermod -aG HR jenny

4.  sudo adduser joe               # mot de passe : tooth
    sudo usermod -aG HR joe

5.  sudo adduser john              # mot de passe : john

# vérifications
groups jenny        →  jenny : jenny HR
groups john         →  john : john
cat /etc/passwd | tail -3          # les trois comptes, avec UID, GID et /home
🔧 Corrigé — l'énoncé du TP contient un piège

Le sujet écrit usermod –G HR jenny, sans le -a. Sur ce TP précis, cela fonctionne par chance : les comptes viennent d'être créés et n'ont encore aucun groupe secondaire à perdre.

Mais c'est une très mauvaise habitude. Appliquée à un compte existant, la même commande le retirerait de tous ses autres groupes. Le test noté pose d'ailleurs exactement cette question (n° 6) et attend usermod -aG. Prenez le réflexe -aG dès maintenant — y compris quand l'énoncé ne le fait pas.

Second détail : le sujet affiche des invites du type cisco@ubuntu:~$#, qui mélangent le $ de l'utilisateur simple et le # de root. C'est une coquille de copier-coller ; la commande, elle, est bien à lancer avec sudo.

🧰 Lire une ligne de /etc/group
/etc/group
HR:x:1004:jenny,joe
│  │   │      └──── la liste des membres SECONDAIRES du groupe
│  │   └─────────── le GID
│  └─────────────── x = le mot de passe de groupe est dans /etc/gshadow (quasi jamais utilisé)
└────────────────── le nom du groupe

Le groupe principal d'un utilisateur n'apparaît pas dans cette liste : il est inscrit dans /etc/passwd. C'est pourquoi groups jenny affiche jenny HR — son groupe personnel et son groupe secondaire.

07Cas de synthèse

11Sécuriser un partage de service Exigeant

Le service Ressources humaines (HR) doit disposer d'un répertoire de travail /srv/rh :

  • les membres de HR peuvent y lire, écrire et créer des fichiers ;
  • la direction (DIR) doit pouvoir lire, sans rien modifier ;
  • personne d'autre ne doit pouvoir y entrer, ni même voir ce qu'il contient ;
  • les fichiers créés dans ce répertoire doivent automatiquement appartenir au bon groupe.

Rédigez la suite de commandes, puis expliquez pourquoi les droits classiques u/g/o ne suffisent pas ici.

✅ Correction

Pourquoi les droits classiques ne suffisent pas

Le modèle u/g/o ne connaît qu'un seul groupe par fichier. Or l'énoncé demande deux groupes avec des droits différents : HR en écriture, DIR en lecture. Impossible à exprimer avec trois chiffres octaux.

Il faut donc des ACL (Access Control Lists), qui permettent d'accorder des droits à des utilisateurs ou groupes supplémentaires.

La solution complète

bash
# 1. le répertoire, avec HR comme groupe propriétaire
sudo mkdir -p /srv/rh
sudo chgrp HR /srv/rh
sudo chmod 770 /srv/rh              # rwx pour u et g, RIEN pour les autres

# 2. les fichiers créés héritent du groupe HR  →  le bit SetGID
sudo chmod g+s /srv/rh              # devient  drwxrws---

# 3. droits de LECTURE pour la direction  →  ACL
sudo apt install acl                # si nécessaire
sudo setfacl -m g:DIR:rx /srv/rh            # r et x : lister et traverser
sudo setfacl -d -m g:DIR:r /srv/rh          # -d : par DÉFAUT sur les futurs fichiers
sudo setfacl -d -m g:HR:rwx /srv/rh

# 4. vérification
getfacl /srv/rh
ls -ld /srv/rh                      # drwxrws---+   ← le + signale la présence d'ACL
🧰 Le bit SetGID sur un répertoire

Sans lui, un fichier créé dans /srv/rh appartient au groupe principal de son créateur — jenny, par exemple. Ses collègues du groupe HR ne peuvent alors pas le modifier, alors que c'était tout l'objectif du dossier partagé.

Avec chmod g+s, tout fichier créé hérite du groupe du répertoire — donc HR. Il apparaît dans ls -l sous la forme d'un s à la place du x du groupe : drwxrws---.

⚠️ Ne pas oublier le x pour DIR

Donner r seul à DIR ne sert à rien : sans x, le répertoire ne peut pas être traversé, donc aucun fichier ne peut être ouvert. C'est l'application directe de ce qu'a montré le TP permissions. Sur un répertoire, on accorde presque toujours r et x ensemble.

🌍 Si les ACL ne sont pas au programme

Une solution acceptable sans ACL : créer un second répertoire en lecture seule pour la direction, alimenté par une copie ou un lien. C'est moins élégant, mais cela se raisonne entièrement avec u/g/o. Si vous rencontrez ce cas en épreuve, expliquez la limite du modèle à trois catégories : c'est cette analyse qui est valorisée, plus que la connaissance de setfacl.

⚡ Les erreurs qui coûtent le plus de points

  • usermod -G au lieu de -aG — l'utilisateur perd tous ses autres groupes.
  • Confondre apt update et apt upgrade — le premier ne met aucun logiciel à jour.
  • Tuer au lieu de stopper — Ctrl+Z suspend, kill termine.
  • Oublier mkdir -p pour créer une arborescence.
  • Croire que r suffit sur un répertoire — sans x, on ne peut rien ouvrir.
  • Écrire address 10.0.0.10/24 dans /etc/network/interfaces — le masque va sur sa propre ligne.

Sources exploitées

  • Test Linux.pdf — évaluation notée /20
  • 1-2-TP-Permission.pdf
  • 1-2-TP_accès_Sécurité_linux.pdf — U6 Cybersécurité
  • 1-Cours-Administration des systèmes Linux.pdf — exercices d'application
  • 1-1-Memo-Commande_base.pdf