Aller au contenu

TP 1 — Prise en main du système

Maquette : poste (Debian), srv-deb (Debian), srv-rhel (Rocky Linux)

Vous prenez la main sur trois machines dont vous ne savez rien. Votre travail consiste à les identifier, vous y orienter, y trouver l'information et commencer à y travailler.

Aucune commande ne vous est donnée. Chaque exercice indique ce qu'il faut obtenir et comment vérifier que c'est fait. La documentation est sur les machines.

Cassez sans crainte

La maquette repart d'un état connu au début de chaque séance. Vous ne pouvez rien détruire d'irrécupérable.


Exercice 1 — Reconnaissance

Objectif : produire une fiche d'identité de chaque machine.

Pour poste, srv-deb et srv-rhel, relevez :

  1. Le nom de la machine
  2. La distribution et sa version exacte
  3. La version du noyau
  4. Depuis combien de temps la machine fonctionne
  5. Votre nom d'utilisateur, votre identifiant numérique et vos groupes
  6. L'interpréteur de commandes que vous utilisez

Vérification : vous avez six réponses par machine, toutes obtenues par une commande, aucune recopiée de cet énoncé.

Question : srv-deb et srv-rhel tournent-elles sur la même version du noyau ? Que vous apprend l'écart, s'il y en a un ?

Indice

Un fichier normalisé dans le répertoire des configurations décrit la distribution ; son nom contient le mot « release ». Trois commandes très courtes couvrent les points 1, 5 et 6. Une commande donne le noyau, une autre la durée de fonctionnement.


Exercice 2 — Arborescence

Objectif : savoir où chercher sur une machine inconnue.

Sur srv-deb, identifiez le répertoire correspondant à chaque besoin, puis vérifiez votre réponse en regardant son contenu réel.

Vous cherchez… Répertoire
Les fichiers de configuration
Les journaux du système
Les répertoires personnels
Les fichiers temporaires effacés au redémarrage
Les programmes exécutables
Les logiciels installés hors gestionnaire de paquets
Le noyau et le chargeur de démarrage

Puis :

  1. Où se trouve la configuration du serveur SSH ?
  2. Quel est le fichier le plus volumineux de /var/log ?
  3. Affichez le contenu de /proc/cpuinfo. Combien de cœurs a la machine ?
  4. Affichez la taille de /proc/cpuinfo avec un listage détaillé. Que constatez-vous, et comment l'expliquez-vous ?

Vérification : le tableau est complet et chaque réponse a été confirmée par un listage.


Exercice 3 — Chemins relatifs

Contrainte : aucun chemin absolu dans tout l'exercice. Pas de chemin commençant par /, pas de ~.

Sur srv-deb, depuis votre répertoire personnel :

  1. Créez en une seule commande l'arborescence tp1/config/ et tp1/data/.
  2. Placez-vous dans tp1/config/ et créez-y un fichier serveur.conf contenant une ligne de votre choix.
  3. Sans changer de répertoire, copiez ce fichier dans tp1/data/.
  4. Sans changer de répertoire, affichez le contenu de votre répertoire personnel.
  5. Rejoignez tp1/data/ en un seul déplacement, puis revenez au répertoire précédent avec un raccourci qui ne mentionne aucun nom de dossier.

Vérification : tp1/config/serveur.conf et tp1/data/serveur.conf existent et ont le même contenu.


Exercice 4 — Liens

Sur srv-deb, depuis tp1/ :

  1. Créez un lien symbolique nommé actif.conf pointant vers config/serveur.conf. Affichez son contenu pour vérifier qu'il fonctionne.
  2. Affichez le détail du lien. Vers quoi pointe-t-il exactement, et ce chemin est-il absolu ou relatif ?
  3. Déplacez actif.conf dans tp1/data/, puis essayez de l'afficher à nouveau. Que se passe-t-il ?
  4. Supprimez le lien cassé. Vérifiez que config/serveur.conf est toujours là.
  5. Recréez le lien depuis tp1/data/ en pointant cette fois vers un chemin absolu. Déplacez-le ailleurs et vérifiez qu'il fonctionne toujours.

Vérification : vous savez produire un lien qui survit au déplacement et un qui ne survit pas, et vous savez dire lequel est lequel.

Question : dans quel cas préférer un lien relatif ? Dans quel cas un lien absolu ?


Exercice 5 — Documentation

Objectif : trouver l'information sans navigateur.

Sur srv-deb :

  1. Affichez la documentation complète de la commande de listage de fichiers.
  2. Trouvez ce que fait son option -S et vérifiez-le sur un répertoire.
  3. Vous voulez connaître l'espace disque restant mais vous ignorez le nom de la commande. Trouvez-la depuis le terminal.
  4. Trouvez l'option de la commande de recherche de motif qui affiche le numéro de ligne des résultats.
  5. Affichez successivement les deux entrées du manuel portant le nom passwd, dans deux catégories différentes. En une phrase, qu'est-ce qui les distingue ?

Vérification : vous savez citer le numéro qui apparaît entre parenthèses après le nom d'une page de manuel, et dire à quoi il sert.

Indice — question 3

Une commande permet de chercher dans les manuels par mot-clé. Essayez un terme anglais lié à l'espace disque.

Indice — question 5

Le manuel est découpé en catégories numérotées : la 1 pour les commandes, la 5 pour les formats de fichiers. On peut préciser le numéro avant le nom.


Exercice 6 — Lire et filtrer

Le fichier /etc/passwd décrit les comptes du système. Chaque ligne contient des champs séparés par des deux-points : nom, mot de passe, identifiant utilisateur, identifiant de groupe, description, répertoire personnel, interpréteur de commandes.

Sur srv-deb :

  1. Affichez ses dix premières lignes, puis ses trois dernières.
  2. Comptez le nombre de lignes.
  3. Affichez uniquement les lignes des comptes dont l'interpréteur est /bin/bash.
  4. Affichez uniquement les lignes des comptes dont l'interpréteur est nologin ou false.
  5. Comptez combien de comptes sont dans chaque cas.
  6. Affichez la liste des noms de comptes seuls, sans les autres champs.

Vérification : la somme des deux comptages de la question 5 est cohérente avec le total de la question 2.

Indice — question 6

Une commande découpe chaque ligne selon un séparateur que vous précisez et n'en garde que le champ demandé.


Exercice 7 — Enchaîner et rediriger

Toujours sur /etc/passwd, sur srv-deb :

  1. En une seule ligne de commande, obtenez la liste triée par ordre alphabétique des noms de comptes ayant bash comme interpréteur.
  2. Enregistrez ce résultat dans ~/comptes-bash.txt.
  3. Affichez le fichier créé et comptez ses lignes.
  4. Ajoutez la ligne --- fin de liste --- à la fin du fichier sans écraser son contenu.
  5. Faites la même chose sur srv-rhel et comparez le nombre de comptes interactifs entre les deux serveurs.

Vérification : ~/comptes-bash.txt contient la liste triée suivie de la ligne de fin.

Question 4

Deux chevrons, pas un. Avec un seul vous écrasez tout le travail des questions précédentes, sans confirmation et sans retour possible.

Sous Linux il n'y a ni corbeille, ni annulation. La touche la plus dangereuse du clavier, c'est Entrée.


Exercice 8 — Rechercher

Sur srv-deb :

  1. Trouvez tous les fichiers de /etc dont le nom se termine par .conf. Combien y en a-t-il ?
  2. Trouvez les fichiers de /etc modifiés depuis moins de sept jours. Que sont-ils, d'après vous ?
  3. Trouvez tous les fichiers de /var/log de plus de 1 Mo.
  4. Cherchez dans tout le système les fichiers vous appartenant, en masquant les messages d'erreur de permission.

Vérification : la question 4 ne produit aucun message d'erreur à l'écran.

Indice — question 4

Les erreurs ne sortent pas par le même canal que le résultat. Vous avez vu à l'exercice 7 comment rediriger un canal ; il en existe un second, numéroté. La destination /dev/null fait disparaître ce qu'on y envoie.


Exercice 9 — Éditer

Deux éditeurs en console sont installés. L'un affiche ses raccourcis en bas de l'écran. L'autre démarre dans un mode où les touches ne s'écrivent pas mais agissent.

Sur srv-deb :

  1. Avec le premier, créez ~/notes-tp1.txt et écrivez-y trois choses apprises aujourd'hui. Enregistrez, quittez, vérifiez le contenu.
  2. Rouvrez le fichier avec le second, ajoutez une quatrième ligne, enregistrez et quittez.
  3. Rouvrez-le une troisième fois avec le second, tapez n'importe quoi, puis quittez sans enregistrer. Vérifiez que la modification n'a pas été conservée.
  4. Notez dans le fichier la séquence de touches permettant de quitter le second éditeur sans enregistrer.

Vérification : le fichier contient quatre lignes plus votre note, et aucune trace de la question 3.

Indice — le second éditeur

Son nom fait deux ou trois lettres. Il démarre en mode commande : i fait passer en saisie, ++esc++ revient en arrière, et les commandes d'écriture et de sortie commencent par un deux-points.


Exercice 10 — Comparer les deux familles

Objectif : distinguer ce qui relève de Linux de ce qui relève d'une distribution.

Sur srv-deb et srv-rhel :

  1. Vérifiez la présence de /etc/apt et de /etc/yum.repos.d. Que concluez-vous ?
  2. Cherchez dans /var/log le fichier de journal principal. Porte-t-il le même nom des deux côtés ?
  3. Un répertoire lié à SELinux existe sur un seul des deux systèmes. Trouvez-le, et déduisez-en lequel utilise SELinux.
  4. Les répertoires /etc, /var, /home et /usr sont-ils présents des deux côtés ?
  5. Le compte root a-t-il le même identifiant numérique sur les deux machines ?

Livrable de la séance. Créez ~/correspondance.md sur poste et remplissez-le. Vous le compléterez à chaque TP du semestre.

Élément Debian Rocky Linux
Nom et version du système
Version du noyau
Répertoire des dépôts de paquets
Journal système principal
Contrôle d'accès obligatoire
Nombre de comptes interactifs

Ajoutez une ligne pour toute autre différence remarquée pendant la séance.


Avant de partir

  • [ ] Je sais identifier la distribution, la version et le noyau d'une machine
  • [ ] Je peux citer de mémoire le rôle de six répertoires de la racine
  • [ ] Je sais me déplacer et travailler en chemins relatifs
  • [ ] Je sais créer un lien symbolique et prévoir s'il survivra à un déplacement
  • [ ] Je sais lire la documentation d'une commande sans quitter le terminal
  • [ ] Je sais filtrer les lignes d'un fichier selon un motif
  • [ ] Je sais enchaîner des commandes et rediriger le résultat vers un fichier
  • [ ] Je sais chercher des fichiers par nom, par date et par taille
  • [ ] Je sais éditer un fichier avec deux éditeurs différents

Tout ce qui précède sera considéré comme acquis au TP 2.


Si vous avez fini en avance

Historique et complètement

Trouvez comment afficher les commandes que vous avez tapées, comment y rechercher, et comment en relancer une par son numéro. Testez le complètement à la tabulation sur une commande incomplète, puis sur un chemin.

Comparer deux fichiers

Récupérez le /etc/passwd des deux serveurs sur poste et trouvez une commande qui affiche uniquement leurs différences.

Le PATH

Quand vous tapez une commande, comment le système sait-il où la trouver ? Affichez la variable d'environnement concernée, puis déterminez l'emplacement exact de la commande de listage. Que se passerait-il si deux répertoires du chemin contenaient une commande de même nom ?

Les liens physiques

Il existe un second type de lien, qui ne pointe pas vers un chemin. Trouvez-le, créez-en un, et déterminez ce qui le distingue du lien symbolique de l'exercice 4 — notamment quand on supprime le fichier d'origine.