Linux - Editions ENI est éditeur de livres informatique ... · Historique de Unix ... Invite shell...

Preview:

Citation preview

Editions ENI

LinuxPrincipes de base

de l’utilisation du système (5e édition)

CollectionRessources Informatiques

Table des matières

1Table des matières

Avant-propos

Chapitre 1Introduction

1. Historique de Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2. GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.1 FSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2 CopyLeft et GPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3. Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.1 Caractéristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2 Distributions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4. Quelle distribution choisir ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.1 Les distributions "grand public" . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Les distributions "mobiles" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3 Les distributions "professionnelles" . . . . . . . . . . . . . . . . . . . . . . . 254.4 Les distributions "spécialisées" . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Chapitre 2Connexion et premières commandes

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2. Consoles et terminaux Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.1 Consoles virtuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2 Émulateurs de terminaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.3 Terminaux distants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3. Connexion et authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4. Invite shell (prompt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5. Syntaxe des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6. Utilisation de la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2Principes de base de l’utilisation du système

Linux

7. Raccourcis-clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437.1 En mode texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437.2 En mode graphique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

8. Premières commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.1 Identité des utilisateurs : who, whoami, finger . . . . . . . . . . . . . 458.2 Changement de mot de passe : passwd . . . . . . . . . . . . . . . . . . . 478.3 Comptage : wc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478.4 Affichage : clear, echo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488.5 Temps : date, cal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

9. Déconnexion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

10. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Chapitre 3Documentation

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2. Manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.1 Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.2 Commande man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.3 /etc/man.config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.4 /etc/man_db.conf et /etc/manpath.config . . . . . . . . . . . . . . . . . 59

3. Documentation Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.1 Commande info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.2 Organisation de la documentation . . . . . . . . . . . . . . . . . . . . . . . 623.3 Navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.4 Considérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4. Option --help des commandes sous Linux . . . . . . . . . . . . . . . . . . . . . 66

5. Documentation HOWTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6. /usr/share/doc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3Table des matières

7. Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.1 Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.2 Groupes de discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

8. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Chapitre 4L'arborescence Linux

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

2. Principaux répertoires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772.1 /bin, /sbin, /lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772.2 /boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.3 /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.4 /home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802.5 /root. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802.6 /tmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802.7 /lost+found . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.8 /mnt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.9 /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.10 /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.11 /usr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.12 /var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842.13 /run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852.14 /etc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3. Montages et accès aux médias amovibles . . . . . . . . . . . . . . . . . . . . . . 863.1 Commande mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.2 Commande umount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893.3 Boîte à outils mtools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

4Principes de base de l’utilisation du système

Linux

Chapitre 5Manipulation de fichiers

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

2. Noms des fichiers et des répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3. Types de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

4. Chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.1 Chemins absolus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.2 Chemins relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.3 Chemins personnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

5. Exploration de l'arborescence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.1 pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.2 cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.3 ls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.4 file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065.5 stat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6. Répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086.1 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086.2 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7. Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107.1 touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107.2 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117.3 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147.4 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

8. Organisation physique des fichiers sous Linux . . . . . . . . . . . . . . . . 1178.1 Inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178.2 Blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

9. Gestionnaires de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209.1 Midnight Commander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209.2 Dolphin, Nautilus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

5Table des matières

10. Consultation de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.1 cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.2 more, less. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.3 od, strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

11. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Chapitre 6Édition de fichiers texte - Vi

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

2. Présentation de Vi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302.1 Lancement de Vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1312.2 Modes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322.3 Commandes de déplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332.4 Commandes d'insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362.5 Commandes d'édition et de correction . . . . . . . . . . . . . . . . . . . 1372.6 Commandes globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392.7 Fichier de configuration personnel . . . . . . . . . . . . . . . . . . . . . . 1442.8 Autres commandes utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

3. Autres outils d'édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453.1 Autres éditeurs texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463.2 Éditeurs hexadécimaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

4. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

6Principes de base de l’utilisation du système

Linux

Chapitre 7Droits d'accès aux fichiers

1. Concepts de comptes utilisateur et de groupes . . . . . . . . . . . . . . . . 1551.1 Hiérarchie des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1571.2 Commandes utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

2. Droits Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592.1 Droits standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1602.2 SUID, SGID et Sticky Bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

3. Gestion des droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.1 chgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.2 chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1693.3 umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733.4 Gestionnaires de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

4. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Chapitre 8Gestion des processus

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

2. Arborescence de processus et PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

3. Visualisation des processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803.1 ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803.2 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863.3 pstree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

4. Signaux et commande kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

5. Gestionnaires de processus graphiques . . . . . . . . . . . . . . . . . . . . . . . 192

6. Manipulation des processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1936.1 Lancer un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1936.2 Arrêter un processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1946.3 Contrôler les processus lancés en ligne de commande . . . . . . . 195

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

7Table des matières

Chapitre 9Shell Bash

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

2. Généralités et définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

3. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2013.1 Manipulation de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2023.2 Variables d'environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

4. Caractères génériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

5. Caractères de citation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

6. Redirections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2196.1 Descripteurs de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2196.2 Redirection de l'entrée standard . . . . . . . . . . . . . . . . . . . . . . . . 2216.3 Redirection de la sortie standard . . . . . . . . . . . . . . . . . . . . . . . . 2226.4 Redirection de l'erreur standard. . . . . . . . . . . . . . . . . . . . . . . . . 2236.5 Redirections combinées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2246.6 Exemples de redirections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2256.7 Les tubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

7. Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

8. Exécution de commandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2328.1 Commandes internes du shell . . . . . . . . . . . . . . . . . . . . . . . . . . 2328.2 Commandes externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2338.3 type, whereis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

9. Substitution de commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

10. Options du shell Bash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

11. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

8Principes de base de l’utilisation du système

Linux

Chapitre 10Programmation et scripts Bash

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

2. Scripts shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2412.1 Appel et exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2422.2 Méthodes de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

3. Codes retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

4. Enchaînement de commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504.1 Exécution séquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504.2 Exécution conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

5. Variables spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.1 $$, $PPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.2 $0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.3 $1, $2, $3, ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2535.4 $# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2545.5 $*, $@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2545.6 $LINENO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

6. Commande test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2566.1 Test de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2566.2 Test de chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . 2586.3 Test arithmétique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2596.4 Test de l'environnement utilisateur . . . . . . . . . . . . . . . . . . . . . 2606.5 Combinaison d'expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

7. Opérations arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2627.1 expr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2627.2 let, (()) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

8. Commande read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

9. Structures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2709.1 L'instruction if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2709.2 L'instruction for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2719.3 L'instruction while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

9Table des matières

10. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

Chapitre 11Gestion du compte utilisateur

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

2. Modification du compte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

3. Données personnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2783.1 /home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.2 /tmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.3 /var/spool/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

4. Environnement shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2804.1 /etc/profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2804.2 ~/.bash_profile, ~/.bash_login, ~/.profile . . . . . . . . . . . . . . . 2814.3 ~/.bashrc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2814.4 /etc/bashrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2824.5 ~/.bash_logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

5. Environnement graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

6. Sauvegarde des données utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . 284

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

Chapitre 12Outils Linux

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

2. find. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922.1 Chemin de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922.2 Expressions de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2932.3 Opérateurs sur les expressions. . . . . . . . . . . . . . . . . . . . . . . . . . 2982.4 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

10Principes de base de l’utilisation du système

Linux

3. grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3033.1 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3053.2 Expressions régulières. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

4. cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

5. sort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

6. head, tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

Chapitre 13Configuration basique du système

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

2. Installation de logiciels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3172.1 Les paquetages RPM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3182.2 Les paquetages Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3192.3 Les archives compressées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

3. Outils d'administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

Editions ENI

LinuxAdministration avancée

Maintenance et exploitation de vos serveurs

(2e édition)

CollectionExpert IT

Table des matières

1Table des matières

Chapitre 1Introduction

1. Que contient ce livre ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2. Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3. Obtenir les logiciels mis en œuvre. . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.1 Image ISO des distributions Linux . . . . . . . . . . . . . . . . . . . . . . . 203.2 Oracle VM VirtualBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.3 Machines virtuelles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.4 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapitre 2Architecture du système GNU/Linux

1. Vue d'ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.1 Projet GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.2 Distribution GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2. Anneaux de protection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.1 Architecture 32 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.1.1 Sans virtualisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.1.2 Avec virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.2 Architecture 64 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.2.1 Sans virtualisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.2.2 Avec virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3. Plates-formes matérielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.1 Sur quelles plates-formes ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2 Identifier l'architecture matérielle . . . . . . . . . . . . . . . . . . . . . . . . 36

Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr 

Saisissez la référence ENI de l'ouvrage EI2LINAA dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.

2Administration avancée

Linux

4. Noyau Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1 Composants du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Code source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.3 Version du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.3.1 Bref historique des versions . . . . . . . . . . . . . . . . . . . . . . . 394.3.2 Numéros de version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3.3 Comment connaître la version du noyau ? . . . . . . . . . . . 41

4.4 Modules du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5. Pilotes de périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.1 Fichiers spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.2 Pilotes réseau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6. Bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.1 Bibliothèques statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.2 Bibliothèques partagées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.3 Emplacement des bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . 51

7. Appels système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

8. Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.1 Différents shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

8.1.1 Bourne Shell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.1.2 Almquist Shell et Debian Almquist Shell . . . . . . . . . . . . 558.1.3 Korn Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.1.4 C-Shell et Tenex C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . 598.1.5 Bourne Again Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

8.2 Quel est le shell de connexion ?. . . . . . . . . . . . . . . . . . . . . . . . . . 618.3 Pages de manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8.3.1 Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628.3.2 Rechercher l'aide d'une commande . . . . . . . . . . . . . . . . . 64

9. Interface graphique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669.1 Couches graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

9.1.1 Transport réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.1.2 Système de fenêtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.1.3 Gestionnaire d'affichage . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3Table des matières

9.1.4 Gestionnaire de session. . . . . . . . . . . . . . . . . . . . . . . . . . . 699.1.5 Gestionnaire de fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . 699.1.6 Gestionnaire de bureau . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.2 Désinstaller un environnement graphique . . . . . . . . . . . . . . . . . 71

10. Services et niveaux d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.1 Gestion des services avec Debian. . . . . . . . . . . . . . . . . . . . . . . . . 74

10.1.1 Afficher le statut d'un service. . . . . . . . . . . . . . . . . . . . . . 7410.1.2 Afficher le statut de tous les services . . . . . . . . . . . . . . . . 7510.1.3 Démarrer/arrêter un service . . . . . . . . . . . . . . . . . . . . . . . 7610.1.4 Recharger la configuration d'un service . . . . . . . . . . . . . . 7610.1.5 Activer/désactiver des services au démarrage . . . . . . . . . 77

10.2 Gestion des services avec Ubuntu Server . . . . . . . . . . . . . . . . . . 7810.2.1 Afficher le statut d'un service. . . . . . . . . . . . . . . . . . . . . . 8110.2.2 Afficher le statut de tous les services . . . . . . . . . . . . . . . . 8210.2.3 Démarrer/arrêter un service . . . . . . . . . . . . . . . . . . . . . . . 8310.2.4 Recharger la configuration d'un service . . . . . . . . . . . . . . 8410.2.5 Activer/désactiver des services au démarrage . . . . . . . . . 84

10.3 Gestion des services avec CentOS . . . . . . . . . . . . . . . . . . . . . . . . 8510.3.1 Afficher le statut d'un service. . . . . . . . . . . . . . . . . . . . . . 8510.3.2 Afficher le statut de tous les services . . . . . . . . . . . . . . . . 8610.3.3 Démarrer/arrêter un service . . . . . . . . . . . . . . . . . . . . . . . 8610.3.4 Recharger la configuration d'un service . . . . . . . . . . . . . 8610.3.5 Activer/désactiver des services au démarrage . . . . . . . . . 87

11. Chargeurs d'amorçage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8811.1 LILO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8811.2 GRUB legacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8811.3 GRUB-PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

12. Journaux système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.1 Journaux de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.2 Journaux de Ubuntu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9112.3 Journaux de CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

4Administration avancée

Linux

12.4 Lire les journaux système. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9512.4.1 Lire un journal texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9512.4.2 Lire un journal binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 9812.4.3 Logwatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

12.5 rsyslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10212.5.1 rsyslog.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10212.5.2 Les règles de rsyslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

12.6 Logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

13. Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10713.1 Processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

13.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10813.1.2 Identifiant de processus . . . . . . . . . . . . . . . . . . . . . . . . . 10913.1.3 État d'un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10913.1.4 Fonction fork() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11013.1.5 Fonction exec() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

13.2 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

14. Distributions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11314.1 Identifier la distribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11314.2 Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

14.2.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11414.2.2 Différentes versions de Debian . . . . . . . . . . . . . . . . . . . 114

14.3 Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11514.3.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11514.3.2 Différentes versions d’Ubuntu. . . . . . . . . . . . . . . . . . . . 115

14.4 Red Hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11614.4.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11614.4.2 Différentes versions de Red Hat . . . . . . . . . . . . . . . . . . 116

14.5 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11714.6 Identifier la version de la distribution . . . . . . . . . . . . . . . . . . . . 117

14.6.1 Version de Debian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11714.6.2 Version d’Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11814.6.3 Version de CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

5Table des matières

15. Modèle du système. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

16. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

Chapitre 3Noyau Linux

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211.1 Pourquoi compiler un noyau ? . . . . . . . . . . . . . . . . . . . . . . . . . . 1211.2 Fichiers composant le noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

2. Compiler et installer un noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222.1 Effectuer une compilation classique . . . . . . . . . . . . . . . . . . . . . 122

2.1.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232.1.2 Télécharger le code source du noyau . . . . . . . . . . . . . . . 1232.1.3 Outils pour configurer le noyau. . . . . . . . . . . . . . . . . . . 1262.1.4 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . 1322.1.5 Supprimer les fichiers d’une précédente compilation. . 1332.1.6 Construire le noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342.1.7 Installer un module de noyau. . . . . . . . . . . . . . . . . . . . . 135

2.2 Compiler un noyau façon Debian . . . . . . . . . . . . . . . . . . . . . . . 1372.2.1 Paquets nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372.2.2 Privilèges utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382.2.3 Supprimer les fichiers d’une précédente compilation. . 1392.2.4 Construire un noyau. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402.2.5 Installer un noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

3. Désinstaller un noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1433.1 Debian et Ubuntu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

3.1.1 Lister les noyaux installés. . . . . . . . . . . . . . . . . . . . . . . . 1433.1.2 Désinstaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

3.2 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453.2.1 Lister les noyaux installés. . . . . . . . . . . . . . . . . . . . . . . . 1453.2.2 Désinstaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453.2.3 Limiter le nombre de paquets. . . . . . . . . . . . . . . . . . . . . 147

6Administration avancée

Linux

4. Choisir un noyau au démarrage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.1 Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.2 Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1494.3 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504.4 Délai pour choisir le noyau à exécuter . . . . . . . . . . . . . . . . . . . 150

5. Kernel panic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525.1 Caractérisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525.2 Fréquence du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535.3 Analyse de la source du problème . . . . . . . . . . . . . . . . . . . . . . . 1535.4 Analyse du matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545.5 Analyse des logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

5.5.1 Chargeur d'amorçage . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565.5.2 Origine du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565.5.3 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

5.6 Recherche de solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575.7 Appliquer la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

6. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Chapitre 4Modules

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2. Compiler et installer un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1602.1 Prérequis à la compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

2.1.1 Debian et Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1602.1.2 Red Hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

2.2 Écrire un module « Hello world ». . . . . . . . . . . . . . . . . . . . . . . . 1602.2.1 Rédiger le code source . . . . . . . . . . . . . . . . . . . . . . . . . . . 1612.2.2 Créer le fichier Makefile . . . . . . . . . . . . . . . . . . . . . . . . . 1622.2.3 Compiler le code source hello.c . . . . . . . . . . . . . . . . . . . 163

7Table des matières

3. Charger un module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633.1 Installer le module hello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633.2 insmod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643.3 Gérer les dépendances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643.4 modprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1653.5 Charger un module au démarrage . . . . . . . . . . . . . . . . . . . . . . . 166

3.5.1 Debian et Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1663.5.2 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

4. Décharger un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

5. Lister les modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1695.1 Lister tous les modules disponibles . . . . . . . . . . . . . . . . . . . . . . 1695.2 Lister les modules chargés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

6. Obtenir des informations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

7. Bloquer un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

8. Journaux système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

9. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Chapitre 5Pseudo-systèmes de fichiers

1. procfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1771.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1771.2 Principaux fichiers de /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

1.2.1 /proc/acpi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781.2.2 /proc/apm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1791.2.3 /proc/bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1791.2.4 /proc/cmdline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1821.2.5 /proc/cpuinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1821.2.6 /proc/crypto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831.2.7 /proc/devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841.2.8 /proc/dma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1851.2.9 /proc/filesystems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

8Administration avancée

Linux

1.2.10 /proc/fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861.2.11 /proc/ide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861.2.12 /proc/interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.2.13 /proc/iomem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.2.14 /proc/ioports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.2.15 /proc/irq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1891.2.16 /proc/kcore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911.2.17 /proc/loadavg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911.2.18 /proc/mdstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.2.19 /proc/meminfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.2.20 /proc/misc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951.2.21 /proc/modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951.2.22 /proc/mounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1961.2.23 /proc/net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.2.24 /proc/partitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.2.25 /proc/self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.2.26 /proc/stat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.2.27 /proc/swaps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.2.28 /proc/sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.2.29 /proc/scsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111.2.30 /proc/tty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2131.2.31 /proc/uptime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2141.2.32 /proc/version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2141.2.33 /proc/vmallocinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2141.2.34 /proc/vmstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2151.2.35 /proc/zoneinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

1.3 Dossiers d'un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.3.1 /proc/1/cmdline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.3.2 /proc/1/cwd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.3.3 /proc/1/environ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.3.4 /proc/1/exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.3.5 /proc/1/fd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.3.6 /proc/1/maps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

9Table des matières

1.3.7 /proc/1/smaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181.3.8 /proc/1/mem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.3.9 /proc/1/root. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.3.10 /proc/1/stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2201.3.11 /proc/1/statm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2201.3.12 /proc/1/status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

1.4 Modification des paramètres du noyau. . . . . . . . . . . . . . . . . . . 2211.4.1 Modification volatile . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221.4.2 Modification permanente. . . . . . . . . . . . . . . . . . . . . . . . 223

2. sysfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.2 Principaux fichiers de /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

2.2.1 /sys/block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2262.2.2 /sys/bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2262.2.3 /sys/class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2272.2.4 /sys/dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2272.2.5 /sys/devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2282.2.6 /sys/firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2282.2.7 /sys/fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2292.2.8 /sys/hypervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2302.2.9 /sys/kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2302.2.10 /sys/module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322.2.11 /sys/power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

2.3 Utilitaire systool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.3.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.3.2 Utilisation de systool . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

2.4 Modification des paramètres du noyau. . . . . . . . . . . . . . . . . . . 240

3. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

10Administration avancée

Linux

Chapitre 6Dépannage matériel

1. Types de problèmes matériels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431.1 Pannes matérielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

1.1.1 Non-fonctionnement du matériel . . . . . . . . . . . . . . . . . 2431.1.2 Fonctionnement erratique du matériel . . . . . . . . . . . . . 2441.1.3 Problèmes de firmware et de pilote . . . . . . . . . . . . . . . . 2441.1.4 Autres considérations . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

1.2 Matériel non détecté par le système . . . . . . . . . . . . . . . . . . . . . 245

2. Analyser le matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.1 Lister le matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

2.1.1 Installation de lshw . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.1.2 Utilisation de lshw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

2.2 Système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2532.3 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2532.4 Table DMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2542.5 Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

2.5.1 lspci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2582.5.2 lsusb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612.5.3 lsscsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632.5.4 lspcmcia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

2.6 Mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2672.6.1 Informations sur la mémoire . . . . . . . . . . . . . . . . . . . . . 2672.6.2 Diagnostiquer la mémoire . . . . . . . . . . . . . . . . . . . . . . . 269

2.7 Carte graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2702.8 Disques durs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

2.8.1 Informations sur les contrôleurs . . . . . . . . . . . . . . . . . . 2712.8.2 Informations sur les disques. . . . . . . . . . . . . . . . . . . . . . 2722.8.3 Informations sur les volumes . . . . . . . . . . . . . . . . . . . . . 2732.8.4 Diagnostiquer un disque dur . . . . . . . . . . . . . . . . . . . . . 275

2.9 Carte réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

3. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

11Table des matières

Chapitre 7Maintenance des disques

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

2. Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2892.1 Table de partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

2.1.1 Type msdos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2912.1.2 Type GPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922.1.3 Convertir du MBR vers GPT . . . . . . . . . . . . . . . . . . . . . 2932.1.4 Supprimer une table de partition. . . . . . . . . . . . . . . . . . 295

2.2 Outils de partitionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2962.2.1 fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2962.2.2 cfdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3042.2.3 GNU parted. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3072.2.4 GParted et QtParted . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3102.2.5 Live CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

3. Logical Volume Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3143.1 Terminologie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

3.1.1 Volume physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3143.1.2 Groupe de volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3153.1.3 Volume logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3153.1.4 Métadonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

3.2 Administration des volumes physiques . . . . . . . . . . . . . . . . . . 3173.2.1 Créer un volume physique . . . . . . . . . . . . . . . . . . . . . . . 3173.2.2 Afficher les volumes physiques . . . . . . . . . . . . . . . . . . . 3193.2.3 Modifier la taille d'un volume physique . . . . . . . . . . . . 3213.2.4 Supprimer un volume physique . . . . . . . . . . . . . . . . . . . 322

3.3 Administration des groupes de volumes . . . . . . . . . . . . . . . . . . 3233.3.1 Créer un groupe de volumes. . . . . . . . . . . . . . . . . . . . . . 3233.3.2 Afficher les groupes de volumes. . . . . . . . . . . . . . . . . . . 3243.3.3 Ajouter un volume physique au groupe de volumes . . 3273.3.4 Retirer un volume physique du groupe de volumes . . . 3293.3.5 Activer ou désactiver un groupe de volumes. . . . . . . . . 330

12Administration avancée

Linux

3.3.6 Supprimer un groupe de volumes . . . . . . . . . . . . . . . . . 3303.3.7 Diviser un groupe de volumes . . . . . . . . . . . . . . . . . . . . 3313.3.8 Fusionner des groupes de volumes. . . . . . . . . . . . . . . . . 3333.3.9 Renommer un groupe de volumes . . . . . . . . . . . . . . . . . 334

3.4 Administration des volumes logiques . . . . . . . . . . . . . . . . . . . . 3353.4.1 Créer des volumes logiques en mode linéaire . . . . . . . . 3353.4.2 Créer des volumes logiques en mode stripe. . . . . . . . . . 3393.4.3 Créer des volumes logiques en miroir . . . . . . . . . . . . . . 3433.4.4 Créer des snapshots de volume logique . . . . . . . . . . . . . 3473.4.5 Afficher les volumes logiques . . . . . . . . . . . . . . . . . . . . . 3503.4.6 Augmenter la taille d'un volume logique. . . . . . . . . . . . 3523.4.7 Réduire la taille d'un volume logique. . . . . . . . . . . . . . . 3543.4.8 Renommer un volume logique. . . . . . . . . . . . . . . . . . . . 3563.4.9 Supprimer un volume logique . . . . . . . . . . . . . . . . . . . . 357

3.5 Déplacer des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358

4. Systèmes de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3624.1 ext2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

4.1.1 Blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3634.1.2 Superbloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3644.1.3 Inodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3664.1.4 Créer un système de fichiers ext2 . . . . . . . . . . . . . . . . . 368

4.2 ext3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3684.2.1 La journalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3694.2.2 Convertir une partition ext2 en ext3. . . . . . . . . . . . . . . 3694.2.3 Créer un système de fichiers ext3 . . . . . . . . . . . . . . . . . 370

4.3 ext4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3714.3.1 Convertir une partition ext3 en ext4. . . . . . . . . . . . . . . 3724.3.2 Créer un système de fichiers ext4 . . . . . . . . . . . . . . . . . 373

5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3745.1 Partitionnement pendant l'installation. . . . . . . . . . . . . . . . . . . 3745.2 Partitionnement post-installation. . . . . . . . . . . . . . . . . . . . . . . 376

13Table des matières

Chapitre 8Séquence d'amorçage

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

2. Processus d'amorçage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

3. GRUB 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3793.1 Identifier la version de GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 3793.2 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

4. Sauver et restaurer le MBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

5. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

Chapitre 9Maintenance des applications

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

2. Application ne s'exécutant pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3872.1 Description d'un paquet installé . . . . . . . . . . . . . . . . . . . . . . . . 3882.2 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3922.3 Consulter les journaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3932.4 Filtrages réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4012.5 Dépendances du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . 4032.6 Emplacement des bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . 4042.7 Mode de débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408

3. Application ne répondant pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4083.1 Mode débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4083.2 Terminer un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

3.2.1 Rechercher un PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4093.2.2 Outils pour terminer un processus . . . . . . . . . . . . . . . . 412

4. Fonctionnement dégradé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

5. Comportements inattendus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4185.1 Supprimer les zombies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4195.2 Fuite de mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

14Administration avancée

Linux

6. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4246.1 Tuer un programme zombie . . . . . . . . . . . . . . . . . . . . . . . . . . . 4246.2 Identifier une fuite mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

Chapitre 10Maintenance de la configuration réseau

1. Modèles de communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291.1 Rappel du modèle OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291.2 Modèle TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4311.3 Modèle OSI contre modèle TCP/IP. . . . . . . . . . . . . . . . . . . . . . 432

2. Interface physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4332.1 Détection du matériel et du pilote . . . . . . . . . . . . . . . . . . . . . . 4332.2 Adressage physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

2.2.1 Identifier l'adresse MAC . . . . . . . . . . . . . . . . . . . . . . . . . 4362.2.2 Cache ARP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4382.2.3 ARPing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

3. Interface logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4413.1 CentOS 7 : changer le nom de l'interface . . . . . . . . . . . . . . . . . 4413.2 Activer/désactiver une interface . . . . . . . . . . . . . . . . . . . . . . . . 4443.3 Configurer une interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

3.3.1 Configuration des interfaces sous Debian et Ubuntu . 4463.3.2 Configuration des interfaces sous CentOS . . . . . . . . . . 4483.3.3 Utilitaire ethtool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4503.3.4 Interface virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

3.4 Adressage IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4533.4.1 Adresse IPv4 statique . . . . . . . . . . . . . . . . . . . . . . . . . . . 4553.4.2 Adressage IPv4 dynamique. . . . . . . . . . . . . . . . . . . . . . . 4563.4.3 Supprimer l'adresse IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . 456

3.5 Passerelle par défaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4573.6 Résolution de noms d'hôtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458

3.6.1 Tester la résolution de noms . . . . . . . . . . . . . . . . . . . . . 4593.6.2 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . 461

15Table des matières

4. Outils d'analyse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4614.1 Problèmes de connexion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

4.1.1 Vérifier la configuration TCP/IP . . . . . . . . . . . . . . . . . . 4624.1.2 Vérifier l'ajout au réseau . . . . . . . . . . . . . . . . . . . . . . . . . 4634.1.3 Vérifier la communication locale . . . . . . . . . . . . . . . . . . 4634.1.4 Vérifier la communication distante . . . . . . . . . . . . . . . . 464

4.2 Bloquer/débloquer le ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4654.2.1 Bloquer ping avec /proc . . . . . . . . . . . . . . . . . . . . . . . . . 4654.2.2 Bloquer ping avec iptables . . . . . . . . . . . . . . . . . . . . . . . 466

4.3 Ports ouverts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4704.4 Bande passante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4775.1 Collecter la configuration d'une carte réseau . . . . . . . . . . . . . . 4775.2 Renommer l'interface réseau en eth0 . . . . . . . . . . . . . . . . . . . . 478

Chapitre 11Analyse des performances

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

2. Goulet d'étranglement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4802.1 Identifier les ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4802.2 Capturer et stocker des données . . . . . . . . . . . . . . . . . . . . . . . . 481

3. Processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

4. Mémoires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4874.1 Mémoire physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

4.1.1 Architecture x86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4874.1.2 Architecture x86_64/amd64. . . . . . . . . . . . . . . . . . . . . . 488

4.2 Mémoire tampon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4884.3 Mémoire cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4894.4 L'espace d'échange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

4.4.1 Swap en tant que partition . . . . . . . . . . . . . . . . . . . . . . 4904.4.2 Swap en tant que fichier. . . . . . . . . . . . . . . . . . . . . . . . . 490

16Administration avancée

Linux

4.5 Mémoire virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4924.6 Afficher la mémoire du système . . . . . . . . . . . . . . . . . . . . . . . . 4924.7 La carte mémoire d'un programme . . . . . . . . . . . . . . . . . . . . . . 4954.8 Mémoire insuffisante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

5. Disques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499

6. Interfaces réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5057.1 Création d'un fichier swap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5057.2 Stress de la mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506

Chapitre 12Sécurité

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

2. Sécurité physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.1 Qui doit accéder à la machine ? . . . . . . . . . . . . . . . . . . . . . . . . . 5082.2 Alimentation électrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.3 Interfaces de communication . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.4 BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

3. Sécurité logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5163.1 Version des logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5163.2 Que faut-il installer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5163.3 Mise à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5173.4 Gérer des paquets deb avec apt . . . . . . . . . . . . . . . . . . . . . . . . . 519

3.4.1 Installer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5203.4.2 Rechercher des paquets. . . . . . . . . . . . . . . . . . . . . . . . . . 5203.4.3 Afficher la description d'un paquet . . . . . . . . . . . . . . . . 5213.4.4 Afficher les dépendances . . . . . . . . . . . . . . . . . . . . . . . . 5233.4.5 Installer les dépendances . . . . . . . . . . . . . . . . . . . . . . . . 5283.4.6 Afficher les informations d'un paquet . . . . . . . . . . . . . . 5303.4.7 Identifier le dépôt d'un paquet. . . . . . . . . . . . . . . . . . . . 5303.4.8 Provenance d'un fichier. . . . . . . . . . . . . . . . . . . . . . . . . . 530

17Table des matières

3.4.9 Lister le contenu d'un paquet . . . . . . . . . . . . . . . . . . . . . 5343.4.10 Rechercher les versions des paquets disponibles . . . . . 5343.4.11 Mettre à jour les dépôts . . . . . . . . . . . . . . . . . . . . . . . . . 5363.4.12 Mettre à jour les paquets système . . . . . . . . . . . . . . . . . 5373.4.13 Désinstaller un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . 5383.4.14 Supprimer les paquets d'installation . . . . . . . . . . . . . . . 540

3.5 Gérer des paquets deb avec dpkg . . . . . . . . . . . . . . . . . . . . . . . . 5413.5.1 Lister les paquets installés . . . . . . . . . . . . . . . . . . . . . . . 5413.5.2 Reconfigurer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . 5443.5.3 Traiter les paquets cassés . . . . . . . . . . . . . . . . . . . . . . . . 544

3.6 Gérer les paquets RPM avec yum . . . . . . . . . . . . . . . . . . . . . . . 5443.6.1 Mise à jour du système . . . . . . . . . . . . . . . . . . . . . . . . . . 5443.6.2 Rechercher un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . 5473.6.3 Installer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5493.6.4 Supprimer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . 5503.6.5 Afficher les informations du paquet . . . . . . . . . . . . . . . 5523.6.6 Mise à jour sélective . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5533.6.7 Gérer les groupes de programmes . . . . . . . . . . . . . . . . . 553

3.7 Gérer les paquets RPM avec rpm. . . . . . . . . . . . . . . . . . . . . . . . 5553.7.1 Installer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5553.7.2 Lire les informations d'un paquet . . . . . . . . . . . . . . . . . 5563.7.3 Afficher tous les paquets installés . . . . . . . . . . . . . . . . . 5573.7.4 Modifier le format d'affichage . . . . . . . . . . . . . . . . . . . . 558

3.8 Identification et authentification . . . . . . . . . . . . . . . . . . . . . . . 5583.8.1 Types de compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5583.8.2 Caractéristiques d’un compte . . . . . . . . . . . . . . . . . . . . 5593.8.3 Caractéristiques du compte root . . . . . . . . . . . . . . . . . . 5603.8.4 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5613.8.5 Profil utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5613.8.6 Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5613.8.7 Vérifier les fichiers de comptes. . . . . . . . . . . . . . . . . . . . 562

18Administration avancée

Linux

3.9 Configuration réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5633.9.1 Identifier les ports ouverts . . . . . . . . . . . . . . . . . . . . . . . 5633.9.2 Pare-feu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565

3.10 Faut-il un antivirus ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566

AnnexeCorrection des exercices

1. Exercice du chapitre Architecture du système GNU/Linux . . . . . . 567

2. Exercice du chapitre Noyau Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . 570

3. Exercice du chapitre Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572

4. Exercice du chapitre Pseudo-systèmes de fichiers . . . . . . . . . . . . . . 574

5. Exercice du chapitre Dépannage matériel . . . . . . . . . . . . . . . . . . . . . 575

6. Exercice du chapitre Maintenance des disques. . . . . . . . . . . . . . . . . 5786.1 Partitionnement pendant l'installation. . . . . . . . . . . . . . . . . . . 5786.2 Partitionnement post-installation. . . . . . . . . . . . . . . . . . . . . . . 588

7. Exercice du chapitre Séquence d’amorçage . . . . . . . . . . . . . . . . . . . . 592

8. Exercice du chapitre Maintenance des applications. . . . . . . . . . . . . 5938.1 Tuer un programme zombie . . . . . . . . . . . . . . . . . . . . . . . . . . . 5948.2 Identifier une fuite mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 595

9. Exercice du chapitre Maintenance de la configuration réseau. . . . . 5989.1 Collecter la configuration d'une carte réseau . . . . . . . . . . . . . . 5989.2 Renommer l'interface réseau en eth0 . . . . . . . . . . . . . . . . . . . . 599

10. Exercice du chapitre Analyse des performances . . . . . . . . . . . . . . . . 60110.1 Création d'un fichier swap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60110.2 Stress de la mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605

1Table des matières

Chapitre 1Introduction

1. Que contient ce livre ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2. Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3. Obtenir les logiciels mis en œuvre. . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.1 Image ISO des distributions Linux . . . . . . . . . . . . . . . . . . . . . . . 203.2 Oracle VM VirtualBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.3 Machines virtuelles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.4 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapitre 2Architecture du système GNU/Linux

1. Vue d'ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.1 Projet GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.2 Distribution GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2. Anneaux de protection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.1 Architecture 32 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.1.1 Sans virtualisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.1.2 Avec virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.2 Architecture 64 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.2.1 Sans virtualisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.2.2 Avec virtualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3. Plates-formes matérielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.1 Sur quelles plates-formes ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2 Identifier l'architecture matérielle . . . . . . . . . . . . . . . . . . . . . . . . 36

Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr 

Saisissez la référence ENI de l'ouvrage EI2LINAA dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.

2Administration avancée

Linux

4. Noyau Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1 Composants du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Code source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.3 Version du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.3.1 Bref historique des versions . . . . . . . . . . . . . . . . . . . . . . . 394.3.2 Numéros de version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3.3 Comment connaître la version du noyau ? . . . . . . . . . . . 41

4.4 Modules du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5. Pilotes de périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.1 Fichiers spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.2 Pilotes réseau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6. Bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.1 Bibliothèques statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.2 Bibliothèques partagées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.3 Emplacement des bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . 51

7. Appels système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

8. Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.1 Différents shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

8.1.1 Bourne Shell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.1.2 Almquist Shell et Debian Almquist Shell . . . . . . . . . . . . 558.1.3 Korn Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.1.4 C-Shell et Tenex C-Shell . . . . . . . . . . . . . . . . . . . . . . . . . 598.1.5 Bourne Again Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

8.2 Quel est le shell de connexion ?. . . . . . . . . . . . . . . . . . . . . . . . . . 618.3 Pages de manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8.3.1 Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628.3.2 Rechercher l'aide d'une commande . . . . . . . . . . . . . . . . . 64

9. Interface graphique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669.1 Couches graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

9.1.1 Transport réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.1.2 Système de fenêtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679.1.3 Gestionnaire d'affichage . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3Table des matières

9.1.4 Gestionnaire de session. . . . . . . . . . . . . . . . . . . . . . . . . . . 699.1.5 Gestionnaire de fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . 699.1.6 Gestionnaire de bureau . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.2 Désinstaller un environnement graphique . . . . . . . . . . . . . . . . . 71

10. Services et niveaux d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.1 Gestion des services avec Debian. . . . . . . . . . . . . . . . . . . . . . . . . 74

10.1.1 Afficher le statut d'un service. . . . . . . . . . . . . . . . . . . . . . 7410.1.2 Afficher le statut de tous les services . . . . . . . . . . . . . . . . 7510.1.3 Démarrer/arrêter un service . . . . . . . . . . . . . . . . . . . . . . . 7610.1.4 Recharger la configuration d'un service . . . . . . . . . . . . . . 7610.1.5 Activer/désactiver des services au démarrage . . . . . . . . . 77

10.2 Gestion des services avec Ubuntu Server . . . . . . . . . . . . . . . . . . 7810.2.1 Afficher le statut d'un service. . . . . . . . . . . . . . . . . . . . . . 8110.2.2 Afficher le statut de tous les services . . . . . . . . . . . . . . . . 8210.2.3 Démarrer/arrêter un service . . . . . . . . . . . . . . . . . . . . . . . 8310.2.4 Recharger la configuration d'un service . . . . . . . . . . . . . . 8410.2.5 Activer/désactiver des services au démarrage . . . . . . . . . 84

10.3 Gestion des services avec CentOS . . . . . . . . . . . . . . . . . . . . . . . . 8510.3.1 Afficher le statut d'un service. . . . . . . . . . . . . . . . . . . . . . 8510.3.2 Afficher le statut de tous les services . . . . . . . . . . . . . . . . 8610.3.3 Démarrer/arrêter un service . . . . . . . . . . . . . . . . . . . . . . . 8610.3.4 Recharger la configuration d'un service . . . . . . . . . . . . . 8610.3.5 Activer/désactiver des services au démarrage . . . . . . . . . 87

11. Chargeurs d'amorçage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8811.1 LILO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8811.2 GRUB legacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8811.3 GRUB-PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

12. Journaux système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.1 Journaux de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.2 Journaux de Ubuntu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9112.3 Journaux de CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

4Administration avancée

Linux

12.4 Lire les journaux système. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9512.4.1 Lire un journal texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9512.4.2 Lire un journal binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 9812.4.3 Logwatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

12.5 rsyslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10212.5.1 rsyslog.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10212.5.2 Les règles de rsyslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

12.6 Logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

13. Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10713.1 Processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

13.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10813.1.2 Identifiant de processus . . . . . . . . . . . . . . . . . . . . . . . . . 10913.1.3 État d'un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10913.1.4 Fonction fork() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11013.1.5 Fonction exec() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

13.2 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

14. Distributions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11314.1 Identifier la distribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11314.2 Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

14.2.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11414.2.2 Différentes versions de Debian . . . . . . . . . . . . . . . . . . . 114

14.3 Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11514.3.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11514.3.2 Différentes versions d’Ubuntu. . . . . . . . . . . . . . . . . . . . 115

14.4 Red Hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11614.4.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11614.4.2 Différentes versions de Red Hat . . . . . . . . . . . . . . . . . . 116

14.5 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11714.6 Identifier la version de la distribution . . . . . . . . . . . . . . . . . . . . 117

14.6.1 Version de Debian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11714.6.2 Version d’Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11814.6.3 Version de CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

5Table des matières

15. Modèle du système. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

16. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

Chapitre 3Noyau Linux

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211.1 Pourquoi compiler un noyau ? . . . . . . . . . . . . . . . . . . . . . . . . . . 1211.2 Fichiers composant le noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

2. Compiler et installer un noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222.1 Effectuer une compilation classique . . . . . . . . . . . . . . . . . . . . . 122

2.1.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232.1.2 Télécharger le code source du noyau . . . . . . . . . . . . . . . 1232.1.3 Outils pour configurer le noyau. . . . . . . . . . . . . . . . . . . 1262.1.4 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . 1322.1.5 Supprimer les fichiers d’une précédente compilation. . 1332.1.6 Construire le noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342.1.7 Installer un module de noyau. . . . . . . . . . . . . . . . . . . . . 135

2.2 Compiler un noyau façon Debian . . . . . . . . . . . . . . . . . . . . . . . 1372.2.1 Paquets nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372.2.2 Privilèges utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382.2.3 Supprimer les fichiers d’une précédente compilation. . 1392.2.4 Construire un noyau. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402.2.5 Installer un noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

3. Désinstaller un noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1433.1 Debian et Ubuntu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

3.1.1 Lister les noyaux installés. . . . . . . . . . . . . . . . . . . . . . . . 1433.1.2 Désinstaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

3.2 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453.2.1 Lister les noyaux installés. . . . . . . . . . . . . . . . . . . . . . . . 1453.2.2 Désinstaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453.2.3 Limiter le nombre de paquets. . . . . . . . . . . . . . . . . . . . . 147

6Administration avancée

Linux

4. Choisir un noyau au démarrage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.1 Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.2 Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1494.3 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504.4 Délai pour choisir le noyau à exécuter . . . . . . . . . . . . . . . . . . . 150

5. Kernel panic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525.1 Caractérisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525.2 Fréquence du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535.3 Analyse de la source du problème . . . . . . . . . . . . . . . . . . . . . . . 1535.4 Analyse du matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545.5 Analyse des logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

5.5.1 Chargeur d'amorçage . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565.5.2 Origine du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565.5.3 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

5.6 Recherche de solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575.7 Appliquer la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

6. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Chapitre 4Modules

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2. Compiler et installer un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1602.1 Prérequis à la compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

2.1.1 Debian et Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1602.1.2 Red Hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

2.2 Écrire un module « Hello world ». . . . . . . . . . . . . . . . . . . . . . . . 1602.2.1 Rédiger le code source . . . . . . . . . . . . . . . . . . . . . . . . . . . 1612.2.2 Créer le fichier Makefile . . . . . . . . . . . . . . . . . . . . . . . . . 1622.2.3 Compiler le code source hello.c . . . . . . . . . . . . . . . . . . . 163

7Table des matières

3. Charger un module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633.1 Installer le module hello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633.2 insmod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643.3 Gérer les dépendances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643.4 modprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1653.5 Charger un module au démarrage . . . . . . . . . . . . . . . . . . . . . . . 166

3.5.1 Debian et Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1663.5.2 CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

4. Décharger un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

5. Lister les modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1695.1 Lister tous les modules disponibles . . . . . . . . . . . . . . . . . . . . . . 1695.2 Lister les modules chargés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

6. Obtenir des informations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

7. Bloquer un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

8. Journaux système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

9. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Chapitre 5Pseudo-systèmes de fichiers

1. procfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1771.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1771.2 Principaux fichiers de /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

1.2.1 /proc/acpi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781.2.2 /proc/apm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1791.2.3 /proc/bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1791.2.4 /proc/cmdline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1821.2.5 /proc/cpuinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1821.2.6 /proc/crypto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831.2.7 /proc/devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841.2.8 /proc/dma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1851.2.9 /proc/filesystems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

8Administration avancée

Linux

1.2.10 /proc/fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861.2.11 /proc/ide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861.2.12 /proc/interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.2.13 /proc/iomem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.2.14 /proc/ioports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.2.15 /proc/irq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1891.2.16 /proc/kcore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911.2.17 /proc/loadavg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911.2.18 /proc/mdstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.2.19 /proc/meminfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.2.20 /proc/misc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951.2.21 /proc/modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951.2.22 /proc/mounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1961.2.23 /proc/net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.2.24 /proc/partitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.2.25 /proc/self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.2.26 /proc/stat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.2.27 /proc/swaps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.2.28 /proc/sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.2.29 /proc/scsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111.2.30 /proc/tty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2131.2.31 /proc/uptime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2141.2.32 /proc/version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2141.2.33 /proc/vmallocinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2141.2.34 /proc/vmstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2151.2.35 /proc/zoneinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

1.3 Dossiers d'un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.3.1 /proc/1/cmdline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.3.2 /proc/1/cwd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.3.3 /proc/1/environ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.3.4 /proc/1/exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.3.5 /proc/1/fd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.3.6 /proc/1/maps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

9Table des matières

1.3.7 /proc/1/smaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181.3.8 /proc/1/mem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.3.9 /proc/1/root. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.3.10 /proc/1/stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2201.3.11 /proc/1/statm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2201.3.12 /proc/1/status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

1.4 Modification des paramètres du noyau. . . . . . . . . . . . . . . . . . . 2211.4.1 Modification volatile . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221.4.2 Modification permanente. . . . . . . . . . . . . . . . . . . . . . . . 223

2. sysfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.2 Principaux fichiers de /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

2.2.1 /sys/block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2262.2.2 /sys/bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2262.2.3 /sys/class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2272.2.4 /sys/dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2272.2.5 /sys/devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2282.2.6 /sys/firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2282.2.7 /sys/fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2292.2.8 /sys/hypervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2302.2.9 /sys/kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2302.2.10 /sys/module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322.2.11 /sys/power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

2.3 Utilitaire systool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.3.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.3.2 Utilisation de systool . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

2.4 Modification des paramètres du noyau. . . . . . . . . . . . . . . . . . . 240

3. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

10Administration avancée

Linux

Chapitre 6Dépannage matériel

1. Types de problèmes matériels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431.1 Pannes matérielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

1.1.1 Non-fonctionnement du matériel . . . . . . . . . . . . . . . . . 2431.1.2 Fonctionnement erratique du matériel . . . . . . . . . . . . . 2441.1.3 Problèmes de firmware et de pilote . . . . . . . . . . . . . . . . 2441.1.4 Autres considérations . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

1.2 Matériel non détecté par le système . . . . . . . . . . . . . . . . . . . . . 245

2. Analyser le matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.1 Lister le matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

2.1.1 Installation de lshw . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.1.2 Utilisation de lshw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

2.2 Système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2532.3 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2532.4 Table DMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2542.5 Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

2.5.1 lspci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2582.5.2 lsusb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612.5.3 lsscsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632.5.4 lspcmcia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

2.6 Mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2672.6.1 Informations sur la mémoire . . . . . . . . . . . . . . . . . . . . . 2672.6.2 Diagnostiquer la mémoire . . . . . . . . . . . . . . . . . . . . . . . 269

2.7 Carte graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2702.8 Disques durs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

2.8.1 Informations sur les contrôleurs . . . . . . . . . . . . . . . . . . 2712.8.2 Informations sur les disques. . . . . . . . . . . . . . . . . . . . . . 2722.8.3 Informations sur les volumes . . . . . . . . . . . . . . . . . . . . . 2732.8.4 Diagnostiquer un disque dur . . . . . . . . . . . . . . . . . . . . . 275

2.9 Carte réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

3. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

11Table des matières

Chapitre 7Maintenance des disques

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

2. Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2892.1 Table de partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

2.1.1 Type msdos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2912.1.2 Type GPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2922.1.3 Convertir du MBR vers GPT . . . . . . . . . . . . . . . . . . . . . 2932.1.4 Supprimer une table de partition. . . . . . . . . . . . . . . . . . 295

2.2 Outils de partitionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2962.2.1 fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2962.2.2 cfdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3042.2.3 GNU parted. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3072.2.4 GParted et QtParted . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3102.2.5 Live CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

3. Logical Volume Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3143.1 Terminologie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

3.1.1 Volume physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3143.1.2 Groupe de volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3153.1.3 Volume logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3153.1.4 Métadonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

3.2 Administration des volumes physiques . . . . . . . . . . . . . . . . . . 3173.2.1 Créer un volume physique . . . . . . . . . . . . . . . . . . . . . . . 3173.2.2 Afficher les volumes physiques . . . . . . . . . . . . . . . . . . . 3193.2.3 Modifier la taille d'un volume physique . . . . . . . . . . . . 3213.2.4 Supprimer un volume physique . . . . . . . . . . . . . . . . . . . 322

3.3 Administration des groupes de volumes . . . . . . . . . . . . . . . . . . 3233.3.1 Créer un groupe de volumes. . . . . . . . . . . . . . . . . . . . . . 3233.3.2 Afficher les groupes de volumes. . . . . . . . . . . . . . . . . . . 3243.3.3 Ajouter un volume physique au groupe de volumes . . 3273.3.4 Retirer un volume physique du groupe de volumes . . . 3293.3.5 Activer ou désactiver un groupe de volumes. . . . . . . . . 330

12Administration avancée

Linux

3.3.6 Supprimer un groupe de volumes . . . . . . . . . . . . . . . . . 3303.3.7 Diviser un groupe de volumes . . . . . . . . . . . . . . . . . . . . 3313.3.8 Fusionner des groupes de volumes. . . . . . . . . . . . . . . . . 3333.3.9 Renommer un groupe de volumes . . . . . . . . . . . . . . . . . 334

3.4 Administration des volumes logiques . . . . . . . . . . . . . . . . . . . . 3353.4.1 Créer des volumes logiques en mode linéaire . . . . . . . . 3353.4.2 Créer des volumes logiques en mode stripe. . . . . . . . . . 3393.4.3 Créer des volumes logiques en miroir . . . . . . . . . . . . . . 3433.4.4 Créer des snapshots de volume logique . . . . . . . . . . . . . 3473.4.5 Afficher les volumes logiques . . . . . . . . . . . . . . . . . . . . . 3503.4.6 Augmenter la taille d'un volume logique. . . . . . . . . . . . 3523.4.7 Réduire la taille d'un volume logique. . . . . . . . . . . . . . . 3543.4.8 Renommer un volume logique. . . . . . . . . . . . . . . . . . . . 3563.4.9 Supprimer un volume logique . . . . . . . . . . . . . . . . . . . . 357

3.5 Déplacer des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358

4. Systèmes de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3624.1 ext2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

4.1.1 Blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3634.1.2 Superbloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3644.1.3 Inodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3664.1.4 Créer un système de fichiers ext2 . . . . . . . . . . . . . . . . . 368

4.2 ext3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3684.2.1 La journalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3694.2.2 Convertir une partition ext2 en ext3. . . . . . . . . . . . . . . 3694.2.3 Créer un système de fichiers ext3 . . . . . . . . . . . . . . . . . 370

4.3 ext4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3714.3.1 Convertir une partition ext3 en ext4. . . . . . . . . . . . . . . 3724.3.2 Créer un système de fichiers ext4 . . . . . . . . . . . . . . . . . 373

5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3745.1 Partitionnement pendant l'installation. . . . . . . . . . . . . . . . . . . 3745.2 Partitionnement post-installation. . . . . . . . . . . . . . . . . . . . . . . 376

13Table des matières

Chapitre 8Séquence d'amorçage

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

2. Processus d'amorçage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

3. GRUB 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3793.1 Identifier la version de GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 3793.2 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

4. Sauver et restaurer le MBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

5. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

Chapitre 9Maintenance des applications

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

2. Application ne s'exécutant pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3872.1 Description d'un paquet installé . . . . . . . . . . . . . . . . . . . . . . . . 3882.2 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3922.3 Consulter les journaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3932.4 Filtrages réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4012.5 Dépendances du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . 4032.6 Emplacement des bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . 4042.7 Mode de débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408

3. Application ne répondant pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4083.1 Mode débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4083.2 Terminer un processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

3.2.1 Rechercher un PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4093.2.2 Outils pour terminer un processus . . . . . . . . . . . . . . . . 412

4. Fonctionnement dégradé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

5. Comportements inattendus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4185.1 Supprimer les zombies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4195.2 Fuite de mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

14Administration avancée

Linux

6. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4246.1 Tuer un programme zombie . . . . . . . . . . . . . . . . . . . . . . . . . . . 4246.2 Identifier une fuite mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

Chapitre 10Maintenance de la configuration réseau

1. Modèles de communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291.1 Rappel du modèle OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291.2 Modèle TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4311.3 Modèle OSI contre modèle TCP/IP. . . . . . . . . . . . . . . . . . . . . . 432

2. Interface physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4332.1 Détection du matériel et du pilote . . . . . . . . . . . . . . . . . . . . . . 4332.2 Adressage physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

2.2.1 Identifier l'adresse MAC . . . . . . . . . . . . . . . . . . . . . . . . . 4362.2.2 Cache ARP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4382.2.3 ARPing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

3. Interface logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4413.1 CentOS 7 : changer le nom de l'interface . . . . . . . . . . . . . . . . . 4413.2 Activer/désactiver une interface . . . . . . . . . . . . . . . . . . . . . . . . 4443.3 Configurer une interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

3.3.1 Configuration des interfaces sous Debian et Ubuntu . 4463.3.2 Configuration des interfaces sous CentOS . . . . . . . . . . 4483.3.3 Utilitaire ethtool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4503.3.4 Interface virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

3.4 Adressage IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4533.4.1 Adresse IPv4 statique . . . . . . . . . . . . . . . . . . . . . . . . . . . 4553.4.2 Adressage IPv4 dynamique. . . . . . . . . . . . . . . . . . . . . . . 4563.4.3 Supprimer l'adresse IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . 456

3.5 Passerelle par défaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4573.6 Résolution de noms d'hôtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458

3.6.1 Tester la résolution de noms . . . . . . . . . . . . . . . . . . . . . 4593.6.2 Fichiers de configuration . . . . . . . . . . . . . . . . . . . . . . . . 461

15Table des matières

4. Outils d'analyse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4614.1 Problèmes de connexion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

4.1.1 Vérifier la configuration TCP/IP . . . . . . . . . . . . . . . . . . 4624.1.2 Vérifier l'ajout au réseau . . . . . . . . . . . . . . . . . . . . . . . . . 4634.1.3 Vérifier la communication locale . . . . . . . . . . . . . . . . . . 4634.1.4 Vérifier la communication distante . . . . . . . . . . . . . . . . 464

4.2 Bloquer/débloquer le ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4654.2.1 Bloquer ping avec /proc . . . . . . . . . . . . . . . . . . . . . . . . . 4654.2.2 Bloquer ping avec iptables . . . . . . . . . . . . . . . . . . . . . . . 466

4.3 Ports ouverts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4704.4 Bande passante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

5. Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4775.1 Collecter la configuration d'une carte réseau . . . . . . . . . . . . . . 4775.2 Renommer l'interface réseau en eth0 . . . . . . . . . . . . . . . . . . . . 478

Chapitre 11Analyse des performances

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

2. Goulet d'étranglement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4802.1 Identifier les ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4802.2 Capturer et stocker des données . . . . . . . . . . . . . . . . . . . . . . . . 481

3. Processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

4. Mémoires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4874.1 Mémoire physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

4.1.1 Architecture x86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4874.1.2 Architecture x86_64/amd64. . . . . . . . . . . . . . . . . . . . . . 488

4.2 Mémoire tampon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4884.3 Mémoire cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4894.4 L'espace d'échange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

4.4.1 Swap en tant que partition . . . . . . . . . . . . . . . . . . . . . . 4904.4.2 Swap en tant que fichier. . . . . . . . . . . . . . . . . . . . . . . . . 490

16Administration avancée

Linux

4.5 Mémoire virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4924.6 Afficher la mémoire du système . . . . . . . . . . . . . . . . . . . . . . . . 4924.7 La carte mémoire d'un programme . . . . . . . . . . . . . . . . . . . . . . 4954.8 Mémoire insuffisante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

5. Disques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499

6. Interfaces réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502

7. Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5057.1 Création d'un fichier swap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5057.2 Stress de la mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506

Chapitre 12Sécurité

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

2. Sécurité physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.1 Qui doit accéder à la machine ? . . . . . . . . . . . . . . . . . . . . . . . . . 5082.2 Alimentation électrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.3 Interfaces de communication . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.4 BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

3. Sécurité logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5163.1 Version des logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5163.2 Que faut-il installer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5163.3 Mise à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5173.4 Gérer des paquets deb avec apt . . . . . . . . . . . . . . . . . . . . . . . . . 519

3.4.1 Installer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5203.4.2 Rechercher des paquets. . . . . . . . . . . . . . . . . . . . . . . . . . 5203.4.3 Afficher la description d'un paquet . . . . . . . . . . . . . . . . 5213.4.4 Afficher les dépendances . . . . . . . . . . . . . . . . . . . . . . . . 5233.4.5 Installer les dépendances . . . . . . . . . . . . . . . . . . . . . . . . 5283.4.6 Afficher les informations d'un paquet . . . . . . . . . . . . . . 5303.4.7 Identifier le dépôt d'un paquet. . . . . . . . . . . . . . . . . . . . 5303.4.8 Provenance d'un fichier. . . . . . . . . . . . . . . . . . . . . . . . . . 530

17Table des matières

3.4.9 Lister le contenu d'un paquet . . . . . . . . . . . . . . . . . . . . . 5343.4.10 Rechercher les versions des paquets disponibles . . . . . 5343.4.11 Mettre à jour les dépôts . . . . . . . . . . . . . . . . . . . . . . . . . 5363.4.12 Mettre à jour les paquets système . . . . . . . . . . . . . . . . . 5373.4.13 Désinstaller un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . 5383.4.14 Supprimer les paquets d'installation . . . . . . . . . . . . . . . 540

3.5 Gérer des paquets deb avec dpkg . . . . . . . . . . . . . . . . . . . . . . . . 5413.5.1 Lister les paquets installés . . . . . . . . . . . . . . . . . . . . . . . 5413.5.2 Reconfigurer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . 5433.5.3 Traiter les paquets cassés . . . . . . . . . . . . . . . . . . . . . . . . 544

3.6 Gérer les paquets RPM avec yum . . . . . . . . . . . . . . . . . . . . . . . 5443.6.1 Mise à jour du système . . . . . . . . . . . . . . . . . . . . . . . . . . 5443.6.2 Rechercher un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . 5473.6.3 Installer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5493.6.4 Supprimer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . 5503.6.5 Afficher les informations du paquet . . . . . . . . . . . . . . . 5523.6.6 Mise à jour sélective . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5533.6.7 Gérer les groupes de programmes . . . . . . . . . . . . . . . . . 553

3.7 Gérer les paquets RPM avec rpm. . . . . . . . . . . . . . . . . . . . . . . . 5553.7.1 Installer un paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5553.7.2 Lire les informations d'un paquet . . . . . . . . . . . . . . . . . 5563.7.3 Afficher tous les paquets installés . . . . . . . . . . . . . . . . . 5573.7.4 Modifier le format d'affichage . . . . . . . . . . . . . . . . . . . . 558

3.8 Identification et authentification . . . . . . . . . . . . . . . . . . . . . . . 5583.8.1 Types de compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5583.8.2 Caractéristiques d’un compte . . . . . . . . . . . . . . . . . . . . 5593.8.3 Caractéristiques du compte root . . . . . . . . . . . . . . . . . . 5603.8.4 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5613.8.5 Profil utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5613.8.6 Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5613.8.7 Vérifier les fichiers de comptes. . . . . . . . . . . . . . . . . . . . 562

18Administration avancée

Linux

3.9 Configuration réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5633.9.1 Identifier les ports ouverts . . . . . . . . . . . . . . . . . . . . . . . 5633.9.2 Pare-feu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565

3.10 Faut-il un antivirus ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566

AnnexeCorrection des exercices

1. Exercice du chapitre Architecture du système GNU/Linux . . . . . . 567

2. Exercice du chapitre Noyau Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . 570

3. Exercice du chapitre Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572

4. Exercice du chapitre Pseudo-systèmes de fichiers . . . . . . . . . . . . . . 574

5. Exercice du chapitre Dépannage matériel . . . . . . . . . . . . . . . . . . . . . 575

6. Exercice du chapitre Maintenance des disques. . . . . . . . . . . . . . . . . 5786.1 Partitionnement pendant l'installation. . . . . . . . . . . . . . . . . . . 5786.2 Partitionnement post-installation. . . . . . . . . . . . . . . . . . . . . . . 588

7. Exercice du chapitre Séquence d’amorçage . . . . . . . . . . . . . . . . . . . . 592

8. Exercice du chapitre Maintenance des applications. . . . . . . . . . . . . 5938.1 Tuer un programme zombie . . . . . . . . . . . . . . . . . . . . . . . . . . . 5948.2 Identifier une fuite mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 595

9. Exercice du chapitre Maintenance de la configuration réseau. . . . . 5989.1 Collecter la configuration d'une carte réseau . . . . . . . . . . . . . . 5989.2 Renommer l'interface réseau en eth0 . . . . . . . . . . . . . . . . . . . . 599

10. Exercice du chapitre Analyse des performances . . . . . . . . . . . . . . . . 60110.1 Création d'un fichier swap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60110.2 Stress de la mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605

Recommended