Vous êtes sur la page 1sur 722

Le Campus

8e édition

Linux
Installation, configuration
et applications

Michael Kofler
Linux Livre Page I Mardi, 23. septembre 2008 1:05 13

Linux
Installation, configuration
et administration des systèmes
Linux
Linux Livre Page II Mardi, 23. septembre 2008 1:05 13

Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de vous fournir une
information complète et fiable. Cependant, Pearson Education France n’assume de responsabilités, ni pour
son utilisation, ni pour les contrefaçons de brevets ou atteintes aux droits de tierces personnes qui pourraient
résulter de cette utilisation.

Les exemples ou les programmes présents dans cet ouvrage sont fournis pour illustrer les descriptions théo-
riques. Ils ne sont en aucun cas destinés à une utilisation commerciale ou professionnelle.

Pearson Education France ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages
de quelque nature que ce soit pouvant résulter de l’utilisation de ces exemples ou programmes.

Tous les noms de produits ou autres marques cités dans ce livre sont des marques déposées par leurs
propriétaires respectifs.

Publié par Pearson Education France Titre original : Linux - Installation, Konfiguration,
47 bis, rue des Vinaigriers Anwendung
75010 PARIS
Tél. : 01 72 74 90 00
www.pearson.fr Traduit et adapté de l’allemand
par Isabelle Hurbain-Palatin et Sandrine Burriel

ISBN original : 978-3-8273-2478-8


Mise en pages : TyPAO Copyright © 2007 by Addison-Wesley Verlag
All rights reserved
ISBN : 978-2-7440-4088-7
Copyright© 2009 Pearson Education France
Tous droits réservés Addison-Wesley Verlag
Pearson Education Deutschland GmvH
Martin-kollar-Straße 10-12,
D-81829 München/Germany

Aucune représentation ou reproduction, même partielle, autre que celles prévues à l’article L. 122-5 2˚ et 3˚ a) du code
de la propriété intellectuelle ne peut être faite sans l’autorisation expresse de Pearson Education France ou, le cas
échéant, sans le respect des modalités prévues à l’article L. 122-10 dudit code.
No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including
photocopying, recording or by any information storage retrieval system, without permission from Pearson Education,
Inc.
Linux Livre Page III Mardi, 23. septembre 2008 1:05 13

Linux
Installation, configuration
et administration des systèmes
Linux

Michael Kofler
Linux Livre Page IV Mardi, 23. septembre 2008 1:05 13
Linux Livre Page V Mardi, 23. septembre 2008 1:05 13

Table des matières

Préface ...................................................................................................................... 1
Conception ..................................................................................................... 2
Ce que vous ne trouverez pas dans cet ouvrage............................................. 3
Styles utilisés dans ce livre ............................................................................ 3

PARTIE 1 – PREMIERS PAS ET INSTALLATION

1 Qu’est-ce que Linux ? ........................................................................................... 5


1.1 Introduction.................................................................................................... 5
Noyau ............................................................................................................ 6
Caractéristiques du noyau.............................................................................. 6
Prise en charge du matériel............................................................................ 7
1.2 Distributions ................................................................................................... 8
Quelques distributions Linux courantes ........................................................ 11
Distributions minimales................................................................................. 14
Problème du choix ......................................................................................... 14
1.3 Fantasmes et réalité ........................................................................................ 14
1.4 Licences libres ................................................................................................ 17
Conflits de licences entre les logiciels libres et propriétaires ........................ 19
1.5 Histoire de Linux ............................................................................................ 20
1.6 Brevets logiciels et autres sujets d’énervement................................................. 21
Brevets logiciels ............................................................................................ 21
Multimédia et DRM ...................................................................................... 22
Procès SCO.................................................................................................... 23

2 Installation .............................................................................................................. 25
2.1 Prérequis ........................................................................................................ 25
32 ou 64 bits ? ............................................................................................... 26
2.2 Démarrage de l’installation de Linux .............................................................. 27
2.3 Bases du partitionnement du disque................................................................ 28
Systèmes de fichiers ...................................................................................... 30
Nom des partitions......................................................................................... 30
Linux Livre Page VI Mardi, 23. septembre 2008 1:05 13

VI LINUX

2.4 Partitionnement du disque dur........................................................................ 31


Réduction de la partition Windows ............................................................... 32
Nombre et taille des partitions....................................................................... 33
Quel système de fichiers utiliser ? ................................................................. 35
2.5 Choix des paquetages...................................................................................... 36
Recommandations pour l’installation ............................................................ 37
2.6 Configuration de base ..................................................................................... 37
2.7 Installation du chargeur d’amorçage............................................................... 40
2.8 Installations non standard............................................................................... 40
2.9 Problèmes lors de l’installation ....................................................................... 41
Problèmes de matériel ................................................................................... 41
Problèmes liés au clavier ............................................................................... 42
2.10 Problèmes après l’installation ......................................................................... 42
L’ordinateur ne démarre plus......................................................................... 42
Le système graphique ne démarre pas ........................................................... 43
Le clavier ne fonctionne pas .......................................................................... 43
Les menus sont dans la mauvaise langue ...................................................... 44

3 Premiers pas sous Linux ...................................................................................... 45


3.1 Démarrer et arrêter Linux .............................................................................. 45
Déconnexion .................................................................................................. 46
Éteindre Linux ............................................................................................... 47
3.2 Clavier, souris et presse-papiers ...................................................................... 47
Raccourcis clavier importants ....................................................................... 47
Utilisation de la souris ................................................................................... 48
3.3 Documentation sous Linux.............................................................................. 48

4 Gnome ...................................................................................................................... 51
4.1 Conception du bureau..................................................................................... 52
4.2 Nautilus .......................................................................................................... 56
Graver des CD et des DVD ........................................................................... 60
Accéder aux répertoires réseau...................................................................... 60
4.3 Programmes Gnome ....................................................................................... 62
4.4 Trucs et astuces............................................................................................... 63

5 KDE ........................................................................................................................... 67
5.1 Conception du bureau..................................................................................... 68
5.2 Dolphin........................................................................................................... 71
5.3 Konqueror ...................................................................................................... 72
Utilisation en tant que gestionnaire de fichiers ............................................. 72
Accès aux répertoires réseau ......................................................................... 74
Adresses spéciales ......................................................................................... 74
5.4 Applications KDE ........................................................................................... 75
5.5 Trucs et astuces............................................................................................... 77
Linux Livre Page VII Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES VII

PARTIE 2 – LA BUREAUTIQUE SOUS LINUX

6 Navigateurs Internet (Firefox, Konqueror) .................................................... 79


6.1 Firefox ............................................................................................................ 79
Fonctionnalités de base.................................................................................. 80
Configuration ................................................................................................. 83
Extensions (fichiers XPI)............................................................................... 85
6.2 Konqueror ...................................................................................................... 86
6.3 Navigateurs en mode texte............................................................................... 87
6.4 Plugins (Adobe Reader, Flash, Java)................................................................ 88
Adobe Reader ................................................................................................ 89
Adobe/Macromedia Flash ............................................................................. 90
Sun Java ......................................................................................................... 92

7 E-mail (Thunderbird, Evolution, Kontact) ...................................................... 95


7.1 Bases .............................................................................................................. 95
Rouages internes de la gestion des e-mails ................................................... 98
Courrier local ................................................................................................. 98
Formats de boîtes aux lettres et conversion ................................................... 99
Signature et chiffrement d’e-mails ................................................................ 100
7.2 Thunderbird................................................................................................... 103
Configuration d’un compte ............................................................................ 103
Fonctionnalités de base.................................................................................. 104
Extensions et fonctionnalités additionnelles ................................................. 107
Importer ou synchroniser des e-mails Windows............................................ 109
7.3 Evolution ........................................................................................................ 110
Configuration d’un compte ............................................................................ 111
Fonctionnalités de base.................................................................................. 111
Fonctionnalités supplémentaires ................................................................... 114
7.4 Kontact........................................................................................................... 115

8 OpenOffice .............................................................................................................. 119


8.1 Introduction.................................................................................................... 119
OpenOffice face à Microsoft Office .............................................................. 121
8.2 Traitement de texte (OpenOffice Writer) ......................................................... 122
8.3 Tableur (OpenOffice Calc) .............................................................................. 126
8.4 Présentation (OpenOffice Impress).................................................................. 127
Linux Livre Page VIII Mardi, 23. septembre 2008 1:05 13

VIII LINUX

8.5 Bases de données (OpenOffice Base)................................................................ 130


8.6 Programmation de macros .............................................................................. 132
8.7 Alternatives à OpenOffice ............................................................................... 133

9 Appareils photo numériques, numérisation, gestion des photos .......... 135


9.1 Appareils photo numériques ........................................................................... 136
9.2 Numérisation .................................................................................................. 137
9.3 gThumb.......................................................................................................... 139
9.4 digiKam.......................................................................................................... 143
9.5 F-Spot............................................................................................................. 145
9.6 KPhotoAlbum................................................................................................. 146
9.7 XSane ............................................................................................................. 148

10 Gimp ......................................................................................................................... 149


10.1 Formats de fichiers.......................................................................................... 151
10.2 Premiers pas ................................................................................................... 152
Impression ..................................................................................................... 154
10.3 Règles de survie .............................................................................................. 155

11 Audio et vidéo ....................................................................................................... 157


11.1 Bases .............................................................................................................. 158
Glossaire ....................................................................................................... 158
Formats audio et vidéo .................................................................................. 160
Lire des CD audio.......................................................................................... 162
Lecture de DVD vidéo ................................................................................... 163
Situation juridique, paquets complémentaires............................................... 163
11.2 Lecteurs audio et vidéo ................................................................................... 164
Lecteurs en ligne de commande .................................................................... 164
Amarok (lecteur audio) ................................................................................. 164
Banshee (lecteur audio) ................................................................................. 165
KAudioCreator (extracteur de CD) ............................................................... 165
MPlayer (lecteur audio, vidéo et télévision) ................................................. 165
Noatun (lecteur audio et vidéo) ..................................................................... 166
RealPlayer et Helix Player (lecteur audio et vidéo) ...................................... 166
Rhythmbox (lecteur audio) ............................................................................ 167
Sound Juicer (lecteur et extracteur de CD).................................................... 168
Totem (lecteur audio et vidéo) ....................................................................... 168
xine (lecteur audio, vidéo et TV) ................................................................... 169
xmms ............................................................................................................. 169
11.3 Regarder la télévision avec DVB-T .................................................................. 170
Linux Livre Page IX Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES IX

PARTIE 3 – OUTILS UNIX ET LINUX


12 La console ............................................................................................................... 173
12.1 Consoles texte et fenêtres de console................................................................ 173
12.2 Afficher et modifier des fichiers texte............................................................... 176
Éditeurs de texte ............................................................................................ 176
12.3 Aide du système .............................................................................................. 178

13 Gestion des fichiers .............................................................................................. 181


13.1 Interaction avec des fichiers et des répertoires ................................................. 181
Répertoires..................................................................................................... 181
Commandes élémentaires de gestion des fichiers et des répertoires ............. 182
Déterminer l’espace nécessaire aux fichiers et répertoires ............................ 184
Caractères joker ............................................................................................. 185
Problèmes liés à l’utilisation des caractères joker ......................................... 186
Fichiers cachés .............................................................................................. 187
13.2 Liens............................................................................................................... 188
13.3 Chercher des fichiers....................................................................................... 189
which et whereis ............................................................................................ 189
locate ............................................................................................................. 190
find et grep ..................................................................................................... 190
Beagle ............................................................................................................ 192
Tracker ........................................................................................................... 193
Google Desktop ............................................................................................. 193
13.4 Archiver et sécuriser des données.................................................................... 194
Compresser et archiver des données (gzip, tar, zip) ...................................... 194
Sauvegardes (rsync) ....................................................................................... 196
13.5 Graver des CD et des DVD.............................................................................. 197
Créer et tester des images ISO ...................................................................... 198
Graver des CD ............................................................................................... 199
Graver des DVD ............................................................................................ 200
13.6 Droits d’accès, utilisateurs et groupes propriétaires......................................... 202
Bits spéciaux.................................................................................................. 203
Changer les droits d’accès d’un fichier ou d’un répertoire............................ 204
13.7 Propriétaire, groupe et bits d’accès de nouveaux fichiers ................................. 205
13.8 Listes de contrôle d’accès et attributs étendus ................................................. 206
Listes de contrôle d’accès.............................................................................. 207
Attributs étendus ............................................................................................ 208
13.9 Structure des répertoires sous Linux ............................................................... 209
13.10 Fichiers de périphériques................................................................................ 211
Linux Livre Page X Mardi, 23. septembre 2008 1:05 13

X LINUX

14 Gestion des processus ......................................................................................... 213


14.1 Démarrer, gérer et arrêter des processus ......................................................... 213
Démarrer des programmes ............................................................................ 213
Processus en avant-plan et en arrière-fond .................................................... 214
Liste de tous les processus courants (ps, top) ................................................ 214
Hiérarchie des processus ............................................................................... 216
Forcer la fin d’un processus (kill, xkill) ......................................................... 217
Partage du temps de calcul (nice, renice) ...................................................... 218
Redirections et tubes ..................................................................................... 218
14.2 Lancer des processus sous une autre identité (su) ............................................ 219
14.3 Lancer des processus sous une autre identité (sudo)......................................... 220
sudo sous Ubuntu .......................................................................................... 222
sudo sous SUSE............................................................................................. 222
14.4 Processus du système (démons) ....................................................................... 223
Threads du noyau .......................................................................................... 224
Démarrer et arrêter des démons..................................................................... 225
14.6 Démarrer automatiquement des processus (crontab)........................................ 227
Modifier la configuration ............................................................................... 228

15 Convertisseurs graphiques, audio et texte .................................................... 231


15.1 Convertisseurs graphiques .............................................................................. 231
15.2 Conversion audio et vidéo ............................................................................... 232
15.3 Conversion de texte......................................................................................... 234
15.4 Conversion de noms de fichiers ....................................................................... 235
15.5 Conversion de documents................................................................................ 235

16 Outils réseau .......................................................................................................... 237


16.1 Connaître l’état du réseau............................................................................... 237
16.2 Travailler sur un autre ordinateur................................................................... 240
Utiliser SSH sans mot de passe ..................................................................... 242
16.3 Transférer des fichiers..................................................................................... 243
FTP ................................................................................................................ 243
SFTP (Secure FTP) ....................................................................................... 246
wget................................................................................................................ 246
rsync .............................................................................................................. 247
BitTorrent ...................................................................................................... 248

17 Vim ............................................................................................................................ 251


17.1 Rapide introduction ........................................................................................ 252
Aide ............................................................................................................... 253
17.2 Déplacement du curseur.................................................................................. 254
17.3 Modifier du texte ............................................................................................ 255
Linux Livre Page XI Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES XI

17.4 Chercher et remplacer .................................................................................... 258


17.5 Éditer plusieurs fichiers en même temps.......................................................... 259
17.6 Trucs et astuces............................................................................................... 260

18 Emacs et XEmacs ................................................................................................... 263


18.1 Rapide introduction ........................................................................................ 263
Charger et enregistrer des fichiers, quitter le programme ............................. 264
Commandes élémentaires .............................................................................. 265
Système d’aide .............................................................................................. 266
18.2 Bases .............................................................................................................. 266
18.3 Déplacement du curseur.................................................................................. 268
18.4 Marquer, supprimer et coller du texte ............................................................. 269
18.5 Éditer du texte ................................................................................................ 270
Tabulations..................................................................................................... 270
Indenter manuellement du texte .................................................................... 271
18.6 Texte continu .................................................................................................. 272
18.7 Chercher et remplacer .................................................................................... 273
Recherche avec des expressions rationnelles ................................................ 274
Chercher et remplacer ................................................................................... 275
18.8 Tampon et fenêtre ........................................................................................... 276
18.9 Modes d’édition spécifiques............................................................................. 277
18.10 Unicode .......................................................................................................... 278
GNU Emacs et Unicode ................................................................................ 279
XEmacs et Unicode ....................................................................................... 279
Saisie de caractères spéciaux étrangers ......................................................... 281

19 bash ........................................................................................................................... 283


19.1 Qu’est-ce qu’un shell ?.................................................................................... 283
Passer à un autre shell.................................................................................... 284
Changer de shell par défaut ........................................................................... 284
19.2 Configuration de base ..................................................................................... 284
19.3 Saisie de commandes....................................................................................... 285
Complètement des commandes et noms de fichiers ...................................... 286
Raccourcis clavier importants ....................................................................... 287
Alias............................................................................................................... 288
19.4 Redirections.................................................................................................... 289
Tubes ............................................................................................................. 290
Multiplication des sorties avec tee................................................................. 290
Résumé de la syntaxe .................................................................................... 291
Linux Livre Page XII Mardi, 23. septembre 2008 1:05 13

XII LINUX

19.5 Lancer des commandes ................................................................................... 291


19.6 Mécanismes de substitution............................................................................. 293
19.7 Variables......................................................................................................... 297
Variables locales et globales (variables d’environnement) ............................ 298
Variables importantes .................................................................................... 299
19.8 Programmation shell....................................................................................... 300

PARTIE 4 – CONFIGURATION ET ADMINISTRATION DU SYSTÈME

20 Configuration de base ......................................................................................... 301


20.1 Introduction.................................................................................................... 301
20.2 Configuration de la console en mode texte ....................................................... 304
Configuration de kbd (clavier, police) ........................................................... 305
Configuration de la console (clavier, police) ................................................. 306
Configuration de gpm (souris) ....................................................................... 306
20.3 Date et heure................................................................................................... 307
20.4 Utilisateurs et groupes, mots de passe.............................................................. 308
Administration des utilisateurs ...................................................................... 310
Administration des groupes ........................................................................... 312
Mots de passe ................................................................................................ 313
Collaboration entre fichiers de configuration ................................................ 316
PAM (Pluggable Authentication Modules ou modules d’authentification
enfichables) .................................................................................................... 316
Administration des utilisateurs sur un réseau ................................................ 318
20.5 Configuration des langues, internationalisation, Unicode................................. 318
Bases sur les jeux de caractères ..................................................................... 319
Configurer la localisation et le jeu de caractères ........................................... 321
20.6 Référence relative au matériel ......................................................................... 324
Processeur et mémoire................................................................................... 325
Gestion de l’énergie (ACPI, APM)................................................................ 326
Interfaces et bus système ............................................................................... 327
Système Hotplug (udev, D-Bus et HAL) ....................................................... 329
Interfaces réseau ............................................................................................ 330
Interface graphique (X) ................................................................................. 331
Système audio (ALSA) ................................................................................. 331
Supports de données (disques durs, CD-ROM, DVD, etc.) .......................... 333
Clavier et souris ............................................................................................. 334
Imprimante, appareil photo numérique, scanner ........................................... 334
20.7 Fichiers journaux et messages du noyau.......................................................... 334
Linux Livre Page XIII Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES XIII

21 Gestion des logiciels et des paquetages ........................................................ 339


21.1 Gestionnaire de paquetages RPM.................................................................... 340
Notions de base ............................................................................................. 340
Syntaxe et exemples ...................................................................................... 342
21.2 Yum (gestion de paquetages RPM) .................................................................. 344
Configuration ................................................................................................. 345
Exemples ....................................................................................................... 346
Téléchargements et mises à jour automatiques ............................................. 347
21.3 Yum Extender (Yumex)................................................................................... 347
21.4 Gestion de paquetages sous Debian (dpkg)....................................................... 348
Syntaxe et exemples ...................................................................................... 348
21.5 APT................................................................................................................ 349
Configuration ................................................................................................. 350
Exemples ....................................................................................................... 351
Téléchargements et mises à jour automatiques ............................................. 352
21.6 Synaptic.......................................................................................................... 352
Problèmes ...................................................................................................... 353
22.7 Aptitude.......................................................................................................... 354
21.8 Conversion entre deux formats de paquetages ................................................. 355

22 Système XWindow ................................................................................................ 357


22.1 Glossaire......................................................................................................... 357
Glossaire matériel .......................................................................................... 358
22.2 Problème des pilotes........................................................................................ 360
22.3 Démarrer et arrêter X..................................................................................... 362
Fichiers de journalisation de X ...................................................................... 363
Déterminer la version de X............................................................................ 364
22.4 Configuration de base ..................................................................................... 364
Construction du fichier de configuration xorg.conf ....................................... 365
Section Monitor (écran)................................................................................. 366
Section Device (carte graphique)................................................................... 367
Section Screen (résolution, nombre de couleurs) .......................................... 368
Section ServerLayout .................................................................................... 369
Section Files .................................................................................................. 370
Section Module .............................................................................................. 370
Section ServerFlags....................................................................................... 371
Définir ses propres modes graphiques ........................................................... 371
XVideo........................................................................................................... 372
Linux Livre Page XIV Mardi, 23. septembre 2008 1:05 13

XIV LINUX

22.5 Pilotes ATI/AMD............................................................................................. 372


Pilote radeon ................................................................................................. 373
Pilote fglrx ..................................................................................................... 373
Pilote radeonhd ............................................................................................. 374
22.6 Pilotes Intel..................................................................................................... 374
22.7 Pilotes NVIDIA............................................................................................... 375
Pilote nv ......................................................................................................... 375
Pilote nvidia ................................................................................................... 375
22.8 Pilotes VESA, Framebuffer et VGA................................................................. 376
22.9 Clavier............................................................................................................ 377
Configuration de base .................................................................................... 377
VerrNum et VerrMaj ...................................................................................... 379
Saisie de caractères étrangers ........................................................................ 380
22.10 Souris et pavé tactile ....................................................................................... 382
Pavé tactile..................................................................................................... 383
22.11 Portable et vidéoprojecteur ............................................................................. 383
22.12 Graphismes 3D ............................................................................................... 387
22.13 Bureau 3D ...................................................................................................... 389
AIGLX........................................................................................................... 392
Compiz Fusion .............................................................................................. 393
22.14 Polices............................................................................................................. 394
Configuration sans serveur de fontes ............................................................. 397
Installation de polices TrueType et Type1 supplémentaires .......................... 398
Anticrénelage................................................................................................. 399
22.15 Outils X .......................................................................................................... 400

23 Administration du système de fichiers ........................................................... 401


23.1 Fonctionnement général.................................................................................. 402
23.2 Noms de périphériques pour les disques durs
et les autres supports de données .................................................................... 404
23.3 Partitionnement du disque dur........................................................................ 408
Règles de base ............................................................................................... 408
Problèmes de compatibilité ........................................................................... 409
fdisk ............................................................................................................... 410
parted............................................................................................................. 413
Interfaces graphiques (gparted et qtparted) .................................................. 415
23.4 Types de systèmes de fichiers........................................................................... 416
23.5 Gestion du système de fichiers (mount et /etc/fstab) ............................................. 420
Déterminer l’état courant d’un système de fichiers ....................................... 421
Monter et démonter des systèmes de fichiers manuellement ........................ 422
Linux Livre Page XV Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES XV

Monter automatiquement des systèmes de fichiers ....................................... 423


Syntaxe de /etc/fstab ...................................................................................... 423
23.6 Les systèmes de fichiers Linux......................................................................... 426
Généralités ..................................................................................................... 426
Systèmes de fichiers ext (ext2, ext3 et ext4) .................................................. 428
Système de fichiers reiserfs ........................................................................... 433
Système de fichiers xfs .................................................................................. 434
23.7 Systèmes de fichiers Windows ......................................................................... 435
Système de fichiers VFAT ............................................................................. 437
Système de fichier NTFS (pilote ntfs) ........................................................... 437
Système de fichiers NTFS (ntfsmount) .......................................................... 438
Système de fichiers NTFS (ntfs-3g) .............................................................. 439
Systèmes de fichiers NTFS (Captive, Paragon)............................................. 440
23.8 CD, DVD et disquettes .................................................................................... 441
CD et DVD de données ................................................................................. 441
CD audio et DVD vidéo ................................................................................ 443
Disquettes ...................................................................................................... 443
23.9 Supports de données externes (USB, Firewire, etc.) ......................................... 443
23.10 Systèmes de fichiers réseau et virtuels ............................................................. 447
Systèmes de fichiers réseau Unix (NFS) ....................................................... 447
Répertoires réseau Windows (cifs, smbfs) ..................................................... 448
23.11 Partitions et fichiers d’échange........................................................................ 450
23.12 LVM ............................................................................................................... 451
Glossaire ........................................................................................................ 452
Mettre en place un système LVM simple ...................................................... 453
Redimensionner un système de fichiers ........................................................ 454
23.13 Optimiser les paramètres du disque dur.......................................................... 455
hdparm........................................................................................................... 455
SMART ......................................................................................................... 456

24 Démarrage du système ....................................................................................... 459


24.1 GRUB............................................................................................................. 459
Détails du démarrage du système .................................................................. 459
24.2 GRUB – Utilisation ......................................................................................... 461
24.3 GRUB – Configuration.................................................................................... 463
Descriptions des disques durs et partitions.................................................... 464
Paramètres globaux de menu.lst .................................................................... 464
Éléments du menu dans menu.lst .................................................................. 466
Tester la configuration de GRUB .................................................................. 468
Linux Livre Page XVI Mardi, 23. septembre 2008 1:05 13

XVI LINUX

24.4 GRUB – Installation........................................................................................ 468


Réinstallation de GRUB ................................................................................ 468
Installation sur une disquette ......................................................................... 469
Installation sur un support USB .................................................................... 470
24.5 GRUB – Résolution de problèmes ................................................................... 471
24.6 Options d’amorçage du noyau......................................................................... 472
Options d’amorçage importantes................................................................... 472
Options SMP ................................................................................................. 473
Options APM et ACPI ................................................................................... 473
24.7 InitV............................................................................................................... 474
Aperçu d’InitV .............................................................................................. 474
Niveau d’exécution ........................................................................................ 474
Modifier le niveau d’exécution ...................................................................... 475
inittab............................................................................................................. 475
Initialisation du système ................................................................................ 476
Scripts InitV .................................................................................................. 476
Processus InitV sous Debian ......................................................................... 477
Processus InitV sous Red Hat et Fedora ....................................................... 478
Processus InitV sous SUSE ........................................................................... 478

25 Noyau et modules ................................................................................................. 481


25.1 Modules du noyau........................................................................................... 481
Commandes de gestion des modules ............................................................. 482
Configuration des modules ............................................................................ 483
Dépendances entre modules (modules.dep, modules*.map) ......................... 484
Paramètres des modules et ordre des périphériques ...................................... 485
Syntaxe de modprobe.conf............................................................................. 485
Compiler un module supplémentaire ............................................................ 487
25.2 Configurer et compiler son propre noyau ........................................................ 487
Installer les paquetages nécessaires ............................................................... 488
Configurer le noyau ....................................................................................... 489
Compiler et installer le noyau........................................................................ 490
25.3 Créer un fichier initrd ..................................................................................... 490

PARTIE 5 – CONFIGURATION RÉSEAU ET SERVEUR


26 Configurer l’accès réseau (réseau local, Wi-Fi) ............................................. 493
26.1 Bases réseau.................................................................................................... 493
Glossaire ........................................................................................................ 493
Adresses IP .................................................................................................... 496
IPv6 ............................................................................................................... 499
Linux Livre Page XVII Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES XVII

26.2 Activer manuellement un contrôleur LAN....................................................... 500


26.3 Fichiers de configuration du réseau local......................................................... 505
Configuration de base .................................................................................... 505
Correspondance entre contrôleur et interface réseau..................................... 509
Configuration et initialisation des interfaces réseau (Debian et Ubuntu) ...... 510
Configuration et initialisation des interfaces réseau (Red Hat, Fedora) ........ 511
Configuration et initialisation des interfaces réseau (SUSE) ........................ 512
26.4 Bases sur le Wi-Fi ........................................................................................... 512
Standards, glossaire ....................................................................................... 513
Paramètres de connexion Wi-Fi ..................................................................... 515
Sécurité d’un réseau Wi-Fi ............................................................................ 516
Prise en charge du Wi-Fi par Linux ............................................................... 518
26.5 Activer manuellement le contrôleur Wi-Fi....................................................... 520
26.6 Fichiers de configuration Wi-Fi ....................................................................... 524
26.7 NetworkManager............................................................................................ 526
26.8 Zeroconf et Avahi ............................................................................................ 528

27 Accès à Internet ..................................................................................................... 531


27.1 Outils de configuration.................................................................................... 531
Configuration d’un modèle analogique ......................................................... 531
Configuration RNIS ....................................................................................... 533
Configuration ADSL...................................................................................... 533
27.2 Configuration manuelle d’un modem .............................................................. 534
Winmodems ................................................................................................... 534
Configuration manuelle de pppd ................................................................... 535
27.3 Configuration matérielle de l’ADSL ................................................................ 537
Configuration manuelle de PPPoE ................................................................ 537
Configuration manuelle de PPTP .................................................................. 538

28 Passerelle Internet (mascarade et DHCP) ....................................................... 541


28.1 Introduction.................................................................................................... 541
Topologie du réseau utilisé comme exemple ................................................. 542
Installation d’une passerelle Internet ............................................................. 543
Comparaison entre un routeur matériel et une passerelle Linux ................... 544
28.2 Mascarade (NAT)............................................................................................ 545
Notions de base ............................................................................................. 545
Mascarade avec iptables ................................................................................ 546
Activation et désactivation automatique de la mascarade ............................. 547
Problèmes ...................................................................................................... 547
Configuration des clients ............................................................................... 548
Linux Livre Page XVIII Mardi, 23. septembre 2008 1:05 13

XVIII LINUX

28.3 Serveur DHCP et serveur de noms intégré (dnsmasq) ......................................... 548


Introduction à DHCP ..................................................................................... 548
Paramétrage du serveur de noms ................................................................... 549
Configuration de dnsmasq ............................................................................. 550
Configuration des clients ............................................................................... 553
28.4 Serveur DHCP (dhcpcd) .................................................................................. 554

29 Sécurité du réseau ................................................................................................ 557


29.1 Types de sécurité............................................................................................. 557
29.2 Bases de l’analyse réseau................................................................................. 559
29.3 Sécuriser les services réseau ............................................................................ 561
Bases de xinetd .............................................................................................. 561
hosts.allow et hosts.deny ............................................................................... 563
29.4 Introduction aux pare-feu ............................................................................... 564
Pare-feu pour un ordinateur personnel .......................................................... 564
Pare-feu pour le réseau local ......................................................................... 565
29.5 Pare-feu avec iptables ...................................................................................... 567
Introduction ................................................................................................... 567
Tables et chaînes de règles iptables ............................................................... 568
Remettre à zéro le pare-feu............................................................................ 569
Sécuriser l’accès à Internet ............................................................................ 570
Sécuriser un client sans-fil sans VPN ............................................................ 571
Sécuriser un client sans-fil avec PPTP-VPN ................................................. 572
Sécuriser une passerelle Internet ................................................................... 573
Journalisation................................................................................................. 575
Exécuter automatiquement les règles du filtre .............................................. 576
29.6 Filtrage web (Squid) ....................................................................................... 577
Configuration et démarrage ........................................................................... 577
Configuration en tant que serveur mandataire-cache transparent...................... 580
Règles de contrôle d’accès ............................................................................ 582
Filtre web avec DansGuardian ...................................................................... 582

30 Serveur de réseau local (CUPS, NFS et Samba) ............................................ 587


30.1 CUPS – Les fondamentaux.............................................................................. 587
Processus d’impression ................................................................................. 588
Configuration de base de CUPS .................................................................... 589
Administration de CUPS dans un navigateur web ........................................ 592
Commandes d’administration de CUPS ........................................................ 593
HP Linux Imaging and Printing (HPLIP)...................................................... 594
Linux Livre Page XIX Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES XIX

30.2 CUPS – Configuration d’une imprimante........................................................ 595


Configuration d’une imprimante locale ......................................................... 596
Configuration d’une imprimante réseau (côté serveur) ................................. 597
Configuration d’une imprimante réseau (côté client) .................................... 598
30.3 NFS ................................................................................................................ 600
Installation et configuration ........................................................................... 601
NFS4 .............................................................................................................. 602
30.4 Samba – Les fondamentaux ............................................................................ 603
Protocole et services ...................................................................................... 603
Droits d’accès et systèmes de sécurité........................................................... 604
30.5 Client Samba .................................................................................................. 606
30.6 Samba – Configuration de base et mise en service............................................ 607
30.7 Samba – Partager des répertoires.................................................................... 610
Sécurité au niveau des partages ..................................................................... 610
Sécurité au niveau utilisateur ......................................................................... 612
30.8 Samba – Imprimantes réseau .......................................................................... 614

PARTIE 6 – UTILISATION DE PLUSIEURS SYSTÈMES SIMULTANÉMENT


31 Lancer des programmes Windows (Wine, CrossOver) .............................. 617
31.1 Wine............................................................................................................... 618
31.2 Dérivés commerciaux de Wine ........................................................................ 621
CrossOver ...................................................................................................... 621
Cedega ........................................................................................................... 622

32 Virtualisation avec VMware, VirtualBox, QEMU et KVM ........................... 623


32.1 Notions de base ............................................................................................... 624
32.2 VMware Workstation, Player et Server ........................................................... 628
32.3 VirtualBox ...................................................................................................... 629
32.4 QEMU et KVM .............................................................................................. 632

33 Xen ............................................................................................................................ 637


33.1 Introduction.................................................................................................... 637
33.2 Détails techniques ........................................................................................... 638
Variantes de la virtualisation ......................................................................... 638
Architecture et terminologie .......................................................................... 638
Restrictions .................................................................................................... 639
Gestion du matériel ....................................................................................... 640
Accès au réseau ............................................................................................. 640
Linux Livre Page XX Mardi, 23. septembre 2008 1:05 13

XX LINUX

Accès au disque dur ....................................................................................... 642


Sortie graphique ............................................................................................ 642
33.3 Gestion des fichiers image ............................................................................... 643
33.4 Mettre en place le système de base Xen (dom0)................................................ 645
33.5 Créer des systèmes invités (domU) .................................................................. 646
Installation de Windows (HVM) ................................................................... 651
33.6 Interaction avec le système domU démarré (SDL, VNC)...................................... 652
Console Xen .................................................................................................. 653
SDL ............................................................................................................... 653
VNC............................................................................................................... 654
33.7 Syntaxe du fichier de configuration du domU .................................................. 654
33.8 Administration de Xen.................................................................................... 655

Annexes
A Références thématiques ...................................................................................... 657
Gestion des fichiers ....................................................................................... 657
ACL (listes de contrôle d’accès) et EA (attributs étendus) ................................ 657
Recherche de fichiers..................................................................................... 658
Traitement de fichiers texte ........................................................................... 658
Compresser et archiver des fichiers ............................................................... 659
Graver des CD/DVD...................................................................................... 659
Convertisseurs ............................................................................................... 659
Gestion des programmes et des processus .................................................... 660
Gestion des utilisateurs et des groupes .......................................................... 660
Administration du système de fichiers .......................................................... 661
Gestion de paquetages ................................................................................... 662
Fonctions réseau ............................................................................................ 662
Administration de l’imprimante .................................................................... 663
Gestion du matériel ....................................................................................... 663
Noyau et modules .......................................................................................... 663
Démarrage et arrêt du système ...................................................................... 663
Terminal et console texte ............................................................................... 664
Aide en ligne ................................................................................................. 664
Divers............................................................................................................. 664
bash – Gestion des variables.......................................................................... 665
bash – Programmation ................................................................................... 665
bash – Commandes ........................................................................................ 665
Linux Livre Page XXI Mardi, 23. septembre 2008 1:05 13

TABLE DES MATIÈRES XXI

B Sources d'information .......................................................................................... 667


Debian ........................................................................................................... 667
Fedora ............................................................................................................ 667
Mandriva ........................................................................................................ 667
openSUSE ..................................................................................................... 667
Red Hat .......................................................................................................... 668
SUSE ............................................................................................................. 668
Ubuntu et ses variantes .................................................................................. 668
Informations généralistes .............................................................................. 668
Autour du logiciel libre ................................................................................. 668

INDEX ....................................................................................................................... 669


Linux Livre Page XXII Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 1 Mardi, 23. septembre 2008 1:05 13

Préface

Linux fait aujourd’hui partie, avec Microsoft Windows et Apple Mac OS X, des trois systèmes
d’exploitation les plus populaires et les plus importants sur le marché des ordinateurs per-
sonnels. Il a pu conquérir une part considérable du marché des serveurs, gagne lentement
mais sûrement en popularité sur le marché des ordinateurs de bureau et fait fonctionner de
nombreux systèmes embarqués (des appareils complets ne ressemblant pas à des ordinateurs).
Votre routeur ADSL ou Wi-Fi est probablement basé sur Linux.
Le préjugé selon lequel Linux serait difficile à utiliser est aujourd’hui dépassé. Son utilisa-
tion est évidemment différente de celle de Windows, mais le saut conceptuel n’est pas plus
important qu’entre Windows XP et Windows Vista, par exemple. De plus, la plupart des
distributions Linux sont gratuites et prouvées plus sûres que Windows. Vous n’aurez ainsi
aucun problème de virus ou de chevaux de Troie.
Cet ouvrage Si Linux est aussi simple à utiliser, pourquoi ce livre contient-il plus de 700 pages ? Il y a
plusieurs raisons à cela :
• Linux fait plus que remplacer Windows sur les ordinateurs de bureau. Il fournit
d’innombrables fonctionnalités et applications supplémentaires, depuis l’automatisa-
tion des tâches quotidiennes à la configuration de serveurs réseau. Les concepts de navi-
gation web, de courrier électronique et de suite bureautique vous sont sans doute
familiers, mais ces thèmes plus complexes demandent un traitement plus fouillé.
• Il n’existe pas un Linux, mais plusieurs distributions Linux. Pour simplifier, une distri-
bution est un ensemble de programmes autour de Linux. Les plus connues regroupent
Debian, Red Hat, SUSE, Mandriva et Ubuntu.
Cette diversité a de nombreux avantages, mais aussi un inconvénient majeur : certains
détails dépendent de la distribution. Ce livre essaie de suivre une approche aussi indé-
pendante de la distribution que possible. Il est cependant impossible d’éviter de traiter
de temps à autre des différentes variantes : ce qui fonctionne d’une manière sous SUSE
peut fonctionner différemment sous Debian.
• Pour finir, mon but est que vous utilisiez Linux, mais surtout que vous le compreniez.
Cet ouvrage peut sembler difficile d’accès : vous n’y trouverez pas de captures d’écran
légendées "Cliquez ici". L’objectif est plutôt d’expliquer les fondations de Linux et de
vous rapprocher de la philosophie Unix/Linux.
Si vous n’avez pas encore essayé Linux, il est temps de procéder à cette première expérience.
Linux Livre Page 2 Mardi, 23. septembre 2008 1:05 13

2 LINUX

Si vous le connaissez déjà, cet ouvrage répondra à de nombreuses questions et vous fera
évoluer vers le statut d’utilisateur avancé. Lorsque vous l’aurez lu, vous saurez créer des
règles de pare-feu avec iptables et mettre en place des machines virtuelles avec Xen. Vous
serez à l’aise avec Linux au point de pouvoir lire et comprendre n’importe quel ouvrage pro-
fessionnel sur Linux ou Unix, qu’il s’agisse d’un livre sur la configuration d’un serveur de
courrier électronique ou sur l’administration de réseaux hétérogènes. En résumé, ce livre
vous offre les fondations de vos connaissances sur Linux.
J’utilise moi-même Linux depuis environ 15 ans et je ne l’ai jamais regretté. Permettez-moi
de vous transmettre mon enthousiasme pour Linux !
Michael Kofler, juillet 2007

Remerciements Je tiens à remercier :


• Linus Torvalds, qui a apporté sa pierre (son noyau ?) à l’édifice ;
• les milliers de développeurs qui ont fait de Linux un système complet formidable ;
• Margot Neuschmied, pour sa très belle image de couverture de l’édition allemande ;
• l’éditeur Addison-Wesley, qui m’a donné le temps dont j’avais besoin pour écrire ce
livre ;
• ainsi qu’Heidi, Sebastian et Matthias, à qui ce livre est dédié.

Conception
Ce livre se découpe en 6 parties, complétées de deux annexes :
• La Partie 1 (Chapitres 1 à 5) sert d’introduction et vous accompagne dans vos premiers
pas sous Linux, depuis l’installation jusqu’à l’utilisation des systèmes graphiques
Gnome et KDE.
• La Partie 2 (Chapitres 6 à 11) décrit les applications du système Linux. Vous trouverez
des trucs et astuces associés à la navigation web, aux clients de courrier électronique, au
travail bureautique avec OpenOffice.org, au tri des photos ou encore à la retouche photo
avec Gimp.
• La Partie 3 (Chapitres 12 à 19) s’intéresse aux fondations de Linux et à ses outils. Le livre
devient alors plus technique. Vous découvrirez comment parcourir le système de
fichiers, convertir les documents et les images dans un autre format, et utiliser efficacement
l’interpréteur de commandes bash.
• La Partie 4 (Chapitres 20 à 25) traite de la configuration. Que vous ayez des problèmes
avec votre matériel ou des besoins très spécifiques, vous apprendrez à administrer votre
système de fichiers, configurer votre système graphique (y compris les graphismes 3D
et le bureau 3D), installer et actualiser des paquets, modifier le démarrage de votre
système, ainsi qu’ajuster et compiler le noyau et ses modules.
• La Partie 5 (Chapitres 26 à 30) explique la configuration du réseau, depuis le client
(réseau local, réseau sans fil, modem, RNIS, ADSL) jusqu’au serveur (passerelle Internet,
DNS, NFS, Samba, etc.). Nous parlerons aussi de la sécurité et en particulier des pare-
feu qui empêchent toute intrusion dans votre réseau depuis l’extérieur.
Linux Livre Page 3 Mardi, 23. septembre 2008 1:05 13

PRÉFACE 3

• La Partie 6 (Chapitres 31 à 33) évoque le thème de la virtualisation. Elle montre comment


lancer des programmes Windows grâce à Wine et mettre en place des machines virtuelles
qui peuvent accueillir des systèmes Linux ou Windows, grâce à VirtualBox et Xen.
• Les Annexes A et B fournissent des pointeurs vers les différentes distributions et les
documentations associées, ainsi qu’une brève référence thématique des commandes.

Ce que vous ne trouverez pas dans cet ouvrage


Linux est trop vaste pour être décrit entièrement dans un livre. À notre grand regret, voici
les éléments non traités dans cet ouvrage :
• Matériel. Ce livre décrit uniquement le matériel que j’ai pu tester moi-même. Il est
impossible d’aborder toutes les variantes de matériel. Si vous désirez mettre en service
du matériel moderne sous Linux, explorez Internet.
• Programmation. Ce livre ne traite pas vraiment de programmation. Nous ne parlerons
ni de langages de programmation, ni des éléments internes du noyau. Nous expliquerons
en revanche comment recompiler un noyau, mais des connaissances en programmation
ne sont pas nécessaires.
• Administration réseau et système. Nous nous limiterons aux besoins d’un utilisateur
privé qui connecte son propre ordinateur à Internet et qui administre un petit réseau
local. Si vous désirez utiliser Linux sur un serveur dans un gros réseau et adopter la
sécurité et les considérations de performances correspondantes, vous devrez vous pencher
sur des ouvrages plus avancés.
• Applications multimédias. Ce livre ne traite que des éléments de base en ce qui concerne
le multimédia (lecture audio et vidéo, gravure de CD et DVD).
• Programmes commerciaux. À quelques exceptions près (CrossOver, VMware), cet ouvrage
fait l’impasse sur les programmes commerciaux.

Styles utilisés dans ce livre


Ce livre fournit souvent des commandes. Les parties effectivement saisies sont donc distin-
guées par du gras. Le reste des listings se compose de l’invite de commande (qui dépend du
système) et des sorties des commandes. Dans l’exemple suivant, seul ls *.jpg est saisi et
permet d’afficher la liste de tous les fichiers .jpg du répertoire.
utilisateur$ ls *.jpg
dscf2532.jpg
dscf2533.jpg
dscf2534.jpg
...
root Certaines commandes ne peuvent être lancées que par l’administrateur du système, root.
La représentation de ces commandes commence alors par root# :
root# /etc/init.d/nfs restart
Linux Livre Page 4 Mardi, 23. septembre 2008 1:05 13

4 LINUX

sudo Dans certaines distributions (par exemple, Ubuntu), le compte root est désactivé. Dans ce
cas, les commandes système sont lancées à l’aide de sudo. Vous devez alors donner votre
mot de passe, ce qui ne sera pas indiqué systématiquement dans le livre. Vous trouverez
plus d’informations sur sudo au Chapitre 14.
utilisateur$ sudo /etc/init.d/nfs restart
Password: *********
Commandes Si certaines commandes sont trop longues pour tenir sur une seule ligne, elles sont écrites
sur plusieurs
lignes sur plusieurs lignes, qui sont séparées par le caractère \. Vous pouvez dans ce cas taper la
commande en une ligne sans les caractères \ ou la séparer en plusieurs lignes comme dans
le livre. \ peut aussi être utilisé sous Linux comme caractère permettant d’exécuter une
commande de plusieurs lignes.
Linux Livre Page 5 Mardi, 23. septembre 2008 1:05 13

PARTIE 1 – PREMIERS PAS ET INSTALLATION

Qu’est-ce que Linux ?


1
Qu’est-ce que Linux ? Pour répondre à cette première question, nous allons
expliquer quelques concepts utilisés tout au long de cet ouvrage : le système
d’exploitation, Unix, les distributions, le noyau, etc. Un aperçu rapide des
caractéristiques de Linux et des applications disponibles rend évidente la
richesse des utilisations de ce système.
Ce chapitre est un court survol de l’histoire encore jeune de Linux. Vous décou-
vrirez comment Linux a été développé et sur quels composants il est basé. La
GPL (General Public License) est bien sûr un point majeur de cette histoire : elle
définit sous quelles conditions Linux peut être redistribué. Elle fait de Linux un
système libre, où "libre" signifie bien plus que simplement "gratuit".

1.1 Introduction
Linux est un système d’exploitation comparable à Unix. La différence majeure
tient au fait que Linux peut être copié avec l’intégralité de son code source (pour
plus de détails sur les conditions sous lesquelles Linux et les programmes qu’il
contient peuvent être redistribués, voir section 1.4).
Système Un système d’exploitation est un ensemble de programmes prenant en charge les
d’exploitation
fonctions les plus basiques d’un ordinateur : l’interface entre l’utilisateur et la
machine (gestion du clavier, de l’écran, etc.), ainsi que la gestion des ressources
du système (capacité mémoire, disque dur, etc.). Un système d’exploitation est
nécessaire pour lancer des applications et enregistrer des données dans un fichier.
Au cours de l’histoire de l’informatique, différents systèmes d’exploitation ont été
développés. Jusqu’ici, vous avez probablement été en contact avec l’un des
nombreux systèmes d’exploitation Windows (3.1, 95, 98, SE, ME, NT, 2000, XP,
2003, Vista), voire avec leur prédécesseur, MS-DOS. On peut citer d’autres sys-
tèmes d’exploitation, comme ceux des ordinateurs Apple et des ordinateurs
déjà oubliés, Commodore Amiga et Atari ST.
Unix Bien avant tous ces systèmes d’exploitation, il y avait Unix. D’un point de vue
historique, ce dernier est considéré comme un système d’exploitation très
ancien. Pourtant, il s’agit d’un système moderne, équipé dès le départ de fonc-
tionnalités qui ne sont apparues sous une forme comparable chez Microsoft que
bien plus tard (avec Windows NT). Unix fournissait déjà un environnement
multitâche, une séparation des processus (et donc une plus grande stabilité),
des droits d’accès clairs pour les fichiers (et donc davantage de sécurité dans le
cadre d’un système multi-utilisateur), des fonctions réseau sophistiquées, etc.
Mais Unix n’offrait, il y a encore une ou deux décennies, qu’une interface
Linux Livre Page 6 Mardi, 23. septembre 2008 1:05 13

6 LINUX

utilisateur spartiate et avait des besoins matériels importants. C’est pourquoi Microsoft ou
Apple, malgré des systèmes d’exploitation moins spectaculaires, ont eu nettement plus de
succès qu’Unix, qui est resté cantonné aux stations de travail coûteuses en environnement
scientifique ou technique.
Linux Linux n’est en théorie qu’une nouvelle variante d’Unix. On compte au nombre de ses parti-
cularités la mise à disposition gratuite de son code source et la prise en charge de matériels
très divers. La large diffusion de Linux ces dernières années, ainsi que l’explosion d’Internet
et des besoins associés en serveurs stables, extensibles et performants ont offert une nouvelle
jeunesse au monde d’Unix, que l’on avait probablement enterré prématurément.

Unix est ici utilisé comme un terme générique qui regroupe divers systèmes d’exploitation dérivant
d’Unix. Leur nom se termine parfois en -ix (Irix, Xenix, etc.), mais ce n’est pas une règle absolue (HPUX,
Solaris, etc.). Ces noms sont généralement des marques déposées par leurs détenteurs respectifs. Unix
est lui-même une marque déposée. Les droits associés ont changé plusieurs fois de propriétaire ces
dernières années.
Vous pouvez installer plusieurs systèmes d’exploitation en parallèle sur votre ordinateur. Le menu de
démarrage vous offre alors le choix de démarrer l’un de ces systèmes, qu’il s’agisse de Windows, de
Linux ou d’un autre système d’exploitation. Vous pouvez de plus accéder à votre système de fichiers
Windows sous Linux.

Noyau
Le terme Linux ne recouvre, strictement parlant, que le noyau. Il s’agit de la partie la plus
interne d’un système d’exploitation, qui contient les fonctions les plus élémentaires comme
la gestion du disque, la gestion des processus et le contrôle du matériel. Les informations
contenues dans ce livre se basent sur le noyau 2.6.
Comme Linux est toujours activement développé, de nouvelles versions du noyau voient
constamment le jour. Mais n’ayez crainte : lorsque le noyau Linux fonctionne de manière
stable sur votre ordinateur, il est rare de devoir le modifier. La plupart des distributions
s’occupent des mises à jour de sécurité nécessaires.
Nous parlerons plus en détail du noyau et de ses caractéristiques au Chapitre 25. Nous
décrirons également comment compiler votre propre noyau.
Attention à ne pas confondre les différents numéros de version de Linux : le noyau en possède
un, tout comme les bibliothèques, les compilateurs, les programmes, les distributions, etc.
Tous ces numéros de version sont indépendants les uns des autres. La meilleure description
de votre système Linux est le nom et le numéro de version de votre distribution, par exemple
Ubuntu 8.04.

Caractéristiques du noyau
• Linux est un système multitâche (plusieurs processus peuvent fonctionner en même
temps), multi-utilisateur (plusieurs utilisateurs peuvent l’utiliser en même temps), qui
prend en charge la pagination (le transfert de données de la mémoire au disque dur
Linux Livre Page 7 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 7

lorsqu’il n’y a plus assez de RAM à disposition), les bibliothèques partagées (celles qui
contiennent les fonctions du système ne sont chargées qu’une seule fois, même lorsque
plusieurs processus les utilisent), la communication interprocessus et le multitraitement
(souvent appelé SMP pour Symmetric Multi Processing, qui recouvre l’utilisation de
plusieurs processeurs ou cœurs de processeurs).
• Linux permet d’exploiter pratiquement toute la gamme de matériel PC. En dehors des
plateformes de type Intel, il existe également des versions pour d’innombrables archi-
tectures. Linux fonctionne aussi sur des stations de travail Sun, des ordinateurs Apple,
etc. Linux devient également de plus en plus populaires sur les systèmes embarqués,
qui ne sont pas à proprement parler des PC. Si vous possédez par exemple un routeur
Wi-Fi, il est possible qu’il tourne sous Linux !
• Linux permet d’utiliser de nombreux systèmes de fichiers. Le système ext3 est un des
plus fréquents. Les fonctions de journalisation s’assurent que le système peut être redé-
marré très rapidement après un arrêt inopiné (comme lors d’un orage). Les pertes de
données sont même dans ce cas improbables.
• Linux fournit également une large palette de protocoles réseau (TCP/IP, y compris
IPv6, IPsec, PPP, etc.).

Prise en charge du matériel


Linux prend en charge presque tout le matériel PC. Il existe cependant quelques exceptions :
• Les cartes graphiques très récentes ne sont souvent pas prises en charge, ou partiellement.
Les fabricants de matériel (ATI, NVIDIA) fournissent des pilotes pour quelques cartes,
mais leur intégration à Linux peut être difficile.
• Les ordinateurs portables récents incluent souvent du matériel que Linux ne peut pas
utiliser, ou partiellement.
• Les ordinateurs portables ont presque toujours une carte Wi-Fi. De nombreux modèles
standard sont facilement pris en charge, mais les modèles récents ou exotiques posent
souvent problème.
• Les périphériques spécifiques à Windows, comme les imprimantes GDI, les Winmo-
dems et certains scanners, sont une autre source de problèmes. La particularité de ces
périphériques est qu’ils n’utilisent pas de standards ouverts, mais fonctionnent avec des
pilotes développés uniquement pour Windows. Le développement de pilotes pour
Linux échoue souvent du fait que les fabricants ne fournissent aucune spécification ou
interdisent l’utilisation de ces spécifications dans du code libre.
Pour toutes ces raisons, avant de vous décider pour l’achat d’un nouvel ordinateur ou d’une
extension matérielle, vérifiez que tous les composants sont pris en charge sous Linux. Les
pages web suivantes contiennent des informations utiles. Un bon point de départ est le
Hardware-HOWTO (attention, sa traduction française n’est pas toujours à jour). Vous trou-
verez ces liens, sous leur forme actualisée, sur ma page web http://www.kofler.cc.
Linux Livre Page 8 Mardi, 23. septembre 2008 1:05 13

8 LINUX

Pages web sur le thème du matériel sous Linux


Aperçu : http://www.tldp.org/HOWTO/HOWTO-INDEX/hardware.html
Traduction du
Hardware-HOWTO : http://www.traduc.org/docs/HOWTO/vf/Hardware-HOWTO.html
Hardware4Linux : http://hardware4linux.info/
Cartes graphiques : http://wiki.x.org/wiki/VideoDrivers
Imprimantes : http://www.linuxprinting.org
Scanners : http://www.sane-project.org/
Winmodems : http://linmodems.org
Wi-Fi : http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html
USB : http://www.linux-usb.org
Firewire : http://www.linux1394.org/
Portables : http://www.linux-on-laptops.com
http://tuxmobil.org/
http://tuxmobil.org/lang_french.html
SUSE/Novell : http://fr.opensuse.org/Matériel
http://cdb.suse.de
Red Hat : https://hardware.redhat.com/
Mandriva : http://club.mandriva.com/xwiki/bin/view/KB/HardwareIndex#cd
Ubuntu : http://doc.ubuntu-fr.org/materiel

1.2 Distributions
Nous n’avons pas encore répondu complètement à la question initiale : "Qu’est-ce que
Linux ?". La plupart des utilisateurs s’intéressent peu au noyau, tant qu’il fonctionne et qu’il
prend en charge le matériel présent. Pour eux, le terme Linux regroupe un ensemble de pro-
grammes, généralement fournis par la distribution. C’est sous cette acception qu’est généra-
lement reconnu Linux : un noyau, auquel sont ajoutés de nombreux petits outils, les
environnements de bureau KDE et Gnome, différents paquetages de bureautique, le pro-
gramme graphique Gimp, d’innombrables langages de programmation et au moins autant
de programmes serveur (serveur web, serveur de courrier électronique, serveur de fichiers,
serveur d’impression, etc.).
Cette unité composée du noyau et de ses programmes complémentaires est appelée distri-
bution. Elle permet d’installer Linux rapidement et confortablement. Les distributions sont
pour la plupart disponibles à l’achat sous forme de CD ou de DVD et peuvent généralement
être téléchargées sur Internet. En raison de la taille des données (souvent plusieurs gigaoc-
tets), la copie d’une distribution ou son installation directement sur le réseau demande une
excellente connexion Internet.
Les distributions se différencient principalement sur ces points :
• Étendue et actualité. Le nombre, le choix et l’actualité des programmes et des bibliothèques
fournis diffèrent selon les distributions. Certaines se rengorgent du nombre de CD fournis.
Linux Livre Page 9 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 9

Pour éviter aux utilisateurs de devoir changer trop souvent de CD lors de l’installation
ou des mises à jour ultérieures, certaines distributions fournissent également des DVD.
• Outils d’installation et de configuration. Les programmes d’installation, de configura-
tion et de maintenance du système aident à modifier les centaines de fichiers de configu-
ration du système de manière simple. Des outils fonctionnels pour l’installation et la
configuration représentent d’énormes économies de temps.
• Configuration du bureau (KDE, Gnome). La plupart des distributions offrent le choix à
l’utilisateur entre KDE, Gnome et d’éventuels autres gestionnaires de fenêtres. Certai-
nes différences existent également dans la configuration de détail de KDE ou de Gnome,
touchant à l’aspect extérieur, à l’ordre des menus, etc.
• Reconnaissance et configuration du matériel. Linux gère la majorité du matériel PC. Il est
donc agréable que les distributions détectent automatiquement le matériel et permettent
de l’utiliser immédiatement. Si cela ne fonctionne pas, il faut bien souvent en passer par
une configuration manuelle, ce que la plupart des utilisateurs de Linux redoutent.
• Systèmes de paquetages. On administre les applications grâce aux paquetages. Le sys-
tème de paquetages influe sur la facilité d’installation de programmes supplémentaires
et de mise à jour des programmes. Il existe principalement trois systèmes de paquetages
incompatibles entre eux : RPM (utilisé entre autres chez Mandriva, Red Hat et SUSE),
DEB (Debian, Ubuntu) et TGZ (Slackware).
• Maintenance et mises à jour de sécurité. Linux est un système très dynamique. Même
après la sortie d’une distribution, de nombreuses nouveautés importantes apparais-
sent : des failles de sécurité sont souvent découvertes dans divers programmes. Une
bonne distribution se différencie par le fait qu’il existe un système de mises à jour semi-
ou entièrement automatique pour les installer sans effort.
La période pendant laquelle les mises à jour de sécurité sont disponibles prend une
importance croissante. La règle de base est généralement celle-ci : plus la distribution
est chère, plus cette période est longue.
Voici quelques exemples : pour Fedora, cette période est d’environ 13 mois (un mois après la
sortie des deux versions suivantes) ; pour Ubuntu Linux, 18 mois en circuit normal et trois à
cinq ans pour les versions LTS (actuellement 6.04 et 8.04) ; pour openSUSE, deux ans ; pour
Red Hat Enterprise Linux, cinq ans ; et pour Novell/SUSE Enterprise Server, cinq ans.
Ces données étaient valables en 2007. Chercher la période de disponibilité des mises à jour
sur le site web des distributions est néanmoins fastidieux. En dehors des produits entreprise
les plus chers, aucune distribution ne veut apparemment indiquer la durée de la période
d’assistance. Mais en principe, vous ne pouvez utiliser une distribution de manière sûre
que pendant le laps de temps au cours duquel vous pouvez obtenir des mises à jour. Après
cette période, vous devez passer à une version plus récente pour des raisons de sécurité.
• Disponibilité des sources de paquetages. À quoi bon bénéficier du meilleur système
de paquetages et des mises à jour les plus actuelles si le dépôt de paquetages sur Inter-
net n’est disponible que la moitié du temps ou s’il est horriblement lent ? Il est malheu-
reusement difficile d’obtenir des références sur ce point. Les dépôts de paquetages de
petites distributions moins répandues sont souvent plus facilement accessibles que ceux
des grosses distributions, qui distribuent des mises à jour à des milliers d’utilisateurs
Linux Livre Page 10 Mardi, 23. septembre 2008 1:05 13

10 LINUX

quotidiennement. Mais si la distribution devient soudainement populaire, la situation


peut très vite s’inverser... De plus, les grosses distributions ont plus de chances d’avoir
un ou plusieurs miroirs distribuant leurs mises à jour.
• Existence d’un système "live". Quelques distributions permettent d’utiliser Linux
directement depuis un CD-ROM. Cette utilisation est certes lente et peu souple, mais
permet d’essayer Linux très simplement. De plus, un live CD est une solution idéale
pour réparer un système Linux présent sur le disque dur, mais endommagé.
• Plateformes cibles (architecture du processeur). De nombreuses distributions ne fonc-
tionnent que sur les processeurs compatibles Intel ou AMD, et fournissent en général
une variante 32 bits et 64 bits. Il existe également des distributions pour d’autres plate-
formes, par exemple Sparc (Sun) ou PowerPC.
• Documentation. Il existe de grandes différences dans la qualité et la quantité des docu-
mentations disponibles.
• Assistance. Quelques distributions fournissent une assistance gratuite pour l’installation
(par courrier électronique ou téléphone).
• Présence de logiciels commerciaux. Certaines distributions offrent non seulement les
paquetages Linux libres, mais aussi des programmes sous licence commerciale.
• Licence. La plupart des distributions Linux sont disponibles sans limitation gratuite-
ment sur Internet. Certaines posent cependant quelques limites. Les distributions
d’entreprise de Red Hat et de Novell n’offrent un accès au système de mises à jour qu’à
leurs clients enregistrés. Certaines distributions interdisent la revente. Comme Linux et
la plupart des programmes fournis sont disponibles librement (voir section 1.4 sur les
licences), cette interdiction de revente s’applique principalement à l’utilisation des mar-
ques déposées. Les restrictions de redistribution s’appliquent également lorsque la distri-
bution fournit des logiciels commerciaux.
Distributions L’allégation de gratuité de Linux est en contradiction avec le prix de certaines distributions,
commerciales
pour la plupart pensées pour les entreprises. On peut cependant en comprendre facilement
la raison : même si Linux et la plupart des applications sont effectivement disponibles gra-
tuitement sur Internet, l’assemblage des composants demande du temps et du savoir-faire.
Un bon programme d’installation vaut souvent le prix de la distribution ! Il permet d’écono-
miser du temps d’installation et de configuration aux nouveaux venus à Linux.
La production d’un ou de plusieurs CD, tout comme l’impression d’un manuel coûtent éga-
lement de l’argent. Un bon service de mises à jour est tout aussi important : il propose de
nouvelles versions des programmes impactés par une faille de sécurité. Pour finir, il ne faut
pas négliger l’assistance personnelle proposée par certaines distributions pour régler les
problèmes d’installation. Une distribution est d’autant plus chère qu’elle fournit de nombreux
programmes commerciaux.
En d’autres mots, dans une distribution commerciale, vous ne payez pas le logiciel en soi,
mais les services associés.
Distributions Malgré la commercialisation grandissante du marché Linux, il existe encore de nombreuses
gratuites
distributions entièrement gratuites. Les acteurs populaires sont actuellement Debian,
Fedora, SUSE et Ubuntu.
Dans le cas de ces distributions, vous téléchargez les fichiers ISO sur Internet et les gravez
vous-même en CD ou DVD d’installation. Si votre accès Internet est trop lent, des entreprises
proposent ces CD et DVD à bas prix (par exemple, en France, http://www.ikarios.com/).
Linux Livre Page 11 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 11


Quelle Déterminer la meilleure distribution et laquelle conseiller à qui tient souvent de la guerre de
distribution
pour quel religions. Lorsqu’on a choisi une distribution et que l’on s’est habitué à ses particularités, il
but ? est difficile d’en changer. Cela n’est faisable qu’en réinstallant l’ensemble du système, ce qui
peut s’avérer fastidieux.
Les critères de choix d’une distribution sont l’actualité de ses composants (version du noyau
et des programmes importants, comme le compilateur C ou les environnements de bureau),
la qualité des outils d’installation et de configuration, l’assistance fournie, la présence d’un
manuel, etc.

La concurrence des distributions pour leur développement est stimulante ; installer des programmes non four-
nis par la distribution (en particulier, les programmes commerciaux) peut s’avérer délicat. Une bibliothèque
manquante ou trop ancienne est souvent la raison pour laquelle un programme ne se lance pas. Éliminer ce
type de problèmes est presque impossible, en particulier pour les débutants. Aujourd’hui, certaines entreprises
n’assurent l’assistance sur leurs produits que lorsqu’ils sont utilisés avec une distribution donnée (et la
distribution choisie diffère bien évidemment d’une entreprise à l’autre).
Pour éviter ce genre de problèmes, le projet Linux Standard Base a été créé. La spécification LSB définit
des règles qui sont un dénominateur commun à toutes les distributions qui font partie du projet LSB :
http://www.linuxbase.org.

Quelques distributions Linux courantes


La liste suivante des distributions les plus importantes (dans l’ordre alphabétique et non
exhaustive) offre une première orientation. Notez cependant que le paysage des distribu-
tions Linux se transforme rapidement. De nouvelles distributions apparaissent et gagnent
vite en popularité (effet de mode important), tandis que d’autres perdent rapidement leur
importance ou sont même abandonnées. Cette section n’est qu’un instantané, en aucun cas
objectif, de la situation du marché en 2008.
Debian − Debian est la plus ancienne des distributions totalement gratuites. Elle a été composée par
www.debian.
org des développeurs Linux engagés, qui mettent en avant sa grande stabilité et le respect des
règles du jeu du logiciel libre. L’interprétation stricte de cette philosophie a entraîné à plu-
sieurs reprises des retards dans l’achèvement de nouvelles versions. Mais certaines idées de
Debian (par exemple, le gestionnaire de paquetages très professionnel) ont été décisives
pour d’autres distributions.
Debian contient des versions de programmes plutôt anciennes. En raison des aides limitées
à la configuration, elle n’est pas conseillée aux débutants sous Linux. Il existe cependant de
nombreuses distributions dérivées de Debian (par exemple, Ubuntu et Xandros), plus adaptées
à ces derniers.
Fedora − Fedora (anciennement Fedora Core) est la branche de développement gratuite de Red Hat
www.fedora
project.org Linux. Son développement est géré et assisté par Red Hat. La communauté open-source est
invitée à apporter son aide, mais a peu d’influence sur les décisions stratégiques.
Linux Livre Page 12 Mardi, 23. septembre 2008 1:05 13

12 LINUX

Une nouvelle version de Fedora sort environ tous les six mois. Les mises à jour sont fournies
jusqu’à un mois après la sortie des deux versions suivantes. La durée de vie d’une version
est donc d’environ 13 mois, ce qui est plutôt court. Red Hat fait clairement remarquer que
Fedora ne vise pas une utilisation commerciale. Au cours des dernières années, elle s’est éta-
blie comme une distribution moderne et incroyablement robuste, dont la courte durée de
mises à jour est le principal défaut.
Pour Red Hat, Fedora est une manière de tester les nouvelles fonctionnalités sans mettre en
péril la stabilité des versions entreprise. Les programmes qui font leurs preuves sont plus
tard intégrés à ces dernières. Pour les fans de Linux, l’intérêt de Fedora réside dans le fait
qu’elle joue un rôle de précurseur dans le développement technique de Linux. Les nouvelles
fonctionnalités de Linux se trouvent bien souvent d’abord dans Fedora, avant d’être reprises
dans les autres distributions.
Gentoo − Gentoo vise les développeurs et les utilisateurs qui désirent une flexibilité et un contrôle
www.gentoo.
org optimal de leur distribution. Sa particularité est que chaque paquetage de programme peut
être compilé et ainsi optimisé pour le matériel sur lequel il fonctionne. Les professionnels de
Linux peuvent bien sûr compiler leurs propres programmes sur n’importe quelle distri-
bution, mais Gentoo les assiste très bien grâce à des outils de configuration adaptés.
Knoppix − La spécificité de Knoppix est qu’elle ne doit pas nécessairement être installée sur le disque
www.knoppix.
net dur. Elle fonctionne directement depuis le live CD. Knoppix dérive de Debian. Parallèle-
ment au système original assemblé par Klaus Knopper, il existe d’innombrables variantes,
qui diffèrent de par les programmes (par exemple, pour des applications scientifiques) ou
les langues proposées (espagnol, japonais, etc.). La version la plus connue de Knoppix en
français, composée par le groupe Linux Azur, se nomme Kaella.
Il existe de nombreux autres systèmes "live", tels que Kantonix, Slax, Ubuntu, Mandriva
One, etc. C’est cependant Klaus Knopper qui a aidé à répandre ces systèmes.
Mandriva − Mandriva provient de la fusion entre Mandrake Linux (France) et Connectiva (Brésil). Man-
www.mandri
va.com drake Linux était l’une des plus grandes distributions aux côtés de Red Hat et de SUSE.
Aujourd’hui, sa popularité tend à décroître en dehors des pays d’origine (Mandriva reste
néanmoins très présente en France).
Novell − Novell, qui a acheté en novembre 2003 l’entreprise allemande SUSE, est actuellement le
www.novell.
com/linux numéro 2 du marché commercial de Linux. Tout comme Red Hat, Novell suit deux chemins.
D’une part, diverses distributions à destination des entreprises sont commercialisées sous
les noms Novell et SUSE. D’autre part, la distribution openSUSE est gratuite et vise les utili-
sateurs privés et les développeurs de Linux (voir ci-après).
Au printemps 2006, Novell a établi un accord avec Microsoft qui la protège des procès liés aux
brevets de Microsoft. Ce qui semble à première vue un grand pas en avant pour Linux est en fait
considéré d’un œil critique par de nombreux développeurs de logiciels libres : l’accord Novell/
Microsoft est-il le préalable à des procès sur les brevets envers d’autres entreprises Linux ?
Red Hat − Red Hat est l’entreprise Linux la plus réputée sur le plan international. Ses distributions
www.redhat.
com dominent le marché américain. Le système de paquetages basé sur le format RPM (déve-
loppé par Red Hat) a été repris par de nombreuses distributions.
Red Hat est particulièrement connue des entreprises. Les versions entreprise (RHEL ou Red
Hat Enterprise Linux) sont comparativement plus chères, mais offrent une grande stabilité et
Linux Livre Page 13 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 13

une politique de mises à jour valable cinq ans. Les développeurs et les utilisateurs enthousias-
tes qui cherchent un système Red Hat gratuit peuvent se tourner vers Fedora (voir ci-dessus).
Slackware − Lancée en 1994, Slackware est l’une des plus anciennes distributions Linux. À l’époque, les
www.slack-
ware.com CD n’existaient pas et étaient remplacés par des douzaines de disquettes. Aujourd’hui,
Slackware ne parvient plus à concurrencer les autres distributions en ce qui concerne la
maintenance et l’installation. Elle conserve malgré tout de nombreux fans, qui préfèrent
la continuité et la stabilité à de jolis outils d’installation et de configuration.
SUSE/ SUSE était, jusqu’à son rachat par Novell, l’entreprise dominante du marché Linux euro-
openSUSE −
www.opensu péen, en particulier dans les pays germanophones. Cette marque déposée est utilisée pour
se.org diverses distributions commerciales de Novell. Il existe également la distribution gratuite
openSUSE, qui vise les utilisateurs privés et les développeurs de Linux.
Comme Fedora, openSUSE sert de laboratoire de développement et de test pour les ver-
sions entreprise. Le processus de développement a été réorganisé en 2005. Depuis cette
date, les bêta-tests, les listes de discussion et la base de données de bogues, ainsi que la
distribution terminée sont accessibles gratuitement. Contrairement à Fedora, openSUSE
est toujours disponible en tant que boîte contenant un manuel d’utilisation et une assis-
tance. La période de mises à jour de deux ans se démarque également de celle de Fedora,
plus minimaliste.
Ubuntu Ubuntu est une distribution récente très intéressante. Lancée en octobre 2004, elle est
aujourd’hui la distribution Linux la plus populaire. Une nouvelle version sort tous les six
mois et peut être utilisée pendant au moins 18 mois.
Basée sur Debian, Ubuntu est plus simple d’utilisation. Le média d’installation est parti-
culièrement petit : un seul CD suffit. Au besoin, d’innombrables paquetages peuvent être
installés depuis Internet. Ubuntu, ainsi que ses mises à jour, sont disponibles gratuitement.
Elle est commercialement prise en charge par l’entreprise Canonical (fondée par le sud-
africain Mark Shuttleworth et dont le siège se situe sur l’île de Man).
Ubuntu est basée sur Gnome, mais présente de nombreuses variantes comme Kubuntu
(avec KDE), Xubuntu (avec XFCE comme gestionnaire de fenêtres), Edubuntu (pour les écoles)
et Ubuntu Server (spécialisé dans les applications serveur).
Xandros Xandros est une distribution commerciale basée sur Corel (Corel a tenté d’entrer dans le
marché Linux en 1999, mais a échoué ; Xandros a racheté Corel Linux). Grâce à une utilisa-
tion simplifiée, elle vise surtout les débutants et les personnes venant de Windows. De nom-
breux tests l’ont décrite comme la distribution la plus accessible aux utilisateurs. Certaines
versions contiennent CrossOver Office, qui permet l’installation et l’utilisation de Microsoft
Office sous Linux. Xandros a récemment fait beaucoup parler d’elle, du fait de son installation
par défaut sur les PC ultraportables EEE d’Asus.

Vous trouverez sur les pages suivantes un aperçu des distributions les plus populaires du moment, qu’elles
soient commerciales ou non : http://www.distrowatch.com/ ; http://lwn.net/Distributions/ ; http:/
/www.linuxhq.com/dist.html
Linux Livre Page 14 Mardi, 23. septembre 2008 1:05 13

14 LINUX

Distributions minimales
En plus des "grosses" distributions présentées dans la section précédente, il existe sur Inter-
net d’innombrables assemblages de systèmes miniatures (pouvant même tenir sur une dis-
quette !). Ces distributions se basent pour la plupart sur des versions du noyau plus
anciennes et plus petites. Elles sont conçues avant tout pour des tâches spécialisées, qu’il
s’agisse de maintenance (système de secours) ou de systèmes utilisables sans installation
(qui se lancent directement depuis une ou plusieurs disquettes ou un CD). Celles-ci sont
pratiques pour utiliser Linux sur un ordinateur qui ne vous appartient pas et sur lequel
vous ne voulez ou pouvez pas partitionner le disque.
Devil Linux Devil Linux est un exemple typique de petite distribution Linux, qui vise à construire un
pare-feu, un routeur ou une passerelle Internet. Elle fonctionne directement depuis un CD ;
les paramètres de configuration sont enregistrés sur une disquette ou sur une clé USB (le
disque dur est donc accessoire !). Les besoins matériels sont également très restreints : un
processeur compatible avec un Intel 486 et 32 Mo de RAM suffisent.
Damn Small Damn Small Linux est une autre distribution minimale populaire. Elle tient sur un mini-CD
Linux
(environ 50 Mo), mais fournit toutes les fonctions de base d’une distribution de bureau.

Problème du choix
À l’issue des travaux nécessaires à cet ouvrage et après avoir installé de nombreuses distri-
butions Linux, mon rêve d’assembler tous les avantages d’une distribution sans payer le
prix de leurs inconvénients reste inassouvi.
Par conséquent, il est difficile de recommander une distribution donnée. Les débutants sous
Linux peuvent néanmoins d’abord utiliser une distribution très répandue, comme Fedora,
openSUSE, Ubuntu ou Mandriva, car ils n’auront aucun problème à trouver des informations
sur Internet, dans des livres ou dans la presse. Il est donc plus simple d’obtenir de l’aide en cas
de problème. Les distributions éprouvées sont également un bon choix en ce qui concerne les
aides à l’installation ou à la configuration de matériels inhabituels ou non standard. Pour finir,
elles facilitent largement la recherche de paquetages complémentaires ou de mises à jour.
Les utilisateurs de distributions commerciales doivent décider s’ils sont prêts à payer pour une
assistance professionnelle. Dans ce cas, leur choix peut s’orienter vers les leaders du marché Red
Hat et Novell. Les alternatives gratuites regroupent par exemple Debian, Ubuntu (en particulier,
les versions LTS) et les clones de Red Hat (CentOS, Scientific Linux ou encore White Box Linux).

1.3 Fantasmes et réalité


Cette section regroupe quelques préjugés contre Linux. Mon but est de présenter une image
non biaisée de Linux, sans les exagérations des fans enthousiastes, ni le sombre tableau
dépeint par ses adversaires, qui le rendent bien pire qu’il n’est par crainte de voir leur propre
entreprise en danger.
Linux est plus Cette phrase n’est ni correcte, ni incorrecte. Il existe, en effet, des programmes qui fonction-
rapide que
Windows nent plus vite sous Linux ou sous Windows. Mais on ne peut en tirer aucune conclusion
Linux Livre Page 15 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 15

générale valide. Le résultat dépend du système pour lequel le programme a été optimisé,
des versions de Windows et de Linux, du matériel utilisé, etc.
Linux utilise Il est vrai que Linux peut fonctionner sur un PC 486 avec quelques mégaoctets de RAM.
moins de
ressources Mais dans cette configuration, il ne fonctionne qu’en mode texte, avec tout de même plus de
que Windows fonctionnalités qu’une version de Windows tournant sur le même ordinateur.
Les choses sont néanmoins différentes lorsqu’on compare une distribution récente de Linux
avec Windows XP. Pour travailler confortablement dans un environnement graphique, tous
deux ont des besoins matériels relativement similaires.
Linux tient cependant la comparaison par rapport à Windows Vista, qui nécessite pour son
interface graphique complète une configuration matérielle énorme. Les effets 3D du bureau
fonctionnent sous Linux sur des ordinateurs plus anciens. On peut certes s’interroger sur la
nécessité de ces effets graphiques, que ce soit sous Linux ou sous Windows. Mais, dans tous
les cas, ils sont impressionnants. Un bureau sans effets 3D sera probablement démodé dans
deux à trois ans.
Linux est Tous les systèmes d’exploitation souffrent de problèmes de sécurité. En général, Linux s’en
plus sûr que
Windows sort plutôt bien, mais on trouve encore des failles de sécurité présentes depuis plusieurs
années sous Linux et d’autres Unix, y compris dans les programmes réseau. La sûreté de
Linux dépend également de son utilisation :
• Dans le cadre d’une utilisation bureautique, Linux est à l’inverse de Windows pratique-
ment exempt de virus. Il n’y a eu jusqu’ici aucun virus notable, alors que sous Windows,
ils paralysent régulièrement des entreprises entières. La raison principale est que
l’administration des droits sous Linux empêche les applications courantes d’endomma-
ger gravement le système. À la différence de Windows, il est également déconseillé sous
Linux de lancer des programmes avec des droits d’administrateur système lorsque
ceux-ci ne sont pas strictement nécessaires.
• Lorsque Linux est utilisé comme serveur réseau ou Internet, la sécurité dépend large-
ment de la maintenance du système. Ces dernières années, presque tous les problèmes
de sécurité ont été corrigés avant que le risque de sécurité ne soit connu et puisse être
utilisé par des pirates. Si vous actualisez régulièrement les logiciels de votre ordinateur,
les intrus ont peu de chances de pouvoir pénétrer dans votre système. La plupart des
distributions fournissent des outils qui facilitent de telles mises à jour.
Les grosses distributions Linux offrent en général un système de mises à jour pour plusieurs
années. Vous actualisez ainsi les programmes déjà installés dès qu’il existe une version plus
récente ou plus sûre. Le système de mises à jour fonctionne souvent très bien, mais nécessite
une bonne connexion à Internet : pour la plupart des distributions, il faut prévoir des dou-
zaines de téléchargements, parfois de plus d’une centaine de mégaoctets. Les produits
Microsoft disposent d’un système comparable de mises à jour depuis Windows XP SP2.
La sécurité des systèmes Linux dépend également de l’étendue de vos propres compéten-
ces. Si un débutant se précipite, configure un serveur Internet et le connecte au réseau, il ne
faut pas s’attendre à ce que ce serveur soit sécurisé de manière optimale. La littérature à ce
propos ne manque pas.
Linux Livre Page 16 Mardi, 23. septembre 2008 1:05 13

16 LINUX

Linux est plus Lorsque Linux est devenu populaire, Windows 95 commençait son avancée triomphale.
stable que
Windows L’assertion "Linux est plus stable que Windows" était alors facile à corroborer. Entre temps,
Microsoft a commercialisé des versions de Windows respectables et stables. Dans tous les
cas, les affirmations quant à la stabilité de Linux réclament une différentiation importante :
• Le noyau est en soi extraordinairement stable. Je travaille depuis de nombreuses années
sous Linux et j’ai rarement expérimenté un plantage complet du système d’exploitation
(il s’agissait en général d’un problème de matériel défectueux ou mal configuré). Les
utilisateurs qui se servent de Linux comme d’un serveur réseau parlent souvent de
temps de fonctionnement (uptime) de plusieurs mois. Cela signifie que le système peut
tourner pendant plus d’un an sans interruption et fournir ses services sans protester. Les
redémarrages font souvent suite à des mises à jour du noyau. La stabilité du système ne
fait donc aucun doute.
• En revanche, si on parle de Linux en tant que système complet avec les applications
associées (et donc d’une distribution complète, avec X, KDE ou Gnome, etc.), la stabilité
apparaît alors beaucoup moins bonne. En particulier, les grosses applications comme
OpenOffice.org ne sont pas à l’abri d’un plantage sous Linux. Les programmes serveur
fonctionnent cependant pour la plupart sans souci.
La stabilité de Linux dépend également de la manière dont il est utilisé. Les meilleurs résul-
tats sont généralement obtenus dans un contexte de serveur réseau ou de station de travail
dédiée au travail scientifique ou à la programmation. Plus les programmes s’approchent
d’une utilisation bureautique, plus vous risquez de connaître de mauvaises performances
en termes de stabilité.
Linux est Cette affirmation est facile à argumenter : Linux est disponible gratuitement. Elle est cepen-
moins cher
que Windows dant contestée chez Microsoft, qui indique qu’il faut aussi prendre en compte les coûts de
formation et autres (ce qui présuppose que la connaissance de Windows est innée, mais pas
celle de Linux). De plus, toutes les distributions Linux ne sont pas gratuites. De nombreuses
entreprises optent pour les offres plus chères de Red Hat ou de Novell, qui fournissent une
meilleure assistance, des mises à jour plus longues, de la maintenance, etc. Même si l’on
tient compte de ces éléments, l’argument économique de Linux n’est pas à nier.
Linux est Lorsqu’on achète un PC, Windows est généralement déjà préinstallé. L’installation de Linux
compliqué
à installer est donc une complication supplémentaire. Mais elle n’est pas plus compliquée que celle de
Windows (mais qui installe Windows soi-même de nos jours ?).
La prise en charge des matériels récents est cependant problématique ; elle est en général
meilleure sous Windows, car chaque fabricant de composants fournit un pilote Windows
pour ses périphériques. Les pilotes sous Linux doivent souvent être développés par la commu-
nauté, ce qui peut prendre du temps.
Linux est Ce préjugé est ancien, mais il n’est plus vrai, ou alors dans une très faible mesure. L’utilisa-
complexe
à utiliser tion de Linux est différente de celle de Windows, tout comme celle de Mac OS. La prise en
main de Linux n’est vraiment pas compliquée, mais la perte des habitudes prises sous Windows
peut parfois être difficile.
Linux n’est pas Cette affirmation dépend de ce que l’on entend par "applications multimédias".
adapté aux
applications • Linux peut lire ou coder les fichiers audio. Il peut aussi être utilisé comme enregistreur
multimédias numérique de vidéo, graveur de CD et de DVD, etc. Récupérer, modifier et imprimer
des images numériques ne pose également aucun problème.
Linux Livre Page 17 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 17

• Pour l’instant, Linux ne possède pas de système de DRM (Digital Rights Management,
gestion des droits numériques), nécessaire pour exploiter les téléchargements légaux
audio et vidéo. La plupart des distributions Linux ne fournissent pas non plus par
défaut de lecteur DVD. Il existe des programmes sur Internet prévus pour cela, mais
leur légalité dépend des pays. De plus, l’utilisation des fonctions 3D des cartes graphi-
ques les plus récentes peut être difficile. Le matériel multimédia récent pose également
souvent problème sous Linux.
La tendance actuelle de l’industrie des médias est malheureusement de supprimer de plus
en plus de droits aux consommateurs et d’empêcher l’utilisation de Linux comme plate-
forme multimédia. Les brevets et les algorithmes de chiffrement empêchent les implémenta-
tions par des logiciels libres. C’est pourquoi Linux n’est pas adapté aux applications
multimédias.
Les pro- De nombreux programmes, comme Microsoft Office ou Adobe Photoshop, ne sont actuel-
grammes
Windows ne lement disponibles que pour Windows et Mac OS. Ce problème peut cependant être
fonctionnent contourné :
pas sous Linux
• Il existe pour de nombreux programmes des équivalents sous Linux, comme Open-
Office.org ou le programme graphique Gimp.
• Certains programmes peuvent être lancés sous Linux grâce à l’émulateur gratuit Wine.
Ce dernier est cependant peu intuitif et donc réservé aux utilisateurs chevronnés.
• CrossOver, basé sur Wine, augmente cette compatibilité. Il facilite l’installation et l’exé-
cution de la plupart des composants Office, ainsi que de quelques autres programmes.
• Les outils de virtualisation tels que VMware ou Xen vont même plus loin : ils émulent
un ordinateur complet. Vous pouvez y installer Windows et ainsi le lancer dans une
fenêtre. Cela fonctionne très bien, mais nécessite du matériel puissant (en particulier,
beaucoup de RAM) et il s’agit d’une solution relativement chère : vous avez besoin
d’une licence Windows, à laquelle s’ajoute éventuellement celle du programme de
virtualisation.

1.4 Licences libres


Cette section traite moins de Linux que de la question des logiciels libres et des différentes
licences existantes. L’idée de base du logiciel libre est que le code source est disponible libre-
ment et qu’il peut être étendu ou modifié par quiconque. Une restriction peut néanmoins
s’appliquer : quiconque distribue des produits développés à partir de code libre doit lui-
même distribuer librement son code.
Le concept de logiciel libre n’empêche nullement la vente de produits libres. Cela peut sem-
bler à première vue contradictoire. Mais cette liberté s’applique plus au code qu’au produit
fini. Cette libre disponibilité réglemente aussi la tarification des produits libres : quiconque
vend la compilation d’un logiciel libre doit proposer d’autres services (manuel, assistance,
Linux Livre Page 18 Mardi, 23. septembre 2008 1:05 13

18 LINUX

etc.) pour survivre. Si le tarif n’est pas lié à des services, d’autres entreprises trouveront le
moyen d’offrir la même chose moins cher.
GPL (General Le but d’un développeur de logiciels libres est de parvenir à un système dont le code est
Public License)
librement accessible et qu’il le reste. Pour éviter les abus, de nombreux logiciels libres sont
sous licence GNU General Public License (GPL). La GPL s’appuie sur la Free Software
Foundation (FSF). Cette organisation, créée par Richard Stallman (souvent appelé RMS et
auteur entre autres de l’éditeur Emacs), a pour but de mettre à disposition du public des
logiciels libres de qualité.
Le principe de base de la GPL est que n’importe qui peut modifier le code et même vendre
le programme résultant, mais doit alors garantir aux utilisateurs/consommateurs les
mêmes droits : avoir le code source à disposition, pouvoir le modifier et le redistribuer
gratuitement. Tous les programmes GNU doivent être distribués avec le texte de la GPL.
Cette dernière ne doit pas être confondue avec le domaine public, où il n’existe aucune licence.
La GPL empêche donc que quelqu’un développe à partir d’un programme GPL et vende
cette nouvelle version sans fournir les modifications sous forme de code source. Chaque
modification profite donc à l’ensemble des utilisateurs.

Le texte de la GPL se trouve ici : http://www.gnu.org/licenses/gpl.html


Une version en français, mais non validée légalement, est consultable à l’adresse suivante :
http://www.linux-france.org/article/these/gpl.html
L’idée de base de la GPL est facile à comprendre, mais certains détails soulèvent quelques questions, dont
les réponses figurent sur cette page : http://www.gnu.org/licenses/gpl-faq.html

Versions Les versions les plus utilisées de la GPL sont actuellement la GPL 1 (1985) et la GPL 2 (1991).
de la GPL
Sortie en juin 2007, la GPL 3 ne concerne pour l’instant que quelques projets. Les principales
nouveautés sont les suivantes :
• L’internationalisation. La GPL 3 devrait être compatible avec la législation de davan-
tage de pays.
• Les brevets logiciels. Lorsqu’un logiciel est développé et distribué sous GPL 3, ses
utilisateurs ne peuvent pas intenter de procès sur la base de brevets logiciels.
• Les DRM. La GPL 3 prend position contre les DRM et indique que celles-ci sont fonda-
mentalement incompatibles avec l’idée de la GPL.
L’adoption de la GPL 3 reste à voir. Par exemple, de nombreux développeurs du noyau, y
compris Linus Torvalds, s’opposent au passage du noyau sous GPL 3. Cela semble égale-
ment difficile en pratique : tous les développeurs ayant participé au noyau doivent s’accor-
der. De plus, certains développeurs de logiciels libres sont très critiques vis-à-vis des
nouveautés de la GPL 3, en particulier en ce qui concerne les brevets et les DRM. Vous trou-
verez plus d’informations sur la GPL 3 à l’adresse http://gplv3.fsf.org/.
LGPL (Lesser La LGPL (GNU Lesser GPL) est une variante de la GPL. La différence majeure est qu’une
General Public
License) bibliothèque sous licence LGPL peut être utilisée par des produits commerciaux, dont le
code n’est pas disponible gratuitement. Sans la LGPL, les bibliothèques sous GPL ne pour-
raient être utilisées que dans des programmes GPL, ce qui serait bien souvent une restriction
non désirée pour les programmes commerciaux.
Linux Livre Page 19 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 19


Autres licences Toutes les parties d’une distribution ne répondent pas aux mêmes licences. Le noyau et
libres
de nombreux outils dépendent de la GPL, mais certains composants et logiciels ont
d’autres licences :
• Le système XWindow a sa propre licence. Il a été au départ développé par l’université
américaine MIT. La licence est dérivée d’une ancienne licence MIT.
• Certains outils réseau sont sous licence BSD. BSD est, comme Linux, un système Unix
libre. Cette licence est moins contraignante que la GPL, car elle permet l’utilisation com-
merciale du code sans rediffusion des modifications. Elle est donc intéressante pour les
développeurs qui ne souhaitent pas ouvrir le code de leurs produits.
• Certains programmes sont sous double licence. On peut, par exemple, utiliser MySQL
pour des projets libres sous GPL gratuitement. Le développement d’un produit com-
mercial basé sur MySQL et sa vente (sans mettre à disposition le code) imposent l’utili-
sation de la licence commerciale. La diffusion de MySQL coûte alors de l’argent.
• D’autres programmes sont des programmes propriétaires, mais utilisables gratuite-
ment. Un exemple connu est Adobe Reader, qui permet de lire des documents PDF.
Il peut être utilisé librement sous Linux, mais son code source n’est pas disponible.
Certaines distributions distinguent les produits en fonction des droits liés à leur utilisation
ou leur redistribution. Sous Debian, les programmes pouvant poser problème se trouvent
dans le répertoire non-free.

Le maquis des licences gratuites plus ou moins libres est délicat à appréhender. La marge de concepts est
large entre l’interprétation parfois extrémiste de "libre" au sens de la GPL et les clauses limitatives de certaines
entreprises qui désirent appeler leur logiciel "libre" (puisque c’est moderne), mais qui veulent en réalité garder
tout contrôle sur leur code.
Pour plus d’informations sur les licences libres et open-source, reportez-vous à l’adresse
http://www.opensource.org.

Conflits de licences entre les logiciels libres et propriétaires


Licences libres Si vous souhaitez développer des logiciels et les vendre avec Linux, ou combinés à des logi-
pour les
développeurs ciels ou des bibliothèques libres, vous devrez sans doute vous débattre dans la problémati-
de logiciels que parfois complexe des différentes licences logicielles. En effet, de nombreuses licences
libres ne permettent la redistribution que si le code source est également mis à disposition
librement dans le cadre d’une licence libre.
Il existe cependant des exceptions qui facilitent l’utilisation commerciale de composants
libres. C’est par exemple le cas pour Apache et PHP, qui peuvent être redistribués gratuite-
ment en combinaison avec un programme fermé. En ce qui concerne le serveur de bases de
données MySQL, si un client désire vendre un programme basé sur ce serveur sans en four-
nir le code source, il doit se procurer une licence commerciale et payante de MySQL. Plus les
licences des composants libres sur lesquels vous vous basez sont différentes, plus la redistri-
bution est compliquée.
Linux Livre Page 20 Mardi, 23. septembre 2008 1:05 13

20 LINUX

Le respect des règles de la GPL peut parfois être porté devant la justice. Divers cas d’entreprises
ayant utilisé des bibliothèques libres sans mettre à disposition leur code sont documentés sur le
site web http://gpl-violations.org. En général, un accord peut être atteint sans procès.
Problème Un problème se pose pour certains composants matériels (en particulier, les cartes graphi-
des pilotes
ques d’ATI ou de NVIDIA) : leurs pilotes se composent d’un petit module de noyau (libre)
et de divers programmes ou bibliothèques dont le code source n’est pas disponible (proprié-
taire). Le module du noyau n’a pour but que de fournir une interface entre le noyau et le
pilote propriétaire.
Pour la plupart des utilisateurs de Linux, ces pilotes sont une bonne chose : ils sont gratuits
et permettent d’utiliser du matériel pour lequel il n’existe aucun pilote complet. La raison
est que les fabricants de matériel refusent de fournir les informations nécessaires au déve-
loppement de pilotes, puisqu’elles sont la propriété de l’entreprise, qui ne désire pas les
offrir à la concurrence.
La question est donc de savoir dans quelle mesure ces pilotes, en raison des liens étroits avec
le noyau (qui est lui soumis à la GPL), violent la GPL. Beaucoup de développeurs ne les accep-
tent qu’à contrecœur. Une redistribution directe de ces pilotes avec des produits GPL n’est pas
possible ; l’utilisateur doit donc généralement les télécharger et les installer lui-même. Il existe
même des efforts visant à modifier le noyau pour que ce type de pilotes ne fonctionne plus.
Reste à savoir si cette conception des règles de la GPL profite ou nuit à l’idée du logiciel
libre. Les optimistes pensent qu’interdire ces pilotes obligerait les entreprises à développer
des pilotes libres ou à fournir les spécifications nécessaires à ce développement. Les pessi-
mistes craignent que le matériel concerné ne soit plus facilement utilisable. L’issue de ce
conflit n’est pour l’instant pas en vue.

1.5 Histoire de Linux


1982 : GNU L’histoire de Linux pourrait débuter avec celle d’Unix, mais la place manque. Cette rétros-
pective commence donc avec la fondation du projet GNU par Richard Stallman. GNU signi-
fie GNU is Not Unix, GNU n’est pas Unix. Ce projet a développé dès 1982 des outils libres
pour les Unix propriétaires. Ces outils ont été utilisés comme version de remplacement des
composants originaux sur de nombreux systèmes, qu’il s’agisse du compilateur C GNU
GCC, de l’éditeur Emacs ou de divers utilitaires comme find et grep.
1989 : la GPL Il était temps, sept ans après le début du projet GNU, de créer la première version de la GPL.
Cette licence s’assure que le code reste libre.
1991 : La première version du noyau Linux (version 0.01) a été développée par Linus Torvalds à
le noyau Linux
version 0.01 Helsinki. Le code du programme a été distribué en septembre 1991 sur Internet. Très vite,
des programmeurs du monde entier se sont intéressés à cette idée et ont développé des
extensions : un meilleur système de gestion de fichiers, des pilotes pour divers composants
matériels, des programmes supplémentaires comme un émulateur DOS, etc. Tous ces com-
posants ont été mis à disposition gratuitement et le système complet a grandi à une vitesse
hallucinante. Le développement de ce nouveau système d’exploitation n’aurait pas été possible
sans la communication entre les programmeurs du monde entier via Internet.
Linux Livre Page 21 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 21

Dès que le noyau Linux a été suffisamment développé pour que le compilateur C GNU
fonctionne, la palette des outils GNU est soudain devenue disponible pour Linux. Un sys-
tème complet était né du noyau brut, ce qui faisait de Linux un environnement de dévelop-
pement bien plus attractif. Les facteurs qui ont fait de Linux un environnement de
développement plus attractif ont été le système de fichiers de Minix, des logiciels réseau
provenant des Unix BSD, le système XWindow du MIT et le portage de XFree86, ainsi que
de nombreux logiciels libres comme LaTeX.
Linus Torvalds n’est donc pas la seule personne à l’origine de Linux (même si, sans lui, il n’exis-
terait probablement pas sous sa forme actuelle). Ce système a été développé par de nombreuses
personnes engagées qui ont produit du code libre pendant des années, que ce soit sur leur
temps libre, dans le cadre de leurs études d’informatique ou d’un emploi dans des entreprises
comme IBM ou HP. Le noyau Linux représente à lui seul plusieurs millions de lignes de code !
1994 : les Les étudiants passionnés d’informatique pouvaient télécharger, compiler et installer eux-
premières
distributions mêmes Linux et ses composants. Son utilisation s’est néanmoins largement développée
grâce aux premières distributions, qui empaquetaient des logiciels sur des disquettes ou des
CD-ROM et fournissaient un programme d’installation. Quatre distributions de cette époque
subsistent encore : Debian, Red Hat, Slackware et SUSE.
1996 : le En 1996, le manchot Tux devient le logo de Linux. Ils sont depuis inséparables.
manchot
1998 : Avec la déferlante Internet, Linux s’impose largement sur les serveurs. Une certaine reconnais-
Microsoft
déclare la sance de Linux vient avec la phrase de Steve Ballmer : "Microsoft is worried about free
guerre à Linux software..." ("Microsoft est inquiet face au logiciel libre…"). Un an plus tard, Red Hat fait
une entrée spectaculaire en bourse.
2002 : Linux Après l’achat de StarOffice par Sun et l’ouverture de son code source, OpenOffice.org 1.0
pour le bureau
voit le jour en 2002. Il s’agit d’une suite bureautique complète, avec une interface conforta-
ble (KDE ou Gnome). Elle rend Linux utilisable dans les bureaux et auprès du grand public.
Linux sort alors du marché des informaticiens et des serveurs, une étape que de nombreux
Unix propriétaires n’ont pas franchie. En 2003, la ville de Munich décide de remplacer
Windows NT par Linux sur ses postes.

1.6 Brevets logiciels et autres sujets d’énervement


De nombreux signes montrent que Linux aura à l’avenir une diffusion et une importance
plus grande : le développement progresse sur tous les niveaux (noyau, programmes ser-
veur, applications) et de plus en plus d’entreprises et d’administrations reconnaissent les
avantages de Linux. Mais certaines embûches peuvent se présenter sur le chemin.

Brevets logiciels
Les brevets logiciels protègent, aux États-Unis comme dans de nombreux pays, les idées,
concepts et algorithmes de logiciels. Des brevets sont déposés pour tout ce qui est imaginable,
Linux Livre Page 22 Mardi, 23. septembre 2008 1:05 13

22 LINUX

y compris des éléments triviaux comme l’affichage d’une barre de progression ou la célèbre
commande en un clic (Amazon). Leur abus et l’absurdité des durées de protection en com-
paraison de la vitesse d’évolution de l’informatique contribuent à alimenter la résistance
contre les brevets logiciels. Ainsi, un programme dépassant quelques lignes de code, quel
qu’il soit, peut violer un brevet logiciel quelque part dans le monde.
Les grandes entreprises avec des portefeuilles de brevets importants visent principalement
à éviter des actions réciproques (une sorte d’équilibre de la terreur), mais la communauté
libre et certains développeurs se sentent menacés par les brevets logiciels. Ils les considèrent
comme nuisibles pour le progrès et la concurrence. Les brevets logiciels pourraient être une
arme puissante pour Microsoft contre Linux − Microsoft n’a cependant jusqu’ici entrepris
aucune action en ce sens et doit lui-même lutter contre de nombreux procès liés aux brevets.
La décision de l’Office européen des brevets contre l’introduction des brevets logiciels en
Europe à l’été 2005 a été l’une des rares lueurs d’espoir. Mais, comme Linux est également
employé en dehors de l’Europe, les brevets logiciels limitent le champ d’action de beaucoup
de distributions : nombre d’entre elles, par exemple, ne fournissent pas de bibliothèques
pour lire des MP3 par peur des procès, car des algorithmes sont protégés par des brevets.
Chaque utilisateur doit donc installer lui-même les bibliothèques ou programmes corres-
pondants. Ce qui n’est que gênant dans le cas des fichiers MP3 pourrait dans le cadre
d’autres fonctions mener à de lourdes limitations des distributions Linux.
Ensemble de Mais la situation n’est pas sans espoir. En particulier, quelques entreprises pro-Linux comme
brevets de la
communauté IBM disposent d’importants portefeuilles de brevets. Certaines entreprises Linux ont elles-
libre mêmes commencé à collecter des brevets, en partie "offerts" par des entreprises pour des
usages libres. La situation est absurde : un droit des brevets mal conçu oblige la commu-
nauté libre à créer des brevets pour pouvoir se protéger contre des éventuels procès. Vous
trouverez des détails sur les outils de la communauté à l’encontre des brevets aux adresses
suivantes : http://www.patent-commons.org/ ; http://www.openinventionnetwork.com/

Multimédia et DRM
Chiffrement Le marché du multimédia est un autre problème. Par exemple, vous ne pouvez pas lire
des DVD
actuellement vos DVD achetés en toute légalité sous Linux. La limitation est juridique et
non technique. La plupart des DVD sont protégés par un algorithme de chiffrage plutôt pri-
mitif. Cette protection pourrait être facilement levée, mais dans de nombreux pays, la loi
interdit la distribution de la bibliothèque nécessaire et la description de son installation.
Les nouveaux disques HD-DVD et Blue-Ray, déjà prêts pour le marché, sont mieux proté-
gés. La protection s’applique à toute la chaîne des composants matériels (carte graphique,
moniteur, etc.). Les DVD haute résolution ne sont donc pas non plus lisibles sous Linux.
DRM La situation n’est pas meilleure pour les données (audio, vidéo et texte) protégées par des
(Digital Rights
Management) DRM. Ces dernières englobent tout dispositif visant à réduire l’utilisation des données, par
ou gestion exemple à une période de temps ou à un ordinateur donné. Cela a pour effet de les limiter à
des droits
numériques certains matériels (par exemple, l’iPod) ou systèmes d’exploitation (Windows ou Mac OS).
Les opposants aux DRM déclinent ce sigle en Digital Restriction Management − gestion des
restrictions numériques.
Linux Livre Page 23 Mardi, 23. septembre 2008 1:05 13

QU’EST-CE QUE LINUX ? 23

Développer des DRM dans le cadre de logiciels libres n’est pas simple : si le code d’un pro-
gramme pour déchiffrer des données protégées par DRM est accessible, il peut être modifié
pour supprimer la restriction des DRM. Le développement de DRM libres n’en est donc
qu’à ses débuts. Rien ne permet de dire que ces programmes pourront un jour être utilisés.
À l’heure actuelle, l’utilisation de contenus protégés par DRM est difficile sous Linux. Si
vous ne voulez pas utiliser de logiciels illégaux pour supprimer les protections, vous devez
attendre des programmes propriétaires provenant des fournisseurs des DRM. Il n’existe
pour l’instant aucun programme de ce type sous Linux. Pour iTunes, la solution est d’utiliser
CrossOver et la version Windows d’iTunes sous Linux.

Procès SCO
Le procès SCO est un véritable roman. Le 7 mars 2003, l’entreprise SCO a intenté un procès
à IBM. Elle l’accusait, entre autres, d’avoir inclus dans le noyau Linux du code d’Unix sous
copyright de SCO. Selon elle, toute utilisation de Linux à partir du noyau 2.4 était donc illé-
gale. Pour régulariser la situation, elle a demandé aux utilisateurs de Linux de payer une
licence spéciale, au prix fort. En dehors de Microsoft, SCO a trouvé peu de clients, de sorte
que l’offre de licence n’existe plus sur son site web.
IBM a réagi par un contre-procès, et Red Hat s’est joint à la bataille en intentant également
un procès à SCO.
De nombreux commentateurs voient dans ce mouvement une guerre par procuration, dans
laquelle Microsoft serait derrière SCO. D’autres pensent que cette dernière ne cherchait qu’à
augmenter sa valeur boursière.
Les développeurs de la communauté, y compris Linus Torvalds, ont adopté le point de vue
selon lequel les considérations de SCO ne s’appliquaient pas. SCO avait elle-même vendu
une distribution Linux et accepté la GPL. D’une manière générale, le fait qu’elle n’indiquait
pas précisément les lignes de code sujettes à copyright a été largement critiqué. Cette criti-
que a été renforcée par la déclaration à l’été 2006 du juge chargé de l’affaire, selon lequel les
deux tiers des points du procès étaient considérés comme nuls et non avenus.
Linux Livre Page 24 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 25 Mardi, 23. septembre 2008 1:05 13

Installation
2
Ce chapitre est un aperçu de l’installation d’un système Linux sur un PC doté d’un proces-
seur compatible Intel Pentium. Il ne s’attache pas à une distribution spécifique, mais parle
des étapes importantes de l’installation, comme le partitionnement du disque. Pour plus
d’informations, reportez-vous à l’Annexe B qui offre des liens vers la documentation des
processus d’installation de nombreuses distributions.
L’installation de Linux s’est grandement simplifiée ces dernières années. Dans le cas idéal
(matériel standard et espace disponible sur le disque dur), 30 minutes devraient suffire pour
obtenir un système fonctionnel. L’installation se complique néanmoins lorsque, comme sou-
vent, l’ordinateur dispose déjà d’un système d’exploitation Windows, qui doit être préservé.
Des problèmes liés au matériel peuvent également surgir lorsque celui-ci est très vieux, très
récent, ou dans le cas de certains ordinateurs portables.

2.1 Prérequis
Pour pouvoir installer Linux, quelques conditions sont nécessaires :
• Vous avez besoin d’un ordinateur avec un processeur compatible Intel Pentium. Tous les
processeurs 32 et 64 bits d’Intel et AMD (depuis le Pentium et le K6) appartiennent à cette
catégorie. Il existe également des distributions pour d’autres architectures de processeurs,
comme l’IBM PowerPC.
• Il faut suffisamment de mémoire vive. Pour utiliser les gestionnaires de bureau KDE et
Gnome confortablement, 256 Mo sont un minimum. Disposer de plus de mémoire est
évidemment un avantage.
• Une partition libre avec assez de place sur votre disque dur est également nécessaire.
La quantité d’espace disponible dépend de la distribution et des programmes à installer.
À l’heure actuelle, 5 à 8 Go sont une bonne valeur indicative.
• Votre matériel doit être reconnu et pris en charge par Linux. C’est aujourd’hui le cas de
la majorité du matériel standard. Les cartes graphiques les plus récentes, certaines car-
tes Wi-Fi, ainsi que certains ordinateurs portables peuvent poser problème. La plupart
des imprimantes GDI et des Winmodems ne sont pas non plus reconnus (voir section
1.1 pour des liens à propos du matériel).
• Certains programmes XWindow utilisent le bouton du milieu de la souris. Une souris à
trois boutons ou à molette est donc pratique. Celles à deux boutons peuvent émuler le
troisième en appuyant sur les deux boutons simultanément, ce qui est à la longue pénible.

Comme nous l’avons vu au chapitre précédent, il existe des distributions minimales qui fonctionnent avec des
besoins matériels plus réduits. Dans ce chapitre, nous considérons cependant que vous installez une distri-
bution "normale", comme Fedora, Debian, Kubuntu, Mandriva, Red Hat, SUSE ou Ubuntu.
Linux Livre Page 26 Mardi, 23. septembre 2008 1:05 13

26 LINUX

Si vous utilisez des programmes de virtualisation comme VirtualBox ou VMware, vous pouvez installer Linux
dans un environnement virtuel contenu dans Windows. Cela facilite l’installation, mais diminue les fonc-
tionnalités (accès limité au matériel, vitesse d’exécution réduite, etc.).

32 ou 64 bits ?
Avantages et De plus en plus d’ordinateurs portables ou de bureau contiennent un processeur 64 bits. La
inconvénients
principale différence avec les processeurs 32 bits est que ces derniers ne peuvent adresser
directement que 2 Go de mémoire. C’est donc un avantage lorsque vous avez plus de 2 Go
de RAM et que vous désirez faire fonctionner des programmes ayant de gros besoins en
mémoire et si vous utilisez une distribution 64 bits. En pratique, ces conditions sont
réunies sur les ordinateurs qui fonctionnent en tant que serveur réseau ou serveur de base
de données, ou faisant fonctionner plusieurs systèmes Linux en parallèle grâce à la virtua-
lisation. Pour une utilisation bureautique standard, l’architecture 64 bits offre peu d’avan-
tages et aucune amélioration sensible des performances (bien que l’on prétende souvent
l’inverse).
L’architecture 64 bits présente également certains inconvénients :
• La quantité de RAM et la place nécessaire sur le disque dur sont plus importantes.
• Certains programmes ne fonctionnent qu’en mode 32 bits. Pour les faire tourner sur un
système 64 bits, il faut installer d’innombrables bibliothèques en double (en ver-
sion 32 bits et 64 bits). Les distributions s’occupent du fonctionnement interne, mais la
solution n’est pas très élégante.
• Le troisième problème disparaît heureusement avec la montée en popularité des archi-
tectures 64 bits : pour certains composants matériels, il n’existe pas de pilote libre. Pour
utiliser ces composants, il faut installer les pilotes propriétaires du fabricant. Si celui-ci
ne fournit que des pilotes 32 bits, ils ne fonctionneront pas avec un système 64 bits. Vous
aurez alors le choix de ne pas faire fonctionner cet élément ou de réinstaller une distri-
bution 32 bits.
Distributions Les avantages des architectures 64 bits n’apparaissent, pour des raisons techniques, que
64 bits
lorsque toute la distribution, ou au moins la majorité des programmes et des bibliothèques
est en 64 bits. Une distribution universelle 32/64 bits est donc impossible. Il existe, en revan-
che, pour la plupart des distributions deux versions : une version 32 bits (souvent nommée
i386, i586, i686, selon les familles de processeurs Intel) et une version 64 bits (x86_64 ou
AMD64). SUSE fournit les deux versions sur un seul DVD double-couche, mais il s’agit tout
de même de deux versions différentes de la même distribution.
Les processeurs 64 bits courants sont rétrocompatibles avec les processeurs 32 bits. Il est
donc possible d’installer au choix sur une architecture 64 bits une distribution 32 ou 64 bits.
Cette décision est définitive : changer de modèle de distribution ne peut ensuite se faire
qu’en réinstallant le système.
Les ordinateurs et systèmes d’exploitation 64 bits seront probablement la norme dans quel-
ques années. Il sera alors rare de se demander s’il faut installer une version 32 ou 64 bits.
À l’heure actuelle, l’argumentation se résume ainsi : une distribution 64 bits ne présente
pour un utilisateur normal ni avantage, ni inconvénient majeur mais, comme 64 bits sonne
mieux que 32 bits, la version 64 bits est souvent installée.
Linux Livre Page 27 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 27

2.2 Démarrage de l’installation de Linux


Pour lancer l’installation, placez le CD ou le DVD de Linux dans votre lecteur et redémarrez
votre machine. À la place du démarrage de votre système déjà installé, le programme d’ins-
tallation devrait démarrer depuis le CD. Si ce n’est pas le cas, il est possible que le BIOS de
votre ordinateur ne permette pas l’amorçage depuis le CD. Pour vérifier cela, vous devez
entrer dans le BIOS de votre ordinateur, grâce à une touche spéciale juste après le démarrage
de l’ordinateur (souvent Suppr ou F1). Les éventuelles modifications dépendent du modèle
de votre carte mère et ne sont donc pas décrites ici (reportez-vous au manuel de votre carte
mère).
Presque toutes les distributions lancent un programme d’installation graphique. Pour que
celui-ci puisse démarrer, une carte graphique compatible VGA et suffisamment de RAM
sont nécessaires. Ces conditions sont remplies sur les ordinateurs récents.
Selon le matériel, il se peut que la carte graphique ne soit pas reconnue dès le départ ou que
le moniteur devienne noir après le démarrage du programme d’installation. Ce problème
survient surtout sur les écrans plats connectés à la carte graphique via un câble DVI, si la
carte passe en mode analogique. Dans ce cas, de nombreuses distributions peuvent égale-
ment être installées en mode texte. Le passage d’une installation graphique à une installation
en mode texte dépend de la distribution.
Premiers Sur certaines distributions, vous pouvez choisir des paramètres, comme la langue ou la dis-
paramètres
position du clavier, avant même le démarrage du système (voir Figure 2.1). D’autres distri-
butions vous le proposent quelques secondes après le démarrage.

Figure 2.1
Choix de la langue au
début d’une installation
de SUSE.
Linux Livre Page 28 Mardi, 23. septembre 2008 1:05 13

28 LINUX

Choix Certains programmes de configuration utilisent le nombre de touches comme signe distinctif
du clavier
des claviers. Voici quelques valeurs utiles pour déterminer le vôtre :
Clavier anglais sans touche Windows 101 touches
Clavier international sans touche Windows 102 touches
Clavier anglais avec touches Windows 104 touches
Clavier international avec touches Windows 105 touches
Vous pouvez aussi activer ou désactiver les touches mortes. Il s’agit, par exemple, des tou-
ches ` ou ~. Cette option n’active pas les touches en soi, mais la composition des lettres avec
ces touches.
Vous pouvez ainsi taper la lettre ? sous la forme ~ N. Pour saisir les signes directement (par
exemple ~), vous devez taper la touche correspondante suivie d’un espace.
La désactivation des touches mortes complique la saisie des caractères étrangers, mais
s’avère sensée si vous ne tapez pas de caractères spéciaux dans d’autres langues et correspond
aux usages sous Windows.
Configuration En général, les souris et les pointeurs de portables sont automatiquement reconnus. Si votre
de la souris
souris ne possède pas de molette, cochez l’option Emulate 3 Buttons (émulation du troi-
sième bouton). Ainsi, vous pourrez simuler le clic sur le troisième bouton en cliquant simul-
tanément sur les deux autres.
Messages La plupart des distributions affichent des messages du noyau lors du démarrage, mais vous
du noyau
pouvez les ignorer. Ils ne sont utiles que si le programme d’installation plante au démar-
rage.
Fonctionneme Les programmes d’installation fonctionnent eux-mêmes sous Linux. Par conséquent, un
nt interne
noyau minimal est chargé dès l’amorçage du support d’installation, ainsi que certains
modules matériels (disques durs, carte réseau, lecteur CD ou DVD). Si le programme
n’arrive pas à charger les bons modules, vous devez fournir les informations correspondantes.

2.3 Bases du partitionnement du disque


Après le démarrage du programme d’installation et divers paramétrages élémentaires, le
partitionnement du disque dur est la première étape importante de l’installation. De nom-
breux programmes d’installation proposent de le faire automatiquement, mais attention : le
résultat correspondra rarement à vos souhaits.
Qu’est-ce Les partitions sont des sections sur le disque dur. Sous Windows, elles sont représentées par
qu’une
partition ? une lettre (par exemple, C: ou D:) et se comportent comme des disques durs en soi.
Dans le cas le plus simple, il n’existe qu’une seule partition pour tout le disque. Lorsque
vous achetez un PC avec le système Windows préinstallé, c’est souvent le cas.
Pourquoi créer Vous avez besoin de plusieurs partitions dès lors que vous désirez faire fonctionner plu-
plus de
partitions ? sieurs systèmes d’exploitation sur votre ordinateur. Cela est dû au fait que les différents sys-
tèmes d’exploitation ont en général des systèmes de fichiers différents. Même si plusieurs
systèmes peuvent utiliser le même système de fichiers, il est souvent indispensable de les
Linux Livre Page 29 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 29

installer dans des partitions différentes, afin d’éviter les doublons et les conflits dans les
noms de répertoires et de fichiers.
De plus, sous Linux, il est souvent utile de créer plusieurs partitions : par exemple, une pour
le système d’exploitation, une pour les données des utilisateurs et une autre appelée partition
d’échanges (équivalent au fichier d’échange sous Windows).
Types Il en existe trois types : les partitions primaires, les partitions étendues et les partitions
de partitions
logiques.
Un disque dur ne peut contenir que quatre partitions primaires. On peut cependant définir
l’une d’entre elles comme une partition étendue. Dans cette dernière, on peut créer plu-
sieurs partitions logiques.
Tout cela provient de la limite historique de quatre partitions primaires. Notez que certains
outils de partitionnement ne font pas la différence au niveau de l’interface utilisateur entre
les différents types de partitions et s’occupent eux-mêmes de leur répartition en interne.
Une partition étendue n’est qu’un conteneur pour des partitions logiques. On ne peut enre-
gistrer des données que sur les partitions primaires ou logiques.
Le terme "type de partition" est également utilisé dans un autre contexte. Chaque partition
se voit associer un nombre qui indique le système pour lequel elle est créée (par exemple,
Windows, Linux, Novell Netware, BSD, etc.) ou le rôle qui lui est attribué.
Nombre Le nombre de partitions dépend du type de disque dur (IDE, SATA, SCSI) et de la version de
maximal
de partitions Linux. Ce dernier peut en effet créer au maximum 16 partitions sur un disque, dont 12 par-
titions logiques. Les disques IDE sont une exception : avec le pilote correspondant sous
Linux, on peut créer 64 partitions (dont 60 logiques). Le pilote IDE est cependant de plus en
plus rarement utilisé au profit du pilote SCSI.
Aide Chaque système d’exploitation a son propre outil pour modifier la géométrie d’un disque.
au partition-
nement Sous Windows 9x/ME, le programme DOS FDISK est encore utilisé. Depuis Windows NT,
il existe un outil confortable avec une interface utilisateur graphique. L’accès à cet outil
dépend de la version de Windows. Sous Windows Vista, il faut lancer Panneau de confi-
guration, Système et maintenance, Outils d’administration, Gestion de l’ordinateur, Gestion
des disques. Sous Linux, il existe plusieurs programmes d’aide au partitionnement. Si
ceux-ci posent problème, les utilisateurs avancés peuvent utiliser les commandes fdisk
ou parted.

Il est très difficile de modifier rétrospectivement le partitionnement d’un disque. En général, le contenu d’une
partition est perdu lorsque sa taille est modifiée. Le déplacement de partitions n’est pas non plus prévu. Il
existe des programmes spéciaux, commerciaux ou gratuits, qui permettent d’effectuer cette tâche, mais avec
beaucoup de limitations. Il est donc conseillé de bien réfléchir au schéma de partitions dès le départ.
Les utilisateurs avancés de Linux savent dépasser ces limitations en utilisant le système LVM. Il s’agit d’une
couche intermédiaire entre les partitions et les systèmes de fichiers. Comme l’administration de LVM est rela-
tivement compliquée, cette option n’est pas proposée aux débutants.
Linux Livre Page 30 Mardi, 23. septembre 2008 1:05 13

30 LINUX

Systèmes de fichiers
Le partitionnement permet de réserver de la place sur un disque. Avant de pouvoir enre-
gistrer des données sur une partition, il faut créer un système de fichiers. Celui-ci contient
les fichiers et les informations de gestion associées. Windows et Linux proposent différents
systèmes :
• Sous Windows, on peut utiliser le système VFAT (Windows 9x et Windows ME) ou
NTFS, plus moderne (Windows NT/2000/XP/Vista).
• Sous Linux, le système ext3 est dominant. Les alternatives actuelles sont xfs et reiserfs
(voir section 23.6 pour plus d’informations).
La création d’un système de fichiers sur une partition s’appelle le formatage. Sous Windows,
on peut effectuer cette opération via un menu contextuel dans l’Explorateur ou avec le pro-
gramme FORMAT. Sous Linux, le programme d’installation s’occupe du formatage et
appelle en arrière-plan des commandes telles que mkfs.ext3 ou mkfs.xfs. Formater une
partition supprime toutes les données qui s’y trouvent.

Le partitionnement et le formatage de disques effacent, en général, les partitions concernées. Il existe quel-
ques exceptions et des outils spéciaux pour redimensionner les partitions sans perte.

Nom des partitions


Sous Windows Sous Windows, les partitions utilisables par le système sont indiquées par les lettres des lec-
teurs. A: et B: sont réservées aux lecteurs de disquettes. Les lettres suivantes désignent les
partitions primaires et logiques du disque (la partition étendue n’a pas de lettre et n’est donc
pas accessible).
Les partitions des systèmes de fichiers étrangers (y compris les partitions Linux) n’ont pas
de lettre de lecteur et sont inaccessibles à la plupart des programmes. Les partitions ne sont
montrées que dans les programmes de partitionnement.
Sous Linux Sous Linux, on accède aux disques et aux partitions via les fichiers de périphériques. Il existe
deux schémas de nommage de ces fichiers. Le schéma utilisé dépend de deux facteurs : le
système de bus des disques durs (IDE, SATA ou SCSI) et, pour les disques IDE, du pilote de
disques durs. Nous allons décrire ci-après ces deux schémas (voir Chapitre 25 pour plus
d’informations).
Schéma sd-* Le schéma sd-* est le schéma standard pour tous les disques durs SATA, SCSI, USB et
Firewire, ainsi que pour les disques IDE utilisant le pilote de disques libata (ce qui dépend
de la distribution). Les disques sont alors accessibles par les noms /dev/sda, /dev/sdb, /dev/
sdc, etc.
Pour accéder à une partition et non à l’intégralité du disque, on ajoute le numéro de la par-
tition au nom du disque. Les chiffres 1 à 4 désignent les partitions primaires et étendues. Les
partitions logiques commencent à 5, même lorsqu’il y a moins de quatre partitions primaires et
étendues.
Linux Livre Page 31 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 31
Schéma hd-* Le schéma hd-* n’est utilisé que pour les disques durs IDE, lorsque Linux utilise l’ancien
pilote IDE. Le câblage physique des disques décide de leur nom. /dev/hda désigne le pre-
mier périphérique (maître) du premier canal IDE. /dev/hdb désigne le second périphérique
(esclave) du premier canal IDE. /dev/hdc et /dev/hdd désignent respectivement le maître et
l’esclave du second canal IDE. La numérotation des partitions est identique à celle du
schéma sd-*.
Cette désignation très technique des partitions ne vous servira normalement que lors de
l’installation et de l’administration. Au quotidien, les partitions actives sont disponibles
comme des répertoires. À l’inverse de Windows, il n’y a pas de lettre de lecteur.

2.4 Partitionnement du disque dur


La création de nouvelles partitions est l’une des étapes les plus importantes de l’installation
de Linux. Tous les programmes d’installation actuels contiennent un assistant de partition-
nement simple à utiliser. La Figure 2.2 montre un exemple d’éditeur de partitions, celui de
Fedora. Les détails de l’utilisation de cet éditeur dépendent de la distribution.

Figure 2.2
Éditeur de partitions
de Fedora.

Se pose alors une question fondamentale : combien de partitions devez-vous créer, et de


quelle taille ? Quels effets cela a-t-il sur la vitesse d’exécution, la maintenance et une éven-
tuelle réinstallation ?
Linux Livre Page 32 Mardi, 23. septembre 2008 1:05 13

32 LINUX

Réduction de la partition Windows


On se trouve souvent dans la situation d’un système Windows déjà installé sur une seule
partition qui remplit tout le disque. Même si cette dernière contient des douzaines de
gigaoctets libres, cela ne change rien : Linux a besoin pour son installation d’une ou de plu-
sieurs partitions. Et avant de les créer, vous devez réduire la partition Windows, si possible
sans perdre de données.
La solution la plus radicale et la plus simple consiste à la supprimer. Mais la plupart des
débutants sous Linux désirent garder Windows comme système d’exploitation alternatif,
que ce soit pour jouer ou lancer des programmes qui n’existent pas sous Linux. Nous suppo-
serons donc que Windows est déjà installé et qu’il sera utilisé de nouveau après l’installation de
Linux.
Redimen- Pour la plupart des distributions (Debian, Mandriva, SUSE, Ubuntu), le programme d’ins-
sionnement
pendant tallation est capable de réduire une partition Windows trop grosse et le système de fichiers
l’installation qui s’y trouve. Vous pouvez alors modifier la taille de la partition dans l’outil de partition-
nement ou appeler la fonction de redimensionnement de la partition via un menu. Cette
opération fonctionne pour les systèmes de fichiers VFAT et NTFS.

Début 2007, le redimensionnement des partitions Windows Vista avec des programmes Linux posait
encore d’énormes problèmes. Lorsque vous lirez ce livre, toutes les distributions actuelles devraient être
compatibles avec Vista. Cependant, soyez prudent lorsque vous installez des distributions plus anciennes.
Il est plus sûr de redimensionner la partition avant l’installation, grâce aux outils fournis par Windows Vista.

Redimen- Si ce redimensionnement est impossible ou ne fonctionne pas, vous pouvez effectuer cette
sionnement
avant opération avec d’autres outils :
l’installation
• Directement sous Windows. Windows Vista propose un outil de réduction des partitions.
Lancez Panneau de configuration > Outils d’administration > Gestion de l’ordinateur >
Gestion des disques. Cliquez du bouton droit sur la partition et lancez Réduire le volume.
Les versions précédentes de Windows ne permettent pas de redimensionnement. Vous
pouvez supprimer et recréer la partition, mais cela en supprime tout le contenu.
• Avec un système Linux "live". Les systèmes live, tels que Knoppix, GParted ou Sys-
temRescueCD, contiennent différents programmes pour réduire les partitions Windows.
L’utilisation de ces outils est cependant complexe. L’outil le plus convivial est gparted
(voir Chapitre 23).
• Avec des programmes commerciaux. Vous pouvez aussi utiliser des outils com-
merciaux, plus confortables mais coûteux. Le plus connu est PartitionMagic de
Norton/Symantec : http://www.symantec.com/norton/products/overview.jsp?pcid
=sp&pvid=pm80.
Réinstaller Si votre ordinateur ne possède aucun système d’exploitation et si vous désirez installer Win-
Linux et
Windows dows et Linux, commencez par Windows. Son installation propose également de partition-
ner le disque dur. Dans ce cas, indiquez uniquement l’espace dont vous avez besoin (par
exemple 50 Go), et non l’ensemble du disque. Dans le doute, choisissez une valeur plus
petite : il est plus simple d’agrandir une partition que de la réduire.
Linux Livre Page 33 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 33
Achat d’un Certains revendeurs, chez qui vous pouvez acheter un ordinateur sans Windows, peuvent
nouvel
ordinateur également partitionner le disque. Cela n’est guère possible si vous achetez votre machine
dans une grande chaîne − Windows sera alors préinstallé.

Nombre et taille des partitions


On me pose souvent la question suivante : si on considère un disque de n Go, quel est le
meilleur partitionnement ? Il n’existe malheureusement pas de réponse universelle. Cette
section propose cependant quelques règles de base sur le nombre et la taille des partitions.
Il est probable que le concept même de partitions multiples vous étonne. Puisqu’une seule
partition suffit pour Windows, il devrait en être de même pour Linux. Ce dernier peut fonc-
tionner sur une seule partition, mais c’est loin d’être optimal. Il est plus courant de partitionner
le disque, comme nous allons le décrire.
Partition La partition système est la seule dont vous ayez vraiment besoin. Elle contient le système
système
Linux et tous ses programmes. Cette partition s’appelle toujours /. Il s’agit du point du sys-
tème de fichiers auquel est liée la partition (point de montage). / désigne aussi la racine,
c’est-à-dire le début de l’arborescence de fichiers. C’est pourquoi la partition système est
parfois aussi appelée partition racine ou partition root.
La taille raisonnable pour installer et utiliser une distribution complète varie entre cinq et
dix gigaoctets. Il faut bien sûr ajouter l’espace nécessaire à vos propres données (vous pouvez
les enregistrer dans une partition séparée).
Vous pouvez installer plusieurs distributions sur un même ordinateur (comme sur mon
ordinateur de test). Pour cela, vous aurez besoin pour chacune d’elles d’une partition sys-
tème différente. Les autres partitions peuvent être partagées entre les systèmes. Lorsque le
système est bien configuré, vous pouvez choisir au démarrage entre Windows et toutes les
distributions Linux installées.
Partition Selon les cas, il peut être conseillé de créer une partition d’amorçage nommée /boot. Elle
d’amorçage
contient les données nécessaires à la première phase du démarrage de l’ordinateur. Il s’agit
en particulier du fichier du noyau, vmlinuz*, du fichier de disque virtuel, initrd*, et des
petits fichiers nécessaires au gestionnaire d’amorçage. La partition /boot ne contient donc
que quelques mégaoctets de données.
La partition d’amorçage peut régler certains problèmes de démarrage. Vous devez envisager
de l’utiliser dans les cas suivants :
• Le BIOS de votre carte mère date d’avant 1998. Vous rencontrerez alors probablement la
limite des 1 024 cylindres. Cela signifie que les données nécessaires à l’amorçage de
l’ordinateur doivent se trouver dans les 1 024 premiers cylindres du disque dur, soit en
général les 7,9 premiers gigaoctets. Pour satisfaire cette limite, la partition d’amorçage
donc être placée avant les autres partitions. L’ordre des partitions suivantes n’a pas
d’importance.
• Vous utilisez pour la partition système un système de fichiers particulier ou chiffré, LVM
ou RAID. Dans ce cas, le chargeur d’amorçage ne peut pas lire les données de la partition
Linux Livre Page 34 Mardi, 23. septembre 2008 1:05 13

34 LINUX

système. Les données utilisées par le processus d’amorçage doivent être enregistrées sur
une partition avec un système de fichiers standard, typiquement ext2 ou ext3.
Dans le doute, la création d’une partition d’amorçage ne peut pas nuire. Toutefois, si vous
envisagez d’installer plusieurs distributions en parallèle sur votre disque, la séparation des
différentes partitions système et partitions d’amorçage associées crée une fragmentation
souvent peu claire du disque dur.
Partition Une partition de données permet de séparer les données système de vos propres données.
de données
Cela présente un avantage important : vous pourrez par la suite réinstaller une autre distri-
bution ou réinstaller votre système dans la partition système sans mettre en danger la partition
de données séparée.
On utilise généralement /home comme point de montage pour cette partition de données. Je
ne peux pas conseiller de taille pour cette partition, car elle dépend largement de l’utilisa-
tion de votre système Linux.
Partitions On peut encore diviser le disque en partitions supplémentaires. Si vous utilisez Linux en
supplémen-
taires tant que serveur réseau ou serveur de bases de données, vous pouvez modifier les partitions
du système pour séparer les données correspondantes.
Tant qu’il existe de l’espace non partitionné sur votre disque, augmenter le nombre et la
taille des partitions d’un système existant ne pose aucun problème. Si vous ne savez pas
comment répartir votre espace, vous pouvez toujours laisser une partie du disque vide.
Partition La partition d’échanges ou de swap est le pendant du fichier d’échanges sous Windows.
d’échanges
Lorsque Linux n’a pas assez de mémoire, il place dans cette partition le contenu de la RAM
qui n’est pas utilisée à cet instant. Utiliser une partition complète (et non un fichier comme
sous Windows) améliore les performances en termes de rapidité d’exécution. Linux peut
être configuré pour utiliser un fichier d’échanges au lieu d’une partition, mais ce fonction-
nement n’est ni courant, ni rapide.
À l’inverse des autres partitions, la partition d’échanges n’a pas de nom (pas de point de
montage). Elle est en effet utilisée directement et non via un système de fichiers.
Si vous avez beaucoup de RAM, il peut être tentant de se passer d’une partition d’échanges,
mais ce n’est pas conseillé. Lorsque Linux ne trouve plus de RAM, des processus en cours
d’exécution (programmes) doivent être arrêtés, sans que l’on puisse prévoir lesquels, ce qui
peut avoir des conséquences imprévues (voire provoquer un plantage). S’il existe une parti-
tion d’échanges, Linux ralentira beaucoup en raison du manque de mémoire, ce qui est cer-
tes désagréable, mais vous laissera une chance de réagir et de régler le problème en
terminant le programme fautif vous-même. La partition d’échanges ne sert donc pas tant de
réserve de mémoire que d’avertissement d’urgence.
La bonne taille d’une partition d’échanges se situe entre une et deux fois la taille de votre
mémoire vive − si vous avez beaucoup de RAM, une taille équivalente suffit. Si vous utilisez
la fonction Suspend to Disk de l’ordinateur, cette partition doit avoir au moins la taille de
votre RAM.
Sur les systèmes 32 bits, sa taille est limitée à 2 Go. Si vous avez besoin de plus d’espace,
vous devez créer plusieurs partitions d’échanges. Cela est cependant rarement utile : si vos
applications nécessitent autant d’espace, Linux passe sans cesse les données entre les parti-
tions d’échanges et la RAM, et n’est en pratique plus utilisable. Dans ce cas, il ne faut pas
ajouter de l’espace, mais de la RAM.
Linux Livre Page 35 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 35
Résumé
Taille des partitions pour un usage privé
partition d’échanges (une à deux fois la taille de la RAM)
/ partition système (5 à 10 Go ; prévoir plus pour les développeurs)
/home partition de données (à adapter selon vos besoins)

Quel système de fichiers utiliser ?


Linux prend en charge de nombreux systèmes de fichiers, parmi lesquels ext2, ext3, ext4, rei-
serfs, reiser4 et xfs (voir Chapitre 23). Tous ces systèmes à l’exception d’ext2 sont journalisés,
ce qui permet de sécuriser les données dans le cas d’un arrêt inopiné du système (par
exemple, lors d’un orage).
ext2, ext3, Toutes les distributions ne fournissent pas tous les systèmes de fichiers pendant l’installa-
ext4
tion. Je conseille donc aux débutants d’utiliser si possible ext3. Ce système est mûr, stable et
presque considéré comme le standard sous Linux. Même Novell et SUSE, qui ont longtemps
préféré reiserfs, favorisent maintenant ext3 comme système par défaut.
À l’été 2006, le système de fichiers ext4 est né ; il est censé remplacer ext3. Mais jusqu’à ce
qu’il soit considéré comme suffisamment abouti, mieux vaut l’éviter.
Bien qu’ancien, ext2 a encore une raison d’être. Il est compatible avec ext3, mais n’a pas de
fonction de journalisation. Il est donc plus rapide lors des opérations d’écriture.
LVM, RAID Certaines distributions permettent de mettre en place un système LVM ou RAID lors de
l’installation. LVM (Logical Volume Manager ou gestionnaire de volumes logiques) permet de
créer des partitions virtuelles et de les redimensionner alors que l’ordinateur est en service.
RAID (Redundant Array of Inexpensive Disks ou ensemble redondant de disques durs bon
marché) permet de lier une partition à plusieurs disques pour obtenir un système plus
rapide ou plus sûr.
LVM et RAID ont l’inconvénient de rendre l’administration plus difficile. Ils ne sont pas
conseillés aux utilisateurs inexpérimentés. Notez que certaines distributions, comme Red
Hat ou Fedora, font de LVM un standard. Si ce n’est pas ce que vous voulez, vous devrez
partitionner le disque manuellement.
Partition La partition d’échanges n’a pas de vrai système de fichiers. Elle doit être formatée avec l’outil
d’échanges
mkswap avant sa première utilisation. Toutes les distributions Linux s’en chargent pendant
l’installation.
Résumé
Systèmes de fichiers pour un usage privé
[swap] pas de système de fichiers
/boot ext2
/ ext3
/home ext3
Linux Livre Page 36 Mardi, 23. septembre 2008 1:05 13

36 LINUX

2.5 Choix des paquetages


Vous pouvez, dans de nombreuses distributions, choisir lors de l’installation les compo-
sants, programmes et paquetages à installer. Il est rarement justifié de tout installer, pour les
raisons suivantes :
• Le nombre important de logiciels dépasse souvent les utilisateurs inexpérimentés. Il est
plus clair de procéder à une installation de base et d’ajouter au fur et à mesure les
programmes nécessaires, ce qui se fait sans problème.
• Il existe des programmes incompatibles entre eux. Par exemple, vous ne pouvez pas
avoir deux serveurs de courrier électronique sur une seule machine ; vous devez en
choisir un.
• Si vous utilisez l’ordinateur en tant que serveur, les risques de sécurité augmentent avec
le nombre de services ouverts sur la machine. Les paquetages de fonctions réseau que
vous n’utilisez pas ne doivent pas être installés.
Les paquetages sont souvent choisis grâce à des groupes préconfigurés (voir Figure 2.3).
Dans le cas de certaines distributions, comme Ubuntu, vous n’avez aucune influence sur les
paquets installés. Seul le système de base sera installé ; les programmes suivants le seront
lorsque le besoin s’en fera sentir.

Figure 2.3
Choix des paquetages
lors d’une installation
de Fedora.

Les versions actuelles de Red Hat et de Fedora n’utilisent le CD/DVD comme source que pendant l’installa-
tion. Si vous avez besoin ensuite d’un autre programme, vous devez le télécharger depuis Internet. Cela fonc-
tionne sans problème et garantit que vous disposez de la version la plus récente. En revanche, une bonne
connexion à Internet est nécessaire. Si ce n’est pas le cas, il vaut mieux installer dès le début tous les paque-
tages dont vous êtes susceptibles d’avoir besoin.
Linux Livre Page 37 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 37

Recommandations pour l’installation


Gnome Certaines distributions proposent de choisir entre les systèmes de bureau KDE et Gnome −
ou KDE
vous pouvez aussi installer les deux systèmes en parallèle. Il s’agit de deux interfaces utili-
sateur différentes pour Linux. En résumé, Gnome est plus simple à utiliser, mais KDE pro-
pose davantage de fonctionnalités et de possibilités de configuration. Si vous installez les
deux, vous aurez une souplesse maximale et vous pourrez choisir lors de chaque connexion
de lancer KDE ou Gnome. Nous décrirons les deux environnements aux Chapitres 4 et 5.
Services Pour une utilisation bureautique de Linux, vous n’avez pas besoin de serveur (que ce soit
réseau
un serveur web, NFS ou de courrier électronique). Il existe cependant trois exceptions :
• Pour pouvoir utiliser votre imprimante, vous avez besoin d’un serveur d’impression, en
général CUPS. Ce dernier est généralement installé par défaut.
• Pour accéder à votre ordinateur depuis un poste distant, vous devez installer le serveur
SSH sshd.
• Si vous désirez partager des dossiers avec des ordinateurs sous Windows, vous devez
installer Samba.
Outils de Même si les utilisateurs débutants de Linux ont rarement l’ambition de recompiler leur
dévelop-
pement et noyau, je conseille généralement l’installation des outils de développement élémentaires,
en-têtes du tels que gcc et make, ainsi que des fichiers d’en-tête du noyau (souvent installés automati-
noyau
quement).
Vous pourrez alors compiler des modules du noyau. Cela peut être utile pour installer les
pilotes de votre carte graphique ou utiliser VMware ou tout autre logiciel de virtualisation −
il n’est cependant pas nécessaire d’installer tout le code du noyau.

2.6 Configuration de base


Cette section pose quelques bases pour la configuration de l’installation, qui peut varier
selon la distribution. En effet, certaines distributions réduisent la configuration au mini-
mum. Cette dernière se fait alors dans le système déjà lancé. De manière générale, tous les
paramètres de l’installation peuvent être modifiés par la suite. Vous pouvez donc reporter la
configuration des éléments facultatifs à plus tard.
Mot de passe Sous Linux, l’utilisateur root est responsable de l’administrateur du système. Il possède des
root
droits illimités au système, ce qui implique un potentiel de dommages non négligeable.
Il est donc vivement conseillé de protéger l’accès root par un mot de passe.
Certaines distributions, dont Ubuntu, désactivent complètement le compte root. Il n’est
donc pas nécessaire de le protéger par un mot de passe. Les tâches administratives sont
effectuées par des utilisateurs prédéterminés, qui doivent chacun fournir leur propre mot de
passe.
Gestion des Il est peu courant, sous Linux, de travailler avec l’utilisateur root en dehors des tâches
utilisateurs
administratives. Pour écrire une lettre, compiler un programme ou surfer sur Internet, on se
connecte en tant qu’utilisateur standard. Pendant l’installation, vous pouvez créer un ou
Linux Livre Page 38 Mardi, 23. septembre 2008 1:05 13

38 LINUX

plusieurs utilisateurs, dotés chacun d’un mot de passe, et par la suite, en créer de nouveaux,
modifier les mots de passe, etc.
Les noms des utilisateurs doivent se composer d’un maximum de huit lettres ou chiffres.
Évitez les caractères accentués ou spéciaux − cela ne fonctionne pas toujours. Il est courant
d’utiliser uniquement des lettres minuscules, mais ce n’est pas une obligation.
Les mots de passe doivent contenir entre six et huit signes. Ils sont idéalement composés de
lettres majuscules, minuscules, chiffres et caractères spéciaux, comme +-*/_.,;:()[]. Évitez
les caractères accentués et ceux qui ne sont pas définis dans la table de caractères ASCII.

Dans de nombreuses distributions, il n’est pas possible de tester le clavier avant de taper les différents mots
de passe, en particulier root. Si vous n’arrivez pas à vous connecter à votre ordinateur après l’installation,
il peut s’agir d’un problème de clavier, par exemple toujours en QWERTY au moment de la saisie du mot de
passe.

Configuration Pour connecter votre ordinateur à un réseau local, il faut établir une configuration réseau.
réseau
Celle-ci peut être automatique s’il existe un serveur DHCP (serveur qui envoie aux ordina-
teurs du réseau leur configuration réseau). Dans ce cas, elle se réduit souvent à un clic sur la
bonne case et éventuellement à la saisie d’un nom d’ordinateur.
Lorsque vous configurez votre réseau manuellement, on vous demande les paramètres
suivants (pour plus d’informations, voir Chapitre 26) :
• Nom d’hôte et de domaine. Ils correspondent sous Windows au nom de l’ordinateur et
du groupe de travail. Dans un réseau local, le nom de domaine est généralement fourni.
Celui de l’hôte doit être unique. N’utilisez pas localhost, qui a une signification parti-
culière.
• Adresse IP de l’ordinateur. Il s’agit d’une chaîne de caractères sous la forme a.b.c.d (par
exemple 192.168.27.35) qui identifie l’ordinateur sur le réseau local. Les deux ou trois
premiers chiffres de l’adresse sont généralement fixés à l’avance ; les suivants doivent
être uniques sur le réseau.
• Masque de sous-réseau, adresse du réseau et de broadcast. Un réseau local est décrit
par deux ou trois masques. Par exemple, si le réseau s’étend sur tous les numéros
192.168.27.x, le masque de sous-réseau est 255.255.255.0 (ce qui est généralement le cas
pour les petits réseaux locaux). L’adresse du réseau est alors 192.168.27.0 et celle de broad-
cast 192.168.27.255.
• Adresse de la passerelle. Lorsqu’un ordinateur du réseau local fournit l’accès à Internet
à tous les autres ordinateurs du réseau, vous devez indiquer cette adresse.
• Adresse du serveur de noms. Le serveur de noms, ou DNS (Domain Name Server), sert à
résoudre les noms réseau en adresses IP. Il permet donc de taper dans un navigateur
http://www.yahoo.com et d’atteindre automatiquement l’ordinateur dont l’IP corres-
pond à ce nom. Il peut également servir à atteindre un ordinateur du réseau local s’il
permet la résolution des noms locaux. Lorsque les adresses du serveur de noms et de la
passerelle sont correctes, vous pouvez accéder à Internet.
Wi-Fi Configurer une carte Wi-Fi pendant l’installation n’est utile que si vous désirez utiliser
l’accès au réseau sans-fil pendant l’installation. En plus des paramètres précédents, vous
Linux Livre Page 39 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 39

devez alors indiquer l’identifiant du réseau (SSID ou ESSID), le mode de chiffrement (WEP,
WPA ou WPA2) et le mot de passe. Lorsque le système fonctionne, le logiciel Network-
Manager est plus confortable à utiliser.
Accès à Si votre ordinateur ne fait pas partie d’un réseau local, vous accédez probablement à Inter-
Internet par
modem, RNIS net via un modem, une carte RNIS ou un modem ADSL. Ceux-ci ne fonctionnent d’emblée
ou ADSL que dans les cas simples. Il peut donc être sage de repousser la configuration d’Internet à
plus tard (voir Chapitre 27).
Pare-feu La plupart des distributions protègent l’accès au réseau ou à Internet grâce à un pare-feu.
Ce dernier laisse passer les connexions initiées par le poste, mais bloque les requêtes de
connexions entrantes, ce qui augmente significativement la sécurité. Si vous envisagez
de proposer des services réseau sur votre ordinateur (comme un serveur SSH ou web), vous
pouvez définir des exceptions pour ces services et permettre un accès depuis l’extérieur.
Nous parlerons de la mise en place d’un pare-feu au Chapitre 29.
SELinux, Certaines distributions ajoutent au pare-feu des systèmes de protection supplémentaires,
AppArmor
qui protègent les programmes importants contre d’éventuels dysfonctionnements. Red Hat
et Fedora fournissent SELinux, et SUSE, le système AppArmor. Si vous n’utilisez que les
programmes de votre distribution, SELinux et AppArmor fonctionnent sans problème. La
sécurité effective de ces systèmes est controversée, car ils sont encore neufs et peu utilisés en
pratique. Si vous envisagez d’installer des programmes réseau compilés par vos soins ou si
vos besoins de configuration s’éloignent de ceux prévus par la distribution, SELinux et
AppArmor peuvent poser problème. La solution est alors de les désactiver.
Mises à jour De nombreuses distributions proposent d’effectuer une mise à jour du système avant même
le premier démarrage, afin d’actualiser les programmes critiques concernant la sécurité de
l’ordinateur. Cela dépend bien sûr de la configuration de votre accès à Internet.
Mode La plupart des programmes d’installation configurent eux-mêmes XWindow pour toutes les
graphique
sorties graphiques. Les éléments critiques de cette configuration sont la reconnaissance de la
carte graphique et la saisie des paramètres du moniteur (résolution, fréquence), s’ils ne sont
pas reconnus.
Imprimante, Certaines distributions permettent de configurer une imprimante, une carte son et d’autres
scanner,
carte son périphériques matériels. Si tout fonctionne bien, rien ne s’y oppose. Mais en cas de pro-
blème, il vaut mieux reporter la configuration à plus tard (voir Chapitre 9 pour les scanners,
Chapitre 20 pour les cartes son et Chapitre 30 pour les imprimantes).
Fuseau horaire Afin de paramétrer correctement l’heure, le programme d’installation doit savoir si l’horloge
interne (CMOS, au niveau matériel) de l’ordinateur est réglée à l’heure locale ou en UTC (Uni-
versal Coordinated Time), et dans quel fuseau horaire vous vous trouvez. Si votre ordinateur dis-
pose d’un accès permanent à Internet, de nombreuses distributions peuvent être configurées
pour synchroniser l’heure avec un serveur de date (serveur NTP) sur Internet.
Langue En général, Linux s’installe dans la langue utilisée pendant l’installation − pour la plupart
des lecteurs de cet ouvrage, il s’agit donc du français. Il est conseillé d’installer également
les fichiers de langue anglaise (ce dont la plupart des distributions s’occupent par défaut).
Ainsi, vous êtes assuré d’avoir au moins le texte anglais s’il n’existe pas de traduction fran-
çaise.
Linux Livre Page 40 Mardi, 23. septembre 2008 1:05 13

40 LINUX

Si certaines personnes veulent utiliser votre ordinateur dans une autre langue que celle par
défaut, vous devez installer les paquetages de localisation correspondants. Vous pourrez
alors choisir la langue désirée lors de la connexion au système.

2.7 Installation du chargeur d’amorçage


Cette section s’intéresse à la manière dont Linux doit être démarré. La plupart des distribu-
tions installent à cet effet le logiciel GRUB. Il peut aussi s’agir du programme déjà ancien
LILO, mais c’est de plus en plus rare.
Le premier secteur du disque dur est appelé MBR (Master Boot Record ou enregistrement
d’amorçage maître), où la plupart des programmes d’installation placent GRUB et LILO.
Par conséquent, le secteur d’amorçage, souvent préalablement occupé par Windows, est
écrasé. GRUB ne sert donc pas seulement à amorcer Linux, mais il pointe aussi vers le char-
geur d’amorçage de Windows. Au démarrage de l’ordinateur, un petit menu s’affiche. Vous
pouvez alors choisir de démarrer Linux ou Windows. Si vous optez pour ce dernier, GRUB
active le chargeur d’amorçage de Windows qui se trouve dans le premier secteur de la par-
tition de Windows.
Problèmes Installer le chargeur d’amorçage fonctionne désormais dans presque toutes les configura-
tions matérielles et logicielles. Cependant, dans certains cas rares, un problème survient.
Vous ne pouvez alors lancer ni Windows, ni Linux. Nous parlerons de cette situation à la
section 2.10.
Démarrage de Si tout se passe bien, vous devriez obtenir lors du démarrage de l’ordinateur un menu dans
l’ordinateur
lequel vous pouvez choisir le système d’exploitation que vous désirez démarrer. L’aspect de
ce menu dépend du programme d’installation. Vous pouvez enfin faire vos premiers pas
sous Linux (voir Chapitre 3).

2.8 Installations non standard


Cette section évoque deux formes d’installation moins fréquentes dans la pratique. Les
détails dépendent évidemment de la distribution choisie.
Installation sur On peut installer Linux sur un disque dur externe en USB ou en Firewire. Cette variante
un disque dur
externe peut sembler séduisante, en particulier sur les portables dont le disque dur intégré est plein.
Le problème est le démarrage du système Linux. On peut alors procéder de deux manières :
• Installer le chargeur d’amorçage sur le premier secteur du disque dur externe. Il faut
alors configurer le BIOS pour qu’il utilise celui-ci comme premier périphérique d’amor-
çage. En d’autres termes, si le disque dur externe est branché, Linux démarre ; sinon, ce
sera Windows installé sur le disque interne.
• Installer le chargeur d’amorçage sur le premier secteur du disque interne. Dans ce cas, le
processus ne fonctionne que si le chargeur d’amorçage et Linux reconnaissent immédia-
tement le disque externe (sans avoir à charger de pilote).
Il n’existe pas de solution universelle, car tout dépend de la manière dont le BIOS gère les
disques externes pendant l’amorçage.
Linux Livre Page 41 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 41

On peut aussi installer Linux sur une grosse clé USB, qui est alors reconnue comme disque
dur externe.
Installation Lors d’une installation réseau, les fichiers ne sont pas lus sur un CD ou un DVD, mais sur le
réseau
réseau. Il existe alors deux variantes qui se différencient par la manière dont l’installation
commence :
• Démarrage de l’installation avec un CD contenant le programme d’installation. Il confi-
gure la connexion au réseau et récupère ensuite toutes les données sur le réseau ou sur
Internet via FTP, HTTP, NFS ou SMB. Cette méthode est pratique pour les grosses distri-
butions disponibles gratuitement sur Internet, comme Debian ou openSUSE. Il n’est
alors pas nécessaire de télécharger des ISO volumineuses et de graver plusieurs CD ou
DVD ; il suffit de télécharger une ISO de CD de démarrage, ne dépassant généralement
pas les 50 Mo.
• Installation réseau. La "vraie" installation réseau implique que votre ordinateur puisse
lire ses données d’amorçage sur le réseau. C’est possible sur la plupart des cartes mères,
mais il faut le configurer dans le BIOS et mettre en place un serveur permettant ce type
d’utilisation.
Dans les deux cas, il faut prévoir une bonne connexion au réseau ou à Internet.

2.9 Problèmes lors de l’installation


Cette section traite des problèmes typiques que vous pouvez rencontrer pendant l’installa-
tion, et des solutions possibles. Comme nous ne pouvons pas aborder l’intégralité de l’uni-
vers de Linux, vous devez apprendre à vous aider vous-même, et le plus tôt sera le mieux.
S’aider Que faire lorsque vous avez un problème d’installation, que l’ordinateur ne répond pas ou
soi-même
que le matériel n’est pas reconnu ? Le premier réflexe est évident : avant de démarrer l’ins-
tallation, lisez le fichier README et les notes de version (Release Notes) qui se trouvent sur
Internet ou sur le CD-ROM.
Le site web de la distribution concernée est également un bon point de départ. Il contient
souvent des pages et des forums dédiés à la résolution des problèmes les plus fréquents.
Les groupes de discussion sur Linux sont aussi une source intéressante et généralement à
jour. Allez à l’adresse http://groups.google.fr. Si vous saisissez par exemple "linux" et le
nom d’un périphérique, vous trouverez sans doute de nombreuses discussions relatives à ce
dernier, et avec un peu de chance et de patience, une réponse à votre problème.

Problèmes de matériel
Si des composants matériels importants ne sont pas reconnus lors de l’installation, ou si leur
détection plante, il peut être utile de passer des paramètres au noyau (voir Chapitre 24).
Linux Livre Page 42 Mardi, 23. septembre 2008 1:05 13

42 LINUX

Problèmes liés au clavier


Dans les premières phases de l’installation, il se peut que le clavier français ne soit pas
encore installé et que vous disposiez d’un clavier américain. C’est également souvent le cas
pendant le démarrage du chargeur d’amorçage. Le clavier QWERTY US est représenté à
l’adresse http://fr.wikipedia.org/wiki/QWERTY ; cette illustration peut être pratique pour
retrouver des correspondances avec un clavier AZERTY français.

2.10 Problèmes après l’installation


Il arrive que l’installation se passe sans soucis et que les problèmes commencent après le
redémarrage de l’ordinateur.

L’ordinateur ne démarre plus


Le pire après une installation de Linux est que l’ordinateur ne démarre plus ou que l’un des
systèmes d’exploitation ne soit plus accessible. Il peut s’agir d’une des situations suivantes :
• Linux plante (problème de matériel). Après le redémarrage, l’ordinateur affiche quelques
messages puis plante, avec ou sans message d’erreur.
Cause probable : il s’agit d’un problème matériel.
Résolution : vous pouvez aider Linux à détecter certains composants matériels grâce à
des options passées au noyau lors de l’amorçage (voir Chapitre 24). Mais cela ne fonc-
tionne qu’avec ceux directement accessibles par le noyau, sans module intermédiaire.
On peut passer des options d’amorçage directement au noyau. Dans GRUB, passez du
mode graphique au mode texte grâce à Échap. Choisissez avec les touches de direction
la distribution Linux à démarrer et tapez E. Vous accéderez alors à l’éditeur de GRUB,
qui affiche quelques lignes comme celles-ci :
kernel (hd0,11)/boot/vmlinuz root=/dev/hda12 splash=silent vga=normal
initrd (hd0,11)/boot/initrd

Choisissez la ligne du noyau (commençant par kernel) et appuyez à nouveau sur E


pour l’éditer. La touche Entrée valide les modifications et Échap revient au menu
d’amorçage d’où vous pourrez redémarrer Linux. La modification des paramètres ne
fonctionne que pour ce démarrage et n’est pas enregistrée pour les suivants.
• Linux plante (unable to mount root fs). Le noyau a démarré, mais Linux n’a pas pu
trouver sa partition système.
Cause probable : la configuration de GRUB a échoué. Cela peut arriver lorsque le
câblage des disques durs a été modifié.
Résolution : indiquez la bonne partition lors du démarrage sous la forme root=/dev/
hdb8. Lorsque cela fonctionne, vous pouvez reconfigurer GRUB et recréer une disquette
d’amorçage. Si le nom de la partition a été modifié (par exemple, si le disque a été recâblé),
il faut aussi modifier le fichier /etc/fstab (voir Chapitre 23).
Linux Livre Page 43 Mardi, 23. septembre 2008 1:05 13

INSTALLATION 43

• Linux ne démarre pas. Lorsque l’ordinateur redémarre, il lance Windows sans poser de
question. Il ne semble pas y avoir trace de Linux.
Cause probable : l’installation de GRUB n’a pas fonctionné pour une raison ou une
autre.
Résolution : démarrez un système de maintenance ou un live CD et réinstallez GRUB
(voir Chapitre 24).
• Windows ne démarre pas. Après le démarrage, Linux se lance automatiquement. Il ne
semble pas y avoir trace de Windows.
Cause probable : l’installation de GRUB a fonctionné, mais Linux se lance automatique-
ment ou Windows n’apparaît pas dans le menu. Il est possible que le menu n’apparaisse
que lorsque l’utilisateur appuie sur Échap.
Résolution : si un menu s’affiche, choisissez windows avec les touches de direction et
appuyez sur Entrée. Dans le cas contraire, démarrez Linux et explorez la configuration
de GRUB pour y ajouter un élément de menu pour Windows (voir Chapitre 24).
• Ni Linux, ni Windows ne démarrent. GRUB est exécuté, mais affiche rapidement une
liste sans fin de messages d’erreur.
Cause probable : l’installation de GRUB est endommagée.
Résolution : démarrez un système de maintenance ou un live CD, et réinstallez GRUB
(voir Chapitre 24).

Le système graphique ne démarre pas


Il arrive que le système démarre, mais seulement en mode texte. XWindow, à la base des
systèmes de bureau KDE ou Gnome, ne fonctionne pas.
Démarrage La première étape consiste à vérifier si le système n’est pas configuré pour démarrer en
automatique
de X mode texte. Pour démarrer X manuellement, connectez-vous en mode texte (indiquez votre
nom d’utilisateur et votre mot de passe) et lancez la commande startx. Si cela fonctionne, le
système graphique fonctionne. Il faut alors configurer le système pour qu’il lance le système
graphique au démarrage. Selon la distribution, il faut modifier /etc/inittab ou s’assurer
qu’un script démarre le gestionnaire d’affichage (voir Chapitre 24).
Reconfigurer X Si startx ne fonctionne pas, le problème provient sans doute d’une configuration incom-
plète ou erronée. Vous trouverez des informations sur la création d’une configuration X
correcte au Chapitre 22.

Le clavier ne fonctionne pas


Les problèmes de clavier sont souvent liés à la disposition du clavier : Linux pense que vous
tapez avec un clavier US, alors que vous utilisez un modèle français. Cette configuration est
différente pour le mode texte et le mode graphique (voir Chapitres 20 et 22).
Linux Livre Page 44 Mardi, 23. septembre 2008 1:05 13

44 LINUX

Les menus sont dans la mauvaise langue


Tous les programmes affichent par défaut les messages d’erreur ou les menus en anglais. De
nombreux programmes (en particulier, Gnome et KDE) peuvent aussi les afficher dans plu-
sieurs langues (voir Chapitre 20). En général, il faut installer les paquetages correspondant à
votre langue, qui assurent la traduction des menus et des autres textes.
Linux Livre Page 45 Mardi, 23. septembre 2008 1:05 13

Premiers pas sous Linux


3
Ce chapitre vise à vous aider lors de vos premiers pas sous Linux : comment vous connecter,
lancer des programmes, vous déconnecter ou redémarrer l’ordinateur. Il vous indique aussi
où trouver de la documentation, que ce soit sur le système installé ou sur Internet.
La difficulté est que sous Linux, on peut configurer chaque petit détail. Ainsi, le menu de
démarrage du bureau est légèrement différent dans chaque distribution. Une combinaison
de touches sous Red Hat peut avoir un effet différent sous SUSE. C’est pourquoi nous
emploierons de nombreuses formulations de type "généralement" ou "la plupart" dans ce
chapitre. La seule alternative serait de détailler le fonctionnement de chaque distribution,
que vous trouverez dans la documentation correspondante.

3.1 Démarrer et arrêter Linux


Pour démarrer Linux, vous devez redémarrer votre ordinateur. Vous ne pouvez pas le
démarrer depuis Windows, à moins de le lancer dans un programme comme VMware et de
le faire fonctionner dans un environnement virtuel. Au démarrage, indiquez dans le menu
que vous désirez lancer Linux et non Windows.
Le processus de démarrage dure environ deux minutes, mais varie en fonction de la distri-
bution et du matériel. De nombreuses distributions affichent une barre de progression pen-
dant le démarrage. D’autres montrent les innombrables détails du démarrage du système.
Ces informations ne sont néanmoins utiles qu’en cas de dysfonctionnement.
Normalement, le processus d’amorçage se termine par l’affichage d’un écran de connexion
graphique. Vous pouvez vous connecter avec votre nom d’utilisateur et votre mot de passe.
Pour finir, l’environnement de travail par défaut de votre distribution, généralement Gnome
ou KDE, s’affiche. Vous trouverez une description plus détaillée de ces deux environnements
aux Chapitres 4 et 5.
Ne vous connectez pas en tant que root ; utilisez un identifiant de connexion sans privilège.
L’utilisateur root a des droits illimités. Il n’est pas courant de travailler en root sous Linux.
Seules quelques tâches administratives et certains programmes demandent les droits root −
auxquels vous pouvez accéder en indiquant le mot de passe root ou, sous Ubuntu, votre
propre mot de passe.
Nous expliquerons au Chapitre 20 comment modifier le mot de passe root et créer de nouveaux
utilisateurs.
Langue, Si vous avez installé plusieurs jeux de fichiers de localisation (pour plusieurs langues) ou
bureau
plusieurs systèmes de bureau (par exemple, Gnome et KDE), vous pouvez choisir la langue
et le bureau que vous désirez lancer lors de la connexion. Les paramètres dépendent de la dis-
tribution, mais prennent souvent la forme d’une liste déroulante dans la boîte de connexion
ou d’un menu séparé (voir Figure 3.1).
Linux Livre Page 46 Mardi, 23. septembre 2008 1:05 13

46 LINUX

Figure 3.1
Écran de connexion
sous Ubuntu.

Connexion On peut configurer Gnome et KDE pour qu’ils démarrent automatiquement une session.
automatique
Cela est plus confortable, mais n’est pas optimal du point de vue de la sécurité (voir Chapi-
tres 4 et 5).
Connexion en On peut également accéder à de nombreuses fonctionnalités de Linux en mode texte. Une
mode texte
installation serveur supprimera souvent le système XWindow et son démarrage automatique
sera désactivé. Vous devrez donc vous connecter en mode texte (voir Chapitre 12).
Lorsque le système XWindow est installé, vous pouvez le démarrer depuis une console avec
la commande startx. Si cette dernière affiche des erreurs, X n’est pas bien configuré. Nous
expliquerons comment régler ce problème au Chapitre 22.

Déconnexion
Les menus KDE et Gnome proposent tous deux une commande pour se déconnecter. La
dénomination exacte varie selon les distributions et l’environnement. Elle termine tous les
programmes qui fonctionnent dans l’environnement graphique (enregistrez au préalable
tous vos fichiers) et ramène l’utilisateur à la boîte de connexion, à partir de laquelle il peut
se reconnecter ou éteindre l’ordinateur.
Changement Pour changer d’utilisateur, il faut théoriquement se déconnecter et se reconnecter sous un
d’utilisateur
sans autre nom. Gnome et KDE permettent cependant de le faire sans déconnexion. Pour cela, le
déconnexion système graphique est démarré une seconde fois (deux systèmes sont lancés en même
temps), ce qui nécessite plus de ressources. On peut alors changer d’utilisateur rapidement
avec un raccourci clavier.
Linux Livre Page 47 Mardi, 23. septembre 2008 1:05 13

PREMIERS PAS SOUS LINUX 47


Déconnexion Si vous travaillez en mode texte, utilisez la combinaison de touches Ctrl+D ou la commande
du mode texte
exit pour vous déconnecter.

Éteindre Linux
Les utilisateurs d’interface graphique ont une commande dans le menu pour éteindre l’ordi-
nateur ou une option dans la fenêtre de connexion. En mode texte, il faut utiliser la commande
shutdown -h now. Elle ne peut être exécutée que par root.

3.2 Clavier, souris et presse-papiers


Raccourcis clavier importants
Les raccourcis clavier dépendent du mode dans lequel vous travaillez : graphique ou texte.
Cette section présuppose que vous avez ouvert une session graphique. Les raccourcis sont
définis selon trois niveaux de programmes :
• Le système XWindow, pour les fonctions élémentaires du système graphique, définit
peu de raccourcis clavier.
• Les environnements Gnome et KDE sont construits au-dessus de X. Ils définissent éga-
lement peu de raccourcis. Ceux-ci ont été harmonisés ces dernières années pour qu’ils
soient identiques sous Gnome et KDE, au moins pour les fonctions les plus importantes.
Précisons que les raccourcis concernés sont en fait gérés par le gestionnaire de fenêtre, et
non par le gestionnaire de bureau (voir Chapitre 22).
• Les raccourcis clavier restants proviennent naturellement des différents programmes.
Ils dépendent donc de ce que vous êtes en train de faire : surfer sur le web avec Firefox,
écrire une lettre avec OpenOffice.org ou modifier du code avec l’éditeur Emacs. Il existe
une multitude de raccourcis que nous ne pouvons pas décrire ici.
Cependant, de nombreuses applications graphiques utilisent les mêmes raccourcis que
sous Windows. Par exemple, on copie du texte dans le presse-papiers avec Ctrl+Inser ou
Ctrl+C ; on colle du texte avec Maj+Inser ou Maj+V et on enregistre un fichier avec Ctrl+S.
Nous ne pouvons malheureusement pas garantir que les raccourcis suivants fonctionnent
pour toutes les distributions. Certaines s’éloignent des conventions, mais ils peuvent tous
être reconfigurés.

Raccourcis clavier sous X


c+a+B arrête le système X en entier
c+a+1 à 6 passe du mode graphique aux consoles texte 1 à 6
a+7 passe du mode texte au mode graphique
a+c+7 8 etc. passe d’un mode graphique à un autre, si par exemple plusieurs utilisateurs
sont connectés
Linux Livre Page 48 Mardi, 23. septembre 2008 1:05 13

48 LINUX

Raccourcis clavier importants du bureau (Gnome, KDE)


a+t change la fenêtre courante
a+1 affiche le menu du bureau
a+2 démarre un programme
a+3 affiche le menu de la fenêtre courante
a+4 ferme la fenêtre et termine le programme

Saisie de Si vous devez saisir des caractères dans une langue étrangère, il se peut que vous ne dispo-
caractères
étrangers siez pas de la touche correspondante sur votre clavier. Gnome et KDE fournissent tous deux
des outils de table de caractères : gucharmap sous Gnome, KCharMap sous KDE. Open-
Office.org a également une fenêtre qui permet la saisie de tels caractères.

Utilisation de la souris
Linux tend de plus en plus à s’orienter vers les conventions d’utilisation de Windows ou de
Mac OS. Il existe cependant certaines particularités relatives au bureau qui sont regroupées
dans cette section.
Clic simple ou Sous Gnome, il faut pour de nombreuses opérations (y compris l’ouverture d’un fichier)
clic double
double-cliquer sur l’élément concerné. Sous KDE, il est en revanche plus courant d’utiliser
le simple clic.
Copier et coller Dans presque tous les programmes Linux, vous pouvez copier et coller du texte à la souris.
du texte à la
souris Pour marquer le texte à copier, sélectionnez-le avec le bouton gauche. Le texte ainsi marqué est
copié dans un tampon. Lorsque vous appuierez ensuite sur le bouton du milieu, il sera collé à
l’endroit où le curseur se trouve, dans la même application ou dans une application différente.
Attention, lorsque vous serez habitué à ce fonctionnement, il sera difficile de vous en passer
− en particulier sous Windows.

3.3 Documentation sous Linux


La documentation sous Linux est impressionnante. Elle est en partie fournie avec le système
et disponible sur Internet. Les experts peuvent également jeter un œil au code source, qui est
souvent bien documenté. Cette section présente un aperçu des principales sources d’infor-
mation.
Plus la documentation est volumineuse, plus il est difficile de trouver la réponse à un pro-
blème. L’astuce qui règle tout est souvent perdue au milieu d’informations périmées, de cas
spécifiques à une version ou une distribution, et de discussions sans fin. Notez cependant
que la compréhension de l’anglais est un avantage. Qu’il s’agisse de l’aide d’un programme
ou de la description d’un service, les traductions en français sont, pour autant qu’elles existent,
souvent incomplètes ou obsolètes.
Aide des Presque tous les programmes graphiques fournissent une aide liée à l’application lorsqu’on
applications
appuie sur F1. Si cela ne fonctionne pas, assurez-vous que les données d’aide sont installées.
Linux Livre Page 49 Mardi, 23. septembre 2008 1:05 13

PREMIERS PAS SOUS LINUX 49

Dans certaines grosses applications, comme Gimp ou OpenOffice.org, l’aide peut se trouver
dans un paquetage à part qui n’est pas installé par défaut.
man et info Pour de nombreuses commandes en mode texte, man nom ou info nom fournissent une des-
cription de la commande et une référence de la syntaxe. Nous en parlerons plus en détail au
Chapitre 12.
Documen- Sous Linux, les programmes sont installés sous forme de paquetages. Un paquetage
tation des
paquetages contient tous les fichiers nécessaires à une application et, bien souvent, des fichiers de
documentation. Celle-ci se trouve, selon la distribution, dans /usr/share/doc/nom_du_paque-
tage (sous Debian, Fedora, Red Hat et Ubuntu) ou /usr/share/doc/packages/
nom_du_paquetage (sous SUSE).
Que faire lorsque vous cherchez la documentation d’une commande sans savoir à quel
paquetage elle appartient ? La première étape est de trouver le nom exact de la commande.
Lancez pour cela la commande which -a commande :
utilisateur$ which -a cp
/bin/cp

Il faut ensuite déterminer à quel paquetage appartient le fichier. Cette opération dépend
de votre distribution. La commande suivante indique que cp fait partie du paquetage
coreutils :
utilisateur$ rpm -qf /bin/cp
coreutils-6.9.43
utilisateur$ dpkg -S /bin/cp
coreutils: /bin/cp

La commande rpm est utilisée dans les distributions Fedora, Red Hat, SUSE ou Mandriva, et
dpkg sous Debian et Ubuntu.
Forums et Il existe d’innombrables forums, wikis et pages web sur Linux, maintenus par les acteurs du
wikis sur
Internet marché et les utilisateurs enthousiastes. Une énumération serait ici inutile : une simple
recherche des termes "fedora forum" ou "ubuntu wiki" propose de nombreuses pages. En ce
qui concerne les questions spécifiques à une distribution, vous aurez plus de chances de
trouver votre bonheur si votre distribution est populaire.
Groupes de Les groupes de discussion sont principalement utilisés par des utilisateurs expérimentés de
discussion
Linux. Vous n’y trouverez peut-être pas de discussions courantes faciles à suivre, mais
vous pourrez chercher des informations dans les archives. En particulier, les problèmes
de configuration ou de matériel ont probablement été rencontrés par quelqu’un d’autre.
Le moteur de recherche le plus utilisé pour les groupes de discussion est Google :
http://groups.google.com.
Linux Docu- Le Linux Documentation Project (projet de documentation de Linux) a pour but de rassem-
mentation
Project bler la documentation autour de Linux. Vous trouverez plus d’informations à son sujet sur
la page du projet : http://www.tldp.org/.
La documentation se divise principalement en trois types : les HOWTO ou guides prati-
ques, les FAQ (Foires aux Questions) et les guides (sous forme de livres). Mais de nombreux
Linux Livre Page 50 Mardi, 23. septembre 2008 1:05 13

50 LINUX

textes du LDP ne sont plus maintenus et sont obsolètes. De plus en plus de projets de documen-
tation utilisent un wiki, que tous les utilisateurs peuvent le cas échéant corriger.
Une partie de la documentation du LDP est traduite en français par le projet http://www.tra-
duc.org. Les mêmes réserves quant à l’actualité des documentations s’appliquent, d’autant
plus qu’une traduction peut ne pas être à jour par rapport à la version originale.
Documen- Notons pour terminer deux sites utiles en français.
tations en
français Le premier, Léa Linux (http://www.lea-linux.org), est un site de documentation en fran-
çais. On y trouve énormément d’informations utiles, en particulier en ce qui concerne le
matériel. Tous les publics (du débutant au professionnel) sont visés par les différents articles du
site.
Le second, Unix Garden (http://www.unixgarden.com), est un site géré par les Éditions Dia-
mond qui éditent entre autres les magazines GNU/Linux Magazine France et Linux Pratique.
Unix Garden reprend, quelques mois après leur publication sous forme papier, les articles
de ces magazines. On peut donc y trouver des articles pratiques intéressants, même s’il ne
s’agit pas à proprement parler d’un site d’entraide ou de documentation.
Linux Livre Page 51 Mardi, 23. septembre 2008 1:05 13

Gnome
4
Lorsque vous travaillez sous Windows ou Mac OS, il n’existe qu’une seule interface utilisa-
teur qui fait partie du système d’exploitation. La situation est différente sous Linux. Le sys-
tème d’exploitation ne sert qu’aux opérations de base. L’interface utilisateur est un
programme situé un niveau au-dessus. Il existe de nombreux systèmes de bureau. Les plus
populaires sont actuellement Gnome et KDE (voir Chapitre 5).
Qu’il s’agisse de Gnome ou de KDE, les fonctions de base d’un gestionnaire de bureau sont
les mêmes et regroupent :
• la gestion du bureau, composé d’une ou deux barres (ou panneaux) contenant le menu
de démarrage, le gestionnaire de tâches et d’autres mini-applications ;
• un gestionnaire de fenêtres servant à régler le comportement des fenêtres (comment
changer de fenêtre active, comment les déplacer, etc.) ;
• de nombreuses applications et programmes de configuration.
Ce chapitre se consacre aux fonctions basiques de Gnome. Mais attention : deux instal-
lations de Gnome se ressemblent rarement. D’une part, une nouvelle version sort tous les six
à douze mois − mais les changements visibles pour les utilisateurs ont été plutôt modestes au
cours des dernières années. D’autre part, chaque distribution modifie Gnome à sa discrétion :
la construction du menu de démarrage, les effets graphiques du bureau et le choix des pro-
grammes et logiciels de configuration peuvent varier fortement. Ce chapitre se base sur la
version 2.22 de Gnome, telle que configurée dans Ubuntu 8.04.
De nombreux programmes ajoutant des fonctionnalités et des éléments graphiques au
bureau sont installés avec Gnome.
Gnome contre Pour des raisons historiques, il existe deux environnements de bureau concurrents sous
KDE
Linux. Le projet KDE se basait sur la bibliothèque Qt de l’entreprise TrollTech. Les premières
versions de Qt étaient considérées comme restrictives par rapport à la GPL (elle est depuis
complètement compatible). Une partie de la communauté Linux trouvait que ces restrictions
allaient trop loin et a fondé le projet concurrent Gnome.
La question de savoir lequel de Gnome ou de KDE est le meilleur gestionnaire de bureau
échauffe encore aujourd’hui les esprits. Les deux bureaux sont tout à fait adaptés à une uti-
lisation bureautique standard. Gnome est plus accessible et plus simple à apprendre, mais
KDE fournit aux utilisateurs avancés davantage de possibilités de configuration et de per-
sonnalisation. Ces derniers ont donc une préférence pour KDE, tandis que Gnome joue un
grand rôle dans l’environnement commercial de Linux (Red Hat et Novell sont plutôt orientés
vers Gnome).
De nombreuses distributions laissent à leurs utilisateurs le choix entre les bureaux et propo-
sent des paquetages pour les deux environnements. Il est donc possible d’installer les systèmes
en parallèle et de choisir un bureau lors de la connexion.
Linux Livre Page 52 Mardi, 23. septembre 2008 1:05 13

52 LINUX

Plus important encore : vous pouvez parfaitement utiliser ces deux programmes en paral-
lèle. Par exemple, si vous utilisez Gnome comme environnement de bureau, rien ne vous
empêche d’utiliser KDE K3b pour graver vos CD et DVD. Ils sont d’ailleurs compatibles entre
eux au point que même les commandes de glisser-déposer fonctionnent sans problème.
Travailler Gnome et KDE fournissent certes de nombreuses fonctionnalités, mais ils demandent des
sans environ-
nement de capacités assez importantes en termes de mémoire vive et de processeur. Sur les ordinateurs
bureau limités en ressources, il est préférable de se passer d’un environnement de bureau. Si vous
désirez une interface graphique, utilisez pour la gestion de vos fenêtres un gestionnaire de
fenêtres, comme XFCE. Il existe des distributions, comme Xubuntu, qui sont optimisées
pour ce choix de paquetages. Vous pouvez aussi choisir de fonctionner en mode texte. C’est
largement suffisant pour les serveurs réseau ou les pare-feu.

4.1 Conception du bureau


Connexion et Avant de pouvoir travailler sous Gnome, vous devez vous connecter avec votre nom d’utili-
déconnexion
sateur et votre mot de passe. Sur l’écran de connexion, il existe un menu Options (générale-
ment en bas à gauche), dans lequel vous pouvez choisir la langue et l’environnement de
bureau que vous souhaitez lancer lorsqu’il en existe plusieurs.
Pour vous déconnecter ou redémarrer l’ordinateur, choisissez l’élément correspondant du
menu Système (qui peut, selon les distributions, s’appeler Quitter, Terminer, Se déconnecter,
etc.). Selon le matériel, vous pouvez aussi lancer le mode d’hibernation ou d’économie
d’énergie de l’ordinateur.
Changement Gnome permet de changer d’utilisateur sans que l’utilisateur courant ait à se déconnecter.
d’utilisateur
Le plus élégant est d’utiliser le programme fast-user-switch-applet présent depuis la ver-
sion 2.20. Cette application s’affiche normalement à droite du tableau de bord et indique par
défaut le nom de l’utilisateur connecté. Un clic de souris affiche une liste de tous les utilisa-
teurs et désigne ceux qui sont déjà connectés avec une coche. Choisir un élément dans ce
menu affiche, pour des raisons de sécurité, une nouvelle boîte de dialogue de connexion.
En interne, un nouveau système graphique (nouveau serveur X) est démarré pour chaque
utilisateur, ce qui nécessite beaucoup de ressources. L’utilisation par plusieurs utilisateurs
en parallèle ne fonctionne donc correctement que sous les ordinateurs rapides. Pour changer
d’utilisateur, on utilise les combinaisons de touches suivantes :
Ctrl+Alt+F7 premier utilisateur
Ctrl+Alt+F8 deuxième utilisateur
Ctrl+Alt+F9 troisième utilisateur
Certaines distributions réservent le F8 à un écran de journalisation et les utilisateurs sont
donc décalés (F7 pour le premier, F9 pour le deuxième, F10 pour le troisième, etc.).
Si l’application de changement d’utilisateur n’est pas sur le tableau de bord, on peut la lan-
cer manuellement en cliquant du bouton droit sur le tableau de bord et en choisissant Ajouter
au tableau de bord... puis, dans la fenêtre qui s’affiche, Outil de changement d’utilisateur.
Bureau Après la connexion, vous vous trouvez sur le bureau Gnome. Son apparence dépend beaucoup
des distributions. La Figure 4.1 illustre Gnome sous Ubuntu.
Linux Livre Page 53 Mardi, 23. septembre 2008 1:05 13

GNOME 53

Figure 4.1
Le bureau Gnome.

Le bureau se compose habituellement des éléments suivants :


• deux "barres" ou tableaux de bord, en haut et en bas de l’écran ;
• le menu Gnome dans le tableau de bord du haut ;
• la liste des tâches dans le tableau de bord du bas ;
• des icônes et diverses applications d’aide (applets) dans les deux tableaux de bord ;
• la zone de travail effective entre les deux tableaux de bord.
Les éléments du bureau sont configurables presque sans limite. Vous pouvez, par exemple,
placer les deux tableaux de bord d’un seul côté, supprimer des éléments des tableaux de
bord, en ajouter d’autres, en modifier les propriétés, etc. Vous pouvez accéder aux boîtes
de configuration correspondantes avec le bouton droit.
Zone de travail Au départ, la zone de travail est presque vide, à l’exception de quelques icônes pour les lec-
teurs externes. Selon la configuration, on peut aussi trouver des icônes supplémentaires
pour la corbeille, le répertoire personnel, etc.
On peut créer des fichiers et des répertoires sur la zone de bureau. Ceux-ci sont alors repré-
sentés par des icônes. Il s’agit physiquement des fichiers créés dans le répertoire ~/Desktop.
La représentation et la gestion des icônes (aspect, emplacement, etc.) sont gérées par le
gestionnaire de fichiers de Gnome, Nautilus. Leurs propriétés sont enregistrées dans
le répertoire ~/.nautilus/metafiles/*.
Tableaux Un tableau de bord est une zone rectangulaire située sur l’un des côtés de l’écran (habituel-
de bord
lement, en haut ou en bas). Il n’a en soi aucune fonction ; il n’est qu’un conteneur pour
d’autres éléments du bureau (les applets, comme le menu et la liste des tâches).
Linux Livre Page 54 Mardi, 23. septembre 2008 1:05 13

54 LINUX

On peut déplacer facilement les tableaux de bord à la souris. La plupart des applications
sont prévues pour des tableaux de bord horizontaux. Si ces derniers sont placés sur le côté
droit ou gauche de l’écran, cela peut mener à des résultats non optimaux.
Il est également possible de réunir les éléments des deux tableaux de bord par défaut dans
un seul. Les distributions de SUSE et de Novell sont configurées ainsi.
Applets Les applets sont des programmes exécutés dans les tableaux de bord. En plus de celles pré-
sentes par défaut, il en existe d’innombrables dont les plus importantes sont présentées ci-
après. Pour ajouter une applet à un tableau de bord, cliquez sur celui-ci du bouton droit et
lancez Ajouter au tableau de bord (voir Figure 4.2).

Figure 4.2
Ajouter des applets.

Vous pouvez modifier certaines propriétés des applets dans le menu contextuel qui s’ouvre
avec le bouton droit.
L’applet la plus importante est sans doute le menu Gnome (voir Figure 4.1). Il se compose
de trois groupes : Applications pour démarrer les programmes, Raccourcis pour ouvrir des
répertoires ou démarrer le gestionnaire de fichiers Nautilus, et Système pour configurer,
administrer et quitter le système.
La clarté de ce menu dépend largement de la configuration. Ubuntu est exemplaire, car le
menu ne contient que les programmes les plus utilisés. À l’inverse, la configuration de
base de Debian est systématique et exhaustive, redondante, et souvent déroutante pour
les débutants.

Vous pouvez glisser-déposer un programme souvent utilisé dans un endroit vide du tableau de bord. L’icône
qui apparaît vous permet de démarrer rapidement l’application en question.
Vous pouvez aussi modifier vous-même le menu. Pour cela, utilisez l’éditeur de menu alacarte qui se
trouve sous Ubuntu dans Système > Préférences > Menu principal. Il contient de nombreuses lignes que
vous pouvez activer ou désactiver. Vous pouvez aussi définir de nouveaux éléments de menu ou les grou-
per différemment.
Linux Livre Page 55 Mardi, 23. septembre 2008 1:05 13

GNOME 55

Novell, mécontent du menu Gnome, a développé son propre menu. Il facilite l’accès aux
programmes les plus utilisés, et aux documents et répertoires récemment ouverts (voir
Figure 4.3).

Figure 4.3
Variante du menu
Gnome fournie par
openSUSE 10.3.

Liste des L’applet Liste des fenêtres affiche une icône qui correspond à la barre des tâches de Windows.
fenêtres
Dans la boîte de dialogue de configuration, vous pouvez choisir si les fenêtres d’un programme
(par exemple, celles de Gimp ou les documents OpenOffice.org ouverts) doivent être groupées
par programme. Cela améliore la vue d’ensemble lorsque beaucoup de fenêtres sont ouvertes,
mais augmente le nombre de clics nécessaires pour changer de fenêtre.
Certains comportements des fenêtres, comme le déplacement, l’agrandissement ou la mini-
misation, dépendent du gestionnaire de fenêtre. Gnome en fournit plusieurs ; c’est géné-
ralement le programme metacity qui est utilisé par défaut.
Espaces de Les espaces de travail permettent de partager les fenêtres de programmes sur plusieurs
travail
bureaux virtuels et de passer d’un bureau à l’autre. Cela facilite le travail et améliore la vue
d’ensemble lorsque plusieurs fenêtres sont ouvertes simultanément. Vous pouvez, par
exemple, lancer le programme graphique Gimp sur son propre espace de travail. Ainsi, tou-
tes ses fenêtres seront sur un seul et même espace, tandis que les autres fenêtres seront sur
un second espace de travail.
L’applet Sélecteur d’espaces de travail gère des espaces de travail. Dans Préférences, vous
pouvez choisir le nombre d’espaces souhaité.
Il est possible de configurer une fenêtre donnée afin qu’elle soit visible sur tous les espaces
de travail. Ouvrez le menu de la fenêtre avec le bouton droit ou Alt+Espace, puis activez
l’option Toujours sur l’espace de travail visible.
Zone de Lorsque le tableau de bord affiche la zone de notification, les programmes en tâche de
notification
fond peuvent y laisser des notifications, par exemple lorsque de nouvelles mises à jour
Linux Livre Page 56 Mardi, 23. septembre 2008 1:05 13

56 LINUX

sont disponibles ou lorsqu’un nouveau courrier électronique est arrivé. Cette zone n’a en soi
aucune fonction ; il s’agit plutôt d’un conteneur pour les icônes des autres programmes.

4.2 Nautilus
Le programme Nautilus est le gestionnaire de fichiers de l’environnement de bureau
Gnome. Il permet d’accéder aux fichiers et répertoires de l’ordinateur, ainsi qu’aux lecteurs
externes et aux répertoires réseau, de graver des CD et des DVD, etc. Nautilus est un pro-
gramme plutôt universel (voir Figure 4.4).

Figure 4.4
Nautilus.

Cette section traite de l’utilisation de Nautilus, mais ne rentre pas dans les détails de la gestion des fichiers
sous Linux. Ce thème fait l’objet d’un chapitre complet, le Chapitre 13.

Démarrage On démarre généralement Nautilus depuis le menu Gnome en choisissant Raccourcis >
Dossier personnel. Le menu Raccourcis contient également des autres éléments qui facilitent
l’accès à d’autres répertoires.
Le gestionnaire de fichiers affiche par défaut le contenu du répertoire choisi sous forme de
symboles. Chaque fichier est représenté par une icône qui, pour certains, donne un aperçu
du contenu. Cet aperçu ne fonctionne par défaut que pour les fichiers locaux (et non pour
les répertoires réseau) et ceux relativement petits. Vous pouvez modifier ce comportement
dans Édition > Préférences > Aperçu.
Pour ne pas avoir à regénérer sans cesse les aperçus, Nautilus enregistre les images dans le
répertoire ~/.thumbnails. La plupart des programmes Gnome utilisent ce répertoire.
Linux Livre Page 57 Mardi, 23. septembre 2008 1:05 13

GNOME 57

Cliquez sur Affichage > Zoom avant et Affichage > Zoom arrière pour modifier la taille des
icônes. Pour afficher les informations détaillées des fichiers, choisissez Affichage > Voir en
tant que liste dans le menu.
Barre latérale Le panneau gauche de la fenêtre contient normalement une barre latérale, qui permet de
passer rapidement dans plusieurs répertoires importants (il s’agit de raccourcis). Vous pou-
vez cependant y afficher d’autres choses, comme l’arborescence des répertoires, des infor-
mations sur le répertoire courant ou une liste des derniers répertoires visités (Historique).
F9 masque ou affiche cette barre latérale.
Changer de Sous les diverses icônes, se trouvent des boutons qui permettent de changer rapidement de
répertoire
répertoire. Ils indiquent le chemin du répertoire courant (par exemple, en bas à gauche de la
Figure 4.4, le chemin est /usr/bin).
Nautilus peut aussi afficher un chemin complet en tant que barre d’adresse, ce qui facilite la
saisie rapide d’un autre répertoire. Il est possible de passer d’un mode à l’autre en cliquant
sur le bouton Bascule entre le mode à texte et à boutons de la barre d’emplacement (à gauche
de la barre en question).

Certaines distributions configurent Nautilus en mode spatial. Cela signifie que lorsqu’on change de réper-
toire, une nouvelle fenêtre s’ouvre. Certains développeurs de Gnome trouvent ce mode plus intuitif, mais
tous les utilisateurs ne sont pas de cet avis. Pour modifier ce comportement, activez l’option Toujours ouvrir
dans des fenêtres de navigation dans Édition > Préférences > Comportement.

Ouvrir des La plupart des fichiers s’ouvrent avec un double-clic. Le gestionnaire de fichiers ouvre automa-
fichiers
tiquement le programme correspondant. Si le type de fichier n’est pas connu, cliquez dessus du
bouton droit et lancez Ouvrir avec une autre application. S’ouvre alors une boîte de dialogue
dans laquelle vous pouvez choisir la plupart des programmes installés sur l’ordinateur.
Certains fichiers peuvent être ouverts avec plusieurs programmes. Par exemple, on peut
ouvrir les images avec un outil de visualisation, l’éditeur graphique Gimp ou Firefox. L’un
de ces programmes est défini par défaut. Pour le modifier, cliquez du bouton droit sur le
fichier, choisissez Propriétés > Ouvrir avec et indiquez le programme de votre choix. Cette
propriété s’appliquera à tous les fichiers du même type, comme par exemple tous les fichiers
PNG.
Déplacer et Les fichiers sélectionnés sont copiés avec Ctrl+C, coupés avec Ctrl+X (et supprimés de leur
copier des
fichiers endroit d’origine) et collés avec Ctrl+V.
Il est néanmoins plus simple de déplacer les fichiers à la souris, et non au clavier, en les pas-
sant d’une fenêtre du gestionnaire de fichiers à l’autre grâce à un glisser-déposer. Ils sont
alors normalement déplacés et non copiés. Mais il existe des exceptions à cette règle, lorsque
par exemple l’opération de glisser-déposer part d’un CD ou d’un lecteur réseau. Dans ce
cas, le curseur de la souris est agrémenté d’un symbole plus (+), pour que la signification de
l’opération soit claire.
Si vous désirez copier plutôt que déplacer des fichiers, appuyez pendant le glisser-déposer
sur la touche Ctrl. Si vous souhaitez que le navigateur vous demande quoi faire, commencez
Linux Livre Page 58 Mardi, 23. septembre 2008 1:05 13

58 LINUX

le glisser-déposer, puis appuyez sur Alt avant de déposer le fichier. Lorsque vous relâchez la
souris, un menu apparaît : vous pouvez alors copier ou déplacer le fichier, ou encore créer
un raccourci (lien).
Chercher des La commande Aller à > Recherche des fichiers offre une vue peu intuitive pour chercher des
fichiers
fichiers. Nautilus fait la liste de tous les fichiers dont le nom correspond au terme saisi dans
le champ de recherche. Il n’est pas possible d’effectuer une recherche sur le texte des
fichiers. Une limitation des résultats sur un type de documents donné est normalement pré-
vue, mais mes tests sous Ubuntu 8.04 n’ont pas été concluants à ce sujet. Notez que, par
défaut, le répertoire racine est parcouru (et non le répertoire courant).
Vous pouvez aussi utiliser la commande Raccourcis > Rechercher des fichiers dans le menu
Gnome. Cela lance le programme gnome-search-tool. Ce dernier permet d’utiliser davan-
tage de critères de recherche, mais il est relativement lent. Les outils de recherche tels que
Beagle ou Tracker sont bien plus efficaces (voir Chapitre 13).
Fichiers cachés Sous Linux, tous les fichiers et dossiers dont le nom commence par un point sont considérés
comme cachés. Cela signifie qu’ils ne sont pas affichés par le gestionnaire de fichiers, ni par
les boîtes de dialogue de choix de fichier. Ils contiennent souvent des paramètres de configura-
tion ou d’autres fichiers qui ne doivent pas être modifiés directement. L’accès direct à ces fichiers
n’est, en général, approprié que dans des cas exceptionnels (par exemple, lorsque vous dési-
rez faire une copie de sauvegarde de votre répertoire de courrier électronique ~/.mozilla-
thunderbird). Pour les afficher dans le gestionnaire de fichiers, cliquez dans le menu sur
Affichage > Afficher les fichiers cachés.
Droits d’accès Un utilisateur ne peut pas lire ou modifier tous les dossiers ou répertoires. Linux enregistre
donc pour chaque fichier et répertoire le propriétaire et les droits d’accès. Les concepts sous-
jacents seront expliqués au Chapitre 13. Pour modifier ces droits, cliquez du bouton droit
sur le fichier ou le répertoire, puis allez dans Propriétés, Permissions (voir Figure 4.5).

Figure 4.5
Permissions d’un fichier.
Linux Livre Page 59 Mardi, 23. septembre 2008 1:05 13

GNOME 59
Supprimer un Lorsque vous supprimez un fichier, il atterrit d’abord dans la corbeille. Vous pouvez voir le
fichier
contenu de cette dernière dans le gestionnaire de fichiers grâce à la commande Aller à > Cor-
beille, ou en cliquant directement sur son icône. Les fichiers ne sont supprimés que lorsque
vous les sélectionnez et appuyez sur Suppr.
Par défaut, le gestionnaire de fichiers ne permet pas de supprimer directement des fichiers.
Si c’est ce que vous souhaitez, dans la fenêtre Édition, Préférences, Comportement, activez
l’option Inclure une commande supprimer qui ignore la corbeille.
Supports Si vous insérez un CD ou un DVD, ou si vous branchez un lecteur USB, Firewire ou eSATA,
externes
une nouvelle fenêtre Nautilus s’ouvre automatiquement pour présenter le contenu de ce
nouveau support. Depuis Gnome 2.22, Nautilus se lance lui-même ou s’occupe de lancer un
programme adapté. Les paramètres associés sont définis dans la boîte de dialogue Édition,
Préférences, Supports.

N’oubliez pas de déconnecter explicitement les disques durs externes et les clés USB avant de les débran-
cher de l’ordinateur. Pour cela, cliquez du bouton droit sur l’icône du support et choisissez Démonter.

Adresses On peut indiquer des adresses spéciales dans le champ d’adresse de Nautilus ou dans Aller
spéciales de
Nautilus à > Emplacement. C’est souvent le moyen le plus rapide d’ouvrir des répertoires réseau
dans Nautilus. Le tableau suivant résume les adresses et protocoles importants :

Adresses spéciales de Nautilus


computer: liste de tous les supports de données
fonts: liste de toutes les polices disponibles (ne fonctionne pas sous Gnome 2.22)
ftp://nomd’hôte accès à un serveur FTP
network: utilisation comme navigateur réseau
sftp://nomd’hôte accès à un serveur SFTP (protocole SSH)
smb: utilisation comme navigateur réseau Windows
smb://nomd’hôte accès à un répertoire réseau d’un ordinateur sous Windows
themes: liste de tous les thèmes du bureau Gnome (ne fonctionne pas sous Gnome 2.22)
trash: corbeille (fichiers supprimés sous Nautilus)

La version 2.22 de Gnome peut avoir des problèmes sur les accès FTP et Samba qui ne fonctionnent plus
comme avant. L’affichage des polices et des thèmes ne fonctionne plus non plus. Espérons que les mises à
jour et la version 2.24 régleront ces problèmes.
Linux Livre Page 60 Mardi, 23. septembre 2008 1:05 13

60 LINUX

Graver des CD et des DVD


CD et DVD de Rien de plus simple que de graver quelques fichiers ou un répertoire sur un CD ou un DVD.
données
La fenêtre Créateur de CD/DVD apparaît automatiquement lorsqu’on place un CD ou un
DVD dans le lecteur. Si ce n’est pas le cas, démarrez le programme avec Raccourcis > Créa-
teur de CD/DVD. Déplacez ensuite vos fichiers ou répertoires à sauvegarder par glisser-
déposer depuis une autre fenêtre. Pour finir, lancez Fichier > Graver un disque, puis configurez
si nécessaire la vitesse de gravure et quelques options, et c’est parti !
Il n’existe malheureusement pas de fonction de vérification pour s’assurer que le CD ou le
DVD gravé n’a pas d’erreur.
Copier des CD Pour copier un CD ou un DVD, placez-le dans le lecteur et lancez dans le menu Système
et des DVD
Raccourcis > Poste de travail. Cliquez du bouton droit sur l’icône du CD, puis lancez Copier
le disque.
Fichiers ISO Les fichiers ISO sont pour la plupart de gros fichiers qui regroupent l’ensemble du contenu
d’un CD ou d’un DVD dans un format spécial. Pour graver un tel fichier, cliquez dessus du
bouton droit et choisissez Graver un disque.
Vous pouvez auparavant visualiser le contenu du fichier ISO. Double-cliquez dessus pour
ouvrir le gestionnaire d’archives qui gère le fichier ISO exactement comme un fichier Zip. En
revanche, vous ne pouvez pas modifier son contenu.
Vous pouvez aussi créer vous-même une ISO de CD ou de DVD. Dans le créateur de CD/DVD,
il suffit de choisir Image de fichier dans la commande Graver un disque.

Accéder aux répertoires réseau


Partages La commande Raccourcis, Réseaux lance une fenêtre Nautilus qui affiche après quelques
Windows
secondes des icônes pour tous les réseaux reconnus. En pratique, il s’agit souvent d’une
seule icône. Lorsqu’on double-clique dessus, cela affiche tous les réseaux Windows reconnus.
Un double-clic supplémentaire permet d’accéder à tous les ordinateurs sur un réseau
donné. Si l’on double-clique sur l’un de ces ordinateurs, on peut voir les ressources qu’il met
à disposition (ce qu’on appelle les partages Windows). Un dernier double-clic permet
d’ouvrir le répertoire en question (voir Figure 4.6).
Si le répertoire est protégé par un mot de passe, il faut fournir l’identifiant de connexion et
le mot de passe. Il est alors possible d’enregistrer ces données dans une base de données de
mots de passe protégée par un mot de passe maître.
Si Nautilus ne trouve pas de serveurs Windows, la cause est probablement un pare-feu trop
restrictif entre votre machine et les ordinateurs sous Windows. Vous pouvez essayer de saisir
directement l’adresse smb://<nom du serveur>.
Notez que, s’il est généralement simple d’accéder à un répertoire réseau, travailler directe-
ment depuis celui-ci ne l’est pas forcément. Par exemple, de nombreux programmes, dont
Gimp, ne savent pas ouvrir un fichier sur un lecteur réseau et renvoient souvent des erreurs.
Le contournement de ce problème est de copier les fichiers sur un système local.
Répertoires Nautilus peut également fonctionner comme client FTP. Indiquez dans la barre d’adresse le
FTP
chemin du répertoire FTP (par exemple ftp://serveur.com/repertoire). Une fois la connexion
établie, une boîte de dialogue apparaît, dans laquelle vous pouvez vous connecter de manière
Linux Livre Page 61 Mardi, 23. septembre 2008 1:05 13

GNOME 61

Figure 4.6
On accède à un partage
Windows en cinq étapes.

anonyme ou via un identifiant et un mot de passe. Si vous le désirez, Nautilus peut enregistrer
les données de connexion pour accéder plus rapidement à un répertoire donné.
Connexion Pour faciliter l’accès à un répertoire réseau, vous pouvez aussi connecter le lecteur réseau de
permanente à
un répertoire manière permanente. Pour cela, lancez Raccourcis > Se connecter à un serveur..., puis choi-
réseau sissez le protocole réseau (partage Windows, FTP, WebDAV ou SSH par exemple) et indi-
quez les informations de connexion correspondantes (voir Figure 4.7). Gnome enregistre ces
informations, augmente le menu Raccourcis d’une nouvelle ligne et place une icône sur le
bureau. Il suffit alors d’un clic pour ouvrir le répertoire correspondant.

Figure 4.7
Connecter un partage
Windows de manière
permanente.
Linux Livre Page 62 Mardi, 23. septembre 2008 1:05 13

62 LINUX

Selon mes tests sous Ubuntu 8.04 et Fedora 9, tenter de connecter un répertoire réseau Windows génère
un message d’erreur. Deux icônes identiques apparaissent sur le bureau, mais disparaissent à la connexion
suivante. Espérons que ce problème sera bientôt réglé par une mise à jour de Gnome.
Les connexions réseau permanentes ne peuvent pas être modifiées. Pour les supprimer, cliquez du bouton
droit sur l’icône et lancez Démonter le volume.

4.3 Programmes Gnome


Outils de Gnome propose des outils pour la configuration de l’interface graphique et divers aspects
configuration
de l’administration de l’ordinateur. Ces programmes se trouvent dans les menus Système >
Paramètres et Système > Administration.
Il est probable que les futures versions de Gnome utilisent gnome-control-center pour lancer
ces applications (voir Figure 4.8). Ce programme est déjà fourni par la plupart des distri-
butions, au moins en tant que paquetage optionnel.

Figure 4.8
Le centre de contrôle
de Gnome.

Console : Le programme gnome-terminal est la variante Gnome de la fenêtre de shell (interpréteur de


gnome-
terminal commandes) xterm. Ce programme se distingue par quelques particularités :
• Les adresses web sont soulignées automatiquement lorsque la souris passe dessus.
Le bouton droit permet de démarrer un navigateur web pour afficher la page.
• Si vous glissez-déposez un fichier ou un répertoire depuis Nautilus dans la fenêtre de la
console, le nom complet du fichier est inséré.
• Ctrl++ et Ctrl+– permettent de modifier la taille de la police.
• On peut ouvrir un second terminal dans la même fenêtre à l’aide de Ctrl+Maj+T ou
Fichier, Ouvrir un onglet. On peut naviguer entre les onglets grâce à Ctrl+PgPréc et
Ctrl+PgSuiv.
• Le menu Édition, Profils permet de définir certaines options et comportements. Chaque
terminal peut se voir associer un profil propre.
Linux Livre Page 63 Mardi, 23. septembre 2008 1:05 13

GNOME 63
Éditeur de L’éditeur de texte par défaut de Gnome est gedit. Ce programme est facile à prendre en
texte : gedit
main et très pratique pour les tâches simples.
Afficher des Lorsqu’on double-clique sur un fichier PDF ou PS, le programme Evince démarre et affiche
fichiers PDF
ou PostScript : le document. Vous pouvez le parcourir, imprimer des pages, etc. Les PDF plus complexes
evince s’afficheront mieux sous Adobe Reader (en particulier, les PDF comportant des champs à
remplir), qui est gratuit, mais pas libre.
Archiver Pour envoyer plusieurs fichiers par courrier électronique ou faire des copies de sauvegarde,
des fichiers :
file-roller il est souvent pratique de compresser plusieurs fichiers ou le contenu d’un répertoire. Pour
cela, on utilise le gestionnaire d’archives file-roller. Ce dernier permet également de
visualiser et de décompresser des archives.
Occupation du Pour connaître les éléments les plus coûteux en termes de place sur votre disque dur, lancez
disque dur :
baobab Applications, Accessoires, Analyseur d’utilisation des disques. Ce programme, appelé Bao-
bab, affiche sous une forme graphique les répertoires et sous-répertoires qui contiennent
beaucoup de fichiers. Les différents boutons de la barre permettent différentes analyses ;
notez qu’une analyse d’un système complet peut être assez longue.
Gestion des Divers programmes Gnome nécessitent la saisie d’identifiants utilisateur et de mots de
mots de passe
et des clés : passe. Pour que ces programmes n’aient pas à gérer eux-mêmes les mots de passe, leur
seahorse gestion est centralisée dans Gnome. Elle est utilisée entre autres dans Nautilus, Evolu-
tion et NetworkManager. La base de mots de passe est sécurisée par un mot de passe
maître, demandé lors de la première utilisation du programme. Les accès suivants à la
base sont autorisés sans nouvelle saisie de ce mot de passe. Pour supprimer un élément
de cette base de données, lancez le programme seahorse via le menu Système, Préféren-
ces, Chiffrement et trousseaux. seahorse peut aussi être utilisé pour gérer les clés GPG
et SSH.
Gravure Pour graver un CD audio, lancez Applications > Sons et vidéos > Serpentine Audio CD Crea-
de CD audio :
Serpentine tor. Serpentine ne fait pas partie de l’installation de base d’Ubuntu 8.04. Vous devrez donc
probablement l’installer vous-même grâce au gestionnaire de paquetages. Le fonctionne-
ment du programme est simple : ajoutez les fichiers audio par glisser-déposer, puis cliquez
sur Graver sur le disque.
Gravure de CD La gravure de CD intégrée à Nautilus est simple à utiliser, mais fournit peu de fonctions, par
de données :
GnomeBaker exemple pour graver des CD multisessions. Il faut pour cela utiliser des programmes plus
et Brasero avancés, tels que GnomeBaker ou Brasero.

4.4 Trucs et astuces


Connexion Lorsque vous démarrez votre ordinateur, vous devez vous connecter avant de pouvoir com-
automatique
mencer à travailler. Si vous êtes le seul utilisateur et qu’aucune autre personne ne peut y
accéder, vous pouvez automatiser la première connexion lors du démarrage.
Linux Livre Page 64 Mardi, 23. septembre 2008 1:05 13

64 LINUX

Pour cela, lancez le programme gdmsetup dans Système, Administration, Fenêtre de


connexion. Dans l’onglet Sécurité, cochez l’option Activer la connexion automatique, puis
choisissez votre identifiant dans la liste déroulante (qui ne contient généralement que votre
nom).

Si Gnome et KDE sont installés en parallèle sur votre ordinateur, il est probable que la connexion soit
gérée par KDM et non par GDM. Il faut alors configurer la connexion automatique avec le programme
KDE kcmshell . Pour savoir quel gestionnaire de connexion fonctionne, utilisez la commande
utilisateur$ ps ax |egrep ’gdm|kdm’
Dans les distributions SUSE et Novell, la configuration de cette fonctionnalité est indépendante du gestion-
naire de bureau. Elle est enregistrée dans le fichier /etc/sysconfig/displaymanager. Ne modifiez
donc pas la configuration via les outils KDE ou Gnome, mais par le biais de YaST, sans quoi les modifications
seront annulées à la première occasion.

Démarrage Lorsque vous vous déconnectez, les programmes sont arrêtés. Si vous désirez les redémar-
automatique
rer lors de votre prochaine connexion, lancez Système > Préférences > Sessions, puis activez
l’option Se souvenir automatiquement des applications en cours d’exécution lors de la
déconnexion.
Lorsque vous vous reconnecterez, tous les programmes en cours redémarreront. Certains
rechargent même les documents ouverts − mais cela ne fonctionne que pour les programmes
Gnome.
Gnome enregistre les programmes à démarrer automatiquement dans des fichiers .desktop
situés dans le répertoire ~/.configu/autostart. Les fichiers suivants sont pris en compte :
~/.config/autostart/*.desktop configuration personnelle
/usr/share/gnome/autostart/*.desktop configuration globale de Gnome
/etc/xdg/autostart/*.desktop configuration globale pour tous les bureaux, y
compris Gnome et KDE
Éditeur de La boîte de dialogue de configuration des programmes Gnome (en général Éditions > Préfé-
configuration
gconf-editor rences) ne contient que les options les plus importantes. Pour la plupart des utilisateurs, ces
options suffisent et les boîtes de configuration sont ainsi plus simples à utiliser.
Les utilisateurs avancés qui désirent accéder aux options supplémentaires peuvent lancer
l’éditeur de configuration gconf-editor, depuis un terminal ou l’outil d’exécution auquel
on accède grâce à Alt+F2.
La Figure 4.9 montre un exemple de l’éditeur de configuration. Si vous désirez que le gra-
veur de CD de Nautilus utilise la fonction burnproof de votre graveur, activez l’option apps/
nautilus-cd-burner/burnproof.
Définir les Par défaut, Gnome utilise Firefox comme navigateur web, Evolution comme programme de
programmes
par défaut courrier électronique et gnome-terminal comme programme de console. Si vous désirez
changer ces applications, allez dans Système > Préférences > Applications préférées, ou
dans le programme gnome-default-application-properties. Les applications associées
aux divers supports amovibles sont définies dans gnome-volume-properties (ou dans
Systèmes > Préférences > Périphériques et médias amovibles).
Linux Livre Page 65 Mardi, 23. septembre 2008 1:05 13

GNOME 65

Figure 4.9
gconf-editor.

Surveillance En général, j’aime savoir comment se porte mon système. J’ai donc placé sur mon tableau de
du système
bord les deux applets Moniteur système et Moniteur de changements de fréquence du pro-
cesseur. La première montre la charge processeur courante et, selon la configuration, l’utili-
sation de la mémoire, l’activité réseau, etc. La seconde indique la fréquence du processeur,
ce qui est pratique pour les processeurs dont la fréquence s’adapte à leur utilisation. Si vous
avez un ordinateur multiprocesseurs ou multicœurs, utilisez une applet par cœur de processeur.
Raccourcis Certaines opérations courantes peuvent être effectuées plus rapidement au clavier qu’à la
clavier
souris. Le programme gnome-keybindings-properties résume les différents raccourcis
clavier et permet d’en définir de nouveaux. On y accède grâce à Systèmes > Préférences >
Raccourcis clavier.
Configuration Le clavier est configuré via le système graphique X, mais les utilisateurs de Gnome peuvent
du clavier
surcharger cette configuration grâce à Système > Préférences > Clavier qui lance le pro-
gramme gnome-keyboard-properties. Les personnes travaillant en plusieurs langues sou-
haitent souvent changer facilement de clavier. Pour cela, le plus simple est d’utiliser l’applet
Indicateur de claviers.
Linux Livre Page 66 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 67 Mardi, 23. septembre 2008 1:05 13

KDE
5
KDE est une alternative populaire à l’environnement de bureau Gnome, présenté au chapi-
tre précédent. Il répond en principe aux mêmes besoins, mais se différencie par son aspect et
utilise en interne des bibliothèques et des protocoles différents. L’acronyme KDE, qui signi-
fiait au départ Kool Desktop Environment, s’est plus tard décliné en K Desktop Environment.
KDE fournit, comparativement à Gnome, plus de fonctionnalités et de possibilités de confi-
guration qui s’adressent plutôt aux utilisateurs expérimentés de Linux. Son utilisation est
un peu plus compliquée, ce qui explique pourquoi de nombreuses distributions se basent
par défaut sur Gnome. KDE est alors fourni en option. Mais ne vous laissez pas impression-
ner. Si votre distribution fournit les paquetages appropriés, rien ne s’oppose à une installa-
tion de KDE et de Gnome en parallèle. Vous pourrez alors choisir l’environnement que vous
désirez lancer lors de la connexion.
KDE se base sur Qt, une bibliothèque commerciale de l’entreprise TrollTech. Qt est sous
licence GPL dans le cadre de projets libres. Son utilisation commerciale n’est nécessaire que
lorsqu’elle est à la base d’un logiciel développé sous licence propriétaire.
Comme Gnome, KDE diffère largement d’une distribution à une autre, que ce soit au niveau
de l’écran de connexion, des éléments du menu de démarrage, du comportement du bureau
et du choix des programmes. Dans ce chapitre, nous nous baserons sur la version 4.0.3 de
KDE d’openSUSE 11. openSUSE 11 est, à l’heure où nous écrivons ces lignes, la distribution
qui offre les meilleurs paquetages de KDE 4.
KDE 4.0 Ces dernières années, les développeurs de KDE ont travaillé sur une toute nouvelle version du
bureau. La version 4.0, disponible en janvier 2008, a été la source de nombreuses déceptions. En
effet, elle ne proposait que les bases du futur système de bureau : diverses bibliothèques et inter-
faces, dont Phonon (une API multimédia) et Solid (interactions avec le matériel). Vous trouverez
plus d’informations à ce sujet aux adresses http://phonon.kde.org et http://solid.kde.org.
Malheureusement, de nombreuses applications de KDE 4.0 n’utilisent pas encore ces biblio-
thèques et font toujours appel à celles de KDE 3. De plus, les "vraies" applications KDE 4
laissent encore à désirer en termes de stabilité. En résumé, l’utilisation de KDE 4.0 n’est
conseillée qu’aux développeurs de KDE et aux passionnés. Elle ne fonctionnera probable-
ment bien que pour les versions 4.1, voire 4.2. En attendant, les utilisateurs ont le choix entre
un KDE 3.5, stable mais un peu daté, et Gnome.
KDE et la L’une des différences les plus frappantes entre KDE et les autres interfaces utilisateur est le
souris
comportement de la souris. Sous KDE, un seul clic (et non un double-clic) suffit pour ouvrir
des fichiers, ainsi que pour les opérations similaires. Cela peut être déroutant au départ,
mais permet de travailler de manière plus efficace et confortable. De plus, si vous ne vous
habituez pas au simple clic, vous pouvez reconfigurer KDE dans ce sens. Pour cela, lancez le
programme Configuration du système, puis choisissez le module Clavier & Souris, ouvrez
l’onglet Souris et activez l’option Utiliser le double-clic pour ouvrir les dossiers et les fichiers.
Linux Livre Page 68 Mardi, 23. septembre 2008 1:05 13

68 LINUX

5.1 Conception du bureau


Connexion et Avant de pouvoir travailler avec KDE, vous devez saisir votre identifiant utilisateur et votre
déconnexion
mot de passe. L’écran de connexion dispose d’un menu Type de session (généralement, en
bas à gauche). Si vous avez installé un autre environnement de bureau ou gestionnaire de
fenêtre, vous pouvez choisir le programme à lancer.
Pour vous déconnecter ou redémarrer l’ordinateur, choisissez l’élément correspondant du
menu KDE (selon la distribution, Terminer, Éteindre, Quitter, Se déconnecter, etc.). Si le
matériel le permet, vous pouvez aussi mettre l’ordinateur en veille ou en hibernation.
Changement Dans le menu KDE, la commande Quitter > Changer d’utilisateur permet de se connecter
d’utilisateur
avec un second nom d’utilisateur sans que l’utilisateur courant ait à fermer ses programmes.
En interne, un nouveau système graphique (nouveau serveur X) est démarré pour chaque
utilisateur, ce qui nécessite beaucoup de ressources. L’utilisation par plusieurs utilisateurs
en parallèle ne fonctionne donc correctement que sur les ordinateurs rapides. Pour changer
d’utilisateur, on utilise les combinaisons de touches suivantes :
Ctrl+Alt+F7 premier utilisateur
Ctrl+Alt+F8 deuxième utilisateur
Ctrl+Alt+F9 troisième utilisateur
Bureau L’aspect du bureau dépend largement de la distribution. La Figure 5.1 présente le bureau
d’openSUSE 11. Il se compose par défaut d’un tableau de bord en bas de l’écran et d’un
espace de travail. Le tableau de bord contient le menu KDE, quelques icônes pour démarrer
rapidement certaines applications, une liste des tâches avec les icônes de toutes les fenêtres
ouvertes et divers programmes d’aide (applets).

Figure 5.1
Le bureau KDE.
Linux Livre Page 69 Mardi, 23. septembre 2008 1:05 13

KDE 69
Plasma La nouveauté graphique la plus visible de KDE 4 est Plasma. Ce composant permet de pla-
cer des objets interactifs sur le bureau ou le tableau de bord, et de les utiliser. Cette fonction-
nalité est comparable à celle de Dashboard d’Apple. De plus, Plasma est responsable de
l’affichage des icônes sur le bureau et le tableau de bord.
Zone de travail La zone de travail est au départ plutôt vide, en dehors de quelques icônes pour la corbeille,
des programmes importants et les supports de données externes. Vous pouvez créer
d’autres fichiers et répertoires sur le bureau − ils seront représentés sous la forme d’icônes.
Dans KDE 4, on peut lancer des petits programmes, appelés plasmoïdes, directement sur le
bureau. Vous pouvez les ajouter en quelques clics à partir de l’icône Plasma en haut à droite
de l’écran. Le choix est encore limité, mais cela évoluera probablement avec les prochaines
versions de KDE. L’horloge en haut à droite de la Figure 5.1 sur le bureau en est un exemple.
Si vous utilisez des icônes et des plasmoïdes sur votre bureau, le raccourci Ctrl+F12 peut
être utile : il minimise toutes les fenêtres et n’affiche que les éléments du bureau. Si vous
saisissez à nouveau ce raccourci, les fenêtres reviennent à leur position initiale.
La position et la taille des icônes et des plasmoïdes est enregistrée dans le fichier ~/.kde4/
share/config/plasma-appletrc. Lorsque vous créez des fichiers et des dossiers sur le
bureau, ils sont en réalité enregistrés dans ~/Desktop.
Tableaux de Un tableau de bord est une zone rectangulaire située sur l’un des côtés de l’écran (habituel-
bord
lement, en bas). Il n’a en soi aucune fonction ; il n’est qu’un conteneur de plasmoïdes. Cer-
tains éléments de base comme le menu et la barre des tâches sont, sous KDE 4, des
plasmoïdes. On peut donc, même si ce n’est pas courant, placer le menu, la liste des tâches
et d’autres contenus habituels du tableau de bord directement sur le bureau. L’avantage
principal du tableau de bord est qu’il n’est pas recouvert par les fenêtres.
Le menu contextuel Options pour tableau de bord > Paramètres du panneau permet d’en
modifier la taille et la position. Il est cependant déconseillé de le placer à droite ou à gauche,
car il n’est pas optimisé pour une représentation verticale.
Menu KDE Le plasmoïde le plus important est sans doute le menu KDE (voir Figure 5.2). Complètement
refondu depuis KDE 3, il se divise en cinq catégories :
• Favoris contient les principaux programmes de l’utilisateur. La liste n’est pas actualisée
automatiquement (en se basant, par exemple, sur la fréquence à laquelle les program-
mes sont utilisés). Il faut indiquer explicitement dans l’onglet Applications ceux qui
doivent s’y trouver à l’aide du menu contextuel.
• Applications contient une liste hiérarchisée de tous les programmes. La navigation est
différente de celle d’un menu habituel et demande un peu d’habitude.
• Poste de travail permet de lancer divers programmes d’administration et d’ouvrir cer-
tains répertoires importants : le répertoire personnel, le répertoire racine, la corbeille,
divers supports de données externes, etc.
• Utilisé récemment contient une liste des programmes, fichiers et répertoires utilisés
récemment.
• Quitter contient les commandes pour se déconnecter, changer d’utilisateur et redémarrer
l’ordinateur.
Linux Livre Page 70 Mardi, 23. septembre 2008 1:05 13

70 LINUX

Figure 5.2
Le menu KDE.

Indépendamment de ces catégories, le menu KDE contient une fonction de recherche. Elle
est particulièrement utile pour lancer des programmes rapidement sans avoir à naviguer
dans le menu Applications.

Selon la distribution, vous pouvez aussi utiliser l’ancienne forme du menu. Pour cela, cliquez du bouton droit
sur le bouton du menu et choisissez Passer au style de menu KDE classique.

Liste des Le plasmoïde Liste des tâches affiche une icône pour chaque fenêtre et correspond à la barre
tâches
des tâches de Windows. Malheureusement, il ne permet que des modifications de configu-
ration limitées, contrairement à celui sous KDE 3.
C’est le gestionnaire de fenêtres qui gère le comportement des fenêtres : déplacement,
agrandissement, minimisation, etc. Sous KDE, c’est le rôle du programme KWin. Le module
Comportement des fenêtres de la Configuration du système permet de modifier de nom-
breuses propriétés : ce que font les boutons de la souris lorsqu’on les utilise dans la barre de
titre d’une fenêtre, sous quels critères une nouvelle fenêtre est placée, le verrouillage éventuel
des fenêtres contre le déplacement, etc.
On peut aussi effectuer de nombreuses opérations sur les fenêtres au clavier. Les raccourcis cor-
respondants se trouvent dans le menu Clavier & Souris de l’outil de configuration du système.
Espaces de Les espaces de travail permettent de partager les fenêtres de programmes sur plusieurs
travail
bureaux virtuels et de passer d’un bureau à un autre. Cela facilite le travail et améliore la
vue d’ensemble lorsque plusieurs fenêtres sont ouvertes simultanément. La gestion de ces
espaces est déléguée au plasmoïde Bip (Configurer les mini-bureaux). La boîte de configuration
permet d’indiquer le nombre de bureaux souhaités, ainsi que d’autres options.
Pour les fenêtres importantes, on peut définir si elles doivent se trouver sur tous les bureaux
(et non sur un seul). Pour cela, activez l’option Vers le bureau, Tous les bureaux dans le
menu de la fenêtre.
Linux Livre Page 71 Mardi, 23. septembre 2008 1:05 13

KDE 71
Boîte à Lorsque le panneau contient une boîte à miniatures, les programmes en tâche de fond peu-
miniatures
vent afficher une notification dans le tableau de bord (par exemple, lorsqu’une mise à jour
est disponible ou qu’un courrier électronique vient d’arriver). Cette boîte se trouve généra-
lement à droite ou en bas du panneau. Elle n’a en soi aucune fonction : il s’agit d’un conteneur
où les autres programmes peuvent représenter une icône.
Notification Le plasmoïde Notification de nouveaux périphériques indique qu’un nouveau support de
de nouveaux
périphériques données est connecté et permet d’ouvrir le système de fichiers ou de démonter l’arbores-
cence correspondante.

5.2 Dolphin
Sous KDE, Dolphin est le gestionnaire de fichiers par défaut.
Vues En général, vous pouvez lancer Dolphin via le menu KDE dans Poste de travail, Dossier per-
sonnel. Au centre de la fenêtre s’affichent les fichiers pour lesquels il existe trois modes de
représentation (voir Figure 5.3) : Icônes, Détails et Colonnes. Le mode Colonnes affiche chaque
sous-répertoire dans une nouvelle colonne.

Figure 5.3
Les trois modes
de représentation
de Dolphin.

Le bouton Aperçu active, quel que soit le mode d’affichage, un aperçu des documents. La
taille de cet aperçu peut être modifiée dans Configuration > Configurer Dolphin > Modes de
vue > Icônes.
Pour les opérations de copie et de déplacement, on peut scinder la fenêtre horizontalement
ou verticalement, grâce au bouton Scinder.
Linux Livre Page 72 Mardi, 23. septembre 2008 1:05 13

72 LINUX

Le répertoire courant s’affiche dans une barre de navigation sous le menu. Ctrl+L permet de
basculer entre deux vues de cette barre : en tant que boutons, ce qui permet de changer rapi-
dement de répertoire, ou sous forme de texte, ce qui permet de saisir rapidement un nouveau
chemin. Indépendamment du mode de cette barre, F6 permet de saisir un nouveau chemin.
Barres À gauche, à droite et en bas du contenu de la fenêtre, vous pouvez afficher, à partir du menu
complémen-
taires Afficher, Barre ou grâce aux touches F4, F7, F9 et F11, un terminal, la hiérarchie des répertoi-
res, une liste des emplacements les plus souvent utilisés ou encore des informations sur un
fichier donné.
Accès aux Le menu KDE affiche dans le groupe Poste de travail, Stockage amovible, toutes les parti-
supports de
données tions montées, ainsi que les supports externes (CD, DVD, etc.). Lorsque vous connectez un
lecteur USB ou Firewire, le tableau de bord affiche l’information correspondante. Un clic
permet d’ouvrir le gestionnaire de fichiers et d’afficher le contenu du support. Avant de
débrancher le lecteur, vous devez lancer la commande Éjecter du menu contextuel ou Reti-
rer en toute sécurité dans la barre Emplacements de Dolphin. C’est la seule manière de
s’assurer que tous les fichiers sont fermés et qu’aucune perte de données ne surviendra.
Accès aux La barre Emplacement de Dolphin permet aussi d’accéder au réseau local. Mes tests n’ont
répertoires
réseau pas été concluants quant au parcours du réseau. En revanche, le fait d’indiquer directement
une adresse sous la forme smb://nom_du_serveur/répertoire fonctionne.

5.3 Konqueror
Le programme Konqueror est un gestionnaire de fichiers pour les utilisateurs avancés, un
navigateur web, un client réseau (FTP, SCP, répertoires Windows, etc.) et une visionneuse de
documents (images, fichiers d’aide, etc.).
En raison des nombreuses fonctions de Konqueror, son menu est malheureusement sur-
chargé et peu clair. De plus, mes tests ont mis en évidence une grande instabilité de Konque-
ror − de nombreuses opérations qui fonctionnaient sans problème sous KDE 3 sont
actuellement plus délicates sous KDE 4.

Utilisation en tant que gestionnaire de fichiers


Pour utiliser Konqueror en tant que gestionnaire de fichiers (voir Figure 5.4), cliquez sur le bou-
ton Début ou saisissez ~/ dans la barre d’adresse. Dans le menu Affichage, vous pouvez choisir,
comme dans Dolphin, entre trois modes de représentation. La quatrième vue, Afficheur de
taille de fichiers, permet de visualiser la place nécessaire aux différents dossiers et répertoires.
F9 permet d’afficher ou de masquer la barre de navigation sur le côté droit. On y trouve,
entre autres, des signets, différents services, une arborescence de répertoires et un explorateur
réseau.
L’utilisation du simple clic pour ouvrir des fichiers induit une particularité quant à la sélec-
tion des fichiers. Il faut, pour ne pas ouvrir le fichier considéré, appuyer en même temps sur
Ctrl ou Maj.
Lorsque vous cliquez sur un fichier Zip ou Tar (se terminant par .tar, .tar.gz, .tgz, .zip,
etc.), le contenu de l’archive s’affiche dans un nouveau répertoire.
Linux Livre Page 73 Mardi, 23. septembre 2008 1:05 13

KDE 73

Figure 5.4
Konqueror en tant que
gestionnaire de fichiers.

Pour copier ou déplacer des fichiers, vous utiliserez souvent deux fenêtres de Konqueror. Il existe une alter-
native : vous pouvez aussi scinder une fenêtre en deux grâce à Fenêtre, Scinder la vue gauche/droite ou
Fenêtre, Scinder la vue haut/bas.

Images Konqueror peut afficher des images d’aperçu pour tous les formats de fichiers qu’il connaît
d’aperçu
(choisir Affichage, Aperçu dans le menu). On peut modifier la taille des icônes d’aperçu
grâce à Ctrl++ et Ctrl+–. Pour des raisons d’efficacité, les images d’aperçu ne s’affichent que
pour les fichiers dont la taille est inférieure à une taille donnée, limite que l’on peut modifier
dans Configuration > Configurer Konqueror > Aperçus & Méta-informations. Les images
sont mises en cache dans le répertoire ~/.thumbnails.
Fichiers cachés Pour afficher les fichiers cachés (dont le nom commence par un point), lancez Affichage >
Afficher les fichiers cachés.
Droits d’accès Un utilisateur ne peut pas lire ou modifier tous les dossiers ou répertoires. Linux enregistre
donc pour chaque fichier et répertoire le propriétaire et les droits d’accès. Les concepts sous-
jacents seront expliqués au Chapitre 13. Pour modifier ces droits, cliquez du bouton droit
sur le fichier ou le répertoire, puis allez dans Propriétés > Droits d’accès (voir Figure 5.5).
Supprimer Lorsque vous supprimez des fichiers et des dossiers, ceux-ci arrivent d’abord dans la cor-
des fichiers
beille. Vous pouvez en voir le contenu dans le gestionnaire de fichiers grâce à Aller > Corbeille.
Pour les supprimer définitivement, sélectionnez-les dans la corbeille et appuyez sur Suppr.
Pour les supprimer sans qu’ils passent par la corbeille, appuyez sur Maj+Suppr.
Utilisation du Si vous désirez savoir dans quels répertoires se trouvent les plus grosses quantités de don-
disque dur
nées, vous pouvez utiliser le mode Affichage de la taille de fichiers. Konqueror affiche un
graphique qui se compose de rectangles, dont la surface représente la taille des fichiers.
Ce graphique peut aussi s’afficher sans les éléments spécifiques à Konqueror, grâce à la
commande fsview.
Linux Livre Page 74 Mardi, 23. septembre 2008 1:05 13

74 LINUX

Figure 5.5
Droits d’accès à un fichier.

Accès aux répertoires réseau


Navigateur Pour utiliser Konqueror en tant que navigateur web, saisissez simplement une adresse web dans
web
la barre d’adresse. Nous parlerons de Konqueror en tant que navigateur web au Chapitre 6.
FTP Lorsque l’adresse commence par ftp://, Konqueror passe automatiquement en mode FTP.
L’interface et l’utilisation sont alors comparables à l’utilisation du programme en tant que
gestionnaire de fichiers. Si vous désirez vous connecter au serveur FTP avec un nom d’utili-
sateur particulier, vous devez écrire l’adresse sous la forme ftp://nom@adresse. Une fois la
connexion établie, une boîte de dialogue s’affiche pour la saisie du mot de passe.
SSH Konqueror permet aussi de communiquer avec un ordinateur via le protocole SSH et de
copier des fichiers. Pour cela, indiquez l’adresse fish://nom@ordinateur. Konqueror montre
alors tous les fichiers de l’ordinateur distant.
Partages Konqueror permet d’explorer des serveurs Windows ou Samba sur le réseau local. Pour
Windows
cela, il suffit de taper smb:/ dans la barre d’adresse. Pour accéder directement à un partage,
utilisez la syntaxe smb://nom_du_serveur/nom_du_partage. Celle-ci est particulièrement
importante lorsque le parcours du réseau n’est pas possible, qu’il s’agisse d’un problème de
pare-feu ou de configuration réseau.

Adresses spéciales
La liste suivante indique les adresses spéciales les plus importantes de Konqueror.

Adresses spéciales de Konqueror


Fichiers locaux
file:/etc/fstab fichier local
tar:/fichierarchive accès à un fichier Tar
zip:/fichierarchive accès à un fichier Zip
audiocd:/ accès à un CD audio
trash:/ corbeille
Linux Livre Page 75 Mardi, 23. septembre 2008 1:05 13

KDE 75

Réseau
http://www.pearson.fr adresse web
ftp://utilisateur@mars/répertoire serveur FTP sur l’ordinateur mars
sftp://utilisateur@mars/répertoire serveur SFTP sur l’ordinateur mars
fish://utilisateur@mars/répertoire accès SSH à l’ordinateur mars
smb://mars/partage partage Windows

Aide
man:ls page de manuel de la commande ls
info:emacs page info du programme emacs
help:kmail aide KDE du programme kmail

Autres
applications:/ liste de tous les programmes
fonts:/ liste de toutes les polices
remote:/ navigateur réseau
settings:/ module de configuration du centre de contrôle

5.4 Applications KDE


Cette section présente quelques programmes KDE fréquemment utilisés. Notez qu’il s’agit
encore pour la plupart de la version KDE 3. Leur portage sous KDE 4 n’est attendu que pour
KDE 4.1 au plus tôt.
Configuration Les divers modules de configuration de KDE 4 sont regroupés dans un nouveau pro-
de KDE
gramme de configuration système (systemsettings, voir Figure 5.6). Comme il n’est pas
toujours facile de trouver tout de suite le bon module, il existe une fonction de recherche
dans laquelle vous pouvez saisir des mots clés. Si vous êtes déjà dans un module, vous pouvez
revenir à la liste des modules grâce au bouton Vue globale.
Vous pouvez aussi lancer des modules individuels via la commande kcmshell
nom_du_module. Une liste de tous les modules disponibles est accessible avec la commande
kcmshell -list. Les modifications sont enregistrées dès que vous cliquez sur le bouton
Appliquer.
KDE contient, comme Gnome, des modules de configuration qui ne s’appliquent pas au
bureau, mais au système (réseau, imprimantes, etc.). Ils sont très utiles sur les distributions
qui ne fournissent pas leurs propres outils. Cependant, s’ils existent, utilisez de préférence
les programmes de configuration de votre distribution.
kprinter Dans tous les programmes KDE, l’option Fichier > Imprimer affiche une boîte de dialogue
confortable, dans laquelle vous pouvez choisir votre imprimante. Vous pouvez aussi imprimer
vers un fichier PostScript ou PDF.
Linux Livre Page 76 Mardi, 23. septembre 2008 1:05 13

76 LINUX

Figure 5.6
Le centre de contrôle
de KDE.

La commande kprinter peut également remplacer lpr. Elle imprime le fichier ou les don-
nées qui lui sont passées via un redirecteur pipe, |. La boîte de dialogue KDE d’impression
s’affiche alors.
utilisateur$ kprinter fichier
utilisateur$ ls -l | kprinter

Archiver des Konqueror permet de visualiser et d’extraire les fichiers qui se terminent par *.tar.gz,
fichiers : Ark
*.tgz et *.zip. Cependant, vous ne pouvez pas créer de nouvelle archive ou en modifier
une existante par ce biais. Pour cela, il faut utiliser Ark, qui fonctionne d’une manière tout à
fait comparable à WinZip.
Application konsole permet de lancer un ou plusieurs interpréteurs de commandes dans une console
de terminal :
Konsole texte. Vous pouvez passer d’un terminal à un autre avec Maj et les flèches de direction.
Ctrl+Maj et les flèches de direction permettent de changer l’ordre des onglets. Pour créer un
nouvel onglet, double-cliquez dans la barre.
Notez la possibilité, fort pratique, de copier des noms de fichiers par glisser-déplacer depuis
Konqueror.
Gestion des Lorsque vous remplissez un formulaire de connexion pour la première fois (par exemple, lors-
mots de
passe : que vous utilisez un outil web de courrier électronique comme IMP), un assistant de configura-
KWallet- tion du gestionnaire de portefeuilles apparaît. Le programme KWalletManager aide à sécuriser
Manager
les données. Lors d’une utilisation ultérieure de la même page, il remplira le formulaire pour
vous. Il est également utilisé pour centraliser les mots de passe et autres informations critiques
dans KMail/Kontact, dans NetworkManager et dans divers autres programmes KDE.
L’accès à ces données, chiffrées dans KWalletManager, est sécurisé grâce à un mot de
passe maître. Lors d’une session KDE, il suffit de saisir une seule fois le mot de passe maître.
Lors de la première utilisation de KWalletManager, un assistant vous aide à la configuration
de base du programme. Celle-ci se limite à valider l’utilisation de KWalletManager comme
Linux Livre Page 77 Mardi, 23. septembre 2008 1:05 13

KDE 77

gestionnaire de mots de passe et à saisir un mot de passe maître. Pour des raisons de sécu-
rité, ce dernier doit être différent du mot de passe associé au compte.
PDF et Lorsque vous cliquez sur un fichier *.pdf ou *.ps, le programme Okular se lance et affiche
PostScript :
Okular le document. Vous pouvez alors le parcourir, imprimer des pages, etc.
Gestion des Si vous utilisez des clés GPG pour chiffrer ou signer vos courriers électroniques, ou dans
clés GPG :
Kgpg d’autres programmes, il est utile de disposer d’un outil central de gestion des clés. Sous
KDE, c’est le programme Kgpg qui s’en charge.
Éditeurs de Selon la distribution, trois éditeurs de texte peuvent être installés avec KDE : KEdit, KWrite
texte : KEdit,
KWrite, Kate et Kate. Les deux premiers sont simples à utiliser, mais ne fournissent que les fonctions de
base. Kate se positionne comme un éditeur pour les programmeurs et les utilisateurs avan-
cés. Vous pouvez regrouper plusieurs fichiers ouverts dans une session, replier des parties
de code (fonctions, classes), etc.
Presse- Le programme Klipper est normalement lancé sous KDE. Son fonctionnement de base est de
papiers :
Klipper mémoriser le dernier élément inséré dans le presse-papiers. Le contenu de cet élément est ana-
lysé et peut déclencher des actions. Par exemple, un élément commençant par http:// peut
entraîner l’ouverture d’une fenêtre qui permet d’ouvrir l’adresse web dans un navigateur.
Renommage KRename permet de renommer efficacement des fichiers, de les numéroter ou encore de
de fichiers :
KRename modifier des informations, telles que la date. On peut utiliser à cette fin les expressions
rationnelles. Avant toute opération, KRename affiche un résumé des anciens et des nouveaux
noms de fichiers.
Gravure de CD K3b est le programme de gravure le plus polyvalent sous Linux. Sa multitude de fonctions attire
et de DVD :
K3b même certains utilisateurs convaincus de Gnome. Il permet de graver des CD et des DVD, y
compris multisessions, avec de nombreuses options. On peut aussi copier des CD et des DVD,
ou encore graver des images ISO. K3b n’est pas encore porté complètement sous KDE 4 et utilise
des bibliothèques KDE 3. Le grand nombre d’options et de boîtes de dialogue disponibles peut
paraître effrayant à première vue, mais les choix par défaut sont généralement sensés.

5.5 Trucs et astuces


Connexion Lorsque vous démarrez votre ordinateur, vous devez vous connecter avant de pouvoir com-
automatique
mencer à travailler. Si vous êtes le seul utilisateur de l’ordinateur et qu’aucune autre personne
ne peut y accéder, vous pouvez automatiser la première connexion lors du démarrage.
La fonction de connexion automatique est configurée dans le module Avancé > Gestionnaire
de connexion > Commodités des paramètres système, qu’il faut lancer avec des privilèges
root. Cochez l’option Activer la connexion automatique, puis choisissez l’utilisateur désiré
pour la connexion automatique.

Si Gnome et KDE sont installés en parallèle sur votre ordinateur, il est probable que la connexion soit gérée par
KDM et non par GDM. Il faut alors configurer la connexion automatique avec le programme KDE kcmshell.
Pour savoir quel gestionnaire de connexion fonctionne, utilisez la commande
utilisateur$ ps ax |egrep ’gdm|kdm’
Linux Livre Page 78 Mardi, 23. septembre 2008 1:05 13

78 LINUX

Dans les distributions SUSE et Novell, la configuration de cette fonctionnalité est indépendante du gestion-
naire de bureau. Elle est enregistrée dans le fichier /etc/sysconfig/displaymanager. Ne modifiez
donc pas la configuration via les outils KDE ou Gnome, mais par le biais de YaST, sans quoi les modifications
seront annulées à la première occasion.

Démarrage Lorsque vous vous déconnectez, les programmes sont arrêtés. À la connexion suivante,
automatique
KDE tente de les redémarrer et de rétablir la session. Pour les programmes KDE, cela fonc-
tionne relativement bien. Pour d’autres, cela fonctionne avec certaines limitations (par
exemple, le document ouvert n’est pas rechargé), voire pas du tout. Les détails de ce compor-
tement se règlent dans le module Avancé > Gestionnaire de session.
Indépendamment de la session, vous pouvez enregistrer les programmes à démarrer automati-
quement dans le répertoire ~/.kde[4]. KDE s’attend à trouver dans ce dossier des fichiers
*.desktop qui définissent le programme à lancer. Il arrive qu’un programme soit alors lancé en
double : une fois pour le rétablissement de la session et une fois par le démarrage automatique.
KDE utilise plusieurs répertoires pour connaître les applications à lancer :
~/.kde[4]/Autostart/ configuration personnelle
/usr/share/autostart/ configuration globale de KDE
/etc/xdg/autostart/ configuration globale pour tous les bureaux, y compris Gnome
et KDE
Administration Lorsque vous avez un problème avec votre ordinateur, par exemple lorsqu’un programme
distante
ne fonctionne pas correctement, un ami peut vous aider grâce à l’administration à distance.
Il peut ainsi voir dans une fenêtre de son ordinateur le contenu de votre écran et utiliser tous
les programmes avec la souris et le clavier.
Répertoires de La plupart des programmes KDE enregistrent leurs options dans des fichiers du réper-
configuration
toire ~/.kde/ ou ~/.kde4/. Plusieurs sous-répertoires sont créés, et en particulier les
répertoires suivants :
~/.kde[4]/Autostart/ configuration personnelle du démarrage automatique
~/.kde[4]/share/config/ paramètres de configuration
~/.kde[4]/share/apps/ fichiers spécifiques aux programmes
Icône de L’écran de connexion peut associer une petite image à chaque utilisateur. Pour la modifier,
connexion
lancez la commande kcmshell kcm_useraccount. Vous pouvez changer votre mot de passe,
l’icône de connexion, ainsi que d’autres paramètres personnels. L’icône de connexion est
enregistrée au format PNG dans le fichier ~/.face.icon.
Définir les Par défaut, KDE utilise Konqueror comme navigateur web, Kontact comme programme de
programmes
par défaut courrier électronique et Konsole comme programme de console. Si vous désirez changer ces
applications, allez dans le module Applications par défaut de la Configuration du système.
Raccourcis Certaines opérations courantes peuvent être effectuées plus rapidement au clavier qu’à la
clavier
souris. Des raccourcis peuvent s’afficher et être modifiés dans le module Clavier & Souris >
Raccourcis clavier.
Vous pouvez aussi définir des raccourcis pour démarrer des programmes. Utilisez pour cela
kmenuedit et associez un raccourci clavier à un élément du menu KDE.
Linux Livre Page 79 Mardi, 23. septembre 2008 1:05 13

PARTIE 2 – LA BUREAUTIQUE SOUS LINUX

Navigateurs Internet
6 (Firefox, Konqueror)
Ce chapitre se focalise essentiellement sur les deux navigateurs Internet les plus
populaires sous Linux, Firefox et Konqueror. Si je n’aborderai que brièvement
leur utilisation (vous savez déjà comment naviguer sur le Web), vous trouverez
en revanche ici des astuces de configuration, d’installation de greffons (Adobe
Reader, Flash, Java), etc.
E-mail, FTP, Les clients de lecture et de composition d’e-mails seront présentés au prochain
SSH
chapitre. Vous trouverez au Chapitre 16 les astuces concernant le téléchar-
gement de fichiers par FTP, wget et Torrent, et celles traitant de la manipulation
de SSH et scp.
Messagerie Les services Internet IRC (Internet Relay Chat) et IM (messagerie instantanée ou Ins-
instantanée,
VoIP tant Messaging) ne seront pas traités dans le cadre de cet ouvrage : dans les deux
cas, il s’agit de formes de communication dynamiques impliquant un contact
direct entre les interlocuteurs (c’est-à-dire que les deux personnes doivent être en
ligne simultanément). Si vous souhaitez utiliser uniquement IRC, le programme
XChat (http://www.xchat.org/) est un bon choix. Les programmes Kopete (http://
kopete.kde.org/) et Konversation (sous KDE) ainsi que Pidgin (http://www.pid-
gin.im/) (sous Gnome et anciennement connu sous le nom gaim) sont quant à eux
des clients universels qui prennent en charge divers protocoles de messagerie ins-
tantanée en plus d’IRC (par exemple AIM, ICQ, MSN et Yahoo!) [http://lwn.net/
Articles/216456/ (article en anglais)].
Un autre point que nous laisserons de côté dans cet ouvrage est le sujet de la
Voix sur IP (abrégé en VoIP) et de la téléphonie sur Internet. Le programme le
plus connu pour cet usage est le logiciel commercial Skype (http://
www.skype.com/download/skype/linux/). La version Linux en est gratuite,
mais elle est quelque peu obsolète comparée à son homologue Windows. Ekiga
(http://ekiga.org/) est, par exemple, une alternative open-source intéressante à
Skype.

6.1 Firefox
Histoire Firefox peut se réjouir d’une adoption croissante sous Windows, mais il est éga-
et nom
lement et de très loin le navigateur Internet le plus populaire sous Linux. Voici,
rapidement, quelques mots présentant l’origine du logiciel : en 1998, la société
Netscape a "libéré" le code source de Netscape Navigator, qui est donc devenu
un projet open-source. Dans le cadre du projet Mozilla a vu le jour la suite appli-
cative Mozilla, qui comprenait un navigateur web, un client de courrier électro-
nique et de news, ainsi qu’un éditeur HTML, le tout en une seule application.
En 2002, parce que le code était devenu illisible, les développeurs ont décidé
Linux Livre Page 80 Mardi, 23. septembre 2008 1:05 13

80 LINUX

d’en séparer les différents composants. Depuis lors, le nouveau logiciel Mozilla Firefox ne
contient que les fonctionnalités de navigation web, tandis que le logiciel Mozilla Thunder-
bird (que nous présentons au chapitre suivant) gère les fonctionnalités de courrier électroni-
que et de news. D’autres rejetons de ce projet, que nous ne présentons pas dans cet ouvrage,
sont l’éditeur HTML Nvu et l’agenda Mozilla Sunbird.
Certains développeurs du projet Mozilla, sceptiques quant à la séparation des fonctionnali-
tés, ont fondé un nouveau projet dénommé Seamonkey et destiné à unifier de nouveau tou-
tes ces fonctions dans un même logiciel. AOL a par ailleurs un temps proposé sa propre
version personnalisée, fondée sur le code de Mozilla. Ce chapitre ne s’intéressera toutefois
qu’à la version 3.0 de l’outil Mozilla Firefox en tant que tel.
Firefox et Par le passé, les termes de licence plutôt drastiques du projet Firefox ont causé des remous
Debian
chez bien des développeurs Linux : bien qu’il s’agisse de code open-source, un programme
ne peut s’appeler Firefox que s’il contient du code source "officiel" produit par les déve-
loppeurs Firefox. Ce qui a en particulier conduit à des problèmes fréquents lors des mises à
jour : de nombreuses distributions Linux proposaient une version de Firefox intégrée à la
distribution et lui ajoutaient toutes les mises à jour de sécurité au fur et à mesure, plutôt que
systématiquement contraindre leurs utilisateurs à mettre à niveau leur installation vers la
dernière version de Firefox. De telles mises à jour de sécurité ne répondaient toutefois pas
aux conditions d’utilisation de la licence Firefox.
Même si, sur ce point, les camps de Linux et Firefox sont parvenus à un compromis grâce à Mark
Shuttleworth (Ubuntu), Debian a choisi d’intégrer le navigateur Web Firefox et le client de cour-
rier électronique Thunderbird à sa distribution sous des noms qui lui sont propres. Ainsi, sous
Debian, Firefox s’appelle Iceweasel et Thunderbird s’appelle Icedope. Ceci permet à Debian de
proposer des modifications du code ou des icônes propres sans avoir à se préoccuper de Firefox.

Fonctionnalités de base
L’utilisation du navigateur ne présente rien de nouveau par rapport à ce à quoi vous êtes
habitué avec n’importe quel autre navigateur : vous cliquez sur des liens, enregistrez des
signets pour les pages importantes, etc. Je ne reviendrai pas ici sur ces fonctionnalités élémen-
taires, je pense que vous les maîtrisez déjà.
Comme tous les navigateurs Internet modernes, Firefox peut ouvrir plusieurs pages au sein
d’une même fenêtre, à l’aide des onglets. Pour ouvrir une nouvelle sous-fenêtre, on utilise
soit la combinaison de touches Ctrl+T, soit un clic droit de la souris sur un lien pour choisir
Ouvrir le lien dans un nouvel onglet, dans le menu contextuel qui apparaît. Les combinai-
sons de touche Ctrl+PgPréc ou Ctrl+PgSuiv permettent de passer d’un onglet à l’autre.
Ctrl+W permet de fermer l’onglet courant.
Fenêtres De nombreux sites web utilisent JavaScript pour ouvrir des fenêtres "pop-up" de publicité.
pop-up
Firefox l’empêche dans la plupart des cas et affiche un avertissement sous la barre d’adresse.
Si vous le souhaitez, vous pouvez, en cliquant sur cet avertissement, autoriser l’ouverture
de la fenêtre pop-up qui a été bloquée ou autoriser systématiquement les fenêtres pop-up
pour le site web concerné. Par exemple, le système de gestion des comptes en ligne de ma
banque ne fonctionne que par fenêtre pop-up. J’ai donc exclu le site de ma banque de la
protection contre les fenêtres pop-up.
Linux Livre Page 81 Mardi, 23. septembre 2008 1:05 13

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR) 81

Figure 6.1
Le navigateur
web Firefox.

Pour configurer la gestion des fenêtres pop-up ainsi que la liste des sites autorisés, passez
par la boîte de dialogue Édition > Préférences > Contenu.
Affichage des Firefox tente de reconnaître automatiquement le jeu de caractères des pages web, ce qui
caractères
étrangers fonctionne généralement bien. Dans certains cas rares, toutefois, le navigateur échoue et
affiche alors mal les caractères étrangers (y compris les caractères accentués français, par
exemple). Dans de tels cas, vous devez participer à la reconnaissance du jeu de caractères.
Essayez par exemple de choisir Affichage > Encodage des caractères > Unicode (UTF-8) ou
> Occidental (ISO-8859-1).
Recherche Édition > Rechercher ou la combinaison de touches Ctrl+F permettent d’ouvrir une boîte de
de texte
dialogue de recherche. Plus rapide encore, toutefois, la combinaison / A B C permet de loca-
liser le texte abc. Ctrl+G réitère la recherche. Utiliser ’ A B C constitue une variante qui permet
de rechercher des liens contenant le texte abc.
Recherche web Pour effectuer une recherche Google, plutôt que vous rendre sur la page www.google.com
ou www.google.fr, vous pouvez saisir le mot-clé de votre recherche directement dans le
champ figurant à droite de la barre de navigation. Outre Google, d’autres moteurs de
recherche y sont également préconfigurés. Le menu de sélection vous permet également
de définir un nouveau moteur de recherche. L’entrée de menu Ajouter des moteurs de
recherche vous conduit à une page du site Firefox grâce à laquelle vous intégrerez au menu
de recherche, en un seul clic de souris sur le lien correspondant, le moteur que vous aurez
choisi parmi un grand nombre de moteurs de recherche populaires proposés.
Marque-pages Vous pouvez consulter les marque-pages dans Firefox dans trois endroits différents : par le biais
(Bookmarks)
du menu Marque-pages, dans une barre d’outils (Affichage > Barre d’outils) ou dans le panneau
latéral, que vous pouvez activer ou désactiver par la combinaison de touches Ctrl+B. Pour enre-
gistrer un nouveau signet, vous utiliserez au choix la combinaison de touches Ctrl+D ou un glis-
ser-déposer de l’adresse courante dans la barre de signets ou dans le panneau latéral.
Lorsque vous souhaitez réorganiser vos signets, passez par Marque-pages > Gérer les mar-
que-pages. Une même boîte de dialogue vous permet d’effacer, de déplacer, de renommer,
de trier, d’exporter ou d’importer tous vos marque-pages. En interne à Firefox, les marque-
pages sont stockés dans une base de données SQLite correspondant au fichier :
~/.mozilla/firefox/nnnn.default/places.sqlite
Linux Livre Page 82 Mardi, 23. septembre 2008 1:05 13

82 LINUX

Marque-pages Les marque-pages intelligents sont une nouveauté de Firefox 3 : ils vous donnent un accès
intelligents
rapide aux dix signets les plus utilisés et aux dix derniers marque-pages enregistrés.
Flux RSS De nombreux sites web présentent régulièrement des nouveautés et proposent également
des liens vers les articles sous la forme de flux RSS. Il s’agit là de fichiers XML spécialement
mis en forme qui, à chaque nouveauté, proposent une description succincte ainsi qu’un lien.
Firefox peut présenter un flux RSS de ce type sous la forme de marque-pages dynamiques. Le
contenu du marque-page se met à jour automatiquement lorsque de nouvelles informations
sont disponibles. À chaque site web proposant un flux RSS, Firefox présente au côté droit de la
barre d’adresse un symbole orange ("S’abonner à cette page..."). Cliquez sur ce symbole et
confirmez ensuite la boîte de dialogue de configuration. Le marque-page dynamique apparaît
maintenant comme un groupe de marque-pages renvoyant aux entrées effectives du flux.
Historique Firefox conserve pour quelques jours le nom et l’adresse de chaque site web consulté. Cet
historique de navigation peut être affiché dans le panneau latéral par le biais de la combinai-
son de touches Ctrl+H, où vous pouvez également effectuer des recherches. Vous modifie-
rez la durée de stockage des pages visitées, qui est en standard configurée à 90 jours, dans
Édition > Préférences > Vie privée.
Téléchar- Pour télécharger un fichier sur votre ordinateur, il suffit dans la plupart des cas de cliquer sur le
gements
lien correspondant. Firefox vous demande alors si vous souhaitez ouvrir le fichier à l’aide d’un
programme externe ou l’enregistrer sur le disque dur. Si cela ne fonctionne pas, effectuez un
clic droit sur le lien et choisissez Enregistrer la cible sous. Pour les téléchargements dont la
durée dépasse quelques secondes, une boîte de dialogue d’état apparaît automatiquement.
Par défaut, les téléchargements Firefox sont enregistrés dans le dossier ~/Desktop. Si vous
souhaitez indiquer manuellement l’emplacement à chaque téléchargement, ouvrez Édition
> Préférences > Général et activez l’option Me demander où enregistrer chaque fichier.
Mots de passe Lorsque vous remplissez des formulaires de connexion (par exemple pour utiliser un ser-
vice de webmail), une boîte de dialogue apparaît qui vous demande si les informations de
connexion doivent être enregistrées. Cela vous épargne le fait de devoir saisir à nouveau
toutes les informations à la visite suivante.
Ce confort possède naturellement un prix : lorsqu’une personne étrangère a accès à votre ordi-
nateur, Firefox lui donne également accès à tous les sites web sécurisés par un mot de passe. Par
conséquent, vous pouvez protéger tous les mots de passe enregistrés par le biais d’un mot de
passe dit principal. Celui-ci sert à protéger l’ensemble des autres mots de passe. Par la suite,
vous devrez saisir le mot de passe principal à chaque session lorsque Firefox accède pour la
première fois à la base de données des mots de passe. Pour définir ce mot de passe,
ouvrez Édition > Préférences > Sécurité et activez l’option Utiliser un mot de passe principal.
Impressions Avant de lancer l’impression, vous pouvez choisir par le biais de Fichier > Mise en page la taille
du papier ainsi que l’orientation du document (portrait ou paysage). Fichier > Aperçu avant
impression vous permet d’avoir une idée de la mise en forme avant l’impression effective.
Fichier > Imprimer lance l’impression de la page et vous permet de choisir l’imprimante sou-
haitée ainsi que l’échelle à appliquer ou encore diverses options pour l’impression des cadres.

Dans de nombreuses distributions, Firefox utilise le format de papier américain US Letter, ce qui peut (sui-
vant l’imprimante) conduire à des problèmes en Europe. Pour fixer le format standard au format A4, ouvrez
Linux Livre Page 83 Mardi, 23. septembre 2008 1:05 13

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR) 83

dans Firefox la page about:config, recherchez l’option print.postscript.paper_size et modifiez-en la valeur


par un double-clic sur A4. La nouvelle configuration est prise en compte dès que vous relancez Firefox.

Mises à jour Vous êtes peut-être familiarisé avec les mises à jour automatiques de Firefox disponibles
de Firefox
dans la version Windows. Sous Linux, ce type de mise à jour n’est pas possible. Ici, c’est
l’outil de gestion centralisée des paquetages qui gère l’ensemble des mises à jour. La plupart
des distributions Linux proposent un paquetage Firefox mis à jour à chaque fois qu’une
mise à jour Firefox est publiée.

Configuration
Fichiers de Firefox génère à son premier lancement le répertoire ~/.mozilla/firefox/profil.default,
configuration
où profil est une chaîne de caractères aléatoire. Dans ce répertoire, Firefox enregistre tous
les paramètres, les marque-pages, le cache, etc.
Proxy (serveur Si votre ordinateur est connecté à Internet ou à un réseau local mais que vous ne parveniez
mandataire)
pas à naviguer sur le Web, il est possible que votre réseau local utilise un serveur proxy, ou
serveur mandataire. C’est un ordinateur placé entre votre PC et Internet. Il sert de stockage
intermédiaire et accélère ainsi l’accès à des pages fréquemment consultées. Le proxy peut
également servir à bloquer l’accès à certaines pages données ou à journaliser tous les accès
web. Nous verrons au Chapitre 29 comment mettre en place un serveur proxy sous Linux.
Pour utiliser un serveur mandataire avec Firefox, ouvrez la boîte de dialogue Édition > Pré-
férences > Avancé, onglet Réseau puis bouton Paramètres, et renseignez l’adresse obliga-
toire du ou des serveurs proxy. En règle générale, il suffit de remplir les champs
correspondant aux serveurs proxy HTTP et FTP. Le numéro de port approprié est le 8080. Si
vous ne connaissez pas l’adresse de votre proxy, contactez votre administrateur système.
Taille des Si la taille des caractères d’une page donnée est trop grande ou trop petite à votre goût, vous
caractères
pouvez jouer sur le facteur d’agrandissement au moyen des combinaisons de touches
Ctrl++ ou Ctrl+–. Vous pouvez également faire tourner la molette de votre souris tout en
appuyant sur la touche Ctrl.
Pour modifier de façon permanente la taille par défaut des caractères, ouvrez la boîte de dialo-
gue Édition > Préférences > Contenu et configurez-y la police par défaut et sa taille d’affichage.
Le bouton Avancé vous permet aussi de paramétrer une taille minimale pour les polices.
Java et Par défaut, Java et JavaScript sont activés. Vous trouverez les options correspondantes dans
JavaScript
la boîte de dialogue Édition > Préférences > Contenu. Toutefois, Java ne fonctionnera que si
un environnement Java est installé conjointement à un greffon Mozilla (voir un peu plus
loin dans ce chapitre).
Cookies Les cookies sont de minuscules fichiers stockés sur votre ordinateur. Ils permettent à un
site web de vous reconnaître lors d’une visite ultérieure et d’enregistrer des informations
contextuelles. Par ailleurs, les cookies sont fréquemment nécessaires dans le cadre de
transactions commerciales (identification, panier d’achats).
Les cookies ne sont pas dangereux et améliorent dans bien des cas le confort de navigation.
Par conséquent, Firefox accepte par défaut les cookies de la majorité des sites web. L’usage
des cookies peut toutefois, dans une certaine mesure, être détourné pour garder une trace des
Linux Livre Page 84 Mardi, 23. septembre 2008 1:05 13

84 LINUX

sites web que vous consultez. Pour cette raison, la boîte de dialogue Édition > Préférences >
Vie privée permet de refuser la totalité ou une partie des cookies.
Cache local Firefox gère un cache local dans lequel sont enregistrées les dernières pages web, images,
etc. consultées. Si vous ouvrez ultérieurement la même page web et qu’elle n’ait pas changé
entre-temps, cette page peut alors être chargée directement depuis le cache local, ce qui est
naturellement beaucoup plus rapide. Par défaut, 50 Mo d’espace disque sont réservés pour
le cache. Vous pouvez augmenter ou diminuer ce volume par le biais de l’option Édition >
Préférences > Avancé > Réseau > Stockage hors connexion ; et également y vider le contenu
du cache. Dans la fenêtre principale, l’adresse about:cache vous renvoie la liste de tous les
fichiers actuellement stockés dans le cache.
about:config Vous pouvez modifier les paramètres de configuration essentiels grâce au confort des boîtes
de dialogue proposées par Édition > Préférences. Il existe par ailleurs d’innombrables options
supplémentaires, plus rarement utilisées. Lorsque vous saisissez l’adresse about:config dans
la barre d’adresse de Firefox, puis que vous appuyez sur la touche Entrée (voir Figure 6.2),
vous obtenez une liste alphabétique de ces options ainsi que leurs valeurs courantes. Le
champ de texte Filtre vous permet de limiter la liste des options affichées à celles correspon-
dant au texte fourni. Pour modifier la valeur d’une option, effectuez un double-clic sur celle-ci.

Figure 6.2
Configuration de Firefox.

Bouton central Firefox propose une fonctionnalité particulièrement utile vous permettant d’ouvrir rapidement
de la souris
des URL fournies sous la forme de texte (et non de liens). Pour ce faire, sélectionnez l’adresse en
question à l’aide de la souris. Il vous suffit alors de cliquer sur le bouton central de la souris
pour ouvrir directement l’adresse, entre-temps enregistrée dans le presse-papiers.
Sur certaines distributions, en particulier Ubuntu, cette fonctionnalité est malheureusement
désactivée. Pour l’activer, saisissez dans la barre d’URL l’adresse about:config et recherchez
ensuite l’option middlemouse.content-LoadURL. Un double-clic sur cette option vous permet
alors de la faire basculer de la valeur false à la valeur true.
MIME L’acronyme MIME signifie Multipurpose Internet Mail Extensions. MIME sert à indiquer au
navigateur web quel programme celui-ci doit lancer lorsque vous cliquez sur le lien corres-
pondant à un fichier MP3 ou PDF. Firefox prend en compte les paramètres MIME généraux
de Linux ainsi que les informations MIME de tous les greffons installés (voir un peu plus
loin dans ce chapitre). Le fichier XML ~/.mozilla/firefox/profil/mimeTypes.rdf (difficile
à lire) contient des paramètres supplémentaires pour la gestion des types MIME.
La boîte de dialogue Ouvrir (qui apparaît systématiquement lorsque Firefox reconnaît un
type MIME mais ne parvient pas à identifier le programme associé) est la méthode la plus
simple pour enregistrer de nouveaux paramètres MIME ou modifier des paramètres exis-
tants. Vous pouvez alors choisir un programme parmi la liste proposée ou fournir le chemin
Linux Livre Page 85 Mardi, 23. septembre 2008 1:05 13

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR) 85

complet d’un autre programme (sous Linux, la plupart des programmes sont situés dans le
répertoire /usr/bin).
La boîte de dialogue Édition > Préférences > Applications vous donne une vue d’ensemble de
tous les paramètres MIME spécifiques à Firefox. Vous pouvez également y modifier ou suppri-
mer des paramètres existants, mais non y ajouter de nouvelles entrées (voir Figure 6.3).

Figure 6.3
Paramètres MIME
de Firefox.

Xulrunner La plupart des distributions installent des paquets distincts pour Firefox (l’interface utilisa-
teur) et xulrunner (l’exécutable de rendu). Les fichiers xulrunner sont responsables de la pré-
sentation effective des pages web, c’est-à-dire de leur rendu. XUL est l’acronyme de XML
User Interfaces Language et comprend, outre l’exécutable de rendu à proprement parler (qui
se trouve dans la bibliothèque Gecko), divers composants supplémentaires.
La séparation entre Firefox et xulrunner présente l’avantage de permettre à d’autres pro-
grammes devant également assurer le rendu de pages HTML (par exemple le client e-mail
Thunderbird) d’accéder au paquetage commun xulrunner. Par le passé, chaque programme
devait installer son propre exécutable de rendu. Ceci conduisait donc à des redondances et
à des problèmes de maintenance.

Extensions (fichiers XPI)


Les fichiers XPI (cross platform installation) contiennent des extensions Firefox dont les
fichiers d’installation sont empaquetés dans une archive conjointement à du code d’installa-
tion JavaScript. L’éventail des extensions disponibles est très large et couvre aussi bien des
utilitaires de blocage de la publicité (par le biais d’extensions de l’interface utilisateur) ou
d’aide au téléchargement que des outils de développement HTML (par exemple pour tester
les fichiers CSS).
Linux Livre Page 86 Mardi, 23. septembre 2008 1:05 13

86 LINUX

La boîte de dialogue Outils > Modules complémentaires > Catalogue propose quelques-
unes des extensions les plus populaires en téléchargement direct. Vous trouverez par
ailleurs des extensions supplémentaires en cliquant sur le lien Parcourir tous les modules
complémentaires, qui conduit à la page suivante : https://addons.mozilla.org/fr/firefox
Pour installer des extensions, il vous suffit alors de cliquer sur le lien du fichier XPI corres-
pondant. De nombreuses extensions ne prennent effet que lorsque vous relancez Firefox.
Outils > Modules complémentaires > Extensions vous donne un aperçu de toutes les exten-
sions déjà installées et vous permet également de les désinstaller.

Ubuntu propose certaines des extensions les plus populaires dans des paquetages propres. Ceci présente
l’avantage de pouvoir installer et mettre à jour ces extensions dans le cadre de la gestion des paquetages
d’Ubuntu (lien Obtenir les extensions Ubuntu dans la boîte de dialogue Outils > Modules complémentaires
> Catalogue).

Avant l’exécution du code d’installation XPI, Firefox vous adresse un avertissement : les fichiers XPI peuvent éga-
lement contenir du code malveillant. Prenez cet avertissement très au sérieux. Les risques potentiels posés par
les extensions Firefox sont comparables à ceux des fichiers ActiveX de Microsoft Internet Explorer ! N’installez
pas une extension si vous n’êtes pas convaincu de sa nécessité et de sa sécurité.
Par défaut, Firefox autorise l’installation de fichiers XPI provenant uniquement des sites web
addons.mozilla.org et update.mozilla.org. Si vous souhaitez accepter d’autres sites web ou d’autres
sources de fichiers XPI, vous devrez modifier dans la boîte de dialogue Édition > Préférences > Sécurité le
paramétrage correspondant à l’option Prévenir lorsque les sites essaient d’installer des modules complé-
mentaires.

6.2 Konqueror
Le programme Konqueror, déjà présenté au chapitre relatif à KDE, est un navigateur univer-
sel. Il permet de présenter des fichiers locaux, des pages web, des répertoires FTP, des ima-
ges, etc. Nous n’allons toutefois décrire ici que quelques particularités relatives à son
utilisation en tant que navigateur web.
Configuration Il n’existe probablement aucun autre navigateur sur lequel vous puissiez modifier autant de
paramètres de configuration. La boîte de dialogue accessible par Configuration > Configurer
Konqueror présente 18 modules, chacun comprenant lui-même plusieurs pages de paramètres !
Recherche Outre les recherches web traditionnelles, que vous pouvez effectuer de la même manière
rapide
que sur tout autre navigateur dans un champ de texte, vous pouvez aussi rechercher un
terme directement depuis la barre d’adresse. Des raccourcis spéciaux sont définis à cet
effet. Si, par exemple, vous saisissez dans la barre d’adresse gg:abc, une recherche sur le
terme abc est effectuée dans http://www.google.com. Vous pouvez compléter la liste des
raccourcis existants avec vos propres entrées par le biais du module de configuration Raccourcis
Web.
Mots de passe Konqueror enregistre les mots de passe et les informations de connexion dans le système de
gestion des mots de passe Kwallet de KDE (voir Chapitre 5).
Linux Livre Page 87 Mardi, 23. septembre 2008 1:05 13

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR) 87

Figure 6.4
Konqueror en tant
que navigateur web.

Extensions Konqueror utilise en règle générale les mêmes extensions que Mozilla (mais on parle dans le
cadre de Konqueror de "modules externes"). Lorsque celles-ci ne fonctionnent pas, jetez un
coup d’œil au module de configuration Modules externes : vous pourrez y vérifier quelles
extensions Konqueror a identifiées et configurer dans quels répertoires rechercher des
extensions. Le bouton Rechercher de nouveaux modules externes vous permet d’importer
dans la liste des extensions disponibles pour Konqueror celles que vous venez d’installer et
qui n’y apparaissent pas encore.
Lorsque Konqueror identifie certaines extensions Firefox et d’autres non, la cause probable
en est que Konqueror ignore le nouveau répertoire d’extensions xulrunner. Vous devez alors
ajouter (suivant votre distribution) le répertoire /usr/lib/xulrunner/plugins ou /usr/lib/
xulrunner-addons/plugins.
Outre les extensions Firefox, Konqueror propose également des extensions propres, spécifi-
ques à KDE. Parmi les fonctionnalités les plus populaires, on trouve la traduction des pages
web, une fonctionnalité de rafraîchissement automatique (Auto-refresh) des pages web
après un temps donné, ainsi qu’un afficheur DOM permettant de visualiser la structure
HTML d’une page web. Ces extensions doivent, bien souvent, être installées séparément.
Sur Fedora, elles sont par exemple regroupées dans le paquetage konq-plugins.
Java Konqueror n’utilise pas directement l’extension Java mais fait appel à KJAS (KDE Java applet
server, fichier kjavaappletviewer.so). KJAS lance lui-même l’interpréteur Java et donc le pro-
gramme java. Si Konqueror rencontre des difficultés pour trouver ce fichier, vous pouvez en
obtenir le chemin complet par le biais de la commande which java, puis copier le résultat de
cette commande dans le module de configuration de Konqueror intitulé Java et JavaScript.

6.3 Navigateurs en mode texte


Vous vous demandez probablement quel intérêt peut avoir un navigateur web en mode
texte. De fait, il n’est pas rare de travailler dans la console texte sous Linux et d’avoir besoin
de consulter rapidement une page web ou une documentation HTML, ce que permettent
Linux Livre Page 88 Mardi, 23. septembre 2008 1:05 13

88 LINUX

justement les programmes elinks, lynx et w3m. Par ailleurs, vous pouvez également utiliser
ces programmes pour convertir des documents HTML en texte simple.
L’utilisation de ces trois programmes est similaire. Les pages de manuel ainsi que le système
d’aide intégré documentent leurs nombreuses options ainsi que leurs raccourcis clavier.
Pour des raisons de place, je ne présenterai donc ici à titre d’exemple que le programme le
plus connu, Lynx.
Lynx L’utilisation de Lynx est simple : vous lancez en général ce programme avec, en paramètre,
l’URL d’un site web ou le chemin d’un fichier HTML. Lynx charge le document et présente
la première page, où les titres et liens sont identifiés par des couleurs différentes. Lorsque
vous lancez Lynx avec l’option -use_mouse, vous pouvez également faire appel à la souris :
un clic gauche vous permet de suivre un lien, le bouton central affiche un menu contextuel,
tandis que le bouton droit vous permet de revenir à la page précédente.
Par défaut, Lynx utilise pour l’affichage le jeu de caractères Latin-1. Pour représenter cor-
rectement les caractères spéciaux dans une console Unicode, saisissez également l’option
-display_charset=utf-8.
La commande suivante vous montre comment utiliser Lynx pour convertir du HTML en
texte simple :
utilisateur$ lynx -dump source.html > cible.txt

6.4 Plugins (Adobe Reader, Flash, Java)


Les plugins sont des programmes d’extension permettant d’ajouter des fonctionnalités au
navigateur web. Il est plutôt réjouissant de constater que Firefox et Konqueror utilisent le
même système de Plugins Mozilla pour gérer ces plugins. Une fois installés, ils fonctionnent
aussi bien pour l’un que pour l’autre de ces programmes. Dans la suite de ce chapitre, je sup-
poserai toutefois que vous travaillez avec Firefox. Ces extensions ne peuvent être utilisées avec
un navigateur en mode texte.
Lorsque Firefox rencontre une page dont le contenu réclame un plugin non encore installé,
il présente un avertissement adapté ainsi qu’un bouton d’installation. Toutefois, l’installa-
tion d’un plugin depuis Firefox et sous Linux ne fonctionne fondamentalement pas ! De
nombreux plugins ne sont disponibles que pour Windows et non pour Linux. Et, même
lorsqu’il existe des versions pour Linux, l’installation se fait obligatoirement manuellement,
comme vous allez le voir plus en détail pour les trois plugins suivants : le lecteur de PDF
Adobe Reader, Flash (Adobe/Macromedia) et Java (Sun). Un autre plugin disponible pour
Linux est le lecteur audio Real Player, dont l’installation sera décrite au Chapitre 11.
Il n’est pas nécessaire, pour ces plugins, de configurer le type MIME. Les fichiers du plugin
contiennent tous les paramètres requis.
Synthèse des Vous pouvez obtenir un aperçu de tous les plugins actuellement installés, ainsi que des for-
plugins
mats de fichiers gérés par ceux-ci, lorsque vous saisissez dans la barre d’adresse de votre
navigateur about:plugins avant d’appuyer sur Entrée. La boîte de dialogue Outils > Exten-
sions complémentaires > Plugins (une nouveauté de Firefox 3) vous indique également la
liste de tous les plugins. Vous pouvez y désactiver des plugins individuels mais cela n’a pas
systématiquement fonctionné correctement lors de mes tests.
Linux Livre Page 89 Mardi, 23. septembre 2008 1:05 13

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR) 89


Répertoires Suivant la distribution Linux et la version de Firefox que vous utilisez, vous trouverez les
fichiers de plugins dans l’un ou l’autre des emplacements suivants :
• dans le répertoire /usr/lib[64]/xulrunner/plugins ;
• dans le répertoire /usr/lib[64]/xulrunner-addons/plugins ;
• dans le répertoire /usr/lib[64]/firefox/plugins ;
• dans le répertoire /usr/lib[64]/mozilla/plugins ;
• dans le répertoire ~/.mozilla/plugins ;
• dans tous les répertoires que renvoie la variable d’environnement MOZ_PLUGIN_PATH.
La multiplicité des répertoires possibles conduit à ce que, sur de nombreux ordinateurs, les
plugins ne soient pas installés à un seul emplacement commun pour tous mais qu’ils soient
dispersés sur l’ensemble du disque dur. Pour des raisons de compatibilité, xulrunner tient
également compte des répertoires spécifiques de Mozilla et Firefox.
libstdc++ Certaines versions anciennes des plugins décrits ci-après nécessitent la bibliothèque libs-
tdc++.so.5. Assurez-vous préalablement qu’un tel fichier est bien présent dans le répertoire
/usr/lib ; dans le cas contraire, installez le paquetage contenant ce fichier. Sous Fedora, ce
paquetage porte le nom compat-libstdc++-33, car cette bibliothèque est compatible avec le
compilateur GCC 3.3.
Plugins 64 bits Pour divers plugins commerciaux, comme Adobe Reader ou Adobe Flash, il n’existe mal-
heureusement qu’une version compilée pour 32 bits. Pour rendre compatibles des plugins
32 bits avec la version 64 bits de Firefox, la plupart des distributions utilisent le programme
nspluginwrapper : http://gwenole.beauchesne.info/projects/nspluginwrapper/

Adobe Reader
Adobe Reader est un programme qui permet de consulter des documents PDF. Il existe à cet
effet divers autres programmes Linux (Evince dans l’environnement Gnome, KPDF et Okular
dans KDE, ghostscript, etc.), mais Adobe Reader présente plusieurs avantages :
• meilleure qualité de rendu ;
• fonctionnalité d’impression sophistiquée ;
• confort d’utilisation ;
• diverses fonctionnalités supplémentaires (saisie de formulaires PDF, possibilité de réaliser
des modifications simples sur certains fichiers PDF spéciaux).
Le lecteur Adobe Reader est certes disponible gratuitement sur Internet mais, pour des rai-
sons de licence, la plupart des distributions ne sont pas en mesure d’intégrer des paquetages
Adobe Reader officiels à leur produit. Pour cette raison, vous devrez dans la très grande
majorité des cas télécharger directement le programme depuis le site web d’Adobe et l’ins-
taller manuellement.
Installation Vous trouverez à l’adresse suivante une version 32 bits du lecteur Adobe Reader sous la
manuelle
forme d’un paquetage Debian, d’un paquetage RPM ou d’une archive tar :
http://www.adobe.com/products/acrobat/readstep2_allversions.html
Linux Livre Page 90 Mardi, 23. septembre 2008 1:05 13

90 LINUX

Ces trois variantes comprennent également le plugin Firefox ainsi que la prise en charge du
JavaScript.
Pour installer le paquetage Debian ou RPM, procédez comme à l’accoutumée avec la com-
mande dpkg -i ou rpm -i. Pour installer l’archive TAR, exécutez dans une console la série
de commandes ci-après :
root# tar xzf Desktop/AdobeReader_n.n.tar.gz
root# cd AdobeReader
root# ./INSTALL

Durant l’installation, confirmez le répertoire d’installation /usr/local/Adobe/Acrobatn


ainsi que l’installation automatique du plugin Mozilla en appuyant sur la touche Entrée. Les
commandes de lancement pour les menus Gnome et KDE sont également ajoutées lors de
l’installation.
Utilisation Le lecteur Adobe Reader de Firefox peut être utilisé de deux manières différentes : soit en
en tant que
plugin Firefox tant que plugin, soit en tant que programme externe. De nombreux utilisateurs sont habi-
tués à la première variante car c’est le fonctionnement par défaut une fois Acrobat installé.
Toutefois, à titre personnel, je préfère la seconde utilisation et utiliser les fonctionnalités
d’Adobe Reader dans une fenêtre propre. Pour ouvrir les documents PDF dans une fenêtre
distincte, ouvrez la boîte de dialogue Édition > Préférences > Applications et, dans le menu
déroulant correspondant à l’entrée "Document PDF", choisissez Autre... et saisissez alors le
chemin /usr/bin/acroread (ou, si l’option est disponible, choisissez Utiliser Adobe Reader
(par défaut), qui diffère de l’option Utiliser Adobe Reader (dans Firefox), en ouvrant le
document dans une fenêtre Adobe Reader propre).

Adobe Reader prend en charge JavaScript. Ce langage de script peut être utilisé pour de nombreuses
fonctionnalités utiles, mais il présente également un risque de sécurité potentiel et peut servir à envoyer
des informations à la lecture d’un document PDF. Ceci constitue une invasion de votre vie privée. Vous
pouvez consulter sur ce site (en anglais) des informations supplémentaires à ce propos :
http://lwn.net/Articles/129729/
Pour désactiver JavaScript au sein d’Adobe Reader, ouvrez la boîte de dialogue Édition > Préférences >
JavaScript et décochez l’option correspondante.

Adobe/Macromedia Flash
Le lecteur Adobe Flash Player (autrefois dénommé Macromedia Flash) permet de jouer des
animations Flash. Ce programme est conçu comme un plugin, c’est-à-dire que les anima-
tions apparaissent directement dans le navigateur web (souvent à l’intérieur même d’une
page dont les autres éléments sont statiques). Flash est, le plus souvent, utilisé pour de la
publicité. Il existe toutefois des applications utiles de Flash, par exemple pour lire des
vidéos, utiliser des cartes interactives, etc. De nombreux sites web (mal conçus) ne peuvent
par ailleurs être consultés qu’avec Flash.
Installation Le plugin Adobe Flash est, comme Adobe Reader, disponible gratuitement, mais pour le
moment uniquement en version 32 bits. Malheureusement, ses termes de licence empêchent la
plupart des distributions de mettre à la disposition des utilisateurs le paquetage correspondant.
SUSE et Mandriva, qui ont contracté des accords avec Adobe, sont toutefois deux exceptions
à cette règle.
Linux Livre Page 91 Mardi, 23. septembre 2008 1:05 13

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR) 91

Certaines distributions proposent un petit paquetage contenant un script d’installation qui


se charge de télécharger et d’installer le plugin Flash dans sa version courante. Par exemple,
le paquetage flashplugin-nonfree d’Ubuntu (source multiverse) joue ce rôle d’installateur
de Flash. Lorsque vous souhaitez ultérieurement mettre à jour le plugin Flash, vous pouvez
exécuter la commande update-flashplugin.
Lorsqu’il n’existe pour votre distribution ni paquetage Flash ni script d’installation, vous
devez installer vous-même Flash. La page suivante vous propose de télécharger Flash soit
sous la forme d’un paquetage RPM, soit sous forme d’archive TAR :
http://www.adobe.com/fr/products/flashplayer/
Sur les distributions comprenant un système de gestion des paquetages RPM, il vous suffit
d’exécuter la commande rpm -i nom_du_paquetage pour installer le plugin. Sur toute autre
distribution, exécutez la série de commandes présentée ci-après. Flash est alors installé dans
le répertoire de plugins de votre dossier personnel. Si vous souhaitez installer Flash pour
l’ensemble de votre système, vous devez exécuter le programme d’installation en tant
qu’utilisateur root.
utilisateur$ tar xzf Desktop/install_flash_player_9_linux.tar.gz
utilisateur$ cd install_flash_player_9_linux/
utilisateur$ ./flashplayer-installer

Lorsque vous voulez supprimer Flash, il vous suffit d’effacer le fichier libflashplayer.so
des répertoires /usr/lib/mozilla/plugins et ~/.mozilla/plugins.
Si vous utilisez la version 64 bits de Fedora 9, le plugin Flash 32 bits ne fonctionnera
qu’après l’installation de quelques paquetages supplémentaires, ainsi que la déclaration
explicite du plugin auprès de nspluginwrapper.
Tester Flash Après avoir redémarré Firefox, ouvrez la page suivante pour tester votre installation :
http://www.adobe.com/shockwave/welcome/

Figure 6.5
Tester Flash.
Linux Livre Page 92 Mardi, 23. septembre 2008 1:05 13

92 LINUX

Cette page de test contient deux animations (voir Figure 6.5) : la première est basée sur
Shockwave for Director (ou, plus simplement, Shockwave), la seconde, sur Shockwave
Flash (ou, plus simplement, Flash). Comme vous n’avez installé que le plugin Flash, seul le
second élément de cette page de test fonctionne. Il n’existe malheureusement aucun plugin
Shockwave pour Linux.
FlashBlock Aussi sympathiques que soient les animations Flash, leur omniprésence pour la publicité
devient particulièrement pesante. C’est ici qu’intervient l’extension Firefox FlashBlock. Tous
les objets Flash d’une page web apparaissent alors sous la forme de boutons "f" : l’animation
se lance uniquement lorsque vous cliquez sur l’un de ces boutons (voir Figure 6.6). Vous
trouverez cette extension Firefox particulièrement utile en saisissant flashblock dans le
champ de recherche de la boîte de dialogue Outils > Modules complémentaires > Catalogue.
Vous pourrez alors installer l’extension en cliquant sur le bouton Ajouter à Firefox... Pour
que l’installation prenne effet, vous devrez relancer Firefox.

Figure 6.6
FlashBlock en pratique.

gnash et Les composants logiciels importants qui ne sont pas distribués sous licence libre sont une
swfdec
épine dans le pied de la communauté open-source. Il n’est donc pas surprenant qu’il existe
également des alternatives open-source à Flash, à savoir Gnu flash movie player (abrégé en
gnash), ainsi que la bibliothèque swfdec. Ces deux projets comptent également un plugin
pour navigateur web. Ils ne sauraient toutefois constituer un substitut à part entière du
plugin Flash d’origine, dans la mesure où ils présentent encore des limitations non négligea-
bles en termes de compatibilité et de qualité de rendu. Vous trouverez davantage d’informations
sur ces deux projets aux adresses :
http://www.gnu.org/software/gnash/ ; http://swfdec.freedesktop.org/wiki/

Sun Java
Pour être en mesure d’utiliser des applets Java dans votre navigateur web, vous aurez
besoin d’un plugin Java. Suivant votre distribution, vous aurez le choix entre, d’une part, la
version d’origine de Sun (qui n’est toutefois disponible qu’en version 32 bits et ne peut col-
laborer avec l’outil nspluginwrapper) et, d’autre part, deux implémentations open-source
fondées sur IcedTea ou OpenJDK. Bien que la qualité de ces deux solutions open-source soit
devenue, avec le temps, satisfaisante et qu’OpenJDK couvre environ 99 % des fonctionnali-
tés de Sun Java, les utilisateurs de distributions 32 bits préfèrent généralement utiliser la
Linux Livre Page 93 Mardi, 23. septembre 2008 1:05 13

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR) 93

version de Sun. Pour l’utilisateur d’une distribution 64 bits souhaitant bénéficier de Java
dans son navigateur web, OpenJDK est la solution à privilégier.
Depuis 2006/2007, Sun a non seulement passé la majeure partie du code de Java sous
licence GPL, mais également facilité de manière substantielle la redistribution de l’outil Sun
Java d’origine. Certaines distributions peuvent donc proposer des paquetages Sun Java que
vous pouvez installer sans difficulté avec votre gestionnaire de paquetages (par exemple
openSUSE ou Ubuntu).
Installation S’il n’existe aucun paquetage Sun Java pour votre distribution, vous devrez mettre la main à
la pâte. Vous trouverez sur le site web ci-après les fichiers d’installation pour les systèmes 32
et 64 bits, au choix sous la forme d’un paquetage RPM ou d’une archive auto-extractible :
http://www.java.com/fr/download/manual.jsp
Pour les distributions proposant un système de gestion des paquetages RPM, il vous suffit alors
d’exécuter la commande rpmi -i nom_du_paquetage pour mener à bien l’installation. Sur toute
autre distribution, vous devrez exécuter la série de commandes présentée ci-après :
root# mkdir /usr/local/java
root# cd /usr/local/java
root# chmod u+x jre-6u6-linux-i586.bin
root# ./jre-6u6-linux-i586.bin

Au cours de l’installation, un accord de licence vous sera présenté. Pour en interrompre l’affi-
chage, appuyez sur la touche Q ; pour confirmer votre accord, saisissez yes puis appuyez sur la
touche Entrée. L’installation se poursuit alors sans nécessiter d’intervention supplémentaire de
votre part. Toutefois, le fichier de plugin Java n’est pas installé dans le répertoire de plugins
Mozilla. Vous devez donc mettre en place vous-même un lien symbolique :
root# cd /usr/lib/mozilla/plugins/
root# ln -s /usr/local/java/jre1.6.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

Si vous avez installé Java sous la forme d’un paquetage RPM, les fichiers Java se trouvent alors
dans le répertoire /usr/java. La commande ln correspondante a alors l’allure suivante :
root# cd /usr/lib/mozilla/plugins/
root# ln -s /usr/java/jre1.6.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

Test Pour confirmer que tout fonctionne correctement, ouvrez la page web suivante dans votre
navigateur. Une applet avec le petit bonhomme dansant doit normalement apparaître. Cette
applet vous renseigne également sur la version de Java installée (voir Figure 6.7).
http://www.java.com/fr/download/help/testvm.xml

Il est possible d’installer en parallèle plusieurs environnements Java. Il ne doit toutefois y avoir qu’un seul
plugin Java pour votre navigateur web ! Si vous installez Sun Java mais que vous souhaitiez conserver un
environnement Java open-source existant, vous devrez alors désinstaller le paquetage de plugin correspon-
dant (par exemple sur Fedora, java-1.6.0-openjdk-plugin ).
Linux Livre Page 94 Mardi, 23. septembre 2008 1:05 13

94 LINUX

Figure 6.7
Page de test
pour le plugin Java.
Linux Livre Page 95 Mardi, 23. septembre 2008 1:05 13

E-mail (Thunderbird, Evolution,


7 Kontact)
Ce chapitre présente l’utilisation des trois clients de courrier électronique les plus populaires
sous Linux :
• Thunderbird est déjà bien connu de nombreux utilisateurs provenant du monde Win-
dows. Il s’agit du composant e-mail correspondant à Firefox. Le client e-mail possède
une présentation fonctionnelle et n’est pas surchargé de fonctionnalités accessoires.
• Evolution est le client e-mail par défaut de l’environnement de bureau Gnome. Ce pro-
gramme a été conçu, dès le début, comme une alternative à Outlook. Par conséquent, il
présente de nombreuses fonctionnalités auxiliaires : outre les e-mails, il vous permet
également de gérer vos rendez-vous et votre carnet d’adresses, de synchroniser ces don-
nées avec un PDA, etc. Evolution peut également être utilisé avec un serveur Microsoft
Exchange ou avec Groupwise.
• Kontact est l’homologue d’Evolution pour KDE. Kontact propose une interface unifiée
pour plusieurs composants individuels de KDE permettant de gérer les e-mails, le car-
net d’adresses, les rendez-vous, etc. Si vous recherchez uniquement une fonctionnalité
de courrier électronique, utilisez KMail plutôt que Kontact.
E-mail en De nombreux afficionados de Linux et d’Unix préfèrent lire et composer leurs e-mails dans une
mode texte
console. À cet effet, on dispose d’un large éventail de programmes, par exemple cone, mutt et
pine. Les amateurs d’Emacs n’ont pas besoin de quitter leur éditeur favori, grâce au mode e-mail
qu’il propose. Pour qui souhaite automatiser l’envoi de courriers par le biais d’un script, un coup
d’œil à la commande mail devrait se révéler profitable. Dans ce chapitre, je ne décrirai toutefois
que les trois clients graphiques déjà cités et présenterai très rapidement l’utilisation de mutt.
Serveur de Un autre sujet que nous ne pourrons aborder dans ce livre faute de place est la mise en place
courrier
électronique de votre propre serveur de courrier. Il existe pour cela aussi toute une palette de program-
mes, par exemple sendmail, postfix, qmail ou encore exim. Dans la nomenclature Unix, on
parle pour ce type d’outil de MTA (Mail Transfer Agent), tandis que l’on désigne les clients
e-mails comme Thunderbird par le terme de MUA (Mail User Agent).
Outils pour le Entre les MUA et MTA, de nombreux outils peuvent intervenir dans la chaîne de transmis-
courrier
électronique sion du courrier, pour filtrer les spam ou les virus (bogofilter, spamassassin), traiter auto-
matiquement les e-mails ou automatiser les réponses (procmail), récupérer les courriers
depuis un serveur POP par le biais d’une commande (fetchmail), etc. Toutefois, je ne peux
ici que mentionner ces quelques commandes sans les détailler, sous peine de transformer ce
chapitre en un livre à lui seul.

7.1 Bases
Du point de vue de l’utilisateur, il est trivial d’envoyer et de recevoir des e-mails. C’est tou-
tefois loin d’être le cas de tous les mécanismes intervenant en coulisse. Cette section vise
Linux Livre Page 96 Mardi, 23. septembre 2008 1:05 13

96 LINUX

donc à fournir quelques informations de base sur le fonctionnement du courrier électroni-


que. Si vous êtes uniquement à la recherche d’un client e-mail facile à utiliser, vous pouvez
tout simplement sauter cette section.
Compte Lorsque votre fournisseur d’accès Internet ou votre société vous met à disposition une
adresse e-mail, on désigne également ce service par le terme de compte. Comme il est cou-
rant aujourd’hui, pour un utilisateur, de posséder plusieurs adresses électroniques, la majo-
rité des clients de courrier peut gérer plusieurs comptes à la fois.
Pour pouvoir lire des e-mails depuis votre compte et en envoyer, votre fournisseur de services
vous met à disposition un certain nombre d’informations qui sont généralement compa-
rables à celles du tableau ci-dessous.

Informations relatives au compte e-mail illustrées par des exemples


Adresse e-mail catherine.hofer@societe.fr ou
catherine.hofer@fai.fr
Adresse du serveur entrant (POP ou IMAP) imap.societe.fr ou pop.fai.fr
Nom d’utilisateur/Identifiant de connexion à la boîte aux lettres chofer ou 12345678
Mot de passe pour la boîte aux lettres xxxxxxxx
Adresse du serveur sortant (SMTP) smtp.societe.fr ou mail.fai.fr
Nom d’utilisateur/Identifiant de connexion au serveur SMTP chofer ou 12345678
Mot de passe pour le serveur SMTP xxxxxxxx

Bien souvent, on utilise l’adresse e-mail en guise d’identifiant de connexion à la boîte aux
lettres. Dans de nombreux cas, l’identifiant de connexion au serveur SMTP et le mot de
passe sont les mêmes que ceux de la boîte aux lettres. Il n’est pas rare non plus qu’aucune
authentification ne soit nécessaire au niveau du serveur SMTP ou que l’authentification
auprès du serveur de courrier entrant suffise pour se connecter au serveur sortant. Les
comptes e-mails conçus pour être lus dans un navigateur web (webmail) requièrent souvent
de modifier préalablement certaines options de sécurité pour permettre une utilisation en
mode POP ou IMAP.
Lignes d’en- Au début de chaque e-mail figurent un certain nombre de lignes d’en-tête comprenant les
tête
adresses de l’émetteur et du destinataire, l’objet, ainsi que diverses autres informations.

Lignes d’en-tête d’un e-mail


Subject: objet description succincte du contenu (une ligne)
From: adresse adresse e-mail de l’expéditeur
To: adresse adresse e-mail du destinataire
Reply-To: adresse en cas de réponse, envoyer l’e-mail non pas à l’adresse From: mais à l’adresse
fournie ici
CC: adresse envoyer une copie de l’e-mail à l’adresse Cc: (carbon copy)
Bcc: adresse similaire à Cc:, mais les destinataires To: et Cc: du courrier ne peuvent voir
les destinataires Bcc: (blind carbon copy)
Linux Livre Page 97 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 97


MIME La notion de MIME (Multipurpose Internet Mail Extensions) est utilisée de deux manières dif-
férentes au niveau des clients de courrier. D’une part, une configuration appropriée des
types MIME permet au client e-mail de gérer correctement les pièces jointes et, par exemple,
de bien ouvrir un fichier MP3 envoyé par e-mail avec un lecteur de MP3. Nous donnerons
plus d’informations sur la configuration des types MIME au chapitre 13.
D’autre part, MIME peut également intervenir au niveau du codage du texte de l’e-mail. À
l’origine, le système de courrier électronique n’a été conçu que pour les caractères ASCII
codés sur 7 bits. Les courriers comprenant des caractères spéciaux (et tout caractère dont le
code est supérieur à 127) présentent donc des difficultés. Pour contourner ces problèmes,
différents types MIME ont été définis pour l’encodage des e-mails.
Signature Très souvent, vous devrez conclure tous vos e-mails de la même manière, à savoir une ou
plusieurs lignes contenant le nom de votre société, une adresse, etc. Pour ne pas avoir à sai-
sir systématiquement les mêmes lignes à chaque nouveau courrier, vous pouvez définir
dans la plupart des clients de courrier électronique ce que l’on appelle une signature. Les
clients utilisent automatiquement à cet effet le fichier ~/.signature.
Protocoles Les trois abréviations POP, SMTP et IMAP désignent différents protocoles de transport des
e-mails entre votre ordinateur et le fournisseur de services gérant votre courrier :
• POP. Pour le transport des e-mails depuis le serveur jusqu’à votre ordinateur, c’est généra-
lement le protocole POP (Post Office Protocol) qui est utilisé. Pour que le client de courrier
puisse communiquer avec le prestataire, il a besoin de trois informations : l’adresse
du serveur POP, le nom d’utilisateur et le mot de passe du compte sur le serveur POP.
• IMAP. Le protocole IMAP (Internet Message Access Protocol) constitue une alternative à
POP. La différence principale avec POP réside dans le fait que les courriers sont généra-
lement stockés sur le serveur IMAP. Le client de courrier électronique ne sert alors dans
ce cas qu’à communiquer avec le serveur. IMAP est une solution optimale lorsque vous
souhaitez pouvoir gérer votre courrier depuis différents ordinateurs sans pour autant
devoir subir les inconvénients d’un système par webmail. IMAP est principalement uti-
lisé dans les grandes entreprises. En revanche, assez peu de prestataires d’e-mails pro-
posent des services IMAP. En effet, l’IMAP impose des exigences assez fortes au niveau
des ressources. Tous les clients présentés dans ce chapitre prennent en charge l’IMAP
mais, faute de prestataire proposant ce protocole, je n’ai pas pu le tester moi-même.
• SMTP. Enfin, pour l’envoi des e-mails, c’est le protocole SMTP (Simple Mail Transfer Pro-
tocol) qui intervient. Pour communiquer avec le serveur SMTP du prestataire, le client
de courrier n’a besoin que de l’adresse de ce serveur. C’est le prestataire qui définit si
l’authentification sur ce serveur est obligatoire ou non. Avec certains fournisseurs, une
authentification POP préalablement réussie suffit pour accéder automatiquement au
serveur SMTP. D’autres fournisseurs exigent une authentification SMTP distincte.

Lors de la configuration de votre compte, vous pouvez pour de nombreux clients e-mails configurer le
numéro de port associé à POP, IMAP et SMTP. Ce n’est toutefois que rarement nécessaire car ce sont géné-
ralement les valeurs standard qui sont utilisées (POP = 110, IMAP = 143, SMTP = 25). Vous trouverez au
chapitre 29 une explication sur les ports et leur utilisation.
Linux Livre Page 98 Mardi, 23. septembre 2008 1:05 13

98 LINUX

Rouages internes de la gestion des e-mails


Il existe différentes manières de gérer vos e-mails :
• Logiciel autonome local. C’est le cas le plus courant, qui consiste à gérer vos e-mails sur
votre ordinateur local à l’aide d’un client de courrier (MUA) comme Thunderbird. Ce
logiciel s’occupe de tous les aspects de la gestion des e-mails, depuis la réception jusqu’à
l’émission en passant par la rédaction ou le stockage. C’est ainsi que fonctionnent les trois
clients présentés dans ce chapitre.
• Partage local des tâches. Cette seconde variante correspond à la méthodologie Unix
usuelle, qui consiste à répartir des tâches individuelles entre différents programmes : dans
ce cas, vous utilisez un serveur d’e-mail local (MTA) pour l’envoi des courriers, fetchmail
pour la récupération de nouveaux e-mails sur le serveur POP de votre fournisseur et,
enfin, un client de courrier de votre choix qui fait appel à ces deux autres outils.
Cette conception était autrefois très répandue sous Unix/Linux mais elle se fait mainte-
nant de plus en plus rare à cause du surcroît de travail de configuration qu’elle occa-
sionne. Elle est toutefois obligatoire lorsque vous utilisez des clients de courrier en
mode texte. Ces programmes ne sont en effet pas en mesure de récupérer ou d’envoyer
des e-mails par eux-mêmes.
• Webmail. Une dernière alternative consiste aussi à utiliser l’un des nombreux systèmes
de webmail à votre disposition (par exemple Yahoo!, Gmail, etc.). Pour cela, vous avez
besoin non pas d’un logiciel dédié au traitement du courrier mais uniquement d’un
navigateur web. Dans ce cas, ce chapitre ne vous est d’aucune utilité.

Courrier local
Traditionnellement, Unix et Linux utilisent les e-mails comme un moyen de communication
locale. De nombreux services réseau consignent ainsi les erreurs survenues non seulement
dans un fichier journal mais également par envoi d’e-mails à l’utilisateur root. Du fait que de
nombreux utilisateurs de Linux ne remarquent jamais l’existence de tels e-mails, le courrier
local devient de plus en plus passé de mode. De nombreuses distributions utilisent toutefois
encore ce système pour émettre divers avertissements (par exemple Red Hat et Fedora). Pour
être en mesure de lire ces e-mails, vous devez connaître le mécanisme qui les sous-tend.
L’émission de courrier local intervient entièrement indépendamment de votre client de courrier
et fonctionne uniquement parce que, sur de nombreuses distributions Linux, un logiciel
d’envoi d’e-mails (ou, a minima, d’émission locale) tel que sendmail est installé par défaut.
Inbox "Émission locale" signifie que le courrier est ajouté à la fin du fichier /var/spool/mail/
nom_d_utilisateur. Ce fichier, au format mbox, contient pour chaque utilisateur tous les nou-
veaux courriers (c’est-à-dire tous ceux qui n’ont pas encore été consultés). On désigne donc
plus simplement ce fichier par l’appellation Inbox. Par ailleurs, le logiciel fetchmail mentionné
ci-dessus ajoute à cet Inbox les courriers récupérés depuis un serveur POP externe.
Lire des Le risque que vous ne soyez jamais amené à voir ces e-mails est grand, et ce pour deux rai-
courriers
locaux sons : tout d’abord, la majorité des clients de courrier graphiques ignorent /var/spool/
mail/nom_d_utilisateur ; par ailleurs, les e-mails système sont majoritairement adressés à
l’utilisateur root, tandis que vous travaillez généralement en tant qu’utilisateur normal.
Linux Livre Page 99 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 99

La solution au premier problème consiste à utiliser, pour lire le courrier local, un pro-
gramme qui prend en considération /var/spool/mail/nom_d_utilisateur. C’est le cas, entre
autres, de tous les logiciels de courrier en mode texte (par exemple cone, mail, mutt et pine).
Pour contourner le second obstacle, vous avez le choix entre deux méthodes : soit vous vous
identifiez en tant qu’utilisateur root (su -l ou sudo -s) avant de lancer un logiciel de cour-
rier en mode texte, soit vous ajoutez au fichier /etc/aliases une ligne redirigeant tous les
e-mails adressés à root vers votre propre boîte aux lettres locale.
mutt Pour lire les e-mails locaux, vous disposez du client en mode texte mutt, installé par défaut
sur Red Hat et Fedora et disponible pour l’ensemble des autres distributions. Dans une
console, commencez par exécuter la commande su -l pour vous identifier en tant qu’utili-
sateur root, puis lancez le programme avec la commande mutt. Les titres de tous les e-mails
apparaissent alors sur la page principale : à l’aide des flèches du clavier, vous pouvez vous
déplacer dans la boîte aux lettres. La touche Entrée affiche le texte complet de l’e-mail sélec-
tionné. La touche Espace vous permet de parcourir le contenu du courrier. La touche J vous
permet de passer à l’e-mail suivant, tandis que la touche I vous ramène à la boîte aux lettres.
La touche ? affiche un texte d’aide présentant les principaux raccourcis clavier. La touche Q
permet de quitter le programme.
/etc/aliases Il est naturellement bien plus élégant de rediriger tous les e-mails adressés à l’utilisateur
root vers la boîte aux lettres de l’utilisateur normalement responsable de l’administration
de la machine. Lorsque sendmail est installé comme MTA, il vous suffit pour cela d’ajouter
à la fin du fichier /etc/aliases une ligne construite sur le modèle suivant. À l’avenir, l’utili-
sateur kofler recevra tous les e-mails adressés à root.
# à la fin de /etc/aliases
...
root: kofler

Cette modification prendra effet seulement après que vous aurez exécuté la commande
newaliases. Pour lire les e-mails, vous pouvez maintenant vous passer de la commande su
-l ; vous devrez en revanche toujours faire appel à un programme capable de lire la boîte
aux lettres locale. Outre les outils en mode texte tels que mutt, Evolution et Kontact entrent
également dans cette catégorie (cela nécessite toutefois de configurer un compte supplé-
mentaire en conséquence). Malheureusement, ce n’est plus le cas de Thunderbird depuis sa
version 2.

Formats de boîtes aux lettres et conversion


Format mbox Tous les logiciels de courrier offrent la possibilité d’enregistrer les courriers que vous avez
reçus et envoyés dans des répertoires de votre ordinateur. C’est ici qu’intervient fréquem-
ment le format mbox : tous les e-mails d’un répertoire (dossier) sont simplement concaténés
dans un fichier unique qui peut devenir très volumineux. Les lignes commençant par From
marquent la séparation entre deux e-mails.
Linux Livre Page 100 Mardi, 23. septembre 2008 1:05 13

100 LINUX

Si vous avez installé le programme mutt, vous pourrez obtenir avec la commande man mbox
davantage d’informations sur ce format. Il est également documenté sur Internet, par exemple
à la page : http://www.qmail.org/qmail-manual-html/man5/mbox.html
La plupart des clients e-mails génèrent, outre les fichiers mbox, des fichiers supplémentaires
de gestion indexant les fichiers de boîtes aux lettres. Ces fichiers permettent un accès plus
rapide aux e-mails individuels, mais ils sont incompatibles d’un client à l’autre.
La prise en charge (quand elle existe) des hiérarchies de répertoires de courrier et sa mise en
œuvre dépendent également du client de courrier. Il n’existe pas de standard commun sur
ce point.
Le format mbox facilite le passage d’un client e-mails à un autre. En règle générale, il vous
suffit pour cela de copier les fichiers mbox (sans les fichiers de gestion) dans le répertoire où
le nouveau client e-mail s’attend à les trouver.
Format maildir Outre le format mbox, de nombreux clients e-mails (par exemple Kontact/KMail) prennent
également en charge le format maildir. Avec ce format, chaque e-mail est enregistré dans un
fichier propre. Une boîte aux lettres est donc alors constituée de tous les fichiers d’un même
répertoire. L’avantage évident de ce format est qu’il permet d’effacer plus facilement des
courriers individuels.
Autres formats Sous Windows, il n’est naturellement pas question de trouver un standard commun pour la
sauvegarde des e-mails. Il existe certes quelques programmes Windows utilisant le format
mbox, mais une majorité d’entre eux reposent sur leur propre format d’enregistrement.
Si vous souhaitez importer vos e-mails depuis un ordinateur Windows vers un système
Linux, vous devrez les convertir au format mbox. Par chance, plusieurs clients de courrier
disposent d’outils d’aide à la conversion justement pour ces cas de figure (c’est par exemple
le cas de Thunderbird et de Kontact). En outre, il existe divers programmes de conversion
spécialisés (il vous suffit par exemple de rechercher sur Internet les termes mbox conversion
outlook eudora). En règle générale, il est judicieux, avant de lancer une quelconque conver-
sion, de compresser les répertoires de courrier. Tous les e-mails effacés seront alors effectivement
supprimés des fichiers de boîte aux lettres.

Pour un utilisateur d’Outlook Express sous Windows souhaitant passer à Thunderbird sous Linux, il faut
passer par une étape intermédiaire et installer tout d’abord la version Windows de Thunderbird. De cette
manière, les e-mails peuvent être importés depuis Outlook Express. Il suffit ensuite de copier le répertoire de
courrier résultant vers Linux.

Signature et chiffrement d’e-mails


Si le courrier électronique est bien plus rapide que le système postal usuel, sa sécurité est en
revanche beaucoup plus relative : pour toute personne ayant quelques connaissances
techniques, il n’est pas difficile d’émettre des e-mails en falsifiant l’adresse de l’expéditeur,
de lire ou même de modifier les courriers que vous adressez à d’autres personnes. Pour cette
raison, vous ne devriez jamais envoyer de données personnelles importantes (par exemple
un numéro de carte bancaire) dans un e-mail qui n’est pas chiffré.
La signature et le chiffrement permettent de sécuriser notablement vos communications
électroniques. Tous les clients de courrier que nous présentons dans ce livre sont en mesure
Linux Livre Page 101 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 101

de signer et de chiffrer les e-mails et peuvent naturellement aussi gérer la réception des
e-mails signés et chiffrés.
Malgré les avantages indéniables que représentent la signature et le chiffrement des e-mails,
en pratique vous ne rencontrerez que rarement de tels courriers. La perte de confort occa-
sionnée, la gestion relativement complexe du chiffrement ainsi que l’incompatibilité entre
les deux standards utilisés (PGP et S/MIME) constituent des obstacles notoires au dévelop-
pement de ces pratiques.
Clé Pour la signature et le chiffrement, on utilise une clé. Une clé électronique est tout simplement
un code numérique très long.
Clé publique Pour la signature et le chiffrement des e-mails, on procède de manière dite asymétrique.
et clé privée
Chaque clé est donc constituée de deux parties : d’une part la clé privée, qui n’est normale-
ment enregistrée que sur le disque dur de son propriétaire, d’autre part la clé publique, qui
est par exemple publiée sur Internet. La particularité de ce fonctionnement asymétrique
réside dans le fait qu’une partie de la clé est utilisée pour la signature ou le chiffrement, tandis
que l’autre partie de la clé sert à contrôler la signature ou à déchiffrer.
Signer Signer un e-mail signifie qu’une somme de contrôle est calculée avant l’envoi du courrier. Cette
somme de contrôle est chiffrée et, à partir de celle-ci, le destinataire peut vérifier que l’e-mail
provient effectivement de l’expéditeur annoncé et qu’il n’a pas été manipulé depuis son envoi.
Lorsque vous signez un e-mail, votre client de courrier utilise votre clé privée. Pour le
contrôle de la signature, la clé publique est toutefois suffisante. Cela signifie que vous seul
pouvez signer vos e-mails (car vous êtes l’unique propriétaire de votre clé privée).
N’importe qui peut en revanche contrôler l’authenticité des e-mails que vous avez signés,
car n’importe qui peut accéder à votre clé publique sur Internet.
N’importe qui peut lire les e-mails que vous avez signés, même si le destinataire de votre
e-mail ne connaît pas votre clé publique ou s’il utilise un client de courrier sans fonctionna-
lité de signature (par exemple une interface webmail). Dans de tels cas, le code de signature
figure en fin du courrier. Ce code n’empêche pas la lecture du contenu effectif de l’e-mail.
Un destinataire ne pouvant pas gérer les signatures ne peut toutefois vérifier que vous êtes
bien l’auteur de l’e-mail.
Chiffrement Le chiffrement d’un e-mail signifie que le courrier est envoyé non pas en texte clair mais
sous forme chiffrée. Personne ne peut lire le contenu de ce courrier à moins de connaître la
clé permettant de le déchiffrer.
Pour le chiffrement, on utilise la clé publique du destinataire du courrier. Par conséquent, si
vous souhaitez envoyer un e-mail à Alice, vous devez préalablement connaître la clé publi-
que d’Alice. Le courrier ainsi chiffré ne peut alors être déchiffré qu’à l’aide de la clé privée
du destinataire. Alice étant le seul détenteur de cette clé privée, elle est la seule à pouvoir le
lire : même si vous êtes l’auteur du message, vous ne pouvez plus le lire !
Votre e-mail chiffré ne peut être lu que par son destinataire, qui possède la partie privée de
la clé dont la partie publique a servi au chiffrement. Lorsque le destinataire perd ou efface
accidentellement sa clé privée ou lorsqu’il utilise un client de courrier sans fonctionnalités
de chiffrement, il ne voit apparaître qu’une longue liste de chiffres et de codes. Le courrier
n’a donc aucun sens.
Linux Livre Page 102 Mardi, 23. septembre 2008 1:05 13

102 LINUX

PGP et S/MIME Il serait bien trop simple de n’avoir qu’une seule méthode pour la signature, le chiffrement
et la gestion des clés ! Il existe deux méthodes établies, aussi sûres l’une que l’autre :
• PGP, GPG, OpenPGP. À l’origine se trouvait le projet logiciel PGP (Pretty Good Privacy).
PGP étant devenu un produit commercial, la communauté open-source a lancé sa pro-
pre implémentation compatible avec PGP, GPG (GNU Privacy Guard). Enfin, OpenPGP
est un standard Internet public correspondant aussi bien à PGP qu’à GPG.
Par défaut, PGP ne permet de signer ou de chiffrer que le courrier lui-même. Si vous
souhaitez également signer ou chiffrer les pièces jointes, vous devez utiliser sa variante
PGP/MIME.
L’aspect le plus remarquable de PGP, d’un point de vue utilisateur, est probablement la
facilité avec laquelle il permet de générer soi-même les clés. Pour cette raison, PGP est
adapté pour l’utilisation aussi bien dans de grandes entreprises que dans des PME.
Même au sein du monde Linux et open-source, PGP domine le marché. Gnome aussi bien
que KDE proposent des outils arrivés à maturité technique pour la gestion des clés. Malheu-
reusement, de nombreux clients de courrier sous Windows ne prennent pas en charge PGP
ou, pour certains, seulement après l’installation de greffons ou d’extensions.
• S/MIME. S/MIME (Secure Multipurpose Internet Mail Extension) se fonde sur d’autres
algorithmes de chiffrement. En guise de clé S/MIME, on doit utiliser ce que l’on désigne
par le terme de certificat X.509.
Des documents signés ou chiffrés par S/MIME ont, vis-à-vis de certaines organisations
publiques, la même valeur qu’un document papier signé. Ceci vaut toutefois unique-
ment lorsque le certificat X.509 utilisé a été émis par une autorité de confiance autorisée
(CA ou Certificate Authority) après contrôle de données d’identification personnelles
(par exemple le passeport). De tels certificats sont par conséquent très coûteux, du fait
de l’important travail administratif requis, mais ils sont beaucoup plus fiables que les
certificats créés manuellement.
S/MIME est très répandu dans le monde Windows et il est également pris en charge par
les trois clients de courrier présentés dans ce chapitre (même s’il est en partie moins bien
géré que PGP). L’obstacle principal pour les utilisateurs privés réside probablement
dans la difficulté à générer sa propre clé S/MIME.
Malheureusement, ces deux modes de fonctionnement sont incompatibles entre eux. Un
courrier chiffré par PGP ne peut être lu au moyen de S/MIME, et vice versa. Il existe certes
des clients de courrier qui gèrent les deux mécanismes de chiffrement, mais dans ce cas vous
aurez besoin d’une clé différente pour chaque mécanisme. De surcroît, un courrier ne peut être
chiffré que par une seule méthode, pas les deux à la fois. Pour faire simple et court : en l’état
actuel, PGP offre tout le nécessaire pour communiquer de façon sûre et sans surcoût. L’avantage
de S/MIME est la valeur juridique que confère l’utilisation des certificats X.509 qualifiés.
Gestion La plupart des clients de courrier peuvent gérer eux-mêmes les clés nécessaires à l’envoi et
des clés
à la réception de courrier, voire générer au besoin une nouvelle clé. Toutefois, comme les
clés peuvent également servir dans d’autres contextes, il est pratique de séparer la gestion
des clés du client de courrier. À cet effet, Gnome propose le programme Seahorse, tandis
que KDE propose KGpg et Kleopatra (pour S/MIME).
La tâche principale en terme de gestion des clés consiste à rassembler les clés publiques de
tous vos interlocuteurs au sein d’un "porte-clés". À l’import d’une nouvelle clé, vous devez
Linux Livre Page 103 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 103

la "signer". Cela signifie que vous êtes convaincu que la clé importée provient effectivement
de la bonne personne. Si vous travaillez avec des clés PGP, vous trouverez tous les fichiers de
gestion dans le répertoire ~/.gnupg.

7.2 Thunderbird
Le client de courrier Thunderbird émane, comme Firefox, du projet Mozilla. Même s’il est
intégré à la quasi-totalité des distributions, il n’est que rarement installé. En effet, aussi bien
Gnome que KDE possèdent leur propre programme qu’ils établissent comme client de cour-
rier par défaut (voir les deux sections suivantes). Personnellement, je préfère Thunderbird
pour diverses raisons :
• Thunderbird est un client de courrier épuré. Cela rend son utilisation plus claire.
• Le programme est également disponible pour Windows et convient donc aux utilisateurs
souhaitant gérer leur archive de courrier dans un format compatible Windows.
• Le filtre antispam fonctionne bien et est facile à utiliser.
Cette section présente la version 2.0 de Thunderbird.
Installation Sur de nombreuses distributions, Thunderbird est partagé en plusieurs paquets. L’un d’eux
contient les fonctionnalités de base, tandis que les autres paquets contiennent les textes des
menus et boîtes de dialogue dans différentes langues. N’oubliez donc pas d’installer aussi le
paquetage francophone ! Dans Gnome et KDE, vous devrez ensuite établir Thunderbird en tant
que client de courrier par défaut (voir les chapitres 4 et 5 sur les environnements de bureau).

Configuration d’un compte


Au premier lancement de Thunderbird, l’assistant de création de compte apparaît automa-
tiquement pour vous aider dans la configuration. Vous pouvez également lancer l’assistant,
au besoin, par le biais des menus Éditions > Paramètres des comptes puis du bouton Ajouter
un compte.
Dans l’assistant, commencez par choisir le type Compte courrier électronique et renseignez
votre nom ainsi que votre adresse e-mail. Dans la boîte de dialogue suivante, choisissez
entre les protocoles POP et IMAP pour la récupération du courrier depuis votre boîte aux
lettres. Renseignez également l’adresse du serveur POP ou IMAP correspondant (boîte
aux lettres pour le courrier entrant) ainsi que le serveur SMTP (courrier sortant).
À la boîte de dialogue suivante, l’assistant s’attend à recevoir les identifiants à employer pour la
récupération des e-mails entrants et pour l’envoi des courriers. Bien souvent, ces deux noms
d’utilisateur sont identiques ; il est également possible qu’aucun identifiant ne soit demandé
pour l’envoi des courriers. À ce stade, vous ne pouvez pas encore fournir de mot de passe :
Thunderbird vous le demandera à la première tentative de récupération ou d’envoi d’un e-mail.
Enfin, vous devez donner au compte un nom : c’est sous ce nom que le compte apparaîtra
dans Thunderbird. Le nom facilite l’orientation lorsque vous possédez plusieurs comptes de
courrier. Thunderbird affiche enfin une synthèse de la configuration : normalement, aucune
Linux Livre Page 104 Mardi, 23. septembre 2008 1:05 13

104 LINUX

modification supplémentaire n’est nécessaire et vous pouvez donc conclure le processus de


configuration par le biais du bouton Terminer.
Au besoin, vous pouvez configurer de nombreuses options supplémentaires par le biais des
menus Édition > Paramètres des comptes (voir Figure 7.1). Lors des premiers tests, il est
intéressant de profiter de l’option Paramètres serveur > Laisser les messages sur le serveur :
de cette manière, Thunderbird n’efface pas les courriers sur le serveur après les avoir récu-
pérés. Si vous souhaitez ultérieurement changer de client de courrier, vous pourrez à nouveau
télécharger ces e-mails.

Figure 7.1
Configuration
d’un compte dans
Thunderbird.

Fonctionnalités de base
Une fois la configuration terminée apparaît la fenêtre de courrier Thunderbird. Lorsque vous
cliquez pour la première fois sur le bouton Relever ou que vous utilisez la combinaison de tou-
ches Maj+Alt+T pour récupérer vos nouveaux e-mails, vous devrez fournir le mot de passe de
votre boîte aux lettres. Thunderbird enregistre votre mot de passe, après un avertissement de
sécurité, dans un fichier de configuration. Tout comme pour Firefox, il est fortement conseillé
de protéger les mots de passe par le biais d’un mot de passe principal que vous pourrez confi-
gurer en passant par les menus Édition > Préférences > Confidentialité > Mots de passe.
Lire des Les nouveaux e-mails sont déposés dans le dossier Courrier entrant (voir Figure 7.2). D’un
e-mails
double-clic sur l’un des éléments de la liste affichée, vous ouvrez une nouvelle fenêtre pour
consulter l’e-mail correspondant. Ceci vous permet de lire plus confortablement les e-mails
plus volumineux. Les fichiers et images contenus dans les e-mails HTML ne sont pas chargés,
par sécurité : au besoin, utilisez le bouton Télécharger les images.
Linux Livre Page 105 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 105

Figure 7.2
Gestion des e-mails.

Afficher les fils Lorsque plusieurs courriers provenant de la même discussion (par exemple le courrier d’origine
de discussion
ainsi que diverses réponses et réactions d’autres personnes) figurent dans un même dossier, il
est possible de les afficher suivant une structure arborescente par le biais des menus Affichage >
Trier par > Discussions groupées. Le flux de courriers est ainsi affiché de manière plus synthé-
tique (et l’on voit donc plus facilement qui a répondu à quel courrier et à quelle date).
Pièces jointes Souvent, les e-mails contiennent des pièces jointes, c’est-à-dire des fichiers distincts du cour-
rier à proprement parler. Ils sont indiqués dans la liste des e-mails par un petit trombone.
Dans le courrier, vous pouvez ouvrir les pièces jointes par un double-clic ou faire appel au
menu contextuel pour enregistrer les fichiers localement, les supprimer de l’e-mail ou
encore les détacher. "Détacher" signifie ici que le fichier est d’abord enregistré en local puis
effacé du message. C’est donc une solution pratique lorsque vous ne souhaitez conserver
que le texte d’un e-mail mais pas les pièces jointes, parfois extrêmement volumineuses.
Thunderbird sait, grâce à la configuration MIME, quel programme il doit utiliser pour
ouvrir un fichier d’un type donné. MIME est l’acronyme de Multipurpose Internet Mail Exten-
sions. Thunderbird tient compte des paramètres MIME généraux de Linux (voir le Chapitre 13
sur ce point) ainsi que des paramètres qui lui sont propres, enregistrés dans le fichier
XML ~/.thunderbird/xxxxxxxx.default/mimeTypes.rdf. Il n’est toutefois pas possible
d’ajouter de nouveaux types de données à Thunderbird. Lorsque celui-ci ne reconnaît pas
un type de fichier, vous devez enregistrer la pièce jointe en tant que fichier puis ouvrir celui-
ci par le biais du gestionnaire de fichiers de votre environnement de bureau.
Rédiger Dans la fenêtre de rédaction d’un e-mail, vous trouverez un grand nombre de boutons de
un e-mail
mise en forme et d’insertion d’objets divers. Les menus Insérer et Format proposent encore
davantage de possibilités. Attention, toutefois, à un point : les e-mails construits de cette
manière sont envoyés au format HTML. De nombreux utilisateurs refusent tout simplement
de tels e-mails ou considèrent qu’ils présentent un risque de sécurité. Thunderbird
Linux Livre Page 106 Mardi, 23. septembre 2008 1:05 13

106 LINUX

demande par conséquent à l’envoi (Ctrl+Entrée) si vous souhaitez envoyer le courrier au


format texte, HTML ou dans les deux formats.
Si vous envisagez de rédiger un e-mail en texte simple uniquement, choisissez Options >
Format > Texte seulement dans la fenêtre Écrire ou appuyez sur la touche Maj lorsque vous
cliquez sur le bouton Écrire ou Répondre. Si, comme beaucoup d’utilisateurs avancés, vous
souhaitez rédiger vos courriers uniquement au format texte simple, vous pouvez désactiver
entièrement les fonctionnalités de rédaction au format HTML : pour cela, ouvrez la boîte de
dialogue de configuration Édition > Paramètres des comptes > Rédaction et adressage et
décochez l’option Rédiger les messages en HTML.
Au premier envoi de courrier, Thunderbird vous demande de fournir le mot de passe pour
le serveur SMTP devant gérer les courriers sortants. Si le serveur sortant de votre société ou
de votre fournisseur d’accès ne nécessite aucune authentification, ouvrez la fenêtre Édition
> Paramètres des comptes > Serveur sortant (SMTP), cliquez sur le bouton Modifier pour
ouvrir une boîte de dialogue de configuration et désactivez-y l’option Utiliser un nom d’uti-
lisateur et un mot de passe.
Vous répondez à un e-mail soit avec la combinaison de touches Ctrl+R (répondre à l’auteur),
soit avec Ctrl+Maj+R (répondre à tous). Pour répondre à des e-mails au format texte, vous
devrez parfois faire appel au menu Édition > Reformater pour reformater le texte et le rendre
plus facile à lire.
Rechercher Dans le champ de recherche figurant à droite de la barre d’outils courrier, vous pouvez saisir un
des e-mails,
dossiers mot-clé qui sera recherché soit dans l’adresse de l’expéditeur, soit dans le sujet, soit dans le
virtuels contenu du courrier. Thunderbird affiche alors uniquement les e-mails répondant à ce critère.
Le menu Édition > Chercher > Rechercher... (ou, plus rapidement, Ctrl+F) offre des possibi-
lités de recherche supplémentaires. En particulier, vous pouvez par ce biais effectuer une
recherche simultanée dans plusieurs dossiers. Vous pouvez enregistrer vos paramètres de
recherche en tant que "dossiers virtuels" : les dossiers virtuels se présentent de la même
façon que les dossiers de courrier habituels, mais ils contiennent des résultats de recherche.
Vous pouvez par exemple définir un nouveau dossier virtuel pour les courriers répondant
au critère "statut n’est pas lu". Ce dossier présentera alors l’ensemble des e-mails non encore
lus, indépendamment du dossier dans lequel ces courriers sont effectivement enregistrés.
Carnet Dans la fenêtre de carnet d’adresses, vous pouvez gérer différentes listes d’adresses. Par
d’adresses
défaut, deux listes sont prévues : Adresses personnelles et Adresses collectées. À la création
d’un nouveau courrier, Thunderbird enregistre automatiquement l’adresse utilisée dans les
Adresses personnelles. Si vous ne voulez pas de ce fonctionnement ou si les adresses en
question doivent être enregistrées dans une autre liste, vous trouverez les paramètres cor-
respondants dans la boîte de dialogue Édition > Préférences > Rédaction > Adressage. Vous
pouvez également enregistrer manuellement les adresses e-mail par le menu contextuel.
Pour gérer les adresses, ouvrez le carnet d’adresses par le biais du menu Outils. Vous pou-
vez alors y rechercher des adresses, exporter et importer des adresses dans différents
formats, etc.
Filtre antispam Thunderbird intègre un filtre antispam. Vous pouvez l’activer par le biais de la boîte de dia-
logue Édition > Préférences > Confidentialité > Indésirables (voir Figure 7.3). Du fait que la
reconnaissance du spam ne fonctionne pas parfaitement au début, il est conseillé de ne pas
activer immédiatement l’option Les déplacer dans le dossier "indésirables". De cette
Linux Livre Page 107 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 107

manière, les e-mails soupçonnés d’être du spam seront conservés dans le dossier "Courrier
entrant" mais seront identifiés par une icône "spam".

Figure 7.3
Configurer le filtre
antispam.

Pour faire progresser la reconnaissance du spam, vous devez passer quelques jours à "entraî-
ner" votre filtre. Pendant cette période, pour chaque e-mail que Thunderbird n’aura pas correc-
tement identifié comme spam, cliquez sur le bouton Indésirable. Il est encore plus efficace pour
cela d’utiliser le clavier : la touche J permet de classer un e-mail en tant que spam, tandis que la
combinaison Maj+J permet de lever le marquage "indésirable" sur un courrier acceptable.
Le filtrage antispam ne fonctionne que pour les e-mails reçus après activation du filtre. Pour
traiter les courriers figurant déjà dans le dossier courant, passez par le menu Outils > Traquer
les indésirables dans le dossier.
Indépendamment du filtrage antispam, vous pouvez définir des règles de filtrage supplé-
mentaires par le biais du menu Outils > Filtres de messages... De cette manière, vous pouvez
automatiquement marquer ou déplacer vers un répertoire donné tous les e-mails entrants
répondant à un critère donné. C’est une fonctionnalité particulièrement pratique pour traiter
automatiquement les e-mails provenant de listes de diffusion.

Extensions et fonctionnalités additionnelles


Modules Comme Firefox, Thunderbird permet l’ajout de fonctionnalités additionnelles sous la forme
complé-
mentaires de modules complémentaires. La boîte de dialogue Outils > Modules complémentaires
donne un aperçu de tous les modules complémentaires déjà installés :
http://addons.mozilla.org/fr/thunderbird
Les extensions de Thunderbird se présentent, comme celles de Firefox, sous la forme de
fichiers XPI. Pour les installer, vous devez télécharger le fichier XPI et l’enregistrer dans un
répertoire local. Utilisez ensuite le bouton Installer de la boîte de dialogue Outils > Modules
complémentaires et sélectionnez le fichier à installer. Une installation directe par un clic de
souris dans Firefox n’est pas possible, car Firefox n’est pas en mesure de distinguer les
Linux Livre Page 108 Mardi, 23. septembre 2008 1:05 13

108 LINUX

extensions conçues pour lui de celles prévues pour Thunderbird. Les extensions ne sont
effectivement utilisables qu’après avoir relancé Thunderbird.
Signer/chiffrer Les fonctionnalités de chiffrement pour S/MIME sont intégrées par défaut dans Thunder-
des e-mails
bird. Vous trouverez tous les éléments de configuration nécessaires dans la boîte de dialo-
gue Édition > Paramètres des comptes > Sécurité. Le bouton Afficher les certificats vous
conduit à une boîte de dialogue de gestion des certificats X.509, jouant le rôle de clés dans le
cadre de S/MIME.
Pour pouvoir lire ou rédiger dans Thunderbird des e-mails chiffrés ou signés par PGP, vous
devez ajouter le module complémentaire Enigmail. Vous trouverez le fichier XPI correspon-
dant sur le site web d’Add-ons mentionné ci-dessus. Ce module nécessite toutefois que
gnupg soit préalablement installé sur l’ordinateur. C’est le cas pour la majorité des distribu-
tions. Toutes les fonctionnalités de chiffrement sont alors accessibles depuis le menu
OpenPGP dans la fenêtre principale ainsi que dans la fenêtre Écrire.
Lire/rédiger Avec Thunderbird, vous pouvez également lire et rédiger des messages des groupes de
des news
news Usenet. Pour ce faire, configurez un nouveau Compte forums de discussion par le
biais des menus Édition > Paramètres des comptes > Ajouter un compte. Vous devrez alors
fournir l’adresse d’un serveur de news auquel vous avez accès. La plupart des fournisseurs
d’accès Internet vous mettent à disposition un tel serveur. Vous pourrez ensuite accéder à ce
compte dans la fenêtre principale de Thunderbird et vous abonner à des groupes de discussion.
Vous pourrez alors lire et rédiger les messages exactement comme des e-mails.

Si vous souhaitez uniquement lire les messages et y effectuer des recherches, il est préférable d’utiliser
pour cela Google. L’avantage de Google est qu’il vous permet également d’accéder à des messages
anciens. Sur les serveurs de news, les messages ne sont conservés que quelques semaines, pour des raisons
de place. http://groups.google.com
Icône du Thunderbird vous informe de l’arrivée d’un nouveau courrier par un bip sonore et en fai-
tableau de
bord pour sant apparaître en surimpression quelques informations synthétiques sur le courrier en
signaler un question. Les options correspondant à cette fonctionnalité se trouvent dans la boîte de dialo-
nouvel e-mail
gue Édition > Préférences > Général. Personnellement, toutefois, je préférerais que Thun-
derbird fasse apparaître une petite icône dans le tableau de bord Gnome ou KDE dès qu’un
nouvel e-mail est disponible. Thunderbird n’en est étonnamment pas capable. Il existe
toutefois un module complémentaire assurant cette fonctionnalité :
http://moztraybiff.mozdev.org/
Dictionnaires À la rédaction d’un e-mail, Thunderbird souligne les mots qu’il suppose être erronés. Cette
fonctionnalité ainsi que la langue par défaut sont activées par le biais des menus Édition >
Préférences > Rédaction > Orthographe. Les langues disponibles sont toutefois limitées à
celles pour lesquelles un dictionnaire a été installé. Certaines distributions sont livrées avec
les fichiers de dictionnaires nécessaires pour les principales langues ou, a minima, mettent à
la disposition des utilisateurs les paquetages correspondants. Si ce n’est pas le cas de votre
distribution, vous pouvez également installer manuellement le dictionnaire nécessaire.
Pour ce faire, téléchargez le fichier XPI correspondant depuis le site web suivant et installez-
le exactement comme un module complémentaire :
https://addons.mozilla.org/fr/thunderbird/browse/type:3
Linux Livre Page 109 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 109

Importer ou synchroniser des e-mails Windows


Import Si vous aviez jusqu’à présent utilisé un autre client de courrier électronique (sous Win-
dows), vous souhaiterez peut-être importer vos anciens e-mails. La version Linux de Thun-
derbird n’est toutefois pas d’une grande aide sur ce point : Outils > Importer... ouvre certes
un assistant d’import, mais celui-ci ne prend en charge qu’un unique format, celui des
anciennes versions de Netscape.
La version Windows de Thunderbird est toutefois bien plus utile. Son assistant d’import est
livré avec les formats de courrier utilisés par Microsoft Outlook, Outlook Express et Eudora.
Une fois les courriers convertis sous Windows, il ne vous reste alors plus qu’à recopier les e-
mails depuis le répertoire Windows vers le bon répertoire Linux. Ces répertoires peuvent
toutefois être un peu fastidieux à localiser :
• Sous Windows, le répertoire contenant les e-mails Thunderbird correspond au chemin
suivant :
C:\Documents and Settings\nom_d_utilisateur\Application Data\Thunderbird\Pro-
files\Default\xxxxxx.xxx\Mail\Local Folders\
Depuis Linux, vous pourrez en règle générale accéder à ce répertoire par le chemin
/media/sdan, où sdan correspond au nom de périphérique de la partition Windows.
Vous devrez remplacer tous les caractères \ par des barres obliques /. Lorsque votre distri-
bution ne monte pas par défaut les partitions Windows dans votre arborescence de réper-
toires, vous devrez procéder manuellement (voir à ce sujet le Chapitre 23). xxxxxx.xxx est
un nom de répertoire généré par Thunderbird et constitué de caractères aléatoires.
• Sous Linux, le répertoire vers lequel copier les fichiers possède le chemin suivant :
~/.thunderbird/xxxxxx.xxx.default/Mail/Local Folders/
Les anciennes versions de Thunderbird utilisent encore ~/.mozilla-thunderbird au lieu
de ~/.thunderbird.
Avant de copier les fichiers d’e-mail d’un répertoire vers l’autre, n’oubliez pas de fermer
Thunderbird !
Synchroni- Si vous travaillez aussi bien sous Windows que sous Linux, vous avez la possibilité de syn-
sation des
e-mails chroniser le répertoire d’e-mails dans son ensemble. Une condition préalable essentielle au
bon fonctionnement de ce système est d’avoir installé la même version de Thunderbird sur
les deux systèmes d’exploitation.

Ce passage s’adresse aux utilisateurs de Linux ayant déjà une certaine expérience derrière eux et s’applique à
Thunderbird 2.0. On ne peut pas encore prédire si et comment une synchronisation des répertoires d’e-mails
fonctionnera dans les versions futures de Thunderbird.
Sur mon ordinateur de test, la synchronisation des e-mails fonctionne depuis un peu plus de un an et elle est
également passée avec succès de la version 1.5 à la version 2.0. Cette méthode n’est toutefois pas exempte de
problèmes. Thunderbird est toujours persuadé qu’il doit réindexer les e-mails de chaque dossier ; il oublie fré-
quemment le dernier ordre de classement défini ; etc. Une certaine prudence est par ailleurs de rigueur. Une sau-
vegarde régulière du répertoire complet, même sans synchronisation avec Windows, devrait aller de soi. Lorsque
vous réalisez votre sauvegarde, n’oubliez pas de fermer Thunderbird !
Linux Livre Page 110 Mardi, 23. septembre 2008 1:05 13

110 LINUX

Dans ce qui suit, je pars du principe que vous avez jusqu’à présent géré vos e-mails avec
Thunderbird sous Windows. Vous souhaitez maintenant accéder aux courriers avec Thun-
derbird sous Linux. Du moment que vous avez accès en écriture, depuis Linux, sur votre
partition Windows comprenant les e-mails, vous n’avez pas besoin de modifier quoi que ce
soit dans Windows. C’est le cas si vous utilisez un système de fichiers VFAT sous Windows
ou si vous avez mis en place le pilote ntfs-3g sous Linux (qui vous permet d’écrire sur un
système de fichiers NTFS, voir le Chapitre 25 sur ce sujet).
Lancez Thunderbird sous Linux et configurez un nouveau compte pour votre service de
courrier. Avant de télécharger le moindre e-mail, ouvrez la boîte de dialogue Édition > Para-
mètres des comptes > Paramètres du serveur et modifiez le Répertoire local. Renseignez-y le
chemin du répertoire dans lequel sont enregistrés les e-mails sous Windows. Procédez exac-
tement de la même manière pour le répertoire du pseudo-compte Dossiers locaux (les "Dos-
siers locaux" définissent l’endroit où sont enregistrés tous les courriers entrants ainsi que
tous les dossiers de courrier que vous avez créés). Et c’est fini !
Si vous n’avez pas accès en écriture, depuis Linux, au dossier d’e-mails de Windows, vous
devrez copier le répertoire d’e-mails en question vers un nouveau répertoire hébergé sur
une partition VFAT (opération à réaliser sous Windows). Ensuite, ouvrez Thunderbird sous
Windows et modifiez les paramètres du serveur de manière que Thunderbird lise et enregistre
tous les e-mails depuis ce nouvel emplacement.
Synchroniser Pour synchroniser également le carnet d’adresses, fermez Thunderbird sous Linux et
le carnet
d’adresses passez dans le répertoire ~/.thunderbird/xxxxxx.xxx.default. Commencez par y faire
une copie de sauvegarde du fichier abook.mab et créez ensuite un lien vers le fichier équi-
valent sous Windows (ce qui suppose là encore que vous ayez accès en écriture au sys-
tème de fichiers Windows). Vous trouverez davantage d’astuces sur ce point à l’adresse
suivante :
http://kb.mozillazine.org/Sharing_address_books
Configuration Lorsque vous accédez à plusieurs comptes e-mail depuis Thunderbird, il est particulière-
d’un compte
ment fastidieux de reconfigurer chaque compte lors d’un passage de Windows à Linux. Le
module complémentaire Accountex facilite quelque peu cette tâche. Vous trouverez
Accountex sur le site web des extensions Thunderbird que nous avons déjà mentionnées :
https://addons.mozilla.org/fr/thunderbird

7.3 Evolution
Le logiciel Evolution, développé par la société Ximian (qui a depuis été intégrée à la société
Novell), a été conçu comme une alternative à Microsoft Outlook. Non seulement Evolution
peut être utilisé pour la lecture et la rédaction d’e-mails, mais il propose également des fonc-
tionnalités de gestion des adresses et rendez-vous, la synchronisation de ces données avec
un PDA compatible Palm ainsi qu’avec un serveur Microsoft Exchange, le chiffrement des e-
mails avec PGP ou S/MIME, etc. Evolution réunit toutes ces fonctionnalités sous une même
interface utilisateur : le client de courrier par défaut de l’environnement de bureau Gnome.
Il n’est donc pas étonnant que son adoption ait connu un fort développement.
Linux Livre Page 111 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 111

Les utilisateurs avancés de Linux restent néanmoins quelque peu sceptiques vis-à-vis de ce
logiciel. Ceci est en particulier dû au fait qu’Evolution a, par le passé, toujours connu des
problèmes de stabilité et de rapidité, ce qui a nui à son image.

Configuration d’un compte


Au premier lancement d’Evolution apparaît un assistant de configuration d’un compte e-mail.
Cet assistant doit être parcouru intégralement avant de pouvoir utiliser Evolution.
La configuration commence par la saisie de vos nom et adresse e-mail. À la boîte de dialogue
suivante, vous fournissez les paramètres du serveur de courrier hébergeant votre boîte aux let-
tres : vous indiquez ici le type de serveur (par exemple POP ou IMAP), son adresse ainsi que
votre nom d’utilisateur. C’est lors de votre première tentative de connexion au serveur que le
mot de passe vous sera demandé. De nombreux hébergeurs de courrier vous permettent de
transférer les données par le biais d’une connexion chiffrée par SSL, ce qui en améliore la sécu-
rité. Dans la boîte de dialogue suivante, vous pouvez configurer diverses options, par exemple
la vérification automatique de nouveaux courriers à intervalles réguliers.
À l’étape suivante, vous configurez le serveur de courrier sortant (SMTP) vers lequel vous
envoyez les e-mails. Vous devez non seulement fournir le nom de cette machine mais égale-
ment configurer les options d’authentification. Dans la plupart des cas, le type d’authentifica-
tion à choisir est "connexion". Le nom d’utilisateur correspond à l’identifiant de connexion au
serveur SMTP. Le mot de passe vous est demandé lorsque vous tentez pour la première fois
d’envoyer un e-mail. De nombreux prestataires de courrier exigent une authentification de
type "POP avant SMTP". Dans ce cas, aucun mot de passe SMTP n’est nécessaire.
Enfin, vous devez fournir un nom au compte que vous venez de configurer (par défaut, c’est
votre adresse e-mail qui est utilisée) et renseigner votre fuseau horaire pour qu’Evolution
puisse correctement configurer l’heure d’émission des e-mails.
Si vous souhaitez ultérieurement modifier la configuration ou mettre en place des paramètres
supplémentaires, vous accéderez par le biais des menus Édition > Préférences > Comptes de
messagerie à la boîte de dialogue correspondante (voir Figure 7.4).
Signature Lorsque vos courriers doivent systématiquement se conclure par le même texte (par exem-
ple "Cordialement, un_nom"), vous pouvez créer une signature dans la boîte de dialogue
Édition > Préférences > Préférences de l’éditeur > Signatures. Dans la fenêtre de rédaction
d’un e-mail, vous pourrez alors insérer la signature au moyen d’un bouton. Evolution n’est
toutefois pas en mesure d’insérer automatiquement une signature par défaut.

Fonctionnalités de base
Lire des Lorsque vous cliquez pour la première fois sur le bouton Envoyer/Recevoir ou que vous
e-mails
appuyez sur la touche F9 pour télécharger les nouveaux e-mails, vous devez fournir le mot
de passe pour votre boîte aux lettres.
Linux Livre Page 112 Mardi, 23. septembre 2008 1:05 13

112 LINUX

Figure 7.4
Configuration d’un
compte dans Evolution.

Les nouveaux e-mails sont rassemblés dans le dossier local intitulé Boîte de réception (voir
Figure 7.5). La liste des courriers apparaît dans la partie supérieure de la fenêtre, tandis que le
texte du courrier sélectionné est affiché dans la partie inférieure. D’un double-clic sur un élément
de la liste, vous pouvez ouvrir un courrier dans une fenêtre distincte, ce qui en facilite la lecture.

Figure 7.5
Gestion des e-mails
dans Evolution.

Lorsque plusieurs courriers provenant de la même discussion figurent dans un même dos-
sier, il est possible de les afficher suivant une structure arborescente par le biais des menus
Affichage > Grouper par fils de discussion. Avec cette vue, vous pouvez immédiatement
identifier qui a répondu à quel courrier et à quelle date.
Envoyer Vous pouvez rédiger un nouveau courrier avec la combinaison de touches Ctrl+N et
des e-mails
l’envoyer avec Ctrl+Entrée. Au premier envoi, Evolution vous demande le mot de passe
Linux Livre Page 113 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 113

d’accès au serveur SMTP devant gérer l’envoi du courrier. Vous pouvez répondre à des
e-mails déjà reçus grâce à la combinaison de touches Ctrl+R (répondre à l’auteur) ou
Ctrl+Maj+R (répondre à tous). Ctrl+F vous permet de faire suivre un courrier à un autre
destinataire. L’e-mail d’origine est alors ajouté en tant que pièce jointe.
Courriers au Il existe fondamentalement deux types d’e-mails : les courriers au format texte simple, sans
format HTML
mise en forme, et les messages HTML avec toutes les possibilités de mise en forme que pro-
pose le HTML (différentes tailles, couleurs, etc. de polices). Les courriers au format HTML
ont toutefois, par le passé, conduit à des problèmes de sécurité avec de nombreux logiciels
de courrier (particulièrement avec Microsoft Outlook). De nombreux utilisateurs refusent
donc tout simplement de tels e-mails ou considèrent qu’ils présentent un risque de sécurité.
Pour des raisons de sécurité, Evolution ne charge aucun des fichiers (donc aucune image) uti-
lisés dans un e-mail au format HTML. Vous pouvez modifier ce comportement par le biais de
la boîte de dialogue Édition > Préférences > Préférences du courriel > Courriel HTML.
Par défaut, vous ne pouvez rédiger dans Evolution que des e-mails au format texte simple.
Pour écrire des courriers au format HTML, choisissez Format > HTML dans la fenêtre de
rédaction. Divers boutons et menus de mise en forme et d’insertion vous permettront alors
d’appliquer toutes les modifications que vous souhaitez.
Si vous souhaitez rédiger systématiquement vos e-mails au format HTML, passez par les
menus Édition > Préférences et, dans la boîte de dialogue Préférences de l’éditeur > Général,
cochez l’option Formater les messages en HTML.
Rechercher Evolution présente, directement sous la barre d’outils, un champ permettant d’effectuer des
des e-mails
recherches rapides parmi les e-mails. Si vous utilisez régulièrement les mêmes critères de
recherche, il peut être intéressant de créer un dossier de recherche (ou "dossier virtuel").
Pour ce faire, passez par Édition > Dossiers de recherche ou Recherche > Créer un dossier de
recherche à partir d’une recherche...
Filtrage Evolution utilise automatiquement spamassassin pour l’identification des e-mails indésira-
antispam
bles, à condition que ce logiciel soit installé. Pour appliquer le filtrage antispam sur les cour-
riers existant déjà dans un dossier, sélectionnez l’ensemble des e-mails avec Ctrl+A puis
exécutez Message > Filtrer le pourriel. Cette opération peut prendre un temps important sur
les dossiers comprenant beaucoup de courriers. Les courriers identifiés comme spam sont
déplacés dans le dossier Pourriels.
Le filtre antispam est initialement assez prudent pour éviter de classer indûment comme
pourriel des e-mails qui ne le sont pas. Pour cette raison, il est souvent nécessaire, durant les
premières semaines, d’indiquer manuellement pour chaque courrier s’il s’agit d’un spam.
Pour ce faire, sélectionnez l’e-mail en question et cliquez sur le bouton Pourriel ou utilisez la
combinaison de touches Ctrl+J. Le filtre antispam tente de découvrir dans le courrier ainsi
marqué un motif qui pourra l’aider, par la suite, à correctement trier les e-mails. Ainsi, le
filtrage antispam s’améliore continuellement.

À l’occasion, il arrive malheureusement qu’un courrier soit indûment classé comme spam. Vous devez par
conséquent jeter un coup d’œil régulier au dossier Pourriel afin de vérifier s’il s’y trouve de tels e-mails.
Linux Livre Page 114 Mardi, 23. septembre 2008 1:05 13

114 LINUX

Pour éviter que cette identification erronée ne se reproduise, cliquez sur le bouton Non pourriel pour le
courrier concerné.
D’après mon expérience, le filtrage antispam d’Evolution fonctionne moins bien que celui de Thunderbird.
Il ne peut rivaliser avec celui de Thunderbird ni en terme de rapidité de traitement ni en vitesse d’appren-
tissage.

Filtres Outre le filtrage antispam, Evolution peut, grâce à des règles de filtrage, déplacer automati-
quement des e-mails vers certains dossiers ou même effacer des courriers. C’est pratique
lorsque vous avez un grand nombre d’e-mails à traiter et que vous souhaitez organiser
ceux-ci suivant un motif particulier (par exemple la présence d’un mot donné dans le sujet).
C’est typiquement le cas lorsque vous êtes abonné à plusieurs listes de diffusion.
La méthode la plus simple pour définir une nouvelle règle de filtrage consiste à sélectionner
le courriel puis à exécuter Message > Créer une règle > Filtrer sur la liste de diffusion. Lors-
que Evolution ne parvient pas à reconnaître correctement la règle de filtrage, vous pouvez la
modifier ou lui ajouter des critères.

Fonctionnalités supplémentaires
Gestion des Le carnet d’adresses d’Evolution est, en réalité, un véritable système de gestion des contacts
adresses et
contacts dans lequel vous pouvez enregistrer un grand nombre d’informations en plus du nom et de
l’adresse e-mail. Vous pouvez accéder au carnet d’adresses soit par le biais des menus Affi-
chage > Fenêtre > Contacts, soit plus rapidement par la combinaison de touches Ctrl+F2.
Fichier > Importer > Importer un seul fichier vous permet d’importer des fichiers de carnet
d’adresses au format LDIF (Lightweight Directory Interchange Format). Malheureusement,
c’est le seul format pris en charge.
Calendrier et Le module Calendriers vous permet de gérer vos rendez-vous. Les rendez-vous peuvent
gestion des
rendez-vous être présentés dans diverses vues : tous les rendez-vous d’une journée, d’une semaine
ouvrée, d’une semaine complète ou d’un mois. Vous pouvez personnaliser de nombreux
détails de présentation (par exemple les horaires de travail habituels ou les couleurs des
polices) par le biais d’Édition > Préférences > Calendriers et tâches.
Pour créer un nouveau rendez-vous, passez par les menus Fichier > Nouveau > Rendez-
vous ou double-cliquez sur l’emplacement correspondant au rendez-vous dans le calen-
drier. Pour les rendez-vous devant se répéter à intervalles réguliers (chaque semaine, mois,
année, etc.), renseignez l’intervalle dans la boîte de dialogue à l’aide du bouton Récurrence,
et précisez au besoin une date de fin pour cette répétition.
Liste de tâches Evolution compte également un module de gestion de tâches (une sorte de to do-list). Vous pou-
vez afficher les tâches soit dans une vue propre, soit comme partie intégrante du calendrier.
Synchroni- Pour tout possesseur de PDA, il est naturellement intéressant de pouvoir synchroniser ses
sation avec
un PDA données avec Evolution. Cette possibilité existe de fait pour les PDA compatibles Palm.
Avant la première synchronisation, vous devez configurer le périphérique par le biais d’Édi-
tion > Options de synchronisation. En coulisse, c’est le programme gnome-pilot qui est
chargé de la configuration et du transfert des données. Mon expérience montre toutefois
que la synchronisation ne fonctionne pas de manière très fiable, ce qui rend cet outil plus
adapté aux expérimentateurs qu’à ceux qui souhaitent l’utiliser quotidiennement.
Linux Livre Page 115 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 115

7.4 Kontact
Kontact est un programme universel de gestion des e-mails, contacts, rendez-vous, tâches,
notifications ainsi que pour l’affichage de flux RSS. Kontact propose, comme Evolution, une
synchronisation des données avec un PDA. De fait, Kontact n’est qu’une interface utilisateur
unifiée pour différents programmes KDE fonctionnant en coulisse.
Cette section se focalise sur le composant e-mail derrière lequel se cache le programme
KMail. Attention au fait que le menu de Kontact change suivant le composant actif ! Les
indications de menu qui suivent ici ne valent que lorsque le composant de courrier est actif.
Si vous n’êtes intéressé que par les fonctionnalités d’e-mail, vous pouvez également lancer
KMail en tant que programme autonome.
Des trois logiciels de courrier présentés dans ce chapitre, Kontact (et Kmail) est celui dont
l’orientation technique est la plus forte. Ce programme présente d’innombrables fonction-
nalités et permet aux utilisateurs avancés de Linux de travailler très efficacement. Son utili-
sation n’est toutefois pas toujours très intuitive. Par conséquent, ce logiciel n’est pas
forcément le plus conseillé pour les débutants sous Linux.
Configuration Configuration > Configurer KMail vous conduit à une boîte de dialogue de configuration. Par
d’un compte
défaut, le système a configuré une "identité par défaut". Le bouton Modifier vous permet ici de
configurer vos nom et adresse e-mail effectifs ainsi que, au besoin, d’autres options.
La configuration effective du compte a lieu dans le module Comptes. Vous devez y configu-
rer au moins un compte de réception et un compte d’envoi. Pour commencer, en général,
vous utiliserez le bouton Ajouter pour configurer la boîte aux lettres entrante de votre ser-
veur POP ou IMAP. Pour le courrier sortant est prévu le programme sendmail, mais il n’est
en règle générale configuré que pour l’émission de courrier local. Par conséquent, vous
devez configurer une boîte aux lettres SMTP supplémentaire (voir Figure 7.6), que vous pouvez
sélectionner comme boîte aux lettres par défaut.

Figure 7.6
Configuration d’un
compte dans Kontact.

Dès que vous quittez la boîte de dialogue de configuration, Kontact enregistre les mots de
passe dans une base de données centrale par le biais de KDEWallet. Par conséquent, vous
devez fournir le mot de passe maître pour KDEWallet (voir Chapitre 5).
Linux Livre Page 116 Mardi, 23. septembre 2008 1:05 13

116 LINUX

Lire des Les nouveaux e-mails sont rassemblés dans le dossier Boîte de réception. La liste des cour-
e-mails
riers apparaît dans la partie supérieure de la fenêtre, tandis que le contenu de l’e-mail sélec-
tionné est affiché dans la partie inférieure. Au besoin, vous pouvez ouvrir un courrier dans
une fenêtre séparée en double-cliquant dessus dans la liste.
Les e-mails HTML ont, par le passé, conduit à des problèmes de sécurité avec de nombreux
clients de courrier. Par conséquent, pour de tels e-mails, KMail ne présente par défaut
qu’une version texte ou le code source HTML. Si vous souhaitez consulter l’e-mail avec sa
mise en forme HTML complète, vous devez cliquer sur le lien correspondant.
Si vous souhaitez afficher systématiquement les e-mails HTML en tant que tels, passez par
Dossier > Préférer le HTML au texte brut. Ce paramétrage ne vaut toutefois que pour le dossier
en cours.
KMail présente à côté de chaque message une barre verticale qui, suivant le type d’e-mail,
indique "Message HTML" ou "Message non HTML". Si cette barre vous dérange, vous pou-
vez la désactiver par le biais de la boîte de dialogue Configuration > Configurer KMail >
Apparence > Fenêtre des messages (décochez l’option Afficher la barre d’état pour les mes-
sages HTML). La partie inférieure de la zone d’affichage du courrier indique les parties
constitutives de l’e-mail. Si ces informations ne vous intéressent pas, choisissez l’option Ne
jamais afficher pour l’élément Configuration > Configurer KMail > Apparence > Disposition
> Affichage de la structure du message.

Figure 7.7
Gérer les e-mails
avec Kontact.

Rédiger un Un nouvel e-mail est, par défaut, rédigé en texte brut. Si vous souhaitez appliquer une mise
e-mail
en forme HTML, passez par Options > Formatage (HTML). Une fois le courrier rédigé, vous
pouvez l’envoyer avec la combinaison de touches Ctrl+Entrée.
Pour répondre à un courrier, vous pouvez utiliser les touches R (répondre à l’auteur) et A
(répondre à tous). Le texte complet de l’e-mail est automatiquement inséré en citation dans
Linux Livre Page 117 Mardi, 23. septembre 2008 1:05 13

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT) 117

la réponse (chaque ligne est donc précédée du caractère >). Si vous ne souhaitez rappeler
dans votre réponse qu’une partie du message d’origine, sélectionnez la partie correspon-
dante dans l’e-mail avant de faire appel à une commande Répondre.
KMail exécute automatiquement une vérification orthographique et colore tous les mots
non reconnus en rouge. Affichage > Dictionnaire vous permet de choisir le dictionnaire
approprié parmi plusieurs (anglais, français, etc.).
Spam KMail n’intègre aucun outil d’identification du spam mais peut déléguer cette tâche à
d’autres programmes. Un assistant auquel vous pouvez accéder par Outils > Assistant de
gestion des messages non sollicités vous aide à configurer un filtre antispam. Vous n’avez
qu’à choisir un des programmes de gestion du spam installé sur votre ordinateur et l’assis-
tant gère tout le reste. Les courriers identifiés comme indésirables seront dès lors envoyés
directement vers la Corbeille. Comme avec les autres logiciels de courrier, l’efficacité du fil-
trage augmente lorsque vous corrigez les erreurs d’identification en marquant manuellement
un courrier comme indésirable ou non.
Linux Livre Page 118 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 119 Mardi, 23. septembre 2008 1:05 13

OpenOffice
8
OpenOffice est le plus puissant et le plus populaire de tous les paquetages bureautiques
libres disponibles sous Linux. Ses principaux avantages sont les suivants :
• Une grande compatibilité avec Microsoft Office jusqu’à sa version 2003 ; cela concerne
aussi bien l’utilisation de la suite que l’import et l’export de fichiers.
• Une prise en charge des systèmes d’exploitation Linux, Windows, Mac OS et Sun Solaris ;
cela permet ainsi d’échanger sans difficulté des documents dans des environnements
hétérogènes ; il n’existe pas encore de version OpenOffice officielle pour Mac OS, mais
les utilisateurs de Mac peuvent toutefois installer le portage gratuit NeoOffice.
• Des fonctionnalités très larges, y compris pour des tâches avancées (par exemple la
rédaction d’une thèse).
• Sa stabilité, sa sûreté et sa maturité.
Ce chapitre décrit tout d’abord quelques particularités d’OpenOffice 2n, puis présentera
rapidement chacun des composants Writer, Calc, Impress et Base. De façon générale, je pars
dans ce chapitre du principe que vous maîtrisez les fonctionnalités de base d’Office. La
place manque ici pour expliquer comment passer le texte en gras ou comment fonctionnent
les formules dans un tableur. Nous ne pouvons que vous conseiller de vous procurer un
livre entièrement dédié à OpenOffice ou à StarOffice, ce que vous pourrez trouver dans
n’importe quelle librairie.
OpenOffice est disponible pour la quasi-totalité des distributions et peut être installé sim-
plement à l’aide du gestionnaire de paquetages. Si ce n’est pas le cas ou si vous souhaitez
installer une version plus récente, vous devrez récupérer les fichiers d’installation depuis le
site officiel : http://www.openoffice.org
OpenOffice n’est en aucun cas l’unique paquetage bureautique pour Linux. Les principales
alternatives seront rapidement présentées dans la dernière section de ce chapitre.

8.1 Introduction
Avant de présenter chacun des composants OpenOffice dans les sections suivantes de ce
chapitre, nous donnons ici quelques informations générales sur le paquetage OpenOffice.
Java Quelques fonctionnalités d’OpenOffice requièrent la présence de Java. Pour cette raison,
vous devez installer avant OpenOffice une version récente de Java. De nombreuses distribu-
tions proposent par défaut des paquetages Java. Si ce n’est pas le cas de la vôtre, vous pou-
vez télécharger gratuitement la dernière version de l’environnement d’exécution Java de
Sun (J2SE JRE) depuis le site web suivant : http://java.sun.com/j2se/downloads.html
OpenOffice reconnaît automatiquement l’environnement Java disponible lors de l’installation.
Si vous mettez en place Java après avoir installé OpenOffice, vous devrez paramétrer Java
manuellement par le biais de la boîte de dialogue Outils > Options > OpenOffice > Java.
Linux Livre Page 120 Mardi, 23. septembre 2008 1:05 13

120 LINUX

Lancement du Si vous travaillez sous KDE ou Gnome, le menu de démarrage correspondant devrait com-
programme
prendre les icônes OpenOffice dès l’installation terminée. Si ces icônes manquent, vous pouvez
naturellement aussi lancer les composants d’OpenOffice par la ligne de commande :
ooffice, oowriter, oocalc, ooimpress, oobase

Les noms des commandes varient sur certaines distributions. Quoi qu’il en soit, chacune de
ces commandes lance un seul et même programme qui contient l’ensemble des composants
de traitement de texte, tableur, présentation, etc. Pour cette raison, le lancement initial peut
sembler un peu long. Si vous avez ouvert plusieurs composants OpenOffice simultanément,
il n’y a en réalité qu’un seul programme qui s’exécute en coulisse. Vous n’avez donc pas
besoin de vous inquiéter : chacune des fenêtres OpenOffice ouvertes ne requiert pas une
quantité de RAM abusive.
Formats de Avec OpenOffice, vous pouvez ouvrir et enregistrer vos documents dans plusieurs formats
fichiers
OpenOffice de fichiers différents. Les trois formats principaux sont les suivants :
• Format OpenDocument ou OASIS (*.odt pour les fichiers de texte, *.ods pour les
feuilles de calcul, *.odp pour les présentations). Ce format a été introduit avec Open-
Office 2.0. C’est le format par défaut et qui devrait être utilisé autant que possible. Il faut
toutefois veiller, lors de l’échange de documents, à ce que le destinataire du fichier dis-
pose au moins d’OpenOffice 1.1.5 ou de StarOffice 9 s’il doit travailler sur ces fichiers.
OASIS est l’acronyme d’Organization for the Advancement of Structured Information
Standards.
• Format OpenOffice 1.n (*.sxw, *.sxc, *.sxi). Ce format était le format par défaut pour
OpenOffice 1.0 et 1.1, ainsi que pour StarOffice 7 et 8.
• Format Microsoft Office (*.doc, *.xls, *.ppt). Ce format est adapté pour l’échange de
fichiers avec des utilisateurs de Microsoft Office.
Depuis sa version 2.3, OpenOffice peut également ouvrir des fichiers Office 2007 (for-
mat OpenXML, *.docx, *.xlsx, *.pptx) mais non enregistrer dans ce format. Si vous
souhaitez ou devez rester compatible avec le monde Microsoft, utilisez simplement
pour enregistrer vos documents le format Office passé.
La section suivante présentera quelques remarques supplémentaires sur la compatibilité
avec MS-Office.
Vous devriez autant que possible utiliser le format OpenDocument. C’est le seul format qui
permet de garantir l’absence de changements à l’ouverture ou à l’enregistrement. Si vous
choisissez d’enregistrer votre document sous un autre format, une demande de confirmation
de sécurité apparaît automatiquement.
Intégration Par défaut, OpenOffice utilise ses propres boîtes de dialogue pour le chargement et l’enre-
à l’environ-
nement de gistrement de fichiers. Pour faire en sorte qu’OpenOffice utilise plutôt les éléments de dialo-
bureau gue standard de votre environnement de bureau et qu’il s’intègre ainsi plus
harmonieusement à KDE ou à Gnome, vous pouvez désactiver l’option Utiliser les boîtes de
dialogue OpenOffice.org dans la fenêtre de configuration Outils > Options > OpenOffice >
Général. Cette option n’est toutefois disponible que si OpenOffice peut effectivement utiliser
les boîtes de dialogue de l’environnement de bureau courant.
Dossiers Les versions récentes d’OpenOffice vous permettent de travailler directement sur des
réseau
Windows fichiers provenant de répertoires réseau Windows et Samba (vous pouvez donc les ouvrir
Linux Livre Page 121 Mardi, 23. septembre 2008 1:05 13

OPENOFFICE 121

par double-clic dans votre gestionnaire de fichiers et enregistrer ultérieurement les modifi-
cations apportées).
Ceci ne fonctionne toutefois pas sur les anciennes versions d’OpenOffice. Pour modifier des
documents Office hébergés sur un réseau Windows, vous avez deux possibilités :
• copier préalablement le fichier vers un répertoire local, utiliser cette copie pour la modi-
fier puis recopier le fichier résultant dans le répertoire réseau à l’aide du gestionnaire de
fichiers ;
• monter le répertoire réseau Windows dans le système de fichiers Linux à l’aide de mount
(voir Chapitre 23) ; ceci nécessite toutefois de posséder les droits root.

OpenOffice face à Microsoft Office


OpenOffice peut-il totalement se substituer à MS-Office ou non ? Cette question appelle en
fait plusieurs réponses. Pour l’utilisateur de base, OpenOffice propose certainement plus
qu’assez de fonctionnalités. Même la migration depuis Microsoft Office, jusqu’à sa ver-
sion 2003, ne devrait pas poser de problème : les menus sont structurés de manière très sem-
blable. Si, toutefois, vous appartenez au groupe des utilisateurs avancés, vous devrez être
conscient de certaines limitations :
• MS-Office 2007. OpenOffice présente une compatibilité très élevée avec les anciennes
versions de Microsoft Office. Cela ne vaut toutefois pas pour MS-Office 2007.
J’ai par ailleurs déjà mentionné que le nouveau format de fichier OpenXML n’est pas
encore pris en charge. Novell travaille à des convertisseurs OpenXML qui seront proba-
blement intégrés officiellement à OpenOffice à l’avenir.
• Import/Export. Les fonctionnalités d’import et d’export pour les formats Microsoft
Office (*.doc, *.xls, *.ppt) sont plutôt bonnes mais ne suffisent pas pour garantir
l’absence totale de problème à l’échange de documents. Lorsque deux personnes tra-
vaillent alternativement sur un texte ou une feuille de calcul avec MS-Office et OpenOf-
fice, quelques surprises peu agréables sont à prévoir : problèmes de mise en forme,
présentation erronée des caractères spéciaux à cause des polices, sauts de pages et de
colonnes manquants, gestion erronée des lignes d’en-tête et de pied de page, présenta-
tion incorrecte des diagrammes, couleurs erronées, liaisons manquantes vers des fichiers
externes (images), etc.
OpenOffice n’est pas capable d’ouvrir des fichiers MS-Office protégés par un mot de
passe. Vous devrez préalablement ouvrir de tels fichiers dans MS-Office puis les y enre-
gistrer, cette fois sans protection.
• Rapidité. Certaines fonctionnalités OpenOffice sont notoirement plus lentes que leurs
homologues MS-Office. C’est en particulier le cas de l’ouverture et de l’enregistrement
de documents volumineux. De surcroît, MS-Office peut pendant ce temps exécuter en
tâche de fond diverses opérations consommatrices de temps, tandis qu’OpenOffice est
totalement bloqué.
Linux Livre Page 122 Mardi, 23. septembre 2008 1:05 13

122 LINUX

• Raccourcis clavier. De nombreux raccourcis clavier possèdent une signification diffé-


rente dans OpenOffice et MS-Office. Il est néanmoins toujours possible de modifier les
raccourcis existants et de définir des raccourcis personnalisés.
• Access et Base. Le composant de base de données d’OpenOffice Base n’est pas compa-
rable à Access. Vous pouvez certes utiliser Base pour accéder à des bases de données
externes ou créer vos propres bases, mais le spectre de fonctionnalités d’Access n’est
que très partiellement couvert par Base.
• Programmation/VBA. OpenOffice utilise un langage de programmation de macros
relativement mal documenté et, par conséquent, employé presque uniquement par les
utilisateurs avancés d’OpenOffice.
VBA, langage de programmation de macros intégré à Microsoft Office, n’est officielle-
ment pas pris en charge. Toutefois, il existe une extension développée par la société
Novell spécialement pour OpenOffice Calc qui permet d’exécuter des macros VBA sim-
ples. D’après mon expérience, la compatibilité d’OpenOffice 2.2 avec Microsoft Excel est
encore malheureusement très insuffisante. L’exécution de macros VBA occasionne des
erreurs, voire des plantages.
Cette liste ne devrait toutefois pas vous empêcher de migrer vers OpenOffice, d’autant plus
que celui-ci propose d’autres fonctionnalités absentes de MS-Office. À titre personnel, j’uti-
lise depuis plusieurs années déjà OpenOffice pour mes documents personnels. Si je signale
ici les problèmes potentiels, c’est avant tout pour éviter les déceptions face à ce produit.

8.2 Traitement de texte (OpenOffice Writer)


Writer est le composant OpenOffice essentiel pour la majorité des utilisateurs. Toutefois, la
place nous manque ici pour décrire en profondeur l’ensemble de ses fonctionnalités. Nous
devrons donc nous contenter ici de donner les grandes lignes de son fonctionnement, sans
nous attarder sur des considérations de base (comment passer le texte en gras ou en italique)
que vous maîtrisez déjà.
Styles Comme de nombreux autres logiciels de traitement de texte, OpenOffice gère ce que l’on
appelle les styles, qui permettent de mettre en forme de manière cohérente sur l’ensemble
d’un document des caractères, paragraphes, etc. Modifier un style impactera l’apparence du
document dans son ensemble car tous les éléments mis en forme avec ce style changeront
d’allure. L’utilisation des styles présente de très nombreux avantages par rapport à la mise
en forme manuelle (présentation unifiée d’un document et cohérence entre documents utili-
sant les mêmes styles, facilité pour modifier un style sur l’ensemble d’un document).
L’utilisation des styles est particulièrement recommandée pour la création d’un document
volumineux.
OpenOffice propose un outil dénommé Styles et mise en forme pour la gestion des styles (voir
Figure 8.1). Il s’agit d’une fenêtre complémentaire que vous pouvez ouvrir ou fermer à l’aide
de la touche F11. Vous pouvez également l’amarrer à la fenêtre principale en le faisant glisser
avec la souris. Les styles s’appliquent à plusieurs niveaux : paragraphes, caractères, cadres,
pages et listes, chacun de ces niveaux correspondant à un onglet distinct dans Styles et mise en
forme.
Linux Livre Page 123 Mardi, 23. septembre 2008 1:05 13

OPENOFFICE 123

Figure 8.1
La fenêtre OpenOffice
standard avec Styles et
mise en forme.

Pour appliquer un style à un élément de texte donné, sélectionnez le texte puis double-
cliquez, dans Styles et mise en forme, sur le style choisi. Vous pouvez aussi modifier un style
par le biais du menu contextuel, d’un clic droit sur son intitulé dans Styles et mise en forme.
Vous pouvez enfin définir vos propres styles en sélectionnant l’élément de texte dont la mise
en forme doit être enregistrée, puis en cliquant dans Styles et mise en forme sur le bouton
Nouveau style à partir de la sélection. Attention, toutefois, au fait que les modifications
apportées aux styles ne peuvent être annulées (contrairement à beaucoup d’autres opérations)
par le biais des touches Ctrl+Z. Vous devez donc les enregistrer régulièrement.
Tabulations et OpenOffice prévoit par défaut des intervalles de 1,25 cm pour les tabulations. Vous pouvez
tableaux
toutefois modifier ce comportement par le biais de l’onglet Tabulations dans la boîte de dia-
logue Format > Paragraphe. La touche Tab insère une tabulation dans la ligne en cours, ce
qui suffit pour les tableaux très simples.
Pour les tableaux plus complexes, vous devrez utiliser le menu Insertion > Tableau. Vous
pouvez modifier diverses propriétés du tableau par le biais du menu Propriétés du tableau
(dans la fenêtre de gestion des tableaux ou dans le menu contextuel).
Pour insérer des cellules depuis Calc dans Writer, copiez les cellules concernées dans Calc à
l’aide des touches Ctrl+C. Pour les insérer dans Writer en tant que tableau, utilisez le menu
Édition > Collage spécial puis Texte non formaté. Les données apparaissent alors sous forme
de texte tabulé, que vous pouvez transformer en tableau par le biais de Tableau > Convertir
> Texte en tableau (en choisissant, dans la boîte de dialogue de conversion, la tabulation
comme caractère séparateur). Si vous cherchez à insérer directement les cellules dans Writer,
Linux Livre Page 124 Mardi, 23. septembre 2008 1:05 13

124 LINUX

vous produirez non pas un tableau classique mais un objet OLE dont les données sont liées
au fichier d’origine : ce type de liaison n’est que rarement utilisé.
Titres Si votre document est structuré en chapitres et sections, les titres doivent être mis en forme
numérotés
à l’aide des styles Titre 1 à Titre 10 (ce qui facilite par ailleurs la génération d’une table des
matières). Ces titres ne comprennent toutefois pas de numérotation : pour insérer des numé-
ros, utilisez le menu Outils > Numérotation des chapitres. La boîte de dialogue qui apparaît
vous permet de configurer la numérotation pour chacun des niveaux envisagés.
Vérification OpenOffice n’intègre pas directement de dictionnaire pour la vérification orthographique. Il
orthogra-
phique existe toutefois de nombreux dictionnaires disponibles sur Internet (voire livrés avec votre
distribution) que vous pouvez installer. Le menu Fichier > Assistants > Installer de nouveaux
dictionnaires peut également vous aider dans cette tâche.
Veillez à configurer correctement la langue du texte pour assurer un bon fonctionnement de
la vérification orthographique. La langue standard est configurée par le biais d’Outils >
Options > Paramètres linguistiques > Langue. Pour les textes multilingues, Format > Carac-
tères permet de définir la langue avec une granularité plus fine.
Coupure OpenOffice permet de couper les mots soit manuellement, soit automatiquement. Pour lan-
des mots
cer la coupure manuelle, passez par le menu Outils > Langue > Coupure des mots. OpenOf-
fice ajoute alors les tirets soit à l’ensemble du texte situé après le curseur, soit sur une partie
du texte préalablement sélectionnée (vous pouvez aussi utiliser les touches Ctrl+"moins"
pour insérer une coupure manuelle). Chaque coupure doit être confirmée mais vous pouvez
désactiver ce fonctionnement dans Outils > Options > Paramètres linguistiques > Linguistique.
La coupure automatique est nettement plus pratique à utiliser. Toutefois, seuls les paragraphes
pour lesquels l’option de coupure automatique (Format > Paragraphe > Enchaînements) a
été activée seront traités par ce biais.
Insérer Pour insérer une image dans un document, utilisez les menus Insertion > Image > À partir
des images
d’un fichier. Dans la boîte de dialogue de sélection du fichier, vous pouvez basculer entre
deux modes différents grâce à la discrète option Lien :
• Insérer l’image dans le texte. Lorsque Lien n’est pas cochée, le fichier graphique est
intégré au fichier OpenOffice à l’enregistrement. Cela signifie que la taille du fichier
augmente avec le volume de chaque image et le nombre total de celles-ci. La transmis-
sion de tels documents ne pose toutefois aucun problème puisque toutes les images sont
intégrées au fichier.
• Insérer un lien vers le fichier. Lorsque Lien est cochée, OpenOffice n’enregistre effective-
ment dans le fichier que le chemin vers l’image. Cette méthode est recommandée pour les
documents comprenant beaucoup d’images. Attention, toutefois, au fait qu’elle nécessite
de réactualiser tous les liens si l’emplacement du document ou des images change.
Champs Les champs sont des formules ou des variables qui peuvent être insérées dans le texte.
À l’impression, c’est la valeur correspondante qui apparaît dans le texte. Les champs vous
permettent de numéroter automatiquement des figures, d’afficher automatiquement la date
d’impression en en-tête, de créer des séries de lettres standard avec quelques éléments person-
nalisés, etc.
Vous pouvez utiliser Insertion > Champ pour quelques-uns des champs les plus couram-
ment utilisés (numéros de page, date, etc.). Pour disposer d’autres champs, passez par le
sous-menu Autres (Ctrl+F2). OpenOffice peut afficher le nom ou la valeur des champs :
Linux Livre Page 125 Mardi, 23. septembre 2008 1:05 13

OPENOFFICE 125

pour basculer d’un mode à l’autre, utilisez les menus Affichage > Noms de champs ou, plus
rapidement, la combinaison de touches Ctrl+F9 (si vous ne travaillez pas sous KDE).
Table des Lorsque vous souhaitez ajouter une table des matières à votre document, utilisez les styles
matières
de titres Titre 1 à Titre 10. De cette manière, vous pouvez construire la table des matières
avec un minimum de travail : il vous suffit alors de passer par les menus Insertion > Index >
Index puis de sélectionner le type Table des matières. Précisez que la table des matières doit
être fondée sur la structure et, au besoin, limitez le nombre de niveaux (trois est un bon
choix, quatre, un maximum) pour garder la lisibilité de la table. L’onglet Entrées vous per-
met de définir plus précisément la mise en forme de chaque ligne. Pour mettre à jour la table
des matières après avoir modifié le document, effectuez un clic droit dessus et, dans le menu
contextuel, sélectionnez Actualiser l’index.
Index lexical La première étape de la création d’un index consiste à définir les mots à indexer. Le plus
simple est pour cela de sélectionner les mots concernés, puis de passer par les menus Inser-
tion > Index > Entrée. Une boîte de dialogue s’ouvre alors avec, dans le champ Entrée, le
texte sélectionné. Cliquez sur Insérer pour confirmer la nouvelle entrée. Pour définir
d’autres entrées, gardez cette boîte de dialogue ouverte et marquez les mots à mesure que
vous avancez : dès que vous revenez à la boîte de dialogue, le champ Entrée contient le mot
que vous venez de sélectionner. Si vous souhaitez modifier l’intitulé exact de l’entrée, saisissez
le nouveau texte dans le champ.
Les mots pour lesquels une entrée d’index a été définie apparaissent désormais en gris. Le
texte de l’entrée apparaît lorsque vous passez la souris sur le surlignement gris. Une fois
que toutes les entrées sont définies, la création de l’index effectif est alors très simple : pas-
sez par les menus Insertion > Index > Index et choisissez dans la boîte de dialogue le type
Index lexical. Et c’est terminé ! Comme pour la table des matières, vous pouvez modifier ou
actualiser l’index par le biais du menu contextuel.
Impression L’impression par Fichier > Imprimer (Ctrl+P) ne pose en général pas de problème. La boîte
de dialogue vous permet au besoin de préciser quelles pages imprimer ou quelle imprimante
utiliser, et le bouton Options vous donne accès à plus de possibilités.
Pour imprimer au format paysage, vous devez passer par le format de page : Format > Page
> Page pour activer l’option Orientation paysage. Attention au fait qu’un tel paramètre est
prévu dans la boîte de dialogue d’impression, mais qu’il est généralement ignoré !
Export PDF Depuis la version 1.1, OpenOffice permet d’exporter des fichiers directement au format PDF
grâce à Fichier > Exporter au format PDF. Toutes les polices (sauf les polices standard PostS-
cript) sont insérées directement dans le fichier PDF : plus vous utilisez de polices, plus le
document devient donc volumineux. Il n’est pas possible de configurer les paramètres de
l’export PDF.
Gestion des Depuis sa version 2.0, OpenOffice est en mesure d’utiliser sans configuration particulière
polices
l’ensemble des polices disponibles sur votre ordinateur. Pour les polices PostScript, il existe
toutefois une limitation : OpenOffice ne peut les utiliser correctement que si les fichiers de
métrique *.afm des polices sont également installés dans le même fichier que les fichiers
*.pfa ou *.pfb.
Linux Livre Page 126 Mardi, 23. septembre 2008 1:05 13

126 LINUX

Il n’est pas possible de garantir un rendu exactement identique d’un même document sur deux ordinateurs
différents. Suivant les polices installées, la mise en page peut être très légèrement modifiée : lorsque la pré-
sentation doit absolument être identique quel que soit le lecteur, vous devez transmettre vos documents au
format PDF.

8.3 Tableur (OpenOffice Calc)


Saisie de Pour la saisie de formules complexes, vous pouvez vous faire aider d’un assistant par le
formule
biais du menu Insertion > Fonction. Pour l’utilisateur plus avancé, Insertion > Liste des
fonctions peut se révéler encore plus profitable : ce menu ouvre une fenêtre donnant
l’ensemble des formules et fonctions, parmi lesquelles vous pouvez choisir d’un double-clic
pour les insérer dans la cellule ou formule en cours. Les formules présentent des emplacements
réservés pour indiquer les paramètres.
Comme dans tout tableur, vous pouvez renseigner les références à des cellules soit de façon
relative (en fournissant les indications de "déplacement" par rapport à la cellule en cours),
soit de façon absolue (en donnant les coordonnées de la cellule cible de manière fixe, ce qui
maintient leur valeur même par copier-coller). Pour basculer du mode relatif au mode
absolu, utilisez la combinaison de touches Maj+F4.
Format de Comme dans Writer, Calc vous propose l’aide de Styles et mise en forme pour assurer la
cellule
mise en forme des cellules. Pour appeler ou fermer la fenêtre Styles et mise en forme, utilisez
la touche F11. Vous pouvez également préciser le format d’une cellule par le biais du menu
Format > Cellule, en particulier pour gérer la présentation des données numériques de
différents types.
Fonctions OpenOffice propose une longue liste de fonctions permettant d’analyser de grands volumes
d’analyse de
données de données. La condition préalable à remplir pour cela, généralement vérifiée, est que les
données doivent figurer dans un tableau d’un seul tenant. Si ce n’est pas le cas (par exemple
à cause de lignes ou de colonnes vides), vous pouvez utiliser avec profit le menu Données >
Définir la plage.
• Données > Trier vous permet de trier les données. Il est intéressant de noter que vous
pouvez fournir plusieurs critères de tri (le second critère étant utilisé en cas d’égalité sur
le premier critère).
• Données > Filtre > AutoFiltre vous permet de réduire les lignes visibles dans le tableau
à celles répondant à un critère donné.
• Données > Sous-totaux vous permet de partager le tableau en groupes suivant trois cri-
tères au maximum et, pour chaque groupe, de calculer les sous-totaux correspondants.
Ceci entraîne l’affichage en marge (ligne ou colonne) d’icônes + ou – permettant de
déplier ou de replier les groupes ainsi constitués. Pour ne plus afficher les sous-totaux,
cliquez sur le bouton Supprimer de la boîte de dialogue Sous-totaux.
• Données > Plan est une fonctionnalité comparable aux Sous-totaux. Vous pouvez y
regrouper des ensembles de lignes ou de colonnes. Les boutons + et – vous permettent
de déplier ou de replier les groupes correspondants. La différence avec les Sous-totaux
est toutefois que le plan est généré manuellement et qu’aucun sous-total n’est calculé.
Linux Livre Page 127 Mardi, 23. septembre 2008 1:05 13

OPENOFFICE 127

• Données > Pilote de données est une fonctionnalité avancée. L’idée sous-jacente est
d’utiliser au moins deux critères pour classer les données et de calculer des sous-totaux
intermédiaires.
Format de Calc connaît deux formes de présentation de page : Affichage > Normal correspond à l’affi-
page
chage habituel dans lequel une seule page est visible. Affichage > Aperçu des sauts de page
propose toutefois une vue plus synthétique : l’ensemble du tableau est présenté et les limi-
tes de page sont clairement indiquées. De surcroît, le numéro de chaque page apparaît en
gris en surimpression.
Pour basculer entre les orientations Portrait et Paysage, ainsi que pour configurer de nom-
breuses autres options, vous devrez passer par le menu Format > Page. Ce paramétrage vaut
pour l’ensemble du fichier (donc pour toutes les feuilles de calcul). Si vous souhaitez une mise
en page spécifique pour certaines feuilles de calcul, vous devrez faire appel à Styles et
mise en forme pour créer des styles de page particuliers correspondant à votre besoin.
Impression Par défaut, toutes les feuilles de calcul non vides sont imprimées. Si vous ne souhaitez
imprimer que la feuille de calcul active ou les feuilles de calcul sélectionnées, activez
l’option Imprimer uniquement les feuilles sélectionnées dans la boîte de dialogue Outils >
Options > Calc > Impression.
Si vous ne souhaitez pas imprimer la totalité de la feuille de calcul, vous pouvez déterminer par
le biais de Format > Zones d’impression la section à imprimer. La zone d’impression définie
couramment apparaît alors en couleur dans le mode d’affichage Aperçu des sauts de page.
Pour l’impression d’un document sur plusieurs pages, il est souhaitable de répéter sur cha-
que page les cellules de titres pour les lignes et colonnes. Pour ce faire, configurez en consé-
quence les champs Ligne à répéter et Colonne à répéter dans la boîte de dialogue Format >
Zones d’impression > Éditer.

8.4 Présentation (OpenOffice Impress)


Impress est le composant du paquetage OpenOffice qui permet de créer des présentations.
Parmi les points forts de ce programme, citons par exemple les nombreux formats d’export,
qui facilitent grandement l’échange de présentations. Toutefois, les débuts avec Impress
peuvent se révéler peu intuitifs.
Lorsque vous lancez Impress, un assistant vient à votre aide pour la création de nouvelles
présentations. Pour faire ses premiers pas dans Impress, cet assistant est plutôt pratique.
Choisissez à la première étape Présentation vierge, sélectionnez à la seconde l’arrière-plan
qui vous convient et concluez le processus en cliquant sur le bouton Créer. Si l’assistant, à la
longue, vous paraît pesant, vous pouvez désactiver son affichage automatique dans la boîte
de dialogue Outils > Options > Impress > Général.
Premiers pas Le travail de création d’une nouvelle présentation consiste en fait à structurer les pages (dia-
positives) de la présentation et à y insérer texte et images. Pour créer une nouvelle diaposi-
tive, choisissez Insertion > Diapo ou cliquez sur le bouton correspondant dans la barre
d’outils.
Linux Livre Page 128 Mardi, 23. septembre 2008 1:05 13

128 LINUX

Pour choisir la mise en page de la diapo, il vous suffit de cliquer sur l’icône correspondante
dans le panneau Mise en page qui se trouve à droite de la fenêtre (voir Figure 8.2). Cette
mise en page détermine la structure globale de la page. Le panneau de droite de la fenêtre
(panneau des tâches) vous permet non seulement de définir la mise en page de la diaposi-
tive en cours, mais également de gérer des transitions et animations ou de définir des pages
maîtresses.

Figure 8.2
La fenêtre
Impress standard.

Les mises en page prédéfinies sont en fait des variations de structures constituées de quatre
éléments de base : titre, sous-titre, texte (ou plan) et objets à insérer (images, tableaux Calc, etc.).
Avant de pouvoir saisir un texte dans un cadre, vous devez cliquer sur ce cadre. Pour les lis-
tes à puces, il existe une particularité : si vous placez le curseur en début de ligne ou que
vous sélectionniez plusieurs lignes, vous pouvez modifier le niveau d’indentation et le type
de puce par le biais des touches Tab et Maj+Tab. La taille de la police et la mise en forme du
texte sont également modifiées en conséquence. Pour saisir un texte sans puce, cliquez sur le
bouton (Dés)activer les puces dans la barre d’outils.
Le panneau de gauche de la fenêtre vous permet de naviguer rapidement d’une diapositive
à l’autre. Vous pouvez par ailleurs y définir pour chaque page un intitulé plus parlant : pour
ce faire, cliquez sur la diapositive concernée du bouton droit de la souris et choisissez
Renommer la diapo.
Visionner le Pour démarrer la présentation, il vous suffit d’appuyer sur la touche F5. Dès que la présen-
diaporama
tation est lancée, vous pouvez la parcourir à l’aide des touches Entrée, Espace ou des flèches
du clavier. Un simple clic de souris vous amène à la page suivante, le bouton droit de la souris,
à la page précédente. Echap met fin à la présentation en cours.
La combinaison de touches Maj+Ctrl+F5 permet d’afficher la fenêtre de navigation en cours
de présentation, ce qui est utile si vous souhaitez passer à une diapositive ultérieure sans
devoir parcourir toutes les pages intermédiaires.
Normalement, le changement de page nécessite un clic de souris ou une touche du clavier.
Pour automatiser le passage à la diapositive suivante, choisissez la vue Trieuse de diapositi-
ves. Dans le panneau des tâches, choisissez alors le domaine Transition et activez-y l’option
Linux Livre Page 129 Mardi, 23. septembre 2008 1:05 13

OPENOFFICE 129

Automatiquement après : vous pouvez alors définir la durée d’affichage de la diapositive


pour chaque page. Si cette durée doit être identique pour toutes les diapositives, cliquez sur
le bouton Appliquer à toutes les diapos.
Mise en forme La mise en forme des textes et la gestion de l’arrière-plan pour l’ensemble des diapositives
suivent des règles différentes de celles de Calc et de Writer. Vous devez en particulier vous
familiariser avec l’utilisation des styles prédéfinis. Ceux-ci sont fortement liés aux cadres de
texte. Ainsi, un titre se verra toujours appliquer le style Titre et il ne sera pas possible de lui
appliquer un autre style. Cela vaut aussi pour les plans et les différents niveaux de puces :
pour en changer l’apparence, placez-vous en début de ligne et utilisez la touche Tab.
Pages Les pages maîtresses déterminent l’apparence commune à toutes les diapositives d’une pré-
maîtresses
sentation : arrière-plan, taille et couleur des polices, etc. Vous pouvez définir ces paramètres
pour chaque diapositive mais il est plus efficace de les établir pour l’ensemble de la présenta-
tion par le biais des pages maîtresses. Pour sélectionner la page maîtresse à utiliser, il vous
suffit de cliquer dessus. Pour modifier la présentation de la page maîtresse, passez en mode
d’édition grâce à Affichage > Arrière-plan > Masque des diapositives (autre terme pour dési-
gner les pages maîtresses). Ce masque présente l’ensemble des styles utilisés dans la présen-
tation, et chaque modification apportée ici sera répercutée sur l’ensemble du document.
Arrière-plan L’arrière-plan est normalement commun à toutes les diapositives d’une présentation. Pour
choisir un arrière-plan, le plus simple est de passer par la boîte de dialogue Format > Page >
Arrière-plan, et ce pour une diapositive individuelle ou pour l’ensemble de la présentation
grâce à la page maîtresse. La boîte de dialogue vous donne le choix entre une couleur simple,
un dégradé, des hachures ou une image Bitmap.
Animations Impress vous permet de mettre en place des effets d’animation sur deux niveaux : d’une
part pour la transition entre deux diapositives, d’autre part pour l’affichage d’objets au sein
d’une page. Pour configurer les transitions entre diapositives, utilisez la section Transitions
du panneau des tâches ; pour ajouter des animations dans une diapositive, passez par la section
Animation personnalisée.
Impression L’impression des présentations est plutôt simple : passez par les menus Fichier > Imprimer,
choisissez dans les Options ce que vous souhaitez imprimer, et vous voilà paré ! Quelques
remarques toutefois sur les options d’impression :
• Contenu définit ce qui doit être imprimé. Dessin inclut les diapositives de la présenta-
tion. Notes permet d’imprimer les notes associées aux diapositives, Brochure, de pré-
senter plusieurs pages par feuille (par défaut, 4). Enfin, Plan permet d’afficher la vue
Plan du diaporama.
• Qualité définit la qualité d’impression de diapositives couleur sur une imprimante noir
et blanc. L’option Noir et blanc imprime, indépendamment de tout autre paramétrage,
le texte en noir sur fond blanc.
• Options de la page permet d’optimiser l’échelle des diapositives (Adapter au format de
la page) ou l’impression de brochures à plier (Prospectus).
Export PDF Pour lancer l’export PDF, passez par les menus Fichier > Exporter au format PDF ou, plus
rapidement, par le bouton PDF qui figure dans la barre d’outils. Impress génère alors un
fichier PDF comprenant sur chaque page une diapositive de la présentation.
Linux Livre Page 130 Mardi, 23. septembre 2008 1:05 13

130 LINUX

8.5 Bases de données (OpenOffice Base)


Le composant Base est une nouveauté d’OpenOffice 2. C’est aussi la raison pour laquelle ce
composant est loin d’avoir atteint la maturité des autres composants d’OpenOffice. Sur cer-
taines distributions, Base doit même être installé comme paquetage complémentaire distinct
pour que les fonctionnalités de base de données soient effectivement disponibles. Quoi qu’il
en soit, Java doit être préalablement installé, car de nombreuses fonctionnalités d’accès aux
bases de données reposent sur lui.

Figure 8.3
Le composant de gestion
de bases de données
Base.

Base vous permet aussi bien de créer une nouvelle base de données dans le format propre à
OpenOffice que d’établir une connexion à une base de données existante (en particulier des
bases MySQL).
Assistant de Pour ouvrir un nouveau projet de base de données, passez par les menus Fichier > Nouveau >
base de
données Base de données. La première boîte de dialogue vous propose soit de créer une nouvelle base,
soit d’ouvrir un fichier existant, soit d’accéder à une base existante. Les boîtes de dialogue sui-
vantes dépendent du choix effectué ici et vous permettent au besoin de tester la configuration
de votre ordinateur (un pilote spécial est par exemple nécessaire pour se connecter à une base
de données MySQL : l’assistant peut vous servir à vérifier que ce pilote est bien installé).
Ce n’est qu’une fois toutes les étapes de l’assistant parcourues que la fenêtre de Base appa-
raît. Elle intègre les quatre modules Tables, Requêtes, Formulaires et Rapports dans la fenê-
tre principale. Si vous avez ouvert un fichier existant ou accédé à une base de données
existante, les tables correspondantes apparaissent également sur cette page. Vous devrez en
revanche créer vous-même les requêtes et autres objets de bases de données. Vous pouvez
afficher le contenu de la table courante en sélectionnant Document dans la liste déroulante
qui apparaît en bas à droite de la fenêtre.
Tables Le module Tables fournit une liste de toutes les tables et vues disponibles. Diverses possibi-
lités d’édition vous sont offertes, par exemple :
• Ouvrir une table. Un double-clic sur le nom de la table en ouvre la vue. Vous pouvez
alors parcourir celle-ci, insérer, modifier ou effacer des données. Et également sélectionner
Linux Livre Page 131 Mardi, 23. septembre 2008 1:05 13

OPENOFFICE 131

des lignes dans la table à l’aide des touches Ctrl ou Maj pour les copier dans le presse-
papiers ou les insérer par glisser-déposer dans d’autres documents OpenOffice.
• Créer une nouvelle table. Vous pouvez créer une nouvelle table, au choix, à l’aide d’un
éditeur simple (mode ébauche) ou à l’aide d’un assistant. L’assistant vous permet de
choisir parmi différentes configurations de tables prédéfinies, ce qui peut vous écono-
miser un temps certain.
• Personnaliser une table. Le menu contextuel Modifier vous permet d’accéder à la vue
d’une table en mode ébauche. Vous pouvez alors y insérer des colonnes, en modifier ou
en supprimer, etc.
• Copier des données dans le presse-papiers. L’entrée de menu contextuel Copier copie
l’ensemble des données de la table courante dans le presse-papiers. Il est alors possible
d’insérer ces données dans d’autres documents OpenOffice.
• Créer une nouvelle vue. Ce point conduit à un éditeur de requêtes pour créer une nou-
velle requête. Une nouvelle vue sera alors créée à partir de cette requête et stockée dans
la base de données.
• Supprimer une table ou une vue. Le menu contextuel vous permet aussi d’effacer des
objets. Attention au fait que, si vous avez établi une connexion sur une base de données
existante et que vous en effaciez une table, celle-ci est irrémédiablement détruite : l’opé-
ration s’effectue bien dans la base et non sur une copie locale des données !
Requêtes Le module Requêtes est l’élément le plus intéressant de Base : il vous permet de créer de
nouvelles requêtes à l’aide d’un assistant ou en mode ébauche. L’assistant n’est toutefois
adapté que pour construire des requêtes traitant des données qui proviennent d’une unique
table. Le mode ébauche est donc en général plus adapté.
Dans la fenêtre de création de requête, vous pouvez insérer par double-clic toutes les tables
dont les données doivent être utilisées dans la requête. L’étape suivante consiste à transférer
par glisser-déposer tous les champs de jointure entre les tables.
Formulaires, Les modules Formulaires et Rapports, ainsi que le menu Outils, vous donnent accès à de
rapports et
fonctionnalités nombreuses fonctionnalités supplémentaires que nous ne pouvons qu’effleurer ici. Le pro-
additionnelles blème est que ces fonctionnalités sont relativement nouvelles et manquent donc de matu-
rité, ce qui peut conduire à des difficultés même dans des situations très simples.
Le module Formulaires vous permet de créer des formulaires de saisie et d’édition. De tels
formulaires facilitent la saisie et l’édition des données de la base, plutôt que travailler direc-
tement dans les tables. Pour la création de formulaires, Base vous offre le choix entre le
mode ébauche et un assistant (recommandé pour les utilisateurs débutants).
Le module Rapports vous permet de définir un rapport de base de données à l’aide d’un
assistant. Grâce aux rapports, vous présenterez de manière plus agréable une table, une vue
ou une requête. Les rapports ne peuvent travailler que sur les données provenant d’un
même objet de base de données. Si vous souhaitez générer un rapport sur des données pro-
venant de plusieurs tables, vous devez tout d’abord créer une requête appropriée puis en
extraire un rapport. Il n’est pas possible de modifier ultérieurement un rapport : le menu
contextuel Modifier ouvre certes le rapport dans Writer, mais vous ne pouvez y apporter
que des modifications mineures de mise en page.
Linux Livre Page 132 Mardi, 23. septembre 2008 1:05 13

132 LINUX

Outils > Relations devrait vous conduire à un éditeur dans lequel vous pouvez paramétrer
les jointures entre les tables d’une base de données si jamais Base ne les reconnaît pas par
lui-même. Ce menu conduit toutefois dans divers cas à une erreur du type "La base de données
ne supporte pas les relations !".
Outils > Gestion des utilisateurs affiche une boîte de dialogue pour la gestion des utilisateurs
dans MySQL, mais dont les informations sont généralement erronées. Mon expérience a mon-
tré que cette boîte de dialogue cause plus de mal que de bien : tenez-vous-en donc à l’écart !
Vue des Indépendamment du composant Base, il existe dans OpenOffice une vue des sources de
sources de
données données. Vous pouvez faire apparaître ou disparaître cette vue à l’aide de la touche F4 ou
du menu Affichage > Sources de données et ainsi insérer des informations depuis des bases
de données externes dans Calc, Writer, etc.
Cette vue présente toutes les sources de données connues de Base. Pour définir une nouvelle
source de données, passez par le menu Fichier > Nouveau > Base de données. Vous pourrez
au besoin définir la correspondance entre le nom de la source de données et le fichier Base
grâce à la boîte de dialogue Outils > Options > Base > Bases de données.
Dans cette vue des sources de données, vous pouvez sélectionner une table ou une requête
et travailler par double-clic. Vous insérerez la table complète ou certaines lignes seulement
(préalablement sélectionnées avec la souris et les touches Ctrl ou Maj) dans une feuille de
calcul ou un document texte.

8.6 Programmation de macros


OpenOffice est doté depuis longtemps d’un langage de programmation comparable à Basic
(autrefois nommé StarBasic). Vous pouvez intégrer du code en langage Basic à n’importe
quel fichier OpenOffice. Le dialecte Basic d’OpenOffice n’est toutefois pas compatible avec
le célèbre VBA de MS-Office.
L’accès aux divers objets d’OpenOffice (documents, paragraphes, feuilles de calcul, cellules,
etc.) intervient par le biais de l’API (Application Programming Interface) StarOffice. L’API peut
être utilisée aussi bien avec du code Basic qu’avec divers autres langages de programmation
(par exemple Java ou C++).
Cette section se contente de dresser les grandes lignes de la programmation Basic pour Open-
Office. Vous trouverez plus d’informations sur la programmation de macros en Basic dans
le manuel en ligne ainsi que sur les sites web suivants : http://scripting.openoffice.org/ ;
http://api.openoffice.org/ ; http://udk.openoffice.org/ ; http://www.pitonyak.org/oo.php/
Gestion du OpenOffice introduit normalement dans le code VBA, à l’import de documents MS-Office,
code VBA
des commentaires de manière à rendre le code inopérant. À l’export, ces commentaires sont
supprimés de manière à permettre à nouveau l’utilisation du code VBA sous MS-Office.
Calc constitue toutefois une exception : grâce à une extension développée par Novell, les
versions actuelles de Calc peuvent exécuter directement du code VBA (ce qui n’est toutefois
pas exempt de problèmes). On ne sait pas encore si d’autres composants OpenOffice
deviendront compatibles avec VBA à l’avenir.
Protection Les macros offrent des possibilités d’utilisation très intéressantes mais peuvent également
contre les virus
servir à programmer des virus ou être employées pour d’autres buts peu louables (les
macros ayant accès au système de fichiers dans les limites autorisées par les droits d’accès,
Linux Livre Page 133 Mardi, 23. septembre 2008 1:05 13

OPENOFFICE 133

cela représente par exemple un danger potentiel : n’exécutez jamais une macro d’origine
inconnue si vous utilisez OpenOffice en tant qu’utilisateur root !).
À l’ouverture d’un document contenant du code Basic, OpenOffice demande systématique-
ment si le code doit être exécuté. Vous pouvez d’ailleurs indiquer si le répertoire d’où pro-
vient le fichier est considéré comme sûr, ce qui conduit à ne plus afficher l’avertissement
pour tout fichier de ce répertoire. Il est possible de modifier tous ces paramètres (et d’autres)
par le biais de la boîte de dialogue Outils > Options > OpenOffice > Sécurité. L’avertis-
sement apparaît également à l’import de fichiers MS-Office, même s’il n’a guère de sens vu
que le code VBA dans son ensemble est automatiquement commenté.
Enregistrer Le menu Outils > Macros > Enregistrer une macro vous permet de consigner dans une nouvelle
une macro
macro toutes les opérations conduites à partir de ce moment. L’enregistrement démarre automa-
tiquement et se termine lorsque vous cliquez sur le bouton Terminer l’enregistrement. Vous
devez ensuite indiquer dans quel fichier (parmi tous ceux ouverts) la macro doit être enregistrée.
Dans le fichier concerné, choisissez la bibliothèque de votre choix (il peut en exister plusieurs
mais Standard est toujours présente) puis renseignez le nom choisi pour le module. La structu-
ration en bibliothèques et modules permet de faciliter l’organisation d’un code volumineux.
Vous pouvez également enregistrer les macros dans Mes macros plutôt que dans les fichiers :
celles-ci sont alors toujours disponibles, indépendamment du fichier OpenOffice actuelle-
ment ouvert. En interne, ces macros sont enregistrées sous la forme d’un fichier de texte
dans ~/.openoffice/user/basic/Standard.
Exécuter Outils > Macros > Exécuter la macro vous conduit à une boîte de dialogue où vous pouvez
des macros
sélectionner la macro de votre choix parmi toutes celles disponibles et lancer son exécution.
Raccourcis La boîte de dialogue Outils > Personnaliser > Clavier vous permet d’associer à chaque
clavier
macro un raccourci clavier. Mes macros y sont classées dans User.
Modifier Si vous souhaitez consulter ou modifier le code d’une macro, choisissez la macro dans
une macro
Outils > Macros > Gérer les macros et cliquez ensuite sur le bouton Éditer. Vous êtes alors
conduit à l’environnement de développement Basic, où vous pouvez choisir la bibliothèque
et le fichier souhaités. Vous y créerez également vos propres macros.

8.7 Alternatives à OpenOffice


Sun StarOffice OpenOffice est un rejeton de StarOffice. Ce dernier est une suite bureautique développée il
y a déjà plusieurs années par la société Star Division, en Allemagne. En 1999, Sun a racheté
StarOffice et a, par la suite, rendu librement disponible le code source de StarOffice. Depuis,
aussi bien des employés de Sun que d’innombrables programmeurs bénévoles travaillent à
son développement.
Il existe à l’heure actuelle plusieurs versions de la suite bureautique : les deux plus populai-
res sont la variante Open Source présentée dans ce chapitre, OpenOffice (sous licence LGPL),
et son homologue commerciale Sun StarOffice. Ces deux versions sont de très loin les plus
compatibles l’une avec l’autre, StarOffice intègre toutefois des composants supplémentaires
(entre autres une meilleure correction orthographique, des fontes supplémentaires, des cliparts,
etc.). De surcroît, une assistance traditionnelle est disponible avec StarOffice, suivant le
Linux Livre Page 134 Mardi, 23. septembre 2008 1:05 13

134 LINUX

souhait de nombreuses sociétés. Avec OpenOffice, lorsque vous rencontrez un problème,


Internet est a priori votre seule source d’aide.
Ces bonus ne sont naturellement pas gratuits. Il existe toutefois toujours une version d’éva-
luation gratuite à télécharger sur le site de StarOffice :
http://wwws.sun.com/software/star/staroffice
KOffice KOffice est la suite bureautique de l’environnement KDE. Les composants essentiels (kword,
kspread et kpresenter) ont atteint une certaine maturité. Il existe de nombreux autres com-
posants (par exemple pour concevoir des diagrammes ou gérer des bases de données) qui
n’en sont encore qu’à leurs balbutiements.
De façon générale, la compatibilité avec Microsoft Office est moindre que celle d’OpenOf-
fice. Cela ne concerne pas uniquement l’import et l’export de fichiers, mais également le
paradigme global d’utilisation. On remarque, avec la conception KOffice, qu’il s’agit d’un
développement entièrement nouveau (ce qui va de pair avec de nombreux avantages). La
version actuelle de KOffice prend en charge, outre un format de fichier propre, le format
OpenDocument d’OpenOffice / StarOffice.
La force de KOffice réside dans son intégration impeccable à l’environnement KDE. La col-
laboration entre composants est également remarquable et se fait particulièrement sentir à
l’intégration de différents types de documents dans un autre. En comparaison avec Open-
Office, les composants KOffice reposent sur des programmes notoirement plus petits, qui se
lancent plus rapidement et qui sont moins exigeants vis-à-vis des ressources matérielles.
http://www.koffice.org/
Gnome Office Au contraire de ceux d’OpenOffice et de KOffice, les composants de Gnome Office sont des
programmes individuels qui n’ont que peu à voir entre eux. Il n’existe ni format de fichier
unifié ni un paradigme d’utilisation commun. Le tableur gnumeric est extrêmement avancé,
il se distingue par une grande compatibilité avec Microsoft Excel et propose de très nom-
breuses fonctionnalités auxiliaires pour les mathématiques financières. Le programme de
traitement de texte abiword est également très utilisable.
http://www.gnome.org/gnome-office/
CrossOver Malgré les nombreux paquetages bureautiques Linux, il existe des utilisateurs qui ne peuvent
Office et
VMware ou ne veulent renoncer à la suite Microsoft Office d’origine. La solution qui semble être la plus
confortable dans ce cas est proposée par la société CodeWeaver sous la forme du produit com-
mercial CrossOver. Il s’agit non pas d’une suite bureautique à proprement parler mais d’une
version spéciale de l’émulateur Windows WINE améliorée au point que la plupart des compo-
sants de Microsoft Office 97, 2000, XP et 2003 peuvent être installés et utilisés sans problème.
Une autre alternative consiste à configurer une machine virtuelle sous Linux à l’aide de
KVM, Xen, VirtualBox ou VMware et d’y installer Windows. Cette solution propose une
bien meilleure compatibilité mais elle est plus coûteuse. Vous aurez besoin de licences pour
Microsoft Windows, Microsoft Office, sans oublier VMware. Vous trouverez à partir du
Chapitre 31 des astuces concrètes pour les logiciels de virtualisation cités ici.
Scribus Scribus est, à l’heure actuelle, le logiciel de publication le plus abouti de Linux. Si vous sou-
haitez concevoir une brochure, un dossier, un journal simple, vous devriez jeter un coup
d’œil à ce programme. Il est livré avec la majorité des distributions Linux. Vous en trouverez
la dernière version ainsi que la documentation à l’adresse suivante :
http://www.scribus.net/
Linux Livre Page 135 Mardi, 23. septembre 2008 1:05 13

Appareils photo numériques,


9 numérisation, gestion des photos
Ce chapitre décrit comment, sous Linux, transférer des images depuis un appareil photo
numérique ou un scanner et comment gérer vos photographies. Pour ces trois tâches et, en
particulier, pour la gestion des photos, il existe de très nombreux programmes. Après quel-
ques informations introductives sur les appareils photo numériques et la numérisation, je
présenterai un peu plus en détail les logiciels suivants :
• gThumb, import de photos et gestion d’images pour Gnome ;
• digiKam, import de photos et gestion d’images pour KDE ;
• F-Spot, gestion d’images basée sur la bibliothèque MONO ;
• KPhotoAlbum, gestion d’images pour KDE ;
• XSane, interface de numérisation indépendante de l’environnement de bureau.
Pour le choix du programme, ne vous limitez pas aux outils par défaut proposés par votre
environnement de bureau ! Rien n’interdit, par exemple, d’installer sous Gnome un pro-
gramme KDE pour numériser des images ou de mettre en place sous KDE le programme
F-Spot prévu pour l’univers Gnome.
Programmes La place manque ici pour évoquer tous les logiciels de gestion et de traitement de photos.
supplémen-
taires Le tableau suivant vous donne un aperçu rapide de quelques programmes disponibles.

Nom Site web Description


eog http://www.gnome.org/projects/eog/ afficheur de photos Gnome, peu de fonction-
nalités
Feh http://linuxbrit.co.uk/feh/ afficheur de photos orienté ligne de commande
GnomeScan http://live.gnome.org/GnomeScan interface de numérisation pour Gnome, pas
encore arrivée à maturité
Gqview http://gqview.sourceforge.net/ afficheur de photos Gnome
Gwenview http://gwenview.sourceforge.net/ afficheur de photos KDE
Kooka http://kooka.kde.org interface de numérisation pour KDE
Kuickshow http://kuickshow.sourceforge.net/ afficheur de photos KDE, plus maintenu
Picasa http://picasa.google.fr/ gestionnaire d’images de Google, gratuit mais non
open-source
xv http://www.trilon.com/xv/ afficheur de photos antédiluvien, non open-source

Pour gérer vos photos, vous pouvez naturellement aussi faire appel à votre gestionnaire de
fichiers (Nautilus, Konqueror). Toutefois, ces programmes proposent à l’heure actuelle
moins de fonctionnalités de traitement et d’options de présentation.
Si vous souhaitez approfondir le sujet de la gestion des images et aller au-delà de l’optimi-
sation du contraste ou d’un redimensionnement de vos photos, vous devriez jeter un coup
Linux Livre Page 136 Mardi, 23. septembre 2008 1:05 13

136 LINUX

d’œil au prochain chapitre. Nous y présenterons très rapidement Gimp, le programme de


traitement d’images le plus avancé sous Linux. Il propose des fonctionnalités très comparables
à celles d’Adobe Photoshop !
Si vous cherchez à automatiser la conversion ou certains traitements sur de grands volumes
d’images, le Chapitre 15 devrait vous être profitable.
La quasi-totalité des programmes présentés ici comptent des fonctionnalités d’impression,
dont les limitations sont toutefois rapidement atteintes : en particulier, l’impression sans
bord sur du papier photo ou l’impression de plusieurs photos sur une même page posent
fréquemment des problèmes. Le logiciel gnome-photo-printer (malheureusement pas
encore totalement arrivé à maturité) peut vous aider sur ce point.

9.1 Appareils photo numériques


Cette section traite non pas de l’utilisation des appareils photo numériques, mais du trans-
fert des images depuis l’appareil vers l’ordinateur Linux. La plupart des appareils photo uti-
lisent pour cela un câble USB. Le protocole de transfert des données est toutefois loin d’être
standard parmi les fabricants d’appareils photo. Ainsi, on peut rencontrer :
• Une connexion USB de type lecteur. C’est le cas le plus simple pour le transfert de don-
nées. Linux considère alors l’appareil photo comme un disque dur ou une clé USB.
• Le protocole PTP. De nombreux appareils photo prennent également en charge le proto-
cole PTP (Picture Transfer Protocol). Celui-ci propose non seulement des commandes
pour le transfert des photos, mais également des fonctionnalités de pilotage (par exem-
ple pour déclencher une photographie depuis l’ordinateur).
• Un protocole propriétaire. Il existe enfin certains modèles d’appareils photo utilisant
uniquement un protocole propriétaire. Parmi ces appareils, bon nombre de modèles
populaires sont pris en charge sous Linux, mais ce n’est pas le cas de tous.
Même si votre appareil photo n’est pas géré par Linux, le transfert des images reste possible.
Vous aurez pour cela besoin d’un lecteur de cartes externe qui pourra alors être vu par Linux
comme un disque dur externe. Cette méthode a par ailleurs l’avantage de ne pas solliciter la
batterie de votre appareil photo.
Pour le transfert des images, vous aurez le choix entre différents programmes Linux suivant
le protocole utilisé. Pour les appareils de la première catégorie, n’importe quel gestionnaire
de fichiers peut faire l’affaire : l’appareil doit toutefois préalablement être monté dans le sys-
tème de fichiers. Dans de nombreuses distributions, une fenêtre du gestionnaire de fichiers
apparaît automatiquement au branchement de l’appareil photo ou du lecteur de cartes,
ainsi qu’une icône de raccourci sur le bureau. Si ce n’est pas le cas, vous devrez monter
manuellement l’appareil photo dans l’arborescence des répertoires en tant que lecteur USB
(voir le Chapitre 23). Le navigateur universel de KDE, Konqueror, est également en mesure
d’interpréter directement le protocole PTP. Il vous suffit pour cela de donner l’adresse
camera:/.
gphoto2 Pour communiquer avec les appareils photo PTP ou avec ceux utilisant un protocole pro-
priétaire, la bibliothèque gphoto2 met à disposition toutes les fonctionnalités requises.
Vous pouvez utiliser cette bibliothèque directement par le biais de la commande éponyme.
Linux Livre Page 137 Mardi, 23. septembre 2008 1:05 13

APPAREILS PHOTO NUMÉRIQUES, NUMÉRISATION, GESTION DES PHOTOS 137

Par exemple, la commande gphoto2 --auto-detect tente de reconnaître l’appareil photo


branché et affiche les informations correspondantes. gphoto2 --get-all-thumbnails trans-
met vers le répertoire local des aperçus de taille réduite de toutes les images stockées dans
l’appareil photo. Il est intéressant de noter qu’avec de nombreux appareils photo gphoto2 --
capture-image permet également de prendre une photographie en ligne de commande,
de sorte que l’appareil photo peut être utilisé en tant que webcam ou pour effectuer une
surveillance. Vous trouverez davantage d’informations relatives à gphoto2 sur le site web
suivant :
http://gphoto.sourceforge.net/
En pratique, il n’est toutefois pas courant d’utiliser directement les fonctions de gphoto.
gThumb et digiKam constituent des interfaces graphiques confortables pour Gnome et KDE
et facilitent grandement l’import des images. Ces deux programmes seront rapidement pré-
sentés dans la suite.
Images RAW La plupart des appareils photo numériques enregistrent les images au format JPEG, qui
représente un bon compromis entre qualité de l’image et taille du fichier. Certains appareils
permettent également d’enregistrer les images dans un format dit RAW. Il s’agit de formats
propriétaires garantissant qu’aucune information relative à l’image ne sera perdue. Toute-
fois, les fichiers RAW sont généralement très volumineux et ne peuvent être ouverts qu’avec
des logiciels spéciaux.
Assez peu de logiciels Linux d’affichage ou de gestion des photographies parviennent à
gérer correctement les fichiers RAW. La commande dcraw issue du paquetage éponyme
vous permet de convertir manuellement les fichiers RAW vers d’autres formats. Si vous tra-
vaillez avec Gimp, le paquetage complémentaire gimp-dcraw fournit un confort supplémen-
taire. Gimp peut alors charger directement les fichiers RAW de la majorité des fabricants
d’appareils photo. Vous trouverez davantage d’informations sur dcraw à la page suivante :
http://www.cybercom.net/~dcoffin/dcraw/

9.2 Numérisation
Les scanners existant à l’heure actuelle sont, pour la plupart, connectés par une interface
USB ; les anciens modèles utilisaient également les ports parallèle ou SCSI. Fondamentale-
ment, Linux peut prendre en charge ces trois types de connexions, mais c’est le modèle de
scanner qui détermine s’il pourra être géré correctement par Linux ou non. Renseignez-vous
impérativement au moment de l’achat pour savoir si l’appareil est compatible avec Linux :
http://www.sane-project.org/sane-supported-devices.html
Configuration C’est le paquetage SANE (Scanner Access Now Easy) qui assure l’accès au scanner. Dans
de SANE
de nombreux cas, votre scanner sera reconnu dès le branchement par le programme de
numérisation (XSane ou Kooka, par exemple). Si ce n’est pas le cas, vous devrez préala-
blement configurer SANE. Sur certaines distributions, vous disposez d’outils de configu-
ration pour vous aider dans cette tâche (par exemple, sur SUSE, le module YaST Matériel
> Scanner).
Linux Livre Page 138 Mardi, 23. septembre 2008 1:05 13

138 LINUX

Si aucun outil de configuration de ce type n’est disponible, vous devrez modifier manuel-
lement le fichier de configuration situé dans le répertoire /etc/sane.d/*. Ce répertoire
contient un fichier pour chaque fabricant de scanners, dans lesquels vous ne devriez norma-
lement trouver que quelques entrées à chaque fois. Les quelques lignes suivantes montrent
par exemple le contenu du fichier epson.conf. Elles suffisent pour reconnaître tous les scanners
USB et SCSI de la marque Epson pris en charge par le système.
# /etc/sane.d/epson.conf
usb
scsi EPSON
scsi "EPSON SC"

Les appareils très récents peuvent poser des problèmes si leur numéro d’identifiant ne
figure pas encore dans la base de données USB de la base de matériel pour Linux. Dans
de tels cas, vous devrez déterminer le numéro d’identifiant à l’aide de la commande
lsusb puis, comme dans l’exemple qui suit, ajouter une ligne dans le fichier de configuration
concerné :
utilisateur$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 04b8:010b Seiko Epson Corp. Perfection 1240
...
# Complément dans /etc/sane.d/epson.conf
usb 0x04b8 0x010b

Du moment que le paquetage sane-utils est installé, les commandes sane-find-scanner et


scanimage -L devraient désormais reconnaître le scanner :
utilisateur$ sane-find-scanner
No SCSI scanners found ...
Found USB scanner (vendor=0x04b8 [EPSON], product=0x010b [Perfection1240])
at libusb:002:002
Your USB scanner was (probably) detected. It may or may not be supported by
SANE. Try scanimage -L and read the backend’s manpage.
user$ scanimage -L
device `epson:libusb:002:002’ is a Epson Perfection1240 flatbed scanner

Sane ne prend en considération que les fichiers de fabricants figurant dans /etc/sane.d/dll.conf .
Lorsque SANE ne reconnaît pas votre scanner alors qu’il doit en principe le prendre en charge (vérifiez bien
ce point), vous devriez jeter un coup d’œil à dll.conf et y vérifier si le nom du fabricant de votre scanner
n’est pas commenté.

Numériser Normalement, vous ne communiquerez pas directement avec la bibliothèque SANE pour
avec SANE
numériser des images, mais vous utiliserez une des interfaces utilisateur disponibles. La
plus populaire est Xsane (voir un peu plus loin dans ce chapitre), mais il existe également
Kooka pour KDE. Si vous souhaitez automatiser la numérisation par un script, vous trouverez
la commande scanimage dans le paquetage sane-utils.
Linux Livre Page 139 Mardi, 23. septembre 2008 1:05 13

APPAREILS PHOTO NUMÉRIQUES, NUMÉRISATION, GESTION DES PHOTOS 139

9.3 gThumb
Le programme gThumb était, jusqu’à la version 2.20 de Gnome, l’outil par défaut pour le
transfert de photos depuis des appareils numériques ainsi que pour la gestion des images.
Les forces de ce logiciel résident dans la gestion systématique des images qu’il propose :
vous pouvez commenter, classer et insérer dans des catalogues toutes les images. Ces infor-
mations complémentaires peuvent par ailleurs faire l’objet de recherches.
Import de Lorsque l’environnement de bureau Gnome est correctement configuré et que votre appareil
photographies
est reconnu, une boîte de dialogue apparaît automatiquement lorsque vous branchez
l’appareil photo pour vous demander si vous souhaitez importer les images. Choisir Impor-
ter des photos lance alors le programme gThumb. Suivant le type d’appareil apparaît alors
soit une boîte de dialogue, soit un aperçu des images disponibles (dont la génération peut
prendre un certain temps). Pour transférer les images depuis l’aperçu vers le disque dur
local, passez par le menu Fichier > Importer des photos.
Dans la boîte de dialogue d’import, sélectionnez les photos à importer à l’aide de la souris
ou de la combinaison de touches Ctrl+A (voir Figure 9.1). Par défaut, gThumb enregistre les
photos importées dans un nouveau répertoire de votre dossier personnel, dont le nom est
constitué à partir de la date et de l’heure courantes. En revanche, si vous renseignez une
valeur dans le champ Film, les images seront enregistrées dans le dossier photos/
nom_du_film au lieu de cet emplacement par défaut. Vous pouvez ensuite affecter les photos
importées à une ou à plusieurs catégories.

Figure 9.1
Importer des photos
avec gThumb.
Linux Livre Page 140 Mardi, 23. septembre 2008 1:05 13

140 LINUX

En option, vous pouvez indiquer si les images doivent être effacées de l’appareil après leur
transfert et si les noms de fichiers originaux doivent être conservés. Normalement, gThumb
attribue aux fichiers de nouveaux noms de la forme 000001.jpg, 000002.jpg, etc.

Lorsque vous devez importer un grand nombre de photos, il est possible que la caméra s’éteigne (par mesure
d’économie d’énergie) au cours du transfert. S’ensuivent des messages d’erreur, des fichiers d’images défec-
tueux ou vides. Une solution : effacez les fichiers problématiques de votre ordinateur, rallumez l’appareil
photo et importez à nouveau les images dont le transfert a été interrompu. Avec de nombreux appareils
photo, vous pouvez contourner le mode d’économie d’énergie en appuyant de temps à autre sur un des bou-
tons de l’appareil durant le transfert.
Si la boîte de dialogue n’apparaît pas automatiquement lorsque vous branchez un appareil photo
(n’oubliez pas d’allumer l’appareil !), lancez le programme gThumb à la main et passez par le menu Fichier
> Importer des photos ; cliquez alors sur l’icône en forme d’appareil photo et sélectionnez vous-même le
modèle de votre appareil. Si vous ne trouvez ni votre appareil ni un modèle qui lui soit compatible dans la
longue liste proposée, essayez l’option USB PTP Class Camera. Si cela ne donne aucun résultat, c’est que
gThumb ne peut pas communiquer avec votre appareil. Dans ce cas, vous devrez lire directement le
contenu de la carte mémoire à l’aide d’un lecteur de cartes.

Gestion des gThumb connaît trois modes d’affichage, parmi lesquels vous pourrez basculer à l’aide des
images
boutons correspondants, du menu Affichage ou des touches Alt+1 à Alt+3 :
• L’affichage par dossiers. gThumb vous permet de sélectionner, dans le panneau de gau-
che, un répertoire du disque dur et affiche dans la partie droite un aperçu de toutes les
photos qu’il contient (voir Figure 9.2).
• L’affichage par catalogue. gThumb présente dans le panneau de gauche tous les catalo-
gues et bibliothèques définis (dont nous parlerons davantage un peu plus loin) et, dans
la partie droite, un aperçu de toutes les photos s’y trouvant.
• L’affichage par image. gThumb présente une image en taille maximale. Les boutons Précé-
dent et Suivant ou les touches Page précédente et Page suivante vous permettent de passer
d’une photo à l’autre. Vous pouvez appliquer des traitements (correction des couleurs,
redimensionnement, etc.) à l’image courante grâce aux commandes du menu Image.

Figure 9.2
Affichage par dossier
avec la sous-fenêtre
d’informations détaillées.
Linux Livre Page 141 Mardi, 23. septembre 2008 1:05 13

APPAREILS PHOTO NUMÉRIQUES, NUMÉRISATION, GESTION DES PHOTOS 141

L’affichage par dossier et par catalogue est adapté pour sélectionner et copier/déplacer/modi-
fier plusieurs images. Ces vues fournissent également un bon aperçu lorsqu’il y a beaucoup
d’images. Affichage > Afficher/Cacher > Aperçu de l’image vous permet d’ouvrir une sous-
fenêtre supplémentaire présentant au choix (à l’aide des icônes figurant à côté du nom du
fichier) un aperçu de plus grande taille pour l’image sélectionnée, les propriétés EXIF du fichier
(données de luminosité, contraste, etc.) ou encore un commentaire optionnel (voir Figure 9.2).
Orienter La première étape dans le traitement d’un grand nombre de photos consiste généralement à
correctement
les photo- corriger, le cas échéant, l’orientation des images. Suivant le niveau de sophistication de
graphies votre appareil photo, cela peut aller très vite ou nécessiter un certain travail manuel :
• Tourner automatiquement les images. De nombreux appareils photo enregistrent, en
même temps que la photo, la position dans laquelle celle-ci a été prise. Si c’est le cas de
votre appareil, sélectionnez l’ensemble des images du dossier courant avec les touches
Ctrl+A puis exécutez l’opération Outils > Pivoter les images : activez les options Apply
to all images (appliquer à toutes les images) et Apply physical transform (appliquer la
transformation physique) avant de cliquer sur le bouton Appliquer.
• Pivoter manuellement les images. Si l’étape précédente n’a aucun effet, vous devrez inter-
venir manuellement et avez pour cela le choix entre deux manières de procéder. La
méthode la plus simple consiste à sélectionner à nouveau l’ensemble des photos par le
biais de Ctrl+A, puis d’exécuter Outils > Pivoter les images. Vous pouvez alors corriger
l’orientation de l’image courante et enregistrer la modification à l’aide du bouton Appli-
quer. L’image suivante apparaît alors dans la boîte de dialogue. Pour les images qui n’ont
pas besoin d’être corrigées, cliquez sur Appliquer sans pivoter préalablement l’image. De
cette manière, vous parcourez l’ensemble des images et corrigez celles qui le nécessitent.
Il est toutefois plus efficace de sélectionner préalablement toutes les images devant
subir une rotation identique (par exemple 90˚ à droite). Appelez à nouveau Outils >
Pivoter les images et corrigez la première image. Avant de cliquer sur le bouton Appli-
quer, activez l’option Apply to all images (qui devrait, de fait, s’intituler Appliquer à
toutes les images sélectionnées).
La rotation des images au format JPEG s’effectue sans la moindre perte de qualité. Nor-
malement, toute modification à une image JPEG implique une légère dégradation, car
les images doivent être compressées à chaque enregistrement. Cette règle n’est toutefois
pas valable pour les rotations d’un facteur multiple de 90˚, grâce à un algorithme intel-
ligent.
Catégories, Il est fondamentalement judicieux d’enregistrer les images correspondant à des thèmes diffé-
commentaires,
catalogues et rents dans des répertoires ou sous-répertoires dédiés (par exemple photos/2007/Noël ou pho-
bibliothèques tos/2008/Vacances_au_Japon). Ce système de regroupement simple ne suffit toutefois plus
pour retrouver rapidement une photo lorsque le nombre total de celles-ci atteint des propor-
tions importantes. gThumb propose par conséquent d’autres solutions pour identifier les ima-
ges. Cela implique naturellement des efforts supplémentaires de votre part, mais pour
lesquels vous serez récompensé dès que vous utiliserez pour la première fois Édition > Search.
• Catégories. Chaque image peut être affectée à une ou à plusieurs catégories. Pour ce
faire, sélectionnez les images concernées, exécutez Édition > Catégories et choisissez la
Linux Livre Page 142 Mardi, 23. septembre 2008 1:05 13

142 LINUX

ou les catégories concernant les images. gThumb connaît un certain nombre de caté-
gories standard (anniversaire, famille, vacances, etc.) que vous compléterez par vos
propres catégories.
• Commentaires. Édition > Comment vous permet d’enregistrer un texte court relatif aux
images sélectionnées.
• Catalogues. Un catalogue fonctionne comme une liste d’images qui, en réalité, peuvent
être enregistrées dans des répertoires différents. Pour définir un nouveau catalogue,
activez la vue Catalogue et ouvrez ensuite Fichier > Nouveau catalogue. Revenez
ensuite à la vue par dossiers, sélectionnez quelques images et exécutez Édition > Ajouter
au catalogue.
Les catalogues peuvent sembler identiques à des répertoires, mais ils se comportent dif-
féremment. Les images ne sont pas copiées lors de l’insertion à un catalogue. Au lieu de
cela, le chemin des images sélectionnées est ajouté à la liste d’éléments du catalogue. Les
catalogues offrent donc une méthode de regroupement d’images respectueuse de
l’espace disque. L’aide en ligne compare un catalogue gThumb à une liste de lecture
pour un lecteur audio.
• Bibliothèques. Lorsque vous avez défini plusieurs catalogues, vous pouvez les rassem-
bler au sein de bibliothèques. Pour ce faire, exécutez Fichier > Nouvelle bibliothèque en
vue par dossiers. Cliquez ensuite du bouton droit de la souris sur un catalogue et sélec-
tionnez Déplacer, pour l’affecter à une bibliothèque.

Les informations relatives aux catégories, commentaires, catalogues et bibliothèques sont enregistrées non
pas dans les fichiers d’image directement mais dans des fichiers complémentaires. Par conséquent, ces don-
nées ne peuvent être utilisées que par gThumb et pas par d’autres programmes. La correspondance entre
images et informations complémentaires est perdue lorsque les images sont renommées ou déplacées vers
d’autres répertoires !

Traitement En vue image, gThumb peut également réaliser des opérations simples de traitement des
d’images
images (redimensionner l’image, optimiser la luminosité, supprimer les yeux rouges, etc.).
Toutes les commandes correspondantes se trouvent dans le menu Image.
Fonctionnalités gThumb propose encore diverses fonctionnalités que nous ne pouvons que mentionner ici
additionnelles
faute de place :
• Le bouton Diaporama lance une présentation automatique de l’ensemble des photos
contenues dans le répertoire courant. Le programme passe donc en mode plein écran.
Édition > Préférences > Diaporama vous permet de fixer la durée de présentation des
images, d’activer un mode aléatoire, etc. La touche Echap met fin au diaporama.
• Outils > Utiliser l’image comme papier peint définit l’image en cours comme fond
d’écran.
• Outils > Convert Format génère des copies des images sélectionnées vers un autre format
(JPEG, PNG, TGA ou TIFF).
• Outils > Change Date établit la date de création des images sélectionnées à une date
particulière ou ramène cette valeur à la date de création originelle.
Linux Livre Page 143 Mardi, 23. septembre 2008 1:05 13

APPAREILS PHOTO NUMÉRIQUES, NUMÉRISATION, GESTION DES PHOTOS 143

• Outils > Create Index Image génère des images d’index pour les photos sélectionnées.
Le bouton Style vous permet de paramétrer diverses caractéristiques des images
d’index, par exemple le nombre d’images réduites par page (par défaut, trois lignes et
quatre colonnes), la taille des images réduites (par défaut 128 × 128 pixels), etc.
• Édition > Renommer permet de donner de nouveaux noms aux images sélectionnées
(par exemple suivant un format particulier tel que 001.jpg, 002.jpg, etc.).
• Fichier > Write To CD grave les images sélectionnées ou la totalité du répertoire courant
sur un CD ou un DVD. La commande se contente de transmettre les images au gestionnaire
de fichiers.

9.4 digiKam
digiKam est un programme KDE aux multiples facettes et qui permet d’importer des photos
depuis un appareil numérique, de gérer les images et de réaliser certains traitements de
base. Comme gThumb, ce programme offre plusieurs moyens de classer les images. digi-
Kam peut être étendu au moyen d’un système de greffons. Grâce à ceux-ci, il peut travailler
directement sur les fichiers RAW, gérer des profils de couleurs, appliquer divers filtres sur
les images, etc.
Au premier lancement du programme, vous devez définir un répertoire de base pour vos
images (par défaut, ~/Pictures. Au besoin, vous pouvez modifier ultérieurement ce réper-
toire par le biais de Configuration > Configurer digiKam > Albums.
Import de Avant de tenter le premier transfert de photos, vous devez procéder à une étape de
photographies
configuration. Dans la plupart des cas, il suffit de cliquer sur le bouton Détecter automati-
quement de la boîte de dialogue Configuration > Configurer digiKam > Appareils photo.
L’appareil apparaît alors dans le menu intitulé Appareil photo. Lorsque vous exécutez
Appareil photo > Nom_de_l_appareil ou Appareil photo > Nom_de_la_carte_mémoire, digi-
Kam génère un aperçu de toutes les images. Le bouton Transférer vous permet d’importer
l’ensemble ou une sélection des images dans le sous-répertoire Nom_d_album du répertoire
de base.
Gestion des digiKam ne vous permet de gérer que les images qui se trouvent dans le répertoire de base.
images
Vous devrez donc y copier toutes les images qui auraient été jusqu’à présent stockées
ailleurs (Album > Importer).
digiKam désigne chaque répertoire du répertoire de base comme un album. Alternative-
ment, vous pouvez aussi rechercher des images en vue par date (voir Figure 9.3). Un clic de
souris sur une image sélectionnée permet de l’agrandir, un second clic vous ramène à la vue
par album. Les éléments du menu Image vous permettent de modifier ou d’ajouter divers
commentaires, caractéristiques et mots-clés supplémentaires pour l’image. Ces données
supplémentaires, qui seront très utiles ultérieurement lors des recherches d’images, sont
enregistrées non pas directement dans les images mais dans le fichier digikam3.db qui se
trouve dans le répertoire de base. Le panneau droit de la fenêtre principale vous permet de
filtrer les images par étiquette.
Linux Livre Page 144 Mardi, 23. septembre 2008 1:05 13

144 LINUX

Figure 9.3
Gestion des images
avec digiKam.

Pivoter les Tant que l’appareil enregistre l’orientation des images dans les fichiers EXIF, Image > Corri-
images
ger l’orientation EXIF devrait vous permettre de corriger l’orientation pour toutes les ima-
ges du répertoire courant qui en auraient besoin. Si cela ne fonctionne pas, les combinaisons
de touches Ctrl+Maj+Flèche gauche ou Ctrl+Maj+Flèche droite permettent de pivoter les
images sélectionnées de 90˚ vers la gauche ou vers la droite.
Traitement En vue par dossiers, vous ne pouvez réaliser que des opérations élémentaires (par exemple
d’images
pivoter les images). Le menu contextuel Édition vous offre toutefois des possibilités plus
avancées. digiKam affiche alors l’image dans une nouvelle fenêtre, où vous pouvez l’enca-
drer, lui donner un titre, en optimiser les couleurs et la luminosité, y supprimer les yeux rou-
ges, la redimensionner, etc. Les modifications sont normalement enregistrées directement
dans le fichier. Si vous ne souhaitez pas en perdre la version originelle, enregistrez la version
corrigée par le biais de Menu > Enregistrer sous.
Fonctionnalités La plupart des fonctionnalités supplémentaires sont accessibles depuis le menu Outils. Vous
supplémen-
taires pouvez y convertir ou modifier par lot toutes les images sélectionnées, lancer un afficheur
en mode pleine page, exporter des images vers un iPod, etc. Le menu Album > Export pré-
sente également des fonctions supplémentaires. Vous y trouverez des commandes pour gra-
ver un CD de photos, transférer des images vers ou depuis un serveur Flickr, générer une
galerie HTML, etc.
De très nombreuses fonctionnalités de digiKam sont conçues sous la forme de greffons
KIPI (KDE Image Plugin Interface). Lorsque vous ne trouvez pas certaines fonctionnalités
individuelles dans digiKam, vérifiez si les greffons sont installés et activés dans les boîtes
de dialogue Configuration > Configurer digiKam > Modules externes KIPI et > Éditeur
d’images.
Linux Livre Page 145 Mardi, 23. septembre 2008 1:05 13

APPAREILS PHOTO NUMÉRIQUES, NUMÉRISATION, GESTION DES PHOTOS 145

9.5 F-Spot
Le programme F-Spot (voir Figure 9.4) est le nouveau programme par défaut pour la ges-
tion des images depuis la version 2.22 de Gnome. Mes impressions quant à ce programme
étaient plutôt partagées. D’un côté, F-Spot possède une interface bien adaptée et quelques
idées intéressantes : par exemple, toute modification sur des images n’est jamais enregistrée
directement dans le fichier d’origine mais l’est dans des "versions". Vous pouvez ainsi bas-
culer à tout moment entre la version d’origine et la version modifiée d’une image et n’avez
pas à vous inquiéter d’enregistrer par erreur des modifications irréversibles dans l’original.
L’organisation des images suivant un axe temporel est également une particularité intéres-
sante, surtout lorsque le nombre d’images augmente.

Figure 9.4
Gestion d’images
avec F-Spot.

Mais, d’un autre côté, ce programme se distingue aussi par quelques lourdeurs : F-Spot ne
peut gérer que les images qu’il a préalablement "importées". Normalement, les images sont
copiées à l’import vers le répertoire ~/Photos, où est créé un sous-répertoire pour chaque date
de création de photos. Si vous avez déjà organisé vos images sur votre disque dur, vous pou-
vez renoncer à toute copie physique lors de l’import : dans ce cas, F-Spot enregistre diverses
informations dans sa propre base de données (fichier ~/.gnome2/f-spot/photos.db).
On constate que F-Spot n’est pas encore tout à fait arrivé à maturité. Son utilisation peut se
révéler irritante : il n’existe par exemple aucune fonction Annuler directe pour le traitement
des images, non plus qu’une information claire indiquant s’il existe plusieurs versions
d’une même image. Les changements d’affichage font constamment perdre de vue l’image
en cours. De surcroît, c’est un programme exigeant en matière de ressources. Tant qu’il
s’exécute, la charge CPU est toujours proche de 100 % alors qu’il est parfois difficile de com-
prendre ce que fait vraiment le programme (certaines critiques rendent la dépendance du
programme à la bibliothèque Mono responsable de cette gourmandise).
Linux Livre Page 146 Mardi, 23. septembre 2008 1:05 13

146 LINUX

Pour faire court, certains utilisateurs disposant d’un ordinateur rapide apprécieront cet outil
pour ses fonctionnalités innovantes. Les autres, insatisfaits par les concepts peu habituels et
l’implémentation encore problématique de cet outil, devront revenir à gThumb ou trouver
un autre programme à utiliser.
Utilisation F-Spot se comporte différemment suivant la façon dont il a été lancé. L’une des variantes
consiste à ouvrir une image depuis le gestionnaire de fichiers par le menu contextuel Ouvrir
avec > F-Spot. Dans ce cas, l’interface utilisateur de F-Spot est très limitée. Vous pouvez affi-
cher et pivoter l’image, mais aucun autre traitement n’est disponible. Fichier > Ouvrir le
dossier conduit aux autres images du répertoire courant.
Pour pouvoir utiliser F-Spot avec l’ensemble de ses fonctionnalités, vous devez le lancer
directement depuis le menu Gnome ou KDE ou par la commande f-spot. Importez ensuite
les images que vous souhaitez y gérer. F-Spot affiche alors un aperçu des images. Vous pou-
vez modifier la taille de l’aperçu par le biais de la règle en bas à droite. Un double-clic sur
une image conduit au mode d’édition. Les modifications apportées à une image sont enregis-
trées dans un nouveau fichier qui se trouve dans le même répertoire que l’original. Au nom
d’origine est ajouté un complément indiquant la version. C’est la liste déroulante Version, en
bas à gauche, qui indique quelles versions d’une image sont disponibles. Fichier > Version vous
permet de basculer d’une version à l’autre. Pour revenir à une version antérieure, sélectionnez
la version à annuler et effacez-la par le menu Fichier > Supprimer la version.
Pour mieux organiser vos images, vous pouvez leur attribuer par glisser-déposer des éti-
quettes. F-Spot prévoit par défaut cinq étiquettes (Favoris, Masqué, Lieu, Personnes, Événe-
ments). Vous pouvez définir les étiquettes de votre choix, affecter plusieurs étiquettes à une
même image, etc. Un double-clic sur une de ces étiquettes restreint l’affichage aux images
portant effectivement cette étiquette. Pour afficher à nouveau toutes les photos, vous devez
supprimer le filtre Rechercher.

9.6 KPhotoAlbum
KPhotoAlbum (anciennement KimDaBa) est un autre programme de gestion des images et
vidéos. Ses points forts sont ses fonctionnalités puissantes de recherche et d’organisation.
Pour l’enregistrement des données relatives aux images, KPhotoAlbum utilise une base de
données SQLite. KPhotoAlbum est, par divers aspects, l’homologue de F-Spot pour KDE.
Toutefois, il n’est pas tout à fait aussi fonctionnel.
KPhotoAlbum présuppose que tous les fichiers images et vidéos se trouvent dans un réper-
toire de base (par défaut ~/Images). Ce répertoire est mis en place au premier lancement s’il
n’existe pas encore. Vous devrez y copier manuellement des images existantes (KPhotoAl-
bum ne prévoit étonnamment pas de fonctionnalité d’import de photos). Chaque fois que le
contenu de ce répertoire est modifié, KPhotoAlbum doit resynchroniser sa base de données :
pour ce faire, exécutez Maintenance > Rescan for images.
KPhotoAlbum accède aux mêmes modules KIPI que digiKam. Vérifiez donc préalablement
que ces plugins sont installés (en général, il s’agit du paquetage kipi-plugins).
Donner des L’utilisation de KPhotoAlbum n’est intéressante que si vous vous donnez la peine de fournir
informations
contextuelles pour toutes les images (ou, a minima, pour un grand nombre d’entre elles) des informations
contextuelles. Qui ou quoi figure sur cette image ? Où a-t-elle été prise ? À quelle catégorie
Linux Livre Page 147 Mardi, 23. septembre 2008 1:05 13

APPAREILS PHOTO NUMÉRIQUES, NUMÉRISATION, GESTION DES PHOTOS 147

appartient-elle ? Pour fournir ces informations, commencez par sélectionner une ou plusieurs
images puis, par le menu contextuel, exécutez Set properties for individual images ou Set
properties for multiple images at a time. Vous arrivez alors à la boîte de dialogue présen-
tée à la Figure 9.5. Saisissez-y les informations de votre choix. L’utilisation de cette boîte
de dialogue est étonnamment efficace et la procédure pour chaque image ne dure que
quelques secondes. Le classement d’une base de données d’images complète peut toute-
fois prendre un certain temps.

Figure 9.5
Classer des images
dans KPhotoAlbum.

Rechercher Une fois que les informations contextuelles sont disponibles pour toutes les images, il est
des images
possible de rechercher des images dans la fenêtre principale de KPhotoAlbum en quelques
clics de souris, toujours suivant le modèle : "me montrer uniquement les images sur lesquel-
les on peut voir un jardin et qui ont été prises au Japon". La recherche parmi les aperçus est
de surcroît facilitée par une échelle de temps.

Figure 9.6
Aperçu des images
dans KPhotoAlbum.
Linux Livre Page 148 Mardi, 23. septembre 2008 1:05 13

148 LINUX

9.7 XSane
XSane est un programme aussi confortable que riche en fonctionnalités pour scanner des
images. Avant de scanner la première image, basculez du mode Noir et blanc soit vers
Niveaux de gris, soit vers Couleurs, puis choisissez la résolution souhaitée. Par défaut,
XSane utilise la valeur 72 DPI, ce qui est une résolution très faible.
Le bouton Acquisition de l’aperçu de la fenêtre Aperçu vous permet d’exécuter une première
numérisation. Grâce au bouton Sélectionne l’aire visible, vous pouvez limiter le domaine
scanné à la taille de votre choix. Si vous souhaitez exécuter une balance des blancs, sélection-
nez avec la pipette Choisissez un point blanc sur un point blanc et Choisissez un point noir sur
un point noir. Les pros de la numérisation pourront entreprendre des corrections de couleurs
plus poussées à l’aide de l’histogramme (Fenêtre > Montrer l’histogramme).
Le bouton Numériser de la fenêtre principale vous permet de réaliser le scan effectif dans la
résolution choisie. XSane présente le résultat du scan dans une nouvelle fenêtre où vous
pouvez pivoter l’image, l’adoucir et en modifier l’échelle. Filtres > Déparasiter l’image tente
de supprimer les erreurs de numérisation et les parasites que peut présenter l’image. Pour
les images volumineuses, ce processus risque de prendre un temps relativement long et
n’aboutit que rarement à une amélioration notoire de la qualité de l’image. Enfin, vous pouvez
enregistrer votre image à l’aide de Fichier > Enregistrer.

Produire des images de haute qualité est un art en soi. L’aide de XSane renvoie vers quelques sites web pré-
sentant des astuces à ce sujet.
Il est encore plus délicat de réaliser ultérieurement des impressions de qualité des images scannées. La plu-
part du temps, l’image numérisée doit préalablement être optimisée par le biais d’un logiciel de traitement
d’images tel que Gimp. Si vous rencontrez des difficultés avec les motifs de type moiré, essayez le filtre Flou
> Flou gaussien ou Amélioration > Antiparasites.

Reconnais- Si le programme gocr (du paquetage éponyme) est installé, vous pouvez exécuter une
sance de texte
reconnaissance de texte sur l’image scannée. Le texte reconnu est enregistré dans un fichier
propre (en général out.txt). Mes expériences avec cette fonctionnalité ont toutefois été
décevantes.
Linux Livre Page 149 Mardi, 23. septembre 2008 1:05 13

Gimp
10
Derrière l'acronyme Gimp (Gnu Image Manipulation Program) se cache un logiciel de traite-
ment qui présente de nombreuses fonctionnalités comparables à celles du logiciel commer-
cial Adobe Photoshop. Il existe toutefois une différence notable entre les deux : Gimp est un
logiciel libre sous licence GPL. Gimp vous permet, entre autres :
• d'ouvrir et d'enregistrer des fichiers bitmap dans différents formats (parmi lesquels GIF,
JPEG, PNG ou TIFF) ;
• d'importer des fichiers PostScript (EPS/PS) et Photoshop (PSD) ;
• de retravailler des photographies et images numérisées (modifier la luminosité, le
contraste, les couleurs, etc.) ;
• d'appliquer divers filtres (par exemple pour améliorer l'image, créer des effets d'optique,
etc.) ;
• de sélectionner une partie d'une image, de la découper, de la traiter séparément et de la
coller dans d'autres images (montage photo) ;
• d'insérer de nouveaux éléments graphiques dans une image (lignes, motifs de remplis-
sage, texte, etc.) ;
• d'automatiser des opérations Gimp ;
• de réaliser des traitements par lots sur un grand volume de fichiers ;
• d'imprimer et d'enregistrer les images résultantes (en tant que fichiers bitmap, PostScript
ou encore dans le format propre de Gimp, XCF, qui enregistre non seulement l'image,
mais aussi des informations sur les modifications apportées : masques, calques, etc.).
Ce chapitre est une introduction très rapide à Gimp, sur la base de sa version 2.4. Certaines
distributions proposent encore la version 2.2, qui ne diffère que très peu de la version 2.4 : ce
chapitre devrait donc, à quelques rares exceptions près (certains raccourcis clavier ont été
entre-temps modifiés), s'appliquer aussi à Gimp 2.2. Vous devez toutefois veiller, si vous tra-
vaillez avec Gimp 2.4, à enregistrer régulièrement vos documents : cette nouvelle version
n'est pas encore aussi robuste que la 2.2.
Comme il ne nous est pas possible de décrire en détail toutes les fonctionnalités de Gimp, ce
chapitre ne vous présente qu'un survol des fonctionnalités essentielles. Pour vous documen-
ter de façon plus approfondie sur le sujet, vous pourrez trouver de nombreux ouvrages sur
Gimp ainsi que des sites très complets, par exemple : http://www.gimp.org/ ; http://
www.gimp.org/docs/ ; http://gimp-savvy.com/ ; http://manuel.gimp.org/
Assimiler les fonctionnalités de Gimp n'est toutefois que la première étape. Il est également
essentiel de comprendre comment mettre en pratique ces fonctions de manière appropriée.
Avant de pouvoir faire imprimer vos travaux en format poster, vous devrez aussi vous préoc-
cuper de calibrer votre écran et votre imprimante : un ouvrage sur les bases du graphisme
pourra donc également se révéler un investissement judicieux pour tout utilisateur de Gimp.
Linux Livre Page 150 Mardi, 23. septembre 2008 1:05 13

150 LINUX

Rêve et réalité Gimp est un logiciel polyvalent et très puissant. Toutefois, il existe un risque non négligea-
ble que vos premières expériences soient décevantes et vous conduisent à l'effacer rapide-
ment de votre disque dur. Il existe deux raisons à cela : d'une part, ce logiciel demande un
temps d'appropriation et un apprentissage intensif avant de pouvoir être utilisé de manière
efficace ; d'autre part, Gimp est gourmand en ressources matérielles. Pour travailler confor-
tablement, vous aurez besoin de suffisamment de mémoire, d'un processeur rapide et d'un
écran large.
Gimp est fréquemment décrit comme une alternative gratuite, différente mais aux fonction-
nalités équivalentes à Photoshop, ce qui contribue à forger des espoirs ultérieurement
déçus. Cette description est un peu trop superficielle :
• L'utilisation de Gimp diffère sur certaines parties très notoirement de celle de Pho-
toshop. Les vrais fans de Gimp affirmeront naturellement que leur logiciel favori est
plus intuitif et plus efficace. C'est vrai pour certaines fonctionnalités, mais d'autres
donnent la nette impression que le logiciel a été conçu par des techniciens, pour des
techniciens. De surcroît, il est souvent difficile pour les utilisateurs de Photoshop
migrant vers Gimp de localiser les fonctions recherchées dans l'imbrication des
menus.
• Il est plus difficile de générer des fichiers (PostScript) pour une impression profession-
nelle avec Gimp qu'avec d'autres logiciels. La génération d'images comprenant des tons
directs ou couleurs d'accompagnement (format d'image en couleurs directes) est en
théorie possible, mais les fonctions associées offrent peu de confort. Il manque une prise
en charge directe des couleurs Pantone, mais ce point devrait être résolu à l'avenir par la
mise à disposition de greffons commerciaux.
Alternatives Si Gimp vous paraît trop complexe, les logiciels de gestion d'images présentés au Chapitre 9
à Gimp
vous proposent également quelques fonctions élémentaires de traitement graphique. Si
vous n'avez besoin que d'optimiser rapidement le contraste d'une image, ces outils vous
suffiront largement.
Si vous recherchez un logiciel simple de dessin du type Microsoft Paint, un coup d'œil au
programme KDE kolourpaint devrait se révéler intéressant.
En termes de complexité et de fonctionnalités, krita se situe à mi-chemin entre Gimp et
kolourpaint. Ce programme fait partie de la suite bureautique KDE. Elle conjugue une uti-
lisation relativement simple avec des fonctionnalités avancées (y compris la gestion des calques
et de très nombreux filtres).
Si vous ne souhaitez pas renoncer aux fonctionnalités de Gimp, mais que vous recherchiez une
utilisation proche de Photoshop, prenez le temps de tester le portage GimpShop.
Les commandes de conversion d'images vers différents formats seront présentées au Chapi-
tre 15.
Gimp et toutes les alternatives que nous venons de présenter sont des logiciels de traite-
ment d'images bitmap (travaillant sur des pixels). Il existe également sous Linux divers
programmes de dessin vectoriel : le composant OpenOffice Draw, le logiciel Inkscape ou
encore krita.
Linux Livre Page 151 Mardi, 23. septembre 2008 1:05 13

GIMP 151

10.1 Formats de fichiers


Gimp prend en charge de nombreux formats graphiques pour l'ouverture et l'enregistre-
ment des fichiers. Cette section donne un aperçu des formats essentiels et tente d'expliquer
à quelles utilisations est adapté chaque format.

Cette astuce vaut pour tous les formats pris en charge par Gimp : lorsque, à l'enregistrement, vous ajoutez
l'extension *.gz ou *.bz2, le fichier est de surcroît compressé. Ceci n'a toutefois de sens que pour les formats
de fichiers non comprimés par ailleurs.
Les fichiers portant cette extension seront automatiquement décompressés à l'ouverture. bzip2 compresse
un peu mieux que gzip, mais il est notoirement plus lent.

XCF et PSD XCF est le format de fichier propre à Gimp. C'est le seul format pour lequel toutes les infor-
mations de travail et de construction de l'image (calques, masques, sélection en cours, etc.)
sont effectivement enregistrées. Lorsque vous travaillez sur une image, XCF est le seul format
réellement adapté pour les copies de travail.
Le format PSD est l'homologue du format XCF pour Photoshop.
Formats Les formats bitmap ne permettent d'enregistrer qu'un seul calque. Si votre image est consti-
bitmap
tuée de plusieurs calques, ceux-ci doivent être fusionnés à l'enregistrement. Si vous rouvrez
ultérieurement ce fichier, seul cet unique calque fusionné sera disponible : vous aurez perdu
toute possibilité de modifier l'image. Pour cette raison, un avertissement est affiché avant
l'enregistrement effectif du fichier et vous devez confirmer la fusion en cliquant sur le bou-
ton Exporter. Vous devez obligatoirement enregistrer aussi votre travail au format Gimp
XCF si vous souhaitez pouvoir le modifier ultérieurement sans contrainte !
• BMP. Ce format sert uniquement pour l'échange de fichiers avec le monde Microsoft
Windows.
• GIF. Le format GIF est adapté pour l'enregistrement de petites images et animations lors-
que l'on cherche à économiser l'espace disque. Les bitmaps sont comprimés de manière
efficace et sans perte, mais ils sont limités à 256 couleurs. Ce format gère la transparence.
Pour enregistrer des images Gimp en tant que GIF, vous devez préalablement les passer
en mode 256 couleurs à l'aide du menu Image > Mode > Couleurs indexées.
• JPEG. Ce format se distingue par un algorithme de compression très efficace particuliè-
rement adapté pour les photographies (nettement moins pour les captures d'écran ou le
dessin technique). La compression JPEG s'effectue avec perte de qualité, c'est-à-dire que
les images JPEG diffèrent des originaux. Ces différences ne sont en général pas visibles
à l'œil nu lorsque le facteur de qualité choisi à l'enregistrement est suffisamment élevé.
La valeur par défaut (75 %) est généralement raisonnable. Pour les images très détaillées
ou avec des contours très marqués, vous devriez passer cette valeur à 90 %.

Lorsque vous ouvrez, modifiez puis enregistrez une image JPEG à plusieurs reprises, la qualité diminue à
chaque fois. Si les pertes occasionnées par la compression sont, à la première application de l'algorithme,
Linux Livre Page 152 Mardi, 23. septembre 2008 1:05 13

152 LINUX

à peine visibles à l'œil nu, les modifications s'accumulent ensuite de façon peu esthétique. Le format JPEG
n'est donc absolument pas adapté pour faire des copies de travail ! Enregistrez uniquement l'image finale
au format JPEG et archivez une copie XCF du fichier de travail !

• PNG. Ce format a été conçu comme un successeur de GIF et il lui est à tout point de vue
supérieur : pas de limitation à 256 couleurs, malgré une compression de meilleure qua-
lité et sans perte, etc. De plus, la majorité des navigateurs web utilisés aujourd'hui peut
gérer sans problème les images PNG.
• TIFF. Ce format est apprécié des graphistes professionnels. Les images sont enregistrées
sans perte. Grâce à l'algorithme de compression LZW, la taille des fichiers pour les cap-
tures d'écran ou les dessins techniques devient très faible. Toutefois, Microsoft Word
rencontre des problèmes pour l'affichage et l'impression de fichiers compressés en tant
que TIFF.
Il existe de nombreuses variantes du format TIFF, ce qui occasionne des problèmes à
l'échange de fichiers TIFF entre programmes différents.
PostScript Normalement, vous ne devez enregistrer des images au format PostScript que lorsque vous
(PS, EPS)
souhaitez utiliser le fichier résultant dans un autre logiciel (par exemple un logiciel de trai-
tement de texte). Vous disposez alors de deux options intéressantes :
EPS (Encapsulated PostScript) signifie qu'un commentaire est enregistré au début du fichier
PostScript pour fournir les dimensions exactes de l'image. Cette information est obligatoire
pour pouvoir insérer correctement l'illustration dans un autre programme. Les fichiers PostS-
cript conçus pour être ultérieurement utilisés dans d'autres logiciels (et non simplement pour
l'impression) reçoivent en général l'extension de fichier *.eps (et non simplement *.ps).
Aperçu signifie qu'en plus des commandes PostScript un bitmap est enregistré. Cela permet
également de générer un aperçu dans les programmes n'ayant pas accès à un interpréteur
PostScript. Le bitmap d'aperçu augmente notablement la taille du fichier sans pour autant
ajouter d'informations utiles pour l'impression. N'activez donc cette option que si vous sou-
haitez utiliser les fichiers PostScript sur un ordinateur Windows (qui ne possède aucune
capacité d'aperçu des PostScript).
Gimp peut également importer les fichiers PostScript et PDF. Il fait appel pour cela à l'inter-
préteur PostScript Ghostscript (voir aussi le Chapitre 15 à ce sujet). Pour une bonne qualité
graphique, les éléments décisifs sont une résolution adaptée (donc suffisamment élevée) et
l'option de lissage.

10.2 Premiers pas


Vous pouvez lancer Gimp soit depuis le menu Démarrer de votre environnement de bureau,
soit par le biais de la commande gimp. Au premier lancement apparaît une boîte de dialogue
pour effectuer la configuration de base de l'outil. Il vous suffit, pour chaque écran, de cliquer
sur le bouton Suivant : les paramètres par défaut ne requièrent en général aucune modification.
Contrairement à Adobe Photoshop, dont l'ensemble des outils est intégré au sein d'une
seule grande fenêtre, plusieurs petites fenêtres sont affichées au lancement de Gimp, cha-
cune étant dédiée à un groupe de fonctionnalités. Il existe de surcroît d'autres fenêtres
Linux Livre Page 153 Mardi, 23. septembre 2008 1:05 13

GIMP 153

d'outils apparaissant suivant les besoins (voir aussi le menu Fichier > Dialogues). Ceci
conduit fréquemment à avoir cinq ou six fenêtres Gimp ouvertes simultanément, parfois
même davantage (voir Figure 10.1). Si vous avez lancé d'autres programmes en plus de
Gimp, la fenêtre peut rapidement devenir surchargée et donc inutilisable.

Figure 10.1
À gauche, la fenêtre
principale de Gimp ;
au centre, deux fenêtres
d'outils ; à droite,
une fenêtre d'image.

La solution optimale à ce problème consiste à utiliser des bureaux virtuels et à en dédier un


à l'utilisation de Gimp (si vous utilisez votre navigateur web, client de courrier, OpenOffice,
etc. dans le bureau virtuel numéro 1, passez au bureau virtuel numéro 2 avant de lancer
Gimp). Vous pouvez sélectionner le bureau virtuel de votre choix en cliquant sur le numéro
correspondant, dans la section du tableau de bord correspondant aux bureaux virtuels.
Utilisation Gimp est équipé de deux menus :
des menus
• Le menu Gimp se trouve dans la fenêtre principale. Il ne présente que quelques com-
mandes élémentaires valables pour Gimp dans son ensemble (par exemple Fichier >
Ouvrir ou Fichier > Fermer).
• Chaque fenêtre d'image est par ailleurs équipée du menu idoine. Celui-ci compte
d'innombrables commandes, toutes dédiées au traitement de l'image courante. Le menu
peut également être appelé n'importe où dans la fenêtre en tant que menu contextuel
(bouton droit de la souris). Toutes les commandes illustrées dans ce chapitre, à moins
d'être explicitement indiquées comme faisant partie du menu Gimp, sont des commandes
tirées de ce menu.
Ouvrir et Fichier > Ouvrir vous conduit à une boîte de dialogue de sélection de fichier. Cette boîte de
enregistrer
des images dialogue comprend un aperçu de l'image sélectionnée. Si cet aperçu n'est pas affiché auto-
matiquement, vous devrez cliquer sur le bouton Preview. Après ouverture, le fichier est affiché
dans une nouvelle fenêtre d'image.
À l'enregistrement, vous avez le choix entre les différents formats de fichiers que nous avons
présentés à la section précédente. Pour résumer : si vous souhaitez ultérieurement pouvoir
retravailler sur une image, vous devriez l'enregistrer au format fichier.xfc.gz : Gimp uti-
lise ainsi son propre format XFC conservant les informations de composition de l'image (par
exemple les calques) ; l'extension supplémentaire .gz garantit la compression du fichier.
Linux Livre Page 154 Mardi, 23. septembre 2008 1:05 13

154 LINUX

Il est relativement fréquent de voir apparaître à l'enregistrement un avertissement indiquant que


l'image doit être modifiée avant de pouvoir être enregistrée : lorsque le format ne prend pas en
charge la transparence, les parties transparentes de l'image sont remplies en blanc ; lorsque le
format de fichier ne gère pas les calques (ce qui est le cas sur tous les formats bitmap), ceux-ci
doivent être fusionnés. De telles modifications ne concernent toutefois que le fichier enregistré et
non les données actuellement utilisées par Gimp : vous pouvez donc sans crainte cliquer sur
Exporter, mais n'oubliez pas d'enregistrer ultérieurement votre image au format XCF.
Commandes Lorsque la fenêtre d'image est active, vous pouvez agrandir l'image avec la touche + (plus) et la
de base
réduire avec la touche – (moins). La touche 1 permet de ramener le facteur d'agrandissement à
1 (c'est-à-dire que chaque pixel de l'image est affiché sur un pixel de l'écran). Affichage > Ajus-
ter la fenêtre à l'image (ou la combinaison de touches Ctrl+E) permet d'adapter la taille de la
fenêtre à l'image actuellement affichée. Si vous avez dû réduire le facteur d'agrandissement
pour afficher une image à très haute résolution, cette commande réduit la taille de la fenêtre.
Si l'image courante est plus grande que la fenêtre avec le facteur d'agrandissement actuelle-
ment utilisé, seule une partie de l'image peut être affichée. Vous pouvez alors déplacer la
section affichée à l'aide des ascenseurs de la fenêtre. Alternativement, vous pouvez aussi
tout simplement déplacer l'image dans la fenêtre à l'aide du bouton central de la souris.
Image > Transformer > Rotate permet de pivoter l'image de 90, 180 ou 270˚.

Impression
Fichier > Imprimer vous conduit à une boîte de dialogue quelque peu difficile à lire (voir
Figure 10.2). Si cette commande n'est pas disponible, vous devrez installer (suivant votre distri-
bution) le paquetage gimp-print ou gutenprint-plugin. Si la boîte de dialogue apparaît en lan-
gue anglaise, vous devrez en outre installer le paquetage de localisation correspondant (par
exemple, sur Ubuntu, language-pack-fr). La traduction peut toutefois se révéler incomplète.

Figure 10.2
La boîte de dialogue
d'impression de Gimp.

Dans de nombreux cas, un avertissement apparaît avant la boîte de dialogue d'impression :


c'est le même que celui affiché lors d'un export vers un format bitmap. Confirmez simplement
Linux Livre Page 155 Mardi, 23. septembre 2008 1:05 13

GIMP 155

l'avertissement en cliquant sur le bouton Exporter. L'impression du fichier ne modifie en


rien les données de travail du fichier dans Gimp !
Contrairement à la quasi-totalité des autres programmes Linux, la boîte de dialogue
d'impression de Gimp ignore la configuration d'impression du système. Dans la configura-
tion de base, Gimp envoie les données PostScript à l'imprimante par défaut. Si vous souhai-
tez utiliser une autre imprimante, vous devez renseigner ses paramètres directement dans la
boîte de dialogue d'impression de Gimp ! La raison de ce comportement particulier est que
l'impression d'images pose bien souvent des contraintes différentes de celles associées à
l'impression d'un document classique. Il est ainsi possible de mettre en place des paramètres
d'impression spécialement optimisés pour Gimp.
La règle Échelle vous permet d'adapter la taille de l'image. Lorsque l'image mise à l'échelle pos-
sède une taille inférieure au format de papier utilisé, vous pouvez alors en déplacer l'aperçu
avec la souris pour le positionner, ou tout simplement cliquer sur un des trois boutons Centrer.
L'onglet Sortie vous permet de sélectionner le type de sortie souhaité (Couleur ou Niveaux de
gris). Le bouton Réglages fins vous conduit à une boîte de dialogue supplémentaire dans
laquelle vous pouvez modifier le contraste, la luminosité, l'algorithme de tramage ainsi que
divers autres paramètres. Les modifications ne s'imposent ici qu'à titre exceptionnel. Pour ne
pas avoir à saisir les paramètres à chaque nouvelle impression, vous pouvez les enregistrer.

10.3 Règles de survie


Cette section rassemble quelques astuces et règles de survie pour travailler efficacement
avec Gimp. Elle conclura ce court chapitre sur Gimp : elle devrait faciliter vos premiers pas
avec cet outil.
Utilisation Vous pouvez appeler et utiliser pratiquement toutes les fonctionnalités de Gimp à l'aide du
du clavier
clavier. Le problème le plus fréquent est toutefois que les commandes clavier concernent
non pas la fenêtre d'image mais la dernière boîte de dialogue utilisée (où d'autres raccourcis
clavier ont cours).
Lorsque vous activez l'option Use dynamic keyboard shortcuts dans la boîte de dialogue
Fichier > Préférences > Interface, vous pouvez très simplement modifier les raccourcis clavier
des commandes : choisissez la succession de menus à suivre avec la souris puis, pour la com-
mande à modifier, saisissez le raccourci de votre choix. N'oubliez pas d'enregistrer les raccour-
cis dès maintenant : les nouvelles valeurs sont enregistrées dans le fichier ~/.gimp-n.n/menurc.
Interrompre Lorsque vous souhaitez interrompre une action de souris en cours, gardez le bouton gauche
une action
à la souris de la souris enfoncé et appuyez sur le bouton droit. Relâchez tout d'abord le bouton gauche,
puis le bouton droit.
Grille et guides Il est souvent difficile de positionner précisément la souris dans Gimp. Utilisez les guides !
Lorsqu'il s'en approche, le pointeur de la souris se place automatiquement, comme s'il était
attiré par un aimant, sur ces lignes. Pour générer un guide, cliquez sur l'un des bords de
l'image et faites glisser le pointeur vers l'image : le guide apparaît alors. Pour déplacer un
guide existant, commencez par activer le bouton Déplacer de la boîte à outils (l'icône à
Linux Livre Page 156 Mardi, 23. septembre 2008 1:05 13

156 LINUX

quatre flèches en forme de croix). Vous pouvez utiliser autant de guides que vous le souhaitez
et également les combiner à la grille magnétique (Affichage > Aligner sur la grille).
Boîte à outils La fenêtre principale de Gimp héberge toujours la boîte à outils. Il s'agit d'une palette d'icônes
représentant les outils de Gimp. Tous les outils peuvent également être activés par le biais du
clavier. Les raccourcis clavier sont donnés dans le menu Outils de la fenêtre d'image.
Pour chaque outil, il existe une boîte de dialogue de paramétrage. Cette boîte de dialogue
est normalement affichée comme un élément de la fenêtre principale de Gimp, mais elle
peut également en être détachée. Si le dialogue de paramétrage n'apparaît pas, ouvrez-le en
double-cliquant sur l'icône de l'outil correspondant.
Dialogues De nombreuses fonctionnalités de base sont affectées par les paramètres des dialogues Pin-
ceau (crayon et pinceau) et Remplissage (motif de remplissage). Ces boîtes de dialogue sont
accessibles par la commande Dialogues du menu contextuel.
Tous les dialogues (mais pas la fenêtre d'image) peuvent être déplacés et amarrés les uns
aux autres par glisser-déposer. Vous pouvez ainsi garder une vue d'ensemble des fenêtres
lorsque celles-ci sont nombreuses.
Détacher Lorsque vous utilisez fréquemment un sous-menu particulier (par exemple Image > Trans-
des menus
former), vous pouvez tout simplement lui attribuer son propre dialogue. Pour cela, ouvrez
le menu dans la fenêtre d'image par le biais du menu contextuel. Ce n'est que là (et non dans
le menu principal) qu'apparaît en haut du menu une ligne pointillée. Dès que vous cliquez
dessus, le menu se voit affecter sa propre fenêtre.
Couleurs Toutes les commandes de peinture et de dessin utilisent les couleurs de premier plan et
d'arrière-plan définies dans la boîte à outils. Vous pouvez ouvrir le dialogue permettant de
modifier ces couleurs d'un double-clic sur le champ de couleur correspondant. La petite
icône en bas à gauche rétablit les couleurs par défaut noir et blanc ; la double flèche intervertit
couleur de premier plan et couleur d'arrière-plan.
Annuler Ctrl+Z vous permet d'annuler les cinq dernières opérations, Ctrl+Y permet de les rétablir.
et refaire
La boîte de dialogue de configuration Édition > Préférences > Environnement vous permet
de fixer le nombre d'annulations autorisées (attention au fait que l'espace mémoire requis
peut rapidement gonfler !).
La boîte de dialogue Édition > Historique d'annulation vous donne un accès facile aux der-
nières opérations effectuées. La fenêtre présente chacune des étapes réalisées avec un aperçu
de l'image résultant de l'opération correspondante. Un clic de souris vous permet de revenir
à un état antérieur.
Paramètres De nombreux effets et paramètres sont pilotés par une règle. Ces règles sont toutefois diffi-
configurés
par règles ciles à utiliser précisément avec la souris. Utilisez plutôt les flèches du clavier !
Vues Il est souvent pratique de disposer, en plus d'un agrandi ou d'une réduction d'une image, d'une
seconde vue à l'échelle 1:1. Pour ce faire, il vous suffit d'ouvrir avec Affichage > Nouvelle vue
une seconde fenêtre présentant l'image en cours. Vous pouvez alors y configurer l'agrandisse-
ment indépendamment de la première fenêtre, afficher la sélection (Ctrl+T) ainsi que les guides
(Maj+Ctrl+T). Vous aurez alors une bonne idée du résultat final de votre travail.
Système d'aide Avec de nombreuses distributions, le système d'aide de Gimp n'est pas installé par défaut
pour des raisons de place. Avant de pouvoir utiliser l'aide, vous devrez donc installer les
paquetages gimp-helpbrowser, gimp-help-common et gimp-help-fr. Pour lancer l'aide, utilisez la
touche F1 ou le menu Aide.
Linux Livre Page 157 Mardi, 23. septembre 2008 1:05 13

Audio et vidéo
11
Ce chapitre explique comment, sous Linux et dans le respect de la légalité, vous pouvez
écouter des CD et fichiers audio, lire des DVD et fichiers vidéo et regarder la télévision avec
DVB-T. Je suppose ici que le système audio et vidéo de votre distribution fonctionne (voir le
Chapitre 22). C’est en général le cas avec la majorité des distributions si vous utilisez du
matériel standard.
Après une présentation rapide des principaux lecteurs de CD, je m’intéresserai aux codecs
audio et vidéo, ainsi qu’au cryptage des DVD. Les codecs constituent le fondement du stockage
et de la lecture de fichiers audio et vidéo sous forme compressée. Le cryptage des DVD est le
principal obstacle qu’a placé l’industrie des médias sur le chemin des utilisateurs souhaitant
lire leurs DVD sous Linux. Une dernière section traitera de la télévision numérique (DVB).
Après cette introduction quelque peu théorique, je vous présenterai les principaux lecteurs
audio et vidéo pour Linux. De nombreux programmes sont conçus pour être universels et
ils remplissent donc plusieurs rôles, bien au-delà du simple "lecteur de MP3". Ils permettent
de modifier les informations relatives à des fichiers, flux, lecteurs de données ou cartes TV,
extraire ("ripper") des CD audio, etc.
• Amarok, lecteur audio de KDE ;
• Banshee, lecteur audio de Gnome (repose sur la bibliothèque Mono) ;
• KAudioCreator, logiciel d’extraction de CD de KDE ;
• MPlayer, lecteur audio et vidéo ;
• Noatun, lecteur audio de KDE ;
• RealPlayer/Helix Player, lecteur audio et vidéo ;
• Rhythmbox, lecteur audio de Gnome ;
• Sound Juicer, logiciel d’extraction de CD pour Gnome ;
• Totem, lecteur par défaut de l’environnement Gnome ;
• XMMS, lecteur audio simple ;
• Xine, lecteur audio et vidéo.
Lorsque vous configurez Gnome ou KDE comme environnement de bureau, vous pouvez
déterminer vous-même quel est le programme de lecture par défaut pour un format donné
(voir les Chapitres 4 et 5 à ce sujet). Un conseil supplémentaire : si vous recherchez avant
tout un lecteur simple pour écouter des fichiers locaux, tenez-vous le plus loin possible des
programmes surchargés de fonctionnalités. Personnellement, mon lecteur favori est XMMS
lorsque je souhaite écouter l’ensemble des fichiers MP3 ou OGG d’un même répertoire. Cela
ne nécessite qu’une courte commande à saisir dans la console et je n’ai pas besoin de me
compliquer la vie avec des listes de lecture ni avec l’importation de fichiers audio ou une
demi-douzaine de boîtes de dialogue de configuration à remplir...
Linux Livre Page 158 Mardi, 23. septembre 2008 1:05 13

158 LINUX

Multimédia On pourrait écrire bien davantage encore sur le sujet du multimédia sous Linux : parmi les
pour
utilisateurs sujets importants à évoquer, on trouverait la synchronisation avec un iPod, la capture audio,
avancés la réception de télévision analogique, la programmation d’enregistrements vidéo, le son
multicanaux, le montage audio ou vidéo, Midi, l’utilisation d’un ordinateur sous Linux
comme serveur audio et vidéo, etc. Comme je ne suis toutefois pas un expert en matière de
multimédia et que je ne suis pas convaincu que Linux soit la meilleure plate-forme pour cet
usage, je préfère vous renvoyer aux sites web thématiques suivants :
http://audacity.sourceforge.net/ logiciel de montage son
http://sound.condorow.net/ logiciels audio et MIDI pour Linux
http://lwn.net/Articles/182954/ présentation d’Audio-Stream-Grabber
http://www.linuxtv.org/ regarder la télévision avec DVB
http://www.exploits.org/v4l/ collection de liens Video for Linux
http://www.pierrox.net/dvr/ magnétoscope numérique
http://www.mythtv.org/ Linux comme ordinateur pour regarder la télévision
http://freevo.sourceforge.net/ Linux comme station multimédia personnelle
http://64studio.com/ distribution multimédia 64 bits

11.1 Bases
Glossaire
Encodeur Un encodeur transforme un fichier audio ou vidéo non compressé en un format compressé
(par exemple MP3, OGG ou MPEG-4). La tâche de l’encodeur est de parvenir à un compro-
mis entre taille du fichier compressé et qualité du résultat, ce qui demande beaucoup de
calculs et peut donc être très lent.
Décodeur Le décodeur est responsable de l’opération inverse, à savoir la décompression du fichier
vers un format non compressé (voir Chapitre 15) ou vers un format que la carte audio ou
vidéo peut rendre. Chaque lecteur audio ou vidéo doit donc faire appel à un décodeur
spécialisé pour le format de fichier à lire.
Codec Le fonctionnement par encodeur/décodeur est généralement décrit par le terme de codec.
Dans le langage courant, toutefois, ce mot désigne plus simplement la bibliothèque ou le
module/greffon de codage/décodage d’un format audio ou vidéo particulier.
Il existe un vaste éventail de codecs, dont le décodeur est généralement disponible gratuite-
ment pour Windows et Mac OS. La situation est un peu plus compliquée sous Linux. Vous
pourrez trouver, pour beaucoup de codecs populaires, une version open-source du déco-
deur et même parfois de l’encodeur, mais le statut juridique de ces programmes ou biblio-
thèques est problématique lorsque les codecs sont protégés par des licences et des brevets.
Pour les ordinateurs de type i386, il est également possible d’utiliser sous Linux les codecs
prévus pour Windows (un wrapper permet de rendre utilisables sous Linux les fonctions
prévues pour Windows). La situation juridique n’est ici guère plus claire, dans la mesure où
ces codecs gratuitement disponibles pour Windows ne prévoient pas de termes de redistri-
bution, encore moins d’utilisation sous Linux.
Linux Livre Page 159 Mardi, 23. septembre 2008 1:05 13

AUDIO ET VIDÉO 159

Cette situation juridique complexe (qui, de surcroît, dépend du pays) conduit à ce que la
plupart des distributions ne soient livrées qu’avec relativement peu de codecs. Vous pour-
rez toutefois trouver en téléchargement sur Internet, pour la plupart des distributions, les
implémentations open-source des principaux codecs, ainsi qu’une collection des codecs
Windows essentiels (w32codecs ou win32codecs).
Une autre solution possible à ce dilemme juridique consiste à se procurer des codecs sous
licence officielle comme en propose la société Fluendo (naturellement contre rémunération).
Ces paquetages ne sont toutefois disponibles que pour le système audio GStreamer et sont
donc incompatibles avec la majorité des programmes présentés dans ce chapitre.
Cryptage, CSS L’industrie multimédia a voulu éviter dans le domaine vidéo un désastre comparable à celui
causé par la diffusion massive de fichiers MP3 sur les systèmes d’échange. Par conséquent,
une majorité des DVD vidéo sont cryptés par l’algorithme CSS (Content Scrambling System).
La protection résultante s’est toutefois montrée très limitée. Le cryptage est très simple et a
été rapidement contourné.
Bien plus d’énergie a en revanche été dépensée pour criminaliser toutes les techniques
open-source de décryptage. Pour cette raison, l’utilisation de la bibliothèque de décryptage
est illégale dans de nombreux pays.
En mai 2007, une cour de justice finlandaise a jugé en première instance que CSS était "inef-
ficace" et a par conséquent autorisé le contournement de CSS. Nous en sommes hélas encore
loin : en France, le décryptage de DVD reste interdit et je ne peux donc ici fournir d’infor-
mations ou de liens relatifs à la bibliothèque permettant de le faire.
Mettons toutefois les choses au point : il ne s’agit pas ici de copie illégale ! Je n’ai tout sim-
plement pas le droit d’expliquer comment vous pouvez lire sous Linux vos DVD achetés
légalement, ce qui est par ailleurs une évidence sous Windows.
CSS ne représentait toutefois que la première étape : les DVD HD et Bluray présentent un
mécanisme de protection plus fort et partiellement implémenté au niveau du matériel (par
exemple sur la carte graphique). Même si ces mesures de protection ont été ou seront
contournées, c’est devenu de plus en plus difficile. De façon générale, l’industrie des médias
fait à l’heure actuelle tout ce qui est en son pouvoir pour compliquer la lecture de supports
vidéo sur un ordinateur. La seule consolation pour les amateurs de Linux est que les utilisateurs
de Windows ont également de plus en plus de peine à lire un DVD HD ou Bluray.
La lecture de vidéos sous Linux pose donc des problèmes moins techniques que juridiques.
Une majorité des habitués de Linux parviendront néanmoins à configurer leur système de
façon satisfaisante à l’aide de Google. Mais, pour le débutant, il est plus pratique de brancher
un lecteur de DVD bon marché sur la télévision ou sur un écran d’ordinateur dédié.
DRM (MTP) DRM est l’acronyme de Digital Rights Management, traduit en français par MTP ou mesures
techniques de protection. Elles permettent de lier à un matériel donné la lecture d’un fichier
audio ou vidéo. Le fichier peut être copié, mais non lu, sur un autre ordinateur. Les MTP
sont pour le moment principalement mises en œuvre sur les fichiers audio (par exemple sur
les fichiers téléchargés depuis la boutique iTunes d’Apple) mais elles devraient jouer un rôle
croissant à l’avenir dans le cadre des téléchargements vidéo, des livres électroniques, etc.
Les utilisateurs de Linux sont quasiment complètement exclus de l’utilisation légale des
Linux Livre Page 160 Mardi, 23. septembre 2008 1:05 13

160 LINUX

fichiers protégés par MTP, et aucune amélioration ne se profile à l’horizon. Essayez, autant
que possible, de n’acheter que des fichiers de musique et de vidéo libres de MTP !
Streaming Pour écouter la radio en direct depuis Internet, de nombreuses stations de radio proposent
un flux continu. Ainsi, la restitution peut démarrer dès le début de la transmission. Le télé-
chargement n’est pas prévu dans ce cadre, souvent pour des raisons de licences. De nom-
breux lecteurs audio permettent toutefois d’enregistrer dans un fichier le flux audio en cours
de lecture.

Formats audio et vidéo


Il existe de très nombreux formats audio et vidéo. Cette section vise non pas une description
complète et détaillée de chacun de ces formats, mais plutôt à fournir certaines informations
spécifiques à Linux sur des formats fréquemment utilisés. L’article Wikipedia suivant donne
une bonne synthèse des codecs audio et vidéo populaires :
http://fr.wikipedia.org/wiki/Codec
Tous les formats décrits dans ce qui suit sont pris en charge d’une manière ou d’une autre
sous Linux. Il existe toutefois des problèmes juridiques empêchant leur intégration officielle
dans une distribution. La section relative au format MP3 vous donnera quelques détails sur
ce sujet, transposables à d’autres formats.
WAV WAV est un format audio très simple défini par Microsoft et sans compression. Il n’y a
aucune perte de qualité dans les fichiers résultants mais ceux-ci sont malheureusement
énormes. Aucun problème de licence ou de brevet ne vient empêcher la lecture ou la géné-
ration de fichiers WAV sous Linux.
MP3 MP3 est une abréviation de MPEG-1, audio layer 3, où MPEG est l’acronyme de Moving Pic-
tures Experts Group. C’est le format de fichier de très loin le plus connu pour la compression
des fichiers audio. Il existe différents décodeurs MP3 pour Linux, sous la forme de comman-
des individuelles ou de programmes (mpg123), aussi bien que de bibliothèques. Le choix est
plus restreint en matière d’encodage ; en pratique, seul lame est véritablement utilisé.
Bien que l’algorithme de compression MP3 ait été majoritairement développé par l’Institut
Fraunhofer, plusieurs sociétés (Alcatel, Sisvel, Thomson, entre autres) détiennent des bre-
vets relatifs au MP3. Cela signifie que les encodeurs MP3 sont soumis à une licence, même si
vous les distribuez gratuitement. Pour cette raison, on ne trouve pas de distribution Linux
proposant directement un encodeur MP3. Même sur Internet, les encodeurs MP3 ne sont
généralement mis à disposition que depuis des pays où les brevets MP3 n’ont pas cours.
La situation des décodeurs MP3 (lecteurs MP3) est légèrement meilleure : même si cette
technique est également soumise à brevet, l’Institut Fraunhofer et la société Thomson ont
pour le moment donné leur accord pour que les lecteurs open-source puissent être utilisés
sans licence (http://mp3licensing.com).
Les fichiers MP3 contiennent également (en fin de fichier) des informations sur le titre,
l’interprète, etc. Ces informations sont appelées ID3-Tags. D’autres formats audio permettent
également d’enregistrer les informations correspondantes.
ID3-Tags Les balises ID3-Tags sont des informations complémentaires enregistrées au sein du
fichier MP3. Vous pouvez entre autres y renseigner le titre, l’interprète, le nom de l’album,
le compositeur, une image de la couverture du CD, etc. Deux standards ont cours pour
Linux Livre Page 161 Mardi, 23. septembre 2008 1:05 13

AUDIO ET VIDÉO 161

l’enregistrement des informations ID3 : ID3v1 et ID3v2, comprenant de nombreux champs


textes supplémentaires et des possibilités d’extension. Tous les lecteurs audio analysent les
balises ID3 et la majorité des lecteurs est compatible avec les deux standards.
Les informations ID3 sont généralement créées et enregistrées au moment de l’extraction
des pistes audio et de la conversion au format MP3. Il existe par ailleurs de nombreux outils
pour modifier ultérieurement ces informations, voire pour passer d’un standard à l’autre (ce
que permettent, par exemple, l’outil Gnome easytag ou le lecteur Amarok).
M3U M3U est non pas un format audio ou vidéo mais un format populaire pour les listes de lec-
ture. Le format des fichiers *.m3u est très simple : chaque ligne contient le chemin ou
l’adresse Internet d’un fichier audio. Initialement prévu uniquement pour les fichiers MP3,
ce format a depuis été utilisé pour d’autres types de fichiers audio.
La plupart des lecteurs permettent d’importer des répertoires entiers de fichiers audio et de
les insérer à des listes M3U. Il peut également être intéressant de générer soi-même les
fichiers M3U. La commande suivante génère un fichier M3U contenant l’ensemble des fichiers
MP3 d’un répertoire :
utilisateur$ find repertoire_audio -name ’*.mp3’ > tous.m3u
Ogg Vorbis Ogg Vorbis est l’alternative open-source au format MP3. Ogg Vorbis comprend, outre un
nouveau type de données audio (extension de fichiers .ogg), un logiciel d’encodage et de
décodage. Il a été développé en réaction aux problèmes de brevets et de licences associés au
format MP3. Vous trouverez plus d’informations à son sujet sur le site suivant :
http://www.vorbis.com/
WMA Windows Media Audio est un autre codec audio développé par Microsoft, avec prise en
charge des MTP. Ce codec est standardisé sous l’appellation VC-1 et il en existe une implé-
mentation open-source (par exemple pour MPlayer ou dans le paquetage ffmpeg/
!!libavcodec0d).
AAC Advanced Audio Coding est un autre développement issu de l’algorithme MP3, défini dans le
standard MPEG-2 et prenant en charge les MTP. AAC est très répandu et utilisé, entre
autres, sur la quasi-totalité des fichiers audio d’iTunes. Il existe des encodeurs et décodeurs
AAC pour Linux (faac/faad et libfaac/libfaad) qui ne permettent toutefois de lire et de
modifier que des fichiers sans MTP.
ATSC A/52 ATSC A/52 ou, en abrégé, AC-3 est un format audio multicanaux développé par Dolby Digital,
et AC-3
utilisé par exemple dans la plupart des DVD. liba52 en constitue un décodeur open-source.
Real Audio La société RealNetworks a développé un grand nombre de formats audio et vidéo commer-
ciaux concurrents des formats Windows Media. Si vous ne devriez, en pratique, rencontrer
que rarement des fichiers Real Video, les formats Real Audio sont relativement populaires,
particulièrement pour la diffusion radio. Vous pouvez lire les fichiers et flux Real Audio
avec, au choix, le lecteur RealPlayer gratuit (voir un peu plus loin) ou avec les lecteurs open-
source Totem, MPlayer et xine.
MPEG-1, -2 MPEG-1, -2 et -4 définissent plusieurs formats de compression de données audio et vidéo.
et -4
Certaines parties importantes de MPEG-4 sont implémentées de façon similaire dans diffé-
rents codecs, tous compatibles MPEG-4 (par exemple XviD, DivX ou Apple QuickTime).
Linux Livre Page 162 Mardi, 23. septembre 2008 1:05 13

162 LINUX

WMV Microsoft a également développé ses propres codecs Vidéo sous le nom Windows Media
Video. Les versions 1 à 3 de WMV présentent des caractéristiques comparables à MPEG-4
mais prennent en charge les MTP.
Theora Theora est l’homologue d’Ogg Vorbis pour la vidéo. Le codec Theora présente également
des caractéristiques comparables à MPEG-4, mais il est basé uniquement sur du code open-
source et est donc librement disponible, à l’adresse suivante : http://www.theora.org/
Pour générer vous-même des vidéos Theora (par exemple pour documenter des procédures
informatiques) vous pouvez utiliser le logiciel Gnome Istanbul :
http://live.gnome.org/Istanbul

Lire des CD audio


La lecture directe de CD audio est un cas particulier, dans la mesure où le lecteur n’a que des
tâches relativement triviales à accomplir : analyser le contenu d’un CD audio et en lire les
pistes. C’est en fait le lecteur matériel qui accomplit l’essentiel du travail.
Prérequis Pour que cela fonctionne, la carte son doit être correctement configurée (voir Chapitre 20).
Le volume global et celui du canal CD doivent être non nuls. Enfin, si vous utilisez autre
chose qu’un ordinateur aux enceintes intégrées, vous devez naturellement brancher votre
installation sur la sortie audio de votre ordinateur.
Fonctionne- Les données audio sont transmises à la carte son de deux manières possibles : soit directe-
ment interne
ment (s’il existe un câble audio reliant le lecteur à la carte son), soit (sans ce câble ou avec un
lecteur externe) par transmission des données analogiques au système audio.
Contrairement aux CD de données, les CD audio ne sont pas montés dans le système de
fichiers. L’accès à un fichier s’effectue normalement par le biais du périphérique. De nom-
breux lecteurs partent du principe que /dev/cdrom pointe vers le bon périphérique (par
exemple /dev/scd0 ou /dev/hdc). Si votre ordinateur contient plusieurs lecteurs, vous devez
configurer le lecteur dans le programme même ou modifier le lien symbolique.
Lecteurs La plupart des lecteurs présentés dans la suite peuvent également gérer des CD. Les lecteurs
dédiés aux CD sont devenus l’exception (on trouve néanmoins encore gnome-cd ainsi que
divers lecteurs en mode texte tels que cdcd, tcd et workbone).
CDDB et Certains lecteurs de CD présentent la particularité de contacter un serveur CDDB (CD
freedb
Database) lorsque l’ordinateur est connecté à Internet. En général, il s’agit de http://
www.freedb.org. Ce serveur héberge une énorme base de données contenant pour chaque
CD enregistré le titre, l’interprète, etc. Si votre CD est enregistré auprès de cette base, le lec-
teur ne se contente pas de présenter le numéro de la piste lue mais, par exemple, "Led Zep-
pelin: Dazed and Confused". La reconnaissance du CD est fondée sur un identifiant calculé
à partir de la longueur des pistes du CD.
Pour que CDDB fonctionne, vous devez l’activer dans la boîte de dialogue de configuration
du lecteur de CD (si ce n’est pas le cas par défaut) et y renseigner l’adresse du serveur à uti-
liser pour les requêtes : Adresse : freedb.freedb.org, IP-Port : 8880 (cddbp).
freedb.freedb.org transmet automatiquement les requêtes vers l’un des nombreux miroirs
existants. Vous pouvez également choisir un serveur situé dans votre région (pour réduire
les temps d’accès) parmi la liste disponible sur www.freedb.org.
Linux Livre Page 163 Mardi, 23. septembre 2008 1:05 13

AUDIO ET VIDÉO 163

Si le port 8880 est bloqué par un pare-feu, vous pouvez également vous connecter au serveur
par un port HTTP : Adresse : freedb.freedb.org, IP-Port : 80, CGI-Script : ~cddb/cddb.cgi
Extracteur Les programmes d’extraction lisent les pistes d’un CD audio sous forme numérique, ce qui
est plus complexe qu’il n’y paraît au premier abord. Même si les pistes du CD sont également
sous forme numérique, celle-ci diffère du format utilisé pour un CD de données. Toute erreur
de lecture est quasiment impossible à corriger car le lecteur matériel ne peut localiser l’empla-
cement exact où reprendre. La vitesse d’extraction ainsi que la qualité des fichiers résultants
(au format WAV) dépendent fortement de la qualité du lecteur de CD/DVD utilisé.
Pour faciliter l’extraction de CD audio et la conversion des fichiers WAV vers d’autres for-
mats plus appropriés (MP3, OGG), on utilisera en général une interface graphique. La sec-
tion suivante vous en présentera quelques-uns parmi les plus populaires. Vous pouvez
également utiliser, sous KDE, le programme universel Konqueror (voir Chapitre 5). Si vous
souhaitez automatiser le processus par le biais d’un script, les outils en ligne de commande
cdda2wav/icedax et cdparanoia deviendront vos compagnons (voir Chapitre 15).

Lecture de DVD vidéo


Pour pouvoir lire des DVD vidéo sous Linux, quelques conditions préalables doivent être
remplies :
• Vous aurez besoin d’un lecteur logiciel de DVD (Amarok, MPlayer, Totem ou xine).
• Les codecs nécessaires doivent être installés, en particulier pour AC-3 (son) et MPEG-2
(image).
• Pour la plupart des DVD commerciaux cryptés par CSS, vous aurez besoin d’une biblio-
thèque supplémentaire (à installer) pour contourner cette protection.
• La vitesse de transmission depuis le lecteur vers l’ordinateur doit être suffisante (c’est le
cas de tous les lecteurs SATA et SCSI modernes, mais les ordinateurs plus anciens peuvent
nécessiter d’activer le mode DMA).
• Enfin, le pilote de votre carte graphique doit prendre en charge l’extension XVideo (XV, voir
Chapitre 22) ; il est possible de s’en passer mais cela nécessite un processeur très rapide.

Situation juridique, paquets complémentaires


La situation juridique et l’application des brevets variant d’un pays à l’autre, la distribution
de codecs et de logiciels de décryptage n’est pas possible en standard. Il existe toutefois
pour de nombreuses distributions des sources de paquetages non officielles hébergeant ces
paquetages. Vous pouvez configurer ces sources dans votre système et télécharger vous-
même les paquetages correspondants. Les sites de ces sources comprennent généralement
un avertissement indiquant que l’utilisation de ces logiciels est illégale dans certains pays.
Vous trouverez des informations supplémentaires sur les sites suivants :
http://fedoraproject.org/wiki/Multimedia ; http://en.opensuse.org/Restricted_Formats ;
https://help.ubuntu.com/community/RestrictedFormats
Linux Livre Page 164 Mardi, 23. septembre 2008 1:05 13

164 LINUX

11.2 Lecteurs audio et vidéo


Cette section présente les principaux lecteurs audio et vidéo pour Linux, y compris les
extracteurs de CD KAudioCreator et SoundJuicer. Un avertissement, toutefois : de nom-
breux programmes présentés ici nécessitent des bibliothèques de codecs pour fonctionner.
Pour les programmes Gnome (généralement fondés sur le système audio GStreamer), les
paquetages nécessaires sont relativement simples à trouver : leur nom commence par
gstreamer. Pour les autres, la recherche pourra nécessiter plus de travail. Si le lecteur de
votre choix ne parvient pas à lire tel ou tel format, c’est bien souvent qu’il manque le paque-
tage correspondant.

Lecteurs en ligne de commande


Aucun des outils en ligne de commande suivants ne propose d’interface graphique. Ils per-
mettent de piloter le lecteur de CD et de lire les fichiers audio (fournis en paramètres) et
transmettent ensuite les informations à un périphérique audio. Malgré le peu de confort
qu’elles offrent, ces commandes sont importantes car de nombreux programmes y accèdent
plutôt que mettre en œuvre leurs propres outils de décodage audio.
• mpg123 est la commande classique de lecture de fichiers MP3. mpg123 -w sortie.wav
entree.mp3 vous permet également de convertir des fichiers MP3 en fichiers WAV.
• madplayer est une alternative à mpg123, basé sur la bibliothèque libmad. Il peut convertir
des fichiers MP3 vers de nombreux autres formats. mad et libmad sont distribués sous
licence GPL, ce qui n’est pas le cas de mpg123.
• mpg321 est une autre alternative à mpg123 reposant, comme madplay, sur libmad.
• ogg123 permet de lire des fichiers OGG. Cette commande fait partie du paquetage
d’outils vorbis-tools et utilise les bibliothèques libogg et libvorbis. vorbiscom-
ment vous permet de lire et de modifier les commentaires (Meta-tags) des fichiers
OGG.
• cdcd, tcd et workbone sont des lecteurs de CD en mode texte.

Amarok (lecteur audio)


Amarok est le programme KDE de lecture et de gestion de fichiers audio le plus populaire et
le plus abouti. Au premier lancement, il vous demande de préciser où se trouvent vos
fichiers audio et génère une bibliothèque de tous les titres disponibles. L’onglet Collection
vous permet de parcourir les albums et les titres et de les ajouter à la liste de lecture d’un clic
de souris. Outre ces fonctionnalités de base, vous pouvez également opter pour une lecture
aléatoire, générer des listes, transférer des fichiers depuis/vers un lecteur de MP3, etc. Sur la
plupart des distributions, Amarok utilise la bibliothèque xine pour le rendu des fichiers
audio mais, suivant la compilation, il peut également faire appel à Helix (Real Player) ou
NMM (http://www.networkmultimedia.org).
Linux Livre Page 165 Mardi, 23. septembre 2008 1:05 13

AUDIO ET VIDÉO 165

Figure 11.1
Amarok.

Banshee (lecteur audio)


Banshee est un lecteur audio pour l’environnement Gnome. Ce projet relativement récent
est fondé sur la bibliothèque Mono. Tout comme pour Rhythmbox, vous devez préalable-
ment importer les fichiers audio à gérer (ils ne sont toutefois pas copiés mais leurs proprié-
tés sont enregistrées dans une base de données : ~/.gnome2/banshee/banshee.db). Vous
pouvez ensuite sélectionner les titres suivant divers critères, les organiser en listes, etc.
Helix Banshee Helix Banshee est une variante de Banshee utilisant les codecs des lecteurs Helix et Real-
Player. Si vous souhaitez tirer parti des fonctionnalités d’organisation de Banshee et des
nombreux formats audio que permet le lecteur RealPlayer, Helix Banshee est un bon choix.

KAudioCreator (extracteur de CD)


Le programme KDE KAudioCreator lit les pistes d’un CD et les enregistre sous la forme de
fichiers MP3, Ogg-Vorbis ou tout autre format de votre choix. Pour la génération des
fichiers, ce programme fait appel à des programmes externes (oggenc pour les fichiers OGG,
lame pour les fichiers MP3, etc.), ce qui nécessite bien sûr d’avoir installé les paquetages cor-
respondants. Un assistant vous aide à configurer les chemins des nouveaux fichiers (dont les
informations de titre, d’interprète, etc. sont lues à partir de la base de données CDDB).

MPlayer (lecteur audio, vidéo et télévision)


MPlayer est un lecteur audio et vidéo universel, dont les points forts se situent essentielle-
ment au niveau de la vidéo. Il est livré avec une impressionnante palette de formats audio et
vidéo. En revanche, un inconvénient est qu’il ne peut pas afficher de menu de navigation de
DVD (le choix des langues, des sous-titres, etc. doit donc s’effectuer par menu contextuel).
Une fois le lecteur installé, deux variantes de ce programme sont à votre disposition :
Linux Livre Page 166 Mardi, 23. septembre 2008 1:05 13

166 LINUX

mplayer adresse lance la version minimaliste, sans interface graphique, tandis que gmplayer
adresse ouvre la version avec interface graphique simple (voir Figure 11.2). Dans certaines
distributions, gmplayer possède son propre paquet intitulé mplayer-gui. Si votre carte gra-
phique n’est pas compatible XVideo, vous devez fournir au lancement l’option -vo x11 (ce
qui demande toutefois beaucoup plus de calculs).

Figure 11.2
MPlayer (lecteur audio,
vidéo et TV).

Le programme propose divers raccourcis clavier définis dans le fichier /etc/mplayer/


input.conf et documentés dans man mplayer (qui fournit également l’ensemble des options
que vous pouvez choisir au lancement). Les plus importants sont P (pour pause) et Q (pour
quitter). Les flèches vous permettent d’avancer ou de reculer dans le film.
Il existe un greffon mplayer pour Mozilla (paquetage mozilla-mplayer) qui vous permet par
exemple d’écouter directement dans Firefox ou Konqueror des fichiers audio. Ce greffon se
configure par le fichier /etc/mplayerplug-in.conf ou ~/.mplayer/mplayerplug-in.conf.

Noatun (lecteur audio et vidéo)


Le programme KDE Noatun est un lecteur audio et vidéo relativement simple. Sa popularité
a décru depuis qu’Amarok est devenu le lecteur par défaut dans KDE.

RealPlayer et Helix Player (lecteur audio et vidéo)


La société RealNetworks a développé une série de formats audio et vidéo commerciaux
concurrents de Windows Media. Pour lire les fichiers Real, vous pouvez utiliser le lecteur
RealPlayer ou son greffon Mozilla. Ce programme est gratuit mais non libre. SUSE compte
parmi les rares distributions à le distribuer par défaut, peut-être parce que RealPlayer constitue
une solution légale et gratuite pour lire des MP3.
Depuis sa version 10, RealPlayer est basé sur un programme open-source, Helix Player, issu
du projet Helix (initié par RealNetworks). Ces deux outils diffèrent non seulement par leur
Linux Livre Page 167 Mardi, 23. septembre 2008 1:05 13

AUDIO ET VIDÉO 167

licence de distribution, mais également par les codecs fournis : Helix Player ne gérant que
les formats libres, RealPlayer se révèle donc plus intéressant.
Installation Pour la plupart des distributions, il n’existe pas de paquetage RealPlayer. Vous devez donc
installer le programme manuellement, ce qui n’est toutefois pas difficile. Vous pouvez télé-
charger le paquetage RPM ou le fichier *.bin de la version 11 sur le site suivant :
http://www.real.com/linux
Pour installer le paquetage RPM, procédez comme à l’accoutumée avec rpm -i. Dans les
autres cas, téléchargez le fichier *.bin et exécutez les commandes suivantes, en répondant à
toutes les questions par la touche Entrée :
root# chmod u+x RealPlayer10GOLD.bin
root# ./RealPlayer10GOLD.bin

Version 64 bits RealPlayer n’est à l’heure actuelle disponible qu’en version 32 bits. Sur une distribution
64 bits, vous devrez faire appel à une version 64 bits de test non officielle, qui cause réguliè-
rement des problèmes. Vous trouverez cette version 64 bits à l’adresse suivante :
http://forms.helixcommunity.org/helix/builds/?category=realplay-current
Il est toutefois plus simple, dans ce cas, de renoncer à RealPlayer et d’utiliser plutôt un lec-
teur open-source compatible Real (MPlayer et le greffon Mozilla correspondant sont une
bonne alternative).
Problème avec Lorsque le plugin Firefox du lecteur Totem est installé, celui-ci cherche systématiquement
Totem
(et sans succès) à lire tout fichier Real, même si RealPlayer est installé : pour résoudre ce
problème, désinstallez le paquetage totem-mozplugin ou totem-mozilla.
Problème de Sur certaines distributions, RealPlayer est malheureusement incompatible avec le système
compatibilité
avec le audio. Il ne peut jouer de musique que si aucun autre programme ne mobilise le système audio
système audio (l’inverse est également vérifié).

Rhythmbox (lecteur audio)


Rhythmbox est un programme Gnome de gestion et de lecture de fichiers audio (générale-
ment aux formats MP3 ou Ogg-Vorbis). Les points forts de ce programme résident dans ses
fonctionnalités de gestion, très pratiques pour des bibliothèques importantes.
Au premier lancement apparaît un assistant dans lequel vous renseignez l’emplacement de
votre répertoire audio. Rhythmbox parcourt ce répertoire et génère une base de données
musicale interne, ce qui peut prendre un certain temps suivant la taille de la collection.
Vous pouvez au besoin ajouter d’autres fichiers à la bibliothèque par le biais de Musique >
Importer un dossier (à utiliser également si vous avez inséré de nouveaux fichiers dans un
dossier déjà importé). Pour supprimer des titres dont vous avez effacé les fichiers, passez
par le menu Édition > Supprimer (Rhythmbox n’est pas capable de remarquer ce genre de
modification ; si vous changez en profondeur le contenu de votre dossier audio, il est préfé-
rable de sélectionner l’ensemble des titres dans Rhythmbox, de les supprimer et d’importer à
nouveau le dossier. Attention, toutefois, à ne pas utiliser Édition > Déplacer dans la corbeille,
qui envoie sans autre forme de procès vos fichiers MP3 vers la corbeille !).
Linux Livre Page 168 Mardi, 23. septembre 2008 1:05 13

168 LINUX

Rhythmbox est simple à utiliser : vous pouvez choisir un genre, un interprète et/ou un
album, puis lancer la lecture en cliquant sur le bouton Lire (voir Figure 11.3). Rhythmbox lit
alors l’ensemble des titres apparaissant dans la liste.

Figure 11.3
Rhythmbox.

Sound Juicer (lecteur et extracteur de CD)


Le logiciel Gnome Sound Juicer permet de lire des CD audio et d’en extraire les pistes pour
les compresser dans un format de votre choix (MP3, Ogg, etc.). Pour la génération des
fichiers audio, Sound Juicer fait appel à des programmes externes par le biais du système
GStreamer (par exemple oggenc pour l’encodage des fichiers OGG, lame pour les MP3, etc.).
Par défaut, Sound Juicer génère des fichiers OGG dont le nom suit le modèle :
~/Musique/Groupe/Nom-CD/nn - Titre-piste.ogg

Vous pouvez configurer la hiérarchie de répertoires et le format audio à l’aide du menu Édition
> Préférences. Si le format de votre choix n’est pas disponible, vous devez configurer un nou-
veau profil. La commande figurant dans le champ Pipeline GStreamer est la plus importante.
L’exemple suivant permet de générer des fichiers MP3 avec lame et peut vous servir de modèle :
audio/x-raw-int,rate=44100,channels=2 ! lame name=enc mode=0 vbr-quality=6 ! id3v2mux

Totem (lecteur audio et vidéo)


Totem est un lecteur audio et vidéo universel et c’est le lecteur par défaut pour les versions
actuelles de Gnome. Certaines distributions l’utilisent même pour la lecture de CD, même
s’il n’est pas optimal dans ce cadre. Il en existe également un greffon Mozilla permettant de
lire des vidéos directement dans le navigateur.
Deux variantes existent, l’une fondée sur le système audio Gnome GStreamer, l’autre sur
xine, et qui ne peuvent être installées simultanément.
Totem a pour principaux avantages sa bonne intégration à l’environnement de bureau
Gnome et l’interface correspondante. Mon expérience n’a toutefois pas été concluante sur la
Linux Livre Page 169 Mardi, 23. septembre 2008 1:05 13

AUDIO ET VIDÉO 169

lecture des DVD : Totem a rencontré des problèmes avec l’affichage des menus du DVD, le
choix des langues, la navigation, etc.

xine (lecteur audio, vidéo et TV)


xine est probablement le lecteur vidéo le plus puissant et le plus répandu sous Linux. Il peut
également être utilisé pour lire des fichiers audio et pour regarder la télévision. Ses points
forts sont la prise en charge de très nombreux formats audio et vidéo, ainsi que sa bonne
gestion des menus de DVD. On ne peut toutefois faire de compliments poussés sur son
interface, qui vieillit et nuit au confort d’utilisation. Toutefois, il permet après un temps
d’adaptation une utilisation très efficace (particulièrement par le clavier).
L’interface de xine étant totalement découplée de la bibliothèque sous-jacente, cela permet à
d’autres logiciels (par exemple Amarok, Totem ou Kaffeine) de faire appel à cette même
bibliothèque.
Lancement Pour lancer le lecteur, il vous suffit d’exécuter la commande xine. Si celle-ci n’est pas dispo-
nible, vous n’avez probablement installé que la bibliothèque mais pas l’interface utilisateur :
installez donc à cet effet le paquetage xine-ui.
Les fonctionnalités de base de xine apparaissent dans une fenêtre de contrôle. Si celle-ci
n’est pas visible, ouvrez-la d’un clic droit de la souris sur la fenêtre de sortie vidéo et, dans
le menu contextuel, choisissez Affiche les contrôles (ou, plus simplement, utilisez la touche
de clavier G). Pour lancer la lecture d’un DVD, vous disposez d’un bouton éponyme dans
cette interface ou vous pouvez taper directement la commande xine dvd://.
Configuration Il est peu probable que xine soit d’emblée capable de lire des DVD. En règle générale, toutes
les bibliothèques complémentaires dont vous avez besoin (codecs, décryptage DVD, etc.)
sont absentes du paquetage de base et vous devrez les installer manuellement.
La boîte de dialogue accessible depuis Réglages > Configuration (ou Alt+S) est complexe et
offre davantage de possibilités que vous ne l’imaginez (en particulier si vous passez du
niveau d’expérience débutant au mode avancé ou expert, dans l’onglet gui). Pour qu’une
modification soit prise en compte, vous devrez quitter xine et le relancer.
En cas de problèmes de configuration ou de vitesse, la commande xine-check peut vous être
utile : elle vérifie si les conditions sont remplies pour une utilisation optimale de xine. Dans
le cas contraire, la commande vous renvoie quelques indications pour résoudre ces problèmes
(qui ne sont toutefois pas toujours fiables, comme mon expérience me l’a montré).
Le site suivant vous donnera toutes les informations souhaitées et astuces de configuration
dont vous pouvez avoir besoin pour xine : http://xinehq.de/

xmms
xmms est un lecteur quelque peu ancien. Même s’il n’est plus maintenu, il est encore très
répandu. Il est possible de modifier son apparence à l’aide d’habillages ou "skins" (en parti-
culier les habillages compatibles Winamp). xmms fait également montre d’une grande
Linux Livre Page 170 Mardi, 23. septembre 2008 1:05 13

170 LINUX

souplesse au niveau de ses fonctionnalités, qui peuvent être étendues à l’aide de greffons. Si
xmms ne parvient pas à gérer un format audio particulier, vérifiez dans votre gestionnaire
de paquetages si le greffon xmms correspondant est bien installé.
Les éléments d’interface sont très petits, ce qui demande de bons yeux et une grande préci-
sion à la souris. Il est toutefois plus simple de doubler la taille de la fenêtre à l’aide des tou-
ches Ctrl+D. La configuration s’effectue par menu contextuel (bouton droit de la souris). Si
xmms n’arrive pas à présenter correctement les titres au format Unicode, activez l’option
Utiliser les jeux de polices dans Options > Préférences > Polices.
xmms est compatible avec de nombreux systèmes audio de Linux. S’il affiche un message
d’erreur indiquant que la sortie audio n’est pas disponible, choisissez un autre greffon de
sortie dans Option > Préférences (Ctrl+P).

11.3 Regarder la télévision avec DVB-T


DVB, qui est l’acronyme de Digital Video Broadcasting, décrit une méthode relativemement
récente de diffusion numérique de programmes télévisés. Il en existe trois variantes : DVB-
T pour la diffusion terrestre habituelle (TNT ou télévision numérique terrestre), DVB-S pour
la diffusion par satellite et enfin DVB-C pour la diffusion par le câble. Cette section se foca-
lise sur DVB-T mais, d’un point de vue technique, ces trois variantes sont similaires et le
mode de diffusion du signal ne change rien à la prise en charge au niveau de Linux.
La diffusion DVB supplante de plus en plus largement l’émission analogique en Europe.
Pour pouvoir regarder la télévision sur votre ordinateur, vous aurez besoin d’une carte
DVB-T ou d’un petit appareil USB. Le matériel est bon marché et la prise en charge de
Linux, étonnamment bonne. Toutefois, tous les matériels DVB ne fonctionnent pas nécessai-
rement correctement sous Linux : renseignez-vous donc avant l’achat ! Le site suivant est
une source d’informations utile sur ce sujet : http://www.linuxtv.org/wiki/index.php/
Main_Page ; http://www.linuxtv.org/wiki/index.php/DVB_USB
Firmware Le matériel DVB comprend un microprocesseur dont le code (firmware) doit être dans la plu-
part des cas transmis à l’initialisation. Vous pourrez trouver le fichier nécessaire sur le site
suivant : http://www.linuxtv.org/downloads/firmware/
Vous devrez copier le fichier requis par votre périphérique dans le répertoire /lib/firm-
ware/version_noyau/. Lorsque le système hotplug de Linux reconnaît votre appareil, le
module noyau correspondant est alors chargé. Ce module lit le fichier du firmware et le
transmet au périphérique DVB. La commande dmesg vous permet de constater si cela fonc-
tionne.
Analyse des Avant de pouvoir regarder la télévision, vous devez effectuer une analyse des fréquences
fréquences
pour générer une liste de l’ensemble des canaux disponibles. Pour cela, vous aurez besoin
du programme scan ou dvbscan (qui, suivant les distributions, se trouve dans le paquetage
dvb, dvb-util ou dvb-apps) ainsi que d’un fichier décrivant les transpondeurs DVB à proxi-
mité. Pour de nombreux transpondeurs, vous trouverez un tel fichier dans le répertoire :
/usr/share/doc/dvb-utils/examples/scan/dvb-t/

Si vous ne trouvez pas de fichier correspondant à votre localisation, vous devrez générer
vous-même le fichier en question, ce qui nécessitera une recherche pour identifier la
Linux Livre Page 171 Mardi, 23. septembre 2008 1:05 13

AUDIO ET VIDÉO 171

fréquence du transpondeur le plus proche. La page suivante est une bonne source d’infor-
mations (même si elles ne sont pas toujours actualisées) :
http://www.the-media-channel.com/dvb-t/
Générez alors un fichier fondé sur le modèle suivant (en règle générale, vous n’aurez besoin
de modifier que la fréquence, ici 858 MHz) :
utilisateur$ cat at-Schoeckl
# DVB-T Graz/Schoeckl
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 858000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE

Exécutez alors la commande scan fichier_transpondeur et renvoyez la sortie correspon-


dante vers le fichier local channels.conf.
utilisateur$ scan at-Schoeckl > channels.conf
scanning at-Schoeckl
using ’/dev/dvb/adapter0/frontend0’ and ’/dev/dvb/adapter0/demux0’
initial transponder 858000000 0 2 9 1 1 2 0
>>> tune to: 858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE
0x0000 0x2775: pmt_pid 0x01f5 ORF -- ORF1 (running)
0x0000 0x2780: pmt_pid 0x01f6 ORF -- ORF2 St (running)
0x0000 0x2788: pmt_pid 0x01f8 ATV+ -- ATV+ (running)
0x0000 0x2794: pmt_pid 0x01f7 ORF -- ORF2 B (running)
Network Name ’ORS DVB-T StB’
>>> tune to: ...
WARNING: >>> tuning failed!!!
dumping lists (4 services)
Done.

user$ cat channels.conf


ORF1:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5010:5011:10101
ORF2 St:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5020:5021:10112
ATV+:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5040:5041:10120
ORF2 B:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5020:5021:10132

Lancer le Ceci étant fait, vous n’avez plus qu’à copier channels.conf vers le répertoire de configuration de
lecteur DVB
votre lecteur DVB (par exemple MPlayer ou xine) :
utilisateur$ cp channels.conf .mplayer/
utilisateur$ cp channels.conf .xine/

Lancez enfin le programme de votre choix. Vous pouvez sélectionner directement la chaîne
souhaitée par le biais de dvb://, par exemple dvb://ORF1 (voir Figure 11.4). Attention à bien
respecter les majuscules et minuscules !
utilisateur$ gmplayer dvb://
utilisateur$ cp xine dvb://
Linux Livre Page 172 Mardi, 23. septembre 2008 1:05 13

172 LINUX

Figure 11.4
Regarder la télévision
avec xine et DVB-T.
Linux Livre Page 173 Mardi, 23. septembre 2008 1:05 13

PARTIE 3 – OUTILS UNIX ET LINUX

La console
12
Jusqu’ici, nous vous avons présenté Linux comme un système bureautique. Ses
programmes diffèrent certes de ceux que vous utilisez sous Windows ou
Mac OS X, mais ils remplissent les mêmes tâches et l’on s’y habitue rapidement.
Mais Linux ne s’arrête pas là. Il existe encore tout un pan qui peut sembler
effrayant à première vue : les utilisateurs avancés lancent des commandes dans
une console texte et récupèrent les résultats sous forme de texte. La souris ne
joue qu’un rôle accessoire et les interfaces utilisateur sont obsolètes.
Quiconque ayant appris à utiliser une console peut accomplir efficacement de
nombreuses tâches. Vous pouvez connecter des commandes les unes aux autres,
lancer des tâches en arrière-fond ou automatiquement, créer des scripts, etc.
Toutes ces possibilités sont à portée de main, que ce soit en local ou sur le réseau.
Les utilisateurs qui exploitent principalement les applications bureautiques
auront plus rarement l’occasion d’utiliser des programmes en console que les
programmeurs ou les administrateurs système. Mais, dans tous les cas, la
console fait partie des outils de base que chaque utilisateur doit connaître. Vous
en comprendrez la raison lorsque que votre système graphique ne démarrera
pas à cause d’un problème de configuration ou lorsque vous voudrez administrer
vos serveurs distants.

12.1 Consoles texte et fenêtres de console


Consoles texte Microsoft Windows ne peut être utilisé qu’en mode graphique, tandis que
Linux peut l’être également dans des consoles texte. Par défaut, six consoles
sont disponibles. On passe de l’une à l’autre avec Alt+F1 pour la première,
Alt+F2 pour la deuxième, etc. Lorsque l’ordinateur fonctionne en mode graphi-
que, Ctrl+Alt+F1 permet d’accéder à la première console et Alt+F7 de revenir
au mode graphique.
Avant d’accéder à une console texte, vous devez vous connecter. Lorsque vous
voulez quitter cette console ou si vous désirez changer d’utilisateur, vous devez
vous déconnecter. Le plus simple est alors d’utiliser la combinaison de touches
Ctrl+D.

Vous pouvez lancer une commande dans une console. Pendant que celle-ci tourne, vous pou-
vez faire autre chose dans une deuxième console. Vous pouvez aussi vous connecter en tant
que root dans une console pour effectuer des tâches administratives, tout en modifiant un
fichier dans une autre console connectée avec votre identifiant sans privilège. Les consoles
fonctionnent indépendamment les unes des autres.
Linux Livre Page 174 Mardi, 23. septembre 2008 1:05 13

174 LINUX

Raccourcis clavier des consoles texte


a+1 à 6 passe aux consoles texte 1 à 6
c+a+1 à 6 passe du mode graphique aux consoles texte 1 à 6
a+7 revient au mode graphique
a+5 revient au mode graphique (Knoppix)
a+^ ^ passe dans les consoles précédentes et suivantes
s+F et
F
fait défiler vers le haut et vers le bas
c+a+D éteint ou réamorce Linux

Les combinaisons de touches Maj+PageSuiv et Maj+PgPréc permettent de faire défiler page


par page une console texte. Vous pouvez aussi voir les résultats des programmes lancés
même lorsqu’ils ne s’affichent plus à l’écran.
Fenêtres de Il n’est pas nécessaire de passer du mode graphique à une console texte pour lancer des
commande
commandes. Vous pouvez lancer une fenêtre de commande (voir Figure 12.1), aussi appelée
fenêtre de shell ou fenêtre de terminal.
Il existe différentes fenêtres de console, selon la distribution et le système de bureau : gnome-
terminal (Gnome), konsole (KDE) ou xterm. La commande de démarrage dans le menu
varie également selon la distribution.

Figure 12.1
Une fenêtre de console.

Dans un terminal, vous pouvez travailler comme sur une console texte. La seule différence
est qu’il est plus confortable de faire défiler le texte.
Raccourcis Dans une console texte ou un terminal, divers raccourcis clavier permettent de travailler plus
clavier
importants confortablement. Le tableau suivant résume les plus importants. Ils ne sont valables que si vous
utilisez l’interpréteur de commandes Bash, ce qui est le cas dans la plupart des distributions.

Raccourcis clavier de l’interpréteur de commandes Bash


c+A place le curseur au début de la ligne
c+C interrompt le programme
c+E place le curseur à la fin de la ligne
c+K supprime la ligne à partir du curseur
c+Y copie le texte supprimé
c+Z met en pause le programme (reprise avec fg ou bg)
t permet la complétion des commandes et des noms de fichiers
W et Z permet de naviguer dans les commandes précédemment lancées
Linux Livre Page 175 Mardi, 23. septembre 2008 1:05 13

LA CONSOLE 175

Le complètementautomatique avec Tab est particulièrement utile et permet d’économiser de


la saisie. Il suffit de taper les premières lettres d’une commande ou d’un fichier, puis
d’appuyer sur Tab. Lorsque le nom du fichier correspondant est reconnu, il est complété
jusqu’à ce que plusieurs possibilités s’offrent à vous. En appuyant une deuxième fois sur
Tab, on affiche la liste de tous les fichiers correspondant au début déjà saisi.
Souris La souris ne joue qu’un rôle accessoire dans une console texte ou une fenêtre de terminal.
Elle ne peut pas être utilisée pour modifier la position du curseur. Sa seule utilité est de
copier du texte avec le bouton droit et de le coller avec le bouton du milieu à la position
courante du curseur.
Pour que la souris fonctionne dans une console texte, le programme gpm doit être démarré.
Lancer des Pour lancer une commande, saisissez son nom dans la console ou la fenêtre de terminal,
commandes
éventuellement avec un ou plusieurs paramètres, puis tapez sur Entrée. Par exemple, la
commande ls affiche une liste des fichiers et répertoires du répertoire courant :
utilisateur$ ls -l
-rw------- 1 michael users 17708403 2008-04-29 13:56 20060519_DN.pdf
-rw------- 1 michael users 506614 2008-05-01 17:13 subv.tgz
drwxrwxr-x 3 michael users 4096 2007-05-28 13:35 Projets
drwxr-xr-x 2 michael users 4096 2008-03-22 10:04 tmp
-rw-r--r-- 1 michael users 10042 2007-10-30 16:15 zebre.png

Cet exemple illustre la manière dont les commandes et leurs résultats sont représentés. uti-
lisateur$ indique que la commande est lancée par un utilisateur normal. Si la ligne com-
mence par root#, c’est qu’elle doit être lancée par un administrateur système. utilisateur$
et root# représentent l’invite du système et s’affichent automatiquement. Il ne faut pas saisir
ces caractères (seuls les caractères en gras doivent être saisis).
Votre ordinateur affichera probablement une autre chaîne que utilisateur$ ou root#. Cette
dernière peut par exemple contenir le nom du répertoire courant ou celui de l’ordinateur.
Il arrive que la place manque pour afficher une commande sur une seule ligne. Dans ce cas,
la commande est découpée en plusieurs lignes séparées par des caractères \. On écrira par
exemple :
root# mkinitrd --with=reiserfs /boot/initrd-2.6.16-1.2111_FC5.img \
2.6.16-1.2111_FC5
Vous pouvez saisir cette commande sur plusieurs lignes et les séparer, comme ici, par des
caractères \. Vous pouvez aussi joindre les lignes ; dans ce cas, le caractère \ ne doit pas être
saisi.
Lancer des On peut aussi lancer des commandes en tâche de fond. Cela signifie que vous n’avez pas à
commandes en
tâche de fond attendre que le programme se termine pour lancer de nouvelles commandes. Pour cela, sai-
sissez à la fin de la ligne le caractère &. C’est particulièrement utile si vous désirez ouvrir un
programme graphique à partir d’un terminal (par exemple, firefox &).
Travailler en Sous Linux, il n’est pas courant de travailler en tant que root (c’est-à-dire avec des droits
tant que root
d’administrateur système). Lorsque vous êtes connecté en tant qu’utilisateur non privilégié,
plusieurs méthodes vous permettent de lancer des commandes en tant que root. Dans de
nombreuses distributions, il suffit de taper dans une fenêtre de terminal la commande su -l (il
Linux Livre Page 176 Mardi, 23. septembre 2008 1:05 13

176 LINUX

faut bien sûr connaître le mot de passe root). Vous pouvez alors lancer des commandes
texte en tant que root. Exit ou Ctrl+D permettent de revenir à l’utilisateur d’origine (sous
Ubuntu, on utilise à la place de su la commande sudo).

12.2 Afficher et modifier des fichiers texte


less KDE et Gnome peuvent lire des fichiers texte directement dans le gestionnaire de fichiers
(Konqueror ou Nautilus). Avec le bouton droit, vous pouvez aussi les ouvrir dans un édi-
teur confortable. Si vous travaillez dans une console texte ou un terminal, l’utilitaire less
permet de les afficher. Cette commande peut aussi être associée à d’autres commandes pour
lire tranquillement des résultats plus longs :
utilisateur$ less fichier
utilisateur$ ls -l | less

La première commande affiche le fichier fichier page par page et la seconde, le contenu du
répertoire page par page.

Raccourcis clavier de less


W /Z fait défiler le texte vers le haut ou vers le bas
Pos1, j affiche le début ou la fin du texte
G s+G affiche le début ou la fin du texte
/ motif e recherche vers l’avant
? motif e recherche vers l’arrière
N répète la recherche vers l’avant
s+N répète la rechercher vers l’arrière
Q quitte less
H affiche l’aide contenant d’autres raccourcis clavier

Lorsque vous affichez un fichier qui contient des données binaires avec less, il arrive que la console en
soit déréglée et que les caractères qui s’affichent ne correspondent plus aux caractères réels. Pour corriger
cela, lancez la commande reset.

Éditeurs de texte
Sous KDE et Gnome, il existe des éditeurs de texte confortables avec un comportement
intuitif, comme kate ou gedit. Dans une console texte, ces programmes ne sont pas utilisa-
bles : vous avez besoin d’un éditeur qui fonctionne entièrement en mode texte. Cette section
présente les éditeurs les plus populaires dans cette catégorie. L’éditeur installé par défaut
dépend de votre distribution.
Emacs, Jove, Ces éditeurs sont des dérivés d’Emacs (voir Chapitre 18).
Jed et Jmacs
Vi, Vim et Elvis Ces éditeurs sont des dérivés de Vi (voir Chapitre 17).
Linux Livre Page 177 Mardi, 23. septembre 2008 1:05 13

LA CONSOLE 177
Joe joe est un éditeur très simple. Les raccourcis clavier sont comparables à ceux du programme
Wordstar.

Raccourcis clavier de Joe


c+K H affiche ou masque la fenêtre d’aide
c+K E charge un fichier
c+K D enregistre le fichier (éventuellement sous un nouveau nom)
c+Y supprime une ligne
c+s+- annule la suppression
c+C quitte joe (demande s’il faut enregistrer)

man joe permet d’afficher une description de toutes les commandes de joe. Ce programme
peut aussi être démarré sous le nom jmacs ou jpico. Les raccourcis clavier sont alors compa-
tibles, respectivement avec Emacs et Pico.
nano et pico Ces éditeurs, bien que plus modestes en termes de fonctionnalités, sont simples à utiliser. Les deux
lignes en bas de l’écran affichent les commandes à disposition de l’utilisateur (voir Figure 12.2).
Figure 12.2
L’éditeur nano dans
une fenêtre de console.

Raccourcis clavier de nano et pico


c+A passe en début de ligne
c+D supprime des caractères
c+E passe en fin de ligne
c+H supprime le caractère précédent
c+^ place une marque
c+K supprime la ligne courante ou le texte marqué
c+U colle le texte supprimé
c+R insère un fichier texte
c+O enregistre le fichier
c+X quitte l’éditeur

La plupart des distributions actuelles fournissent nano. pico n’est plus distribué aussi largement
qu’auparavant, car sa licence n’est pas entièrement libre. nano, qui lui n’a pas de problème
de licence, est compatible avec pico.
Linux Livre Page 178 Mardi, 23. septembre 2008 1:05 13

178 LINUX

Définir l’éditeur Certains programmes lancent un éditeur par défaut. Il s’agit le plus souvent de l’éditeur Vi.
par défaut
Si vous désirez en changer, vous devez définir les variables d’environnement EDITOR et
VISUAL dans /etc/profile ou dans ~/.profile.
# À insérer dans /etc/profile ou dans ~/.profile
export EDITOR=/usr/bin/jmacs
export VISUAL=$EDITOR

12.3 Aide du système


Les commandes telles que ls, cp ou top, qui fonctionnent dans une fenêtre texte, ne réagissent
pas à F1 et n’ont pas de menu d’aide. Voici comment obtenir quelques informations :
• commande --help affiche pour de nombreuses commandes une liste de toutes les options,
assorties d’une courte explication.
• man commande affiche la page de manuel de la commande. On peut généralement naviguer
dans le texte grâce aux touches de direction. Q permet de quitter.
• help commande ne fonctionne que pour les commandes de l’interpréteur, comme cd ou
alias.
• info commande est une alternative à man, notamment pour les textes d’aide très longs.
L’utilisation de man ou de info dépend du choix du programmeur de l’application. man
est cependant plus populaire.
man affiche la documentation de plusieurs commandes élémentaires, comme ls ou cp. On
appelle man avec la syntaxe man commande pour afficher l’aide de la commande commande.
On peut éventuellement fournir un contexte (man contexte commande) pour restreindre la
recherche. Par exemple, man 3 printf affiche la syntaxe de la fonction C printf. Cette res-
triction n’est utile que lorsque plusieurs pages de manuel avec le même nom coexistent dans
plusieurs contextes différents. man affiche sans autre précision la première page qu’il trouve.
De nombreux livres sur Unix et Linux indiquent la commande avec le numéro de leur
contexte − par exemple find(1). Ainsi, vous savez immédiatement comment appeler man.
Les pages de manuel sont généralement classées dans des contextes de 1 à 9, ainsi que n :
1. Commandes utilisateur 6. Jeux
2. Appels système 7. Divers
3. Fonctions du langage C 8. Commandes d’administration système
4. Formats de fichiers, fichiers de périphériques 9. Fonctions du noyau
5. Fichiers de configuration 10. Nouvelles commandes
En interne, la représentation des fichiers d’aide passe par less. Les touches de navigation
expliquées à la section 12.2 sont donc valables pour naviguer dans les pages de manuel.

Sous KDE et Gnome, vous pouvez aussi afficher les pages de manuel à l’aide d’un navigateur d’aide ou d’un
navigateur web. Les exemples suivants montrent comment afficher la page de manuel de ls et la liste de tou-
tes les pages disponibles :
utilisateur$ gnome-help man:ls
utilisateur$ khelpcenter man:ls
utilisateur$ khelpcenter ’man:(index)’
Linux Livre Page 179 Mardi, 23. septembre 2008 1:05 13

LA CONSOLE 179

Le programme Konqueror peut également, sous KDE, afficher des pages de manuel appelées grâce à
#commande.

Pages info Les pages de manuel ont l’inconvénient d’être difficiles à structurer. Le format info offre
une alternative intéressante, notamment pour les textes d’aide très longs.
On appelle info avec la commande info commande. Si on le lance sans paramètres, les différents
thèmes d’aide s’affichent.
Sa structure plus claire présente cependant un inconvénient : la navigation dans les pages
info est peu pratique, car il n’existe aucun mécanisme de recherche.

Raccourcis clavier d’info


z fait défiler le texte vers le bas
R fait défiler le texte vers le haut
BE passe au début ou à la fin de l’unité de page info
t déplace le curseur jusqu’au renvoi suivant
e suit le renvoi vers une autre unité info
N passe à l’unité info suivante dans la même hiérarchie
P passe à l’unité info précédente dans la même hiérarchie
U remonte d’un niveau dans la hiérarchie
L retourne au texte affiché précédemment
H affiche l’aide
? cherche une commande
c+0 ferme la fenêtre courante
Q quitte l’éditeur

Vous pouvez aussi utiliser l’éditeur emacs ou xemacs pour lire les pages info. Les différentes sections sont
alors accessibles par un clic. Une autre alternative est le programme pinfo.
Sous KDE et Gnome, vous pouvez lire les pages info grâce au système d’aide intégré. Les exemples sui-
vants montrent comment afficher respectivement la page info d’Emacs et le sommaire de toutes les pages
info :
utilisateur$ gnome-help info:emacs
utilisateur$ gnome-help toc:info
utilisateur$ khelpcenter ’info:/emacs’
utilisateur$ khelpcenter ’info:/dir’
Linux Livre Page 180 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 181 Mardi, 23. septembre 2008 1:05 13

Gestion des fichiers


13
Ce chapitre décrit comment interagir avec des fichiers. Il couvre les thèmes suivants :
• fichiers, répertoires et liens ;
• copie, déplacement et suppression des fichiers et des répertoires ;
• compression et archive des fichiers ;
• recherche de fichiers ;
• gravure des CD et des DVD ;
• droits d’accès aux fichiers ;
• structure des répertoires Linux ;
• fichiers de périphériques.

13.1 Interaction avec des fichiers et des répertoires


Présentons rapidement les faits importants à propos des noms de fichiers :
• Sous Linux, les noms de fichiers sont limités à 255 caractères.
• La casse est importante : Linux distingue les minuscules des majuscules.
• Les caractères internationaux (comme les lettres accentuées) sont autorisés, mais peu-
vent poser problème lorsqu’un jeu de caractères différent est utilisé (par exemple sur un
réseau). Depuis quelque temps, presque toutes les distributions utilisent l’UTF-8
comme jeu de caractères par défaut.
• Les noms de fichiers peuvent contenir plusieurs points. Par exemple, README.bootu-
tils.gz est un nom tout à fait commun. Il s’agit d’un fichier README compressé sur le
thème des utilitaires d’amorçage.
• Les fichiers qui commencent par un point se comportent comme des fichiers cachés. Ces
derniers ne s’affichent pas par défaut avec ls ou les divers gestionnaires de fichiers.
• Les noms de fichiers qui ne sont pas interprétables tels quels par les commandes (comme
ceux avec des espaces) doivent être encadrés par des guillemets (par exemple, "a b").
La taille des fichiers est virtuellement illimitée. Les anciennes distributions posaient une limite à
2 Go. La limite se calcule actuellement plutôt en téraoctets. Selon la manière dont le noyau Linux
est compilé et le système de fichiers utilisé, on peut avoir des fichiers encore plus volumineux.

Répertoires
Arborescence Sous Linux, l’arborescence commence par le caractère /. Les lettres de lecteur comme C:
de répertoires
n’ont plus de sens et ne sont d’ailleurs plus possibles. Dans cet ouvrage, nous considérons
que tous les répertoires suivants se situent en-dessous dans l’arborescence ; le répertoire
racine se trouve donc tout en haut. Certains ouvrages adoptent la convention inverse, ce qui
Linux Livre Page 182 Mardi, 23. septembre 2008 1:05 13

182 LINUX

correspond mieux à la structure d’arbre (la racine en bas, les ramifications vers le haut), mais
c’est une terminologie peu courante.
Répertoire Comme nous l’avons vu au Chapitre 3, une fois connecté, vous accédez directement à votre
personnel
répertoire personnel ou répertoire home. Les fichiers et répertoires qui s’y trouvent vous
appartiennent. Les autres utilisateurs (à l’exception de root) ne peuvent ni les modifier, ni
les supprimer.
Le répertoire personnel se trouve généralement dans l’arborescence à l’emplacement /home/
identifiant_utilisateur (à l’exception de root, pour lequel le répertoire personnel est /root).
Il serait certes pénible d’avoir à saisir ce chemin systématiquement ; c’est pourquoi le réper-
toire personnel est accessible grâce au raccourci ~ (caractère tilde). Vous pouvez également
utiliser le raccourci ~identifiant pour accéder aux comptes des autres utilisateurs.
Répertoires . Dans chaque répertoire, il existe deux sous-répertoires particuliers qui servent à gérer la hié-
et ..
rarchie des répertoires. Le répertoire nommé . est un lien vers le répertoire courant et le
répertoire .. est un lien vers le répertoire parent.
Les deux commandes suivantes montrent comment utiliser ces répertoires. La première
copie le fichier /etc/fstab dans le répertoire courant. Si celui-ci est /home/nom, le chemin du
nouveau fichier est /home/nom/fstab.
utilisateur$ cp /etc/fstab .

Dans le second exemple, nous commençons par nous déplacer dans le répertoire ~/linux
avec la commande cd. La commande cp crée une copie de sauvegarde du fichier
partie3.odt dans le répertoire parent sous le nom partie3.odt.bak.
utilisateur$ cd ~/linux
utilisateur$ cp partie3.odt ../partie3.odt.bak

Si le répertoire personnel s’appelle /home/nom, nous avons copié le fichier /home/nom/linux/


partie3.odt dans le fichier /home/nom/partie3.odt.bak.

Caractères spéciaux pour les répertoires


~ répertoire personnel
. répertoire courant
.. répertoire parent du répertoire courant

Commandes élémentaires de gestion des fichiers


et des répertoires
Même si KDE et Gnome fournissent des gestionnaires de fichiers, les utilisateurs avancés de
Linux ont tendance à utiliser des commandes en mode texte. Le tableau suivant résume les
commandes les plus importantes.

Gestion des fichiers et des répertoires


cd modifie le répertoire courant
cp copie des fichiers
less affiche un fichier texte page par page
Linux Livre Page 183 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 183

ls affiche tous les fichiers d’un répertoire


mkdir crée un nouveau répertoire
mv déplace des fichiers ou modifie leur nom
rm supprime des fichiers
rmdir supprime des répertoires

Liste des ls affiche une liste de tous les fichiers du répertoire courant. Si vous souhaitez aussi afficher
fichiers (ls)
les fichiers cachés, utilisez l’option -a. Si vous désirez afficher d’autres informations, telles
que la taille du fichier ou le propriétaire, utilisez l’option -l. Par défaut, le résultat de ls est
trié alphabétiquement. Pour trier la liste par date de dernière modification, par taille ou par
extension, utilisez respectivement les options -t, -S et -X. La commande suivante affiche
tous les fichiers *.png dans le répertoire figures, triés par taille (dans l’ordre décroissant).
utilisateur$ $ ls -l -S figures/*.png
-rw-r--r-- 1 michael users 58865 2008-03-08 12:53 ./these-gantt.png
-rw-r--r-- 1 michael users 53417 2008-07-19 17:08 ./schedule.png
-rw-r--r-- 1 michael users 42516 2008-06-27 12:44 ./dct-vect.png
-rw-r--r-- 1 michael users 30792 2008-03-28 14:09 ./interpol-luma.png
-rw-r--r-- 1 michael users 18984 2008-04-04 16:39 ./filter-samples.png
-rw-r--r-- 1 michael users 16834 2008-03-29 11:15 ./transform.png
-rw-r--r-- 1 michael users 15341 2008-03-24 11:25 ./4ss.png
-rw-r--r-- 1 michael users 14177 2008-04-04 16:33 ./filter-block.png
...

Une ligne typique du résultat de ls -l ressemble à ceci :


-rw-r--r-- 1 michael users 15341 2008-03-24 11:25 ./4ss.png

Il s’agit du fichier 4ss.png, modifié la dernière fois le 24 mars 2008 à 11h25. Il a une taille de
15 341 octets et appartient à un utilisateur dont l’identifiant est michael dans le groupe users.
Les dix caractères en débit de ligne indiquent le type de fichier et les droits d’accès. Le
fichier peut être de cinq types différents : - indique un fichier normal, d un répertoire (direc-
tory), b ou c un fichier de périphérique (de type bloc ou caractère), l un lien symbolique. Les
trois caractères suivants (rwx) précisent si le propriétaire peut lire, modifier et exécuter le
fichier. Les caractères suivants fournissent des informations similaires pour les membres du
groupe et tous les autres utilisateurs du système. Le chiffre situé après ce groupe de dix
caractères indique le nombre de liens durs vers le fichier. Nous parlerons plus tard des liens
durs et des droits d’accès.
La plupart des distributions configurent ls pour qu’il affiche les fichiers et répertoires dans
différentes couleurs selon leur type. Si ce n’est pas votre cas, vous pouvez activer ce compor-
tement avec l’option --color.
ls n’affiche normalement que les fichiers présents dans le répertoire courant. Si vous désirez
afficher ceux des sous-répertoires, utilisez l’option -R. Cette option, signifiant "récursif",
s’applique à de nombreuses commandes sous Linux. La commande suivante fait la liste de
tous les fichiers de tous les sous-répertoires (y compris les répertoires et fichiers cachés).
Linux Livre Page 184 Mardi, 23. septembre 2008 1:05 13

184 LINUX

Cette liste est généralement très longue. C’est pour cette raison que l’on transfère le résultat
de la commande vers less grâce à | less :
utilisateur$ ls -alR | less

Copier des La commande cp nom1 nom2 copie le fichier nom1 sous le nom nom2. Pour copier plusieurs
fichiers
fichiers, appelez la commande cp nom1 nom2 ... répertoire_cible. Les commandes suivantes
passent dans le répertoire linux, créent un répertoire bak et y copient tous les fichiers *.odt.
utilisateur$ cd linux
utilisateur$ mkdir bak
utilisateur$ cp *.odt bak/

Pour copier tout un répertoire, ainsi que son contenu, utilisez cp -a. Dans l’exemple sui-
vant, cd sans argument permet d’aller dans le répertoire personnel. La deuxième commande
crée une copie complète du répertoire linux sous le nom linux-bak.
utilisateur$ cd
utilisateur$ cp -a linux linux-bak

Supprimer des rm fichier supprime le fichier indiqué irrévocablement. Par défaut, rm ne peut être utilisé
fichiers et des
dossiers que pour les fichiers, et non pour les répertoires. Pour ces derniers, la commande rmdir
répertoire est prévue, mais elle ne fonctionne que lorsque le répertoire est vide. En prati-
que, on utilise donc le plus souvent les options -rf de rm. Cette commande supprime tous
les sous-répertoires et fichiers de manière récursive et sans demander de confirmation. Par
conséquent, rm -rf est une commande très dangereuse ! La commande suivante supprime
la copie de sauvegarde créée au paragraphe précédent :
utilisateur$ rm -rf linux-bak/

Déterminer l’espace nécessaire aux fichiers et répertoires


ls -l indique la taille d’un fichier. Il est néanmoins souvent utile de connaître la place prise
par tous les fichiers d’un répertoire, l’espace restant sur le disque dur, etc. Les commandes
df et du ont été prévues à cet effet.
Déterminer la df affiche pour toute partition et tout support de données monté dans le système de fichiers,
capacité d’un
disque dur sa taille totale et l’espace libre restant.
Dans l’exemple suivant, df affiche des résultats pour quatre partitions et supports de don-
nées. Dans le répertoire système (première ligne), il reste 620 Mo. La deuxième ligne indique
la place qu’il reste dans le système de fichiers temporaire. Ce dernier n’a pas de signification
dans un usage courant ; il permet des échanges de données rapides entre deux programmes.
La troisième ligne est une partition Windows et la quatrième, un répertoire réseau.
utilisateur$ df
Sys. de fich. 1K-blocs Occupé Disponible Capacité Monté sur
/dev/hdc2 6940516 5962076 620192 91% /
tmpfs 777764 0 777764 0% /dev/shm
/dev/sda2 4715772 2040692 2675080 44% /vfat
mars:/data 97881408 77136160 15773120 84% /data
Linux Livre Page 185 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 185

df permet également de savoir sur quelle partition se trouve physiquement un répertoire.


Dans l’exemple suivant, le répertoire /home/michael se trouve sur la partition /dev/sda6,
montée à l’emplacement /home dans l’arborescence :
utilisateur$ df /home/michael
Sys. de fich. 1K-blocs Occupé Disponible Capacité Monté sur
/dev/sda6 9621848 4429352 4703720 49% /home
Déterminer la du permet de connaître la taille du répertoire courant et de tous les sous-répertoires. Il ren-
taille d’un
répertoire voie le résultat en kilo-octets. La commande suivante montre que le répertoire Photos/
mariage occupe 3,2 Go et affiche la répartition de cet espace :
utilisateur$ cd Photos/mariage
utilisateur$ du
68704 ./Pierre
210864 ./Janine
51120 ./Julien
25056 ./MarieAure
1168700 ./Alice
287372 ./Loic
289168 ./Didier
44556 ./Bruno
47640 ./Lysiane
110928 ./Michael
140896 ./Florent
15688 ./David
109392 ./Annette
207208 ./Philippe
575192 ./Nicolas
3354012 .

Le programme baobab, fourni dans les versions récentes de Gnome, est un outil confortable pour afficher
la taille des fichiers et des répertoires de manière graphique. Dans KDE, cette vue est intégrée à Konqueror.

Caractères joker
On souhaite souvent exécuter des commandes sur un ensemble de fichiers − par exemple,
tous les fichiers se terminant par .odt. Pour cela, on utilise des caractères joker dans les
paramètres des commandes Linux.

Caractères joker pour les noms de fichiers


? exactement un caractère arbitraire
* un nombre arbitraire (y compris 0) de caractères arbitraires
[abc] exactement un des caractères entre crochets (a, b ou c)
[a-f] exactement un caractère dans l’intervalle indiqué
[!abc] un caractère différent des caractères entre crochets
[^abc] idem
Linux Livre Page 186 Mardi, 23. septembre 2008 1:05 13

186 LINUX

* et ? ? représente un caractère arbitraire, et * un nombre arbitraire (y compris 0) de caractères


arbitraires. * représente n’importe quel caractère, y compris les points, à condition que le
fichier ne commence pas par un point. Si vous désirez traiter tous les fichiers, il faut utiliser
le raccourci * et non pas, comme sous DOS, *.*.
Vous pouvez sans problème utiliser plusieurs caractères joker. Ainsi, *graph* renverra tous
les fichiers dont le nom contient graph : par exemple, graphique.png, interfacegraphique et
LISEZMOI.graph.
[] et [!] Lorsque les caractères ? et * sont trop généraux, vous pouvez appliquer des restrictions sup-
plémentaires grâce aux crochets. [abc] est joker pour l’une des trois lettres a, b ou c. Lorsque
deux éléments sont séparés par un tiret, il s’agit de l’intervalle entre ces deux éléments. Par
exemple, [a-f]* renverra tous les fichiers dont le nom commence par une lettre entre a et f.
*[_.-]* représente un fichier dont le nom contient un tiret de soulignement, un point ou un
tiret. On peut aussi exclure des caractères : [!a-z]* désigne tous les fichiers dont le nom ne
commence pas par une minuscule, et *.[hc] tous ceux qui se terminent par .c ou .h.
Les caractères joker peuvent également être utilisés pour les répertoires. */*.odt représente
tous les fichiers *.odt dans un sous-répertoire du répertoire courant (à un seul niveau ; cela
ne renvoie pas les fichiers dans un sous-sous-répertoire). /usr/*bin/* représente tous les
fichiers qui se trouvent dans les répertoires /usr/bin et /usr/sbin.
L’extension des caractères joker n’est pas gérée par les commandes appelées, mais par
l’interpréteur qui appelle la commande. bash connaît un certain nombre de caractères joker,
en plus de ceux que nous venons de décrire.

Problèmes liés à l’utilisation des caractères joker


L’utilisation des caractères joker semble à première vue plus simple que ce qu’elle est réelle-
ment. Si vous rencontrez des problèmes avec ces caractères, vous pouvez mener quelques
expériences grâce à la commande echo chaîne. Elle affiche tous les fichiers concernés par
une combinaison de caractères joker sans les modifier.
Un problème classique est que * ne représente pas seulement les fichiers, mais aussi les
répertoires. Par conséquent, ls * affiche tous les fichiers du répertoire courant, mais aussi le
contenu de tous les sous-répertoires. Pour éviter cela, on utilise ici l’option -d ; ce n’est
cependant pas le cas des autres commandes.
Traiter les Lorsque vous souhaitez traiter tous les répertoires (sans toucher aux fichiers), vous pouvez
répertoires
avec */. utiliser la combinaison de caractères joker */.. Elle représente tous les "fichiers" qui ont un
lien vers eux-mêmes dans leur sous-répertoire, ce qui est uniquement le cas des répertoires.
utilisateur$ echo */.

Extension Le fait que l’extension des caractères joker soit gérée par l’interpréteur de commandes, et non
gérée par
l’interpréteur directement par la commande, ne présente pas que des avantages. Par exemple, ls -R *.odt
de commandes ne renvoie pas tous les fichiers *.odt des sous-répertoires du répertoire courant.
La raison est simple : l’interpréteur de commandes étend le motif *.odt dans le répertoire
courant et passe à ls la liste des fichiers trouvés. Par conséquent, si vous n’avez pas de
répertoire se terminant par .odt, ls a terminé et l’option -R ne peut rien y faire.
Linux Livre Page 187 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 187

Pour ce type de recherche, il faut utiliser la commande find, dont nous parlerons plus tard :
utilisateur$ find . -name ’*.odt’
Renommer Il n’est pas possible de renommer tous les fichiers *.x en *.y avec la commande mv *.x
des fichiers
*.y. La raison est la même que dans le paragraphe précédent. Le motif *.x est remplacé
par la liste de tous les fichiers correspondants et il n’existe pas de fichier correspondant à
*.y. La commande mv a donc pour paramètres une liste de fichiers se terminant par *.x et
l’expression *.y − et elle ne sait pas comment traiter ces arguments. mv ne sait de toute
façon traiter plusieurs arguments à la fois que quand le dernier argument est un réper-
toire.
Renommer Les utilisateurs avancés d’Unix ont évidemment trouvé une parade à ces problèmes : ils uti-
des fichiers
avec sed lisent l’éditeur de flux sed. Comme il est complexe à utiliser, les exemples ci-dessous s’appa-
rentent plutôt à de la programmation de l’interpréteur de commandes.
Dans ce premier exemple, ls fournit la liste des fichiers qui doivent être renommés et la
passe à sed. Celui-ci construit une liste de commandes cp grâce à la commande s (recherche
d’expressions régulières et remplacement), puis transmet ces commandes à un nouvel inter-
préteur de commandes qui les lance. Tous les fichiers *.xxx sont alors copiés dans des
fichiers *.yyy.
utilisateur$ ls *.xxx | sed ’s/\(.*\)\.xxx$/cp & \1.yyy/’ | sh

Une autre possibilité est de formuler cela sous la forme d’une boucle − nous supposons que
l’interpréteur de commandes utilisé est Bash. Cette commande copie tous les fichiers *.txt
dans des fichiers *.txt~ (le caractère ~ en fin de fichier est souvent utilisé pour les fichiers de
sauvegarde).
utilisateur$ for i in *.txt; do cp $i $i~; done

Fichiers cachés
Sous Linux, les fichiers commençant par un point sont considérés comme des fichiers
cachés. * ne renvoie donc pas vraiment tous les fichiers d’un répertoire : ceux qui débutent
par un point sont ignorés.
.* permet certes de récupérer les fichiers cachés, mais aussi les répertoires . et .. (réper-
toire courant et répertoire parent). Selon la commande utilisée, cette syntaxe peut être
fatale.
On peut utiliser le motif .[!.]*. Celui-ci représente tous les noms de fichiers dont le premier
caractère est un point, dont le deuxième caractère existe et n’est pas un point, et qui ont un
nombre arbitraire de caractères arbitraires.
utilisateur$ echo .[!.]*

Mais la solution la plus universelle est d’utiliser find :


utilisateur$ find . -name ’.*’
Linux Livre Page 188 Mardi, 23. septembre 2008 1:05 13

188 LINUX

13.2 Liens
Les liens permettent d’accéder à un même fichier depuis différents endroits du système de
fichiers, sans que ce fichier ne soit physiquement enregistré plusieurs fois. Ils permettent
d’éviter la redondance. Ils sont particulièrement courants dans les répertoires /bin et /lib −
vous pouvez par exemple le voir en explorant /usr/bin ou /usr/lib avec ls -l.
Pour comprendre le concept de lien, le plus simple est de partir d’un exemple. Supposons
qu’un répertoire test contienne le fichier abc. La commande ln abc xyz semble créer un
nouveau fichier xyz. En réalité, abc et xyz sont deux liens vers le même fichier. Pour le véri-
fier, utilisez la commande ls -l. La deuxième colonne indique le nombre de liens associés à
un fichier donné (dans notre cas, deux). Si vous utilisez également l’option -i, vous pouvez
voir que les deux fichiers correspondent au même inode (ce terme sera expliqué plus tard),
ce qui prouve qu’il s’agit bien du même fichier sur le système de fichiers.
utilisateur$ ls -li
13713417 -rw-r--r-- 1 michael users 205 2008-06-26 15:34 abc
utilisateur$ ln abc xyz
utilisateur$ ls -li
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 abc
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 xyz

Lorsque vous modifiez l’un des deux fichiers, l’autre est automatiquement modifié
(puisqu’il ne s’agit en fait que d’un seul et même fichier). Si vous supprimez l’un des deux,
vous ne faites que réduire le nombre de liens.

Des résultats étranges peuvent se produire lorsque vous modifiez avec un éditeur de texte un fichier avec un
lien dur : le lien pointe, après le premier enregistrement, sur le fichier de sauvegarde et, après le second enre-
gistrement, dans le vide.
La raison est la suivante : certains éditeurs créent un fichier de sauvegarde lors de l’enregistrement. Ce der-
nier est un renommage du fichier original, par exemple abc en abc~. Le fichier modifié est alors un fichier
nouvellement créé, avec un nouvel inode et sans lien. Pour éviter cela, utilisez des liens symboliques.

Liens Il existe deux types de liens. L’exemple ci-dessus a mis en place des liens durs, créés par
symboliques
défaut par la commande ln. Si vous utilisez l’option -s, vous créez un lien symbolique. Ces
liens ont l’avantage de pouvoir être utilisés sur un disque physique différent de celui du
fichier et de pouvoir également être appliqués à des répertoires (ces deux possibilités ne
sont pas offertes par des liens durs).
ls affiche le fichier d’origine des liens symboliques. En revanche, il n’existe pas de compteur
pour le nombre de liens associés au fichier d’origine.
La différence interne entre un lien symbolique et un lien dur est que le premier enregistre le
chemin du fichier lié, tandis que le second enregistre l’inode du fichier.
utilisateur$ ln -s abc efg
utilisateur$ ls -li
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 abc
13713415 lrwxrwxrwx 1 michael users 3 2008-06-26 16:01 efg -> abc
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 xyz
Linux Livre Page 189 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 189

Pour créer un lien symbolique, vous devez vous trouver dans le répertoire qui contiendra le lien. Sinon, il
arrive que le lien ne pointe pas vers l’endroit souhaité.

Les liens symboliques se comportent également différemment des liens durs. Supprimer le
fichier d’origine (en l’occurrence abc) ne modifie pas le lien vers ce fichier (efg), mais celui-
ci pointe alors vers un emplacement vide. Inversement, si le lien symbolique est supprimé,
cela n’a aucune influence sur le fichier d’origine.
On peut aussi créer un lien symbolique vers un répertoire. Cela peut cependant causer quel-
ques confusions, car toute l’arborescence pointée par le lien symbolique semble recopiée. En
fait, le lien vers le répertoire n’est qu’un chemin d’accès supplémentaire aux mêmes fichiers
et sous-répertoires.
Essayez, autant que possible, de ne pas utiliser de chemins absolus, mais relatifs, lorsque
vous créez un lien symbolique. Ainsi, vous éviterez des problèmes si le répertoire est monté
par NFS ou si vous déplacez des répertoires.
Les liens symboliques et les liens durs ont chacun leurs avantages. Les premiers sont
plus simples à gérer, tandis que les seconds demandent moins de place disque et sont plus
rapides.

13.3 Chercher des fichiers


Il existe plusieurs possibilités pour chercher des fichiers sous Linux. Les plus importantes
sont résumées dans le tableau ci-après. La commande à utiliser dépend du type de fichier
recherché et des informations connues (nom du fichier, contenu, etc.).

Recherche de fichiers
beagle-query cherche des fichiers selon leur contenu
grep cherche du texte dans un fichier texte
find cherche des fichiers selon leur nom, leur date, leur taille, etc.
locate cherche des fichiers selon leur nom
whereis cherche des fichiers dans des répertoires prédéfinis
which cherche des programmes dans les répertoires de la variable d’environnement PATH

which et whereis
which cherche la commande passée en argument. Il renvoie le nom complet de la commande
lorsque son nom est indiqué sans information de chemin.
Il parcourt les répertoires de la variable d’environnement PATH et est donc extrêmement
rapide. Cette variable contient une liste de répertoires dans lesquels on peut trouver des
Linux Livre Page 190 Mardi, 23. septembre 2008 1:05 13

190 LINUX

programmes. Notez qu’elle contient généralement plus de répertoires pour root que pour
un utilisateur normal.
utilisateur$ which emacs
/usr/bin/emacs

whereis parcourt tous les répertoires usuels pour les fichiers exécutables, les fichiers de
configuration, les pages de manuel et le code source, afin de trouver le nom de fichier indi-
qué. Il couvre plus de répertoires que which et ne se limite pas aux programmes. Cependant,
il n’indique que les fichiers qui se trouvent dans les répertoires prédéfinis pour whereis
(voir à ce sujet man whereis).
utilisateur$ whereis fstab
fstab: fstab: /etc/fstab /etc/fstab.pre-uuid /usr/include/fstab.h /usr/share/
➥man/man5/fstab.5.gz

locate
locate motif affiche les fichiers dont le nom complet (chemin + nom de fichier) correspond
au motif passé en argument. La recherche est très rapide car locate, plutôt que de parcourir
le système de fichiers, accède à une base de données qui contient tous les noms de fichiers
du système. Certaines distributions n’affichent que les fichiers auxquels l’utilisateur a effec-
tivement accès. Lancez locate en tant que root lorsque vous cherchez des fichiers système.
Exemple La commande suivante cherche le fichier de configuration de X, xorg.conf :
utilisateur$ locate xorg.conf
/etc/X11/xorg.conf
/etc/X11/xorg.conf.backup
/etc/X11/xorg.conf~
/usr/share/man/man5/xorg.conf.5.gz

On peut utiliser des caractères joker. Ainsi, locate ’*dvips’ ne renverra que les fichiers
dont le nom se termine par dvips.
updatedb La qualité des résultats de la recherche dépend largement de la qualité de la base de don-
nées de locate. La plupart des distributions lancent la commande updatedb pour mettre à
jour cette base au moins une fois par jour. Il est aussi possible de la lancer manuellement de
temps à autre. Cela nécessite cependant des droits root.

find et grep
find est une commande à la fois extrêmement puissante et complexe pour chercher des
fichiers. Elle prend en argument différents critères de recherche (motif pour le nom du
fichier, date de création ou de dernier accès, etc.). man find fournit une référence complète
de toutes les options de find. Les exemples suivants vous permettront de faire vos premiers
pas avec find. Notez qu’il est plutôt long à s’exécuter, car il parcourt des pans entiers du
système de fichiers, répertoire après répertoire.
find La commande find, sans paramètre supplémentaire, affiche une liste de tous les fichiers
dans le répertoire courant et ses sous-répertoires.
Linux Livre Page 191 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 191

La commande suivante cherche tous les fichiers qui commencent par .e dans le répertoire
courant et ses sous-répertoires :
utilisateur$ find -name ’.e*’
./.emacs.d
./.emacs~
...
./linux-2.6.19.2/linux/scripts/mod/.elfconfig.h.cmd
...
./.emacs
./.eclipse

Cet exemple cherche dans le répertoire /usr/share/texmf tous les fichiers *.tex présents
dans un répertoire qui se termine par latex :
utilisateur$ find /usr/share/texmf -path ’*latex/*.tex’
/usr/share/texmf/ptex/platex/base/plnews03.tex
/usr/share/texmf/ptex/platex/base/kinsoku.tex
/usr/share/texmf/ptex/platex/base/plnews08.tex
/usr/share/texmf/ptex/platex/base/pldoc.tex
...

L’exemple suivant affiche tous les répertoires contenus dans /etc/. Les fichiers réguliers ne
sont pas montrés. La liste est triée alphabétiquement avec sort.
root# find /etc -type d | sort
/etc
/etc/acpi
/etc/acpi/events
/etc/alternatives
/etc/apache2
/etc/apache2/conf.d
...

La commande suivante affiche tous les fichiers des sous-répertoires de /home qui appartien-
nent aux utilisateurs du groupe users et qui ont été modifiés au cours des cinq derniers
jours. -ctime +5 affiche les fichiers modifiés il y a plus de cinq jours, et -ctime 5 ceux modifiés
il y a exactement cinq jours.
root# find /home -group users -ctime -5
...

Cette commande supprime tous les fichiers de sauvegarde dans le répertoire courant et ses
sous-répertoires. Une liste est construite avec les résultats de find, puis elle est passée à rm :
utilisateur$ rm $(find . -name ’*~’)

Si find renvoie beaucoup de fichiers, il se peut que la commande ci-dessus affiche une
erreur : la ligne de commande étendue est trop longue par rapport à la taille maximale auto-
risée. Dans ce cas, vous devez utiliser l’option -exec de find, ou la commande xargs. Reportez-
vous aux pages de manuel man find et man xargs pour plus d’informations à ce sujet.
Linux Livre Page 192 Mardi, 23. septembre 2008 1:05 13

192 LINUX

grep La commande grep parcourt un fichier texte à la recherche d’un motif de recherche. Selon les
options, elle affiche les lignes du fichier correspondant ou le nombre de lignes concernées.
Le motif de recherche est une expression rationnelle.
La commande suivante cherche la chaîne de caractères "emacs" dans tous les fichiers *.tex
du répertoire. Une liste de toutes les lignes correspondantes (préfixées par le nom du fichier)
s’affiche à l’écran.
utilisateur$ grep emacs *.tex

Cet exemple compte le nombre de fois que la fonction arctan est utilisée dans les fichiers *.c
du répertoire :
utilisateur$ grep -c arctan\(.*\) *.c

grep -v renvoie comme résultat toutes les lignes qui ne contiennent pas le motif de recher-
che. Dans l’exemple suivant, grep supprime toutes les lignes qui commencent par le carac-
tère # dans le fichier configfile. La commande cat supprime toutes les lignes vides.
Le résultat est enregistré dans le fichier nocomments.
utilisateur$ grep -v ’^#’ configfile | cat -s > nocomments

Combiner find Combiner find et grep permet de mener des recherches particulièrement efficaces. Cet
et grep
exemple affiche tous les fichiers *.tex qui contiennent la chaîne de caractères "emacs" :
utilisateur$ find -name ’*.tex’ -type f -exec grep -q emacs {} \; -print

La commande suivante affiche tous les fichiers du répertoire courant, dont la taille est infé-
rieure à 10 Ko et dont le contenu correspond à l’expression rationnelle case.*in. La liste des
fichiers trouvés est enregistrée dans le fichier resultat.
utilisateur$ find -name ’*’ -maxdepth 1 -size -10k \
> -exec grep -q case.*in {} \; -print > resultat

Beagle
Beagle est un outil de recherche relativement récent, qui fournit certains avantages en plus
de ceux des outils traités ci-dessus :
• La recherche est rapide ; elle s’appuie comme locate sur un fichier d’index.
• L’index de recherche est actualisé à chaque modification de fichiers ; il est donc toujours
à jour.
• La recherche inclut le contenu des fichiers. Alors que la combinaison find/grep se limite
aux fichiers texte, Beagle permet de gérer davantage de formats : documents Open-
Office.org, pages Web (y compris le cache de Konqueror), courriers électroniques
(KMail et Evolution), fichiers PDF, etc.
Beagle présente néanmoins certains inconvénients. Il est développé en C# et nécessite donc
d’installer Mono. Son fichier d’index est très volumineux. Il existe des formats que Beagle ne
prend pas encore en compte, comme les courriers électroniques de Thunderbird ou les
fichiers LaTeX. Les systèmes de données NFS posent également problème : ils peuvent être
parcourus, mais cela prend du temps et on ne peut pas actualiser automatiquement l’index.
Linux Livre Page 193 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 193

Beagle possède une interface graphique pour Gnome, nommée gnome-beagle-search et qui
s’ouvre avec F12, et une interface graphique pour KDE, nommée kerry. Beagle peut aussi être
intégré directement à Nautilus et Firefox. Il existe une extension KIO de Konqueror, qui permet
de lancer des recherches sous la forme beagle:expression de recherche.

Expressions de recherche de Beagle


mot1 mot2 recherche les documents contenant les deux termes de recherche
mot1 OR mot2 recherche les documents contenant au moins un terme de recherche ; OR doit être
saisi en majuscules
mot1 -mot2 recherche les documents contenant mot1, mais pas mot2
"mot1 mot2" recherche les documents contenant la phrase "mot1 mot2"
ext:pdf restreint la recherche aux documents PDF
.pdf raccourci pour ext:pdf

On peut aussi lancer une recherche Beagle via la ligne de commande :


utilisateur$ beagle-query ubuntu mono

Tracker
Si Beagle ne vous satisfait pas, Tracker est une alternative de plus en plus populaire. Ce pro-
gramme est relativement récent et donc moins mûr que Beagle, mais il a d’ores et déjà la
réputation d’être plus efficace.
Après l’installation, vous devez vous déconnecter, puis vous reconnecter. Une fois que vous
avez laissé à Tracker le temps d’indexer votre système de fichiers, vous pouvez lancer une
recherche avec tracker-search-tool. Si vous travaillez sous Gnome, vous pouvez aussi
l’utiliser directement dans Nautilus avec le bouton Rechercher.
Tracker enregistre les données d’index dans le répertoire ~/.cache/tracker. Par défaut,
seuls les fichiers du répertoire personnel sont indexés. Si cela ne vous convient pas, vous
pouvez modifier la configuration avec tracker-preferences.
Lorsque j’ai testé ce programme, il ne prenait pas encore en charge les données de Thunderbird.
Il ignorait également mes fichiers LaTeX et PostScript.

Google Desktop
Google a également lancé une version bêta de son outil de recherche local déjà bien établi
sous Windows. Son succès sous Linux reste cependant à confirmer. D’une part, il ne s’agit
pas d’un logiciel libre. D’autre part, la version Windows de Google Desktop a déjà entraîné
de nombreuses questions quant à la confidentialité des données et il est probable que cet
élément préoccupe également les utilisateurs de la version Linux.
Linux Livre Page 194 Mardi, 23. septembre 2008 1:05 13

194 LINUX

Installation Google fournit des paquetages RPM et DEB en téléchargement, ainsi qu’un dépôt de paque-
tages qui permet d’actualiser automatiquement les paquetages avec APT, YUM et autres
(deuxième lien).
http://desktop.google.com/linux/ ; http://www.google.com/linuxrepositories/
Utilisation Google Desktop est activé lors de la connexion à Gnome ou KDE. Il lance en tâche de fond
l’indexation des données (programme gdl_inderxer). Par défaut, seul le répertoire person-
nel, ainsi que les répertoires man et info sont parcourus. L’indexation de départ fonctionne
avec une priorité très basse et interfère peu avec le fonctionnement de l’ordinateur, mais elle
peut durer plusieurs heures. L’index est enregistré dans ~/.google/desktop. La recherche et
la modification des paramètres sont gérées par une interface web pour laquelle Google
Desktop lance un petit serveur web sur le port 33555.

13.4 Archiver et sécuriser des données


Compresser et archiver des données (gzip, tar, zip)
Pour compresser des données, on utilise généralement sous Windows WinZip ou un pro-
gramme compatible. Il existe aussi plusieurs interfaces sous Linux, comme file-roller
(sous Gnome) et ark (sous KDE). Cette section présente quelques alternatives en ligne de
commande, résumées dans le tableau ci-dessous.

Compresser et archiver des données


gzip compresse un fichier
gunzip décompresse un fichier
bzip2 compresse un fichier (compression plus importante, mais plus lente)
bunzip2 décompresse un fichier
tar crée et extrait des archives de fichiers
zip crée une archive Zip compatible avec Windows
unzip extrait une archive Zip
zipinfo affiche des informations sur les archives Zip

gzip et gunzip gzip compresse le fichier fourni en paramètre et le nomme nom.gz. gunzip effectue l’opé-
ration inverse. Les deux commandes utilisent l’algorithme LZ77-Lempel-Ziv, qui est sur-
tout efficace pour les fichiers texte (et nettement moins pour les fichiers audio ou vidéo).
La compression est sans perte − après la décompression, le fichier d’origine est restauré.
Les commandes suivantes illustrent son utilisation :
utilisateur$ ls -l licence.txt
... 17718 2003-02-09 18:25 licence.txt
utilisateur$ gzip licence.txt
utilisateur$ ls -l licence.txt.gz
... 6502 2003-02-09 18:25 licence.txt.gz
utilisateur$ gunzip licence.txt.gz

bzip2 et bzip2 et bunzip2 sont une alternative à gzip et gunzip. Ces commandes présentent l’avan-
bunzip2
tage de mieux compresser les fichiers, mais l’inconvénient de s’exécuter plus lentement.
Linux Livre Page 195 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 195

Le fichier compressé reçoit l’extension .bz2.


utilisateur$ bzip2 licence.txt
utilisateur$ ls -l licence.txt.bz2
... 5764 2003-02-09 18:25 licence.txt.bz2
utilisateur$ bunzip2 licence.txt.bz2

tar tar est la commande de référence pour rassembler plusieurs fichiers dans une archive, qui
peut ensuite être compressée à l’aide de gzip ou bzip2.
La commande suivante regroupe les fichiers du répertoire livre dans l’archive compressée
livre.tgz. En ce qui concerne les options, c indique à tar qu’il doit créer une archive. z
signifie "zip" : le fichier doit être compressé avec gzip. f signifie "file" (fichier) : cette option
donne le nom du fichier à créer, généralement avec l’extension .tar.gz ou .tgz.
utilisateur$ tar -czf livre.tgz livre/

tar -tzf affiche le contenu d’une archive. Les fichiers qu’elle contient sont dans un ordre
aléatoire. La plupart des distributions permettent également de voir ce contenu avec less.
utilisateur$ tar -tzf livre.tgz/
livre/
livre/chap4.txt
livre/chap2.txt
livre/annexeA.txt
...

tar -xzf décompresse l’archive et en extrait tous les fichiers :


utilisateur$ tar -xzf livre.tgz

Si l’archive est compressée avec bzip2 et non avec gzip, utilisez l’option j à la place de z.
zip tar est le format de prédilection des archives sous Linux. Mais si vous désirez communi-
quer avec des utilisateurs de Windows, le format Zip est probablement plus judicieux. La
commande suivante compresse tous les fichiers HTML du répertoire dans le fichier
monarchive.zip :
utilisateur$ zip monarchive.zip *.html

Si vous souhaitez archiver un répertoire complet, utilisez l’option -r :


utilisateur$ zip -r monarchive.zip siteweb/

Vous pouvez afficher le contenu d’un fichier Zip avec zipinfo :


utilisateur$ zipinfo monarchive.zip
-rw-r--r-- 2.3 unx 24488 tx defN 27-Jun-08 18:38 rep/implem.tex
-rw-r--r-- 2.3 unx 1492 tx defN 27-Jun-08 18:38 rep/parallel.tex
-rw-r--r-- 2.3 unx 4258 tx defN 27-Jun-08 18:38 rep/benchs.tex
-rw-r--r-- 2.3 unx 30335 tx defN 27-Jun-08 18:38 rep/chap-sse2.tex
...

Pour décompresser l’archive, utilisez unzip :


utilisateur$ unzip monarchive.zip
Linux Livre Page 196 Mardi, 23. septembre 2008 1:05 13

196 LINUX

Sauvegardes (rsync)
Les disques durs ne vivent pas éternellement, les ordinateurs portables peuvent être volés et
un rm -rf malencontreux peut provoquer des dégâts importants. Il est donc impossible de
se passer de sauvegardes régulières de vos données.
Il existe un nombre virtuellement illimité de stratégies de sauvegarde. Je me limite donc à
présenter la commande rsync, qui permet de synchroniser des arborescences de répertoires,
par exemple pour enregistrer des données sur un disque externe.
rsync Au départ, rsync a été conçu pour synchroniser des répertoires sur un réseau. Nous nous
intéressons ici à la copie entre deux disques locaux.
La commande suivante copie tous les fichiers *.odt d’un répertoire vers un second réper-
toire. Contrairement à cp, les fichiers déjà présents (par exemple, depuis la sauvegarde pré-
cédente) et non modifiés ne sont pas recopiés. Pour une petite sauvegarde, cela ne change
pas grand-chose, mais lorsqu’il s’agit d’arborescences de plusieurs gigaoctets, la différence
se fait rapidement sentir.
utilisateur$ rsync rep1/*.odt rep2/

Pour synchroniser un répertoire complet, ainsi que ses sous-répertoires, utilisez l’option -a
qui est un raccourci pour une longue suite d’options (-rlptgoD). Elle traite récursivement
tous les sous-répertoires et tente de préserver au mieux les informations relatives aux
fichiers (propriétaire, groupe, date de la dernière modification, etc.). Si rep2 n’existe pas
encore, le répertoire est créé.
utilisateur$ rsync -a rep1/ rep2/

Par défaut, rsync copie tous les nouveaux fichiers et ceux modifiés, mais ne supprime rien.
Si vous souhaitez que les fichiers supprimés dans rep1 le soient aussi dans rep2, passez
l’option --delete. Attention, cette option est dangereuse : si vous effacez accidentellement
un répertoire, il le sera également sur le disque de sauvegarde à la prochaine sauvegarde.
Cependant, sur la durée, il est difficile d’éviter d’utiliser l’option --delete si on ne veut pas
conserver de fichiers inutiles pendant des années.
Si vous désirez avoir un retour sur les fichiers modifiés et sur la vitesse de transfert des données,
utilisez l’option -v.
Automatiser Plutôt que de saisir à chaque fois la commande rsync, il vaut mieux l’encapsuler dans un
les sauve-
gardes petit script shell. On évite ainsi les fautes de frappe.
Voici un exemple d’utilisation de ce script :
#!/bin/sh
mount /backup # monte le répertoire NFS de sauvegarde
rsync -av --delete /rep1/* /backup/machineX/rep1/
rsync -av --delete /rep2/* /backup/machineX/rep2/

Il suffit ensuite de le lancer par une tâche cron.

Voici ma stratégie personnelle de sauvegarde. Tous mes ordinateurs sont de temps en temps connectés à un
serveur central. Je synchronise une fois par semaine mes répertoires de données personnels avec le répertoire
correspondant sur le serveur grâce à rsync. Pour les fichiers importants sur lesquels je travaille, la sauvegarde
Linux Livre Page 197 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 197

est lancée tous les jours. Les fichiers à sauvegarder se trouvent donc sur deux disques durs indépendants l’un
de l’autre.
Une fois par mois, je synchronise toute la partition de données du serveur avec un disque dur USB. De
plus, je crée des CD ou des DVD de sauvegarde par projet (par exemple, les fichiers d’un livre ou les photos
numériques de l’année). Ces dix dernières années, j’ai déploré la perte de quelques disques durs suite à des
défauts matériels, mais jamais de perte de données conséquente.

Autres Il existe bien sûr d’autres solutions pour effectuer des sauvegardes :
solutions de
sauvegarde • Les commandes pour graver des CD et des DVD seront présentées à la section 13.5.
• La commande rdiff-backup est une alternative intéressante à rsync :
http://www.nongnu.org/rdiff-backup/.
• Il existe aussi diverses interfaces graphiques de sauvegarde, même si aucun standard de
fait ne s’impose actuellement. Voici deux exemples : sbackup (http://sbackup.source-
forge.net) et unison (http://www.cis.upenn.edu/~bcpierce/unison).
• En plus de ces programmes libres, il existe des solutions propriétaires comme Arkeia,
un système client/serveur pensé pour des réseaux complets.

13.5 Graver des CD et des DVD


Nous avons déjà parlé des interfaces graphiques de gravure de CD et de DVD aux Chapi-
tres 4 et 5. Cette section présente les commandes appelées en coulisses par ces programmes.
Cela peut être utile, par exemple, pour automatiser la création d’un CD de sauvegarde via
un script.
Noms des Avant de pouvoir utiliser les commandes décrites, vous devez connaître le nom de périphé-
périphériques
rique de votre lecteur. Si ce dernier se trouve sur le bus IDE et que vous utilisez une distri-
bution plutôt ancienne, le nom du périphérique sera probablement /dev/hda, /dev/hdb, ou
construit sur ce modèle. Sur les distributions plus récentes et pour les périphériques SATA,
SCSI, USB et Firewire, ce sera sans doute /dev/scd0, /dev/scd1, /dev/sr0 ou /dev/sr1.
Certaines commandes demandent le nom du périphérique sous la forme d’un triplet de
nombres (par exemple dev=3,0,0), qui se compose du numéro de bus SCSI (souvent 0), de
l’identifiant SCSI du périphérique et de l’unité logique (LUN, Logical Unit Number, le plus
souvent 0). Vous pouvez obtenir la combinaison correspondant à votre lecteur avec readcd
-scanbus.

Que vous graviez des CD ou des DVD, assurez-vous que votre distribution Linux ne monte pas le lecteur dans
l’arborescence de répertoires et n’y accède pas. Selon la distribution, différents mécanismes de montage auto-
matique des CD et des DVD interfèrent avec la gravure.
D’après mon expérience, l’utilisation de lecteurs externes (USB, Firewire) entraîne des problèmes plus fré-
quents que celle d’un lecteur interne. Cela est vrai pour Linux, mais aussi pour Windows. Si vous souhaitez
absolument utiliser un lecteur externe, réduisez la vitesse de gravure.
Linux Livre Page 198 Mardi, 23. septembre 2008 1:05 13

198 LINUX

Créer et tester des images ISO


Avant de créer un CD ou un DVD de données, vous avez besoin d’une image ISO. Ce fichier
contient les données à graver. On utilise généralement mkisofs ou genisoimage, qui a une
syntaxe compatible. Pour copier un support existant, on peut aussi utiliser dd.
mkisofs Les commandes mkisofs et genisoimage écrivent tous les fichiers d’un ou de plusieurs
répertoires dans un fichier ISO.
Le format ISO-9660 prévu pour les CD utilise un jeu de caractères très limité, qui autorise
peu de caractères non ASCII. Pour contourner cela, il existe plusieurs extensions du standard
ISO prises en charge par mkisofs et genisoimage :
• L’extension Rockridge, prévalente sous les systèmes Unix et Linux, permet d’enregistrer
des noms de fichiers plus longs sous la forme de chaînes de caractères arbitraires termi-
nées par le caractère 0. De plus, elle permet d’enregistrer des droits d’accès (UID, GID,
bits d’accès).
Cependant, un CD Rockridge ne contient pas d’information sur le jeu de caractères dans
lequel l’ISO a été créée. Cela peut s’avérer problématique si le support de données est
ensuite utilisé dans un ordinateur ayant un autre jeu de caractères.
Il est néanmoins possible d’indiquer le jeu de caractères souhaité grâce à l’option -out-
put-charset.
• L’extension Joliet, prévalente sous les systèmes Windows, permet d’enregistrer des
noms de fichiers plus longs, représentés sous la forme d’une chaîne de caractères
Unicode (UTF-16).
Il y a quelques années, mkisofs/genisoimage supposait que le système de fichiers local
était en Latin-1 et convertissait les noms de fichiers dans ce jeu de caractères. L’option
-input-charset permet de spécifier un autre jeu de caractères, mais elle ne prend pas en
charge les jeux de caractères Unicode.
Ce problème est géré dans les versions actuelles par le correctif non officiel iconv. Ce
dernier est absolument nécessaire si vous utilisez un jeu de caractères Unicode sous
Linux et que vous désirez graver un CD compatible avec Windows, sans quoi les carac-
tères spéciaux ne seront pas bien représentés.
Exemples La commande suivante écrit tous les fichiers du répertoire /master dans le fichier /tmp/mas-
ter.iso. Le répertoire master n’est pas un répertoire de l’image ISO. Celle-ci utilise l’exten-
sion Rockridge (-r) et Joliet (-J), et a pour nom Linux (option -V). Cette chaîne de caractères
est le nom du CD une fois gravé.
utilisateur$ mkisofs -o /tmp/master.iso -r -J -B Linux /master

Le deuxième exemple est comparable au premier, mais il permet de créer un CD amorçable :


utilisateur$ mkisofs -o /tmp/master.iso -r -J -/master \
-b images/boot.img-c boot.catalog

Ce troisième exemple montre comment faire pour que le répertoire master soit lui-même un
répertoire de l’ISO (option -graft-point) :
utilisateur$ mkisofs -o /tmp/master.iso -r -graft-points /master=/master
Linux Livre Page 199 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 199

Si vous n’utilisez pas l’option -r, assurez-vous que tous les fichiers du répertoire à graver appartiennent à
root et qu’ils sont lisibles par tous :
utilisateur$ chown -R root.root /master
utilisateur$ chmod -R a+r /master
dd Pour copier sans modification un CD ou un DVD de données (cela ne fonctionne pas
pour un CD audio), une seule commande dd suffit pour obtenir le fichier ISO correspon-
dant. /dev/cdrom représente le nom de périphérique de votre lecteur CD ou DVD, ce qui
dépend de votre distribution.
utilisateur$ dd if=/dev/cdrom of=/usr/local/iso.ing bs=2048

Tester une Le périphérique de bouclage (loopback device) du noyau Linux permet de considérer un
image ISO
fichier comme un système de fichiers et de le monter dans l’arborescence avec mount. Cette
fonctionnalité est gérée par le module de noyau loop qui est fourni par toutes les distribu-
tions courantes. La commande suivante monte le fichier master.iso dans le système de
fichiers en mode lecture seule :
root# mkdir /iso-test
root# mount -t iso9660 -o loop,ro /tmp/master.iso /isotest/

Graver des CD
cdrecord et cdrecord a longtemps été le programme de référence pour graver des CD. Développé par
wodim
Jörg Schilling, il faisait partie, jusqu’en 2006, de presque toutes les distributions. À l’été 2006,
Jörg Schilling a utilisé, pour certaines parties du paquetage, la licence CDDL, que de nom-
breux développeurs de Linux considèrent comme incompatible avec la GPL. La dernière
version de cdrecord, entièrement sous GPL, a donc été utilisée comme base d’une nouvelle
application, wodim, qui fait partie du projet cdrkit.
Actuellement, de nombreuses distributions fournissent wodim ; /usr/bin/cdrecord est souvent
un lien vers wodim.
Avant de graver un CD, vous avez besoin d’une image ISO, créée normalement avec mkisofs
ou genisoimage. Les deux commandes suivantes simulent d’abord la gravure (avec l’option
-dummy), puis l’effectuent :
root# cdrecord -dummy -v speed=16 dev=/dev/scd0 iso.img
root# cdrecord -v speed=16 dev=/dev/scd0 iso.img

Cet exemple permet de graver un CD audio. Les données sont sous la forme de fichiers wav,
qui sont traités dans l’ordre alphabétique. Si vous désirez utiliser un ordre différent, vous
devez indiquer explicitement la liste des fichiers.
root# cdrecord -v speed=16 dev=0,5,0 -pad -dao -audio *.wav

cdrdao La commande cdrdao est une alternative à cdrecord/wodim. Elle est moins polyvalente, mais
fournit plus d’options pour lire et écrire des CD audio.
Pour écrire un CD audio, cdrdao a besoin d’un fichier TOC. Ce dernier est une sorte de table
des matières du CD indiquant quelles données sont enregistrées dans quel format.
Linux Livre Page 200 Mardi, 23. septembre 2008 1:05 13

200 LINUX

En pratique, cdrdao est généralement utilisé pour copier des CD audio. La première com-
mande crée les fichiers data.bin et data.toc (contenu du CD et table des matières) et la
seconde écrit ces données sur un CD. Les périphériques doivent être indiqués par le biais
d’un triplet de chiffres, grâce à readcd -scanbus.
root# cd tmp/
root# cdrdao read-cd --device 0,0,0 data.toc
root# cdrdao write --device 0,0,0 --buffers 64 data.toc

Si votre machine a deux lecteurs et qu’elle est suffisamment rapide, vous pouvez aussi
copier le CD en une seule commande :
root# cdrdao copy --source-device 0,0,0 --device 0,1,0 --buffers 64

Vérifier des CD La commande suivante compare le contenu du CD-ROM et celui du répertoire master, à la
de données
fois fichier par fichier et octet par octet. Les différences sont résumées dans le fichier
diff.log du répertoire personnel. /media/cdrom représente le répertoire dans lequel est
monté le CD.
root# diff -qrd /master /media/cdrom >& ~/diff.log

Graver des DVD


Les outils les plus populaires pour graver des DVD sont ceux de dvd+rw-tools. Si ces der-
niers ne fonctionnent pas, vous pouvez essayer d’utiliser cdrecord ou wodim. Cette com-
mande permet de graver des DVD-R et des DVD+R ; la syntaxe ne diffère pas de celle
utilisée pour la gravure de CD. cdrecord/wodim présente cependant moins d’options pour
graver les DVD+RW et DVD-RW.
dvd+rw-tools Toutes les commandes présentées dans cette section font partie du paquetage dvd+rw-tools.
Initialement, celui-ci ne prenait en charge que les DVD+R et DVD+RW. Depuis, on peut
aussi graver des disques DVD-R, DVD-RW et Blue-Ray. dvd+rw-tools est fourni par
l’immense majorité des distributions actuelles.
growisofs La commande centrale du paquetage dvd+rw-tools est growisofs. Elle grave les disques
DVD+R, DVD+RW, DVD-R, DVD-RW et Blue-Ray.
Les DVD+R et DVD-R peuvent contenir des données exactement comme les CD multisessions.
Pour écrire la première session, on utilise growisofs -Z et pour les suivantes, growisofs -M. On
ne peut pas supprimer un fichier enregistré sur l’un de ces supports, ni formater ces disques.
Les DVD+RW et DVD-RW doivent être formatés avec dvd+rw-format avant la première utilisa-
tion. Vous pouvez ensuite, comme sur un DVD-R ou DVD+R, écrire les données en plusieurs
sessions. Pour écraser les données précédentes, il suffit de relancer un cycle de sessions grâce à
growisofs -Z. Il n’est pas nécessaire, à l’inverse des CD-RW, de reformater le disque.
La commande suivante enregistre le contenu du répertoire donnees sur un DVD. Les options
-r et -J indiquent les extensions Rockridge et Joliet, qui permettent d’utiliser des noms de
fichiers plus longs sur le DVD. Selon la distribution, vous pouvez avoir à changer le nom du
périphérique /dev/srn en /dev/scdn.
utilisateur$ growisofs -r -J -Z /dev/sr0 donnees/

Pour créer une deuxième session, utilisez l’option -M à la place de -Z :


utilisateur$ growisofs -r -J -M /dev/sr0 autresdonnees/
Linux Livre Page 201 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 201

Attention : il faut éjecter et remettre le DVD dans& le lecteur avant de créer une nouvelle session.
La lecture des DVD multisessions peut poser problème sur certains lecteurs. Pour les DVD-RW, il faut utiliser
le mode restricted overwrite (voir dvd+rw-format).
Certains lecteurs DVD ne gèrent pas les DVD+RW (qu’ils soient mono- ou multisessions). Les commandes sui-
vantes permettent parfois de contourner ce problème :
utilisateur$ dvd+rw-format -lead-out /dev/sr0
utilisateur$ dvd+rw-booktype -dvd-rom -media /dev/sr0
Si vous désirez écrire une image ISO déjà existante, utilisez la syntaxe -Z périphéri-
que=fichieriso :
utilisateur$ growisofs -Z /dev/sr0=donnees.iso

dvd+rw- Les DVD+RW et DVD-RW doivent être formatés avant la première utilisation, ce que permet
format
dvd+rw-format :
utilisateur$ dvd+rw-format /dev/sr0

Ce qui se passe en détail dépend du type de support. Pour les DVD+RW, seul le début du
disque est formaté. Par conséquent, si le formatage s’arrête à 11,5 % (ou avant 100 %), il ne
s’agit pas d’une erreur. Le formatage en deçà de cette zone est automatiquement effectué
par le lecteur lorsqu’il faut écrire sur cette zone du DVD.
Les DVD-RW sont par défaut formatés en mode restricted overwrite. Ce dernier permet de
réécrire sur une zone déjà écrite du disque. Il n’est donc pas nécessaire de reformater un
DVD-RW à chaque écriture.
Vous pouvez aussi formater un DVD-RW en mode incremental sequential avec l’option
-blank. Les DVD-RW sortant d’usine sont généralement déjà formatés ainsi. Ce mode est
particulièrement adapté aux DVD vidéo et améliore la compatibilité avec de nombreux lec-
teurs. Cependant, growisofs ne sait pas réécrire de données dans ce mode. Il faut donc
reformater le disque à chaque utilisation, ce qui prend beaucoup de temps.
En résumé, pour faciliter le travail à growisofs, il faut formater les DVD-RW avec dvd+rw-
format sans l’option -blank.

Le formatage ne supprime pas les données physiquement. Si, pour des raisons de respect de la vie privée,
vous désirez les effacer, lancez growisofs -Z device=/dev/zero . Le support sera alors réécrit avec des 0.

dvd+rw- Vous possédez un DVD, mais vous ne savez pas de quel type il s’agit, si le disque est déjà
mediainfo
écrit, dans quel mode et avec combien de sessions. Dans ce cas, vous pouvez lancer la
commande dvd+rw-mediainfo :
utilisateur$ dvd+rw-mediainfo /dev/sr0
INQUIRY: [_NEC ][DVD_RW ND-1300A ][1.07]
GET [CURRENT] CONFIGURATION:
Mounted Media: 1Ah, DVD+RW
GET PERFORMANCE:
Speed Descriptor#0: 00/221280 Reading@7.8x Writing@2.3x
Linux Livre Page 202 Mardi, 23. septembre 2008 1:05 13

202 LINUX

READ DVD STRUCTURE[#0h]:


Media Book Type: 92h, DVD+RW book [revision 2]
Media ID: RICOHJPN/W01
Legacy lead-out at: 221280*2KB=453181440
...

13.6 Droits d’accès, utilisateurs et groupes propriétaires


Linux est conçu comme un système multi-utilisateur : certains mécanismes définissent qui
peut accéder à quels fichiers, qui peut les modifier, etc.
Depuis le noyau 2.6, il dispose également d’une gestion avancée des droits grâce aux ACL
(Access Control Lists, listes de contrôle d’accès). Les ACL seront traités plus en détail à la
section 13.8.
Données Chaque fichier ou répertoire est enregistré avec les informations suivantes :
d’accès par
fichier • le propriétaire du fichier ;
• le groupe associé au fichier ;
• les bits d’accès (rwxrwxrwx pour lecture/écriture/exécution par le propriétaire, les membres
du groupe et le reste du monde) ;
• quelques bits supplémentaires pour certaines fonctions spéciales.
Le propriétaire du fichier est en général la personne qui a créé le groupe. Le groupe associé
au fichier est alors normalement le groupe principal du propriétaire.
Les informations d’accès r, w et x définissent qui peut lire, modifier et exécuter le fichier.
Elles sont séparées en trois groupes pour le propriétaire, les membres du groupe et les
autres utilisateurs du système. Cela permet de donner plus de droits au propriétaire du
fichier qu’à d’autres utilisateurs. Ces informations s’appellent bits d’accès, car elles sont
enregistrées en interne grâce à un codage en bits. Ce n’est pas la notation rwxrwxrwx qui est
utilisée en interne, mais 9 bits d’accès, ainsi que 3 bits spéciaux, souvent représentés également
sous forme octale.
On peut connaître les bits d’accès, le propriétaire et le groupe d’un fichier grâce à la commande
ls -l. Pour un fichier texte standard, ls renvoie le résultat suivant :
michael$ ls -l lisezmoi.txt
-rw-r--r-- 1 michael users 7484 2008-02-19 12:45 lisezmoi.txt

En voici une brève explication. Le premier caractère indique le type de fichier : - pour un
fichier régulier, d pour un répertoire, l pour un lien symbolique, etc. Ce fichier peut être lu
et modifié par son propriétaire, michael. Comme il s’agit d’un fichier texte, le premier bit x
est désactivé : le fichier ne peut pas être exécuté. Tous les autres utilisateurs, qu’ils soient
membres du groupe users ou non, peuvent le lire (mais pas le modifier).
Si Michael souhaite que seuls les membres du groupe users puissent lire le fichier, il doit
désactiver le dernier bit r :
michael$ chmod o-r lisezmoi.txt
michael$ ls -l lisezmoi.txt
-rw-r----- 1 michael users 7484 2008-02-19 12:45 lisezmoi.txt
Linux Livre Page 203 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 203

Supposons à présent que l’accès au fichier soit restreint à deux utilisateurs, michael et kate.
Il faut pour cela créer un nouveau groupe auquel seuls Michael et Kate appartiennent, par
exemple doc. L’appartenance du fichier au groupe doit ensuite être modifiée grâce à chgrp :
michael$ chgrp doc lisezmoi.txt
michael$ ls -l lisezmoi.txt
-rw-r----- 1 michael doc 7484 2008-02-19 12:45 lisezmoi.txt
Droits d’accès Les 9 bits d’accès sont également valides pour les répertoires, mais leur signification est dif-
sur des
répertoires férente. Le bit r permet aux utilisateurs de voir le contenu d’un répertoire avec ls. Le bit x
leur permet d’aller dans ce répertoire. Lorsque x et w sont actifs, de nouveaux fichiers peuvent
être créés dans le répertoire.
Droits d’accès Sous Linux, on accède à divers composants matériels (lecteur de disquette, imprimante,
sur des
périphériques modem, interface série, lecteur de bandes, etc.) via les périphériques.
Pour définir, de manière ciblée, quel utilisateur a le droit d’accéder à quels périphériques,
ceux-ci sont répartis en divers groupes d’utilisateurs. Par exemple, les périphériques /dev/
ttyS* pour les ports série appartiennent souvent au groupe uucp ou dialout :
utilisateur$ ls -l /dev/sda
crw-rw---- 1 root dialout 4, 65 2008-06-17 22:14 /dev/ttyS1

Si l’administrateur désire que l’utilisateur hubert puisse accéder directement à un modem


via l’interface série, il peut ajouter hubert au groupe dialout avec la commande usermod -G.
Dans certaines distributions, lorsqu’un utilisateur se connecte, les droits d’accès des péri-
phériques les plus courants sont configurés de sorte que l’utilisateur actuel ait un accès illi-
mité aux périphériques correspondants. Par conséquent, les droits d’accès sont souvent
modifiés. Fedora utilise pour cela PAM ; SUSE met en œuvre le démon resmgrd.

Bits spéciaux
Le sens des trois fois 3 bits rwxrwxrwx est simple à comprendre. En plus de ces bits, certaines
informations supplémentaires peuvent être enregistrées. La connaissance de ces bits spéciaux
n’est généralement nécessaire qu’aux administrateurs système.
Bit setuid Le bit setuid, ou bit suid, fait en sorte qu’un programme soit toujours lancé comme s’il était
démarré par son propriétaire. Ce dernier est souvent root ; ainsi, le programme peut être
lancé comme s’il l’était par root.
Ce bit est utilisé pour donner aux utilisateurs sans privilège des droits qui ne s’appliquent
qu’à l’exécution d’un programme donné. Cela peut néanmoins facilement représenter un risque
de sécurité, en particulier lorsque le programme exécuté démarre d’autres programmes.
C’est pourquoi il vaut mieux éviter autant que possible l’utilisation des bits setuid. La com-
mande mount peut constituer l’une des rares exceptions à cette règle :
utilisateur$ ls -l /bin/mount
-rwsr-xr-x 1 root root 81368 2008-04-29 13:57 /bin/mount

ls -l affiche, à la place du bit x, la lettre s. La valeur octale du bit setuid est 4000.
Linux Livre Page 204 Mardi, 23. septembre 2008 1:05 13

204 LINUX

Bit setgid Le bit setgid a un comportement comparable au bit setuid, à ceci près qu’il s’applique aux
groupes et non au propriétaire de l’exécutable. ls -l affiche pour le programme correspon-
dant la lettre s à la place de la lettre x dans les bits d’accès du groupe. La valeur octale du bit
est 2000.
Pour les répertoires, le bit setgid fait en sorte que les fichiers créés dans le répertoire appar-
tiennent au groupe du répertoire (et non, comme souvent, au groupe de l’utilisateur qui crée
le fichier).
Sticky bit Le sticky bit s’applique aux répertoires. Il fait en sorte que chaque utilisateur pouvant modi-
fier les fichiers du répertoire ne puisse supprimer que ses propres fichiers (et non ceux des
autres utilisateurs). Ce bit est par exemple activé sur le répertoire /tmp. Tous les utilisateurs
peuvent créer des fichiers temporaires. Il faut, en revanche, éviter que les utilisateurs puissent
renommer ou supprimer des fichiers qui ne leur appartiennent pas.
ls -l affiche pour le répertoire correspondant la lettre t à la place de la lettre x dans les bits
d’accès de l’utilisateur. La valeur octale du bit est 1000. Attention : la signification du sticky
bit est spécifique à Linux ; d’autres variantes d’Unix peuvent lui associer un sens différent.
utilisateur$ ls -ld /tmp/
drwxrwxrwt 20 root root 8192 2008-06-30 11:59 /tmp/
Bits spéciaux Lorsque vous lancez la commande ls -l, il arrive que les bits spéciaux s’affichent sous la
dans ls
forme S ou T. Il ne s’agit pas de bits spéciaux supplémentaires, mais d’une indication : les bits
setuid, setgid ou sticky ont été mal utilisés. S signifie que le bit setuid ou setgid est positionné,
mais que le bit x ne l’est pas (setuid et setgid n’ont alors pas de sens). T signifie que le sticky bit
est positionné, mais que le répertoire n’a pas le bit d’accès x pour le groupe "autres".

Changer les droits d’accès d’un fichier ou d’un répertoire


chmod La commande chmod permet de changer les droits d’accès d’un fichier ou d’un répertoire. Sa
syntaxe est de la forme chmod ensemble+droits fichier ou chmod ensemble-droits
fichier. ensemble représente les utilisateurs concernés : u pour l’utilisateur propriétaire du
fichier, g pour le groupe propriétaire du fichier, o pour les autres utilisateurs du système et a
pour tous les utilisateurs sans distinction. droits représente les droits concernés : r pour la
lecture (read), w pour l’écriture (write) et x pour l’exécution (execute).
Ainsi, pour permettre à tous les utilisateurs de lire un fichier, on utilisera :
utilisateur$ chmod a+r fichier

Pour restreindre la modification d’un fichier à son propriétaire, la syntaxe utilisée sera :
utilisateur$ chmod og-w fichier

chmod permet également d’activer les bits setuid (u+s), setgid (g+s) et sticky (+t).
L’option -R offre la possibilité d’effectuer un chmod récursif (en parcourant des répertoires).
Valeurs octales À la place des lettres, on peut aussi indiquer trois ou quatre octets sous forme de chiffres. À
chaque bit u, g et o est associé un chiffre. Chaque chiffre est l’addition de valeurs : 4, 2 et 1
pour r, w et x. Ainsi, 660 correspond à rw-rw---- et 777 à rwxrwxrwx. Les bits setuid, setgid et
sticky ont respectivement pour valeurs 4000, 2000 et 1000 − par exemple, chmod 1777 corres-
pond à tous les accès sur un répertoire pour tout le monde, mais avec le sticky bit.
Linux Livre Page 205 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 205

13.7 Propriétaire, groupe et bits d’accès de nouveaux


fichiers
Cette section concerne les facteurs qui définissent les informations d’accès des nouveaux
fichiers. Pour tester cela facilement, utilisez la commande touch. Elle crée un nouveau
fichier vide si le fichier en paramètre n’existe pas.
Exemple L’utilisateur michael crée le nouveau fichier monFichier1. Il n’est pas surprenant que ce
fichier appartienne à l’utilisateur michael. users est utilisé automatiquement pour le groupe
(users est le groupe principal de michael).
michael$ touch monFichier1
michael$ ls -l monFichier1
-rw-r--r-- 1 michael michael 0 2008-06-30 14:47 monFichier1

michael appartient à de nombreux autres groupes (ce que l’on peut voir avec la commande
groups). Pour créer un fichier sans qu’il appartienne au groupe primaire, il faut changer
de groupe actif grâce à la commande newgrp :
michael$ groups
users adm dialout cdrom floppy audio dip video plugdev lpadmin scanner
michael$ newgroup audio
michael$ touch monFichier2
michael$ ls -l monFichier2
-rw-r--r-- 1 michael audio 0 2008-06-30 14:49 monFichier2

Bits d’accès La gestion des bits d’accès est un peu plus compliquée. Par défaut, les nouveaux fichiers
reçoivent les bits d’accès rw-rw-rw (soit, en octal, 666) et sont lisibles et modifiables par tout
le monde. Les nouveaux fichiers exécutables (créés par un compilateur) reçoivent les bits
rwxrwxrwx (soit, en octal, 777) et sont donc de plus exécutables par tout le monde.
Ces paramètres de base sont cependant généralement trop libéraux pour la plupart des uti-
lisateurs. C’est pourquoi tous les interpréteurs de commandes proposent un umask. Il s’agit
d’une valeur numérique qui indique les bits qui doivent être retirés des bits d’accès par
défaut.
Le plus souvent, le masque 022 (----w--w-) est utilisé. Les nouveaux fichiers reçoivent donc
les bits d’accès 666-022 = 644 (rw-r--r--), et les nouveaux programmes le masque 777-022 =
755 (rwxr-wr-x). Vous pouvez connaître la valeur courante du masque grâce à la commande
umask (qui permet également de modifier le masque) :
michael$ umask
0022

Le paramétrage par défaut du masque se trouve dans le fichier de configuration des inter-
préteurs de commandes. Pour Bash, il s’agit généralement du fichier /etc/profile ou /etc/
bashrc. Les valeurs qui y sont définies peuvent être redéfinies dans le fichier ~/.bashrc de
chaque utilisateur.
Linux Livre Page 206 Mardi, 23. septembre 2008 1:05 13

206 LINUX

13.8 Listes de contrôle d’accès et attributs étendus


ACL (listes Le concept d’utilisateurs et de groupes sous Unix est testé et approuvé depuis des dizaines
de contrôle
d’accès) d’années. Il est très simple, mais dans certains cas, ce système n’est pas suffisant.
C’est pourquoi un nouveau système de gestion de droits, plus fin, a été développé, basé sur
les ACL (Access Control Lists, listes de contrôle d’accès). Les ACL permettent, pour tout
fichier et répertoire, de définir qui peut y accéder en lecture et en écriture et qui ne le peut
pas, ce que les droits d’accès Unix standard ne permettent pas. Elles étendent les droits
d’accès et peuvent offrir de nouveaux droits ou défaire certains droits existants.
Les ACL sont fournies de manière standard par Linux depuis le noyau 2.6. Elles existaient
auparavant sous la forme de correctifs. Pour certains systèmes de fichiers, comme jfs et xfs,
les ACL sont toujours actives. Pour les systèmes de fichiers ext2, ext3 et reiserfs, il faut monter
la partition avec l’option acl pour les activer. Ce n’est pas le cas pour la plupart des distri-
butions actuelles.

Ce n’est pas parce que les ACL fournissent davantage de possibilités qu’il faut se débarrasser de la ges-
tion de droits conventionnelle ! Pour les administrateurs avancés de réseaux étendus, elles améliorent
la sécurité ou, au minimum, facilitent la gestion. Mais pour la plupart des utilisateurs de Linux, la ges-
tion habituelle des droits suffit amplement. Une utilisation incorrecte des ACL peut entraîner des failles
de sécurité. C’est pourquoi elles sont rarement proposées par défaut dans les distributions.
De plus, de nombreuses commandes et programmes ne les gèrent pas correctement. Un fichier copié peut
alors soudain perdre les informations ACL de l’original. Par ailleurs, la plupart des gestionnaires de fichiers
ne savent ni lire, ni modifier les ACL (Konqueror est une exception).
Samba est de loin le programme le plus important profitant réellement des ACL. Grâce aux ACL, les droits
d’accès Windows peuvent être reproduits sous Linux.

Attributs Les attributs étendus (EA, Extended Attributes) sont étroitement liés aux ACL. Ils permettent
étendus
d’enregistrer, pour chaque fichier, des paires attribut/valeur. Vous pouvez, par exemple,
associer à un fichier texte l’attribut charset et la valeur utf8 pour enregistrer le jeu de carac-
tères utilisé par ce fichier. Cela ne présente un avantage que lorsqu’il existe des programmes
capables d’exploiter ces informations. Les attributs étendus doivent être activés lors du
montage des systèmes de fichiers ext2/3 avec l’option user_xattr. Les attributs étendus
sont, par exemple, utilisés par le programme de recherche Beagle.
Vous trouverez plus de détails sur les ACL et les attributs étendus dans les pages de manuel
acl, getfacl, setfacl, attr(5), getfattr et setattr. Les adresses suivantes peuvent également
être des sources d’informations intéressantes :
http://www.unixgarden.com/index.php/administration-systeme/initiation-aux-listes-de-
controle-d’acces-acl-et-aux-attributs-etendus-ea-sous-linux ; http://www.suse.de/~agruen/
(en anglais) ; http://acl.bestbits.at/ (en anglais).
Prérequis Dans l’exemple suivant, on suppose que le paquetage attr et les commandes attr, get-
fattr et setfattr sont installés et que vous travaillez dans un système où les ACL et les
Linux Livre Page 207 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 207

EA sont activés. Dans le cas d’un système de fichiers ext3, le résultat de mount doit res-
sembler à ceci :
utilisateur$ mount
...
/dev/hdc5 on /test type ext3 (rw,acl,user_xattr)
...

Si ce n’est pas le cas, les exemples suivants rencontreront une erreur du type "Opération non
supportée". Il faut alors modifier les options de mount dans /etc/fstab et remonter le sys-
tème de fichiers. Le Chapitre 23 sur l’administration des systèmes de fichiers traite de cette
problématique.

Listes de contrôle d’accès


getfacl Sur un système de fichiers avec des ACL, les droits d’accès standard sont également valides.
Ils sont souvent décrits comme des ACL minimales. getfacl affiche ces droits sous la forme
d’ACL :
michael$ touch fichier1
michael$ getfacl fichier1
# file: fichier1
# owner: michael
# group: users
user::rw-
group::r--
other::r--
michael$ ls -l fichier1
-rw-r--r-- 1 michael users 0 2008-06-30 17:03 fichier1

setfacl setfacl permet uniquement de définir des droits d’accès supplémentaires. Les commandes
suivantes donnent à l’utilisateur isa et au groupe doc des droits en lecture et en modification
sur le fichier, et suppriment tout accès à l’utilisateur pierre :
michael$ setfacl -m isa:rw fichier1
michael$ setfacl -m g:doc:rw fichier1
michael$ setfacl -m pierre:- fichier1

La liste de droits affichée par getfacl est maintenant plus longue. ls affiche les droits
d’accès du masque ACL dans la partie du groupe. Les lettres des bits d’accès sont suivies du
caractère + qui indique qu’il existe des règles ACL.
michael$ getfacl fichier1
# file: fichier1
# owner: michael
# group: users
user::rw-
user:isa:rw-
Linux Livre Page 208 Mardi, 23. septembre 2008 1:05 13

208 LINUX

user:pierre:---
group::r--
group:doc:rw-
mask::rw-
other::r--
michael$ ls -l fichier1
-rw-rw-r--+ 1 michael users 0 2008-06-30 17:03 fichier1

Les ACL sont typiquement utilisées lorsque vous désirez donner des droits à un utilisateur
sur vos fichiers, sans pour autant les rendre accessibles à d’autres (par exemple un groupe).
Normalement, vous devez pour cela demander à un administrateur de créer un nouveau
groupe pour vous-même et l’autre utilisateur. Les ACL permettent de se passer de cette
étape.
Masques ACL Les masques ACL limitent les droits qui peuvent être donnés par des règles ACL. Par exem-
ple, si vous définissez le masque ACL à r, aucune règle ACL ne peut définir de droits en écri-
ture ou en exécution à un utilisateur. Le masque ACL a donc priorité sur les règles ACL. Il
n’a cependant aucune incidence sur les droits d’accès traditionnels de l’utilisateur et du
groupe sur le fichier.
Chaque modification d’une règle ACL entraîne la mise à jour du masque de manière que
toutes les règles ACL existantes soient comprises dans le masque. Celui-ci s’affiche dans
getfacl et ls -l.
Vous pouvez définir explicitement un masque grâce à la syntaxe setfacl -m m:rwx, afin de
limiter les droits des ACL. Mais attention, ce masque n’est valable que jusqu’à la prochaine
définition d’ACL, qui renouvelle le masque.
ACL standard Pour les répertoires, vous pouvez définir un deuxième jeu de règles : l’ACL standard. Celle-
ci ne s’applique pas aux accès du répertoire ; elle définit le motif d’ACL pour les nouveaux
fichiers.

Attributs étendus
setfattr et Les exemples suivants montrent comment enregistrer des attributs avec setfattr et les lire
getfattr
avec getfattr. Le nombre d’attributs par fichier dans un système de fichiers ext2 est limité.
michael$ touch fichier2
michael$ setfattr -n user.language -v fr fichier2
michael$ setfattr --name=user.charset --value=utf8 fichier2
michael$ getfattr -d fichier2
# file: fichier2
user.charset="utf8"
user.language="fr"

getfattr n’affiche normalement que les attributs dont le nom commence par user. Si vous
désirez voir d’autres attributs, vous devez indiquer leur nom avec l’option -n ou un motif
avec l’option -m.
utilisateur$ getfattr -n security.selinux -d fichier2
# file: fichier2
security.selinux="user_u:object_r:user_home_t:s0^000"
Linux Livre Page 209 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 209

13.9 Structure des répertoires sous Linux


Un système Unix classique se compose de milliers de fichiers. Certaines règles concernant
l’emplacement des fichiers se sont établies au fil du temps. Cette section donne un premier
aperçu de la structure des répertoires sous Linux.
Le système de données commence par le répertoire racine. En général, il ne contient pas de
fichiers, mais les répertoires suivants :
• /bin contient les commandes élémentaires de Linux que tous les utilisateurs peuvent
lancer. Vous trouverez d’autres programmes dans /usr/bin.
• /boot contient les fichiers nécessaires à l’amorçage du système (généralement via GRUB
ou LILO). La plupart des distributions y placent également le noyau.
• /dev contient tous les fichiers de périphériques. Ces derniers permettent d’accéder à
presque tous les composants matériels (par exemple, l’interface série ou une partition
du disque dur).
• /etc contient les fichiers de configuration du système. Ils gèrent le démarrage du sys-
tème, la disposition du clavier, les configurations de base pour divers composants et
programmes (par exemple la configuration réseau). /etc contient quelques sous-réper-
toires pour regrouper certains fichiers de configuration, par exemple /etc/X11 pour les
fichiers relatifs à X.
• /home contient le répertoire personnel de chaque utilisateur du système. Il s’agit d’un
répertoire particulier dans lequel l’utilisateur se trouve automatiquement après s’être
connecté. Ce dernier a un accès illimité aux fichiers qui s’y trouvent.
• /lib[64] contient les bibliothèques partagées ou des liens symboliques vers ces biblio-
thèques. Ces fichiers sont utilisés pour exécuter des programmes. /lib/modules contient
les modules du noyau qui peuvent être activés ou désactivés pendant l’exécution du
système. Vous trouverez des bibliothèques supplémentaires dans /usr/lib[64]. Le
répertoire /lib/firmware contient le microcode (firmware) de certains composants
matériels (par exemple, une carte Wi-Fi).
• /lost+found est normalement vide. S’il contient des fichiers, il s’agit de fragments de
fichiers qui n’ont pas pu être remis en ordre lors de la tentative de réparation du sys-
tème de fichiers (fsck).
• /mnt et /media contiennent des sous-répertoires, comme cdrom ou floppy, dans lesquels
on peut monter des systèmes de fichiers externes.
• /opt est prévu pour les paquetages additionnels. Certaines distributions (par exemple
SUSE) utilisent les répertoires /opt/gnome ou /opt/kde pour enregistrer les paquetages
et bibliothèques spécifiques à Gnome ou KDE.
• /proc contient les sous-répertoires qui correspondent à tous les processus courants. Il ne
s’agit pas de vrais fichiers.
• /root contient les données de l’utilisateur root. Elles ne se trouvent usuellement pas
dans /home. /home est souvent une partition séparée et, en cas de problème sur cette par-
tition, root peut ainsi travailler dans son répertoire, même lorsque /home n’est pas montée.
Linux Livre Page 210 Mardi, 23. septembre 2008 1:05 13

210 LINUX

• /sbin contient les commandes d’administration système. En général, les programmes


ne pouvant être lancés que par root y sont enregistrés.
• /share contient parfois des fichiers indépendants de l’architecture. /usr/share est un
endroit plus usuel pour cela.
• /srv contient, dans certaines distributions, les données pour les processus serveurs : par
exemple /srv/www pour les documents servis par Apache, /srv/ftp pour les fichiers
FTP, etc.
• /sys contient le système de fichiers sysfs du noyau 2.6. Tout comme /proc, il contient
des données sur l’état de l’ordinateur.
• /tmp contient des fichiers temporaires. Ces derniers peuvent aussi se trouver dans le
répertoire /var/tmp.
• /usr contient toutes les applications, le système X, le code source de Linux, etc. Idéale-
ment, on ne devrait y trouver que des fichiers statiques (non modifiables). Ainsi, on
pourrait monter le répertoire /usr dans sa propre partition en lecture seule. Cela aurait
l’avantage d’une plus grande sécurité, mais l’inconvénient d’une maintenance très pénible ;
c’est en pratique rarement le cas.
• /var contient les fichiers variables. Les sous-répertoires importants sont adm (fichiers
d’administration dépendant de la distribution), lock (fichiers de verrous pour l’accès
aux périphériques), log (fichiers de journalisation), mail (fichiers du courrier électroni-
que, pouvant également se trouver dans spool/mail) et spool (fichiers tampon, comme
les fichiers à imprimer, les messages, etc.).
Le principe de la structure des répertoires se situant directement sous la racine est relative-
ment simple à comprendre. Les problèmes apparaissent avec la division de /usr et de /var
en d’innombrables sous-répertoires. En principe, de nombreux répertoires sont nommés
comme au niveau de la racine, par exemple bin pour les programmes exécutables.
Mais il existe plusieurs groupes de programmes exécutables : les commandes texte, les pro-
grammes X, etc. Par conséquent, il existe plusieurs possibilités pour ranger ces programmes.
Pour des raisons historiques, plusieurs chemins sont généralement maintenus par le biais
de liens. Ainsi, /usr/bin/X11 correspond aux mêmes programmes que /usr/X11R6/bin.

Le répertoire /usr
/usr/bin programmes exécutables
/usr/games jeux et parfois un lien vers /usr/share/games
/usr/include fichiers "include" de C
/usr/lib[64] bibliothèques, parmi lesquelles de nombreux sous-répertoires pour le compilateur C,
divers langages de programmation et de gros paquetages comme emacs ou LaTeX
/usr/local applications et données qui ne font pas partie de la distribution
/usr/sbin programmes exécutables par root
/usr/share fichiers indépendants de l’architecture et documentation
/usr/src code source de Linux, voire d’autres programmes
/usr/tmp lien vers /var/tmp (fichiers temporaires)
Linux Livre Page 211 Mardi, 23. septembre 2008 1:05 13

GESTION DES FICHIERS 211

13.10 Fichiers de périphériques


Le système de fichiers de Linux ne contient pas seulement des fichiers et des répertoires,
mais aussi des périphériques. Il s’agit de fichiers spéciaux, dans lesquels on ne peut pas
enregistrer de données mais qui, pour la plupart, fournissent un lien vers le noyau.
Numéros de Les périphériques permettent d’accéder à de nombreux composants matériels de l’ordina-
périphériques
majeur et teur : disque dur, lecteur de disquette, ports série et parallèle, mémoire, etc. Ils sont définis
mineur par trois informations : les numéros de périphériques majeur et mineur (Major Device Number
et Minor Device Number) et le type d’accès (par bloc ou par caractère).
Le numéro majeur indique le pilote du noyau Linux qui gère le périphérique. Il existe de
nombreux pilotes, listés dans /usr/src/linux/Documentation/devices.txt. Le numéro
mineur permet de distinguer plusieurs périphériques distincts qui partagent le même
pilote, par exemple deux partitions d’un même disque. Le type d’accès indique si le péri-
phérique a un tampon (ce qui est le cas pour tous les périphériques en mode bloc, tels que
les disques durs), ou pas (par exemple, l’interface série ou parallèle).
Si vous explorez le contenu du répertoire /dev avec ls -l, vous verrez, à la place de la taille
du fichier, les numéros de périphériques (majeur et mineur). Le premier caractère des droits
d’accès est b ou c, pour les périphériques bloc ou caractère.
utilisateur$ ls -l /dev/sda?
brw-rw---- 1 root disk 8, 1 2008-06-17 22:15 /dev/sda1
brw-rw---- 1 root disk 8, 3 2008-06-17 22:14 /dev/sda3
...
Fonctionne- En interne, le répertoire /dev ne contient que des inodes, qui sont les plus petites unités
ment interne
gérées par un système de fichiers, mais pas de réels fichiers. On peut créer de nouveaux
fichiers de périphériques avec la commande mknod. Cela est cependant rarement nécessaire,
car la gestion du matériel de Linux s’en occupe en théorie automatiquement.
Pour des raisons de sécurité, seul root et les membres d’un groupe donné peuvent accéder
à certains périphériques. Pour que d’autres utilisateurs puissent y accéder, vous pouvez les
ajouter au groupe auquel appartient le périphérique.
Certains fichiers de périphériques ont une fonction particulière. /dev/null est un "trou
noir" : les données qui sont envoyées disparaissent pour toujours − il est, par exemple, uti-
lisé pour les sorties de commandes qui ne doivent pas s’afficher. /dev/zero est une source
sans fin d’octets 0, par exemple utilisé pour remplir un fichier d’une taille donnée de zéros.
Système udev Autrefois, les distributions créaient un grand nombre de fichiers de périphériques − Red Hat 9
en créait, par exemple, presque 8000. Mais chaque ordinateur n’en utilisait au mieux que
quelques centaines.
Pour corriger cela, le système de fichiers devfs du noyau 2.4 devait créer les fichiers de péri-
phériques dynamiquement à la demande. Il n’a cependant jamais eu le succès escompté et a
été depuis supprimé du noyau.
Le système udev a pris la suite de devfs dans le noyau 2.6. Les fichiers de périphériques sont
également créés dynamiquement dès que le noyau reconnaît des composants matériels. On
peut voir que le système udev est actif lorsque le processus udevd existe. Ce dernier est
Linux Livre Page 212 Mardi, 23. septembre 2008 1:05 13

212 LINUX

démarré au début du processus de démarrage InitV. Sa configuration se trouve dans le


répertoire /etc/udev.
Vous trouverez une description complète des périphériques définis sous Linux, ainsi que
des numéros associés dans le fichier /usr/src/linux/Documentation/devices.txt (le code
source du noyau doit être installé).
Linux Livre Page 213 Mardi, 23. septembre 2008 1:05 13

Gestion des processus


14
Ce chapitre décrit comment Linux gère les processus. Vous y apprendrez notamment :
• comment démarrer et arrêter des processus (éventuellement en urgence) ;
• comment démarrer un programme en tant qu’utilisateur normal comme si vous étiez root ;
• ce que sont les démons ;
• comment démarrer automatiquement des programmes à une heure donnée.

14.1 Démarrer, gérer et arrêter des processus


Programmes, Dans ce chapitre, nous parlerons de processus, mais vous pouvez remplacer ce mot par
commandes,
processus et "programme", "commande" ou "tâche" − sous Linux, il n’y a pas de différence entre un pro-
tâches gramme et une commande. En général, les programmes texte comme ls sont décrits comme
des commandes.
Rigoureusement, un programme ou une commande est un fichier exécutable. Il se différencie
des autres fichiers par le fait que son bit x est activé (voir section 13.6).
Dans l’exemple suivant, serveur.txt est un fichier de données, et sauvegarde un pro-
gramme (et même un script shell). Il s’agit dans les deux cas de fichiers texte, mais seul sauve-
garde est exécutable, car ses bits d’accès x sont positionnés :
utilisateur$ ls -l s*
-rw-r--r-- 1 michael users 180383 2008-06-26 10:20 serveur.txt
-rwxr-xr-x 1 michael users 222 2008-06-27 10:58 sauvegarde

Ce n’est que lors du démarrage d’un fichier de programme qu’un processus (ou une tâche) est
créé par le noyau Linux. Le titre de cette section devrait donc être "Démarrer des programmes
et des commandes, gérer et arrêter des processus".
Fichiers *.exe Une question surgit de temps à autre : où sont les fichiers *.exe sous Linux ? La réponse est :
il n’y en a pas. Les programmes exécutables sont identifiés par l’existence de leur bit d’accès
x. L’extension *.exe comme sous Windows serait donc redondante.
Cette réponse n’est plus tout à fait vraie, car il existe maintenant quelques fichiers *.exe iso-
lés sur de nombreux systèmes Linux. Il s’agit de programmes développés dans le langage
C# et exécutés par les bibliothèques Mono, qui sont une implémentation libre du framework
.NET de Microsoft.

Démarrer des programmes


Démarrer des Pour démarrer des programmes sous X, on utilise généralement le menu ou des icônes. KDE
programmes
sous X et Gnome permettent également de saisir le nom du programme dans une boîte de dialogue
avec le raccourci Alt+F2.
Linux Livre Page 214 Mardi, 23. septembre 2008 1:05 13

214 LINUX

Console texte, Vous pouvez aussi démarrer un programme dans une fenêtre d’interpréteur de commandes
fenêtre de
shell (par exemple xterm ou konsole) ou une console texte. Saisissez le nom du programme et
appuyez sur Entrée. Les utilisateurs avancés de Linux utilisent souvent cette méthode, car
taper quelques lettres est souvent plus rapide que de chercher le programme dans le menu.
Il suffit normalement de taper le nom du programme. L’interpréteur de commandes effectue
alors une recherche dans tous les répertoires listés dans la variable d’environnement PATH.
Voici un exemple de cette variable :
utilisateur$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

Lorsque vous désirez lancer un programme qui ne se trouve pas dans l’un de ces répertoi-
res, vous devez indiquer le chemin complet du fichier. C’est également valable pour les pro-
grammes du répertoire courant, pour lesquels il faut préfixer le chemin d’un point (par
exemple ./monprogramme).

Processus en avant-plan et en arrière-fond


Lorsque vous démarrez des programmes via le menu sous X, ils se lancent en tâche de fond
sans se gêner les uns les autres. Vous pouvez aussi en démarrer de nouveaux sans attendre
la fin d’un programme lancé précédemment.
Le comportement est différent lorsque vous lancez un programme dans une fenêtre de ter-
minal ou une console texte. Ce dernier est démarré en tant que processus d’avant-plan.
Avant de pouvoir saisir la commande suivante, vous devez attendre la fin de ce programme.
Mais vous pouvez aussi lancer des programmes en tâche de fond en ajoutant à la fin de la
commande le caractère & :
utilisateur$ xemacs &

Si vous avez oublié le &, vous pouvez passer le programme en tâche de fond rétrospectivement.
Pour cela, interrompez le programme avec Ctrl+Z et réactivez-le avec bg :
user$ xemacs
Ctrl+Z
[1]+ Stopped xemacs
utilisateur$ bg
[1]+ xemacs &

Si vous tapez fg à la place de bg, le processus est rétabli en tâche d’avant-plan.


Certaines commandes perturbent l’exécution en tâche de fond par divers messages. Vous
pouvez cependant les éliminer facilement en les redirigeant vers /dev/null. Par exemple,
cette commande formate une disquette sur le lecteur A: en tâche de fond :
root# fdformat /dev/fd0 > /dev/null &

Liste de tous les processus courants (ps, top)


ps La commande ps permet d’afficher une liste des processus courants. Sans option, elle n’affi-
che que ceux qui vous appartiennent et qui ont été lancés dans le terminal dans lequel vous
exécutez cette commande. Il existe de nombreuses options que vous pouvez voir dans man ps.
Linux Livre Page 215 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 215

L’exemple suivant affiche la liste de tous les processus, très réduite pour des questions de
place :
utilisateur$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:07 /sbin/init
2 ? S< 0:00 [kthreadd]
3 ? S< 0:14 [migration/0]
4 ? S< 8:14 [ksoftirqd/0]
...
31097 pts/7 S+ 0:20 gqview
31389 ? S< 0:00 [kjournald]
32405 ? S 0:01 xterm -font -*-fixed-medium-r-*-*-18-*-*-*-*-*-*-*
32406 pts/4 Ss 0:00 bash
top top est une commande plus pratique que ps : elle trie les processus en fonction de leur occu-
pation processeur et affiche ceux qui sont actifs en premier. Ce programme donne aussi un
aperçu de l’occupation de la mémoire. La liste des processus est actualisée régulièrement
jusqu’à ce que vous quittiez le programme avec Q. Les lignes suivantes montrent un système
en cours de fonctionnement :
top - 12:36:49 up 13 days, 14:22, 8 users, load average: 0.20, 0.33, 0.35
Tasks: 145 total, 1 running, 143 sleeping, 0 stopped, 1 zombie
Cpu(s): 5.7%us, 1.3%sy, 0.0%ni, 93.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1554740k total, 1483176k used, 71564k free, 62632k buffers
Swap: 1542200k total, 132644k used, 1409556k free, 449100k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

20026 michael 20 0 582m 343m 33m R 6 22.6 301:30.52 firefox

5164 root 20 0 453m 189m 7724 S 4 12.5 335:45.29 Xorg

22467 michael 20 0 222m 94m 15m S 1 6.2 0:04.91 java_vm

27192 michael 20 0 83916 44m 12m S 0 2.9 2:21.23 kpdf

1 root 20 0 2844 528 480 S 0 0.0 0:07.20 init

2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd

...
La valeur dans la colonne PID indique le numéro du processus. Ce numéro permet d’arrêter
un processus qui échappe à votre contrôle ou qui tourne en arrière-plan.
Les processus peuvent avoir plusieurs états. Les plus courants sont R (running, en cours de
fonctionnement) et S (sleeping, où le programme n’a rien à faire et attend une entrée). Les
programmes peuvent aussi être temporairement interrompus ; ils ont alors l’état T (stopped).
top permet également de saisir des commandes interactives. Vous pouvez y stopper des
processus (K, kill) ou en changer la priorité (R, renice).
Alternatives Il existe des alternatives graphiques à la commande texte top, par exemple ksysguard sous
graphiques à
top KDE ou gnome-system-monitor sous Gnome.
Linux Livre Page 216 Mardi, 23. septembre 2008 1:05 13

216 LINUX

Établir le Lorsque vous désirez connaître le numéro d’un processus, utilisez pidof. Lorsqu’il existe
numéro d’un
processus plusieurs processus avec le même nom, pidof affiche une liste de numéros :
utilisateur$ pidof xterm
32405 27972 26086 25931 17330 15169

Pour savoir quel programme accède à un répertoire ou à un fichier donné, lancez la com-
mande fuser. Un répertoire est aussi considéré comme utilisé lorsqu’un programme y est
lancé. La commande suivante montre que bash utilise le répertoire /media/dvd :
root# fuser -v /media/dvd
USER PID ACCESS COMMAND
/media/dvd michael 2183 ..c.. bash
root Kernel mount /media/dvd

L’accès au fichier ne s’affiche que lorsque le programme accède réellement au fichier. Cela
peut ne pas être le cas pour un éditeur de texte qui charge tout le fichier, puis le ferme. Il rouvre
brièvement le fichier le temps de l’enregistrer.
Fichiers PID Certaines tâches de fond enregistrent dans le répertoire /var/run un fichier PID (par exem-
ple /var/run/httpd.pid). La première ligne de ce fichier est le numéro du processus ; les
lignes suivantes peuvent contenir des informations d’état, comme les interfaces réseau utili-
sées. Ces fichiers permettent de terminer un processus ciblé via un script InitV, y compris
lorsque plusieurs processus du même nom coexistent.

Hiérarchie des processus


Chaque processus enregistre également le numéro PID de son processus parent. Cette informa-
tion permet de représenter un arbre de processus, au début duquel se trouve toujours le proces-
sus init. Celui-ci est le premier programme lancé directement après le chargement du noyau.
Pour afficher la hiérarchie des processus, le plus simple est d’utiliser la commande pstree.
L’option -h permet d’afficher les processus parents des processus courants en gras. La
Figure 14.1 illustre pstree dans un interpréteur bash dans une fenêtre Konsole.
Figure 14.1
Hiérarchie des processus
avec pstree.
Linux Livre Page 217 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 217

Forcer la fin d’un processus (kill, xkill )


Un processus se termine normalement avec la fin d’un programme. Mais il arrive que le pro-
gramme rencontre des erreurs, qu’il ne puisse plus être arrêté et qu’il prenne de plus en plus de
mémoire et de capacité processeur. Dans ce cas, la terminaison du processus doit être forcée.
Les commandes en mode texte peuvent souvent être arrêtées avec Ctrl+C. Le programme
est alors terminé immédiatement.
kill La commande kill envoie des signaux à un processus en cours, indiqué par son numéro
PID (que vous obtenez avec top ou ps). Pour terminer un programme de manière "polie", le
signal 15 est envoyé (signal par défaut de kill). Si cela ne fonctionne pas, on utilise le signal
9 (ici pour le processus 2725) :
utilisateur$ kill -9 2725

kill ne peut être utilisée que pour les processus appartenant à l’utilisateur qui les lance.
Seul root peut arrêter n’importe quel processus.
top top permet également d’arrêter un processus : tapez K, le numéro du processus et le signal
souhaité.
killall killall est plus confortable, car il prend comme argument le nom du programme et non le
numéro du processus. En revanche, il termine tous les programmes ayant le même nom :
root# killall -9 firefox
xkill Sous X, vous pouvez également lancer xkill dans une fenêtre de terminal et cliquer sur la
fenêtre du programme à terminer. xkill envoie le signal 9.
Sous KDE, vous pouvez lancer cette commande grâce à Ctrl+Alt+Échap. En cas d’erreur,
utilisez Échap pour l’interrompre.
Processus Il arrive que xkill ferme une fenêtre, mais que le processus ou des parties de ce processus
persistants
continuent à fonctionner. Assurez-vous avec top ou ps que le programme est bien terminé.
Si ce n’est pas le cas, terminez manuellement les processus restants.
Blocage de la Il est extrêmement désagréable qu’un programme X entraîne lors d’un plantage le blocage
souris ou du
clavier de la souris ou du clavier. L’ordinateur ne réagit alors presque plus.
Dans ce cas, la combinaison de touches Ctrl+Alt+F1 peut aider. Si elle réussit, vous passez dans
la première console texte. Vous pouvez alors vous connecter et terminer le programme fautif.
Si le clavier est complètement bloqué, il reste la solution de se connecter via le réseau en SSH
et de terminer le processus de cette manière. Mais cela n’est possible que si vous travaillez
dans un réseau local et si l’ordinateur dispose de sshd.
Si X reste bloqué, vous pouvez essayer de terminer X lui-même, puis de lancer la commande
shutdown. Toutes ces méthodes valent mieux que d’appuyer sur Reset, ce qui peut mener à
des pertes de données.
Limiter la taille Les programmes lancés via un interpréteur de commandes (ou les commandes lancées à
des processus
partir d’une fenêtre de terminal) peuvent être limités par ulimit, en ce qui concerne leur uti-
lisation mémoire, la taille des fichiers créés, etc. Cette commande est généralement configu-
rée dans /etc/profile. Vous trouverez des informations complémentaires sur ulimit dans
man bash.
Linux Livre Page 218 Mardi, 23. septembre 2008 1:05 13

218 LINUX

Partage du temps de calcul (nice, renice)


La plupart du temps, la capacité de calcul sous Linux est largement suffisante pour faire
fonctionner tous les processus sans délai. Si Linux est déjà occupé avec l’un des processus
gourmands en calcul (par exemple, une compilation), il essaie de diviser le temps de calcul
restant équitablement entre les autres processus.
Dans certains cas, il peut être sensé d’attribuer plus ou moins de temps de calcul à un pro-
cessus. C’est ce que permet la commande nice, qui donne une priorité réduite ou augmen-
tée à un programme. Elle lui attribue une priorité allant de 20 (très faible) à -20 (très élevée).
Par défaut, les programmes sont lancés avec une priorité 0. L’exemple suivant montre com-
ment lancer un script de sauvegarde avec une priorité plus faible, afin qu’il ne dérange pas
les autres processus (la sauvegarde peut sans problème durer deux ou trois secondes supplé-
mentaires) :
utilisateur$ nice -n 10 sauvegarde

renice permet de modifier la priorité d’un programme déjà lancé. Elle prend pour paramè-
tre un identifiant de processus, obtenu avec top ou ps. Vous trouverez plus de détails à pro-
pos de renice dans man renice. top permet également, grâce à la commande R, de modifier
interactivement la priorité d’un processus. Seul root peut lancer des processus avec une
priorité supérieure à 0 (donc négative).

Redirections et tubes
Presque tous les programmes texte (commandes) attendent des entrées sur l’entrée standard
(par défaut, le clavier) et renvoient des sorties sur la sortie standard (le texte s’affiche dans la
console ou la fenêtre de terminal). On peut rediriger l’entrée et la sortie, ce qui offre de nom-
breuses possibilités. Par exemple, cette commande enregistre la liste de tous les fichiers du
répertoire xy dans le fichier z :
utilisateur$ ls xy > z

Les tubes, ou pipes, permettent d’utiliser la sortie d’une commande comme entrée de la com-
mande suivante. Dans cet exemple, grep filtre la liste de tous les paquetages installés sur la
chaîne "mysql", indépendamment de la casse, puis sort trie cette liste.
En d’autres termes, la sortie de la commande rpm est transmise grâce au caractère | à la
deuxième commande grep, qui transmet elle-même sa sortie avec un deuxième caractère | à
sort.
utilisateur$ rpm -qa | grep -i mysql | sort
mysql-5.0.18-2.1
mysql-connector-odbc-3.51.12-1.2.1
MySQL-python-1.2.0-3.2.2
mysql-server-5.0.18-2.1
perl-DBD-MySQL-3.0002-2.2.2
php-mysql-5.1.2-5
Linux Livre Page 219 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 219

14.2 Lancer des processus sous une autre identité (su)


Les utilisateurs sans privilège ont deux restrictions importantes à l’exécution des program-
mes. Ils ne peuvent lancer que les processus dont ils ont l’autorisation d’exécution (pro-
priété, groupe et bits d’accès x). Cela ne pose pas de problème pour les programmes
habituels. Mais certaines commandes, comme celles du répertoire /usr/sbin, ne peuvent
être lancées que par root. De plus, les processus appartiennent à l’utilisateur qui les a lancés.
Ils peuvent ainsi accéder aux mêmes fichiers que l’utilisateur. Formulé autrement, cela signi-
fie qu’un fichier que l’utilisateur ne peut pas modifier ne peut pas non plus être modifié par
un programme lancé par cet utilisateur. Les fichiers créés par le processus appartiennent
également à l’utilisateur qui a lancé le processus.
C’est pourquoi un utilisateur normal ne peut pas effectuer beaucoup de tâches administrati-
ves. La solution la plus simple consiste à se connecter en tant que root. Nous avons déjà vu
qu’il n’est pas conseillé de le faire : le risque de dégâts involontaires est bien plus grand.
Certaines distributions, comme Ubuntu, interdisent complètement la connexion en root.
Cette section décrit comment exécuter les tâches administratives quotidiennes grâce à su et
ssh. La section 14.3 traitera de l’alternative fournie par sudo.

De nombreuses distributions sont configurées de manière que vous n’ayez pas à penser à su ou sudo. Lors-
que vous démarrez un outil d’administration, une boîte de dialogue de mot de passe s’affiche automatique-
ment.
Les bits suid et guid offrent une première possibilité d’indiquer aux programmes que quiconque peut les
lancer comme s’il était root. La différence principale avec sudo est que ces bits d’accès s’appliquent à tous
les utilisateurs, tandis que les utilisateurs de sudo doivent être déclarés explicitement dans le fichier /etc/
sudoers.

su Bien souvent, le besoin se limite à lancer rapidement une commande en tant que root. Quit-
ter X se révèle alors inconfortable. Le plus simple pour changer d’utilisateur dans une fenê-
tre de terminal est d’utiliser la commande su nom. Si vous ne lancez pas cette commande en
tant que root, le mot de passe du compte utilisateur correspondant vous est demandé. Vous
pouvez alors, dans la fenêtre de terminal, lancer des commandes sous le nom fourni jusqu’à
ce que vous repassiez en mode normal avec exit ou Ctrl+D.
Les lignes suivantes montrent comment un utilisateur peut se connecter brièvement en tant
que root, monter une partition dans l’arborescence et se déconnecter :
utilisateur$ su -l root
Mot de passe : xxx
root# mount -t ext2 /test /dev/hdc7
root# Ctrl+D
utilisateur$ ls /test

Pour que su soit un remplacement complet d’une connexion en tant que root, vous devez
utiliser l’option -l. Ainsi, tous les fichiers de démarrage du compte (en particulier, la définition
correcte de PATH) sont relus.
Linux Livre Page 220 Mardi, 23. septembre 2008 1:05 13

220 LINUX

kdesu Sous KDE, le plus simple pour démarrer des programmes X avec des droits administrateur
est kdesu. Ce programme affiche une fenêtre de dialogue pour saisir le mot de passe root.
utilisateur$ kdesu kate /etc/fstab

kdesu ne fonctionne que lorsque le démon kdesud est lancé. Il l’est généralement lors du
démarrage de KDE. Les options de kdesu sont disponibles avec kdesu -help-all. Dans cer-
taines distributions, kdesu est directement intégré au menu KDE. Dans ce cas, si vous
démarrez un programme qui demande des droits d’administration, la fenêtre de connexion
de kdesu apparaît automatiquement.
gksu La contrepartie de kdesu sous Gnome s’appelle gksu. Il fonctionne sans processus d’arrière-
plan. man gksu offre un résumé des options disponibles.
consolehelper Dans certaines distributions, consolehelper peut être utilisé à la place de gksu. Ce pro-
gramme est également une boîte de dialogue de mot de passe, mais il est mis en œuvre de
manière complètement différente. L’idée de base est que les outils d’administration sont ins-
tallés dans un répertoire qui n’est accessible qu’à root. Pour les utilisateurs normaux, le
nom de l’exécutable est un lien vers consolehelper. La commande suivante montre une
configuration de ce type pour system-config-network (configuration du réseau pour Red
Hat) :
utilisateur$ ls -l /usr/sbin/system-config-network \
/usr/bin/system-config-network
-rwxr-xr-x ... root root /usr/sbin/system-config-network
lrwxrwxrwx ... root root /usr/bin/system-config-network -> consolehelper

Lorsque root lance la commande system-config-network, /usr/sbin/system-config-


network est automatiquement lancé. En revanche, si un utilisateur sans privilège lance la
même commande, consolehelper est démarré. Lorsque l’utilisateur indique le bon mot de
passe root, consolehelper lance le programme system-config-network.
ssh Dans la plupart des distributions, su ne fonctionne que pour les commandes texte et ce,
pour plusieurs raisons. Tout d’abord, pour lancer un programme X, la variable d’environne-
ment DISPLAY doit contenir le nom de l’ordinateur sur lequel le programme s’affiche (export
DISPLAY=localhost:0). X peut aussi interdire aux utilisateurs étrangers à la session de
démarrer des programmes (la commande xhost peut régler ce problème). Enfin, il arrive
que le port réseau de communication vers le serveur X soit inaccessible.
Si kdesu, gksu ou consolehelper ne sont pas installés, ssh est la solution la plus simple à ce
problème, grâce à la syntaxe suivante :
utilisateur$ ssh -X -l utilisateur localhost

14.3 Lancer des processus sous une autre identité (sudo)


sudo a une approche complètement différente de su. Ce programme permet, après configu-
ration, à des utilisateurs donnés d’exécuter certains programmes avec les droits root. La
sécurité est assurée par la saisie du mot de passe de l’utilisateur (et non celui de root).
sudo lance alors ces programmes comme s’ils étaient démarrés par un autre utilisateur (par
défaut root). Ainsi, des utilisateurs peuvent prendre en charge des tâches administratives
ou lancer des commandes critiques pour le système sans avoir à connaître le mot de passe
Linux Livre Page 221 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 221

root. sudo enregistre dans le journal /var/log/messages tous les programmes lancés, ainsi
que les tentatives qui ont échoué.
sudo garde le mot de passe pendant 15 minutes. Si vous lancez une nouvelle commande
pendant cet intervalle, votre mot de passe ne vous sera pas redemandé − cette durée peut
être paramétrée dans /etc/sudoers avec le mot clé timestamp_timeout.
Configuration La configuration de sudo est définie dans le fichier /etc/sudoers. Il se divise en trois colon-
nes qui décrivent quels utilisateurs de quels ordinateurs ont le droit de démarrer quels pro-
grammes. La ligne suivante signifie que l’utilisateur catherine sur l’ordinateur uranus peut
lancer la commande /sbin/fdisk. Le mot clé ALL indique que catherine peut la lancer sous
n’importe quel compte valide : root, news, lp, etc.
# dans /etc/sudoers
catherine uranus=(ALL) /sbin/fdisk

Lorsque la première colonne de sudoers commence par le caractère %, la ligne s’applique à


tous les membres du groupe indiqué. man sudoers décrit la syntaxe de ce fichier.

On peut donner à un utilisateur les droits sudo sans qu’il ait à saisir son mot de passe. La ligne ressem-
ble alors à ceci :
michael ALL=(ALL) NOPASSWD: ALL
Cette solution représente un risque de sécurité, mais quiconque doit effectuer régulièrement des tâches
administratives en appréciera le confort. Attention, l’option NOPASSWD n’est valable que lorsque aucune
autre ligne de sudoers ne demande un mot de passe pour le même utilisateur. Cette astuce fonctionne
également pour les groupes.

Applications Catherine peut maintenant lancer fdisk de la manière suivante. Elle doit saisir, comme mot
de passe, celui associé au compte catherine et indiquer le chemin complet de fdisk, si ce
dernier n’est pas dans l’un des répertoires de la variable d’environnement PATH de cathe-
rine. fdisk se lance alors avec le compte root. Pour choisir un autre compte pour l’exécution,
on peut utiliser sudo -u compte.
catherine$ sudo /sbin/fdisk /dev/sda
[sudo] password for catherine: xxxxxxx

Lancer Lorsqu’il faut lancer plusieurs tâches administratives, il devient fastidieux de préfixer cha-
plusieurs
commandes que commande avec sudo. Il est plus élégant de passer en mode root avec sudo -s -H. Toutes
avec sudo les commandes sont alors lancées en tant que root. On sort de ce mode grâce à Ctrl+D.
gksudo Lorsque vous démarrez des programmes d’administration sous X, certaines distributions
lancent gksudo. Ce dernier permet de saisir le mot de passe dans une boîte de dialogue et
lance le programme souhaité.

Le fichier de configuration /etc/sudoers propose de nombreuses possibilités syntaxiques. Pour en savoir


plus, lisez la page de manuel de sudo et sudoers, ou consultez la page web de sudo : http://
www.courtesan.com/sudo/.
Linux Livre Page 222 Mardi, 23. septembre 2008 1:05 13

222 LINUX

sudo sous Ubuntu


Ubuntu et certaines autres distributions ne créent pas de mot de passe root. Il est donc
impossible de se connecter en tant que root. su et ssh -l root ne fonctionnent pas non plus.
La seule possibilité de lancer des commandes d’administration est donc d’utiliser sudo. Le
fichier /etc/sudoers ne contient que trois lignes :
#Configuration par défaut de /etc/sudoers sous Ubuntu
Defaults !lecture,tty_tickets,!fqdn
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL

La première ligne se sépare en trois éléments. !lecture indique à sudo de ne pas afficher
d’avertissement à l’utilisateur lorsqu’il lance la commande sudo. tty_tickets fait en sorte
que le mot de passe ne soit retenu que pour les commandes lancées dans une console don-
née. !fqdn permet d’indiquer des noms réseau non pleinement qualifiés − ce qui est néces-
saire pour que sudo puisse fonctionner sans serveur de noms.
La deuxième ligne donne à root un accès illimité à tous les programmes. Elle est plutôt inu-
tile sous Ubuntu, puisque la connexion en root n’est pas possible.
La troisième est la plus importante : elle permet aux membres du groupe admin d’appeler
tous les programmes.
Par défaut, seul le premier utilisateur (créé lors de l’installation) est membre du groupe
admin. Lorsque vous créez un nouvel utilisateur, celui-ci doit être explicitement ajouté à ce
groupe.

sudo sous SUSE


Sous SUSE, le rôle de sudo est plus réduit que sous Ubuntu. Si vous désirez le mettre en
place, vous devez prendre garde à certaines particularités de la configuration par défaut :
# configuration par défaut de /etc/sudoers dans SUSE
# $HOME contient le répertoire personnel de l’utilisateur
Defaults always_set_home
# empêche l’exécution de programmes X
Defaults env_reset
# sudo demande le mot de passe du compte cible
Defaults targetpw
# avec le bon mot de passe, tout le monde peut tout faire
ALL ALL=(ALL) ALL
root ALL=(ALL) ALL

Les deux premières lignes ont trait aux variables d’environnement une fois l’accès sudo
autorisé. La deuxième ligne a en particulier pour effet de supprimer la variable DISPLAY, ce
qui interdit l’exécution de programmes X.
Defaults targetpw signifie que le mot de passe pour le compte cible doit être saisi avant que
la commande ne puisse être lancée (en général, mot de passe root). La ligne ALL ALL=(ALL)
ALL permet à tous les utilisateurs de lancer n’importe quelle commande une fois le bon mot
de passe saisi.
Linux Livre Page 223 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 223

14.4 Processus du système (démons)


Nous définissons les démons comme des processus en tâche de fond pour la gestion du sys-
tème. Ils sont généralement lancés lors du démarrage grâce à InitV. Si vous êtes familier avec
la terminologie Windows 2000/XP, ils correspondent aux services de Windows. La liste sui-
vante décrit rapidement la tâche des démons les plus importants.

Processus importants du système


atd démarrage d’autres programmes à des heures prédéfinies (semblable à cron)
avahi-demon configuration réseau automatique (ZeroConf, Rendezvous, Bonjour)
cron démarrage d’autres programmes à des heures prédéfinies
cupsd tampon de l’imprimante
dbus-daemon communication DBUS
dhclient client DHCP
dhcpd mise à disposition d’ adresses IP aux autres ordinateurs
dhcpcd lecture des adresses IP
gdm gestionnaire de connexion de Gnome
gpm gestion de la souris pour la console texte
hald* gestion du matériel
hcid gestion du BlueTooth
hidd gestion du BlueTooth
hpiod imprimantes et scanners HP
httpd serveur web (par exemple Apache)
kdm gestionnaire de connexion de KDE
klogd journalisation des messages du noyau
innd serveur de news
ipppd démarrage du RNIS
ipsec VPN avec IPsec
leafnode serveur de news pour un petit réseau
lisa serveur d’informations du réseau local pour KDE
lockd verrous NFS
lpd tampon d’imprimante
mdnsd configuration réseau automatique (ZeroConf, Rendezvous, Bonjour)
mysqld serveur de base de données MySQL
named serveur de noms
nmbd serveur de noms pour Windows
nscd cache pour les utilisateurs, les groupes et les noms d’ordinateurs
ntpd mise à jour de l’heure avec NTP
postfix serveur de courrier électronique pour l’envoi de courriers
pppd client VPN, accès à Internet
Linux Livre Page 224 Mardi, 23. septembre 2008 1:05 13

224 LINUX

pptpd serveur PPTP pour VPN


portmap partie du serveur NFS
resmgrd donne aux utilisateurs normaux accès aux ressources du système (SUSE)
rhnsd service de mise à jour (anciens systèmes Red Hat)
rpc.* services réseau RPC
sendmail serveur de courrier électronique pour l’envoi de courriers
sshd serveur SSH (shell sécurisé)
smartd surveillance SMART des disques durs
smbd serveur de fichiers pour Windows (Samba)
sdpd gestion du BlueTooth
squid proxy et cache web
syslogd journalisation des messages du système
syslogd-ng journalisation des messages du système
udevd gestion des périphériques
vsftpd serveur FTP
xdm gestionnaire d’affichage de X
xfs serveur de polices de X
xinetd démarrage d’autres démons réseau

Threads du noyau
En plus des services réseau habituels comme httpd (Apache), il existe de nombreux proces-
sus qui ne sont pas vraiment des programmes, mais des morceaux de processus (threads) du
noyau. Lorsque vous tapez ps axu, vous pouvez les reconnaître par leur nom qui se trouve
entre crochets. Certains sont suivis d’un numéro qui désigne le processeur concerné. Ainsi,
kblockd/0 gère le tampon des périphériques bloc pour le premier processeur, kblockd/1
pour le deuxième, etc.
La plupart des threads du noyau gèrent les tâches de bas niveau du système d’exploitation
(gestion de la mémoire, des processus, occupation du processeur, etc.). Ils sont principale-
ment lancés lors de l’initialisation au début du démarrage du système. Les applications
normales ne nécessitent pas de configuration spéciale à ce niveau.

Threads importants du noyau


aio gestion de ses entrées/sorties asynchrones (par exemple pour les processus réseau)
events gestion des événements et les interruptions logicielles
kacpid fonctions ACPI
kblockd gestion du tampon des périphériques bloc
khelperd chargement et suppression des modules du noyau pour les programmes des utilisateurs
khubd gestion de l’insertion et de l’éjection des périphériques USB
kjournald journalisation du système de fichiers ext3
Linux Livre Page 225 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 225

knfsd serveur NFS


kthread gestion les threads
nfsd serveur NFS
kscand gestion de la mémoire
kseriod communication avec les périphériques série
ksoftirqd gestion des interruptions matérielles
kswapd pagination
lockd verrous NFS
migration localisation processeur des processus
pccardd gestion les cartes PCMCIA
pdflush enregistrement physique les modifications de fichiers
reiserfs journalisation du système de fichiers reiserfs
rpciod NFS
scsi_eh gestion des erreurs et dépassements de délais du SCSI
watchdog surveillance du système

Démarrer et arrêter des démons


La plupart des distributions démarrent les démons listés précédemment grâce au système
InitV. Nous le détaillerons au Chapitre 24, où vous apprendrez aussi comment intégrer de
nouveaux scripts à ce système.
Certaines distributions utilisent, à la place de InitV, un autre système, par exemple Upstart
pour Ubuntu. Jusqu’à Ubuntu 8.04, Upstart gère peu de processus et démarre ensuite un
mode de compatibilité avec InitV. Les informations fournies ici sont donc au moins valables
jusqu’à cette version.
Dans cette section, nous expliquerons comment démarrer et arrêter un démon manuelle-
ment, ainsi que de manière automatique lors du démarrage du système. Ces informations
sont particulièrement utiles pour mettre en place et configurer des services réseau. Atten-
tion, la commande et le nom du service peuvent varier d’une distribution à l’autre. Par
exemple, le script de démarrage du serveur Apache s’appelle apache2 sous Debian, Ubuntu
et SUSE, et httpd sous Fedora et Red Hat.
Démarrage Pour démarrer manuellement un démon ou un service réseau, lancez la commande sui-
manuel
vante. Notez que le service réseau est parfois démarré immédiatement après l’installation
du paquetage (comme sous Debian ou Ubuntu), tandis qu’il peut nécessiter un démarrage
manuel sous d’autres distributions.
Sous Debian, Fedora, Red Hat, SUSE et Ubuntu :
root# /etc/init.d/nom start

Sous Debian et Ubuntu :


root# invoke.rc nom start
Linux Livre Page 226 Mardi, 23. septembre 2008 1:05 13

226 LINUX

Sous Fedora et Red Hat :


root# service nom start

Sous SUSE :
root# rcnom start

Sous Ubuntu à partir de 6.10, pour les processus Upstart :


root# start nom
Arrêt manuel Les commandes pour arrêter un démon sont très similaires.
Sous Debian, Fedora, Red Hat, SUSE et Ubuntu :
root# /etc/init.d/nom stop

Sous Debian et Ubuntu :


root# invoke.rc nom stop

Sous Fedora et Red Hat :


root# service nom stop

Sous SUSE :
root# rcnom stop

Sous Ubuntu à partir de 6.10, pour les processus Upstart :


root# stop nom
Rechargement De nombreux services savent relire leurs fichiers de configuration pendant qu’ils sont en
/redémarrage
service. Pour qu’ils puissent prendre en compte des modifications dans leur configuration,
il faut lancer la commande reload. Ceux qui ne la prennent pas en charge doivent être redé-
marrés avec restart.
Sous Debian, Fedora, Red Hat, SUSE et Ubuntu :
root# /etc/init.d/nom reload/restart

Sous Debian et Ubuntu :


root# invoke.rc nom reload/restart

Sous Fedora et Red Hat :


root# service nom reload/restart

Sous SUSE :
root# rcnom reload/restart
Démarrage Lorsqu’un service réseau est mis en place correctement, il est d’usage de le démarrer auto-
automatique
matiquement lors de l’amorçage de l’ordinateur et de l’arrêter lors de l’extinction de la
machine. Sous certaines distributions (Debian, Ubuntu), les services sont configurés ainsi
dès qu’ils sont installés à partir du paquet. Sous d’autres, ce n’est pas le cas, pour des raisons
de sécurité − le démarrage automatique doit donc être activé manuellement.
Sous Debian, update-rc.d crée les liens de démarrage et d’arrêt InitV avec le numéro d’exé-
cution par défaut 20. Si vous désirez utiliser d’autres nombres, indiquez-les avec n1 et n2
(voir Chapitre 24).
Linux Livre Page 227 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 227

Sous Red Hat et Fedora, la commande chkconfig suffit dans de nombreux cas. La seconde
commande n’est nécessaire que lorsque le script InitV ne contient pas d’information sur le
niveau d’exécution du service (presque toujours 3 et 5, voir Chapitre 24).
Sous Debian et Ubuntu :
root# update-rc.d nom defaults [n1 n2]

Sous Fedora et Red Hat :


root# chkconfig --add nom
root# chkconfig --level 35 nom

Sous SUSE :
root# insserv nom
Supprimer le Les commandes suivantes suppriment le démarrage automatique ultérieur des services.
démarrage
automatique Lorsque le système fonctionne, il n’est pas arrêté ; il faut pour cela lancer la commande stop
correspondante.
Sous Debian et Ubuntu :
root# update-rc.d -f nom remove

Sous Fedora et Red Hat :


root# chkconfig --del nom

Sous SUSE :
root# insserv -r nom

14.6 Démarrer automatiquement des processus (crontab)


Lorsque votre ordinateur se met soudainement à parcourir le disque dur et à vous envoyer
des courriers électroniques, il s’agit presque toujours du démarrage d’un processus via le
démon cron. InitV lance ce programme automatiquement lors du démarrage de l’ordina-
teur. Il est actif une fois par minute ; il analyse tous les fichiers crontab et démarre les pro-
grammes qui s’y trouvent. Ce démon est principalement utilisé pour les tâches de
maintenance : rotation des fichiers de journalisation, suppression des fichiers temporaires,
actualisation des répertoires, etc.
La configuration globale de cron se trouve dans le fichier /etc/crontab. Les utilisateurs
peuvent également définir leurs propres tâches dans les fichiers spécifiques aux utilisateurs
/var/spool/cron/tabs/utilisateur.
Les fichiers /var/spool/cron/allow et /var/spool/cron/deny définissent des permissions
sur ces fichiers utilisateur. Lorsque allow existe, l’utilisateur ne peut exécuter que les com-
mandes qui s’y trouvent. Lorsque deny existe, il ne peut pas les exécuter. Si ces deux fichiers
sont absents, la compilation de cron définit si les utilisateurs en dehors de root peuvent uti-
liser ce démon.
Linux Livre Page 228 Mardi, 23. septembre 2008 1:05 13

228 LINUX

crontab Le fichier /etc/crontab contient des enregistrements sous forme de lignes pour les programmes
à lancer. La syntaxe ressemble à ceci :
min heure jour mois joursemaine utilisateur commande

Colonnes de crontab
min indique à quelle minute (0-59) le programme doit être lancé
heure indique l’heure (0-23)
jour indique le jour dans le mois (0-31)
mois indique le mois (0-12)
joursemaine indique le jour de la semaine (0-7, 0 et 7 signifient dimanche)
utilisateur indique pour quel utilisateur est lancée la commande (root le plus souvent)
commande indique la commande à lancer

Une étoile dans l’un des cinq premiers champs indique que ce champ doit être ignoré. Ainsi,
15 * * * * signifie qu’il faut lancer la commande 15 minutes après l’heure pleine, toutes les
heures, tous les jours, tous les mois, indépendamment du jour de la semaine. 29 0 * * 6
indique qu’il faut la lancer tous les samedis à 0:29.
Ces champs comprennent également une syntaxe du type */n. Celle-ci signifie que la com-
mande doit être lancée toutes les n minutes/heures, etc. Ainsi, */15 * * * * indique qu’elle
est lancée tous les quarts d’heure (à x:00, x:15, x:30 et x:45).
La documentation n’est pas claire sur la signification de 0 pour le jour du mois et le mois
(voir man 5 crontab).
Les fichiers /var/spool/cron/tabs/utilisateur ont le même format que crontab. La seule
différence est qu’il n’y a pas de colonne utilisateur.

Modifier la configuration
Pour changer la configuration globale de cron, vous pouvez modifier directement le fichier
/etc/crontab et les fichiers de /etc/cron* avec un éditeur de texte. Pour ajouter une ligne
spécifique à un utilisateur, vous devez utiliser la commande crontab -e. L’éditeur par
défaut de la variable d’environnement EDITOR est alors lancé.
cron.hourly, Dans la plupart des distributions, /etc/crontab ne contient que peu d’entrées qui lancent
.daily, .weekly,
.monthly tous les fichiers de script de /etc/cron.hourly/* toutes les heures, ceux de /etc/
cron.daily/* tous les jours, etc. Sous Red Hat, /etc/crontab ressemble à ceci :
# /etc/crontab sur Red Hat
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Linux Livre Page 229 Mardi, 23. septembre 2008 1:05 13

GESTION DES PROCESSUS 229

La configuration de cron s’en trouve considérablement simplifiée. Dans la plupart des cas, il
suffit alors de copier le script à lancer dans l’un des quatre répertoires /etc/cron.xxx pour
que les commandes qui s’y trouvent soient lancées.
Modifier directement /etc/crontab n’est alors nécessaire que lorsque vous voulez changer
les heures prédéfinies (attention, le fichier /etc/crontab peut être écrasé lors d’une mise à
jour de la distribution).
Pendant mon travail sur cet ouvrage, j’ai synchronisé le répertoire de ce livre et mon réper-
toire de sauvegarde (sur un autre disque dur) une fois par jour. Cela tient en un script de
trois lignes :
#!/bin/sh
#/etc/cron.d/daily/backup-linux-book
rsync -r ~michael/linux/* /backup/linux

Lorsque vous désirez éviter qu’une tâche cron ne se lance à un moment critique (par exemple, lorsque vous
gravez un DVD), il suffit de désactiver cron avec /etc/init.d cron stop .
Linux Livre Page 230 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 231 Mardi, 23. septembre 2008 1:05 13

Convertisseurs graphiques, audio


15 et texte
Linux propose de nombreuses commandes pour passer des images, des textes et d’autres
fichiers d’un format à un autre : du GIF au JPEG, du Latin-1 à l’Unicode, du PostScript au
PDF, du HTML au texte simple, du MP3 au WAV, etc. Ce chapitre offre un premier aperçu de
ces commandes, assorties de quelques exemples d’application.
La plupart des distributions fournissent peu de convertisseurs. Si vous ne trouvez pas l’une des
commandes présentées dans ce chapitre, vous devez installer le paquetage correspondant.
Nous ne parlerons pas ici des programmes interactifs, tels que Gimp. Vous pouvez bien sûr
charger un fichier TIFF dans Gimp et l’enregistrer au format JPEG. Nous nous limiterons
aux commandes texte avec lesquelles la conversion peut être automatisée très simplement.

15.1 Convertisseurs graphiques


Il existe principalement deux paquetages de convertisseurs graphiques : Image Magick et
Netpbm. Ils peuvent gérer d’innombrables formats graphiques et proposent des comman-
des et des options pour les transformations basiques d’images (modifier la taille ou le
découpage d’une image, améliorer le contraste, réduire le nombre de couleurs, etc.). Vous
trouverez ici une courte présentation de ces deux paquetages, ainsi que d’autres commandes et
bibliothèques de conversion d’images.
Image Magick Le paquetage Image Magick contient plusieurs commandes isolées, dont la plus importante
est convert. Celle-ci copie une image et en modifie le format. Les formats source et cible sont
simplement indiqués par les noms de fichiers. Par exemple, la commande suivante copie le
fichier image.jpg au format PNG :
utilisateur$ convert image.jpg image.png

Divers paramètres de l’image (taille, nombre de couleurs, taux de compression, etc.) peuvent
être modifiés par le biais d’une centaine d’options :
utilisateur$ convert -resize 100x100 image.jpg image.png
utilisateur$ convert -type Grayscale image.jpg image.eps
utilisateur$ convert -quality 80 image.bmp image.jpg

mogrify fonctionne comme convert, mais transforme directement le fichier plutôt que d’en
créer un nouveau :
utilisateur$ mogrify -resize 50% test.jpg

Les autres commandes d’Image Magick comprennent compare pour comparer deux images
et conjure pour lancer des commandes de transformation d’images du Magick Scripting
Language (MSL, langage de script Magick). identify affiche une description d’un fichier
Linux Livre Page 232 Mardi, 23. septembre 2008 1:05 13

232 LINUX

image (format, taille, etc.). import crée une copie d’écran et l’enregistre dans un fichier.
montage forme une seule image avec plusieurs.
utilisateur$ identify -verbose bateau.png
Image: bateau.png
Format: PNG (Portable Network Graphics)
Class: DirectClass
Geometry: 416x244+0+0
Type: TrueColorMatte
Endianess: Undefined
Colorspace: RGB
Depth: 8-bit
...

Les programmeurs peuvent aussi utiliser Image Magick en tant que bibliothèque. La docu-
mentation complète de toutes les commandes se trouve sur le site web http://www.image-
magick.org/.
Netpbm L’approche de Netpbm (anciennement Portable Bitmap Utilities) est différente de celle
d’Image Magick. En effet, chaque fichier doit d’abord être transformé au format interne
PNM ou PBM. L’exemple suivant montre comment transformer un fichier TIFF en fichier
PNG, où l’espace de couleurs de l’image est normalisé (pnmnorm) :
utilisateur$ tifftopnm image.tif | pnmnorm | pnmtops -noturn -rle \
-scale 0.5 > image.eps

Netpbm contient environ 200 commandes ; vous en trouverez une description à l’adresse
http://netpbm.sourceforge.net/doc/.
Bibliothèque Le paquetage libtiff contient la bibliothèque éponyme, ainsi que diverses commandes
libtiff
pour modifier et convertir des fichiers TIFF. Les principales commandes de conversion sont
bmp2tiff, gif2tiff, tiff2pdf et tiff2ps. Pour manipuler les fichiers TIFF, les commandes
tiffcp, tiffinfo ou encore tiffsplit peuvent s’avérer utiles.
Bibliothèque Le paquetage libwmf contient la bibliothèque du même nom, ainsi que certaines comman-
libwmf
des pour traiter les fichiers WMF et EMF (Windows Metafile et Enhanced Metafile). Les princi-
pales commandes de conversion sont wmf2eps, wmf2svg, ainsi que wmf2gd (conversion vers
les formats JPEG et PNG).
Convertisseur Le paquetage librsvg2 ou librsvg2-bin contient les commandes rsvg et rsvg-convert, qui
SVG
servent à transformer les fichiers SVG (Scalable Vector Graphics) dans un format bitmap.
EXIF Il existe plusieurs bibliothèques et commandes pour modifier les données EXIF des fichiers
JPEG, par exemple exif, exiftran, exiv2 ou encore jhead.
Fichiers RAW Certains appareils photo numériques permettent d’enregistrer des images sans perte de
qualité au format RAW spécifié par le fabricant. Pour transformer ces fichiers en images
conventionnelles, on peut utiliser la commande dcraw du paquetage du même nom.

15.2 Conversion audio et vidéo


Le tableau suivant présente les principales commandes pour lire des données audio à partir
d’un CD et transformer les fichiers audio et vidéo d’un format à un autre. Si le nom du
paquetage ne dérive pas directement de celui de la commande, il est indiqué entre parenthèses
− ce nom peut cependant varier selon les distributions.
Linux Livre Page 233 Mardi, 23. septembre 2008 1:05 13

CONVERTISSEURS GRAPHIQUES, AUDIO ET TEXTE 233

Format Commande (paquet)


CD -> WAV cdda2wav/icedax, cdparanoia
MP3 -> WAV mpg123, mpg321, madplay
WAV -> MP3 lame
OGG -> WAV oggdec (vorbis-tools)
WAV -> OGG oggenc (vorbis-tools)
MP3 -> OGG mp32ogg
AAC -> WAV faad
WAV -> AAC faac
WAV <-> FLAC flac
Audio <-> Audio sox
Audio <-> Audio sfconvert (audiofile)
Audio/Vidéo <-> Audio/Vidéo ffmpeg (convertisseur universel)

Cette section présente quelques exemples de commandes. Vous trouverez plus d’informations
et des références d’options grâce à man commande.
Extraction de Ces outils servent à extraire un CD de manière efficace et sans perte de qualité vers le disque
CD audio
dur. Les commandes les plus populaires sont cdparanoia et cdda2wav, ainsi que le projet
dérivé icedax. cdparanoia a la réputation d’avoir de bons résultats lorsque le CD est rayé
ou présente des problèmes similaires. Les deux commandes fournissent d’innombrables
paramètres.
Voici deux exemples. La commande suivante lit la piste 3 d’un CD qui se trouve dans le premier
lecteur CD SCSI. Le fichier résultant est nommé audio.wav.
root# cdda2wav -D /dev/scd0 -t 3

Le second exemple lit la piste 4 du CD dans le même lecteur. Le résultat est le fichier
cdda.wav dans le répertoire local :
root# cdparanoia -d /dev/scd0 "4"

Codage MP3 En raison des problèmes de brevets évoqués au Chapitre 11, il existe encore peu de distri-
butions Linux dotées d’un codeur MP3. Divers codeurs sont cependant disponibles sur
Internet en tant que paquetages supplémentaires. Le programme le plus connu est lame :
http://lame.sourceforge.net/index.php.
Son utilisation est très simple : lame entree.wav sortie.mp3 crée à partir du fichier en
entrée un fichier MP3. L’opération, en particulier la qualité du fichier MP3, est paramétrée
grâce à de nombreuses options.
MP3 -> OGG Les commandes listées précédemment peuvent être combinées, par exemple pour transfor-
mer un fichier MP3 au format Ogg-Vorbis. Attention, ce type de transformation induit
toujours une perte de qualité et doit être évité autant que possible.
utilisateur$ mpeg321 -s in.mp3 -w - |oggenc - -o out.ogg
Linux Livre Page 234 Mardi, 23. septembre 2008 1:05 13

234 LINUX

Malheureusement, les tags Info (ID3) sont également perdus dans cette opération. Pour éviter
cela, on peut aussi utiliser un script de conversion MP3-Ogg (comme mp32ogg).
FLAC FLAC signifie Free Lossless Audio Codec, codec audio libre sans perte. Les fichiers FLAC sont
plus volumineux que les fichiers MP3 ou Ogg, mais plus petits que les WAV. L’avantage
principal de FLAC par rapport à MP3 ou Ogg est qu’il code les fichiers audio sans perte.
Pour coder et décoder ces fichiers, on utilise la commande flac.
Bibliothèque Le paquetage audiofile implémente les fonctions importantes de la bibliothèque AudioFile
AudioFile
du fabricant SGI. La commande la plus intéressante est sfconvert, qui permet de convertir
des fichiers audio entre les formats aiff, aifc, next et wave. sfinfo essaie de déterminer
dans quel format se trouve un fichier audio.
Conversion La commande ffmpeg du paquetage du même nom convertit les fichiers audio et vidéo d’un
vidéo (ffmpeg)
format à un autre. La liste des formats pris en charge est longue et on peut l’obtenir avec
ffmpeg -formats.
utilisateur$ ffmpeg -i in.avi out.mpg

La commande permet aussi de préparer des données audio et vidéo pour les graver sur un
DVD. Un exemple est fourni dans man ffmpeg.

15.3 Conversion de texte


Cette section présente les commandes recode, iconv, dos2unix et unix2dos. Elles servent à
modifier le jeu de caractères et les caractères de fin de ligne de fichiers texte. Ces transforma-
tions sont nécessaires lorsque vous transférez des fichiers entre des systèmes qui utilisent
des jeux de caractères ou des conventions de format de texte différents.
recode recode permet de convertir un fichier texte d’un jeu de caractères à un autre. La commande sui-
vante convertit le fichier DOS fichierdos en un fichier Linux avec le jeu de caractères Latin-1 :
utilisateur$ recode ibmppc..latin1 < fichierdos > fichierlinux

Comme le montre l’exemple suivant, recode peut aussi modifier les caractères de fin de ligne.
Cette commande convertit tous les caractères de fin de ligne du fichier fichierwin (CR puis LF,
soit Carriage Return puis Line Feed) en caractères conventionnels sous Linux (LF) :
utilisateur$ recode latin1/cr-lf..latin1 < fichierwin > fichierlinux

recode peut aussi lire un fichier codé en Latin-1 et l’enregistrer en UTF-8 :


utilisateur$ recode latin1..u8 < fichierlatin1 > fichierutf8
iconv La commande iconv est une alternative populaire à recode. Elle ne peut cependant pas
modifier les caractères de fin de ligne. L’exemple suivant crée un fichier UTF-8 à partir d’un
fichier Latin-1 :
utilisateur$ iconv -f latin1 -t utf-8 fichierlatin1 > fichierutf8
dos2unix et Les commandes dos2unix et unix2dos changent les caractères de fin de ligne du format
unix2dos
DOS/Windows (CR puis LF) et du format Unix/Linux (LF uniquement). Cette commande
ne fonctionne que pour les fichiers dont le jeu de caractères est sur un octet (par exemple,
ASCII ou Latin-1), mais pas pour les fichiers Unicode.
utilisateur$ dos2unix fichier.txt
Linux Livre Page 235 Mardi, 23. septembre 2008 1:05 13

CONVERTISSEURS GRAPHIQUES, AUDIO ET TEXTE 235

15.4 Conversion de noms de fichiers


convmv Jusqu’à il y a quelques années, il était courant de représenter les noms de fichiers dans le jeu
de caractères Latin-1. Depuis, UTF-8 s’est imposé comme standard. Pour transformer un
nom de fichier d’un jeu de caractères à un autre, on peut utiliser la commande convmv. Elle
est cependant rarement fournie par défaut. Certaines distributions permettent de l’installer
sans problème à partir du paquetage du même nom. Si votre distribution ne fournit pas un
tel paquet, vous devez télécharger le script Perl à l’adresse http://j3e.de/linux/convmv/.
Pour modifier récursivement tous les noms de fichiers d’un répertoire depuis le jeu de
caractères Latin-1 vers UTF-8 (avec une confirmation pour chaque modification), appelez
convmv de cette manière :
utilisateur$ convmv -r -i --notest -f iso-8859-1 -t utf8 répertoire

convmv modifie le nom, mais pas le contenu des fichiers. L’option --notest est obligatoire
pour que la conversion ait effectivement lieu.
Cette commande essaie de reconnaître elle-même les fichiers qui ont déjà un nom en UTF-8
et ne propose dans ce cas pas de renommage. Si vous désirez désactiver cette fonctionnalité,
utilisez l’option --nosmart.

15.5 Conversion de documents


Il est parfois nécessaire de convertir des documents (PostScript, PDF, HTML, texte, etc.) d’un for-
mat à un autre. La liste suivante donne quelques pointeurs vers des logiciels utiles. Vous trouve-
rez des informations sur leur utilisation dans les pages de manuel des outils correspondants.
• a2ps permet, entre autres, de transformer un document texte en document PostScript.
C’est particulièrement utile lorsque l’imprimante demande un format PostScript en
entrée. a2ps peut également reconnaître du code et il gère alors la distinction des mots
clés, des commentaires, etc.
• enscript convertit des fichiers texte aux formats PostScript, HTML et RTF.
• mpage convertit des fichiers texte au format PostScript, par défaut quatre pages par
feuille et au format Letter.
• html2text convertit les documents HTML en fichiers texte.
• html2ps est un script Perl qui convertit les fichiers HTML au format PostScript.
• ps2pdf convertit les fichiers PostScript au format PDF.
• eps2pdf convertit des images EPS au format PDF.
• pdf2ps convertit les fichiers PDF au format PostScript.
• pdftops a le même but que pdf2ps, mais fournit plus d’options.
• gs (GhostScript) convertit les documents PostScript et PDF en divers formats bitmap et
formats d’imprimantes. GhostScript est une brique importante du système d’impression
de Linux.
Linux Livre Page 236 Mardi, 23. septembre 2008 1:05 13

236 LINUX

• Le paquetage psutils fournit diverses commandes pour gérer les fichiers PostScript.
On notera en particulier psbook, qui permet de réordonner les pages d’un texte afin qu’il
puisse être imprimé en livre, ou encore psnup, qui regroupe plusieurs pages réduites sur
une seule feuille.
• pdftk (PDF-Toolkit) fournit des fonctions comparables à psutils pour les fichiers PDF.
• pdftotext extrait le texte d’un fichier PDF et l’enregistre dans un fichier texte. Le format
et les images sont alors perdus.
Linux Livre Page 237 Mardi, 23. septembre 2008 1:05 13

Outils réseau
16
Ce chapitre présente les différentes commandes pour utiliser et gérer les fonctions et services
élémentaires d’un réseau. Vous apprendrez comment vous connecter à un autre ordinateur
du réseau avec ssh, comment transférer des données avec wget ou rsync, etc.
Il existe, pour certaines de ces commandes, une interface utilisateur graphique. Cependant,
comme dans les chapitres précédents, nous donnons ici la priorité aux commandes texte.
Certaines commandes ne peuvent être utilisées qu’en root ou en sudo. D’autres peuvent être
lancées par un utilisateur conventionnel, mais ne sont généralement pas à sa disposition − la
variable d’environnement PATH ne contient pas le chemin des commandes en question. Il
peut donc être nécessaire de saisir le chemin complet, généralement /sbin ou /usr/sbin. Par
exemple, pour lancer la commande ifconfig sous Fedora en tant qu’utilisateur non root, il
faut la saisir sous la forme /sbin/ifconfig.

16.1 Connaître l’état du réseau


Cette section donne un aperçu des commandes qui permettent de connaître l’état d’un
réseau. Vous trouverez plus d’informations sur ces commandes au Chapitre 26, qui traite de
la configuration manuelle de l’accès au réseau et présente un petit glossaire de termes, tels
que passerelle, serveur de noms, mascarade, etc.
Identifier les La commande ifconfig affiche une liste de toutes les interfaces réseau connues. Les plus clas-
interfaces
réseau siques sont ethn (Ethernet), pppn (accès à Internet via un modem) ou encore ipppn (RNIS).
L’interface lo joue un rôle particulier : elle permet aux programmes locaux de communiquer
avec un protocole réseau. Cela fonctionne même lorsque l’ordinateur n’est connecté à aucun
réseau. Pour un ordinateur doté d’une carte Ethernet, ifconfig affiche par exemple ceci :
root# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:fc:a0:96:4d
inet adr:192.168.1.5 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::250:fcff:fea0:964d/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:15923066 erreurs:0 :0 overruns:0 frame:0
TX packets:16212689 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:2095295710 (1.9 GB) Octets transmis:4097249288 (3.8 GB)
Interruption:18 Adresse de base:0xb400
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
Packets reçus:303173 erreurs:0 :0 overruns:0 frame:0
TX packets:303173 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
Octets reçus:65773827 (62.7 MB) Octets transmis:65773827 (62.7 MB)
Linux Livre Page 238 Mardi, 23. septembre 2008 1:05 13

238 LINUX

Si l’interface eth0 ne s’affiche pas, la carte réseau n’est pas activée. Les outils de configura-
tion de votre distribution permettent de remédier à cette situation. Vous pouvez aussi l’acti-
ver manuellement, par exemple avec ifconfig eth0 192.168.0.2. Si une erreur du type
"eth1: ERREUR en récupérant les signaux de l’interface: Aucun périphérique de ce type" s’affiche, le
module du noyau permettant de gérer la carte réseau est probablement manquant.
Tester ping envoie un petit paquet réseau une fois par seconde à une adresse fournie en paramètre.
l’accessibilité
de localhost Lorsqu’un ordinateur s’y trouve, il envoie une réponse (qui peut cependant être masquée
par un pare-feu). ping fonctionne tant qu’il n’est pas interrompu par Ctrl+C. Il permet donc
de tester si une connexion peut être établie entre l’ordinateur local et un autre ordinateur.
Il vaut mieux commencer par tester ping localhost pour voir si l’interface de bouclage lo et
les fonctions réseau élémentaires de l’ordinateur fonctionnent. Cela devrait être le cas,
même si vous n’avez pas de carte réseau (localhost désigne toujours l’ordinateur local).
utilisateur$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.030 ms
...

Tester Lorsque vous indiquez, à la place de localhost, l’adresse IP d’un autre ordinateur du réseau
l’accessibilité
du réseau local local, vous testez si ce réseau fonctionne. -c 2 fait en sorte que seuls deux paquets soient
envoyés et évite que ping continue indéfiniment.
utilisateur$ ping -c 2 192.168.1.4
PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data.
64 bytes from 192.168.1.4: icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from 192.168.1.4: icmp_seq=2 ttl=64 time=0.031 ms

--- 192.168.1.5 ping statistics ---


2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.031/0.040/0.049/0.009 ms

Lorsqu’il existe un serveur de noms sur le réseau local qui associe l’adresse IP 192.168.1.4 à
un nom (ou lorsque le fichier /etc/hosts gère cette tâche), vous pouvez utiliser le nom de
l’ordinateur à la place de son adresse IP :
utilisateur$ ping -c 2 mars
PING mars.sol (192.168.1.4) 56(84) bytes of data.
64 bytes from mars.sol(192.168.1.4): icmp_seq=1 ttl=64 time=0.133 ms
64 bytes from mars.sol (192.168.1.4): icmp_seq=2 ttl=64 time=0.127 ms

--- mars.sol ping statistics ---


2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.127/0.130/0.133/0.003 ms

Tester l’accès à Vous pouvez ensuite vérifier si votre accès à Internet fonctionne. La commande suivante
Internet
teste en même temps deux aspects de la configuration du réseau : la disponibilité du serveur
de noms et le fonctionnement de la passerelle.
utilisateur$ ping -c 2 www.yahoo.fr
PING www.euro.yahoo-eu1.akadns.net (87.248.120.129) 56(84) bytes of data.
64 bytes from www.vip.ch1.yahoo.com (87.248.120.129): icmp_seq=1 ttl=51
time=35.7 ms
Linux Livre Page 239 Mardi, 23. septembre 2008 1:05 13

OUTILS RÉSEAU 239

64 bytes from www.vip.ch1.yahoo.com (87.248.120.129): icmp_seq=2 ttl=51


time=34.8 ms

--- www.euro.yahoo-eu1.akadns.net ping statistics ---


2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 34.889/35.336/35.784/0.485 ms

Si cela ne fonctionne pas, plusieurs éléments peuvent être en cause :


• Le serveur de Yahoo! peut être hors service ou ne pas répondre au ping pour des raisons
de sécurité. Essayez d’atteindre une autre adresse Internet connue.
• Lorsque le serveur de noms ne fonctionne pas, vous obtenez le message d’erreur ping: unk-
nown host yahoo.fr. Vérifiez que /etc/resolv.conf contient l’adresse du serveur de noms.
• Lorsque la passerelle ne fonctionne pas, vous obtenez le message d’erreur connect: Network
is unreachable. Lancez alors la commande route -n. La dernière ligne doit ressembler à celle
de l’exemple suivant, où la colonne Passerelle contient l’adresse IP de votre passerelle :
root# route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0

• Si un seul ordinateur sert de passerelle à un réseau local complet, il est possible que vous
ayez oublié d’activer la mascarade. Dans ce cas, l’accès à Internet ne fonctionne pas pour le
réseau local. La configuration d’une passerelle Internet est détaillée au Chapitre 26.
Suivre le traceroute permet de connaître le chemin parcouru par un paquet réseau émis par votre ordi-
chemin des
paquets IP nateur vers un autre ordinateur et le temps qu’il met à parcourir chaque étape du chemin. Par
défaut, la commande effectue trois tentatives et affiche les trois durées correspondantes.
La commande ne fonctionne pas si l’une des étapes a un pare-feu qui bloque le port UDP
33434 utilisé par traceroute. Dans ce cas, traceroute n’affiche pour cette étape et les étapes
suivantes que trois étoiles.
Les lignes suivantes montrent le chemin entre mon ordinateur et google.fr :
utilisateur$ traceroute google.fr
traceroute to google.fr (216.239.59.104), 30 hops max, 40 byte packets
1 gateway (192.168.1.1) 0.438 ms 0.626 ms 0.819 ms
2 166-59-186-195.bluewin.ch (195.186.59.166) 25.807 ms 25.964 ms 26.145 ms
...
10 72.14.198.57 (72.14.198.57) 29.364 ms 30.086 ms 31.558 ms
...
16 216.239.59.104 (216.239.59.104) 61.008 ms 61.301 ms 62.771 ms

La première ligne est ma passerelle/routeur ADSL. La deuxième est la passerelle de mon


fournisseur d’accès à Internet. Les lignes 3 à 9 sont les différentes étapes dans le réseau de
mon fournisseur d’accès à Internet. La ligne 10 passe sur le réseau de Google et les lignes 11
à 16 sont les différentes étapes dans le réseau de Google.
Linux Livre Page 240 Mardi, 23. septembre 2008 1:05 13

240 LINUX

16.2 Travailler sur un autre ordinateur


Les programmes telnet, rlogin et ssh permettent de travailler sur un autre ordinateur. Cela
fonctionne aussi bien pour les programmes en mode texte que pour les programmes X. Ces
derniers exigent tout de même que les diverses bibliothèques correspondent sur les deux
ordinateurs.
Cette section se limite à la description de ssh. Les anciens programmes telnet et rlogin ne
devraient plus être utilisés. Ils transmettent les informations de connexion, y compris le mot
de passe de l’utilisateur, en clair.

Le prérequis pour utiliser ssh est qu’un serveur SSH, c’est-à-dire le programme sshd, fonctionne sur le
second ordinateur. Pour certaines distributions Linux, c’est le cas par défaut. Pour d’autres, il faut installer le
programme − il s’agit souvent du paquetage openssh-server. Si vos ordinateurs sont équipés de pare-
feu, ceux-ci ne doivent pas bloquer le port 22.

Session shell Si vous êtes sur l’ordinateur uranus et que vous désirez lancer une session shell sur mars, il
typique
suffit de lancer la commande suivante :
utilisateur@uranus$ ssh mars
utilisateur@mars’s password: xxx

Lorsque vous vous connectez pour la première fois à un autre ordinateur, un avertissement
de ce type apparaît :
The authenticity of host ’mars (192.168.1.10)’ can’t be established.
RSA1 key fingerprint is 1e:0e:15:ad:6f:64:88:60:ec:21:f1:4b:b7:68:f4:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’mars,192.168.1.10’ (RSA1) to the list of known hosts.

Cela signifie que ssh n’est pas sûr de pouvoir faire confiance à l’ordinateur mars doté de
l’adresse IP 192.168.1.10. Il se pourrait en effet qu’un ordinateur étranger se fasse passer pour
mars. Si vous répondez à la question par yes, ssh enregistre le nom, l’adresse et l’empreinte RSA
(code pour identifier de manière unique l’ordinateur) dans ~/.ssh/known_hosts.
Si vous souhaitez vous connecter à mars sous un autre identifiant que celui sous lequel vous
travaillez sur uranus (par exemple, en tant que root), ajoutez l’option -l :
utilisateur@uranus$ ssh -l root mars
root@mars’s password: xxx
Lancer des Plutôt que d’utiliser ssh de manière interactive, vous pouvez n’exécuter qu’une commande
commandes
sur l’ordinateur distant. Il suffit de passer la commande et ses paramètres comme paramètres
de la commande ssh. ssh est terminé après cette commande.
utilisateur@uranus$ ssh mars commande options
utilisateur@mars’s password: xxx

Cette possibilité a priori triviale ouvre de larges horizons. Vous pouvez, par exemple, lancer
sur un ordinateur distant la commande tar, transférer l’archive créée à la sortie standard (en
utilisant un tiret - après l’option -f) et rediriger la sortie standard vers l’entrée d’une
seconde commande tar, cette fois-ci locale, avec un tube |. Vous pouvez ainsi déplacer
une arborescence complète via SSH.
Linux Livre Page 241 Mardi, 23. septembre 2008 1:05 13

OUTILS RÉSEAU 241

La commande suivante montre comment je copie le répertoire htdocs de mon serveur web
kofler.cc vers le répertoire local ~/bak :
utilisateur$ ssh kofler.cc tar -cf - htdocs |tar -xC ~/bak/ -f -
utilisateur@kofler.cc’s password: xxxxx
SSH et X On peut aussi lancer un programme X dans une session SSH. Il est alors lancé sur l’ordina-
teur distant, mais s’affiche sur l’ordinateur local et comprend toutes les saisies du clavier et
de la souris. Comme le protocole X fonctionne à travers le réseau, une bonne connexion
réseau est nécessaire pour pouvoir travailler confortablement.
Pour lancer des programmes X avec ssh, il faut passer l’option -X. Le serveur doit avoir la
ligne ForwardX11 yes dans le fichier de configuration /etc/sshd_config pour que le transfert
fonctionne. ssh s’occupe alors lui-même de la gestion de la variable DISPLAY.
Les commandes suivantes lancent l’éditeur xemacs sur l’ordinateur mars. La fenêtre de l’édi-
teur s’affiche cependant sur l’ordinateur uranus, où elle peut être utilisée. Cela fonctionne
même lorsque le serveur X de mars ne fonctionne pas (par exemple, en niveau d’exécution
3). Toutes les bibliothèques X doivent néanmoins être installées.
utilisateur@uranus$ ssh -X mars
utilisateur@mars’s password: xxx
utilisateur@mars$ xemacs &
Copier des La commande scp permet de copier des fichiers via SSH sur un réseau. La syntaxe ressemble
fichiers de
manière sûre à celle-ci :
avec scp
utilisateur$ scp [[utilisateur1@]hote1:]fichier1 \
[[utilisateur2@]hote2:][fichier2]

fichier1 est copié de l’ordinateur hote1 vers l’ordinateur hote2 et enregistré sous le nom
fichier2. Voici quelques remarques quant aux nombreux éléments optionnels de la com-
mande :
• hote1 et hote2 peuvent être omis lorsqu’ils désignent l’ordinateur local (localhost).
• Il n’est pas nécessaire d’indiquer utilisateur1 lorsqu’il s’agit de l’utilisateur actif.
• Il n’est pas nécessaire d’indiquer utilisateur2 lorsqu’il s’agit de l’utilisateur courant
d’hote1 ou de utilisateur1.
• fichier1 peut être un répertoire. Il faut alors passer l’option -r pour que tout le réper-
toire et ses sous-répertoires soient pris en compte.
• Il n’est pas nécessaire d’indiquer fichier2 lorsque le nom du fichier ne doit pas être
modifié. Le fichier est alors copié dans le répertoire personnel de utilisateur2.
On peut aussi indiquer un répertoire à la place de fichier2. ~ représente le répertoire
personnel de utilisateur2.
Par exemple, si l’utilisateur michael travaille sur l’ordinateur uranus et veut transférer le
fichier abc.txt dans le répertoire ~/efg de mars, la commande scp à saisir est celle-ci :
michael@uranus$ scp abc.txt mars:~/efg/
michael@mars’s password: xxx
Linux Livre Page 242 Mardi, 23. septembre 2008 1:05 13

242 LINUX

SFTP SFTP (Secure FTP) est une variante plus sûre du protocole FTP basée sur SSH. Nous traiterons
de SFTP à la section 16.3.
Système de Le site web http://shfs.sourceforge.net fournit du code pour un module du noyau qui met
fichiers SHFS
en place un système de fichiers basé sur SSH. L’utilisation de shfs est plus confortable que
d’innombrables commandes scp et bien plus sûre que NFS − même s’il est plus lent.
Le module shfs est à l’heure actuelle rarement fourni par les distributions. Vous devez
donc le compiler vous-même. Après make et make install, la commande suivante devrait
fonctionner :
root# mount -t shfs utilisateur@mars /test

Cette commande monte le répertoire racine de l’ordinateur mars (et non le répertoire person-
nel de utilisateur !) dans le répertoire local /test. mount appelle la commande shfsmount, qui
s’occupe de passer les bonnes options.
Tunnels SSH Les utilisateurs avancés peuvent également créer des tunnels avec SSH. Ils permettent de
transférer tous les paquets IP envoyés à un port donné. Ils fournissent donc un chemin sécu-
risé pour les paquets entre deux ordinateurs, même lorsqu’un pare-feu se trouve entre les
deux machines.
Si le tunnel est créé depuis l’ordinateur client, il faut utiliser l’option -L port_local:hôte_dis-
tant:port_distant. Par exemple, la commande suivante fait correspondre le port 3306 de
mars au port 3307 de l’ordinateur local. La commande démarre également une session SSH,
ce que l’on peut éviter avec l’option -N lorsque seul le tunnel (sans connexion au shell) est
désiré. Si vous souhaitez vous connecter à mars avec un autre utilisateur, utilisez comme
précédemment l’option -l.
utilisateur@uranus$ ssh -L 3307:mars:3306 mars
utilisateur@mars’s password: xxxx

Le tunnel reste ouvert jusqu’à ce que la session SSH soit terminée avec Ctrl+D. Si vous avez
lancé ssh avec l’option -N, le programme doit être arrêté avec Ctrl+C.
3306 est le port habituel de MySQL. Vous pouvez désormais accéder au serveur MySQL qui
fonctionne sur mars via le port 3307 d’uranus. Il faut pour cela indiquer le port 3307 et le nom
d’hôte 127.0.0.1 pour effectivement utiliser ce tunnel :
utilisateur@uranus$ mysql -u identifiantmysql -P 3307 -h 127.0.0.1 -p
Enter password: xxxxx

Pour que cela fonctionne, il faut bien sûr que MySQL accepte les connexions réseau, ainsi
que la combinaison identifiant de connexion/hôte.

Utiliser SSH sans mot de passe


Tous les exemples de cette section supposent que vous vous connectiez sur la machine cible
de manière tout à fait normale après avoir exécuté ssh, scp, etc. Ce n’est cependant pas
toujours nécessaire. Vous pouvez créer une paire de clés SSH sur l’ordinateur local grâce à
ssh-keygen -t rsa : une clé privée (~/.ssh/id_rsa) et une clé publique (~/.ssh/id_rsa).
Linux Livre Page 243 Mardi, 23. septembre 2008 1:05 13

OUTILS RÉSEAU 243

Lorsque vous lancez ssh-keygen, vous devez saisir un mot de passe. Il s’agit en fait d’une
phrase de passe, c’est-à-dire du texte libre pouvant se composer de plusieurs mots. La clé
privée est chiffrée avec cette phrase de passe.
Copiez la clé publique avec scp sur l’ordinateur cible et ajoutez-la au fichier ~/.ssh/
authorized_keys − si ce fichier n’existe pas encore, créez-le. Renouvelez cette étape sur tous
les ordinateurs auxquels vous vous connectez en SSH.
Lorsque vous ouvrez une connexion vers l’ordinateur cible, ssh accède aux informations
des clés. Le mot de passe à saisir n’est alors plus celui du compte, mais celui de la clé. Vous
n’avez alors rien gagné en termes de confort.
Il serait tentant de ne pas saisir de mot de passe lorsque ssh-keygen crée les clés. Cela per-
met en effet une connexion sans mot de passe à l’ordinateur distant, mais n’importe qui
peut lire et utiliser votre clé privée. La sécurité de tous les ordinateurs sur lesquels vous
avez transféré votre clé publique dépend alors de votre clé privée. Si celle-ci est subtilisée,
un attaquant aura accès à vos comptes sur toutes ces machines !
ssh-agent est une solution plus sûre et confortable. Ce programme gère toutes les clés privées
d’un utilisateur (il n’en existe généralement qu’une seule). On le lance avec :
utilisateur$ eval $(ssh-agent)

Les variables d’environnement de la console courante sont alors modifiées. ssh-agent fonc-
tionne en processus d’arrière-plan. ssh-add permet d’ajouter une clé privée :
utilisateur$ ssh-add ~/ssh/id_rsa
Enter passphrase for /home/utilisateur/.ssh/id_rsa: xxxxx

ssh utilise alors la clé gérée par ssh-agent. Vous n’aurez plus à saisir le mot de passe pour la
clé, ni à taper la phrase de passe à chaque connexion : il vous suffira de la saisir une seule
fois. L’avantage de ssh-agent est qu’il est limité à une seule console grâce à la portée des
variables d’environnement.
L’utilisation de SSH sans mot de passe est donc soit peu sûre (clé privée sans mot de passe),
soit lourde (ssh-agent). Par conséquent, la configuration n’est rentable que si vous utilisez
ssh fréquemment.

16.3 Transférer des fichiers


FTP
Remarques FTP, qui signifie File Transfer Protocol (protocole de transfert de fichiers), est une méthode
préliminaires
ancienne de transfert de fichiers sur un réseau. Il doit sa grande popularité au mode de trans-
fert anonyme : de gros serveurs sur Internet donnent accès à tous les utilisateurs à des archives
FTP. Cet accès n’est pas protégé par un mot de passe. Pour utiliser un FTP anonyme, vous
pouvez utiliser comme nom d’utilisateur anonymous et comme mot de passe généralement
votre adresse de courrier électronique.
Linux Livre Page 244 Mardi, 23. septembre 2008 1:05 13

244 LINUX

L’inconvénient de FTP est que le nom d’utilisateur et le mot de passe sont transférés en clair.
SFTP (Secure FTP) est une alternative plus sûre basée sur SSH. HTTP, le protocole de transfert
des pages web, est également souvent utilisé comme alternative à FTP.
Dans cette section, nous parlerons de l’utilisation de FTP du point de vue du client.
Commande L’ancêtre de tous les clients FTP est la commande texte ftp. Comme elle transfère par défaut
FTP
les fichiers depuis et vers le répertoire courant, il faut, avant de la lancer, passer dans le
répertoire de travail souhaité avec cd. La session FTP est ensuite initialisée avec ftp utili-
sateur@serveurftp ou, plus simplement, ftp serveurftp. Si vous désirez utiliser le mode
anonyme, indiquez anonymous comme nom d’utilisateur.
Une fois la connexion établie et le mot de passe saisi, vous pouvez naviguer dans les réper-
toires du serveur FTP grâce aux commandes cd, pwd et ls. Pour télécharger un fichier depuis
le serveur vers votre ordinateur, lancez get fichier. Son nom n’est pas modifié. Vous pou-
vez aussi transférer un fichier depuis votre répertoire courant vers un répertoire du serveur
FTP avec la commande put. Cela ne fonctionne que si vous avez des droits en écriture sur le
répertoire distant. Sur un FTP anonyme, ces droits sont généralement limités à un seul
répertoire, par exemple /pub/incoming. On ferme une session FTP avec la commande quit
ou bye.

Avant de télécharger un fichier, vous devez passer en mode binaire. En mode texte, FTP interprète tous les
fichiers en tant que texte et tente de les convertir au format de l’ordinateur destinataire. Les fichiers binaires
ne nécessitent pas une telle conversion. La plupart des serveurs FTP sont cependant configurés en mode
binaire par défaut.

Les lignes suivantes montrent le téléchargement du noyau Linux depuis un serveur FTP :
utilisateur$ cd ~/src
utilisateur$ ftp ftp.kernel.org
Connected to zeus-pub.kernel.org.
220 Welcome to ftp.kernel.org.
Name (ftp.kernel.org:michael): anonymous
331 Please specify the password.
Password: nom@monsite.fr
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub/linux/kernel/v2.6
250 Directory successfully changed.
ftp> get linux-2.6.25.tar.bz2
local: linux-2.6.25.tar.bz2 remote: linux-2.6.25.tar.bz2
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for linux-2.6.25.tar.bz2 (48601689
bytes).
226 File send OK.
48601689 bytes received in 26.85 secs (1767.6 kB/s)
ftp> quit
221 Goodbye.
Linux Livre Page 245 Mardi, 23. septembre 2008 1:05 13

OUTILS RÉSEAU 245

Commandes FTP
? affiche une liste des commandes FTP
! permet d’exécuter des commandes shell
ascii passe en mode texte
binary passe en mode binaire
bye termine la session FTP
cd rep passe dans le répertoire indiqué
close ferme la connexion au serveur FTP
get fichier télécharge un fichier depuis le serveur vers l’ordinateur local
help commande affiche un court message d’aide sur la commande indiquée
lcd rep passe dans le répertoire indiqué sur l’ordinateur local
ls affiche le contenu du répertoire courant sur le serveur
lls affiche le contenu du répertoire courant sur l’ordinateur local
mget motif télécharge tous les fichiers de l’archive FTP dont le nom correspond au motif
open ouvre la connexion à un ordinateur distant
prompt active/désactive la confirmation du téléchargement de chaque fichier avec mget
put fichier transfère un fichier depuis le répertoire local vers le serveur FTP
quit quitte FTP
reget fichier relance le téléchargement d’un fichier déjà partiellement téléchargé
user permet une nouvelle connexion

Autres La commande ftp n’est pas très confortable à utiliser, mais il existe de nombreuses alter-
programmes
FTP natives :
• Navigateurs web et gestionnaires de fichiers. Ces derniers peuvent être utilisés pour
des téléchargements FTP. Certains programmes permettent même de transférer des
fichiers vers un serveur (par exemple, Nautilus et Konqueror).
• Clients FTP graphiques. Des programmes comme kbear (KDE) ou gftp (Gnome) sont
prévus pour les tâches FTP typiques. Ils fournissent des fonctions spéciales, comme des
signets, la gestion des mots de passe, le téléchargement en parallèle de plusieurs
fichiers, la synchronisation de dossiers, etc.
• ncftp. Cette alternative est également un client en mode texte, mais il est plus confortable à
utiliser.
• sftp. Ce programme est aussi minimaliste que ftp, mais nettement plus sûr. Cependant,
l’ordinateur distant doit faire fonctionner un serveur SSH et non FTP.
• wget, rsync, mirror et sitecopy. Ces commandes permettent de télécharger des arbores-
cences FTP entières.
Linux Livre Page 246 Mardi, 23. septembre 2008 1:05 13

246 LINUX

Si vous souhaitez utiliser FTP en étant identifié, de nombreux clients FTP comprennent la syntaxe :
ftp://utilisateur:motdepasse@serveur
Certains clients ne fonctionnent pas bien lorsqu’un pare-feu se trouve entre votre ordinateur et le serveur
FTP, ou lorsque vous êtes dans un réseau local connecté à Internet via une mascarade. Dans ce cas, passer
le client en mode passif résout souvent le problème. Il n’existe cependant pas de commande standard ;
vous devez lire la documentation de votre client. La plupart des clients reconnaissent une telle situation et acti-
vent automatiquement le mode passif.

SFTP (Secure FTP)


La commande sftp fait partie du paquetage openssh. Elle utilise en interne un protocole
entièrement différent de ftp et ne peut être utilisée que lorsqu’un serveur SSH est lancé
sur le serveur distant. SFTP ne permet pas de se connecter en mode anonyme. Son fonc-
tionnement est comparable à celui de ftp. sftp -p fichier permet d’automatiser les télé-
chargements par SFTP.
Alternatives à Pour beaucoup, sftp est trop spartiate. Cependant, les alternatives plus confortables sont
SFTP
plus rares que dans le cas de ftp. Il faut parfois se montrer persuasif avant que la connexion
ne s’établisse réellement.
• gftp. Il permet de se connecter à un site via SSH. Il suffit pour cela de choisir l’option
correspondante dans le menu déroulant du protocole.
• kbear. Il permet également de se connecter en SFTP.
• konqueror. Pour ouvrir une connexion SFTP avec Konqueror, tapez l’adresse sftp://uti-
lisateur@serveur. Une fois le mot de passe saisi, il se comporte comme dans un répertoire
local. Konqueror comprend aussi directement le protocole SSH, ce qui peut fonctionner
sans faire appel à sftp. Pour cela, tapez l’adresse fish://utilisateur@serveur.

wget
L’interactivité de la commande ftp rend l’automatisation des téléchargements peu pratique
(par exemple, dans un script). Elle est de toute façon peu flexible. On ne peut pas, par exem-
ple, reprendre un téléchargement là où il a été interrompu. La commande wget a été conçue
pour le téléchargement de gros fichiers et répertoires. Elle comprend les protocoles FTP,
HTTP et HTTPS. man wget fournit une référence de la syntaxe des principales options.
Exemples Sous sa forme la plus basique, wget télécharge simplement le fichier donné en argument :
utilisateur$ wget ftp://serveur.fr/nom.abc

Lorsque le téléchargement est, pour une raison ou une autre, interrompu, il peut être repris
avec l’option -c :
utilisateur$ wget -c ftp://serveur.fr/nom.abc

Il arrive qu’un téléchargement prenne plusieurs heures. Il est alors tentant de lancer le télé-
chargement pendant la nuit. La commande suivante s’assure que le fichier se trouve effec-
tivement sur l’ordinateur le lendemain matin. L’option -t 1000 essaie de relancer le
téléchargement jusqu’à 1 000 fois en cas de déconnexion. --retry-connrefused tente de
Linux Livre Page 247 Mardi, 23. septembre 2008 1:05 13

OUTILS RÉSEAU 247

relancer la connexion même après une erreur connection refused. Cette option est pratique
lorsque le serveur de téléchargement est peu fiable et qu’il n’est indisponible que pour de
courtes durées.
utilisateur$ wget -t 1000 --retry-connrefused http://serveur/nom.iso

La commande suivante télécharge tous les fichiers importants afin de pouvoir lire la page
web hors ligne. Voici ce que signifient les options :
• -p charge les fichiers CSS et les images.
• -k modifie en arrière-plan les liens des fichiers pour qu’ils pointent vers des fichiers
locaux.
• -E ajoute à tous les fichiers de script téléchargés (ASP, PHP, etc.) l’extension .html.
• -H suit également les liens vers les sites web externes.
utilisateur$ wget -p -k -E -H http://siteweb.fr/page.html

Lorsqu’on désire lire un site web complet en ligne, l’option -r (téléchargement récursif),
éventuellement limitée à quelques niveaux avec l’option -l, est très pratique :
utilisateur$ wget -r -l 4 -p -E -k http://siteweb.fr

rsync
Nous avons déjà présenté la commande rsync au Chapitre 13. Elle permet de copier et de
synchroniser des arborescences complètes de répertoires. Elle présente un certain nombre
d’avantages par rapport à la commande cp :
• rsync gère particulièrement bien la synchronisation de répertoires distants, y compris
lorsque la liaison est lente. Elle ne transfère que les données modifiées.
• Elle peut, pour sécuriser les transferts, travailler avec SSH.
• Elle fournit d’innombrables options qui vont au-delà des possibilités offertes par cp. On
peut, par exemple, supprimer tous les fichiers du répertoire cible qui n’existent plus
dans le répertoire source.
Utilisation Pour que rsync puisse synchroniser deux ordinateurs en réseau, elle doit être installée sur
dans un réseau
les deux ordinateurs. Les deux instances de rsync peuvent communiquer de deux manières
différentes :
• Elles peuvent utiliser un shell, le plus souvent SSH. Cela présente l’avantage de chiffrer
le transfert des données. Pour que cela fonctionne, il faut que SSH soit installé sur les
deux ordinateurs. De plus, il faut que l’ordinateur distant fasse fonctionner un serveur
SSH pour permettre les connexions en SSH.
• rsync peut aussi fonctionner en tant que démon sur l’ordinateur distant. Le serveur
rsync est configuré dans le fichier /etc/rsyncd.conf (voir la page de manuel correspon-
dante) et lancé par un script InitV (généralement /etc/init.d/rsyncd). Nous ne traiterons
pas ici de ce scénario client/serveur.
Linux Livre Page 248 Mardi, 23. septembre 2008 1:05 13

248 LINUX

Exemples Tous les exemples supposent que rsync communique par SSH. Pour cela, vous devez passer
l’option -e ssh à la commande rsync. Avant de commencer, assurez-vous que vous pouvez
vous connecter en SSH à l’ordinateur distant.
Pour les connexions réseau lentes, vous pouvez utiliser l’option -z. Celle-ci compresse les
échanges de données de rsync. Cela induit cependant une charge processeur plus impor-
tante sur les deux ordinateurs et ne garantit donc pas une synchronisation plus rapide.
Les répertoires source et cible doivent être indiqués avec la syntaxe hote:répertoire ou
utilisateur@hote:repertoire, si l’utilisateur courant n’est pas celui qu’il faut utiliser.
La commande suivante synchronise le répertoire rep1 du répertoire personnel de utilisa-
teur sur l’ordinateur saturne.sol, et le répertoire rep2 sur mars.sol. La saisie du mot de
passe est gérée par SSH (mot de passe de utilisateur sur mars.sol).
utilisateur@saturne.sol$ rsync -e ssh -az rep1/ mars.sol:rep2/
utilisateur@mars.sol’s password: xxxxx

rsync peut aussi télécharger des fichiers depuis un ordinateur distant sur l’ordinateur local.
Cette commande synchronise les répertoires dans l’autre sens :
utilisateur@saturne.sol$ rsync -e ssh -az mars.sol:rep2/ rep3/
utilisateur@mars.sol’s password: xxxxx

Lorsque rsync est appelée par un script de sauvegarde, la saisie interactive du mot de passe
peut s’avérer gênante. Nous avons vu à la section 16.2 comment se connecter en SSH sans
mot de passe ; il suffit d’adapter ces solutions au compte servant à la sauvegarde.

BitTorrent
BitTorrent est un protocole pour télécharger efficacement des fichiers volumineux désirés
par de nombreux utilisateurs. L’idée de base est simple : les données ne sont pas téléchar-
gées depuis un serveur central, mais depuis tous les ordinateurs du réseau qui disposent
d’au moins une partie du fichier. Cela signifie aussi que, lorsque vous téléchargez un fichier via
BitTorrent, vous le mettez à disposition de tous les autres utilisateurs de BitTorrent, au moins
pendant le temps de votre téléchargement (et, idéalement, une fois ce dernier terminé).
Dans le cadre de Linux, BitTorrent est généralement utilisé pour distribuer des images de
DVD de distributions. Lorsqu’une nouvelle version sort, des milliers d’utilisateurs cherchent
à télécharger ce même fichier. Cela surcharge bien souvent les serveurs FTP ou HTTP. BitTorrent
permet d’augmenter sensiblement la vitesse de téléchargement dans ce type de cas.
Fichiers Les téléchargements BitTorrent sont propagés par le biais de fichiers .torrent. Il s’agit de
.torrent
fichiers binaires relativement petits, contenant entre autres des sommes de contrôle pour
d’innombrables morceaux de fichiers. Cela permet de ne pas devoir télécharger les données
du fichier de manière séquentielle, mais en fonction des morceaux disponibles sur le réseau
et en parallèle.
Clients Les clients BitTorrent sont des programmes qui gèrent les téléchargements et mettent à dis-
BitTorrent
position les fichiers téléchargés sur le réseau BitTorrent. Les clients populaires comprennent
BitTorrent, KTorrent (KDE) ou Transmission (Gnome, à partir de la version 2.22). KTorrent
montre les parties du fichier déjà téléchargées (voir Figure 16.1). Pour lancer des téléchar-
gements dans une console, qu’il s’agisse d’une interface interactive ou d’un programme
Linux Livre Page 249 Mardi, 23. septembre 2008 1:05 13

OUTILS RÉSEAU 249

utilisable dans un script, il vaut mieux utiliser bittorrent-curses ou bittorent-console,


fournis avec le paquetage bittorrent.

Figure 16.1
Téléchargements avec
KTorrent.
Linux Livre Page 250 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 251 Mardi, 23. septembre 2008 1:05 13

Vim
17
Ce chapitre présente l’éditeur Vi, et plus particulièrement son implémentation libre Vim (Vi
Improved, Vi amélioré). Faisons tout de même une remarque préliminaire qui s’applique éga-
lement au chapitre suivant sur Emacs et XEmacs : ils ont en commun d’être relativement dif-
ficiles à maîtriser. Seuls les utilisateurs qui éditent beaucoup de texte, code ou documents
HTML y trouveront leur intérêt − pour eux, un éditeur de texte est un outil courant et indis-
pensable. Les éditeurs Vim, Emacs et XEmacs fournissent des possibilités presque infinies.
Autrement dit, ce chapitre s’adresse aux utilisateurs pour lesquels un contrôle total sur la
configuration et la programmation de l’éditeur est plus important qu’une jolie interface uti-
lisateur. Quiconque modifie occasionnellement un fichier de configuration et se contente
d’OpenOffice.org, de Firefox et d’autres programmes bureautiques trouvera sans doute
Kate (KDE), Gedit (Gnome) ou un autre petit éditeur pour la console largement suffisants.
Reste la sempiternelle question : Vi ou Emacs/XEmacs ? Les deux programmes font partie
des fondations de l’histoire d’Unix/Linux. Ils proposent d’innombrables fonctions spécia-
les, comme la coloration syntaxique pour de nombreux langages de programmation et types
de documents, ou la recherche avec des expressions rationnelles. Cette question entraîne
souvent d’interminables discussions entre les partisans des deux camps et ne peut pas être
tranchée de façon objective.
À titre personnel, les éditeurs Emacs/XEmacs me paraissent plus intuitifs et plus simples à
utiliser. Sous Vi, le passage du mode standard au mode d’édition peut mener à une confu-
sion certaine, surtout au début. Mais Vi et les éditeurs de la même famille sont un standard
de fait sous Unix/Linux. Il demande moins de ressources et est souvent présent sur les sys-
tèmes de secours minimaux (sur lesquels il n’y a plus de place pour Emacs). Mieux vaut de
toute façon connaître les fonctions de base des deux éditeurs.
L’éditeur Vi original est un programme commercial et n’est pas disponible sous Linux. Vim
est un programme libre, compatible avec Vi et qui fournit de nombreuses améliorations et
extensions. On le lance généralement grâce à vi ou vim.
Version 7 Ce chapitre se base sur la version 7 de Vim. Les distributions Linux plus anciennes fournis-
sent encore une version 6.n. Comme la plupart des nouveautés de la version 7 sont des fonc-
tions avancées, la grande majorité des informations de ce chapitre est également valable
pour les versions plus anciennes de Vim. La seule exception importante est la fenêtre à
onglets, qui n’est disponible que pour la version 7.
Vim en mode On lance généralement Vim dans une console texte ou une fenêtre de terminal. Si vous dési-
graphique
rez un menu et des barres de défilement décentes, vous pouvez essayer gvim (voir
Figure 17.1). Cette variante graphique doit généralement être installée en plus ; le paquetage
s’appelle vim-X11.
Liens Ce chapitre n’est qu’une rapide présentation de Vim. Le tutoriel vimtutor est très utile pour
les débutants. Cette commande lance vim avec un texte d’aide en français, qui contient une
introduction et de nombreux exemples.
Linux Livre Page 252 Mardi, 23. septembre 2008 1:05 13

252 LINUX

Figure 17.1
La variante graphique
de l’éditeur Vim.

Les liens suivants pointent vers diverses ressources intéressantes : http://www.vim.org/, site
web de Vim ; http://www.eng.hawaii.edu/Tutor/vi.html, tutoriel ; http://vimdoc.source-
forge.net/vimfaq.html, FAQ ; http://tnerual.eriogerg.free.fr/vim.html, résumé des principaux
raccourcis ; http://www.truth.sk/vim/vimbook-OPL.pdf, livre de 500 pages sur Vim en PDF.

Le principal développeur de Vim, Bram Moolenaar, le décrit comme du "charityware" : Vim est gratuit sous
une licence GPL. Les utilisateurs réguliers sont cependant priés d’envoyer des remerciements sous forme de
dons destinés à une association d’aide aux enfants en Ouganda. Vous trouverez plus d’informations à ce
sujet dans Vim avec la commande Esc :help uganda Entrée.

17.1 Rapide introduction


On lance Vim le plus souvent avec la commande vim nomdufichier dans une console ou une
fenêtre de terminal. Le fichier à modifier s’affiche alors directement dans la console.
Mode normal Avant de pouvoir écrire du texte, vous devez vous familiariser avec une particularité. Vim a
deux modes de travail (mode normal et mode insertion). Le mode normal ne permet pas de saisir
du texte ; il sert à lancer des commandes. Dans ce mode, si vous tapez L, vous déplacez le curseur
d’une ligne vers le bas. D+W supprime un mot, P le colle à la position courante du curseur, etc.
Mode Pour saisir du texte, vous devez passer au mode insertion avec I (insert, insertion) ou A
insertion
(append, ajout). Vim affiche alors à gauche de la dernière ligne le texte -- INSERTION --. En
mode insertion, vous pouvez saisir du texte, déplacer le curseur et supprimer des caractères
un par un grâce à Suppr et Retour Arrière. La différence entre I et A est que I commence à la
position courante du curseur, tandis que A commence au caractère suivant.
Avant de pouvoir saisir une nouvelle commande, vous devez repasser en mode normal avec
Échap. Ce mode n’a pas de signe distinctif. La partie gauche de la dernière ligne est vide.

Lorsqu’on passe du mode insertion au mode normal, le curseur se déplace d’un caractère vers la gau-
che. Ce comportement est décrit dans la FAQ de Vim et ne peut pas être modifié. Pour lancer une seule
commande sans quitter le mode insertion, ni modifier la position du curseur, vous pouvez la lancer avec
Ctrl+O.
Linux Livre Page 253 Mardi, 23. septembre 2008 1:05 13

VIM 253
Supprimer du Dans le mode insertion, vous pouvez supprimer des caractères isolés avec Suppr et Retour
texte
Arrière. Pour supprimer des mots, des lignes ou des paragraphes, vous devez passer en mode
normal avec Échap. Dans ce mode, D+W supprime un mot et D+D une ligne complète. Si vous
préfixez ces commandes d’un nombre, la commande de suppression est répétée le nombre de
fois indiqué. Par exemple, 5+D+D supprime 5 lignes. . répète la dernière commande exécutée.
P (paste, coller) colle le texte supprimé à l’emplacement du curseur. Maj+P l’insère avant la
position courante du curseur. U (undo, annuler) annule la dernière modification. Ctrl+R
rétablit la modification annulée. Vim 6 ne pouvait annuler que la dernière modification et un
nouvel appui sur U la rétablissait.
Enregistrer et Pour enregistrer le fichier modifié, passez en mode normal avec Échap et tapez la com-
quitter
mande :w Entrée. :q Entrée ferme l’éditeur si tous les fichiers ouverts sont enregistrés. :q!
Entrée permet de le fermer même si les dernières modifications n’ont pas été enregistrées.
:wq Entrée combine l’enregistrement et la fin du programme.

Commandes élémentaires
Changement de mode
I active le mode insertion
A active le mode insertion ; la saisie commence au caractère suivant
q active le mode normal ou interrompt la commande courante

Commandes en mode normal


DW supprime un mot
DD supprime la ligne courante
nDD supprime n lignes
P colle le texte supprimé à la position du curseur
s+P colle le texte supprimé avant la position du curseur
. répète la dernière commande
U annule la dernière commande (à partir de Vim 7, 1 000 annulations possibles)
s+U annule toutes les modifications de la ligne courante
c+R rétablit les annulations (à partir de Vim 7)
:w enregistre le fichier
:q quitte Vim
: q! quitte Vim même lorsqu’il existe des modifications non enregistrées

Commandes en mode insertion


c+O commande exécute la commande sans quitter le mode insertion

Aide
Vim dispose d’une aide en ligne plutôt complète (mais uniquement en anglais). Pour affi-
cher la page de démarrage de l’aide, tapez F1 dans n’importe quel mode. Vous pouvez aussi
saisir :help en mode normal ou :help thème. Pour savoir quels thèmes contiennent le mot
clé abc, saisissez :help abc Ctrl+D.
Linux Livre Page 254 Mardi, 23. septembre 2008 1:05 13

254 LINUX

Fenêtre d’aide La fenêtre d’aide s’affiche dans sa propre zone dans Vim. On appelle cette partie une fenêtre
− il ne s’agit cependant pas d’une fenêtre indépendante au sens du système graphique de
Linux. Vous pouvez la fermer avec :q. Vous pouvez aussi la laisser ouverte et continuer à
travailler sur votre texte. Vous pouvez changer de fenêtre active avec Ctrl+W+W.
Navigation Dans l’aide, les liens et les autres thèmes sont mis en évidence (par exemple, dans une autre
dans l’aide
couleur ou entourés de caractères |). Pour passer à un thème, placez le curseur sur le mot clé
et tapez Ctrl+]. Si la souris est activée, il suffit de double-cliquer sur le thème pour le consulter.
Ctrl+T permet de revenir à la page précédente.

17.2 Déplacement du curseur


En principe, les touches de direction fonctionnent en mode normal comme en mode inser-
tion. Il existe néanmoins diverses combinaisons de touches pour déplacer la position du
curseur. Les plus importantes sont résumées dans le tableau ci-dessous. Les experts de Vim
se déplacent souvent plus efficacement avec ces touches qu’avec les touches du curseur.

Déplacement du curseur
En mode normal et en mode insertion
Touches de direction comportement habituel

Uniquement en mode normal


H/L déplace le curseur vers la gauche/la droite
J/K déplace le curseur vers le bas/le haut
s+H / s+L déplace le curseur au début/à la fin de la page courante
s+M déplace le curseur au milieu de la page courante
B/W déplace le curseur d’un mot vers la gauche/la droite
E déplace le curseur à la fin du mot
GE déplace le curseur à la fin du mot précédent
(/) déplace le curseur au début de la phrase actuelle/suivante
{/} déplace le curseur au début du paragraphe courant/suivant
^/$ déplace le curseur au début/à la fin de la ligne
s+G déplace le curseur à la fin du fichier
GG déplace le curseur au début du fichier
n s+G déplace le curseur à la ligne n
n| déplace le curseur à la colonne n
% déplace le curseur jusqu’à la parenthèse correspondante ()[]{}

Une particularité de Vim est que la touche de déplacement vers la gauche au début d’une
ligne ne déplace pas le curseur à la fin de la ligne précédente. De même, la touche de dépla-
cement vers la droite en fin de ligne ne passe pas à la ligne suivante. Pour activer ce compor-
tement, lancez en mode normal la commande :set whichwrap=b,s,<,>,[,]. Vous pouvez
aussi copier cette commande dans ~/.vimrc.
Linux Livre Page 255 Mardi, 23. septembre 2008 1:05 13

VIM 255
Enregistrer la M lettre enregistre la position courante du curseur et ’ lettre permet de le déplacer à la position
position du
curseur enregistrée.
Vim enregistre automatiquement la position du curseur lorsque celui-ci est de nouveau
déplacé. ’ ’ permet de retourner à cette position. ’ ’ une seconde fois permet de revenir à la
dernière position. ’ [ et ’ ] déplacent le curseur respectivement au début et à la fin de la der-
nière section modifiée.
Où suis-je ? En mode insertion, Vim affiche à droite de la ligne d’état la ligne et la colonne courantes,
ainsi qu’un pourcentage qui indique dans quelle section du texte vous vous trouvez − par
exemple, 92 % signifie que vous êtes dans les dix derniers pour cent). Si vous êtes perdu,
Ctrl+G affiche dans la ligne d’état le nom du fichier, l’état (par exemple "Modifié"), le nombre
total de lignes et la position relative du curseur dans le texte.

17.3 Modifier du texte


Insérer un Pour insérer un caractère plusieurs fois, saisissez en mode normal le nombre, la commande
caractère
plusieurs fois A, le caractère et Échap. Ainsi, pour ajouter 50 fois le caractère =, tapez 50 A = Échap. Une
fois exécutée, la commande vous ramène en mode normal.
Faute de Vim permet également de corriger des fautes de frappe typiques. ~ change la casse du carac-
frappe
tère courant et X+P échange les deux caractères qui suivent le curseur.
Supprimer du Le tableau suivant donne un aperçu des principales commandes pour supprimer du texte.
texte
Lorsque vous indiquez un nombre devant la commande de suppression, celle-ci est répétée
le nombre de fois correspondant.

Supprimer du texte
Uniquement en mode insertion
DN comportement habituel
En mode normal
X supprime le caractère sous le curseur ou le texte marqué
s+X supprime le caractère précédant le curseur
DD supprime la ligne courante
D commande de curseur supprime le texte correspondant à la commande de déplacement du
curseur
D$ supprime jusqu’à la fin de la ligne
DB supprime le mot précédent
DW supprime le mot suivant

Le texte est en fait transféré dans un registre de copie. Le dernier texte supprimé peut être
recopié sous le curseur avec Maj+P et après la position du curseur avec P.
Les commandes C (change, changer) sont une manière un peu particulière de supprimer du
texte et de le remplacer par du nouveau texte. C+W supprime le mot courant et active le
mode insertion. Il suffit alors de saisir le même mot et de terminer la saisie avec Échap. C
fonctionne de la même manière pour les autres touches du curseur.
Linux Livre Page 256 Mardi, 23. septembre 2008 1:05 13

256 LINUX

Copier du Vous pouvez aussi copier du texte dans le registre de copie sans le supprimer. Le tableau sui-
texte
vant résume les commandes correspondantes (qui sont toutes spécifiques au mode normal).

Copier du texte dans le registre de copie


Y copie le texte marqué
YY copie la ligne courante dans le registre
Y commande de curseur copie le texte indiqué par la commande de curseur. Par exemple, Y }
copie le texte jusqu’à la fin du paragraphe

Marquer du Certaines commandes supposent qu’une zone du texte soit marquée. Il existe trois modes de
texte
marquage que vous pouvez activer (au point de départ du marquage) et désactiver avec V,
Maj+V et Ctrl+V. Lorsque l’un de ces modes est actif, la ligne d’état de Vim contient le texte
-- VISUEL --. Vous pouvez ensuite déplacer le curseur à la fin de la zone ou étendre le mar-
quage grâce à des commandes spéciales qui ne s’appliquent qu’à l’intérieur d’un mode de
marquage. La zone marquée est mise en évidence par un mode vidéo inverse ou des couleurs.

Marquer du texte
V (dés)active le mode de marquage par caractère
s+V (dés)active le mode de marquage par ligne
c+V (dés)active le mode de marquage par bloc
AW étend le marquage d’un mot
AS étend le marquage d’une phrase
AP étend le marquage d’un paragraphe
AB étend le marquage d’un niveau de parenthèses
A s+B étend le marquage d’un niveau d’accolades
GV rétablit le marquage du dernier texte marqué
O échange la position du curseur entre le début et la fin du marquage

Tant que le mode de marquage est actif, plusieurs commandes sont à votre disposition pour
modifier le texte en question. Le tableau suivant en présente quelques exemples.

Modifier du texte marqué


X supprime le texte marqué
Y copie le texte marqué dans le registre de copie
~ modifie la casse
J joint les lignes du texte marqué en une seule ligne
GQ découpe les lignes (pour du texte continu)
> ajoute une tabulation en tête des lignes
< supprime une tabulation en tête des lignes
= indente le texte comme le mode d’indentation courant l’indique
!sort trie les lignes avec la commande externe sort
Linux Livre Page 257 Mardi, 23. septembre 2008 1:05 13

VIM 257
Indenter des Lorsqu’on édite du code, il est important de l’indenter correctement. Les commandes élé-
lignes
mentaires sont > > et < <. Elles déplacent la ligne actuelle d’une tabulation, dans un sens ou
dans l’autre. Lorsque plusieurs lignes sont marquées, vous pouvez aussi modifier un bloc
complet. Il suffit alors de taper une seule fois < ou >. :set shiftwidth=n modifie la taille des
tabulations (normalement huit caractères).
Vim peut aussi indenter automatiquement les lignes pendant la saisie. Il faut pour cela acti-
ver un mode d’indentation, par exemple avec :set cindent. Les fonctions de base sont les
suivantes :
• autoindent indente la ligne suivante comme la ligne précédente.
• smartindent fonctionne comme autoindent, mais gère également les accolades. Pour
que Vim reconnaisse correctement les accolades fermantes, elles doivent être saisies au
début d’une nouvelle ligne. La taille de l’indentation après les accolades (normalement
huit caractères) peut être modifiée avec l’option shiftwidth. Le texte précédemment
marqué peut être réindenté avec =.
• cident fonctionne comme smartindent, mais reconnaît également diverses structures de
code C et C++. Le mécanisme d’indentation peut alors être modifié via différentes
options (voir :help C-indenting).
Texte continu Vim est préconfiguré de manière que la composition du code et la modification de fichiers
de configuration fonctionnent bien. C’est pour cela qu’il ne coupe pas automatiquement les
lignes − vous devez passer à la ligne avec Entrée. Vous pouvez cependant aussi l’utiliser
pour composer des textes, par exemple des courriers électroniques. Le tableau suivant
résume quelques commandes et options pour l’édition de texte continu.

Édition de texte continu


s+J supprime le retour à la ligne entre la ligne actuelle et la ligne suivante
n s+J supprime les retours à la ligne entre les lignes sur n lignes
GQAP remet en forme le paragraphe courant et place le curseur au début du paragraphe
suivant
GWAP remet en forme le paragraphe courant et laisse le curseur à sa position courante
:set textwidth=n coupe automatiquement les lignes à n caractères (par défaut 0, désactivé)

Les commandes G prennent automatiquement en compte le mode autoindent et la valeur de


textwidth. Si textwidth est à 0, la longueur maximale des lignes est de 79 caractères. Les options
d’édition de texte continu sont modifiables via formatoptions (voir l’aide correspondante).
Complètement La saisie de mots longs, de fonctions et de noms de variables est fatigante et peut mener à
automatique
des erreurs. Vim permet de saisir les premières lettres et d’appuyer sur Ctrl+P. Lorsqu’un
seul mot est possible, il est inséré automatiquement. Sinon, vous pouvez choisir le mot
désiré dans une liste qui apparaît à la position du curseur. L’affichage de cette liste est spéci-
fique à Vim 7. Vim prend en compte pour le complètement tous les mots de tous les fichiers
chargés ; les mots du fichier courant et à proximité du curseur sont listés en premier.
Linux Livre Page 258 Mardi, 23. septembre 2008 1:05 13

258 LINUX

17.4 Chercher et remplacer


Chercher du En mode normal, / texte Entrée déplace le curseur à la première occurrence du texte
texte
recherché. N répète la recherche et Maj+N la répète vers le haut. Pour lancer une recher-
che vers le haut, commencez la recherche avec ? expression. Le tableau suivant résume
les principaux caractères spéciaux qui permettent d’effectuer des recherches selon des
motifs.

Caractères spéciaux pour la recherche


. caractère arbitraire
^ $ début de ligne/fin de ligne
\< \> début de mot/fin de mot
[a-e] caractère entre a et e
[^a-e] caractère qui n’est pas entre a et e
\s espace
\t tabulation
\( \) regroupement d’un motif de recherche dans un atome
\= expression de recherche présente 0 ou 1 fois
* expression de recherche présente un nombre arbitraire de fois (y compris 0)
\+ expression de recherche présente au moins une fois

Casse Par défaut, Vim prend en compte la casse lors d’une recherche. Si ce n’est pas le comporte-
ment que vous désirez, préfixez le motif de recherche avec /c (ne fonctionne que pour cette
recherche) ou lancez :set ignorecase (s’applique à toutes les recherches futures).
Recherche :set incsearch active la recherche incrémentale. Vim déplace le curseur pendant la saisie
incrémentale
de / terme au premier emplacement correspondant. Entrée termine la recherche et Échap
l’interrompt. Après la recherche, toutes les occurrences restent marquées dans le texte
jusqu’à la recherche suivante, ou jusqu’à l’exécution de :nohlsearch.
Chercher et Pour remplacer toutes les occurrences du texte abc par efg sans confirmation, lancez la
remplacer
commande :%s/abc/efg/g en mode normal. ’ ’ permet de revenir au début de la recher-
che. Le tableau suivant résume quelques variantes de la commande chercher/remplacer.
Lorsque Vim demande une confirmation, vous pouvez répondre Y ou N pour chaque
occurrence, afin d’indiquer si le texte doit effectivement être remplacé ou non. Q inter-
rompt l’opération et A remplace toutes les occurrences suivantes. Dans l’expression de
remplacement, vous pouvez faire référence au nième atome du motif de recherche avec
\n. L’aide en ligne :help substitute présente des astuces supplémentaires et de nom-
breux exemples.

Chercher et remplacer
: %s/abc/efg/g remplace toutes les occurrences de abc par efg sans confirmation
: %s/abc/efg/gc remplace toutes les occurrences de abc par efg avec confirmation
: %s/abc/efg/gi remplace sans prendre en compte la casse
Linux Livre Page 259 Mardi, 23. septembre 2008 1:05 13

VIM 259

17.5 Éditer plusieurs fichiers en même temps


En mode normal, :e fichier charge un nouveau fichier. Ce dernier remplace le fichier édité,
qu’il faut donc enregistrer, sans quoi Vim interrompt l’opération. Vous pouvez forcer le
chargement du fichier avec :e! fichier, mais vous perdez alors toutes les modifications du
fichier courant.
Tampon et Vous pouvez aussi éditer plusieurs fichiers en même temps. Il faut cependant d’abord expliquer
fenêtre
le concept peu intuitif de gestion et d’affichage des textes dans Vim.
Tous les textes ouverts dans l’éditeur se trouvent en interne dans un tampon, qu’il s’agisse
de fichiers ou de textes d’aide. Lorsqu’il n’y a qu’un tampon, celui-ci s’affiche dans l’espace
de travail de Vim. Pour afficher plusieurs tampons en même temps, l’espace de travail est
divisé en plusieurs fenêtres, ce qui est également le cas lorsqu’on affiche un texte d’aide.
Une fenêtre n’est dans ce cas pas une fenêtre au sens du système graphique de Linux, mais
juste une partie de l’espace de travail.
Les tampons des fichiers modifiés sont toujours visibles dans une fenêtre. Ceux des fichiers qui
n’ont pas été modifiés depuis leur dernier enregistrement peuvent en revanche être masqués.
Ces tampons restent en mémoire, mais ne sont plus actifs. Attention, lorsque vous fermez une
fenêtre avec un fichier non enregistré, toutes les modifications sont perdues. Le tampon reste
disponible, mais il ne contient que le fichier tel qu’il a été enregistré pour la dernière fois.
Vim peut également afficher un même fichier dans plusieurs fenêtres, par exemple pour
travailler sur différentes parties d’un texte très long.
Onglets Vim 7 facilite l’édition de multiples fichiers grâce aux onglets. Il s’agit de fenêtres se recou-
vrant les unes les autres, indiquées dans la première ligne de Vim, comme dans Firefox ou
d’autres navigateurs web. Les onglets sont particulièrement confortables lorsque la souris
est activée ; vous pouvez alors simplement choisir ou fermer un onglet donné (avec le bouton
X en haut à droite). Vous trouverez plus d’informations sur les onglets avec :help tabpage.
La Figure 17.2 montre un exemple d’onglets dans Vim.

Figure 17.2
Trois fichiers dans une
fenêtre à trois onglets.

Charger un Vous pouvez charger un nouveau fichier grâce à :new fichier si vous travaillez avec des
nouveau
fichier fenêtres, ou :tabnew fichier si vous travaillez avec des onglets.
Linux Livre Page 260 Mardi, 23. septembre 2008 1:05 13

260 LINUX

Vous pouvez indiquer dès le démarrage du programme plusieurs fichiers, par exemple avec
vim fichier1 fichier2 fichier3. Par défaut, le premier s’affiche et les autres sont chargés
dans un tampon non visible. Si vous désirez ouvrir chaque fichier dans une fenêtre ou un
onglet, vous devez passer respectivement l’option -o ou -p.
Le tableau suivant résume les principales commandes pour charger et enregistrer des
fichiers, passer entre des fenêtres ou des onglets, etc.

Fichiers, tampons, fenêtres, onglets


: e fichier charge un nouveau fichier dans le tampon courant
:w enregistre le fichier courant
: wall enregistre tous les fichiers ouverts
: wq enregistre et ferme le tampon
:q ferme le tampon et quitte Vim lorsque aucun tampon n’est ouvert

; q! ferme le tampon même lorsqu’il y a des modifications non enregistrées


: qall ferme tous les tampons et quitte Vim
: split partage la fenêtre et affiche le même texte dans les deux fenêtres
: new crée un tampon vide et l’affiche dans une fenêtre
: new fichier charge un fichier dans un nouveau tampon

: only maximise la fenêtre courante et ferme les autres tampons


: all affiche tous les tampons dans une fenêtre plus petite
: buffers affiche la liste de tous les tampons
: buffer n affiche le tampon n et ferme le tampon courant
: buffer fichier affiche le tampon contenant le fichier indiqué dans la fenêtre courante

: tabnew crée un nouveau tampon et l’affiche dans un onglet


: tabnew fichier charge un fichier et l’affiche dans un onglet
: tabnext passe à l’onglet suivant
: tabprevious passe à l’onglet précédent
c+W / Z passe à l’onglet précédent/suivant
: tabclose ferme l’onglet courant
: tabonly ferme tous les autres onglets

17.6 Trucs et astuces


Saisir effica- Pour taper les commandes qui commencent par :, il existe quelques aides à la saisie. Les
cement les
commandes : touches du curseur permettent de naviguer dans les dernières commandes saisies. Vim
enregistre les commandes dans ~/.viminfo et les enregistre même à la fin du programme.
Vous pouvez aussi compléter des mots clés avec Tab et abréger de nombreuses commandes
(par exemple, :tabn à la place de :tabnext).
Afficher les :set number affiche à côté de chaque ligne le numéro de ligne. :set nonumber désactive ce
numéros de
ligne mode.
Linux Livre Page 261 Mardi, 23. septembre 2008 1:05 13

VIM 261
Créer des Par défaut, Vim ne crée pas de sauvegarde à l’enregistrement (pas de copie du fichier origi-
sauvegardes
nal). Si vous souhaitez activer ce comportement, lancez en mode normal :set backup. La
sauvegarde est nommée anciennom~. Pour activer les sauvegardes à un niveau général, ajoutez
set backup dans ~/.vimrc.
Activer la Lorsque vous utilisez Vim dans une console texte ou une fenêtre de terminal, la gestion
souris
de la souris est limitée à son fonctionnement sous X : vous pouvez copier du texte et le coller
à la position courante du curseur, mais vous ne pouvez pas par exemple repositionner le
curseur.
Pour que la souris soit plus utile sous Vim, vous pouvez utiliser la version graphique, gvim,
ou lancer en mode standard la commande :set mouse=a. Cela permet de modifier la posi-
tion courante du curseur avec un clic de souris, de choisir la fenêtre Vim active, d’utiliser la
molette de la souris, etc.
Ce mode a cependant un inconvénient : le bouton du milieu ne colle que le dernier texte
supprimé dans Vim. On ne peut plus copier de texte entre Vim et les autres programmes
avec ce bouton. On peut cependant appuyer en même temps sur Maj, ce qui permet de réta-
blir le comportement habituel. Attention cependant : il faut que le mode Insertion soit actif,
sans quoi les caractères copiés par la souris sont interprétés comme des commandes, ce qui
peut éventuellement mal tourner.
Insérer des Pour que Vim insère des espaces à la place des tabulations, lancez la commande :set
espaces à la
place des expandtab ou copiez cette directive dans ~/.vimrc. Pour transformer toutes les tabulations
tabulations par le nombre correspondant d’espaces dans un fichier modifié précédemment, lancez
:retab. Pour effectuer l’opération inverse, utilisez les commandes :set unexpandtab, puis
:retab!.
Définir des Vous savez déjà que . répète la dernière commande. Pour répéter plusieurs fois une suite de
macros
commandes, vous pouvez définir une macro. Passez pour cela dans le mode Macro avec Q
et un caractère, qui indique le nom de la macro (plus exactement, le nom du registre dans
lequel se trouve la macro). Vous pourrez alors lancer la macro avec @ nom_de_la_macro − les
macros ne sont pas enregistrées lorsque vous quittez Vim.
Par exemple, la suite de touches suivante définit la macro a qui ajoute le caractère " au début
et à la fin d’un mot :
Q A B I " Échap E A " Échap Q

Lorsque le curseur se trouve dans un mot, vous pouvez maintenant taper @ A pour l’entou-
rer de guillemets. @ @ répète la dernière commande sans que vous deviez vous souvenir de
son nom de macro ou de registre.
Lancer des Pour lancer une commande sans quitter Vim, lancez dans le mode normal :!nom de la com-
commandes
Linux mande, par exemple :!ls pour obtenir une liste des fichiers du répertoire courant. Vim affiche le
résultat de la commande et Entrée permet de retourner à l’éditeur.
Pour lancer plusieurs commandes, vous pouvez lancer avec :sh un nouvel interpréteur de
commandes. Lorsque vous tapez Ctrl+D, vous revenez à l’éditeur.
Linux Livre Page 262 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 263 Mardi, 23. septembre 2008 1:05 13

Emacs et XEmacs
18
Il serait réducteur de décrire Emacs comme un simple éditeur. Il permet certes d’éditer du texte,
mais c’est aussi un environnement de développement complet pour les programmeurs, doté
d’un client de courrier électronique, d’un lecteur Usenet, etc. Pour certains utilisateurs, Emacs
est comparable à un système d’exploitation dans lequel toutes les fonctions du travail quoti-
dien sont rassemblées. Une fois que vous serez habitué à Emacs, vous ne pourrez plus utiliser
d’autres éditeurs. J’ai d’ailleurs écrit cet ouvrage entièrement avec Emacs...
Mais il possède aussi ses parts d’ombre. L’utilisation d’Emacs peut sembler à première vue
effrayante. Elle regorge de séquences Ctrl+ et Alt+ pour appeler un nombre incalculable de
commandes. Une blague courante, mais pas forcément injustifiée, est qu’Emacs signifie en
réalité Escape Meta Alt Control Shift (Échap Méta Alt Contrôle Majuscule). L’interface utilisa-
teur (menus, barres de boutons) paraît obsolète ; la localisation en français est globalement
inexistante ; modifier la configuration (par exemple, l’utilisation d’une autre police) s’avère
laborieux… En résumé, Emacs est un éditeur pour les professionnels qui sont prêts à investir
du temps de formation et qui ne s’arrêtent pas à l’aspect extérieur.

18.1 Rapide introduction


GNU Emacs et Il existe deux versions d’Emacs : GNU Emacs et XEmacs. Elles peuvent être utilisées aussi bien
XEmacs
dans une console texte que sous X et sont sous licence GPL. Il existe de toute façon de nombreu-
ses similarités entre les deux versions. Elles ont été développées en parallèle depuis plusieurs
années. Ce chapitre est basé sur Emacs 22.0 (voir Figure 18.1) et XEmacs 21.4 (voir Figure 18.2).
Nous ne soulignerons que les différences significatives entre les deux versions.

Figure 18.1
GNU Emacs.

Travailler avec GNU Emacs ou XEmacs est essentiellement une affaire de goût. Le pro-
gramme est lancé avec les commandes emacs ou xemacs. Les deux programmes sont très sta-
bles et contiennent de nombreuses extensions et une documentation très riche. XEmacs
utilise plus de place sur le disque dur et nettement plus de mémoire. À titre personnel, je
Linux Livre Page 264 Mardi, 23. septembre 2008 1:05 13

264 LINUX

préfère GNU Emacs, car XEmacs m’a déjà posé plusieurs problèmes mystérieux alors que
j’éditais des fichiers Unicode.

Figure 18.2
Xemacs.

En plus de ces deux versions d’Emacs, il existe quelques variantes plus petites : jed, jmacs,
jove et zile sont globalement des miniversions très utilisables. Leur principal avantage est
qu’elles sont nettement moins gourmandes en ressources, ce qui en fait des applications
idéales pour les systèmes d’urgence ou des ordinateurs plus anciens avec des processeurs
lents et peu de mémoire.
Liens Vous trouverez plus d’informations sur GNU Emacs et XEmacs sur Internet :
http://www.gnu.org/software/emacs/emacs.html site web officiel de GNU Emacs
http://www.xemacs.org site web officiel de XEmacs
http://refcards.com/refcard/gnu-emacs-gildeas raccourcis clavier de GNU Emacs
http://refcards.com/refcard/xemacs-wingb raccourcis clavier de XEmacs
http://www.emacswiki.org/ wiki multilingue sur Emacs

Charger et enregistrer des fichiers, quitter le programme


On lance Emacs en tapant emacs ou xemacs. Si vous indiquez un ou plusieurs noms de
fichiers, ces derniers sont chargés automatiquement. On peut utiliser des motifs de noms
de fichiers : emacs Makefile *.[ch] ouvre le fichier Makefile et tous les fichiers *.c et *.h
du répertoire. Pour charger un fichier alors que le programme est lancé, utilisez Ctrl+X
Ctrl+F+nom_du_fichier+Entrée.
Ctrl+X Ctrl+S permet d’enregistrer un fichier modifié. Ctrl+X Ctrl+C termine le programme. Si
Emacs découvre un fichier non enregistré, il vous demande si vous désirez l’enregistrer avant
de quitter. Si vous saisissez n, une question de sécurité apparaît pour vérifier que vous souhai-
tez réellement quitter Emacs sans enregistrer le fichier. Si c’est le cas, répondez par yes. Pour
l’enregistrer sous un nouveau nom, tapez Ctrl+X Ctrl+W+nom du fichier.
Si vous utilisez Emacs dans une console texte, Ctrl+Z permet de repasser temporairement à
la console. fg reprend le travail.
Linux Livre Page 265 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 265

Charger et enregistrer des fichiers, quitter Emacs


c+X c+F fichier e charge un fichier
c+X I insère un fichier dans le texte courant
c+X c+S enregistre un fichier
c+X S enregistre tous les fichiers avec confirmation
c+X S ! enregistre tous les fichiers sans confirmation
c+X c+W fichier e enregistre le fichier sous un nouveau nom
c+X c+C quitte l’éditeur

Copies de Emacs crée lors de l’enregistrement une copie de sauvegarde, nommée nom~, qui contient le
sauvegarde
texte original. De plus, il enregistre à intervalles réguliers le contenu du texte dans le fichier
#nom#. Vous pouvez reprendre ce fichier lorsque votre travail est interrompu par un orage
ou lorsque vous n’avez pas pu fermer proprement Emacs pour une raison ou une autre.
Les fichiers # sont enregistrés dans le jeu de caractères interne d’Emacs et non dans celui de
votre fichier. Vous devez donc, pour récupérer le fichier, utiliser la commande Alt+X+reco-
ver-session. Vous pouvez aussi charger le fichier et modifier son jeu de caractères avec
Ctrl+X+Entrée+F+jeu de caractères.

Commandes élémentaires
Vous pouvez déplacer le curseur avec les touches de direction et PgPréc/PgSuiv. Si cela ne
fonctionne pas − par exemple, si Emacs est démarré dans un terminal mal configuré −, utilisez
les commandes suivantes :

Raccourcis clavier lorsque le curseur ne fonctionne pas


c+F déplace le curseur d’un caractère vers la droite
c+B déplace le curseur d’un caractère vers la gauche
c+P déplace le curseur d’un caractère vers le haut
c+N déplace le curseur d’un caractère vers le bas
c+V déplace le curseur d’une page vers le haut
a+V déplace le curseur d’une page vers le bas

Vous pouvez saisir du texte à n’importe quel endroit. Suppr et Retour Arrière permettent de
supprimer un caractère. Vous pouvez aussi utiliser Ctrl+D pour supprimer un caractère à la
position du curseur.

Ctrl+X+U et Ctrl+_ permettent d’annuler les dernières modifications. Cette fonction d’annulation fonc-
tionne pour des commandes d’une complexité arbitraire et est pratiquement illimitée.
Linux Livre Page 266 Mardi, 23. septembre 2008 1:05 13

266 LINUX

Lorsque vous faites une erreur dans la saisie d’une commande, vous pouvez annuler la
commande avec Ctrl+G. C’est particulièrement pratique lorsque vous appuyez par erreur
sur Échap.

Système d’aide
Emacs fournit de nombreuses commandes pour appeler le système d’aide. La plus importante
pour commencer est F1+T (tutoriel). Ctrl+X+B+Entrée permet de revenir au texte original.
Lorsque plusieurs sections de texte (fenêtres) restent ouvertes après avoir lancé l’aide, vous
pouvez déplacer le curseur dans la fenêtre suivante avec Ctrl+X+O. Ctrl+X+0 (zéro) ferme la
fenêtre courante, Ctrl+X+1 ferme toutes les fenêtres à part la fenêtre courante. Ces trois com-
mandes permettent de passer de la fenêtre d’aide à la fenêtre de texte et vice versa, puis de
fermer la fenêtre d’aide lorsque vous avez terminé.
Si en revanche le texte d’aide s’affiche dans la fenêtre entière, vous pouvez revenir à votre
propre texte avec Ctrl+X+B+Entrée. Emacs gère plusieurs textes (par exemple, votre texte et
le texte d’aide) par le biais de tampons, dont nous parlerons plus tard.

Utilisation du système d’aide


11 affiche une vue d’ensemble des commandes d’aide disponibles
1 A texte e affiche toutes les commandes contenant text
1B affiche tous les raccourcis clavier
1 C raccourci décrit le raccourci indiqué
1 s+F affiche la FAQ d’Emacs
1I démarre le système info pour afficher un texte d’aide hiérarchisé
1N affiche les modifications par rapport aux anciennes versions
1T démarre le tutoriel d’Emacs
1 c+F nom démarre le système info et affiche des informations sur la commande indiquée
1 c+P offre des informations sur le concept de logiciel libre

La principale source d’informations à propos d’Emacs est le système info interne, qui fait
office de manuel officiel. Certaines distributions le fournissent au format HTML pour qu’il
soit plus facile à lire.
Mode info Le système d’aide d’Emacs repose sur le format GNU Info. Pour lire ce texte, Emacs active le
mode info. Ce dernier fournit quelques raccourcis clavier supplémentaires. Vous pouvez
aussi suivre les liens ou les éléments de menus avec le bouton du milieu de la souris. L permet
de revenir à la dernière page vue.

18.2 Bases
Modes Emacs connaît plusieurs modes d’édition, dans lesquels sont définies des commandes sup-
d’édition
plémentaires pour éditer des fichiers spécifiques. Il faut différencier les modes majeurs et
mineurs. Un seul mode majeur peut être actif à la fois, tandis que plusieurs modes mineurs
peuvent coexister.
Les modes majeurs contiennent, entre autres, des modes pour presque tous les langages de
programmation (C, C++, Java, etc.), ainsi que le mode LaTeX pour modifier des fichiers
Linux Livre Page 267 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 267

LaTeX. Lorsqu’on charge un fichier, Emacs charge automatiquement le mode correspondant


(par exemple, le mode C, lorsque le nom du fichier se termine par .c). S’il ne reconnaît pas
le mode, il choisit le mode Fundamental.
Les modes mineurs comprennent, entre autres, le mode Fill (pour éditer du texte continu
avec des paragraphes sur plusieurs lignes) et le mode Abbrev (pour remplacer automati-
quement les abréviations).
Les commandes élémentaires d’Emacs fonctionnent de la même manière dans tous les
modes. C’est pourquoi vous n’avez pas à vous en préoccuper pour l’instant. Lorsque vous
désirez désactiver les actions d’Emacs dues à un mode donné (par exemple, l’indentation
automatique des lignes de programme en mode C), repassez dans le mode fondamental
avec Alt+X+fundamental-mode+Entrée.
Conventions Il existe généralement trois possibilités pour saisir des commandes Emacs : le menu, l’utili-
du clavier
sation de raccourcis clavier (pour la plupart, des combinaisons commençant par Ctrl ou Alt)
ou la saisie de la commande. Cette dernière méthode implique de préfixer la commande par
Alt+X+− par exemple, Alt+X+delete-char+Entrée.
La saisie des commandes et des paramètres est facilitée par deux mécanismes :
• Vous pouvez étendre un nom de commande comme dans un interpréteur de commandes
avec Tab. Emacs est sensible à la casse. Les noms de fichiers peuvent également être étendus
de cette manière. Lorsque plusieurs possibilités existent, Emacs les affiche toutes à l’écran.
• Vous pouvez, après avoir tapé Alt+X, passer aux commandes précédente et suivante de
l’historique avec Alt+P et Alt+N.
Dans cet ouvrage, les touches sont indiquées en majuscules, mais cela ne signifie pas que la
touche Maj doit être enfoncée. Alt+X signifie simplement que vous devez appuyer simulta-
nément sur la touche Alt et la touche X.
Dans la documentation d’Emacs, DEL ne signifie pas Suppr, mais Retour Arrière. C signifie
Ctrl et M Méta.
Il n’existe pas de touche Méta sur un clavier PC standard. M-x peut être saisi de deux manières
sur un clavier PC : Échap X (l’un après l’autre) ou Alt+X. J’utiliserai dans ce livre la combi-
naison avec Alt, généralement plus confortable.
Dans le cas de certains programmes compatibles avec Emacs ou si l’on utilise Emacs dans
une console texte, certains problèmes peuvent survenir avec la touche Alt. Il faut donc, à la
place de Alt+X (les deux touches simultanées), taper Échap X (successivement).
Attention, Ctrl+X Ctrl+B est différent de Ctrl+X+B.
Gestion de la Dans Emacs et XEmacs, la convention habituelle de X (marquage du texte avec la souris et
souris
copie avec le bouton du milieu) reste valable. Lorsque vous affichez plusieurs textes en même
temps, vous pouvez déplacer la barre de séparation entre les zones de texte avec le bouton
gauche de la souris. Les fonctions supplémentaires dépendent de la version d’Emacs.
• Sous GNU Emacs, le bouton droit place le point de fin d’une zone de texte marquée, qui
peut ensuite être modifiée. Les boutons de la souris ont des fonctions différentes
lorsqu’ils sont utilisés en combinaison avec Ctrl ou Maj.
• Sous XEmacs, le bouton droit affiche un menu contextuel.
Linux Livre Page 268 Mardi, 23. septembre 2008 1:05 13

268 LINUX

Options de Lorsque vous démarrez Emacs sous X, vous pouvez utiliser de nombreux paramètres pour
démarrage
les couleurs, le jeu de caractères, etc. Le tableau ci-dessous recense les principales options.
La page de manuel d’Emacs en offre une référence complète.

Options de la ligne de commande


-nw Emacs en mode texte dans la fenêtre de l’interpréteur de commandes
-fg couleur couleur d’avant-plan, c’est-à-dire du texte, normalement noir
-bg couleur couleur d’arrière-plan (normalement noir)
-cr couleur couleur du curseur (normalement noir)
-geometry bxh+x+y taille (largeur × hauteur et position de la fenêtre, en nombres de caractères
-fn jeu de caractères Emacs avec le jeu de caractères indiqué

18.3 Déplacement du curseur


En plus des touches de direction, Emacs connaît de nombreux raccourcis clavier pour déplacer
le curseur. Les principaux raccourcis sont résumés dans le tableau ci-après.

Déplacement du curseur
a+F / a+B déplace le curseur d’un mot vers l’avant et vers l’arrière
c+A / c+E place le curseur au début ou à la fin de la ligne
a+A / a+E place le curseur au début ou à la fin du paragraphe
c+V / a+V déplace le curseur d’une page vers le bas ou vers le haut
a+< / a+> déplace le curseur au début ou à la fin d’un texte
c+L déplace le texte pour que le curseur se trouve au milieu de l’écran
a+G n e place le curseur à la ligne n

Déplacements Emacs est capable de répéter plusieurs fois une commande. Vous devez d’abord saisir
multiples du
curseur Alt+n, où n est un nombre arbitraire. Les chiffres doivent être saisis dans le clavier alphanu-
mérique, et non dans le pavé numérique à droite du clavier. Alt doit être pressé pendant
toute la saisie de votre nombre. Pour finir, saisissez la commande. Vous pouvez, par exemple,
descendre de plusieurs pages dans un texte avec Alt+n+PgSuiv. Ce comportement peut
aussi être utilisé pour saisir du texte. Par exemple, Alt+60+– dessine une ligne.
Où suis-je ? Pour savoir sur quelle ligne vous vous trouvez, saisissez Alt+X+what-line+Entrée. Emacs
affiche alors le numéro de ligne courant dans la dernière ligne de l’écran. Vous pouvez aussi affi-
cher ce numéro de façon permanente avec Alt+X+line-number-mode+Entrée. Cependant,
cela ne fonctionne pas pour les textes très longs (de plusieurs mégaoctets). La colonne s’affi-
che de la même manière en activant column-number-mode.
Enregistrer la Il est souvent souhaitable, lorsqu’on travaille sur un texte long, de pouvoir passer rapide-
position du
curseur dans ment d’un emplacement à un autre du texte. Pour cela, on peut enregistrer la position cou-
des registres rante du curseur dans un registre. Ce dernier est un emplacement de sauvegarde désigné
Linux Livre Page 269 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 269

par un caractère (lettre ou chiffre). Pour revenir au point enregistré, indiquez le nom du
registre. Notez cependant que les registres ne sont pas enregistrés lorsqu’on quitte Emacs.

Registres pour la position du curseur


c+X R z z e enregistre la position courante du curseur dans le registre z
c+X R J z e place le curseur à la position enregistrée dans le registre z

18.4 Marquer, supprimer et coller du texte


Nous avons déjà mentionné que les touches Suppr, Ctrl+D et Retour Arrière permettaient
de supprimer des caractères isolés. Pour supprimer de plus grandes quantités de texte, vous
pouvez utiliser l’une des commandes du tableau suivant.

Supprimer du texte et le réinsérer


a+D supprime le mot suivant ou la fin du mot courant
a+B supprime le mot précédent ou le début du mot courant
c+K supprime la fin de la ligne
a+0 c+K supprime le début de la ligne
a+Z x supprime tous les caractères jusqu’à la première occurrence de x
c+Y colle le texte supprimé à la position du curseur

Lorsque vous exécutez plusieurs fois l’une de ces commandes, Ctrl+Y colle l’ensemble du
texte supprimé par cette série de commandes. Ctrl+Y peut être lancé plusieurs fois et à des
endroits arbitraires du texte. Cette commande permet de coller le texte précédemment supprimé
à un autre endroit.
Les commandes indiquées sont peu souples, car la quantité de texte à supprimer est fixée.
Pour supprimer une section complète, vous devez d’abord la marquer. Pour cela, tapez
Ctrl+Espace au début ou à la fin de la section à marquer. Ce marquage reste invisible, mais
Emacs affiche le message Mark set. La zone marquée se trouve entre le point de marquage
et la position courante du curseur de texte.
Si vous ne vous habituez pas au marquage avec Ctrl+Espace, vous pouvez, sous GNU Emacs,
activer le marquage habituel de Windows avec Maj. Pour cela, lancez la commande Alt+X+pc-
selection-mode. Sous XEmacs, le mode correspondant est automatiquement activé.

Marquer du texte
c+z place une marque (invisible)
c+W supprime le texte entre la marque et le curseur
c+X c+X échange la position du curseur et de la marque
Linux Livre Page 270 Mardi, 23. septembre 2008 1:05 13

270 LINUX

La commande Ctrl+X Ctrl+X sert principalement à vérifier l’emplacement de la marque.


Répéter cette combinaison replace le curseur à sa position d’origine.
La commande Ctrl+W considère que le premier caractère entre la marque et le curseur fait
partie du marquage et qu’il doit être supprimé, tandis que le dernier caractère supprimé est
celui qui se situe avant le curseur.

18.5 Éditer du texte


Insertion et Emacs se trouve normalement en mode insertion. Cela signifie que le texte saisi est inséré à
écrasement
la position courante du curseur. Pour écraser le texte précédent, vous pouvez passer en
mode écrasement avec Alt+X+overwrite-mode+Entrée. Saisir à nouveau cette commande
permet de revenir au mode insertion. Sur un clavier bien configuré, on passe d’un mode à
l’autre avec la touche Inser.

Casse
a+C passe la lettre sous le curseur en majuscule, et toutes les lettres suivantes du mot
en minuscules
a+L passe toutes les lettres du mot à partir du curseur en minuscules
a+U passe toutes les lettres du mot à partir du curseur en majuscules
a+- a+C passe la première lettre du mot en majuscule, le reste en minuscules ; si le curseur
est au début d’un mot, s’applique au mot précédent
a+- a+L passe toutes les lettres du mot jusqu’au curseur en minuscules ; si le curseur est
au début d’un mot, s’applique au mot précédent
a+- a+U passe toutes les lettres du mot jusqu’au curseur en majuscules ; si le curseur est
au début d’un mot, s’applique au mot précédent
c+X c+L passe la zone entre la marque et le curseur en minuscules
c+X c+U passe la zone entre la marque et le curseur en majuscules

Fautes de Une faute de frappe fréquente est l’échange de deux lettres. Ctrl+T permet de corriger ce
frappe
type d’erreur. Le curseur doit se trouver sur la deuxième lettre.
Alt+T permet, de la même manière, d’échanger deux mots. Lorsque le curseur se trouve au
début d’un mot, celui-ci est échangé avec le mot précédent. Si le curseur est n’importe où
ailleurs dans le mot, alors il est échangé avec le mot suivant. L’appui successif de plusieurs
Alt+T éloigne le premier mot du second.
Ctrl+X Ctrl+T permet d’échanger la ligne courante avec la ligne précédente. L’exécution succes-
sive de plusieurs de ces raccourcis éloigne la première ligne de plus en plus vers le bas.

Tabulations
Par défaut, lorsqu’on édite un texte ASCII normal, Tab insère un caractère tabulation. Les
tabulations ne sont pas visibles. Pour savoir s’il s’agit d’une tabulation ou de plusieurs espa-
ces, observez le comportement du curseur : lorsque celui-ci se déplace par "sauts", c’est une
tabulation.
Linux Livre Page 271 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 271

En fonction du texte modifié (par exemple un fichier *.tex), (X)Emacs passe automatique-
ment dans le mode d’édition correspondant. Certains modes redéfinissent quelques tou-
ches. C’est particulièrement vrai pour Tab. En mode C, si on appuie sur cette touche, elle
indente la ligne en fonction de la structure du programme. En mode LaTeX, elle n’a aucun
effet. Lorsque Tab ne se comporte pas comme vous le désirez, le mode d’édition est proba-
blement en cause. Il existe cependant différentes possibilités pour insérer des tabulations :
• Ctrl+Q+Tab permet d’insérer une tabulation, indépendamment du mode.
• Alt+I permet, indépendamment du mode d’édition, d’insérer un caractère tabulation ou
plusieurs espaces (cela se règle dans indent-tab-mode).
• Alt+X+fundamental-mode permet de désactiver le mode d’édition courant. Tab fonc-
tionne alors comme dans tout autre programme, mais vous perdez aussi toutes les fonctions
associées au mode d’édition.
Taille des Par défaut, les tabulations ont une largeur de huit caractères. Alt+X+set-variable tab-width
tabulations
permet de modifier cette valeur par défaut. Si vous travaillez toujours avec la même taille de
tabulations, vous pouvez modifier ce paramètre dans le fichier de configuration ~/.emacs.
Passage entre Certains modes d’Emacs remplacent automatiquement les longues suites d’espaces par des
espaces et
tabulations tabulations. Alt+X tabify permet de remplacer toutes les séries d’espaces de la zone marquée
par des caractères tabulation. Alt+X untabify a le comportement inverse.

Indenter manuellement du texte


L’indentation de texte est nécessaire lorsqu’on programme pour structurer le code. La com-
mande la plus importante est appelée avec Ctrl+X+Tab. Elle indente d’un espace le texte
entre la marque (Ctrl+Espace) et le curseur. Lorsque vous préfixez cette commande de
Alt+n, vous pouvez indenter les lignes de n espaces. La même commande préfixée de Alt+–
désindente le texte.

Indentation de texte
c+X t indente le texte marqué d’un espace
a+- c+X t désindente le texte marqué d’un espace

Les commandes ci-dessus permettent uniquement d’ajouter ou de supprimer des espaces en


début de ligne. Pour réaliser cette opération au milieu d’une ligne (par exemple, lorsque
vous travaillez sur un tableau ou pour indenter les commentaires à la fin des lignes de
code), vous devez utiliser les commandes de rectangles. Un rectangle contient tous les carac-
tères de la zone entre la marque et la position du curseur.

Commandes de rectangles
c+X R O remplit la zone d’espaces (en décalant le reste du texte)
c+X R K supprime le rectangle
c+X R Y insère le rectangle supprimé à la position du curseur
a+X string-rectangle remplace chaque ligne du rectangle par une chaîne
Linux Livre Page 272 Mardi, 23. septembre 2008 1:05 13

272 LINUX

Emacs a également quelques modes d’édition dans lesquels l’indentation est effectuée auto-
matiquement. Par exemple, le mode C ajoute ou supprime des espaces après les accolades.

18.6 Texte continu


Pour l’instant, nous avons considéré que vous éditiez du code ou des fichiers de configura-
tion avec Emacs. Son environnement est un peu différent lorsqu’il s’agit de texte continu.
Emacs ne coupe pas les lignes. Lorsque celles-ci sont plus longues que la largeur de l’écran
ou de la fenêtre, un caractère \ ou une petite flèche termine la ligne et le texte se poursuit sur
la ligne suivante. Il n’y a cependant en interne aucun retour à la ligne.
Pour découper une ligne, lancez la commande Alt+Q. Celle-ci la découpe à l’espace le plus
approprié en plusieurs lignes plus courtes. Emacs considère toutes les lignes qui ne sont pas
explicitement séparées par une ligne vide comme des paragraphes. Cette commande peut
évidemment avoir des répercussions désastreuses sur du code. Ctrl+X+U permet d’annuler.
Il est bien sûr pénible de lancer sans cesse Alt+Q lorsqu’on tape un texte. Il existe donc un
mode pour le texte continu, activé avec Alt+X+auto-fill-mode. Dans ce mode, toutes les
nouvelles saisies sont automatiquement découpées. Les lignes déjà saisies avant de passer
dans ce mode ne sont cependant pas modifiées.
La longueur des lignes est généralement limitée à 70 caractères. Vous pouvez modifier cette
limite avec Alt+X+set-variable+Entrée+fill-column+Entrée+n.

Coupure de lignes dans du texte continu


a+Q procède à la coupure manuelle des lignes
a+X auto-fill-mode Entrée active le mode de texte continu (coupure automatique des lignes)

Indentation Pour saisir plusieurs paragraphes de texte indenté, vous pouvez définir la position de la
dans du texte
continu première colonne en tapant plusieurs espaces ou tabulations dans une ligne vide, qui défini-
ront la taille de l’indentation de votre texte. Lancez ensuite le raccourci Ctrl+X .. Le pro-
gramme indente alors dès la deuxième ligne du paragraphe toutes les lignes comme la
première.
Cette opération ne fonctionne que pour le texte qui n’est pas encore saisi. Pour indenter du
texte déjà saisi, il faut définir l’indentation avec Ctrl+X+., puis lancer Alt+Q. Pour désactiver
la largeur de l’indentation, placez le curseur au début de la ligne avec Ctrl+X+..

La commande Ctrl+X+. enregistre en fait tous les caractères qui se trouvent entre la position courante du
curseur et le début de la ligne. Ces derniers sont ensuite ajoutés automatiquement au début des nouvelles
lignes créées par la coupure du paragraphe. Vous pouvez utiliser cela pour préfixer toutes les lignes d’une
chaîne de caractères donnée (par exemple >).

Pour remettre en forme de plus grandes quantités de texte indenté différemment, la com-
mande Alt+X+fill-individual-paragraphs+Entrée peut s’avérer utile. Elle met en forme la
zone entre la marque et la position du curseur. L’indentation courante est alors préservée.
Linux Livre Page 273 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 273

Indenter du texte continu


c+X . définit la colonne d’indentation à la position du curseur ; celui-cidoit se situer
sur une ligne vide
a+M déplace le curseur au début d’une ligne indentée
a+X fill-individ met en forme la zone entre la marque et le curseur en gardant l’indentation
courante

Mode texte Si vous utilisez beaucoup d’indentations, le mode texte est plus confortable que les procédu-
res décrites ci-dessus. Vous pouvez l’activer avec Alt+X+text-mode+Entrée. Pour éditer du
texte continu dans ce mode, activez le mode mineur correspondant, Alt+X+auto-fill-mode.
La seule nouveauté du mode texte est qu’Emacs indente automatiquement chaque nouvelle
ligne comme la précédente. Alt+Q, pour la coupure automatique, gère également l’indentation
du paragraphe par rapport à la première ligne.

Mode texte
a+X text-mode active le mode texte
a+X auto-fill-mode active le mode mineur pour le texte continu
a+Q procède à une coupure manuelle des lignes et conserve l’indentation de la
première sur le paragraphe.
a+S centre la ligne courante
a+s+S centre le paragraphe courant

Pour centrer une ligne ou un paragraphe sans avoir à passer dans le mode texte, vous pou-
vez lancer la commande correspondante depuis un autre mode grâce à Alt+X+center-line
et Alt+X+center-paragraph.
Abréviations Une des particularités d’Emacs est que vous pouvez étendre des abréviations sans prérequis
particulier. Indiquez les premières lettres d’un mot et saisissez Alt+/. Emacs cherche
d’abord dans le texte précédent, puis dans le texte suivant et enfin, dans tous les fichiers
ouverts, les mots qui débutent par ces lettres. Plusieurs appuis sur Alt+/ permettent de faire
défiler les différents complètements possibles.

18.7 Chercher et remplacer


Recherche Le plus rapide pour chercher du texte est d’utiliser Ctrl+S+texte_à_chercher. La com-
incrémentale
mande présente une particularité par rapport à celle des autres éditeurs : elle commence
la recherche dès la saisie du premier caractère. Si vous cherchez "recherche", tapez
Ctrl+S+rech : le curseur passe au premier mot qui contient "rech". Plutôt que de conti-
nuer à taper les autres lettres, lancez à nouveau Ctrl+S pour passer au mot suivant
Linux Livre Page 274 Mardi, 23. septembre 2008 1:05 13

274 LINUX

contenant "rech". Si vous ne saisissez que des minuscules, la recherche est indépendante
de la casse.
Si vous changez d’avis et décidez de chercher "recréer", il suffit de supprimer le "h" avec
Retour Arrière. Emacs revient alors au premier mot (à partir de la position du curseur au
début de la recherche) qui contient "rec". La saisie de "r" passe le curseur au premier mot qui
contient "recr".
Si vous tapez Entrée ou une touche du curseur, Emacs considère que la recherche est finie et
place le curseur à l’emplacement trouvé. La position du curseur au début de la recherche est
enregistrée par la marque. Vous pouvez y retourner avec Ctrl+X Ctrl+X. La répétition de
cette commande vous ramène au résultat de la recherche.
Vous pouvez reprendre la recherche en tapant deux fois Ctrl+S pour passer à l’occurrence
suivante. Pour chercher la chaîne vers l’arrière, tapez Ctrl+R à la place de Ctrl+S.

Recherche incrémentale
c+S recherche incrémentale vers l’avant
c+R recherche incrémentale vers l’arrière
a+P récupère la recherche précédente dans l’historique
a+N récupère la recherche suivante dans l’historique
c+G interrompt la recherche
c+X c+X échange la position de la marque (début de la recherche) et celle du curseur

Pour recommencer une recherche, vous pouvez naviguer dans l’historique après avoir tapé
Ctrl+S grâce à Alt+P et Alt+N.

Recherche avec des expressions rationnelles


La recherche incrémentale trouve du texte qui correspond exactement à la recherche. Il est
cependant souvent pratique de chercher du texte qui correspond à un motif donné.
Ctrl+Alt+S et Ctrl+Alt+R permettent de chercher du texte avec des expressions rationnelles,
respectivement vers l’avant et vers l’arrière.
Si vous saisissez des majuscules dans le motif de recherche, ce dernier devient sensible à la
casse. Pour chercher une lettre indépendamment de sa casse dans un motif contenant des
majuscules, il faut utiliser une syntaxe du type [Xx] qui recherche x, en minuscules ou en
majuscules.
Les caractères \< et \> permettent respectivement de restreindre la recherche au début et à la
fin du mot. Ainsi, \<connecte\> renvoie le mot connecte, mais ni déconnecte, ni connecter.
Le signe + indique que le mot doit contenir au moins l’un des éléments qui le précèdent.
Ainsi, [Ll]es[a-z]+ cherche les mots composés de "les" ou "Les", suivis au moins d’une let-
tre. Attention, les caractères accentués ne sont pas gérés par cette syntaxe ; il faut les ajouter
explicitement.
Linux Livre Page 275 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 275

Les paires de parenthèses \( et \) n’ont pas d’influence sur la recherche en soi. Les caractères
correspondant à ce groupe peuvent néanmoins être rappelés dans le motif de remplacement
(voir paragraphe suivant).

Recherche avec des expressions rationnelles


c+a+S recherche incrémentale par motif vers l’avant
c+a+R recherche incrémentale par motif vers l’avant

Construction du motif de recherche


\< début d’un mot
\> fin d’un mot
^ début d’une ligne
$ fin d’une ligne
. caractère arbitraire à l’exception d’un retour à la ligne
.* nombre arbitraire (y compris 0) de caractères arbitraires
.+ nombre arbitraire (mais au moins un) de caractères arbitraires
.? zéro ou un caractère arbitraire
[abc...] un des caractères entre crochets
[^abc...] aucun des caractères entre crochets
\( début d’un atome (voir Chercher et remplacer)
\) fin d’un atome
\x caractère spécial (par exemple \\ pour chercher \ ou \. pour chercher .)

Chercher et remplacer
Emacs différencie également, dans le cas du remplacement, la commande normale de la
commande étendue avec des motifs de recherche. Lorsqu’on remplace un texte, la lettre ini-
tiale des mots est dans la même casse que celle qu’elle remplace lorsque le texte de rempla-
cement est entièrement en minuscules. Les fonctions de recherche et de remplacement ne
fonctionnent pas pour les textes de recherche sur plusieurs lignes, car les caractères joker *
et + ne prennent pas en compte les passages à la ligne.

Recherche et remplacement
a+% recherche et remplacement sans motif
a+x query_replace-r e recherche et remplacement avec motif
\& référence au texte trouvé complet
\1 référence au premier atome entre \(...\)

Pour mieux comprendre comment fonctionnent les atomes dans la fonction de recher-
che/remplacement, le plus simple est de donner un exemple. Si on remplace
Linux-Part 3-CH-18 Page 276 Mercredi, 24. septembre 2008 7:15 07

276 LINUX

fonction(\([^,]*\),\([^,]*\)) par fonction(\2, \1), les paramètres de fonction sont


intervertis. fonction(a+b,2*e) devient alors fonction(2*e,a+b). Attention cependant, les
paramètres de la fonction ne peuvent pas avoir de virgules. Par exemple, si la chaîne est
fonction(f(a,b),g(x,y)), le remplacement échoue.
Soyez toujours prudent lorsque vous utilisez cette fonction avec des expressions rationnel-
les et enregistrez au préalable votre texte. Il est fréquent que le motif de recherche corres-
ponde à un tout autre texte ou à une section plus large que vous ne l’aviez envisagé. Ctrl+X
Ctrl+U permet de remédier facilement à une erreur de ce type.

Raccourcis clavier pour éditer le texte modifié


z ou Y remplacer, continuer la recherche
. remplacer, mais laisser le curseur à son emplacement courant pour contrôler le
résultat ; la recherche peut être reprise avec Espace
B ou N ne pas remplacer, continuer la recherche
q ne pas remplacer, interrompre la recherche
! remplacer toutes les occurrences suivantes sans confirmation
c+R interrompre temporairement la commande pour effectuer une modification
manuelle à l’emplacement du curseur
c+a+R reprendre la commande Remplacer

18.8 Tampon et fenêtre


Lorsqu’on travaille sur plusieurs textes, Emacs place chaque texte dans un tampon. Même
lorsque vous n’éditez qu’un seul fichier, plusieurs tampons coexistent : un pour le texte (le
nom du tampon correspond à celui du fichier), un pour les fenêtres d’aide ou les fenêtres
info ouvertes (le nom du tampon est alors *Help* ou *Info*), etc.
En plus du concept de tampons, Emacs connaît aussi celui de fenêtres. Une fenêtre est une
zone d’Emacs dans laquelle un tampon s’affiche. Généralement, une seule fenêtre occupant
tout l’espace est utilisée. Pour certaines commandes (par exemple, affichage de l’aide ou
autres informations internes à Emacs), l’écran est divisé horizontalement en deux fenêtres.
On peut aussi diviser Emacs en plusieurs morceaux horizontaux ou verticaux. Chaque zone
(fenêtre) peut alors afficher un tampon différent.
Représenter le même tampon dans deux fenêtres est également une possibilité. Cela est très
pratique pour les textes très longs : vous pouvez ainsi éditer deux sections différentes du
texte sans devoir déplacer le curseur, ce qui s’avère à la longue très inconfortable.

Sous Emacs, la notion de fenêtre n’a rien à voir avec celle de fenêtre X : elle représente une partie d’une
fenêtre X. Si vous désirez ouvrir une autre fenêtre X (par exemple, pour travailler confortablement entre
deux morceaux de code), vous pouvez la créer dans le menu File, New Frame (GNU Emacs) ou View, New
Frame (XEmacs).

Les commandes suivantes s’appliquent à la fenêtre courante (dans laquelle se trouve le curseur).
Ces commandes changent le tampon affiché dans la fenêtre.
Linux Livre Page 277 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 277

Commandes du tampon
c+X B e active le dernier tampon utilisé
c+X B nom e active le tampon indiqué
c+X c+B affiche dans une fenêtre la liste de tous les tampons
c+X K nom e ferme le tampon indiqué ; lorsque le tampon contient des données non
enregistrées, demande confirmation

Les commandes suivantes s’appliquent à l’affichage de tampons dans différentes zones de


l’écran (fenêtres). La ligne de séparation entre les fenêtres peut être déplacée à la souris.

Commandes de fenêtre
c+X O passe à la fenêtre suivante
c+X 0 ferme la fenêtre courante
c+X 1 ferme toutes les fenêtres, à part la fenêtre courante
c+X 2 sépare la fenêtre courante en deux zones horizontales
c+X 3 sépare la fenêtre courante en deux zones verticales

Le tampon n’est pas modifié lorsqu’on ferme une fenêtre. Il devient invisible, mais reste en
mémoire et peut être affiché de nouveau.

18.9 Modes d’édition spécifiques


De nombreux modes d’édition modifient les fonctions de l’éditeur et fournissent des com-
mandes spéciales. Emacs s’adapte ainsi de manière optimale à tous les types de texte. En
fonction du mode, une coloration syntaxique peut également s’appliquer (mise en évidence
des mots clés et des commentaires).
Emacs distingue les modes majeurs et mineurs. Un seul mode majeur peut être actif à la fois.
Celui-ci est choisi automatiquement en fonction de l’extension du fichier et de ses mots clés.
Chaque mode majeur peut être associé à zéro, un ou plusieurs modes mineurs. Il existe une
configuration de mode pour chaque fichier modifié dans Emacs (pour chaque tampon).
Modifier manuellement un mode n’impacte que le tampon courant. Le passage à un autre
mode majeur désactive le mode majeur courant. L’ajout ou la suppression d’un mode
mineur ne modifie pas le mode majeur.
Les tableaux suivants recensent, sans prétendre à l’exhaustivité, quelques modes majeurs et
mineurs d’Emacs. Il en existe de nombreux autres, par exemple pour la multitude de langages
de programmation disponibles sous Linux. F1+A+mode+Entrée affiche un aperçu des modes
disponibles et F1+M, des informations sur le mode majeur courant.
Linux Livre Page 278 Mardi, 23. septembre 2008 1:05 13

278 LINUX

Quelques modes majeurs importants d’Emacs


a+X fundamental-mode e mode standard (configuration de base)
a+X text-mode e mode pour indenter confortablement du texte
a+X c-mode e mode C
a+X c++-mode e mode C++
a+X emacs-lisp-mode e fichiers Emacs Lisp (par exemple ~/.emacs)
a+X html-mode e mode HTML
a+X sh-mode e mode d’édition de scripts shell

Quelques modes mineurs importants d’Emacs


a+X auto-fill-mode e mode texte continu, coupure automatique
a+X font-lock-mode e coloration syntaxique
a+X iso-accents-mode e saisie d’accents
a+X abbrev-mode e complètement automatique des abréviations

Emacs tente de reconnaître automatiquement, d’après l’extension du fichier et le contenu des premières
lignes, le type de fichier et active le mode correspondant. Si cela ne fonctionne pas, vous devez activer le
mode comme indiqué ci-dessus.
Lorsque le mode n’est pas automatiquement détecté, vous pouvez ajouter dans la première ligne du fichier
un commentaire contenant les caractères *-* nom *-*. nom est le nom du mode souhaité (par exemple
*-* html *-*).

Mise en L’élément le plus remarquable du mode d’édition est la mise en évidence de la syntaxe. Les
évidence de la
syntaxe commandes ou les commentaires sont distingués par des couleurs ou des attributs de
police. Le code ou certains documents deviennent ainsi nettement plus lisibles.
La mise en évidence de la syntaxe est généralement désactivée pour des raisons de perfor-
mances. Pour l’activer dans un document, vous devez lancer le mode correspondant
Alt+X+font-lock-mode : Emacs analyse le texte entier et marque les éléments qu’il trouve. Il
arrive, après une modification du texte, que la reconnaissance de la syntaxe ne fonctionne
plus. Pour la remettre d’aplomb, relancez Alt+X+font-lock-mode.

18.10 Unicode
Les versions actuelles d’Emacs et de XEmacs sont en principe compatibles avec Unicode,
mais en pratique, diverses limitations et problèmes se posent encore. Les deux variantes
d’Emacs gèrent UTF-8 ; XEmacs gère de plus UTF-7 et UTF-16.
L’édition de fichiers Unicode implique que le paquetage d’extensions Mule (Multilingual
Enhancement, améliorations multilingues) soit installé. Les commandes Mule peuvent être
lancées sous GNU Emacs avec Options, Mule et sous XEmacs avec Edit, Multilingual. Une
prise en charge avancée d’Unicode est disponible dans le paquetage Mule-UCS.
Linux Livre Page 279 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 279

Les deux versions d’Emacs prévoient de passer à une gestion interne du texte complètement
en Unicode, probablement à partir de la version 23. Il se peut donc que quelques-unes des
fonctions décrites ici ne fonctionnent plus ou différemment dans les versions futures d’Emacs.

GNU Emacs et Unicode


Indiquer GNU Emacs reconnaît bien souvent le jeu de caractères des fichiers et utilise par défaut celui
explicitement
le jeu de de la distribution. Il est néanmoins parfois nécessaire d’indiquer explicitement le jeu de
caractères caractères. Pour cela, on peut lancer la commande Ctrl+X+Entrée+C+codage. On peut ainsi
charger un fichier en UTF-8, comme le montre l’exemple suivant. Les codages disponibles
sont accessibles sous forme de liste grâce à Tab.
Ctrl+X+Entrée+C+utf-8+Entrée+Ctrl+X Ctrl+F+nom_du_fichier+Entrée

Codages fréquemment utilisés dans GNU Emacs


iso-8859-n fichiers ISO-8859-n
iso-latin-n fichiers ISO-Latin-n
utf-8 fichiers UTF-8
utf-8-dos fichiers UTF-8 avec retours à la ligne DOS/Windows
binary fichiers binaires
no-conversion correspond pour l’instant à Latin-1
raw-text correspond pour l’instant à Latin-1

Pour modifier le codage d’un tampon déjà chargé, lancez Ctrl+X+Entrée+F+codage.


Barre d’état Le jeu de caractères utilisé est indiqué dans les premiers caractères de la barre d’état. Le
tableau suivant donne quelques exemples :

Description du codage dans la barre d’état de GNU Emacs


-n Latin-n
-u UTF-8
-= fichier binaire ou no-conversion
-t pas de codage (raw-text), correspond pour l’instant à Latin-1

Aide Ctrl+H Maj+C+Entrée indique le codage du tampon courant. Ctrl+U Ctrl+X+= indique le
code du caractère sous le curseur.

XEmacs et Unicode
Il peut être nécessaire de définir explicitement la prise en charge d’Unicode dans XEmacs en
ajoutant ces lignes dans le fichier de configuration :
(require ’un-define)
(set-coding-priority-list ’(utf-8))
(set-coding-category-system ’utf-8 ’utf-8)
Linux Livre Page 280 Mardi, 23. septembre 2008 1:05 13

280 LINUX

Indiquer En plus des raccourcis clavier de GNU Emacs, XEmacs dispose également de raccourcis
explicitement
le jeu de avec Ctrl U, plus confortables. La commande suivante permet d’indiquer explicitement le
caractères jeu de caractères à utiliser pour ouvrir un fichier :
Ctrl+U Ctrl+X Ctrl+F+fichier+Entrée+codage+Entrée
Les codages disponibles s’affichent dans une liste avec Tab. Le tableau suivant donne quelques
exemples. XEmacs reconnaît, à la différence d’Emacs, les codages UTF-7 et UTF-16.

Codages fréquemment utilisés dans XEmacs


iso-8859-n fichiers ISO-8859-n
utf-7 fichiers UTF-7
utf-8 fichiers UTF-8
utf-8-dos fichiers UTF-8 avec retours à la ligne DOS/Windows
utf-8-ws fichiers UTF-8 avec code de marquage UTF-8 (signature)
utf-16-le fichiers UTF-16 usuels (little endian)
utf-16-be fichiers UTF-16 (big endian)
binary fichiers binaires
no-conversion correspond pour l’instant à Latin-1
raw-text correspond pour l’instant à Latin-1

Pour enregistrer un fichier, XEmacs utilise le même jeu de caractères que celui utilisé lors du
chargement. Si vous désirez modifier le jeu de caractères à ce moment, vous pouvez utiliser la
commande suivante. Attention cependant, il arrive que le passage d’un codage à un autre ne
soit pas pris en charge. Il vaut alors mieux utiliser la commande recode (voir section 15.3).
Ctrl+U Ctrl+X Ctrl+W nom_du_fichier Entrée codage Entrée
Barre d’état Le jeu de caractères utilisé est indiqué dans les premiers caractères de la barre d’état. Le
tableau suivant donne quelques exemples, qui diffèrent de GNU Emacs :

Description du codage dans la barre d’état de XEamcs


MIME/Ltn-n Latin-n
7 UTF-7
u UTF-8
U UTF-16
Binary fichiers binaires
Raw pas de codage, correspond pour l’instant à Latin-1
Noconv pas de codage, correspond pour l’instant à Latin-1

Vous trouverez davantage d’informations sur le codage des textes et la gestion de différents jeux de caractères
dans le chapitre Mule du manuel Emacs-Lisp. Vous pouvez aussi le lire sur Internet à l’adresse http://
www.xemacs.org/Documentation/21.5/html/lispref_64.html.
Le manuel Mule-UCS fournit des informations spécifiques à Unicode à l’adresse
http://www.xemacs.org/Documentation/packages/html/mule-ucs.html.
Linux Livre Page 281 Mardi, 23. septembre 2008 1:05 13

EMACS ET XEMACS 281

Saisie de caractères spéciaux étrangers


Les commandes et fonctions décrites ci-dessus devraient vous permettre de charger, d’affi-
cher et d’enregistrer des fichiers Unicode. Vous souhaitez probablement aussi pouvoir les
modifier. Mais comment faire lorsque les caractères voulus ne sont pas sur votre clavier ?
Saisie de codes Ctrl+Q+n permet de saisir n’importe quel caractère du jeu de caractères Latin-1 grâce à son
en octal
code octal. Il suffit alors de taper celui-ci avec des chiffres.
Modes de Alt+X set-input-method permet de définir un autre mode de saisie, afin de pouvoir taper
saisie
des caractères accentués, mais aussi chinois, japonais et coréens. La liste des modes est dis-
ponible comme d’habitude grâce à Tab. Ainsi, latin-9-prefix permet de redéfinir le com-
portement des touches ", ~, ^, /, ’ et `. Par exemple, "O insère le caractère Ö, /a insère un å,
/e insère un æ et ~n insère un ñ .
Sous GNU Emacs, le mode de saisie peut être défini avec le raccourci Ctrl+X Ctrl+\. Sous
XEmacs, il suffit de taper Ctrl+\.
Linux Livre Page 282 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 283 Mardi, 23. septembre 2008 1:05 13

bash
19
Ce chapitre traite de bash, bourne again shell. Ce programme permet de lancer des comman-
des dans une fenêtre de console ou une console texte. bash est également un interpréteur de
commandes. Il fournit donc un langage de programmation qui peut être utilisé pour déve-
lopper des programmes shell (scripts shell).
Utiliser un interpréteur de commandes est intéressant pour tous ceux qui souhaitent lancer
des programmes non seulement par le biais des menus KDE ou Gnome, mais aussi via le cla-
vier. Cela semble à première vue peu pratique, mais offre de nombreuses possibilités, par
exemple la combinaison de plusieurs commandes ou l’enregistrement des résultats d’une
commande dans un fichier.
Ce chapitre présente l’environnement de bash, la redirection des entrées et des sorties, la com-
munication entre plusieurs processus (tubes, substitution des commandes) et l’utilisation de
variables.

19.1 Qu’est-ce qu’un shell ?


bash signifie bourne again shell. Il s’agit en fait d’un jeu de mots en anglais : bash est le succes-
seur du Bourne-Shell qui, avec le Korn-Shell et le C-Shell, est l’un des trois shells classiques
sous Unix. Les trois interpréteurs de commandes sont disponibles sous Linux ; bash est
généralement le shell par défaut.
Qu’est-ce qu’un shell ? Il s’agit d’une interface utilisateur entre le système Linux et l’utilisa-
teur. L’interpréteur de commandes permet d’appeler des commandes Linux et des program-
mes. Il est en ce sens comparable à command.com du monde MS-DOS. Un shell est lancé dans
chaque fenêtre de console (console, gnome-terminal, xterm) et dans chaque console texte.
Un shell fournit également un langage de programmation pour automatiser des tâches. Cer-
taines commandes permettent d’utiliser des variables dans ces programmes, de poser des
questions, de construire des boucles, etc. Les programmes sont alors décrits par le nom de
programmes shell, de scripts shell, de fichiers batch, ou simplement de scripts selon les
préférences des auteurs.

Il existe pour bash une page de manuel très complète (man bash) et un fichier info tout aussi complet
(info bash). Certaines distributions fournissent également le fichier bashref.html qui présente le même
contenu dans un format plus lisible. Ce fichier est également disponible sur Internet à l’adresse http://
www.gnu.org/software/bash/manual/bash.html.
Ce chapitre décrit les versions 3.n de Bash (presque toutes les informations sont également valables pour
les version 2.n). Si vous ne savez pas quelle version de Bash vous utilisez, lancez la commande suivante :
utilisateur$ echo $BASH_VERSION
3.2.39(1)-release
Linux Livre Page 284 Mardi, 23. septembre 2008 1:05 13

284 LINUX

Passer à un autre shell


bash est le shell par défaut de la plupart des distributions Linux. Mais d’autres interpréteurs
sont souvent disponibles. Ils se distinguent par une syntaxe légèrement divergente. Le choix
de l’interpréteur de commandes est avant tout une question de préférences personnelles ou
d’habitude. Nous ne décrirons que bash dans cet ouvrage, avant tout pour des questions de
place.
Si vous avez installé plusieurs interpréteurs de commandes, vous pouvez passer de l’un à
l’autre à tout moment. bash et sh lancent bash. ash lance l’interpréteur des systèmes BSD
(idéal pour les ordinateurs avec peu de mémoire vive). ksh et pdksh lancent Korn Shell ; csh
et tcsh lancent le C Shell ou sa variante tcsh. exit permet de revenir au dernier interpréteur
de commandes actif.
Notez que tous les interpréteurs distribués par Linux sont des versions libres. Il peut donc y
avoir quelques différences par rapport aux originaux de divers systèmes Unix.
Si vous ne savez plus dans quel shell vous vous trouvez, tapez la commande echo $0, qui
existe dans tous les interpréteurs et qui a la même signification : elle renvoie le nom de
l’interpréteur courant.
utilisateur$ echo $0
bash

Changer de shell par défaut


Chaque utilisateur connecté a un shell par défaut. Celui-ci est démarré automatiquement
lors de la connexion dans une console texte. Sous X, le shell standard est lancé dans toutes
les fenêtres de console.
Le shell par défaut est enregistré dans /etc/passwd. Il s’agit du dernier élément de la ligne
de chaque utilisateur. Pour passer à un autre shell par défaut, lancez la commande chsh. Les
interpréteurs de commandes sont enregistrés dans le répertoire /bin. Vous devez donc indi-
quer /bin/csh si vous désirez lancer csh par défaut. Les interpréteurs disponibles sont listés
dans /etc/shells.

19.2 Configuration de base


Touches de La configuration du clavier de bash est enregistrée dans le fichier /etc/inputrc au niveau
fonctions de
bash global et dans ~/.inputrc pour chaque utilisateur. Si vous ne pouvez pas saisir de caractères
spéciaux ou si les touches Suppr, Home et Fin ne fonctionnent pas, vous devez modifier
inputrc comme suit (c’est généralement le cas dans les distributions courantes) :
set meta-flag on
set convert-meta off
set output-meta on
"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
Linux Livre Page 285 Mardi, 23. septembre 2008 1:05 13

BASH 285

Ce fichier définit la fonction readline, utilisée en interne par bash pour traiter les entrées du
clavier. Les trois premières lignes assurent que les caractères 8 bits sont reconnus lors de la
saisie, qu’ils ne sont pas transformés en un autre caractère et qu’ils s’affichent. Les trois
lignes suivantes définissent le comportement des touches Home, Suppr et Fin.
Les modifications ne sont prises en compte qu’au démarrage d’un nouveau shell : vous
devez vous déconnecter et vous reconnecter à une console texte ou démarrer une nouvelle
fenêtre de console sous X. Pour tester, il est plus pratique de lancer simplement la com-
mande bash. Un nouvel interpréteur est alors lancé et vous pouvez revenir à l’ancien shell
avec exit. Cela est particulièrement avantageux lorsque la configuration n’a pas le résultat
escompté − l’ancien interpréteur a encore les associations de touches précédentes. Sous X,
les fonctions du clavier dépendent aussi de la configuration de X (voir Chapitre 22).
Invite de Au début de chaque ligne du shell, certains éléments s’affichent en fonction de la distribution : le
commande
nom de l’ordinateur, celui de l’utilisateur et/ou le répertoire courant. La chaîne de caractères se
termine généralement par $ ou > (pour les utilisateurs réguliers) ou par # (root).
Cette chaîne est définie par la variable d’environnement PS1, qui peut être définie dans /etc/
bash.bashrc ou /etc/bashrc. Sans autre configuration, PS1="\s-\v$". Dans ce cas, bash
affiche le nom de l’interpréteur et le numéro de version.
Vous pouvez modifier PS1 dans ~/.profile. Par exemple, si PS1="\w \$", l’invite de com-
mande est simplement le répertoire courant.
À la place ou en plus de PS1, la variable PROMPT_COMMAND peut être définie. Celle-ci contient
une commande lancée avant chaque affichage de PS1.

Les codes utilisables dans la variable PS1 (par exemple, \w comme raccourci pour le répertoire courant) sont
décrits dans la documentation de Bash.

19.3 Saisie de commandes


bash est normalement utilisé pour saisir des commandes tout à fait habituelles. Il propose
cependant de nombreux raccourcis clavier et touches spéciales. En particulier, vous pouvez
naviguer dans l’historique des commandes précédemment lancées avec les flèches de direction
Haut et Bas, ce qui peut réduire significativement la quantité de saisie nécessaire. Lorsque vous
quittez un interpréteur, les dernières commandes utilisées sont également enregistrées dans le
fichier ~/.bash_history et sont donc à nouveau disponibles à la connexion suivante.
Vous pouvez modifier les lignes de commande comme dans un éditeur de texte. Vous pou-
vez ajouter et supprimer des caractères à n’importe quel endroit. L’allocation des touches de
bash est configurable pratiquement sans limite. Vous pouvez notamment associer les tou-
ches spéciales (curseur et touches fonction) avec les commandes que vous souhaitez. Vous
pouvez aussi passer entre les modes emacs et vi. Les commandes de base d’édition sont
alors les mêmes que dans l’éditeur choisi. Le mode par défaut est généralement le mode
Emacs. Cette section décrit les raccourcis clavier de ce mode.
Linux Livre Page 286 Mardi, 23. septembre 2008 1:05 13

286 LINUX

Complètement des commandes et noms de fichiers


Le complètement automatique des commandes et des noms de fichiers aide à minimiser la
saisie. Tapez d’abord les premières lettres de la commande ou du nom de fichier, puis
appuyez sur Tab. Si les lettres tapées identifient un élément de manière unique, ce nom
s’affiche. Lorsque plusieurs noms correspondent, le nom est complété jusqu’à la dernière
correspondance des noms. De plus, un signal sonore est souvent émis pour indiquer que le
nom du fichier n’est probablement pas complet.
Le complètement de noms de fichiers est plus simple à comprendre avec un exemple.
utilisateur$ xem Tab com Tab

est, sur mon ordinateur, complété en


utilisateur$ xemacs command.tex

xemacs est le nom de mon éditeur préféré et command.tex un fichier LaTeX. Pour étendre xem,
bash cherche dans tous les répertoires de la variable PATH le programme correspondant.
Pour étendre le nom du fichier, seul le répertoire courant est considéré.
Le complètement fonctionne également pour les noms de fichiers préfixés par plusieurs
répertoires.
utilisateur$ ls /usr/sh Tab

est complété par Bash en


utilisateur$ ls /usr/share

S’il n’est pas possible de compléter l’élément de manière unique (signal sonore), vous pou-
vez taper à nouveau Tab. bash affiche alors dans les lignes qui suivent tous les complètements
possibles. Par exemple,
utilisateur$ e Tab Tab

liste toutes les commandes qui commencent par e. Vous pouvez alors reprendre votre saisie.

Les programmes et les commandes présents dans le répertoire courant ne sont étendus par le complètement
de commandes que lorsque le répertoire courant se trouve dans la variable PATH. echo $PATH affiche cette
variable. Le répertoire courant est abrégé en . .
Dans la plupart des distributions Linux, . ne fait pas partie de la variable PATH pour des raisons de sécurité.
Afin de lancer des commandes dans le répertoire courant, il faut donc saisir ./commande.

Déterminer le Le complètement automatique de commandes masque l’emplacement réel d’un programme.


chemin d’un
programme Pour le savoir, vous avez plusieurs possibilités :
• whereis name parcourt tous les répertoires par défaut.
• which name parcourt tous les répertoires de la variable PATH et détermine le programme
lancé par la commande sans chemin. which est donc intéressant lorsque plusieurs versions
d’un programme coexistent dans un système.
• type name fonctionne comme which, mais prend également en compte les commandes
intégrées à Bash ou définies en tant qu’alias.
Linux Livre Page 287 Mardi, 23. septembre 2008 1:05 13

BASH 287

bash fournit un mécanisme de complètement similaire pour le nom des répertoires person-
nels (~mi Tab renvoie sur mon ordinateur ~michael/) et les noms de variables ($PAT Tab
renvoie $PATH).
Extensions Lorsqu’on lance la commande latex nom. Tab, seuls les fichiers se terminant par .tex sont
spécifiques
aux proposés. man nom Tab ne renvoie que les éléments pour lesquels il existe une page de
programmes manuel. Cela fonctionne pour de nombreuses commandes pour lesquelles le choix de fichiers
possibles ou de paramètres est restreint. C’est pratique, car seuls les fichiers ou paramètres
cohérents sont pris en compte pour le complètement.
La commande bash complete gère cela. De nombreuses distributions disposent d’une confi-
guration énorme pour complete, mais qui n’est installée qu’en partie ou qui doit l’être expli-
citement (par exemple, sous Fedora avec le paquetage bash-completion). La commande
complete sans autre paramètre affiche toutes les règles connues. La configuration se trouve
généralement dans l’un des fichiers suivants :
• /etc/bash_completion ;
• /etc/bash_completion.d/* ;
• /etc/profile.d/complete.bash ;
• /etc/profile.d/bash_completion.sh.

Pour définir des règles de complètement supplémentaires, vous devez comprendre la syntaxe peu
courante de complete . help complete et man bash en offrent une courte description. Pour en
savoir plus, vous pouvez consulter http://www.caliban.org/bash/index.shtml et http://
www.minet.net/spip/spip.php?article93.

Raccourcis clavier importants


Le tableau suivant indique les raccourcis d’un bash configuré en mode Emacs. Si vous tra-
vaillez sous X, il se peut que X interfère avec une configuration correcte de bash. Si vous
travaillez dans le terminal de Gnome, vous devez aller dans Édition > Raccourcis clavier,
puis cocher l’option Désactiver tous les raccourcis clavier des menus.

Raccourcis claviers de bash


W/Z navigue dans l’historique des commandes
A/S déplace le curseur vers la droite ou vers la gauche
h j déplace le curseur au début ou à la fin de la ligne
c+A c+E déplace le curseur au début ou à la fin de la ligne
a+B a+F déplace le curseur d’un mot vers l’arrière ou vers l’avant
B D supprime le caractère précédent ou courant
a+D supprime un mot
c+K supprime le reste de la ligne
Linux Livre Page 288 Mardi, 23. septembre 2008 1:05 13

288 LINUX

c+Y colle le dernier texte supprimé


c+T échange les deux caractères précédents
a+T échange les deux mots précédents
t complète la commande ou le nom du fichier
c+L vide l’écran
c+R cherche une commande lancée précédemment
a+. colle le dernier paramètre utilisé
c+_ annule la dernière modification

Coller le Le raccourci Alt+. est plus simple à comprendre avec un exemple. Supposons que vous ayez
dernier
paramètre copié un fichier (cp fichier1 fichier2). Vous voulez maintenant supprimer la copie. Plutôt
que de taper rm fichier2, vous pouvez taper rm, puis Alt+.. bash récupère alors automati-
quement le dernier paramètre de la commande. Plusieurs appuis sur Alt+. permettent de
naviguer dans l’historique des paramètres.
Chercher une Ctrl+R requiert également une explication supplémentaire. Ce raccourci permet de chercher
commande
une commande déjà saisie. Tapez, au début de la ligne, Ctrl+R et les premiers caractères de
la commande recherchée. bash affiche alors la dernière commande utilisée qui commence
par les lettres saisies. Plusieurs appuis sur Ctrl+R permettent de passer entre les différentes
commandes correspondantes. Ctrl+S fonctionne comme Ctrl+R, mais passe les commandes
dans l’ordre inverse. Entrée, Tab et les touches de direction interrompent la recherche et
lancent la commande ou modifient la ligne trouvée.

Certaines consoles comprennent Ctrl+S comme l’ordre d’arrêter momentanément l’affichage. Ctrl+Q redé-
marre cet affichage. Si votre console l’interprète ainsi, vous ne pouvez chercher des commandes qu’avec
Ctrl+R.
Les raccourcis clavier de bash proviennent de la bibliothèque readline, utilisée par bash pour traiter les
entrées. D’autres raccourcis sont indiqués dans man readline.

Alias
La commande alias permet d’économiser quelques touches lorsqu’on saisit des comman-
des. Elle définit des raccourcis. Lors du traitement de la ligne de commande, l’interpréteur
vérifie si le premier mot est un alias. Si c’est le cas, il est étendu au texte complet.
Les alias pour une combinaison de raccourcis ou des noms de fichiers ne sont pas valides,
car bash ne cherche pas à remplacer les autres termes de la ligne de commande. bash
reconnaît cependant les cas particuliers où plusieurs programmes sont appelés (tubes, substi-
tution de commande, exécution de plusieurs commandes à la suite avec ;) et remplace les
alias par les commandes correspondantes.
utilisateur$ alias cdb=’cd ~michael/livrelinux’

Cette commande définit l’abréviation cdb qui me permet de passer rapidement dans un
répertoire que j’utilise beaucoup.
Linux Livre Page 289 Mardi, 23. septembre 2008 1:05 13

BASH 289

Les appels à alias peuvent également être imbriqués. Notez aussi que les raccourcis définis
ont priorité sur les commandes du même nom. On peut ainsi définir des alias pour éviter
l’appel à certaines commandes :
utilisateur$ alias more=less

Les alias peuvent être supprimés avec la commande unalias. Ils sont valables jusqu’à ce que
l’utilisateur quitte l’interpréteur de commandes (donc, au plus tard, jusqu’à la déconnexion
de l’utilisateur). Si vous utilisez fréquemment certains alias, vous pouvez les ajouter dans
les fichiers .profile et .bashrc de votre répertoire personnel.
Dans de nombreuses distributions, divers alias sont prédéfinis. Par exemple, rm peut être un
raccourci vers rm -i. La commande alias sans paramètre envoie la liste de toutes les com-
mandes définies par alias. Les lignes suivantes indiquent à quels endroits sont définis les
alias sous Fedora, SUSE et Ubuntu :
Fedora /etc/bashrc /etc/profile.d/*.sh ~/.bashrc
SUSE /etc/bashrc.bashrc ~/.bashrc
Ubuntu /etc/bashrc ~/.bashrc
Les scripts shell permettent également des applications comparables à celles des alias. Ils
ont l’avantage de comprendre les paramètres ($1, $2, etc.) et d’être plus souples.

19.4 Redirections
Lorsqu’on lance des commandes sous bash, il existe trois fichiers spéciaux. Il ne s’agit pas à
proprement parler de fichiers en soi, mais de descripteurs de fichiers qui sont gérés par le
système d’exploitation comme des fichiers.
• Entrée standard. Le programme déjà lancé (par exemple, bash ou une commande déjà
lancée) lit ses entrées depuis l’entrée standard. Il s’agit généralement du clavier.
• Sortie standard. Toutes les sorties du programme (par exemple, la liste de tous les
fichiers par ls) sont dirigées vers la sortie standard. Il s’agit généralement de la fenêtre
de terminal ou de la console texte.
• Erreur standard. Les messages d’erreur sont généralement envoyés sur l’erreur standard,
qui bien souvent s’affiche sur le terminal courant.
Tout cela semble évident − si ce n’était pas le cas, où devraient être envoyés les saisies du
clavier, les résultats et les messages d’erreur, sinon sur l’écran ? Il faut cependant remarquer
que l’on peut rediriger la sortie ou l’entrée standard.
Par exemple, supposons que vous ne souhaitiez pas afficher le contenu d’un répertoire,
mais l’enregistrer dans un fichier. La sortie standard doit alors être redirigée dans un vrai
fichier. Dans bash, on utilise pour cela le caractère > :
utilisateur$ ls *.tex > liste

Le fichier liste contient après cette commande une liste de tous les fichiers *.tex du réper-
toire courant. Ce type de redirection est probablement le plus courant. Il en existe plusieurs
Linux Livre Page 290 Mardi, 23. septembre 2008 1:05 13

290 LINUX

variantes : 2> fichier enregistre tous les messages d’erreur dans le fichier indiqué. >& fichier
et &> fichier enregistrent la sortie et les messages d’erreur d’une commande dans le fichier
indiqué. L’opérateur double >> signifie que les éléments sont ajoutés à la fin d’un fichier déjà
existant (> écrase le fichier).
Les entrées sont redirigées avec le caractère < fichier : les commandes qui attendent une
saisie au clavier peuvent lire le fichier à la place de cette saisie.

On ne peut pas traiter un fichier et écrire le résultat en même temps dans ce même fichier ! sort
fichier > fichier ou sort < fichier > fichier n’ont pour seul effet que de vider le fichier !

Tubes
Les tubes, ou pipes, sont construits avec le caractère |. La sortie de la première commande est
alors fournie comme entrée de la seconde. En pratique, les tubes sont souvent utilisés avec
la commande less, afin d’afficher de longs résultats page par page.
utilisateur$ ls -l |less

La commande ci-dessus envoie le contenu de la commande dans un tube. La commande


less lit dans ce tube et affiche le résultat à l’écran.
Les tubes sont également très pratiques pour combiner plusieurs commandes. Par exemple,
la commande suivante affiche une liste triée de tous les paquetages RPM installés :
utilisateur$ rpm -qa |sort

À la place des tubes, vous pouvez aussi utiliser des fichiers FIFO. FIFO signifie first in, first
out (premier entré, premier sorti) et réalise un tube sous la forme d’un fichier nommé. Ces
fichiers sont bien plus lourds que les tubes, mais ils rendent clair l’effet exact d’un tube. En
pratique, ils sont utilisés pour que deux programmes indépendants puissent communiquer.
utilisateur$ mkfifo fifo
utilisateur$ ls -l > fifo &
utilisateur$ less < fifo

Les trois commandes ci-dessus créent un fichier FIFO. ls est ensuite lancé comme processus
d’arrière-plan. Il écrit ses résultats dans le fichier. less lit dans ce fichier les données et les
affiche à l’écran.

Les tubes ne sont indiqués que lorsque les commandes lisent leurs entrées sur l’entrée standard. Si ce n’est
pas le cas, vous pouvez obtenir des résultats similaires grâce à des substitutions de commandes ou grâce à
xargs.

Multiplication des sorties avec tee


De temps en temps, on souhaite enregistrer la sortie d’un programme dans deux fichiers dif-
férents ou afficher la sortie tout en l’enregistrant. Il est dans ce cas nécessaire de dédoubler
la sortie. C’est ce que fait la commande tee :
utilisateur$ ls |tee liste
Linux Livre Page 291 Mardi, 23. septembre 2008 1:05 13

BASH 291

Cette commande affiche le contenu du répertoire à l’écran et l’enregistre dans le fichier


liste. La sortie standard est redirigée vers la commande tee. Par défaut, cette commande
affiche la sortie standard sur le terminal et enregistre une copie dans le fichier indiqué. Vous
pouvez voir qu’il s’agit effectivement d’une multiplication des sorties si vous redirigez la
sortie standard de tee dans un fichier :
utilisateur$ ls |tee liste1 > liste2

Il en résulte deux fichiers identiques liste1 et liste2. La commande ci-dessus est un simple
exemple. Il peut être plus délicat, mais plus utile, de comprendre l’exemple suivant :
utilisateur$ ls -l |tee liste1 |sort -k 5 -n > liste2

liste1 contient le contenu "normal" du répertoire renvoyé et trié par ls. La copie de cette
sortie est redirigée vers sort qui la trie selon la taille du fichier (cinquième colonne) et l’enre-
gistre dans le fichier liste2.

Résumé de la syntaxe

Redirections d’entrées et de sorties


commande > fichier envoie la sortie standard de commande dans fichier
commande < fichier lit l’entrée standard de commande dans fichier
commande 2> fichier enregistre les messages d’erreur de commande dans fichier
commande >& fichier redirige la sortie standard et les messages d’erreur
commande &> fichier redirige la sortie standard et les messages d’erreur
commande >> fichier ajoute la sortie standard à un fichier existant
commande1 | commande 2 envoie la sortie standard de commande1 à l’entrée standard de commande2
commande | tee fichier affiche la sortie et enregistre le résultat dansfichier

19.5 Lancer des commandes


Le plus courant pour lancer une commande est de saisir son nom. Vous pouvez indiquer de
nombreux caractères spéciaux, évalués par bash avant qu’il ne lance effectivement la com-
mande. Ainsi, vous pouvez lancer des commandes en arrière-plan, désigner plusieurs noms
de fichiers similaires grâce à des caractères joker (par exemple *.tex), passer le résultat
d’une commande dans la liste de paramètres d’une autre commande, etc.
Tâches de fond Le caractère spécial le plus courant et le plus important est &. Lorsqu’il se trouve à la fin
d’une ligne de commande, bash démarre le programme concerné en tâche de fond. C’est
particulièrement pertinent pour les programmes dont l’exécution est longue, car vous
Linux Livre Page 292 Mardi, 23. septembre 2008 1:05 13

292 LINUX

pouvez immédiatement reprendre la main sur le terminal, sans attendre que la commande
soit terminée.
utilisateur$ find / -name ’*sh’ > resultat &
[1] 334

La commande ci-dessus cherche, dans tout le système de fichiers, des fichiers dont le nom se
termine par les lettres "sh". La liste est enregistrée dans le fichier resultat. Comme la com-
mande est lancée en tâche de fond, le terminal rend la main immédiatement. [1] 334 signi-
fie que la tâche de fond a pour identifiant de processus 334. Ce numéro peut être utile pour
terminer prématurément la tâche avec kill. Le numéro entre crochets indique le numéro du
processus en tâche de fond dans l’interpréteur de commandes courant, ce qui n’a généralement
aucun intérêt.

Si vous avez oublié le caractère &, vous pouvez passer le programme en tâche de fond rétrospectivement. Pour
cela, interrompez le programme avec Ctrl+Z et relancez-le avec bg.

Lancer On peut aussi ajouter une commande après le caractère &. Dans ce cas, la première tâche est
plusieurs
commandes lancée en arrière-plan et la seconde au premier plan. L’exemple suivant réutilise la com-
mande find décrite ci-dessus, mais on affiche cette fois-ci le contenu du répertoire courant
avec ls :
utilsateur$ find / -name ’*sh’ > resultat & ls

Si on saisit un point-virgule à la place de &, les commandes sont lancées l’une après l’autre
en avant-plan :
utilisateur$ ls; date

La commande affiche le contenu du répertoire, puis la date. Pour rediriger l’ensemble de ces
informations dans un fichier, les deux commandes doivent être regroupées entre paren-
thèses. Elles sont alors lancées dans un même shell (sans parenthèses, un nouveau shell est
lancé pour chaque commande).
utilisateur$ (ls; date) > fichier

fichier contient maintenant la liste de fichiers fournie par ls, ainsi que la date fournie par
date.
Les opérateurs && et || servent à lancer des commandes en fonction du résultat d’une autre
commande.
utilisateur$ commande1 && commande2

Cette ligne lance d’abord commande1. Si cette commande fonctionne sans problème (pas
d’erreur, code de retour 0), commande2 est lancée.
À l’inverse, dans la ligne qui suit, commande2 n’est lancée que si commande1 renvoie une
erreur (code de retour différent de 0) :
utilisateur$ commande1 || commande2
Linux Livre Page 293 Mardi, 23. septembre 2008 1:05 13

BASH 293

La commande if présente des possibilités supplémentaires pour construire et enchaîner des


commandes. Elle n’est cependant réellement utile qu’à ceux qui s’intéressent à la program-
mation shell.

Lancer des commandes


commande1; commande 2 lance les deux commandes l’une après l’autre
commande1 && commande2 lance commande2 si commande1 s’est bien déroulée
commande1 || commande 2 lance commande2 si commande1 ne s’est pas bien déroulée
commande & lance commande en tâche de fond
commande1 & commande2 lance commande1 en tâche de fond et commande2 en avant-plan
(commande1 ; commande2) lance les deux commandes dans le même shell

19.6 Mécanismes de substitution


Le concept de mécanismes de substitution semble abstrait et compliqué. L’idée de base est
que les commandes construites avec des caractères spéciaux sont remplacées par leurs
résultats. Dans le cas le plus simple, cela signifie que, dans ls *.tex, *.tex est remplacé par
la liste des fichiers correspondants. Alors, la commande ls ne reçoit pas *.tex, mais une
liste de noms de fichiers réels.
Cette section vise à résumer les principaux mécanismes d’interprétation de la ligne de com-
mande : les caractères jokers, les accolades pour résumer des chaînes de caractères, les crochets
pour effectuer des calculs, les apostrophes inversées pour la substitution de commandes,
etc.
Construction bash est responsable du fait que, lorsque vous saisissez rm *~, tous les fichiers qui se termi-
de noms de
fichiers avec nent par ~ sont supprimés. L’interpréteur de commandes parcourt le répertoire courant et
les caractères remplace *~ par les noms de fichiers correspondants.
joker
Les caractères jokers autorisés sont ? (exactement un caractère) et * (nombre arbitraire de
caractères arbitraires, y compris 0). La chaîne de caractères [a, b, e-h]* représente des
noms de fichiers qui commencent par les lettres a, b, e, f, g ou h. Si l’élément entre crochets
est préfixé de ^ ou de !, tous les caractères à l’exception de ceux qui se trouvent entre cro-
chets sont considérés. ~ est également utilisé comme raccourci pour le répertoire personnel.
Les fonctions des caractères spéciaux se testent facilement avec echo. La première com-
mande affiche tous les fichiers et dossiers du répertoire racine. La seconde restreint la sortie
aux fichiers et dossiers qui commencent par les lettres a à f :
utilisateur$ echo /*
/bin /boot /dev /etc /home /lib /lost+found /media /misc /mnt /net /opt
/proc /root /sbin /selinux /srv /sys /tmp /usr /var
utilisateur$ echo /[a-f]*
/bin /boot /dev /etc
Linux Livre Page 294 Mardi, 23. septembre 2008 1:05 13

294 LINUX

Comme la construction des noms de fichiers n’est pas gérée par les différents programmes,
mais par bash, les résultats peuvent être différents de ce à quoi vous vous attendez. Par
exemple, ls * affiche une liste sans fin de fichiers, même lorsque le dossier courant n’en
contient que quelques-uns. La commande ls reçoit une liste de fichiers et de répertoires.
Mais lorsqu’on lui passe un nom de répertoire, elle affiche le contenu complet de ce réper-
toire ! Si vous désirez afficher une liste de tous les fichiers et répertoires correspondant à un
motif, vous devez passer l’option -d. Celle-ci cache le contenu des répertoires passés en
paramètre.
Pour savoir comment bash fonctionne en interne, lancez la commande set -x. bash affiche
alors, avant de lancer toute commande, comment la commande est évaluée, éventuellement
avec les options et tous les noms de fichiers étendus.
Construction bash compose toutes les combinaisons de chaînes possibles avec les chaînes qu’il reçoit entre
de chaînes
avec {} accolades. partie{1,2a,2b} est donc étendu en partie1 partie2a partie2b. L’extension
d’accolades économise de la saisie lorsqu’on accède à des fichiers qui ont des noms similaires.
Par rapport à des caractères joker comme ? ou *, les accolades ont l’avantage de construire
également des noms de fichiers qui n’existent pas encore, ce qui est pratique, par exemple
pour mkdir.
utilisateur$ echo {a,b}{1,2,3}
a1 a2 a3 b1 b2 b3
utilisateur$ echo {ab,cd}{123,456,789}-{I,II}
ab123-I ab123-II ab456-I ab456-II ab789-I ab789-II
cd123-I cd123-II cd456-I cd456-II cd789-I cd789-II

Depuis Bash 3.0, la syntaxe {a..b} est valide, où a et b sont des chiffres ou des lettres. Les
exemples suivants expliquent le fonctionnement de cette syntaxe :
utilisateur$ echo {1..5}
1 2 3 4 5
utilisateur$ echo {z..t}
z y x w v u t

Calcul Normalement, bash ne sait pas faire de calculs. Par exemple, lorsqu’on saisit 2+3, il faut
d’expressions
arithmétiques les entourer de crochets et les préfixer d’un caractère $ pour que l’interpréteur effectue le
avec [] calcul :
utilisateur$ echo $[2+3]
5

Dans les crochets, la plupart des opérateurs de C sont autorisés : +, -, *, et / pour les quatre
opérations de base, % pour le modulo, ==, !=, <, <=, >, >= pour la comparaison, << et >> pour
les décalages de bits, !, && et || pour les NON, ET et OU logiques, etc. Ces opérateurs sont
valables pour des entiers sur 32 bits (nombres entre +/- 2147483648).
La commande expr fournit une autre méthode pour effectuer des calculs. Il s’agit d’une
commande Linux indépendante de bash.
Substitution La substitution de commandes permet de passer le résultat d’une commande à l’intérieur
de commandes
d’une autre commande. Cette commande doit être entourée de deux caractères `. $(com-
mande) est une syntaxe alternative. Celle-ci est préférable pour éviter la confusion avec
d’autres caractères (par exemple " ou ’) et entrelacer des commandes.
Linux Livre Page 295 Mardi, 23. septembre 2008 1:05 13

BASH 295

La commande considérée est donc remplacée par son résultat. Cette substitution permet
d’entrelacer l’appel de plusieurs commandes, où chaque commande renvoie son résultat à
d’autres commandes. Les deux commandes identiques suivantes éclaircissent ce mécanisme
très puissant :
utilisateur$ ls -lgo `find /usr/share -name ’*README*’`
utilisateur$ ls -lgo $(find /usr/share -name ’*README*’)

find /usr/share -name ’*README*’ est la première commande exécutée. Son résultat est
une liste de tous les fichiers qui contiennent la chaîne README dans leur nom dans le réper-
toire /usr/share. Cette liste remplace la commande find dans la commande originale.
La commande devient donc :
utilisateur$ ls -lgo /usr/share/a2ps/ppd/README \
> /usr/share/a2ps/README ...

Cette commande renvoie le résultat suivant :


-rw-r--r-- 1 301 15. Feb 12:30 /usr/share/a2ps/ppd/README
-rw-r--r-- 1 1029 15. Feb 12:30 /usr/share/a2ps/README
...

Il ne serait pas possible d’obtenir ce résultat avec un simple tube. ls n’attend pas une entrée
sur l’entrée standard et ignore donc l’information renvoyée par find sur un tube. La com-
mande find /usr/share -name ’*README*’ |ls -l ne fonctionne pas ; elle affiche le résultat
du répertoire courant.
Il existe cependant une autre solution qui ne fait pas appel à la substitution de commandes.
xargs transforme les données de l’entrée standard en paramètres de la commande donnée
en argument de xargs. Le résultat précédent s’obtient donc également avec :
utilisateur$ find /usr/share -name ’*README*’ | xargs ls -l

xargs présente également un avantage du fait qu’il existe une limite de taille des données à
traiter. xargs appelle en effet la commande plusieurs fois et passe les arguments de l’entrée
standard en plusieurs étapes. La substitution est limitée par la taille maximale d’une ligne
de commande (généralement plusieurs milliers de signes).
Les noms de fichiers contenant des espaces posent problèmes. Pour les éviter, passez à find
l’option -print0 et à xargs l’option --null.
Caractères Comme presque tous les caractères, à l’exception des chiffres et des lettres, ont une significa-
joker dans des
chaînes de tion particulière pour bash, il semble impossible de les utiliser dans des chaînes de caractè-
caractères res ou des noms de fichiers. Ce problème est résolu par deux méthodes. Le caractère spécial
peut être préfixé d’une barre oblique inverse (\) ou la chaîne complète peut être encadrée
par des apostrophes ou des guillemets. La commande suivante permet ainsi de supprimer
les fichiers nommés ab* et $cd :
utilisateur$ rm ’ab* $cd’

Notez la différence entre les caractères ` et ’ !


Linux Livre Page 296 Mardi, 23. septembre 2008 1:05 13

296 LINUX

Les guillemets ont un comportement différent des apostrophes. Ils sont moins restrictifs
et interprètent certains caractères spéciaux, en l’occurrence $, \ et `. Une chaîne de carac-
tères entourée de guillemets verra ainsi les variables du shell qui s’y trouvent étendues :
utilisateur$ echo "Ceci est le chemin d’accès : $PATH"
Ceci est le chemin d’accès : /usr/local/bin::/usr/bin:/bin:/usr/bin/X11:/usr/
games

Si, à la place des guillemets, on utilise des apostrophes, la chaîne s’affiche sans transfor-
mation.

Mécanismes de substitution
Caractères joker pour les noms de fichiers
? exactement un caractère arbitraire
* nombre arbitraire (y compris 0) de caractères arbitraires (mais pas de fichiers
.*)
[abc] un des caractères entre crochets
[a-f] un des caractères de l’intervalle
[!abc] aucun des caractères entre crochets
[^abc] aucun des caractères entre crochets
~ répertoire personnel
. répertoire courant
.. répertoire parent

Construction de chaînes
ab{1,2,3} renvoie ab1 ab2 ab3
a{1..4} renvoie a1 a2 a3 a4

Arithmétique
$[3*4] calcul, renvoie 12

Substitution de commandes
`commande` remplace la commande par son résultat
$(commande) remplace la commande par son résultat

Analyse de chaînes de caractères


commande "chaîne" empêche l’analyse des caractères spéciaux
commande ’chaîne’ empêche l’analyse de caractères spéciaux (plus restrictif)
Linux Livre Page 297 Mardi, 23. septembre 2008 1:05 13

BASH 297

19.7 Variables
Les fonctionnalités de bash et de nombreux autres programmes sont définies par des varia-
bles du shell. Elles sont comparables à celles d’autres langages de programmation, à ceci
près qu’elles ne peuvent contenir que des chaînes de caractères. On assigne une variable
avec l’opérateur d’assignation =. Pour afficher le contenu d’une variable, le plus simple est
d’utiliser echo, suivi du nom de la variable préfixé d’un $ :
utilisateur$ var=abc
utilisateur$ echo $var
abc

Lorsque la valeur de la variable contient des espaces ou d’autres caractères spéciaux, il faut
l’entourer d’apostrophes ou de guillemets :
utilisateur$ var=’abc efg’

On peut concaténer les variables les unes aux autres en les assignant. L’exemple suivant
définit une variable a contenant son ancienne valeur, suivie de la chaîne xxx et de son
ancienne valeur :
utilisateur$ a=3
utilisateur$ a=$a’xxx’$a
utilisateur$ echo $a
3xxx3

L’exemple suivant étend la variable PATH (qui contient tous les répertoires parcourus pour
chercher un programme à exécuter) du sous-répertoire bin du répertoire personnel. Cela
permet de lancer les commandes qui s’y trouvent sans devoir saisir le chemin complet.
utilisateur$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
utilisateur$ PATH=$PATH’:/home/michael/bin’
utilisateur$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/michael/bin

Pour effectuer des calculs, utilisez les crochets :


utilisateur$ a=3
utilisateur$ a=$[$a*4]
utilisateur$ echo $a
12

Lorsque le résultat d’une commande doit être enregistré dans une commande, utilisez la
substitution de commandes, comme $(commande). L’exemple suivant enregistre le répertoire
courant dans la variable a :
utilisateur$ a=$(pwd)
utilisateur$ echo $a
/home/michael
Linux Livre Page 298 Mardi, 23. septembre 2008 1:05 13

298 LINUX

Le contenu de la variable n’est enregistré que dans l’interpréteur courant. Les variables sont
perdues lorsque vous quittez le shell (au plus tard lorsque vous éteignez l’ordinateur).
Pour enregistrer certaines variables de manière permanente, ajoutez-les à /etc/profile ou
~/.profile. Ces deux fichiers sont exécutés au démarrage de bash.
Pour enregistrer le contenu d’une variable dans un fichier, le plus simple est de rediriger la
sortie de echo :
utilisateur$ echo $var > fichier

Variables locales et globales (variables d’environnement)


Les concepts de variables locales et globales sont empruntés au monde de la programma-
tion. Une variable shell est considérée comme globale lorsqu’elle est relayée lors du démar-
rage d’une commande ou d’un programme. Les variables globales sont aussi souvent
appelées variables d’environnement.
Les variables simplement assignées sont des variables locales. Pour définir des variables
globales, il faut appeler export ou declare -x.
Il existe de nombreuses commandes pour gérer les variables et certaines fonctionnalités sont
fournies par plusieurs commandes. Les exemples suivants essaient d’expliquer le compor-
tement de ces commandes :
a=3 raccourci pour let, a est une variable locale
declare a=3 donne à la variable locale a la valeur 3 (comme let)
declare -x a=3 donne à la variable globale a la valeur 3 (comme export)
export affiche toutes les variables globales
export a fait de a une variable globale
export a=3 donne à la variable globale a la valeur 3
let a=3 donne à la variable locale a la valeur 3
printenv affiche, comme export, toutes les variables globales
set affiche toutes les variables (locales et globales)
unset a supprime la variable a

Si vous définissez des variables pour qu’elles modifient le comportement d’autres commandes, ces variables
doivent toujours être globales. Pour qu’elles exploitent le mécanisme de substitution du shell et pour déclarer
des variables globales, vous devez assigner les variables avec x=... et les définir comme globales avec
export x.
L’attribution des variables n’est valable que pour un seul shell. Si vous travaillez dans plusieurs terminaux ou
fenêtres de terminal, les shells qui s’y trouvent sont indépendants les uns des autres. Modifier la valeur
d’une variable dans un shell n’a aucune influence sur sa valeur dans un autre shell. Vous pouvez définir les
variables fréquemment utilisées dans votre fichier .profile, exécuté à chaque démarrage de l’interpréteur de
commandes.
Linux Livre Page 299 Mardi, 23. septembre 2008 1:05 13

BASH 299

Variables importantes
En principe, vous pouvez définir autant de variables arbitraires que vous le souhaitez. Il est
cependant préférable d’éviter les noms de variables prédéfinis, souvent utilisés par bash et
d’autres commandes. Modifier ces variables sans contrôle peut entraîner des problèmes
dans le traitement de commandes, dans la recherche de fichiers, etc. Cette liste décrit les
principales variables de l’interpréteur de commandes dans l’ordre alphabétique.
• BASH contient le nom de fichier de bash.
• glob_dot_filenames définit l’extension des caractères Joker : si la variable existe (et a
une valeur arbitraire), * renvoie également les fichiers qui commencent par un .. unset
glob_dot_filenames supprime ce comportement.
• HOME contient le chemin du répertoire personnel, par exemple /home/michael.
• LOGNAME contient l’identifiant de connexion (nom de l’utilisateur).
• HOSTNAME contient le nom d’hôte (nom de l’ordinateur).
• MAIL contient le chemin du répertoire où sont enregistrés les courriers électroniques
lorsqu’ils arrivent.
• MANPATH contient le chemin de tous les répertoires où se trouvent des pages de manuel.
• OLDPATH contient le chemin du dernier répertoire actif.
• PATH contient une liste de répertoires. Lorsque bash doit lancer une commande, il la
cherche dans tous les répertoires énumérés dans PATH. Les répertoires sont séparés par
des caractères deux-points.
PATH est défini dans /etc/profile. Pour ajouter un répertoire à PATH, modifiez /etc/
profile avec une ligne de cette forme :
PATH=$PATH:/opt/kde/bin

Pour des raisons de sécurité (éviter l’exécution de programmes malicieux dans le réper-
toire courant), PATH ne contient généralement pas le répertoire courant. Si vous souhai-
tez lancer des programmes du répertoire courant sans avoir à taper ./, ajoutez . à la
variable PATH.
• PROMPT_COMMAND peut contenir une commande lancée avant chaque affichage de l’invite
de commande par bash.
• PS1 contient une chaîne de caractères, dont le contenu s’affiche à chaque début de ligne
(invite de commande). Cette chaîne comprend, entre autres, les combinaisons suivan-
tes : \t indique l’heure, \d la date, \w le répertoire courant, \W la dernière partie du
répertoire courant (soit X11 pour /usr/bin/X11), \u le nom d’utilisateur, \h le nom de
l’ordinateur et \$ le caractère d’invite ($ pour un utilisateur standard, # pour root)
• PS2 contient la chaîne de caractères affichée aux lignes suivant la première dans les com-
mandes en plusieurs lignes (par exemple, lorsque la première ligne se termine par \). Sa
valeur classique est ">".
• PWD contient le nom du répertoire courant.
Linux Livre Page 300 Mardi, 23. septembre 2008 1:05 13

300 LINUX

En plus des variables décrites dans cette section, il existe d’innombrables variables d’envi-
ronnement, définies par le shell ou les différents programmes. Vous pouvez en afficher la
liste avec printenv | sort.

19.8 Programmation shell


Les programmes shell sont de simples fichiers texte qui contiennent quelques commandes
Linux ou bash. Quand on démarre un tel programme, les commandes qui s’y trouvent sont
exécutées dans l’ordre. Les programmes shell peuvent avoir des paramètres, qu’ils sont
capables d’évaluer.
Comme l’exécution de quelques commandes ne permet pas vraiment d’exécuter des tâches
complexes, bash dispose d’expressions conditionnelles et de boucles. Il s’agit donc d’un
vrai langage de programmation pour lequel vous n’avez besoin ni d’un compilateur, ni de
connaissances en C.
Les applications typiques des programmes shell sont l’automatisation de suites de comman-
des fréquentes pour installer des programmes, administrer le système, gérer des sauvegardes,
configurer et lancer des programmes, etc.
Nous n’entrerons pas ici dans les détails du langage. Les lecteurs intéressés peuvent se
reporter à l’excellente traduction du Advanced Bash Scripting Guide (Guide avancé d’écriture
des scripts Bash), disponible à l’adresse http://abs.traduc.org/.
Linux Livre Page 301 Mardi, 23. septembre 2008 1:05 13

PARTIE 4 – CONFIGURATION ET ADMINISTRATION


DU SYSTÈME

Configuration de base
20
Ce chapitre est le premier d’une longue série traitant des différents aspects de la
configuration de Linux. Après avoir donné quelques informations introductives,
nous y présenterons les fonctions élémentaires suivantes :
• la configuration des consoles en mode texte ;
• le paramétrage de la date et de l’heure ;
• l’administration des utilisateurs ;
• l’internationalisation, les jeux de caractères, Unicode ;
• une synthèse rapide sur la configuration du matériel ;
• les rouages internes de la gestion du matériel ;
• les fichiers de journalisation.
Les chapitres suivants s’intéresseront à la gestion des paquetages, l’administra-
tion des bibliothèques système, la configuration du système graphique (X),
l’administration du système de fichiers, l’amorçage (GRUB, Init-V) ainsi que la
gestion du noyau et de ses modules.

20.1 Introduction
Ce chapitre ainsi que ceux qui suivent vous offrent un aperçu de ce que réali-
sent, en coulisses, les programmes de configuration de Linux. Vous devez com-
prendre tous les tenants et aboutissants de la configuration. Par conséquent,
vous trouverez dans ce chapitre une grande quantité d’informations de fond
sur le fonctionnement du système dans son ensemble.
Malheureusement, les différentes distributions se distinguent par de nombreux
détails de configuration. Dans cet ouvrage, je tente de décrire les points com-
muns au plus grand nombre de systèmes Linux possible. Il se peut toutefois que
votre distribution présente justement quelques détails légèrement différents de
ce que vous aurez lu ici. Dans de tels cas, pensez à jeter un coup d’œil à la docu-
mentation.
Même si cela peut vous sembler d’un certain inconfort, je reste néanmoins per-
suadé qu’il est préférable de proposer des solutions génériques plutôt qu’un
livre sur l’administration de Red Hat, un autre pour l’administration de SUSE,
etc. C’est d’autant plus vrai que les distributions individuelles changent d’une
version à l’autre. Vous devrez également apprendre, d’une façon ou d’une
autre, à consulter et comprendre par vous-même les pages de manuels, d’aide
en ligne, qui sont bien souvent disponibles seulement en anglais. Ce livre ne
Linux Livre Page 302 Mardi, 23. septembre 2008 1:05 13

302 LINUX

remplacera pas le manuel d’origine ou des tutoriels pas à pas, mais il vise à vous donner des
connaissances fondamentales.
Mais où est Jusqu’à présent, celui que l’on nomme "l’administrateur système" était peut-être une per-
l’adminis-
trateur sonne anonyme qui vous venait en aide occasionnellement (souvent contrainte et surchar-
système ? gée de travail). Si vous ne travaillez pas dans une grande entreprise, l’administrateur n’est
bien souvent qu’un concept abstrait issu d’ouvrages ayant pour devise "si quelque chose ne
fonctionne plus, consultez votre administrateur système".
Si vous avez installé vous-même Linux sur votre ordinateur, ce point de vue change légè-
rement : vous êtes vous-même l’administrateur système ! Toutefois, que cette idée ne
vous effraie pas : l’administrateur système est tout simplement la personne responsable
de la configuration de l’ordinateur. Tant qu’il s’agit de fonctions de base de Linux, ce peut
être n’importe qui ! Il est toutefois naturel, de temps à autre, de devoir jeter un œil dans cet
ouvrage ou toute autre source d’informations sur Linux.
Outils de La plupart des distributions proposent des programmes de configuration d’un grand
configuration
confort que vous pouvez utiliser aussi bien pendant qu’après l’installation : drakconf sous
Mandriva, divers programmes dénommés system-xxx sous Red Hat, YaST sous SUSE, etc.
En cas de problème de configuration, vous devez toujours faire appel en premier lieu à ces
outils ! Ils sont optimisés spécialement pour votre distribution et vous épargnent bien du
travail et des difficultés.
Outre ces outils de configuration spécifiques à une distribution, il existe également des pro-
grammes indépendants de toute distribution. Leur représentant le plus populaire à l’heure
actuelle est Webmin. Il présente en outre un avantage de taille : intégralement utilisable via
une interface web, il est donc idéal pour l’administration distante.
http://www.webmin.com/
Le programme eBox, relativement récent, paraît très prometteur. Il est spécialement conçu
pour l’administration des fonctionnalités réseau des systèmes Debian :
http://www.ebox-platform.com/
Ces outils posent toutefois un problème : la société ou l’organisation produisant votre distri-
bution ne sont pas directement responsables de leur maintenance. Les outils de configura-
tion indépendants d’une distribution sont donc toujours légèrement en retard par rapport
aux nouvelles versions d’une distribution et aux modifications que celle-ci introduit.
Administration Jusqu’à présent, je suis parti du principe que vous souhaitiez configurer un ordinateur indi-
réseau
viduel (l’ordinateur local). Si votre travail d’administrateur consiste à gérer des centaines
d’ordinateurs sous Linux, les outils de configuration présentés ci-dessus sont pour le moins
inefficaces. À leur place, vous aurez besoin de programmes permettant de configurer de
manière centralisée un groupe d’ordinateurs à la fois. Vous pourrez ainsi envisager sereine-
ment d’installer sur tous les postes une nouvelle version d’OpenOffice, d’activer de nouvel-
les règles de pare-feu sur tous les ordinateurs directement connectés à Internet, etc.
La liste ci-après présente un certain nombre de ces outils. Ils se différencient non seulement
au niveau des fonctionnalités proposées, mais également et de façon assez marquée par leur
coût. Il n’est pas possible d’entrer ici plus en détail sur ces produits, pour des questions de
place mais aussi parce que je n’ai aucune expérience pratique de ces programmes.
http://www.redhat.com/rhn/ (Red Hat, commercial) ; http://www.novell.com/products/
zenworks/(Novell/SUSE, commercial) ; http://www.informatik.uni-koeln.de/fai/ (installation
Linux Livre Page 303 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 303

automatique pour Debian, open-source) ; http://m23.sourceforge.net/ (administration et


configuration de Debian/Ubuntu, open-source) ; https://www.gosa-project.org/ (gestion
des comptes utilisateurs pour Debian, open-source).
Fichiers de Les outils de configuration sophistiqués et dotés d’interfaces graphiques agréables n’ont
configuration
pour but que de vous épargner la modification manuelle des fichiers de configuration. Pour
le débutant sous Linux, c’est sans aucun doute très pratique. Mais il existe bon nombre de
raisons de se familiariser avec ces fichiers de configuration et, ainsi, avec les rouages internes
de Linux :
• Les fichiers de configuration peuvent être modifiés avec n’importe quel éditeur de texte,
même lorsque vous travaillez avec une console en mode texte ou par ssh à travers un
réseau. De nombreux programmes de configuration ne sont en revanche disponibles
qu’en mode graphique et uniquement pour une utilisation locale.
• Dès que vous avez compris comment configurer une fonctionnalité particulière de
Linux, vous pouvez appliquer cette connaissance à quasiment n’importe quelle autre
distribution Linux. Un outil de configuration graphique est, en revanche, spécifique à
une distribution.
• Ce n’est qu’à travers la modification directe des fichiers de configuration que vous pou-
vez contrôler tous les aspects d’une fonctionnalité système. Les outils de configuration
se limitent bien souvent à un nombre restreint de détails (les plus importants).
• Les fichiers de configuration peuvent être copiés d’un ordinateur à l’autre. Cela peut
vous faire gagner un temps certain lorsque vous devez changer de distribution, procéder à
une installation complète de Linux sur un nouvel ordinateur, etc.
• Plus vous comprenez comment sont construits les fichiers de configuration et quelles
possibilités de contrôle ils offrent, mieux vous comprenez Linux : votre ordinateur vous
apparaîtra alors d’autant moins comme une "boîte noire" dont les mécanismes internes
vous restent inaccessibles.
La plupart des fichiers de configuration de Linux se trouvent dans le répertoire /etc. Vous
trouverez par conséquent dans l’index, à la lettre E, une référence de tous les fichiers de confi-
guration présentés dans cet ouvrage.
Pour les programmes plus gros, les divers fichiers de configuration devant collaborer sont
souvent répartis dans des sous-répertoires individuels. Par exemple, tous les fichiers de confi-
guration du système graphique X se trouvent dans le répertoire /etc/X11. Certains sous-
répertoires ont une signification particulière :
/etc/default fichiers spécifiques à la distribution (Debian, Ubuntu)
/etc/init.d ou /etc/rc.d système InitV (amorçage du système, voir Chapitre 24)
/etc/sysconfig fichiers spécifiques à la distribution (Fedora, Red Hat, SUSE)
Il est par ailleurs judicieux de conserver une copie de sauvegarde de l’ensemble du réper-
toire /etc. De cette manière, vous pourrez vérifier rapidement, après chaque modification,
l’état d’origine d’un fichier de configuration donné.
root# mkdir /etc-backup
root# cp -a /etc/* /etc-backup
Linux Livre Page 304 Mardi, 23. septembre 2008 1:05 13

304 LINUX

Lorsque vous modifiez les fichiers de configuration, veillez bien à ce que la dernière ligne se termine elle
aussi par un retour chariot (touche Entrée). De nombreux programmes Linux ne traitent pas correctement
les fichiers lorsque le caractère de fin de ligne manque sur la dernière ligne. Ceci vaut naturellement aussi
lorsque vous travaillez avec plusieurs éditeurs de texte.

Rechercher des Si vous ne parvenez pas à trouver un fichier de configuration donné dans votre distribution,
fichiers de
configuration plusieurs causes sont envisageables : il est possible que les paquetages logiciels sous-jacents
ne soient tout simplement pas installés, ou les fichiers de configuration se trouvent, sur
votre distribution, dans un autre répertoire que celui attendu. Pour vos recherches, utilisez
les commandes suivantes (voir Annexe B) :
locate :
find :
grep :
La commande suivante montre comment vous pouvez rechercher dans le répertoire /etc et
dans l’ensemble de ses sous-répertoires tous les fichiers dont le contenu (pas le nom du
fichier) présente le mot abcde :
root# cd /etc
root# find -type f -exec grep -q abcde {} \; -print

Durant la rédaction de cet ouvrage, j’ai régulièrement recherché dans la distribution x où se paramétrait la
fonctionnalité y ou l’emplacement du programme z. J’aurais donc pu être amené à taper la commande ci-
dessus des centaines de fois mais, pour gagner du temps et m’épargner cette répétition fastidieuse, j’ai
rédigé le miniscript grepall pour prendre en charge cette tâche. Reportez-vous au Chapitre 19 pour les
détails relatifs à ce script ainsi qu’une introduction à la programmation Bash.

Activer une Dans un certain nombre de programmes, les modifications apportées au fichier de configu-
nouvelle
configuration ration ne prennent effet que lorsque vous relancez le programme ou que vous lui indiquez
explicitement de recharger le fichier de configuration. Pour ce faire, vous aurez générale-
ment besoin de l’une ou l’autre des deux commandes suivantes (pour les détails, reportez-
vous au Chapitre 14) :
root# /etc/init.d/nom_de_la_fonction restart
root# /etc/init.d/nom_de_la_fonction reload

Contrairement à Windows, il n’est pratiquement jamais nécessaire de redémarrer l’ordina-


teur. Les exceptions à cette règle ne concernent que des modifications au noyau Linux ainsi
que certains paramétrages matériels spécifiques, qui ne peuvent être appliqués qu’au
démarrage du système.

20.2 Configuration de la console en mode texte


Sur les distributions récentes, Linux lance directement l’environnement graphique et, bien
souvent, les débutants ignorent qu’il existe également une console en mode texte. Il se peut
toutefois que la configuration du système X soit défectueuse ou que, pour une raison
Linux Livre Page 305 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 305

quelconque, aucun environnement graphique ne soit disponible. Sur de nombreuses instal-


lations de serveurs, c’est même un choix délibéré que de renoncer à l’environnement gra-
phique. Pour gérer de tels cas, vous devrez vous être familiarisé avec la console texte
(reportez-vous également au Chapitre 12).
Le système responsable de paramètres élémentaires (du type configuration du clavier ou
police de caractères) dépend de la distribution : il s’agira soit de l’outil très répandu kbd, soit
du système plus moderne console. Les sections suivantes commencent par décrire ces deux
systèmes avant de s’intéresser plus en détail à tous les autres paramètres (couleurs, prise en
charge de la souris) qui en dépendent.

Configuration de kbd (clavier, police)


loadkeys L’outil centralisé pour la gestion du clavier est le programme loadkeys. Celui-ci charge une
table de correspondance entre le code clavier et le caractère associé. Pour la langue française,
l’installation devrait avoir mis en place la correspondance fr-latin1.map. Une variante en
est fr-latin1-nodeadkeys.map. La différence entre ces deux variantes réside dans la gestion
des caractères spéciaux `, ’, ~ et ^ : dans la variante standard, ces caractères peuvent servir à
générer des caractères étrangers. Lorsque l’on souhaite saisir le caractère lui-même, on doit
ensuite appuyer sur la barre d’espace. Avec la variante nodeadkeys, le caractère apparaît
immédiatement.
loadkeys charge la table de correspondance clavier souhaitée à partir du répertoire /lib/
kbd/keymaps (sur Fedora, Red Hat) ou /usr/share/keymaps (sur SUSE). Les tables compressées
sont automatiquement décompressées.
root# loadkeys fr-latin1

À l’amorçage du système, la table de correspondance clavier est chargée par le script InitV
/etc/rc.d/rc.sysinit (Fedora, Red Hat) ou /etc/init.d/kbd (SUSE). C’est le fichier de
configuration /etc/sysconfig/keyboard qui, dans ce cadre, détermine quelle table est effec-
tivement chargée.
setfont setfont charge une police de caractères pour la console. Les fichiers sous-jacents associés se
trouvent dans le répertoire /lib/kbd/consolefonts (Fedora, Red Hat) ou dans /usr/share/
kbd/consolefonts (SUSE). Ainsi, par exemple, iso01.16 est une police pour le jeu de carac-
tères ISO-Latin-A, dans laquelle chaque caractère est représenté sur 16 pixels de hauteur.
iso01.08 et iso01.14 en sont des variantes présentant respectivement chaque caractère sur
8 et 14 pixels de hauteur. Les caractères sont donc plus petits et vous pouvez ainsi afficher
davantage de lignes à la fois.
root# setfont iso01.14

La mise en place de la police à l’amorçage du système dépend, comme bien souvent, de la


distribution. Dans le cas de Red Hat et de Fedora, /etc/rc.d/rc.sysinit appelle le script
/sbin/setsysfont. Celui-ci analyse alors le fichier de configuration /etc/sysconfig/i18n.
Par défaut, c’est la police latarcyrheb-sun16 qui est utilisée : outre les caractères latins
essentiels, elle comprend également des caractères cyrilliques et hébraïques.
Linux Livre Page 306 Mardi, 23. septembre 2008 1:05 13

306 LINUX

Dans le cas de SUSE, la police de la console est mise en place via /etc/init.d/kbd. Ce script
analyse /etc/sysconfig/console. Par défaut, c’est la police lat9w-16.psfu qui est utilisée :
outre les caractères Latin-1, elle comprend également le symbole Euro.
Fondamentalement, les consoles sont compatibles avec l’Unicode. Néanmoins, le nombre
maximal de caractères possibles pour les polices de la console est très restreint (256 ou 512).
Par conséquent, les polices de console ne peuvent utiliser qu’une petite partie de l’ensemble
des caractères Unicode.

Configuration de la console (clavier, police)


Sur certaines distributions, en lieu et place de kbd est utilisé le nouveau paquetage console
(console-setup, console-tools, etc.). Son avantage par rapport à kbd est que les paramètres
contrôlant la disposition du clavier sont communs avec l’environnement graphique X (voir
aussi Chapitre 22).
Sur Ubuntu 7.04, le fichier de configuration /etc/default/console-setup commande aussi
bien les paramètres du clavier que ceux de la police :
# /etc/default/console-setup
...
# Police
CHARMAP="UTF-8"
CODESET="Lat15"
FONTFACE="VGA"
FONTSIZE="16"

# Clavier
XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""
XKBOPTIONS="lv3:ralt_switch"

Ce fichier est analysé par le script /bin/setupcon, lui-même exécuté deux fois lors de
l’amorçage du système : une fois par le biais de /etc/init.d/keyboard-setup et une
seconde fois par le biais de /etc/init.d/console-setup.
Il est intéressant de noter comment sont traitées les quatre variables du clavier : elles sont
analysées par le script ckbcomp. Celui-ci génère, à partir des fichiers de clavier X, une table
de correspondance pour le clavier qui est alors activée comme avec kbd par le biais de la
commande loadkeys.

Configuration de gpm (souris)


L’utilisation de la souris n’est envisageable qu’avec le système X Window. Le programme
gpm permet toutefois une utilisation restreinte de la souris dans le cadre de la console texte :
en particulier, vous pouvez sélectionner du texte avec le bouton gauche de la souris et l’insé-
rer à l’emplacement du curseur à l’aide du bouton central ou du bouton droit. Attention,
toutefois, au fait que, dans la plupart des programmes de consoles, vous ne pouvez pas
modifier l’emplacement du curseur à l’aide de la souris !
Linux Livre Page 307 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 307

gpm est, en règle générale, lancé par le processus InitV (voir Chapitre 24). La configuration
s’effectue, suivant la distribution, dans /etc/gmp.conf ou dans /etc/sysconfig/mouse : le
plus souvent, il n’est pas nécessaire de modifier les paramètres par défaut. Pour lancer
manuellement le programme, exécutez la commande suivante :
root# /etc/init.d/gpm start

20.3 Date et heure


La plupart des distributions reposent sur des outils de configuration pour le paramétrage de
l’heure et de la date système :
Gnome time-admin
KDE Centre de configuration > module Administration du système > Date et
heure
Debian, Ubuntu outils Gnome ou KDE
Red Hat / Fedora system-config-date
SUSE module YaST Système > Fuseau horaire
Il est toutefois intéressant de savoir comment l’heure est gérée en interne : l’existence
d’un réseau informatique international impose d’utiliser une heure de référence unifiée
au niveau mondial, à savoir l’heure GMT. Cet acronyme, correspondant à Greenwich
Mean Time (heure du méridien de Greenwich), est la mesure de toute chose (a minima, du
temps) sur tous les ordinateurs Unix. On trouve également l’acronyme UTC (Universal
Time, Coordinated ou temps universel coordonné) pour représenter cette heure de réfé-
rence.
Lorsque vous enregistrez un fichier, c’est donc non pas l’heure locale courante qui est utili-
sée, mais une heure calculée à partir de ce standard international. Si vous affichez les détails
des fichiers à l’aide de la commande ls -l, l’heure d’enregistrement est convertie pour cor-
respondre au fuseau horaire local de l’ordinateur. Ceci permet donc d’identifier, parmi deux
fichiers, lequel est le plus récent : un fichier enregistré à 18 heures à l’heure locale de Munich
ou un fichier enregistré à 12 heures 30 à l’heure locale de New York.
Paramétrage C’est durant la première phase du processus InitV (voir Chapitre 24) qu’est configurée
de l’heure à
l’amorçage de l’heure. Pour cela, la commande hwclock lit l’heure dans la puce CMOS de votre ordinateur.
l’ordinateur Celle-ci peut contenir soit l’heure locale, soit l’heure GMT. Si vous utilisez également votre
ordinateur sous Windows, il est plus pratique que le CMOS fournisse l’heure locale.
Sous Red Hat, Fedora et SUSE, le fichier de configuration /etc/sysconfig/clock contient
des informations déterminant si l’heure CMOS est l’heure locale ou l’heure GMT, ainsi
que le fuseau horaire dans lequel se trouve votre ordinateur. Sous Debian et Ubuntu,
c’est le fichier /etc/default/rcS qui indique si l’heure CMOS est l’heure locale ou l’heure
GMT. /etc/timezone indique quant à lui le fuseau horaire.
Linux Livre Page 308 Mardi, 23. septembre 2008 1:05 13

308 LINUX

Plutôt que récupérer l’heure CMOS de votre ordinateur, notoirement imprécise, vous pouvez égale-
ment obtenir cette information de serveurs de temps beaucoup plus fiables hébergés soit sur Internet,
soit sur votre réseau local. Ceci présuppose toutefois l’existence d’une connexion permanente à Inter-
net ou au serveur de temps local : c’est la solution idéale pour un ordinateur qui reste allumé en per-
manence.

Paramétrage Pour que les commandes du type ls, ou le gestionnaire de fichiers de KDE ou Gnome, puissent
du fuseau
horaire reconvertir l’heure GMT vers l’heure locale de l’ordinateur et l’afficher, chaque programme
doit savoir dans quel fuseau horaire se trouve l’ordinateur.
La plupart des programmes Linux utilisent pour cela des fonctions de la bibliothèque glibc.
Cette bibliothèque consulte le fichier /etc/localtime. Ce fichier constitue en fait une copie
d’un fichier de fuseau horaire hébergé dans le répertoire /usr/share/zoneinfo. /etc/local-
time peut également être un lien symbolique vers un fichier de fuseau horaire.

20.4 Utilisateurs et groupes, mots de passe


La gestion des utilisateurs consiste en premier lieu à définir quels utilisateurs ont accès à
quels fichiers, quels utilisateurs ont le droit d’exécuter quels programmes, quels utilisateurs
ont accès à quels composants matériels (fichiers de périphériques), etc. Gérer les utilisateurs
et les droits d’accès est toujours obligatoire lorsque plusieurs personnes doivent travailler
sur un même ordinateur. Des règles sont indispensables pour déterminer dans quelles
conditions un utilisateur peut lire ou modifier les données d’un autre utilisateur.
Sous Linux, on gère à cette fin une liste des utilisateurs. De surcroît, chaque utilisateur se
voit affecté à au moins un groupe (mais, potentiellement, il peut être affecté à plusieurs). Les
groupes servent à autoriser l’accès de plusieurs utilisateurs à des fichiers et programmes
communs.

Pour que la gestion des droits d’accès fonctionne, avec chaque fichier sont enregistrés un propriétaire, un
groupe propriétaire ainsi que des droits d’accès sous forme binaire. Du fait que les programmes sont égale-
ment des fichiers et que l’accès aux composants matériels s’effectue également souvent par le biais des
fichiers de périphériques, ce mécanisme est très générique.

Dans ce chapitre, nous n’aborderons que la gestion des utilisateurs et des groupes. Les conséquences de
ce système pour la gestion des fichiers et l’exécution des processus sont abordées respectivement aux Cha-
pitres 13 et 14. Vous trouverez donc dans ces chapitres des informations de base sur l’utilisation des droits
d’accès binaires enregistrés avec chaque fichier. Vous y trouverez aussi des astuces pour exécuter des pro-
grammes système sans pour autant posséder les droits de l’utilisateur root.

Programmes En principe, vous pouvez en tant qu’utilisateur root assurer la gestion manuelle de vos uti-
de confi-
guration lisateurs si vous modifiez directement les fichiers décrits dans cette section. Il est toutefois
plus confortable et plus sûr de faire appel pour cela aux outils de gestion des utilisateurs et
des groupes fournis avec la plupart des distributions :
Linux Livre Page 309 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 309

Gnome users-admin (outil de gnome-system-tools)


KDE Centre de configuration > module Administration du système > Adminis-
tration des utilisateurs
Debian, Ubuntu outils Gnome ou KDE
Red Hat, Fedora system-config-users
SUSE module YaST Sécurité > Utilisateurs et Sécurité > Groupes
Commandes Si vous préférez renoncer au confort des interfaces graphiques ou que vous souhaitiez auto-
matiser la gestion des utilisateurs par le biais de scripts, vous pouvez faire appel aux com-
mandes présentées dans le tableau suivant. Vous trouverez à l’Annexe B une brève référence
des options principales. L’exemple suivant montre comment créer un nouvel utilisateur
utilisateurtest et lui attribuer un mot de passe.
root# useradd -m utilisateurtest
root# passwd utilisateurtest
New passwd: xxx
Re-enter new passwd: xxx

Commandes pour l’administration des utilisateurs et des groupes


adduser crée un nouvel utilisateur (Debian)
addgroup crée un nouveau groupe (Debian)
chgrp modifie le groupe propriétaire d’un fichier
chmod modifie les droits d’accès binaires à un fichier
chown modifie le propriétaire d’un fichier
chsh modifie le shell par défaut d’un utilisateur
delgroup supprime un groupe (Debian)
deluser supprime un utilisateur (Debian)
groupadd crée un nouveau groupe
groupdel supprime un groupe
groupmod modifie les propriétés d’un groupe
groups affiche les groupes auxquels appartient l’utilisateur courant
id affiche les numéros d’identifiant de l’utilisateur et du groupe courants
newgrp modifie le groupe auquel appartient l’utilisateur
newusers crée plusieurs nouveaux utilisateurs à la fois
passwd modifie le mot de passe d’un utilisateur
useradd crée un nouvel utilisateur
userdel supprime un utilisateur
usermod modifie les propriétés d’un utilisateur

Vous remarquerez très certainement que, pour plusieurs tâches, il existe deux commandes
différentes (par exemple adduser et useradd). adduser, addgroup, deluser et delgroup sont de
Linux Livre Page 310 Mardi, 23. septembre 2008 1:05 13

310 LINUX

fait des extensions spécifiques à Debian pour les commandes d’origine useradd, groupadd,
etc. Sous Debian, Ubuntu et les autres distributions basées sur Debian, ces commandes
obéissent aux règles définies dans /etc/adduser.conf et /etc/deluser.conf.
Red Hat et Fedora se chargent quant à elles d’ajouter à la confusion ambiante : les comman-
des adduser, addgroup, deluser et delgroup y sont également disponibles. Toutefois, il s’agit
non pas des mêmes commandes que propose Debian, mais de liens vers useradd, groupadd,
userdel et groupdel. De ce fait, adduser possède sous Fedora la même syntaxe que useradd
(mais une syntaxe différente de celle d’adduser sous Debian !).
SUSE/Novell suit également son propre chemin : les commandes adduser/-group et delu-
ser/-group n’y sont pas disponibles. Au lieu de groupadd/-del/-mod et useradd/-del/-mod,
on y utilise une implémentation propre à la distribution qui reste compatible avec les
commandes des autres distributions sur la plupart (mais non la totalité) des options.

Administration des utilisateurs


Sous Linux et, de façon générale, sur tout système de type Unix, il existe trois types d’utili-
sateurs :
• Le superutilisateur (administrateur système ou root). Cet utilisateur possède habituel-
lement le nom root. Tout utilisateur s’identifiant en tant que root (naturellement, il faut
pour cela connaître le mot de passe root) possède des droits illimités : il ou elle peut lire,
modifier, supprimer tout fichier, exécuter tout programme, etc. Des droits aussi étendus
ne sont nécessaires que pour l’administration du système. Pour des raisons de sécurité,
aucune autre tâche ne doit être réalisée en tant que root !
• Les utilisateurs usuels. Ces utilisateurs se servent de Linux pour travailler. Ils possèdent
un accès illimité à leurs propres fichiers mais des droits d’accès restreints sur le reste du
système. Comme identifiant de connexion, on utilise autant que possible le nom de l’uti-
lisateur (par exemple isabelle ou dupont).
• Les utilisateurs système pour les démons et services. Enfin, il existe toute une série
d’utilisateurs prévus non pas pour le travail interactif sur l’ordinateur mais pour l’exé-
cution de programmes spécifiques. Par exemple, le serveur web Apache est exécuté non
pas par l’utilisateur root mais par un utilisateur propre dénommé suivant les distribu-
tions apache, wwwrun, httpd ou tout autre nom similaire. Ce fonctionnement permet de
tendre vers une sécurité maximale du système.
/etc/passwd La liste de tous les utilisateurs est enregistrée dans le fichier /etc/passwd. On y trouve, pour
chaque utilisateur, les identifiants de connexion, le nom complet, les numéros UID et GID, le
répertoire personnel, ainsi que le shell par défaut. Le format suivant est utilisé :
NomDUtilisateur:MotDePasse:UID:GID:Nom:RepertoirePersonnel:Shell

Les lignes qui suivent illustrent quelques définitions d’utilisateurs dans le fichier /etc/passwd
sous Ubuntu :
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
Linux Livre Page 311 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 311

mail:x:8:8:mail:/var/mail:/bin/sh
...
kofler:x:1000:1000:Michael Kofler,,,:/home/kofler:/bin/bash
huber:x:1001:1001:Herbert Huber,,,:/home/huber:/bin/bash

Le nom du fichier, passwd, laisse à penser que les mots de passe y sont également enregis-
trés. Ce fut le cas par le passé mais, entre-temps, c’est devenu plutôt rare. Au lieu des mots
de passe, le fichier /etc/passwd ne contient que le caractère x. Les informations de mot de
passe (naturellement chiffrées) sont enregistrées dans le fichier distinct /etc/shadow.
Nom Le nom d’utilisateur ne devrait être constitué que de lettres minuscules (chiffres et lettres
d’utilisateur
US-ASCII) et ne doit pas dépasser huit caractères. Il est certes envisageable, en principe,
d’utiliser des caractères non ASCII et de dépasser huit caractères, mais cela peut engendrer
des problèmes avec certains programmes. Pour le nom complet, enregistré séparément, ces
restrictions n’ont pas cours.
UID et GID Le numéro UID (User Identification ou identifiant utilisateur) sert à l’identification interne de
l’utilisateur. Le numéro est enregistré comme information supplémentaire avec chaque
fichier de manière à expliciter le propriétaire du fichier.
Il existe des règles pour l’attribution des numéros UID : root possède toujours l’identifiant
UID=0. Pour les services et démons, les numéros UID sont sur la plupart des distributions
compris entre 1 et 999 (Red Hat et Fedora, ainsi que quelques autres distributions, utilisent
encore les anciennes règles définissant un domaine de valeurs compris entre 1 et 499). Pour
les utilisateurs usuels, les numéros d’identifiants sont par conséquent attribués à partir de
1 000 (500 sur Red Hat et Fedora).
Le numéro GID (Group Identification ou identifiant de groupe) indique à quel groupe appartient
l’utilisateur. La section suivante donnera plus d’informations sur les groupes.
Répertoire Le répertoire personnel est l’emplacement dans lequel un utilisateur peut enregistrer ses
personnel
données personnelles. Pour les utilisateurs usuels, ce répertoire correspond habituellement
au chemin /home/nom_d_utilisateur. Dans le répertoire personnel sont également enregis-
trés les paramètres de configuration personnels de l’utilisateur pour divers programmes.
Par exemple, le fichier .emacs contient les paramètres de configuration pour l’éditeur
Emacs. Du fait que le nom de tels fichiers de configuration commence la plupart du temps
par un point, ils sont invisibles. Vous pouvez toutefois les afficher avec la commande ls -la.
Pour que les nouveaux utilisateurs disposent immédiatement d’une configuration standard
sensée pour les programmes essentiels, on doit, à la création d’un nouvel utilisateur, copier
tous les fichiers du répertoire /etc/skel vers le nouveau répertoire personnel. De nombreux
programmes de création d’utilisateurs gèrent automatiquement cette étape. Le contenu de
/etc/skel représente donc la configuration par défaut pour tout nouvel utilisateur.
Shell Le shell est un interpréteur grâce auquel l’utilisateur peut, une fois connecté, exécuter des
commandes. Du fait que Linux propose différents interpréteurs, vous devez en choisir un et
indiquer votre choix dans le fichier passwd. Sous Linux, il s’agit en général du shell bash, que
nous décrivons en détail au Chapitre 19. On doit indiquer dans le fichier passwd le chemin
complet du shell, par exemple /bin/bash.
Linux Livre Page 312 Mardi, 23. septembre 2008 1:05 13

312 LINUX

Administration des groupes


Le but des groupes consiste à autoriser pour plusieurs utilisateurs l’accès conjoint à certains
fichiers. Pour ce faire, chaque utilisateur se voit affecté à un groupe primaire (initial group).
On peut également l’affecter à autant de groupes supplémentaires (supplementary groups) que
souhaité : il est alors membre de plusieurs groupes.
Le fichier /etc/group contient la liste de tous les groupes. Les lignes qui suivent donnent un
exemple de définitions de groupes dans /etc/group. Le format appliqué est le suivant :
NomDeGroupe:MotDePasse:GID:ListeDUtilisateurs

Les lignes qui suivent proviennent du fichier group d’un système Ubuntu :
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:kofler
...
dialout:x:20:cupsys,kofler,huber
...
users:x:100:
admin:x:114:kofler
...
kofler:x:1000:
huber:x:1001:
...

La correspondance entre utilisateur et groupes s’effectue de deux manières :


• Le groupe primaire d’un utilisateur est enregistré dans /etc/passwd. Pour l’utilisateur
kofler, le groupe primaire est intitulé kofler (GID 1000 dans le fichier /etc/passwd).
• L’appartenance à d’autres groupes est déterminée en renseignant le nom de l’utilisateur
dans la dernière colonne du fichier /etc/group. Ainsi, kofler appartient également aux
groupes adm, admin et dialout. Ceci permet à l’utilisateur kofler de procéder, sur un sys-
tème Ubuntu, à des tâches d’administration ainsi que d’établir une connexion Internet.
Au niveau des numéros de GID, 0 est réservé à l’utilisateur root tandis que les valeurs de 1
à 99 sont prévues pour les services système. Le GID 100 est normalement réservé au groupe
users. Les GID supérieurs à 100 peuvent être utilisés pour vos besoins propres.
Correspon- Pour la correspondance entre les utilisateurs et leurs groupes primaires, il existe deux
dance entre
utilisateur et stratégies :
groupe • La méthode classique, utilisée depuis de nombreuses années sur Unix/Linux, consiste à
primaire
affecter tous les utilisateurs normaux au groupe primaire users. SUSE adopte cette
stratégie très simple.
• Les distributions à base Debian, ainsi que Red Hat et Fedora, reposent sur un autre prin-
cipe : chaque utilisateur se voit attribuer son propre groupe primaire. Dans ce cas, pour
les utilisateurs kofler et huber, il existe deux groupes éponymes. Le groupe users ne
joue plus aucun rôle.
Cette méthode présente certains avantages dans des conditions particulières, par exem-
ple lorsque plusieurs membres d’un groupe secondaire produisent des fichiers communs.
Linux Livre Page 313 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 313

On ne peut toutefois en tirer parti que dans le cadre d’une administration système
appropriée.
Sur de nombreuses installations Linux où les groupes d’utilisateurs n’ont, bien souvent,
aucun fichier en commun ou qui utilisent pour la gestion de projets communs des outils
spécialisés du type CVS (Concurrent Versioning System), le choix du groupe primaire entre le
groupe commun users ou les noms d’utilisateurs individuels n’a aucune importance.

Mots de passe
Les mots de passe Linux ne peuvent être constitués que de caractères ASCII (aucun caractère
étranger n’est autorisé !). Pour des raisons de sécurité, les mots de passe doivent contenir aussi
bien des majuscules que des minuscules, ainsi qu’au moins un chiffre.
Les mots de passe sont enregistrés sous Linux sous une forme chiffrée qui ne permet aucune
reconstruction du mot de passe. L’algorithme DES utilisé pour cela ne prend en compte que
huit caractères, ce qui rend pour le moment inutile le choix de mots de passe plus longs. Ce
point pourra toutefois faire l’objet de changements à l’avenir. Le code chiffré ne permet au
système que de tester si le mot de passe que vous avez saisi correspond à celui enregistré.
Tapez man 3 crypt pour obtenir plus de détails sur la procédure de chiffrement.
Les programmes permettant de "craquer" (c’est-à-dire de déchiffrer) des mots de passe
empruntent le chemin inverse : ils testent tout simplement des millions de mots de passe aléa-
toires (la plupart du temps des mots du dictionnaire combinés avec des chiffres) pour voir si
le mot de passe chiffré correspond. Du fait que beaucoup d’utilisateurs utilisent des mots
de passe trop simples et que les ordinateurs deviennent de plus en plus rapides, cette
méthode permet fréquemment d’aboutir au résultat souhaité, ce qui est peu rassurant.
Pour compliquer quelque peu la vie des pirates cherchant à accéder à votre système,
dans les systèmes Linux récents le mot de passe chiffré est enregistré non plus directement dans
/etc/passwd mais dans le fichier séparé /etc/shadow. L’avantage est que ce fichier peut être
lu seulement par root (/etc/passwd et /etc/group doivent être lisibles pour tous les utilisa-
teurs du système car ils contiennent des informations d’administration de base ; avec /etc/
shadow, il suffit en revanche que le fichier soit accessible seulement aux programmes de véri-
fication et de modification des mots de passe ; un pirate tentant d’accéder à votre ordinateur
doit donc tout d’abord obtenir un accès root à votre machine avant de pouvoir lire les mots
de passe chiffrés).
Pour le fichier shadow, le format suivant est utilisé :
NomDUtilisateur:MotDePasseChiffre:d1:d2:d3:d4:d5:d6:reserved

Les lignes qui suivent vous présentent un extrait d’un fichier shadow :
root:$1$v/BiTkAA$o7ccAO18X0suOtXXNw3Qm1:13528:0:99999:7:::
daemon:*:13479:0:99999:7:::
bin:*:13479:0:99999:7:::
sys:*:13479:0:99999:7:::
...
kofler:$1$mT.09dkO$O69fx51MRPXVcNrgp05GK1:13479:0:99999:7:::
Linux Livre Page 314 Mardi, 23. septembre 2008 1:05 13

314 LINUX

d1 à d6 Les champs d1 à d6 peuvent contenir des indications de temps facultatives :


• d1 indique la date de dernière modification du mot de passe (en nombre de jours écoulés
depuis le 01/01/1970).
• d2 indique dans combien de jours le mot de passe doit être modifié.
• d3 indique dans combien de jours au plus tard le mot de passe doit être modifié avant de
perdre sa validité (la commande man 5 shadow vous donnera plus de détails sur les
champs).
• d4 indique combien de jours avant l’expiration du mot de passe l’utilisateur doit être
averti.
• d5 indique au bout de combien de jours un compte désactivé et sans mot de passe valide
doit être définitivement désactivé.
• d6 indique depuis quand un compte a été désactivé.
Normalement, des valeurs par défaut sont utilisées pour d1 à d3, de manière que le mot de
passe puisse être changé à tout moment et reste valide indéfiniment. Toutefois, on peut aussi
utiliser d1 à d6 pour restreindre la validité des mots de passe, désactiver automatiquement
des comptes utilisateurs en fonction du temps, etc. (par exemple pour gérer les comptes
d’étudiants dans une école ou une université).
Pour la plupart des utilisateurs système (par exemple, ci-dessus, daemon, bin, sys, etc.), on
enregistre au lieu du mot de passe une simple étoile ou un point d’exclamation. Cela signifie
qu’il n’y a pas de mot de passe valide et qu’une ouverture de session est donc impossible.
Les comptes système restent toutefois utilisables : les programmes lancés initialement avec
des droits root peuvent ensuite changer de propriétaire et poursuivre leur exécution en tant
que bin, daemon, lp, etc. C’est d’ailleurs précisément le cas pour la plupart des processus sys-
tème : à l’amorçage, ils sont lancés automatiquement par l’utilisateur root et changent
immédiatement d’utilisateur propriétaire pour des raisons de sécurité.
/etc/login.defs Un grand nombre de paramètres relatifs à l’administration interne des mots de passe et
noms d’utilisateurs se trouvent dans le fichier /etc/login.defs. Vous pouvez y configu-
rer le délai d’attente après la saisie d’identifiants erronés, le nombre de tentatives de
connexion autorisées, si passwd doit accepter des mots de passe visiblement trop faibles,
quels droits d’accès binaires doivent être utilisés pour les répertoires personnels à leur
création, etc.
Modifier un Pour changer votre propre mot de passe, exécutez la commande passwd. Celle-ci commence
mot de passe
par vous demander votre ancien mot de passe, puis vous êtes invité à deux reprises à saisir
un nouveau mot de passe. La saisie n’est pas affichée à l’écran. Le nouveau mot de passe
n’est accepté que si les deux saisies correspondent. À partir de ce moment, vous devrez
utiliser le nouveau mot de passe pour ouvrir une session.
Les mots de passe doivent comprendre de six à huit caractères. Ils peuvent être constitués de
majuscules, minuscules, de chiffres ainsi que de signes de ponctuation. passwd réalise quel-
ques tests et rejette les mots de passe visiblement trop simples. Un bon mot de passe doit
contenir, outre des minuscules, au moins un chiffre et une majuscule. De surcroît, il ne
doit pas s’agir de mots (ou de variations basées sur un mot) que l’on puisse trouver dans
le dictionnaire.
Linux Livre Page 315 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 315

Si les utilisateurs normaux ne peuvent modifier que leur propre mot de passe, l’utilisateur
root peut également modifier les mots de passe de tout autre utilisateur :
root# passwd hofer
New password: ******
Re-enter new password: ******
Password changed.

Que faire lorsque vous avez oublié votre mot de passe root ? Dans ce cas, vous devrez amorcer votre système
avec une disquette d’installation ou de sauvetage, ou encore avec un CD amorçable (par exemple Knoppix).
Créez alors un nouveau répertoire avec mkdir dans la RAM de votre système d’installation ou de sauvetage,
et montez-y la partition sur laquelle se trouve votre système Linux :
root# mount -t ext3 /dev/xxx /rep
Vous avez maintenant accès au fichier /rep/etc/shadow et vous pouvez y effacer le mot de passe root
(tous les caractères compris entre le premier et le second caractère "deux-points") ou le remplacer par le mot de
passe chiffré (mais connu) d’un autre utilisateur.
L’ouverture d’une session root sans mot de passe n’est possible, de par les paramètres de sécurité de
/etc/pam.d/common-auth , que dans une console texte. Vous pouvez alors y saisir un nouveau mot
de passe root au prochain amorçage à l’aide de la commande passwd, de manière à pouvoir ensuite
travailler en tant qu’utilisateur root dans votre environnement graphique X.
Si vous souhaitez empêcher d’autres utilisateurs de modifier le mot de passe root suivant la méthode
exposée ici, vous devez désactiver dans le BIOS de votre ordinateur tout médium d’amorçage autre
que le premier disque dur (de manière qu’il ne soit pas possible d’amorcer depuis une disquette, un
CD ou une clé USB) et sécuriser le BIOS par un mot de passe. Mot de passe que vous ne pouvez
toutefois vous permettre d’oublier... Une autre possibilité consiste à chiffrer entièrement la partition
système.

faillog Suivant le paramétrage figurant dans /etc/login.defs, toutes les tentatives d’ouverture de
session ayant échoué sont enregistrées dans le fichier journal /var/log/faillog. Contrairement
à de nombreux autres fichiers journaux, c’est ici un format binaire qui est utilisé.
La commande faillog -u nom vous permet de vérifier, pour un utilisateur donné, combien
de tentatives de connexion ont échoué depuis sa dernière connexion réussie.
faillog -u nom -m max vous permet de fixer un nombre maximal d’échecs autorisés pour
les ouvertures de session d’un utilisateur donné. Si ce nombre est dépassé, l’identifiant
correspondant est bloqué jusqu’à être à nouveau autorisé par l’utilisateur root par le
biais de la commande faillog -u nom -r (le nombre d’échecs enregistrés est alors réini-
tialisé).
Vous pouvez également établir le nombre maximal d’échecs autorisés pour l’ensemble des
utilisateurs par le biais de faillog -m max. Toutefois, vous devriez toujours exécuter aussi
faillog -u root -m 0 de manière à exclure l’utilisateur root de cette mesure. Dans le cas
contraire, vous pourriez ne plus être en mesure de vous connecter en tant qu’administrateur
si un autre utilisateur a tenté sans succès de se connecter en tant que root et a atteint la
limite fixée.
Linux Livre Page 316 Mardi, 23. septembre 2008 1:05 13

316 LINUX

Mots de passe Comme pour les utilisateurs, il est possible de définir des mots de passe pour les groupes
de groupe
(avec la commande gpasswd). Toutefois, s’il est fortement conseillé d’imposer des mots de
passe aux utilisateurs, cela devient superflu au niveau des groupes. Leur inconvénient prin-
cipal est que tous les membres d’un même groupe doivent connaître le mot de passe en
question, ce qui alourdit encore l’administration.
Si toutefois des mots de passe de groupe doivent être mis en place, ils sont habituellement
enregistrés dans le fichier /etc/gshadow. Un utilisateur doit alors fournir le mot de passe de
groupe lorsqu’il cherche à changer de groupe actif par le biais de la commande newgrp. Le
groupe actif détermine à quel groupe appartiennent de nouveaux fichiers à leur création.

Collaboration entre fichiers de configuration


Les paragraphes suivants synthétisent la manière dont les trois fichiers passwd, groups et
shadow collaborent. Pour chaque utilisateur, le fichier passwd contient une ligne construite
sur le modèle suivant :
# une ligne de /etc/passwd
kofler:x:1000:1000:Michael Kofler:/home/kofler:/bin/bash

kofler est le nom d’utilisateur. 1000 est l’identifiant d’utilisateur (UID), 1000, l’identifiant de
groupe primaire (GID), Michael Kofler, le nom complet (utilisé pour les e-mails, les groupes
de news, etc.), /home/kofler, le répertoire personnel de l’utilisateur, et /bin/bash, son shell.
L’identifiant UID doit être unique car il joue un rôle important dans la gestion des droits
d’accès aux fichiers.
La ligne correspondante dans /etc/shadow, contenant les informations de mot de passe,
possède l’allure suivante :
# une ligne de /etc/shadow
kofler:$1$mT.09dkO$O69fx51MRPXVcNrgp05GK1:13479:0:99999:7:::

La chaîne de caractères qui suit kofler: est le mot de passe chiffré. Si l’on renonce à cette chaîne
de caractères, le nom d’utilisateur peut être utilisé sans mot de passe. Si, au lieu de la chaîne de
caractères, figure un symbole * ou !, l’ouverture de session est verrouillée pour cet utilisateur.
Le numéro d’identifiant GID figurant dans /etc/passwd doit correspondre à un groupe figu-
rant dans /etc/group. Pour de nombreuses distributions, chaque utilisateur usuel se voit
affecté à un groupe portant le même intitulé que le nom d’utilisateur :
# une ligne de /etc/group
kofler:x:1000:

PAM (Pluggable Authentication Modules ou modules


d’authentification enfichables)
La quasi-totalité des distributions Linux utilise les outils PAM (Pluggable Authentication
Modules) pour l’authentification effective. PAM teste si les informations de connexion four-
nies (nom d’utilisateur et mot de passe) sont valides. L’intérêt de PAM réside dans le fait que
toutes les commandes critiques pour la sécurité du système (login, passwd, le gestionnaire
de session X xdm) n’ont pas forcément besoin de leur code propre pour la vérification des
Linux Livre Page 317 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 317

mots de passe. Au lieu de cela, toutes ces commandes peuvent utiliser PAM. La page sui-
vante propose une documentation complète sur PAM, même si elle date un peu :
http://www.kernel.org/pub/linux/libs/pam/
PAM offre le choix entre plusieurs modules d’authentification. Le module standard gère
l’authentification en analysant le fichier /etc/shadow que nous avons déjà mentionné (ges-
tion des utilisateurs locaux). Il existe par ailleurs divers modules PAM pour l’authentification
des utilisateurs sur un serveur centralisé (voir la section suivante).
Configuration La configuration générale de PAM intervient par le biais de plusieurs fichiers hébergés dans le
répertoire /etc/security. Toutefois, pour la plupart des distributions, ces fichiers ne contien-
nent que des lignes commentées.
De surcroît, pour chaque programme accédant à PAM il existe un fichier de configuration
propre dans le répertoire /etc/pam.d. C’est par exemple ainsi que fonctionnent les programmes
passwd, gdm, kdm, ssd, su et sudo.
Modification Sur certaines distributions (par exemple Red Hat, Fedora jusqu’à sa version 7), PAM est
des droits
d’accès à configuré de façon que les droits d’accès sur divers fichiers de périphériques soient modifiés
travers PAM automatiquement à l’ouverture de session. C’est utile pour permettre aux utilisateurs usuels
d’accéder à des CD et DVD, de communiquer avec leur appareil photo numérique ou avec
leur PDA, etc. (Au lieu de cela, SUSE repose sur le démon resmgrd. Debian et Ubuntu affec-
tent les fichiers de périphériques à des groupes, de manière que le contrôle d’accès s’effectue
par le biais de l’appartenance à un groupe.)
Ce sont les fichiers /etc/security/console.perms.d qui gèrent la modification automatique
des droits d’accès à la première ouverture de session. Les modifications restent en place jusqu’à
déconnexion de l’utilisateur. À la connexion suivante, de nouvelles modifications sont mises en
place. C’est ainsi que l’on évite les conflits lorsque plusieurs utilisateurs sont connectés simulta-
nément au système. Le premier à s’être connecté garde la main jusqu’à sa déconnexion.
La structure des fichiers console.perms suit l’exemple fourni par les lignes suivantes. Vous
obtiendrez des informations détaillées avec la commande man console.perms.
# /etc/security/console.perms.d/50-default.perms (Red Hat, Fedora)
<sound>=/dev/dsp* /dev/audio* /dev/midi* /dev/mixer* /dev/sequencer* \
/dev/sound/* /dev/beep /dev/snd/* /dev/adsp*
<cdrom>=/dev/cdrom* /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*
<pilot>=/dev/pilot
...
<console> 0600 <sound> 0600 root
<console> 0600 <cdrom> 0660 root.disk
<console> 0600 <pilot> 0660 root.uucp
...

Droits Une particularité supplémentaire de Red Hat et Fedora est que les utilisateurs usuels s’iden-
d’exécution
pour certaines tifiant dans la console texte peuvent faire appel à de nombreux outils de configuration
commandes sans pour autant devoir fournir le mot de passe root. Cela concerne par exemple les com-
mandes halt, poweroff, reboot et setup. Divers fichiers de configuration situés dans le
répertoire /etc/security/console.apps gèrent ces droits supplémentaires.
Linux Livre Page 318 Mardi, 23. septembre 2008 1:05 13

318 LINUX

Administration des utilisateurs sur un réseau


Si vous avez mis en réseau plusieurs ordinateurs sous Linux et que vous souhaitiez autori-
ser l’accès concurrent aux fichiers par NFS, vous devez veiller à ce que les numéros d’iden-
tifiant UID et GID se correspondent d’un ordinateur à l’autre. Cette contrainte seule se
révèle déjà particulièrement complexe à mettre en œuvre sur plusieurs ordinateurs. Si vous
souhaitez de surcroît que chaque utilisateur puisse se connecter depuis n’importe quel poste
(naturellement toujours avec les mêmes identifiants de connexion, nom d’utilisateur et mot
de passe), vous devez alors synchroniser en permanence tous les fichiers /etc/passwd. La
charge de travail d’administration est alors incroyablement élevée.
Pour éviter cette surcharge, une solution consiste à mettre en place un serveur centralisé
pour la gestion des utilisateurs. Pour l’authentification des clients, on a le choix entre un
grand nombre de protocoles alternatifs, qu’il ne nous est toutefois pas possible de décrire en
détail dans ce livre pour des raisons de place :
• NIS (Network Information Service) ;
• LDAP (Lightweight Directory Access Protocol) ;
• Hesiod ;
• Kerberos ;
• Samba et la gestion des utilisateurs Windows.
De nombreuses distributions permettent de configurer le système dès l’installation pour que
les modules de gestion des utilisateurs contactent un serveur d’authentification approprié.
Vous pouvez naturellement activer aussi cette fonctionnalité ultérieurement :
Debian, Ubuntu installation et configuration de libpam-smbpass, libpam-ldap, etc.
Red Hat, Fedora system-config-authentification
SUSE module YaST Sécurité > Utilisateurs > commande Options pour experts >
Authentification

20.5 Configuration des langues, internationalisation,


Unicode
Dans cette section, nous aborderons deux sujets :
• La localisation et la configuration des langues. Il s’agit de la configuration déterminant
dans quelle langue sont affichés les messages d’erreur, les menus, les boîtes de dialogue,
l’aide, etc. La mise en forme des dates, heures, unités monétaires est également adaptée
en conséquence.
• Le jeu de caractères. Le jeu de caractères détermine le codage utilisé pour enregistrer les
lettres. Le seul jeu de caractères pour lequel il règne une uniformité générale est le code
ASCII sur 7 bits. La majorité des jeux de caractères utilise par conséquent le code 65
pour la lettre A. Il y a toutefois des décalages pour les caractères de langues étrangères :
par conséquent, la lettre À se verra représentée par un code différent suivant le jeu de
caractères en vigueur. Il existe même des jeux de caractères dans lesquels la lettre À
Linux Livre Page 319 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 319

n’intervient absolument pas, de manière à libérer de la place pour d’autres caractères


(par exemple pour des lettres cyrilliques ou hébraïques).
Dans le contexte de la localisation des programmes, vous vous heurterez fréquemment aux
abréviations particulières i18n et l10n : il s’agit de raccourcis pour désigner d’une part
l’internationalisation (internationalization : i plus 18 lettres plus n), d’autre part la localisation
(localization). Ces abréviations peuvent être utilisées comme mots-clés si vous souhaitez
rechercher davantage d’informations sur Internet.
La configuration du clavier est décrite pour la console texte dans ce chapitre, pour l’environ-
nement graphique X au Chapitre 22. Vous y trouverez aussi des astuces pour la gestion des
caractères étrangers avec X.

Bases sur les jeux de caractères


Un jeu de caractères (character set) décrit la correspondance entre des codes numériques et
des lettres. Des jeux de caractères connus sont, par exemple, l’ASCII (7 bits), l’ISO-Latin-n
(8 bits) et l’Unicode (16 bits).
• ASCII. Le jeu de caractères ASCII décrit 127 signes, parmi lesquels les lettres a à z, A à
Z, les chiffres 0 à 9 ainsi que divers signes de ponctuation.
• ISO-8859, caractères latins. Les jeux de caractères ISO comprennent, outre les 127 carac-
tères ASCII, jusqu’à 128 caractères particuliers supplémentaires pour différentes régions
linguistiques. La liste suivante donne la liste des principaux jeux de caractères ISO :
ISO-8859-1 = Latin-1 : Europe de l’Ouest
ISO-8859-2 = Latin-2 : Europe centrale et de l’Est
ISO-8859-3 = Latin-3 : Europe méridionale
ISO-8859-4 = Latin-4 : Europe du Nord
ISO-8859-9 = Latin-5 : turc
ISO-8859-10 = Latin-6 : scandinave (saame, inuktitut, islandais)
ISO-8859-13 = Latin-7 : balte
ISO-8859-14 = Latin-8 : celtique
ISO-8859-15 = Latin-9 (= Latin-0) : identique au Latin-1 mais comprenant en outre le
symbole Euro
Le terme Latin-0 n’a été utilisé que dans un document de travail et ne constitue donc pas
un nom officiel. Il est toutefois fréquemment utilisé dans la pratique. Sous Windows, les
jeux de caractères sont désignés par le terme "code pages". Le code page 1252 présente
de grandes similitudes avec le Latin-1, sans toutefois lui être absolument identique.
• Unicode. Pour limiter la confusion causée par la multiplicité de jeux de caractères sur
8 bits, le jeu de caractères Unicode sur 16 bits (alias ISO-10646) a été introduit. Il permet
de coder non seulement tous les caractères spéciaux européens, mais également la majo-
rité des caractères asiatiques. Comme 16 bits sont prévus pour chaque symbole, ce jeu
de caractères permet de gérer plus de 65 000 caractères.
Linux Livre Page 320 Mardi, 23. septembre 2008 1:05 13

320 LINUX

Unicode régit uniquement l’affectation d’un code à un caractère et non la façon dont ce
code est enregistré. La solution la plus simple, au premier abord, consisterait donc à
représenter chaque caractère par deux octets (c’est-à-dire 16 bits). Ce format est désigné
par l’appellation UTF-16 (UTF représentant Unicode Transfer Format). Elle présente tou-
tefois deux inconvénients : tout d’abord, elle double l’espace de stockage requis, et ce
même lorsque l’on cherche à enregistrer majoritairement des caractères européens ou
même uniquement ASCII-US. De plus, l’octet de code 0 intervient à différents emplace-
ments dans les chaînes de caractères Unicode : de nombreux programmes C, serveurs
de courrier électronique, etc. considèrent toutefois que l’octet 0 marque la fin d’une
chaîne de caractères.
Par conséquent, il existe aussi d’autres manières de représenter des textes Unicode.
L’alternative de loin la plus populaire à UTF-16 est UTF-8. Dans ce cadre, tous les carac-
tères ASCII-US (7 bits) sont représentés comme précédemment par un unique octet dont
le bit de poids fort est 0. Tous les autres caractères Unicode sont représentés par des
chaînes d’octets comprenant de 2 à 4 octets. L’inconvénient le plus visible de ce format
est l’absence de rapport entre le nombre d’octets et le nombre de caractères du docu-
ment. Du fait de sa compatibilité croissante avec des programmes existants et d’une
série d’autres avantages, UTF-8 s’est établi comme le standard sous Unix/Linux (tandis
que, sous Microsoft Windows, c’est fréquemment l’UTF-16 qui est employé). Lorsque
l’on parle d’Unicode dans le contexte de Linux, il s’agit implicitement dans la plupart
des cas d’Unicode au format UTF-8.
Par défaut, le jeu de caractères Unicode UTF-8 est maintenant appliqué dans la quasi-
totalité des distributions.
Effets du jeu Le jeu de caractères actif détermine comment sont codés les caractères dans les fichiers de
de caractères
texte mais aussi dans les noms de fichiers. Les systèmes de fichiers de Linux s’adaptent à
chaque jeu de caractères. Comme nom de fichier, toute chaîne de caractères se terminant par
l’octet 0 est valide. Suivant le jeu de caractères en vigueur, la série et le nombre d’octets uti-
lisés pour représenter un nom de fichier comme àèù.txt pourront toutefois prendre des
valeurs très différentes ! Si le jeu de caractères courant est Latin-1, ce nom peut être repré-
senté par 7 octets (plus un huitième pour l’octet 0). Si, en revanche, c’est le jeu de caractères
Unicode/UTF-8 qui est utilisé, le nom du fichier comptera 10 octets (car il faut 2 octets pour
représenter chacun des caractères à, è et ù).
Il existe toute une série de programmes qui fonctionnent indépendamment du jeu de carac-
tères ou gèrent indifféremment différents jeux de caractères : par exemple, les logiciels de
courrier électronique ou les navigateurs Internet peuvent tous présenter des e-mails et
pages web rédigés dans un jeu de caractères autre que le jeu courant. Pour que cela fonc-
tionne, chaque e-mail ou chaque page web contient des informations sur le jeu de caractères
utilisé. Les outils de traitement de texte modernes enregistrent en général le texte dans un
jeu de caractères Unicode ou utilisent un code qui leur est propre. Même les éditeurs de
texte du type Emacs ou XEmacs sont en mesure de travailler sur des fichiers de texte dans
différents encodages et de les enregistrer.
Problèmes liés Les problèmes surviennent le plus fréquemment lorsque des utilisateurs échangent des
aux jeux de
caractères fichiers (de texte, entre autres) alors qu’émetteur et destinataire utilisent des jeux de carac-
tères différents. Supposons, par exemple, qu’un utilisateur d’une distribution Linux sous
Linux Livre Page 321 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 321

Unicode compose à l’aide d’un éditeur un fichier de texte comprenant des caractères étran-
gers. Imaginons maintenant qu’un utilisateur d’une autre distribution Linux, au jeu de
caractères Latin, doive travailler sur ce fichier : il constatera, à sa grande surprise, que tous
les caractères non ASCII s’afficheront de façon erronée. Il est toutefois simple, dans la plu-
part des cas, de résoudre de tels problèmes à l’aide des commandes recode ou iconv (voir
Chapitre 12).
Les noms des fichiers ne sont pas épargnés par de tels problèmes : si vous enregistrez un
fichier sous le nom äöü.txt dans une distribution U (Unicode), que vous redémarriez votre
ordinateur sous la distribution L (Latin) et que vous observiez le fichier, vous verrez appa-
raître une chaîne de caractères qui ressemble davantage à äöÃ.txt. La meilleure solution
consiste ici à modifier le jeu de caractères utilisé dans l’une ou l’autre des distributions, de
manière qu’un même jeu de caractères soit utilisé dans les deux cas. Si vous envisagez
de modifier le jeu de caractères pour les noms d’un grand nombre de fichiers existants, la
commande convmv décrite au Chapitre 12 pourra vous être utile.
Police (font) La police ne doit pas être confondue avec le jeu de caractères. Elle détermine la façon
dont un caractère donné est affiché à l’écran. Il existe donc pour cela diverses polices (par
exemple Arial, Courier, Helvetica, Palatino, pour ne citer que quelques-unes des plus
connues).
Naturellement, les polices et les jeux de caractères ne sont pas indépendants les uns des
autres : avant de pouvoir afficher correctement à l’écran un caractère de code 234, le jeu de
caractères utilisé pour encoder ce symbole doit être clair. C’est le jeu de caractères qui
répond en effet à la question de savoir quel caractère se cache derrière le code 234. Plusieurs
des anciennes polices X étaient limitées à 256 caractères et donc disponibles dans plusieurs
versions distinctes pour différents jeux de caractères. Les polices récentes (TrueType, Post-
Script) peuvent en revanche contenir davantage de caractères et sont en règle générale compa-
tibles avec plusieurs jeux de caractères.

Configurer la localisation et le jeu de caractères


Outils de Suivant les distributions et l’environnement de bureau, vous pouvez utiliser différents
configuration
outils pour la configuration de la langue. Au niveau du jeu de caractères, c’est quasiment
toujours l’UTF-8 qui est utilisé. Seules quelques distributions permettent encore d’utiliser
un jeu de caractères sur 8 bits. Sur toutes les distributions, vous devrez quitter X et vous
connecter à nouveau pour que les nouveaux paramètres de localisation soient pris en
compte après une modification. Gnome se fonde sur la configuration linguistique du système
et ne propose par conséquent aucun outil de configuration propre.
KDE Centre de configuration > module Régionalisation et accessibilité > Pays
& Langue
Red Hat, Fedora system-config-language
SUSE module YaST Système > Langue
Ubuntu gnome-language-selector
Linux Livre Page 322 Mardi, 23. septembre 2008 1:05 13

322 LINUX

Fichiers de Naturellement, l’emplacement où sont enregistrés les paramètres de configuration varie lui
configuration
aussi suivant les distributions :
Debian, Ubuntu /etc/default/local
Red Hat, Fedora /etc/sysconfig/i18n
SUSE /etc/sysconfig/language
De nombreuses distributions tiennent en outre compte de paramètres spécifiques à l’utilisateur,
stockés dans ~/.i18n.
Variables LC En interne, la localisation et le jeu de caractères sont contrôlés par des variables d’environ-
et LANG
nement telles que LC_CTYPE et LANG. La bibliothèque glibc, utilisée dans la quasi-totalité des
programmes Linux, se charge d’analyser ces variables.
La localisation peut s’effectuer par catégorie. Pour une configuration correcte, vous pourriez
par exemple choisir d’utiliser le format français pour les dates et heures, tout en affichant les
messages d’erreur en anglais. Le tableau suivant présente les variables essentielles.

Variables principales pour la localisation


LANG détermine la valeur par défaut pour toutes les variables LC dont la valeur n’a pas été
établie
LC_CTYPE détermine le jeu de caractères
LC_COLLATE détermine l’ordre de classement
LC_MESSAGES détermine la présentation des informations, messages d’erreur, etc.
LC_NUMERIC détermine la présentation des nombres
LC_TIME détermine la présentation de la date et de l’heure
LC_MONETARY détermine la présentation des unités monétaires
LC_PAPER détermine le format de papier
LC_ALL écrase tous les paramètres LC individuels

Naturellement, tous les programmes ne tiennent pas compte de l’intégralité des catégories
(bon nombre d’entre eux ignorent même totalement les variables LC_). Lorsque des catégo-
ries individuelles ne sont pas paramétrées, les programmes utilisent comme valeur par
défaut C ou POSIX. Cela signifie que les messages d’erreur apparaissent en anglais, les dates
et heures au format américain, etc.
Plutôt que configurer individuellement chacune des variables exposées ici, vous pouvez
tout simplement paramétrer la variable LANG. De cette manière, toutes les variables non défi-
nies utilisent la valeur par défaut définie par LANG. Seule la variable LC_COLLATE conserve
la valeur par défaut POSIX. Pour la plupart des distributions, la configuration globale de la
langue s’effectue par la variable LANG.
Plus puissante encore que LANG est la variable LC_ALL. Lorsque cette variable est configurée,
sa valeur s’applique à toutes les catégories, indépendamment des valeurs attribuées par
ailleurs aux variables LC_ ou LANG.
Pour la plupart des programmes, les messages d’erreur et autres textes utilisés se trouvent
dans un répertoire dédié pour chaque langue : /usr/share/locale/langue/LC_MESSAGES.
KDE utilise en règle générale ses propres répertoires, par exemple /opt/kde3/share/
Linux Livre Page 323 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 323

locale/langue/LC_MESSAGES/. Vous trouverez davantage d’informations de fond sur le sujet


de la localisation et de l’internationalisation (Locales and Internationalization) dans la page de
manuel de la commande locale ainsi que dans le manuel de la bibliothèque glibc :
http://www.gnu.org/software/libc/manual/
Tester la La manière la plus simple de vérifier les paramètres courants de localisation consiste à utili-
localisation
ser la commande locale. Cette commande analyse également les variables LANG et LC_ALL et
renvoie l’ensemble des paramètres résultants. L’exemple suivant montre la configuration de
mon ordinateur personnel :
utilisateur$ locale
LANG=fr_FR.UTF-8
LANGUAGE=fr_FR:fr:en_GB:en
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
...
LC_ALL=

Pour vérifier la localisation, vous pouvez également exécuter de façon erronée une com-
mande de votre choix. Le message d’erreur affiché devrait apparaître dans la langue confi-
gurée. Lorsque LANG est configuré à la valeur fr_FR, le message d’erreur de la commande
mount devrait apparaître comme à l’exemple suivant. Sur certaines distributions, toutefois,
seuls les messages d’erreur en langue anglaise sont installés et ce test peut ne pas fonctionner.
utilisateur$ mount /xy
mount: ne peut repérer /xy dans /etc/fstab ou /etc/mtab

env Si vous souhaitez pouvoir exécuter une commande particulière avec un paramétrage de lan-
gue différent du système, sans pour autant devoir modifier la configuration dans son
ensemble, l’idéal consiste à utiliser la commande env. Cette commande reçoit une série de
variables et les valeurs associées, ainsi que la commande à exécuter en tenant compte des
variables de localisation fournies :
utilisateur$ env LANG=C mount /xy
mount: can’t find /xy in /etc/fstab or /etc/mtab

Si, malgré la modification apportée au paramètre LANG, le message d’erreur apparaît tou-
jours dans la langue du système plutôt qu’en anglais, essayez aussi de changer le paramé-
trage de la variable LANGUAGE :
utilisateur$ env LANG=C LANGUAGE=C mount /xy
mount: can’t find /xy in /etc/fstab or /etc/mtab

Valeurs Vous pouvez obtenir une liste de toutes les valeurs possibles pour les variables de localisa-
possibles pour
les paramètres tion à l’aide de la commande locale -a. La notation habituellement utilisée est de la forme
LC/LANG x_y, où x représente la langue sur deux caractères et y représente le pays sur deux caractères.
Pour la langue française utilisée en France, vous devrez donc utiliser fr_FR (fr_BE pour la
Belgique, fr_CA pour le Canada, etc.). Pour le paramétrage en langue anglaise standard, on
peut utiliser l’abréviation C.
Linux Livre Page 324 Mardi, 23. septembre 2008 1:05 13

324 LINUX

Les versions récentes de la glibc comprennent également le paramétrage exprimé par fran-
çais ou french. Le fichier /usr/share/locale/locale.alias contient un tableau décrivant
toutes les abréviations autorisées pour les noms de localisation complets.
Paquetages de L’affichage correct des menus, boîtes de dialogue, messages d’erreur, textes d’aide, etc. dans
localisation
la langue souhaitée dépend de fait de l’installation des fichiers de localisation nécessaires.
Pour des raisons d’espace disque, ce n’est souvent le cas que pour une ou deux langues (par
exemple anglais et français). Si vous souhaitez également utiliser votre distribution en lan-
gue allemande, vous devrez installer les paquetages supplémentaires correspondants pour
Gnome, KDE, OpenOffice, Firefox, etc. Pour SUSE et Ubuntu, les outils de configuration
présentés dans l’introduction de ce chapitre pourront vous aider ; pour les autres distributions,
toutefois, vous devrez procéder manuellement.
Tous les programmes Linux ne sont pas nécessairement traduits dans chaque langue. Il y a
des lacunes particulièrement importantes au niveau de la documentation en ligne (pages de
manuel, manuels, systèmes d’aide). Lorsque les fichiers de localisation correspondants font
défaut, Linux présente la version anglophone du texte.
Paramétrage Le jeu de caractères est paramétré conjointement à la localisation. Le jeu de caractères suit le
du jeu de
caractères code du pays dont il est séparé par un point, par exemple fr_FR.ISO-8859-1 ou fr_FR.utf8.

20.6 Référence relative au matériel


Dans ce livre, il n’y a pas de chapitre dédié au matériel. La configuration correcte des com-
posants matériels est plutôt traitée aux chapitres correspondant à leur usage : ainsi, si vous
rencontrez des problèmes avec une carte réseau, le Chapitre 26, qui traite de la configuration
réseau, est le bon endroit pour démarrer.
Cette section possède donc deux objectifs : tout d’abord, la référence systématique doit faci-
liter la recherche d’informations supplémentaires sur des composants matériels particuliers.
Ensuite, vous trouverez ici des informations concises sur certains sujets relatifs au matériel
que nous ne pouvons développer ailleurs dans ce livre.
Naturellement, il existe une pléthore de composants matériels que nous ne pouvons, pour
diverses raisons, décrire dans cet ouvrage. La raison principale en est que je n’ai pas les
possibilités, en matière de tests, dont dispose par exemple un magazine informatique.

Renseignez-vous avant l’achat sur la compatibilité de votre nouveau matériel avec Linux ! Il ne suffit pas
pour cela de consulter le vendeur : celui-ci n’en a en général aucune idée, voire il vous fournira des infor-
mations erronées. Jetez un coup d’œil aux pages habituelles dédiées au matériel avec Linux (voir Chapi-
tre 1). Effectuez des recherches sur http://groups.google.com avec comme mots-clés linux
modèle_matériel. Vous trouverez invariablement des messages dans lesquels des utilisateurs de Linux
demandent comment configurer le composant XY sous Linux. À cet égard, les magazines orientés Linux
sont également et par nature une meilleure source d’informations que les livres, qui ne sont actualisés de
manière exhaustive que tous les deux ou trois ans.

Fichiers de On accède à la plupart des composants matériels par le biais de fichiers de périphériques
périphériques
(devices), par exemple /dev/sda pour un disque dur SATA. Les fichiers de périphériques sont
Linux Livre Page 325 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 325

générés dynamiquement, suivant les besoins, par le système udev. Vous trouverez au Chapi-
tre 13 une liste des principaux fichiers de périphériques Linux.
Fichiers /proc Pour de nombreux composants, les systèmes de fichiers virtuels des répertoires /proc et /sys
et /sys
fournissent des informations détaillées. Vous trouverez un aperçu de ces fichiers de matériel
au Chapitre 23.
Modules Les pilotes des innombrables composants matériels se trouvent dans les modules du noyau.
noyau
Une partie de ces modules est chargée à l’amorçage du système, le reste uniquement lorsque
le besoin s’en fait sentir. Si le chargement automatique de modules ne fonctionne pas, vous
devriez jeter un coup d’œil aux fichiers /etc/modprobe.conf ou /etc/modprobe.conf.d/*. La
gestion des modules et le rôle de ces fichiers sont décrits au Chapitre 23.
Les messages du noyau indiquent quels événements interviennent au chargement des
modules et si le matériel a pu effectivement être initialisé avec succès. Pour consulter ces
messages, utilisez la commande dmesg.
Synthèse Quelques distributions proposent des outils donnant une synthèse du matériel disponible :
du matériel
citons par exemple lshw (Mandriva, Ubuntu), siga (SUSE) ou encore hwbrowser (Fedora,
Red Hat). lshal et son interface graphique Gnome hal-device-manager fournissent des
informations similaires.

Processeur et mémoire
Ce livre ne traite que les ordinateurs équipés d’un processeur de type Intel Pentium, c’est-à-
dire, exprimé plus simplement, les processeurs Intel et AMD à 32 et 64 bits. Il existe toutefois
des versions de Linux pour les nombreuses autres architectures de processeurs existantes (par
exemple pour PowerPC).
Le fichier /proc/cpuinfo vous renseigne sur les processeurs utilisés dans votre ordinateur.
L’exemple suivant (quelque peu raccourci) provient d’un ordinateur équipé d’un proces-
seur Intel Dual-Core. Linux considère chacun des cœurs comme un processeur indépen-
dant. La ligne model name présente la fréquence d’horloge maximale, tandis que la ligne cpu
MHz donne la fréquence d’horloge effectivement utilisée.
utilisateur$ cat /proc/cpuinfo
processor : 0
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 1596.000
...
processor : 1
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 1596.000
...

Dans le cas des processeurs à fréquence variable, les modules cpufreq sont responsables de
la réduction de fréquence destinée à économiser l’énergie. La documentation du noyau
Linux Livre Page 326 Mardi, 23. septembre 2008 1:05 13

326 LINUX

disponible dans le répertoire cpu-freq (voir aussi Chapitre 25) fournit davantage d’informa-
tions sur les fondements de ce système. Les fichiers du répertoire :
/sys/devices/system/cpu/cpun/cpufreq/

fournissent des renseignements sur l’état courant du système ainsi que sur les possibilités
de contrôle.
Mémoire La commande free vous renvoie des informations sur la mémoire disponible. Lorsque vous
(RAM)
supposez que votre ordinateur rencontre des problèmes matériels au niveau de la RAM
(secteurs défectueux, etc.), le programme Memtest86 est une bonne solution pour tester la
RAM. Avec de nombreuses distributions, vous pouvez lancer ce programme à l’amorçage
du système ou à partir du CD/DVD d’installation. Si toutefois cela ne fonctionne pas chez
vous, vous trouverez sur le site web suivant une image ISO vous permettant de graver un
CD amorçable : http://www.memtest86.com/

Gestion de l’énergie (ACPI, APM)


ACPI ACPI est l’acronyme d’Advanced Configuration and Power Interface et contrôle toutes les fonc-
tionnalités de gestion de l’énergie des ordinateurs et portables modernes. L’ACPI est pris en
charge par Linux depuis le noyau 2.6. Sur les ordinateurs ACPI, les modules noyaux néces-
saires sont automatiquement chargés, ce dont vous pouvez vous convaincre avec la com-
mande dmesg | grep -i acpi. Le processus noyau kacpid et le démon ACPI acpid sont
lancés simultanément. Ces deux programmes traitent les événements ACPI. acpid est dirigé
par le biais du fichier /etc/acpi.
La commande acpi -V et les fichiers du répertoire /proc/acpi fournissent des informations
sur l’état courant du système ACPI (état de charge des batteries, leur température, etc.).
Si l’ACPI cause des problèmes au démarrage, vous trouverez au Chapitre 24 un certain
nombre de paramètres du noyau pour désactiver partiellement ou totalement l’ACPI. Vous
trouverez par ailleurs davantage d’informations sur l’ACPI et Linux à la page suivante :
http://acpi.sourceforge.net/
Suspend ACPI prend en charge plusieurs modes de veille dans lesquels l’ordinateur consomme peu
(mode Standby) ou pas du tout d’énergie (veille prolongée). Sur la plupart des distributions
et environnements de bureau, vous pouvez passer l’ordinateur dans le mode de veille
souhaité par le biais des commandes du menu, par exemple Démarrer > Déconnexion.
Le mode de veille intéressant pour les propriétaires de portables est le mode de veille pro-
longée, pour lequel on parle également de mode d’hibernation (hibernate), Suspend to Disk ou
Software Suspend. Le contenu de la mémoire au moment de la mise en veille est enregistré
dans la partition de swap du disque dur et l’ordinateur est mis hors tension. Lorsqu’il est
remis sous tension, le contenu de la mémoire est lu depuis le disque dur. L’ensemble des
composants matériels doit par ailleurs être réinitialisé. Ce processus est très complexe et
demande une collaboration optimale entre le noyau Linux, ses modules et le système ACPI.
Il existe à l’heure actuelle plusieurs procédures différentes de réactivation à partir de la
veille prolongée. Les détails de mise en œuvre varient fortement d’une distribution à l’autre
et d’un matériel à l’autre.
Linux Livre Page 327 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 327

Mon expérience personnelle des différents modes de veille est malheureusement essentiellement négative. Si
la tentative de réactivation ne se soldait pas par une erreur, il était fréquent de ne pas pouvoir sortir l’ordina-
teur de son mode de veille. La seule solution consistait alors à réinitialiser ou à éteindre puis rallumer manuel-
lement l’ordinateur. Sur mon ordinateur portable IBM, le mode de veille a toujours fonctionné de façon
satisfaisante avec plusieurs distributions.
Testez les fonctions Suspend avec la plus grande prudence. Sécurisez préalablement toutes vos données,
exécutez la commande sync et démontez tous les systèmes de fichiers non indispensables de l’arbores-
cence du système !
Lorsque la mise en veille prolongée (suspend to disk) ne fonctionne pas, TuxOnIce (anciennement
Suspend2) peut se révéler utile dans certains cas. Cette implémentation de Suspend n’est pas encore par-
venue à intégrer le noyau officiel et elle n’est donc pas livrée avec la majeure partie des distributions. Pour
ceux que la compilation manuelle des modules requis n’effraie pas, un coup d’œil à la page suivante
devrait être intéressant : http://www.tuxonice.net/

APM APM est l’acronyme d’Advanced Power Management (gestion avancée de l’énergie) et il est le
prédécesseur d’ACPI. Vous ne devriez rencontrer APM que sur des ordinateurs et portables
relativement anciens. Dans ce cas, le fichier /proc/apm devrait vous renvoyer des informa-
tions sur l’état courant de l’alimentation. De surcroît, le processus kapmd est lancé au démar-
rage de l’ordinateur : il peut effectuer diverses opérations suivant l’état de la batterie
(afficher des messages d’avertissement, éteindre l’ordinateur, etc.).
Pour le contrôle manuel des fonctionnalités APM, faites appel à la commande apm. Utilisée
sans paramètre, la commande renseigne sur l’état d’alimentation courant (branché/débran-
ché, charge de la batterie). apm -S place l’ordinateur en mode Standby. Avec de nombreux
ordinateurs, toutefois, cela consiste simplement à éteindre l’écran. Éventuellement, la fré-
quence du processeur est également diminuée et les disques durs, éteints. Il suffit d’appuyer
sur une touche pour sortir l’ordinateur de sa veille.
apm -s active le mode Suspend. Si tout fonctionne correctement, l’ordinateur est alors entiè-
rement mis hors tension et n’a donc plus besoin que de très peu d’énergie. Le contenu de la
RAM est conservé de manière à pouvoir reprendre le travail immédiatement après la remise
sous tension. L’ordinateur peut être remis sous tension par le biais d’une combinaison de
touches dépendant du fabricant.

Interfaces et bus système


Interfaces série Sous Linux, on accède aux interfaces série et parallèle par le biais des fichiers de périphéri-
et parallèle
que respectifs /dev/ttySn et /dev/lpn. Vous ne devriez pas rencontrer ces interfaces quelque
peu anciennes avant d’aborder la configuration d’un modem analogique ou d’une impri-
mante (voir Chapitres 27 et 30).
IDE, SATA, Les disques durs internes, lecteurs de CD ou DVD, ainsi que divers autres espaces de
SCSI
stockage sont en règle générale connectés à l’ordinateur par le biais de bus système IDE,
SATA ou SCSI (voir aussi Chapitre 23). Linux communique avec les périphériques SATA et
SCSI à travers le système SCSI du noyau. Pour les périphériques IDE, il existe deux variantes :
Linux Livre Page 328 Mardi, 23. septembre 2008 1:05 13

328 LINUX

traditionnellement, on utilise le système IDE conventionnel ; depuis le noyau 2.6.19, on peut


également accéder aux périphériques IDE par le biais du système SCSI grâce à l’extension
libata. L’utilisation effective de cette extension dépend néanmoins de la distribution.
La commande lsscsi ainsi que les fichiers dont la liste est donnée ci-après fournissent des
informations sur l’état des systèmes IDE et SCSI ainsi que sur l’ensemble des périphériques
qu’ils gèrent :
/sys/bus/ide/*
/sys/bus/scsi/*
/proc/scsi/*
USB L’USB (Universal Serial Bus) est utilisé pour connecter à l’ordinateur divers périphériques
externes, allant de la souris au scanner. Les modules noyau USB nécessaires sont chargés
automatiquement. Les espaces de stockage USB (disques durs externes, clés USB, lecteurs
de CD ou DVD externes) sont gérés comme des périphériques SCSI.
Le système de fichiers virtuel usbfs fournit dans le répertoire /proc/usb des informations
sur tous les périphériques USB connectés. Vous pourrez obtenir davantage d’informations dans
le répertoire /sys/bus/usb. lsusb -v (paquetage lsbutils) renvoie une liste exhaustive de
tous les périphériques et interfaces USB.
Firewire Le bus système Firewire est une solution alternative à l’USB. Firewire est défini par le stan-
dard IEEE 1394 et est également connu sous le nom i.Link, émanant de Sony. Firewire est
plus rapide que l’USB et sert principalement pour le transfert de données depuis les camé-
ras numériques. Vous trouverez sur le site web suivant des informations détaillées sur le
sujet de l’IEEE 1394 et Linux : http://www.linux1394.org/
Les modules nécessaires (en particulier ieee1394) sont automatiquement chargés lorsque
vous branchez un périphérique Firewire. Les fichiers du répertoire /sys/bus/ieee1394 four-
nissent des informations sur les périphériques connectés et sur l’état du système Firewire.
PCI L’idéal pour obtenir des informations sur les composants PCI de votre ordinateur consiste à
faire appel à la commande lspci. Les fichiers des répertoires /proc/bus/pci/ et /sys/bus/
pci/ contiennent les mêmes informations, mais ils sont notoirement plus difficiles à inter-
préter. L’exemple qui suit a été, pour des raisons de place, fortement abrégé :
root# lspci
00:00.0 Host bridge: Intel Corporation 82P965/G965 Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82P965/G965 PCI Express Root Port (rev 02)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #4 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller
(rev 02)
00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller
(rev 02)
00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE
Controller (...)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7600 GS] (rev a1)
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit
Ethernet Controller (rev 12)
05:03.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000
Controller (...)
...
Linux Livre Page 329 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 329


PCMCIA L’abréviation PCMCIA, quasiment impossible à prononcer, est l’acronyme de Personal Com-
puter Memory Card International Association. Les cartes PCMCIA sont des cartes d’extension
au format carte bancaire pour les ordinateurs portables, les extensions en question n’étant
pas limitées à des cartes mémoire mais couvrant un large éventail d’applications. Pour la
plupart des utilisateurs de Linux, les cartes Wi-Fi, UMTS et RNIS sont probablement les plus
importantes.
Il existe deux types de cartes PCMCIA, à savoir les PC-Cards (anciennes) et les cartes
CardBus. La différence entre les deux réside dans la taille du bus utilisé pour le transfert de
données entre le portable et la carte (16 bits dans un cas, 32 bits dans l’autre). Linux prend
en charge les deux types de cartes.
Les cartes PCMCIA compatibles avec Linux sont reconnues par le système Hotplug (voir la
section suivante) et initialisées automatiquement. pccardctl renvoie des informations sur
les cartes PCMCIA branchées à l’ordinateur. Du fait qu’en interne on accède en règle géné-
rale à la carte par le bus PCI, ce programme fait fréquemment appel à lspci. Avec pccar-
dctl, vous pouvez aussi commander diverses fonctionnalités PCMCIA et, par exemple,
interrompre l’alimentation électrique des cartes PCMCIA.

Système Hotplug (udev, D-Bus et HAL)


Jusqu’à il y a quelques années, la configuration matérielle restait relativement statique. Les
modifications ne devenaient nécessaires que lorsque l’ordinateur, au bout de quelques
années, devait être mis à jour. Entre-temps, les choses ont bien changé : l’utilisation courante
d’un ordinateur implique aujourd’hui de connecter et de déconnecter fréquemment des dis-
ques durs, clés USB, cartes d’extension et autres périphériques. Linux doit réagir de façon
rapide et aussi automatique que possible à ces modifications de la configuration matérielle.
Le système Hotplug prend en charge cette tâche : au cours des dernières années, ses compo-
sants ont été entièrement réécrits et réimplémentés. Depuis 2006 environ, le processus suivant
est mis en œuvre dans la plupart des distributions :
• Le noyau constate une modification du matériel, par exemple parce que l’utilisateur a
placé un CD dans son lecteur ou qu’il a branché une clé USB à l’ordinateur.
• Le noyau appelle /sbin/hotplug pour charger les modules noyau requis.
• Le noyau génère via udev de nouveaux fichiers de périphériques (voir Chapitre 13).
• udev annonce les nouveaux périphériques à la couche HAL (Hardware Abstraction Layer)
par le biais du processus noyau hald ; la commande lshal renvoie une liste de tous les
composants matériels connus par HAL.
• hotplug transmet les événements matériels à hald.
• hald actualise la configuration du système et informe par le système de communication
D-Bus tous les programmes concernés.
D-Bus est un système pour la transmission des informations entre programmes. Sur la
base de la bibliothèque libdbus, la communication peut s’établir directement entre deux
Linux Livre Page 330 Mardi, 23. septembre 2008 1:05 13

330 LINUX

programmes. Lorsque des informations doivent être échangées entre plusieurs pro-
grammes à la fois, le programme dbus-daemon doit être utilisé en guise de "central télé-
phonique". La page web suivante constitue une introduction au fonctionnement interne
de D-Bus :
http://dbus.freedesktop.org/doc/dbus-tutorial.html
• Sous KDE 3, kioslave media:/ attend les informations en provenance de D-Bus et réagit
en conséquence. Sous KDE 4, le nouveau framework Solid est responsable du traite-
ment des informations en provenance de HAL et de D-Bus. Jusqu’à la version 2.20 de
Gnome, c’est gnome-volume-manager qui prenait en charge cette tâche (configuration par
le biais de gnome-volume-properties). À partir de la version 2.22, c’est Nautilus qui gère
les supports de stockage externes conjointement avec PolicyKit ; la configuration
s’effectue alors par le biais d’Éditer > Préférences > Volumes.

La configuration de HAL, de D-Bus et d’udev (que vous trouverez dans les répertoires /etc/hal, /etc/
dbus-1 et /etc/udev ) est décisive pour le bon fonctionnement de l’ensemble. De par la complexité
élevée que cela représente, vous êtes guidé par votre distribution dans la configuration du système
Hotplug. Seuls les experts Linux pourront s’en sortir en cas de problème lors d’une modification de la
configuration. Vous trouverez plus de détails sur ce sujet sur les pages suivantes :
http://webcvs.freedesktop.org/hal/hal/doc/spec/hal-linux26.png?view=co
http://qa.mandriva.com/twiki/bin/view/Main/HotPluggableHardwareRemovableMedia
http://www.freedesktop.org/wiki/Software/hal
http://www.redhat.com/magazine/003jan05/features/hal/
http://www.reactivated.net/writing_udev_rules.html
http://www.linuxformat.co.uk/pdfs/LXF66.tut_udev.pdf
Le remplacement de HAL par le DeviceKit est envisagé à une date indéterminée, mais pour le moment les
paris sont ouverts pour savoir si et quand une distribution franchira le pas :
http://lists.freedesktop.org/archives/hal/2008-May/011560.html
http://fedoraproject.org/wiki/Features/DeviceKit

Interfaces réseau
Pour la configuration des cartes Ethernet, du Wi-Fi, des modems analogiques, des cartes
RNIS et des modems ADSL, reportez-vous aux Chapitres 26 et 27.
Bluetooth Bluetooth est une méthode de communication radio entre périphériques matériels. Blue-
tooth possède une portée plus réduite que le Wi-Fi et est plus généralement utilisé pour les
téléphones portables, PDA et autres petits périphériques électroniques. Linux prend égale-
ment en charge Bluetooth mais, n’ayant pas pu tester moi-même la gestion du matériel
Bluetooth, je ne peux que vous renvoyer aux pages suivantes :
http://www.bluez.org/ ; http://www.holtmann.org/linux/bluetooth/ (collection de liens).
Linux Livre Page 331 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 331

Interface graphique (X)


Les cartes graphiques sont, sous Linux, utilisées par le biais du système X Windows. La
configuration de ce système fait l’objet d’un long développement au Chapitre 22. Vous y
trouverez également des informations pour optimiser l’utilisation des fonctions 3D de votre
carte graphique.

Système audio (ALSA)


ALSA Avant de pouvoir jouer le moindre son sur la carte ou le contrôleur audio de votre ordina-
teur, le pilote ALSA correspondant à votre matériel doit être chargé dans le noyau et initia-
lisé. ALSA est l’acronyme de Advanced Linux Sound Architecture et c’est le système chargé,
depuis le noyau 2.6, du pilotage des cartes son au plus bas niveau. Dans les versions précé-
dentes du noyau, c’était OSS (Open Sound System) qui était utilisé. ALSA propose au besoin
une couche de compatibilité avec OSS sous la forme des modules snd-pcm-oss, snd-seq-oss
et snd-mixer-oss.
Dans le cas des contrôleurs audio pris en charge par le noyau, le module ALSA requis est
automatiquement chargé. Le nom de tous les modules ALSA commence par snd. Par consé-
quent, la commande lsmod | grep snd vous renvoie une synthèse rapide de tous les modu-
les ALSA actifs. L’accès aux diverses fonctionnalités audio se fait par le biais de fichiers
situés dans le répertoire /proc/asound.
La configuration du système ALSA s’effectue par le biais des fichiers /etc/alsa/*, /etc/
asound.conf ainsi que ~/.asoundrc. Il n’existe aucune nécessité impérieuse de modifier ces
fichiers dans le cadre d’une utilisation classique du système audio. La reconnaissance du
matériel doit être automatique. Pour les utilisateurs ayant des exigences particulières en
matière de son (par exemple les musiciens) ou souhaitant différencier plusieurs cartes
audio, le site web et le wiki associé fournissent une documentation complète sur ALSA et sa
configuration :
http://www.alsa-project.org
Lorsque vous éteignez votre ordinateur, le volume sonore est enregistré par un script InitV
(voir Chapitre 24) ; au lancement suivant, ce même script restaure la valeur du volume enre-
gistrée.
Outils ALSA Pour utiliser directement ALSA, vous disposez de diverses commandes (paquetage alsa-
utils) dont nous ne mentionnons ici que les plus importantes :

Commandes ALSA
alsactl enregistre ou charge tous les paramètres ALSA (volume, etc.)
alsamixer modifie le volume ou le niveau d’entrée de divers canaux audio ALSA
aplay lit un fichier audio
arecord enregistre un fichier audio
Linux Livre Page 332 Mardi, 23. septembre 2008 1:05 13

332 LINUX

Si les haut-parleurs restent silencieux, c’est bien souvent que l’un des réglages de volume est à 0. Pour une
utilisation standard, trois canaux sont importants : le volume principal pilote le niveau sonore du signal glo-
bal ; le volume PCM indique le niveau sonore des données audio générées par les programmes et insérées
dans le signal global (PCM est l’acronyme de Pulse Code Modulation : tous les lecteurs de MP3 utilisent, par
exemple, le canal PCM) ; enfin, le volume du CD indique le niveau sonore correspondant aux données
provenant directement du lecteur de CD (ce qui présuppose que le lecteur de CD et la carte audio soient
connectés par le biais d’un câble !).

Bibliothèques De nombreux programmes audio n’utilisent pas directement ALSA mais accèdent à des
audio
bibliothèques audio, un serveur de son, etc. Cette couche intermédiaire entre le système
ALSA (de bas niveau) et l’application audio effective doit faciliter la programmation, rendre
les applications audio utilisables à travers le réseau et assurer la coopération de programmes
audio s’exécutant simultanément.
Toutefois, le problème est qu’il n’existe pour le moment aucune architecture audio unifiée
au-dessus d’ALSA : KDE et Gnome ont chacun suivi leur propre chemin. Les applications
audio exigeantes, pour lesquelles les bibliothèques audio existantes sont insuffisantes, doi-
vent réimplémenter elles-mêmes des fonctionnalités audio élémentaires. Il est extrêmement
difficile de développer des logiciels audio capables de fonctionner indépendamment de
l’environnement de bureau de manière simple. Pour les programmeurs de la société Adobe,
les problèmes audio avaient même justifié la lenteur des développements pour le plugin
Flash Linux.
La liste qui suit présente rapidement quelques-uns des systèmes audio actuellement dispo-
nibles :
• aRts. aRts est l’acronyme d’analog real-time synthesizer et c’est la base audio pour KDE
2.n et 3.n. aRts est constitué d’une série de modules pour générer, filtrer, fusionner, etc.
les données audio. Les programmes KDE accèdent à aRts par le biais du démon aRtsd,
qui est lancé en même temps que KDE. Les programmes qui ne sont pas compatibles
avec aRts mais qui accèdent directement aux périphériques du module son du noyau
sont automatiquement redirigés par le biais de artsdsp. aRts n’est toutefois plus maintenu
et il deviendra obsolète avec la sortie de KDE 4.
• EsounD. EsounD (Enlightened Sound Daemon) était l’homologue d’aRts pour Gnome.
Les programmes compatibles avec EsounD envoient les données audio au démon esd,
qui est lancé en même temps que Gnome. EsounD a rencontré un sort comparable à
celui d’aRts : il est certes toujours installé avec Gnome pour des raisons de compati-
bilité, mais la plupart des applications audio reposent maintenant sur GStreamer.
• GStreamer. La bibliothèque GStreamer est un framework multimédia complet (audio et
vidéo) utilisé par de nombreux programmes Gnome. Grâce à son architecture par gref-
fons, il est très modulaire et peut être facilement étendu. Les codecs de différents for-
mats audio et vidéo sont également disponibles en tant que greffons. Contrairement à
aRts et EsounD, GStreamer ne comprend pas de démon pour la gestion du son. C’est
ALSA qui est directement responsable de la tâche principale, à savoir gérer plusieurs
signaux audio. Vous trouverez davantage d’informations sur la page suivante :
http://www.gstreamer.net
Linux Livre Page 333 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 333

• Phonon. Le système audio servant de base à KDE 4 est Phonon. Cette bibliothèque doit
proposer une interface de programmation (API) unifiée pour l’utilisation de fonctionna-
lités audio tout en reposant, comme GStreamer, sur des bibliothèques audio et vidéo
existantes. L’objectif ici consiste à ce que les programmeurs d’applications audio et
vidéo sous KDE n’aient plus à se préoccuper de la compatibilité avec tous les moteurs
imaginables, mais qu’ils puissent accéder à ce moteur par le biais d’une interface cen-
trale. On ne peut pour le moment prévoir jusqu’à quel point cela sera possible sans
perte de fonctionnalités et d’efficacité. Le site web Phonon renseigne sur l’état actuel du
projet : http://phonon.kde.org/
• PulseAudio. PulseAudio est un serveur de son capable de fonctionner à travers un
réseau et proposant des fonctionnalités comparables au programme esd, qu’il remplace
sur les distributions récentes (Fedora depuis sa version 8, openSUSE depuis sa ver-
sion 11, Ubuntu depuis sa version 8.04). Au premier abord, vous ne devriez rien remar-
quer : tout devrait fonctionner comme à l’accoutumée. Toutefois, en coulisse, il se passe
beaucoup de choses : vous pouvez piloter séparément chacun des flux audio à l’aide du
programme pavucontrol et les affecter à une carte audio ou à un périphérique de sortie
de votre choix. PulseAudio devrait également reconnaître et activer automatiquement
tout périphérique audio complémentaire (par exemple des blocs USB). Vous trouverez
plus de détails sur ce projet sur les pages suivantes :
http://pulseaudio.org/
http://pulseaudio.org/wiki/FAQ
http://fedoraproject.org/wiki/Interviews/LennartPoettering
À ces systèmes audio s’ajoutent divers programmes contenant eux-mêmes des bibliothè-
ques audio ou multimédias complètes, qu’ils mettent à leur tour à la disposition d’autres
programmes. Deux exemples notables en sont le lecteur RealPlayer/HelixPlayer (bibliothè-
que Helix DNA) et le lecteur xine (bibliothèque xinelib) : https://helixcommunity.org/ ;
http://xinehq.de/.
Il n’est pas difficile de voir que les incompatibilités entre programmes et bibliothèques
audio sont volontaires.

Pour les musiciens et les utilisateurs professionnels, il existe des distributions dédiées optimisées pour les pro-
grammes audio : http://64studio.com/ ; http://jacklab.net/

Supports de données (disques durs, CD-ROM, DVD, etc.)


Sur le partitionnement des disques durs, reportez-vous au Chapitre 2. La lecture des CD
audio et DVD vidéo est évoquée au Chapitre 11. La gestion des fichiers et répertoires ainsi
que la gravure de CD et DVD sont traitées au Chapitre 13. Enfin, le montage de lecteurs de
tout type dans un système (disque dur, CD, DVD, disquette, etc.) fait l’objet du Chapitre 23.
Lecteurs de Les lecteurs de bandes ne sont pas montés dans le système à l’aide de la commande mount
bandes
vu qu’ils ne contiennent aucun système de fichiers. Ils comprennent uniquement un ou plu-
sieurs fichiers d’archives. Les données sont donc transmises directement depuis ou vers le
Linux Livre Page 334 Mardi, 23. septembre 2008 1:05 13

334 LINUX

lecteur par le biais des commandes tar ou cpio. La commande mt vous permet de faire défi-
ler la bande en avant ou en arrière (voir à ce sujet la référence des commandes mt et tar).
Suivant le lecteur, vous devrez utiliser l’un ou l’autre des périphériques suivants.

Périphériques lecteurs de bandes


/dev/st* lecteur SCSI, la bande est rembobinée automatiquement
/dev/nst* lecteur SCSI, la bande n’est pas rembobinée automatiquement
/dev/ht* lecteur IDE, la bande est rembobinée automatiquement
/dev/nht* lecteur IDE, la bande n’est pas rembobinée automatiquement

Clavier et souris
Pour la disposition de clavier US, reportez-vous au Chapitre 2 ; les particularités des souris
sous Linux sont évoquées au Chapitre 3. La configuration du clavier et de la souris dans la
console texte est présentée un peu plus haut dans ce chapitre. La configuration du clavier et
de la souris avec X ainsi que la gestion des caractères spéciaux dans X sont traitées au
Chapitre 22.

Imprimante, appareil photo numérique, scanner


Pour l’utilisation des appareils photo numériques et des scanners, reportez-vous au Chapi-
tre 9. Pour la configuration et l’utilisation des imprimantes, consultez le Chapitre 30.

20.7 Fichiers journaux et messages du noyau


Linux enregistre de très nombreuses informations dans les fichiers journaux : messages du
noyau, connexion et déconnexion des utilisateurs, opérations réseau, etc. Les fichiers jour-
naux se trouvent généralement dans le répertoire /var/log, parfois aussi dans /var/adm/
log. Ils fournissent une aide précieuse lorsque vous recherchez des erreurs de configuration
ou des failles de sécurité.
Deux démons (processus qui s’exécutent en tâche de fond) sont responsables de la journa-
lisation. Tous deux sont lancés dans le cadre du processus InitV :
• klogd gère les messages du noyau. Ceux-ci sont enregistrés dans une mémoire tampon
d’où ils peuvent être lus grâce à dmesg.
• syslogd enregistre dans les fichiers journaux les messages des divers programmes ou en
redirige le contenu vers la console. Le démon syslogd est lancé par le processus Init-V et
piloté par le fichier /etc/syslog.conf. Dans ce fichier, vous pouvez configurer exactement
tout ce qui doit être journalisé et dans quels fichiers enregistrer les messages résultants.
Attention, toutefois, à un point : vos services réseau ne communiquent pas tous avec sys-
logd ! De très nombreux programmes (CUPS, Samba, etc.) assurent leur propre journalisa-
tion et s’excluent de la configuration globale par le biais de syslog.conf. Les paramètres de
Linux Livre Page 335 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 335

journalisation sont dans ce cas configurés dans les fichiers de configuration propres du
programme.
Gestion des Les fichiers journaux ont pour caractéristique désagréable de grossir, lentement mais sûre-
fichiers
journaux ment. Il est donc régulièrement nécessaire de repartir d’un fichier journal vierge. Le fichier
utilisé jusqu’à ce moment doit alors être renommé et également, si possible, compressé. Il en
résulte donc des fichiers du type messages.1.gz, messages.2.gz, etc. Après un temps
d’archivage plus ou moins long, tous les fichiers journaux trop anciens sont totalement sup-
primés. Sur la plupart des distributions, une tâche cron appelle pour cela régulièrement le
programme logrotate. Son fonctionnement est piloté par les fichiers /etc/logrotate.conf
et /etc/logrotate.d/*.
Journalisation Sur les distributions anciennes, l’amorçage de Linux conduit à afficher les messages du
du processus
d’amorçage noyau et d’InitV à l’écran. Sur les distributions récentes, ces messages sont dissimulés par
une belle interface graphique ; toutefois, vous pouvez au besoin afficher ces messages par une
touche du clavier ou un clic de souris.
Lorsque vous utilisez le système, vous pouvez afficher à tout moment les messages du
noyau à l’aide de la commande dmesg. Les lignes qui suivent correspondent à un noyau 2.6
(la sortie a été notablement raccourcie pour des raisons de place) :
utilisateur$ dmesg
Linux version 2.6.20-1.2949.fc7 (gcc version 4.1.2 20070222) ...
BIOS-provided physical RAM map:
...
1151MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000ff780
Using x86 segment limits to approximate NX protection
Entering add_active_range(0, 0, 524192) 0 entries of 256 used
Zone PFN ranges:
DMA 0 -> 4096
Normal 4096 -> 229376
HighMem 229376 -> 524192
...
DMI 2.4 present.
Using APIC driver default
ACPI: RSDP 000FAE40, 0014 (r0 ACPIAM)
ACPI: RSDT 7FFA0000, 0034 (r1 A M I OEMRSDT 7000610 MSFT 97)
...
Processor #0 6:15 APIC version 20
Processor #1 6:15 APIC version 20
...
Allocating PCI resources starting at 88000000 (gap: 80000000:7ee00000)
Detected 2400.178 MHz processor.
Built 1 zonelists. Total pages: 517538
Kernel command line: ro root=LABEL=/12 rhgb quiet
...
Memory: 2058540k/2096768k available
(2144k kernel code, 36944k reserved, 1134k data, 248k init, 1179264k highmem)
Linux Livre Page 336 Mardi, 23. septembre 2008 1:05 13

336 LINUX

virtual kernel memory layout:


...
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 4802.45 BogoMIPS
(lpj=2401229)
Security Framework v1.0.0 initialized
SELinux: Initializing.
...
CPU0: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz stepping 06
CPU1: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz stepping 06
Total of 2 processors activated (9601.77 BogoMIPS)
...
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
pnp: PnP ACPI: found 13 devices
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
PCI: If a device doesn’t work, try "pci=routeirq". If it helps, post a report
PCI: Cannot allocate resource region 2 of device 0000:03:00.0
PCI: Cannot allocate resource region 3 of device 0000:03:00.0
NetLabel: Initializing
NetLabel: domain hash size = 128
NetLabel: protocols = UNLABELED CIPSOv4
NetLabel: unlabeled traffic allowed by default
...
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)
apm: disabled - APM is not SMP safe.
...
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
...
Real Time Clock Driver v1.12ac
Non-volatile memory driver v1.2
Linux agpgart interface v0.102 (c) Dave Jones
agpgart: Detected an Intel 965G Chipset.
agpgart: AGP aperture is 256M @ 0x0
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 16384K size 4096 blocksize
input: Macintosh mouse button emulation as /class/input/input0
usbcore: registered new interface driver libusual
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
...
SCSI subsystem initialized
libata version 2.10 loaded.
ata1: SATA max UDMA/133 cmd 0x0001ec00 ctl 0x0001e882 bmdma 0x0001e400 irq 19
ata2: SATA max UDMA/133 cmd 0x0001e800 ctl 0x0001e482 bmdma 0x0001e408 irq 19
scsi0 : ata_piix
scsi1 : ata_piix
sda: Write Protect is off
Linux Livre Page 337 Mardi, 23. septembre 2008 1:05 13

CONFIGURATION DE BASE 337

sda: Mode Sense: 00 3a 00 00


SCSI device sda: write cache: enabled, read cache: enabled, doesn’t support
DPO or FUA
SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: write cache: enabled, read cache: enabled, doesn’t support
DPO or FUA
sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 sda9 >
sd 0:0:0:0: Attached scsi disk sda
scsi 1:0:0:0: CD-ROM TSSTcorp CD/DVDW SH-S183A SB00 PQ: 0 ANSI: 5
ata_piix 0000:00:1f.5: MAP [ P0 P2 P1 P3 ]
ACPI: PCI Interrupt 0000:00:1f.5[B] -> GSI 19 (level, low) -> IRQ 19
PCI: Setting latency timer of device 0000:00:1f.5 to 64
ata3: SATA max UDMA/133 cmd 0x0001d400 ctl 0x0001d082 bmdma 0x0001c880 irq 19
ata4: SATA max UDMA/133 cmd 0x0001d000 ctl 0x0001cc02 bmdma 0x0001c888 irq 19
...
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
...
sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 1:0:0:0: Attached scsi CD-ROM sr0
...
...
ip6_tables: (C) 2000-2006 Netfilter Core Team
ip_tables: (C) 2000-2006 Netfilter Core Team
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (8192 buckets, 65536 max)
skge eth0: enabling interface
ADDRCONF(NETDEV_UP): eth0: link is not ready
skge eth0: Link is up at 100 Mbps, full duplex, flow control both
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Bluetooth: Core ver 2.11
...

La mémoire tampon utilisée pour les messages du noyau et dont le contenu est affiché par
dmesg est limitée. Lorsqu’elle est pleine, les messages anciens sont écrasés par les plus
récents. Du fait que le noyau produit également des messages tout au long de son fonction-
nement (par exemple lors du chargement de nouveaux modules ou lorsque le noyau ren-
contre des erreurs), une journalisation complète des messages liés à l’amorçage n’est
possible qu’immédiatement après le démarrage du système. Pour cette raison, les messages
du noyau sont également enregistrés, dans la plupart des distributions, dans un fichier :
Debian, Fedora, Red Hat, Ubuntu /var/log/dmesg
SUSE /var/log/boot.msg (contient également les messages
InitV)
Messages Dès que le noyau est totalement initialisé, le premier processus qui se lance est le processus
InitV
InitV (ou un autre système pour le lancement des processus réseau, voir Chapitre 24). De
façon surprenante, la plupart des distributions renoncent à journaliser explicitement les
Linux Livre Page 338 Mardi, 23. septembre 2008 1:05 13

338 LINUX

messages InitV. L’enregistrement ne s’effectue que dans le cadre de la journalisation habi-


tuelle, c’est-à-dire uniquement lorsque les démons et services réseau à lancer prévoient leur
propre journalisation. SUSE est toutefois ici une exception intéressante : cette distribution
enregistre les messages du système InitV dans /var/log/boot.msg.
Linux Livre Page 339 Mardi, 23. septembre 2008 1:05 13

Gestion des logiciels


21 et des paquetages
Sous Windows, on installe généralement des programmes en lançant setup.exe. Linux a
une autre approche : le système de gestion de paquetages est une base de données qui contient
des informations sur tous les paquetages déjà installés. Les nouveaux programmes sont
installés par des commandes du gestionnaire de paquetages.
Ce concept présente de nombreux avantages. En particulier, il prend en compte les dépen-
dances et les conflits entre les paquetages logiciels. Si le programme A a besoin de la biblio-
thèque B, le système de paquetages n’installe A qu’après avoir installé B. On peut aussi, à
tout moment, connaître le paquetage auquel appartient un fichier donné, savoir si ce fichier
se trouve encore à son emplacement original, etc.
Formats de Le marché Linux est dominé par deux systèmes de paquetages différents. Red Hat, Fedora,
paquetages
Mandriva et SUSE utilisent le système RPM développé par Red Hat. Debian et toutes les
distributions qui en sont dérivées (y compris Ubuntu) utilisent le format DEB. Les comman-
des d’installation, de désinstallation et de mise à jour de ces paquetages (rpm, dpkg) sont rela-
tivement primitives. Elles peuvent, par exemple, identifier des dépendances manquantes,
mais pas les résoudre.
Systèmes de rpm et dpkg sont les fondations de programmes plus avancés dotés de fonctions supplémen-
gestion de
paquetages taires. On compte l’installation automatique des dépendances, la mise à jour de systèmes
complets et l’utilisation de sources de paquetages sur CD et DVD ou encore sur Internet. Les
systèmes de gestion de paquetages fournissent également un système de mises à jour unifié
pour tous les programmes installés (en dehors des fonctions de base du système d’exploitation,
comme cela est géré sous Windows).
Yum (pour les paquetages RPM) et APT (pour les paquetages APT) sont des exemples de
systèmes de gestion de paquetages. Yum Extender ou Synaptic proposent des alternatives
graphiques à ces outils.
Outils En plus de ces outils standard, il existe pour certaines distributions des programmes de gestion
spécifiques
aux distri- de paquetages et des mises à jour :
butions
Debian, Ubuntu update-manager
Red Hat, Fedora pirut, pup
SUSE, Novell module YaST du groupe Logiciels, zypper
Ubuntu gnome-app-install

Les paquetages d’une distribution Linux sont harmonisés entre eux. Cela signifie qu’ils utilisent un jeu de
bibliothèques unifié, qu’ils sont compilés avec le même compilateur, etc. Un débutant sous Linux a donc inté-
rêt à installer uniquement les paquetages fournis avec sa distribution.
L’installation de paquetages prévus pour une autre distribution pose souvent problème. Bien souvent,
installer un paquetage Red Hat sous SUSE ne fonctionne pas ou difficilement : il manque des bibliothè-
Linux Livre Page 340 Mardi, 23. septembre 2008 1:05 13

340 LINUX

ques, les dépendances ne sont pas résolues, etc. La résolution de ces problèmes demande beaucoup de
connaissances.

Administration Si vous êtes responsable de 50, 100 ou 1 000 ordinateurs, les outils de gestion de paquetages
centralisée de
plusieurs s’avèrent vite insuffisants. Vous avez besoin d’un outil qui permet de lancer des mises à jour
ordinateurs sur tous les ordinateurs (ou une partie d’entre eux). Ce type d’outils n’est actuellement dis-
ponible que pour les versions entreprise de Red Hat (http://www.europe.redhat.com/rhn/)
et de Novell (http://www.novell.com/fr-fr/products/zenworks/).

21.1 Gestionnaire de paquetages RPM


La commande rpm installe et gère les paquetages RPM. Ce système a été développé par Red
Hat. Le projet RPM est entre temps devenu un projet libre tout à fait habituel, qui n’est pas
sous le contrôle de Red Hat, ni aucune autre entreprise. Il a de nombreuses utilités :
• effectuer des modifications dans un fichier déjà existant (par exemple un script) au
cours d’une installation ;
• mettre à jour un programme tout en mettant à jour proprement les fichiers modifiés ;
• supprimer tous les fichiers d’un programme ;
• s’assurer avant d’installer un programme que toutes les dépendances sont remplies et
que les bibliothèques présentes le sont dans le bon numéro de version ;
• vérifier si un fichier a été modifié pendant l’installation d’un paquetage ;
• déterminer à quel paquetage appartient un fichier donné.

Notions de base
La plupart des paquetages RPM sont disponibles en deux versions : comme paquetage
binaire et paquetage de code source. Le paquetage binaire contient les fichiers nécessaires à
l’exécution du programme. Le paquetage de code source n’est intéressant que pour les
développeurs. Il contient le code source nécessaire pour construire un paquetage binaire.
Le nom du paquetage contient quelques informations : abc-2.0.7-1.i686.rpm décrit le
paquetage abc dans sa version 2.0.7, première version du paquetage (release). Si le paquetage
contient une erreur, si de la documentation est ajoutée ou si d’autres modifications sont
effectuées, le numéro de version du paquetage est supérieur à 1 pour une version donnée du
logiciel. Le numéro de version est donc celui du programme, et le numéro de version du
paquetage, celui de la version du RPM pour cette version donnée du programme.
i686 indique que le paquetage contient des fichiers destinés aux processeurs compatibles
avec le Pentium 2 − il existe des versions de Linux pour d’autres processeurs. Lorsque le
paquetage abc ne se compose que de scripts ou de fichiers texte, indépendants de l’architec-
ture du processeur, cet identifiant est remplacé par noarch. Lorsqu’il contient du code
source, c’est indiqué par l’identifiant src.
Linux Livre Page 341 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 341

Voici une brève explication des différents paquetages x86 :


i386 : processeur 386 et compatibles
i486 : processeur 486 et compatibles
i586 : processeur Pentium et compatibles
i686 : processeur Pentium 2 et compatibles
Un paquetage i386 fonctionne sur tous ces processeurs. Un paquetage i686 utilise, en revanche, les
extensions du Pentium 2. Il fonctionne donc probablement plus rapidement, mais pas sur les processeurs plus
anciens.

Le paquetage contient, en plus des fichiers à installer, de nombreuses informations de ges-


tion : une description du paquetage, des informations sur les numéros de versions, un clas-
sement dans la hiérarchie de groupes, les dépendances vis-à-vis d’autres paquetages, etc.
Les dépendances indiquent qu’un paquetage a besoin d’un langage de programmation
donné, comme Perl, ou de différentes bibliothèques. Les paquetages correspondant aux
dépendances doivent être installés avant le paquetage lui-même.
rpm maintient une base de données d’informations sur tous les paquetages binaires installés.
Cette base est enregistrée dans divers fichiers dans le répertoire /var/lib/rpm. Elle contient
des informations uniquement sur les paquetages binaires ; les paquetages de code source
éventuellement installés ne sont pas pris en compte.
Il ne faut en aucun cas modifier les fichiers de la base de données rpm ! Pour que cette base
corresponde aux fichiers effectivement installés, il ne faut pas supprimer de fichiers, mais
désinstaller les paquetages correspondants (rpm -e).
Problèmes Le système RPM est fantastique, mais il n’est pas sans inconvénient. La liste suivante
recense les problèmes les plus fréquents :
• Certains paquetages RPM ont des dépendances que la commande rpm ne parvient pas à
résoudre. yum sait, en général, gérer ces cas.
• La gestion de dépendances est invasive lorsque vous mélangez des paquetages de diffé-
rentes distributions, installez des programmes avec tar ou en compilez vous-même.
Alors, les informations de la base RPM ne correspondent pas aux logiciels installés sur
l’ordinateur.
• Les nouvelles versions de RPM ont une compatibilité descendante, mais pas ascendante.
Un paquetage RPM créé avec rpm version 5 ne peut pas être installé avec la version 4.4.
Le plus simple dans ce cas est d’installer une version plus récente de rpm.
• La base de données RPM prend énormément de place. Une installation de 5 Go remplit
généralement 50 Mo de base de données. Le problème est moins la place sur le disque
que la rapidité des opérations de RPM. Une mise à jour de la distribution complète peut
être relativement longue (voire très longue si l’ordinateur dispose de peu de mémoire
vive).
• Il arrive que la base de données contienne des données incohérentes. Cela implique que
la commande rpm ne peut plus être utilisée et qu’elle renvoie des messages du type
Linux Livre Page 342 Mardi, 23. septembre 2008 1:05 13

342 LINUX

cannot open packages database (impossible d’ouvrir la base de données de paquetages).


Les commandes rm -f /var/lib/rpm/__db* et rpm --rebuilddb réparent généralement
ce type de problèmes, mais cela peut durer un certain temps.
• Pendant plusieurs années, RPM n’a été qu’en partie maintenu. Différents distributeurs
utilisent donc leur propre version avec leurs propres extensions et correctifs. Cette situation
devrait cependant s’améliorer avec une version unifiée de RPM.

Syntaxe et exemples
La syntaxe de base de rpm est rpm options nom_de_paquetage/fichier. Le nom de fichier
peut également être une adresse FTP ou HTTP. Les opérations de base sont effectuées avec
les options suivantes :

Options de base de RPM


rpm --install ou -i installe un paquetage
rpm --import installe un fichier de clés
rpm --upgrade ou -U met à jour un paquetage
rpm --verify ou -V vérifie l’état d’un paquetage
rpm --erase ou -e supprime un paquetage
rpm --query ou -q affiche des informations sur les paquetages installés

rpm --help et man rpm fournissent une référence complète de la commande. Les exemples
suivants illustrent l’utilisation de rpm dans des situations courantes :
root# rpm -i abc-2.0.7-1.i386.rpm

installe le programme abc.


root# rpm --import http://monserveur/RPM-monserveur-GPG-KEY

charge la clé GPG du serveur monserveur et l’enregistre comme fichier de clés pour RPM.
root# rpm -U http://monserveur/monchemin/abc-2.1.0-2.i386.rpm

met à jour le programme abc en téléchargeant directement le paquetage du serveur web


indiqué.
root# rpm -V abc

liste tous les fichiers du paquetage abc qui ont été modifiés depuis l’installation.
root# rpm -e abc

désinstalle le programme abc.


root# rpm -qa

liste tous les paquetages installés.


root# rpm -qa --last
Linux Livre Page 343 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 343

liste tous les paquetages installés, triés par date d’installation (le dernier paquetage installé
en premier).
root# rpm -qa |grep -i mysql

liste tous les paquetages installés, dont le nom contient la chaîne mysql (indépendamment
de la casse).
root# rpm -qi perl

affiche des informations sur le paquetage Perl (si celui-ci est installé).
root# rpm -ql perl

liste tous les fichiers du paquetage Perl.


root# rpm -qd perl

liste tous les fichiers de documentation du paquetage Perl.


root# rpm -qc cups

liste tous les fichiers de configuration du paquetage CUPS.


root# rpm -qip abc-2.0.7-1.i386.rpm

affiche des informations à propos du paquetage abc non installé.


root# rpm -qf /usr/lib/libkdnssd.so

indique à quel paquetage appartient le fichier /usr/lib/libkdnssd.so.


root# rpm -q --provides php5-mysql

indique quelles "capacités" fournit le paquetage php5-mysql. openSUSE renvoie php-mysql,


php-mysqli = 5.2.4, php-pdo_mysql = 5.2.4, mysql.so, mysqli.so, pdo_mysql.so et php5-
mysql = 5.2.4-11. Les capacités sont utilisées pour résoudre les dépendances de paquetages.
Les noms des capacités correspondent généralement à ceux des programmes ou des biblio-
thèques fournis par un paquetage. L’administrateur de chaque distribution décide comment
les capacités sont définies. Celles-ci peuvent également indiquer des numéros de versions.
root# rpm -q --requires php5-myql

indique quelles dépendances doivent être remplies pour installer le paquetage. Sous open-
SUSE, la liste des capacités est assez longue, mais contient entre autres libc.so.6, libm.so.6
et libmysqlclient.so.15.
root# rpm -q --requires -p alien-8.68-27.i586.rpm

utilise l’option -p afin d’afficher des listes de capacités pour les paquetages qui ne sont pas
encore installés. Cette option peut également être utilisée avec --provides.
root# rpm -q --what-provides mysqli.so

indique quel paquetage installé fournit la capacité mysqli.so.


root# rpm -q --whatrequires libpthread.so.0

affiche une liste de paquetages installés qui dépendent de la capacité libpthread.so.0.


Linux Livre Page 344 Mardi, 23. septembre 2008 1:05 13

344 LINUX

Sur les distributions 64 bits, il arrive que rpm -qi renvoie des informations pour deux paquetages. Il ne
s’agit pas d’une erreur : c’est dû au fait que les paquetages 32 et 64 bits d’un programme ou d’une biblio-
thèque sont nommés de manière identique.

Problèmes de Un problème de dépendance se manifeste généralement par un message du type failed


dépendances
dependencies: nom_capacité is needed by nom_paquetage.
Pour le résoudre, installez le paquetage avec yum install, plutôt qu’avec rpm -i (ou un
autre outil de gestion de paquetages fourni par votre distribution). Si cela ne fonctionne pas,
vous devez trouver un paquetage fournissant la capacité nom_capacité. Si vous disposez
d’une archive de paquetages locale (sur un disque dur ou un CD-ROM), vous pouvez lancer
la recherche avec cette commande :
root# rpm -qpi --provides *.rpm | less

Dans less, utilisez la commande / pour chercher le texte nom_capacité. Installez alors le
paquetage trouvé, puis le paquetage que vous souhaitiez installer à l’origine.
Dans certains cas, en particulier lorsque vous avez installé des paquetages en dehors du système
rpm, ce dernier n’arrive pas à résoudre les dépendances, bien que les fichiers manquants
soient en fait présents. Vous pouvez alors mener l’installation à bien avec l’option --nodeps.
Vous devez néanmoins savoir ce que vous faites dans ce cas.

21.2 Yum (gestion de paquetages RPM)


Yum est un programme facilitant la gestion des paquetages RPM. Il est basé sur rpm, mais
fournit de nombreuses fonctions supplémentaires :
• Yum sait utiliser des sources de paquetages (dépôts, repositories) qui se trouvent sur
Internet. Une archive Yum est un ensemble de paquetages RPM auquel sont ajoutées
des métadonnées (répertoire repodata). Il s’agit d’informations sur le contenu et les
dépendances de tous les paquetages. La séparation entre les paquetages et les métadon-
nées permet de traiter le tout très rapidement (sans avoir à lire tous les paquetages pour
en extraire les données). Yum sait passer d’un miroir à un autre pour une source de
paquetages donnée.
• Yum résout automatiquement toutes les dépendances de paquetages, télécharge tous les
paquetages nécessaires et les installe. Tous les dépôts de paquetages sont pris en compte
au cours de cette opération. Si vous souhaitez installer un paquetage provenant du
dépôt A, il se peut que Yum télécharge un paquetage depuis les dépôts B et C.
• Yum peut actualiser tous les paquetages installés en une seule commande. Pour chaque
paquetage installé, il regarde s’il en existe une nouvelle version dans l’un des dépôts
de paquetages enregistrés. Si c’est le cas, le paquetage correspondant est téléchargé et
installé. Les dépendances de ces nouveaux paquetages sont également résolues.
Yum est développé en Python. Il peut être étendu par des greffons et dispose alors d’encore
plus de fonctionnalités. Il est présent dans plusieurs distributions qui utilisent des paqueta-
ges RPM (par exemple, Fedora et Red Hat). Pour d’autres distributions, vous devez le télé-
charger à l’adresse http://www.linux.duke.edu/projects/yum/.
Linux Livre Page 345 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 345


Conflits de Yum ne peut être lancé qu’une seule fois (c’est également valable pour toutes les interfaces).
verrous
Si Yum ou l’une de ses interfaces fonctionne déjà, essayer d’en lancer un deuxième exem-
plaire renvoie l’erreur another copy is running (une autre copie fonctionne déjà).
Ce problème tire souvent son origine dans le système de mises à jour automatique de Yum.
Vous pouvez le détecter facilement : le fichier /var/run/yum.pid contient le numéro de pro-
cessus du programme qui génère le conflit. ps | grep identifiant renvoie le nom du
programme en question. Si cela s’avère nécessaire, vous pouvez arrêter le système de mises
à jour avec /etc/init.d/yum-updated stop et le relancer plus tard.

Configuration
Yum est configuré dans le fichier /etc/yum.conf. Les lignes suivantes représentent la confi-
guration de Fedora 9 :
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800 # 30 minutes
installonly_limit=2

keepcache=0 indique que les paquetages téléchargés ne doivent pas être archivés après leur
installation. Il s’agit d’un paramètre sensé, car la place nécessaire pour les paquetages peut
grossir de manière démesurée. De plus, il n’existe aucune raison d’installer un paquetage
une deuxième fois. Il arrive cependant que yum rencontre un problème et interrompe l’instal-
lation : dans ce cas, le paquetage est supprimé. Pour régler le problème et recommencer
l’installation, vous devez télécharger à nouveau le même paquetage. Pour éviter cette situa-
tion, utilisez keepcache=1. Pour supprimer explicitement les paquetages téléchargés, lancez
yum clean packages.
exactarch=1 indique que Yum ne prend en compte que les mises à jour qui correspondent à
l’architecture du paquetage courant. Ainsi, les paquetages i386 ne peuvent pas être remplacés
par des paquetages x86_64, même plus récents.
gpgcheck=1 demande à Yum de vérifier l’authenticité d’un paquetage avec une clé. gpgcheck
peut également être configuré pour des sources de paquetages individuelles.
plugins indique si Yum doit prendre en compte des greffons. Yum peut être étendu par des
greffons sous forme de fichiers Python. Les greffons sont configurés grâce à des fichiers du
répertoire /etc/yum/pluginconf.d.
metadata_expires définit combien de secondes sont disponibles les métadonnées d’une
source de paquetages. Yum enregistre les métadonnées dans un cache et ne les retélécharge
que lorsqu’elles sont périmées. Cela économise du temps et du volume de données téléchargées
Linux Livre Page 346 Mardi, 23. septembre 2008 1:05 13

346 LINUX

(les fichiers de métadonnées prennent beaucoup de place). Néanmoins, il arrive que Yum
ignore momentanément les modifications de la source de paquetages. yum clean metadata
permet de supprimer les métadonnées locales ; Yum est alors obligé de récupérer les méta-
données de toutes les sources.
Mise en place Chaque dépôt de paquetages est défini dans son propre fichier *.repo dans le répertoire
d’un dépôt de
paquetages /etc/yup.repos.d. On peut aussi définir les dépôts à la fin de la configuration de base
dans /etc/yum.conf, mais ce n’est pas très courant.
Les lignes suivantes proviennent de la définition des dépôts de Fedora 9. Les lignes baseurl,
mirrorlist et gpgkey ne sont coupées que pour des raisons de place.
[fedora]
name=Fedora $releasever - $basearch
# baseurl=http://download.fedora.redhat.com/pub/fedora/linux/...
# releases/$releasever/Everything/$basearch/os/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-
$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-
GPG-KEY

L’adresse du dépôt peut être saisie de manière absolue avec baseurl=... ou sous la forme
d’un fichier de miroirs avec mirrorlist=.... Ce fichier contient une liste des serveurs miroir
et Yum décide lui-même lequel utiliser. Il remplace dans le fichier de configuration les varia-
bles $releasever, $arch et $basearch par le numéro de version de la distribution et par
l’architecture.
Blocages des Pour bloquer un paquetage et éviter qu’il ne soit mis à jour par Yum, ajoutez dans yum.conf
paquetages
ou dans le fichier *.repo du dépôt une ligne exclude nom1 nom2 nom3. Vous pouvez utiliser
des caractères joker dans les noms de paquetages : exclude xemacs* est une ligne valide.
Mise à jour de En principe, vous pouvez mettre à jour votre distribution avec Yum. Pour cela, remplacez
la distribution
$releasever par le numéro de la distribution souhaitée dans le fichier de description du
dépôt. Lancez alors yum upgrade. Cependant, d’après mon expérience, les mises à jour de
distributions fonctionnent généralement assez mal, quel que soit le système de gestion
de paquetages. Il vaut mieux réinstaller le système.

Exemples
man yum fournit une référence complète de la syntaxe de yum. Les commandes suivantes sont
des exemples d’utilisation de yum.
root# yum check-update

indique quels paquetages seront mis à jour si vous lancez yum update.
root# yum update

met à jour les paquetages de la distribution.


root# yum install abiword

installe le paquetage abiword et ses dépendances.


Linux Livre Page 347 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 347

La première utilisation de yum peut être assez longue, car les méta-données de tous les
dépôts de paquetages sont téléchargées. Les utilisations suivantes sont visiblement plus
rapides.
Paquetages de yum ne sait pas installer de paquetages de code source. Cette tâche est déléguée à yumdown-
code source
loader, qui se trouve dans le paquetage yum-utils. La commande suivante télécharge le
paquetage de code source de l’éditeur gedit dans le répertoire courant :
utilisateur$ yumdownloader --source gedit

Téléchargements et mises à jour automatiques


Sur de nombreuses distributions, Yum est configuré de sorte que le programme yum-upda-
tesd soit lancé automatiquement par InitV au démarrage de l’ordinateur.
yum-updatesd vérifie régulièrement si des mises à jour sont disponibles. Selon la configura-
tion de /etc/yum/yum-updatesd.conf, les paquetages de mise à jour sont directement télé-
chargés et installés. Dans l’exemple suivant, les mises à jour sont automatiquement
téléchargées, mais doivent être installées manuellement.
[main]
# tester toutes les heures s’il y a de nouvelles mises à jour
run_interval = 3600
# contacter le serveur de mise à jour au plus toutes les 10 minutes
updaterefresh = 600
# émettre une notification de mise à jour via dbus
emit_via = dbus
# télécharger automatiquement les mises à jour
do_download = yes
# télécharger également les dépendances pour ces mises à jour
do_download_deps = yes
# ne pas installer automatiquement les mises à jour
do_update = no

Malheureusement, le programme de mises à jour de yum mène souvent à des problèmes de


verrous. Vous devez alors stopper yum-updatesd avant d’installer des paquetages. Ensuite,
n’oubliez pas de redémarrer yum-updatesd.
root# /etc/init.d/yum-updatesd stop
root# ...installer ou supprimer des paquetages...
root# /etc/init.d/yum-updatesd start

21.3 Yum Extender (Yumex)


Il existe plusieurs interfaces graphiques de Yum. Une des plus populaires et des plus stables
est Yum Extender (yumex, voir Figure 21.1). Son utilisation est simple. Une fois démarré,
Yumex actualise les métadonnées locales de tous les dépôts de paquetages. Vous pouvez
Linux Livre Page 348 Mardi, 23. septembre 2008 1:05 13

348 LINUX

ensuite choisir dans les différents groupes (Updates, Disponibles, Installés, Tous) les paque-
tages à traiter, puis cliquer sur le bouton Traiter la file d’attente.
L’onglet Vue des paquetages en file d’attente affiche toutes les actions que Yumex va effec-
tuer. Le bouton Traiter la file d’attente démarre l’opération. Yumex examine alors toutes les
dépendances et affiche une boîte de dialogue de résumé. Vous devez confirmer avant que
les paquetages ne soient effectivement téléchargés et installés.

Figure 21.1
Gestion des paquetages
avec Yum Extender.

21.4 Gestion de paquetages sous Debian (dpkg)


On peut gérer les paquetages Debian de deux manières. Cette section décrit la commande
dpkg, qui est comparable à rpm. Elle installe, met à jour, supprime des paquetages indivi-
duels et teste si les dépendances de ces paquetages sont remplies. Cependant, elle ne sait
pas résoudre elle-même les dépendances de paquetages ou télécharger des paquetages
depuis un dépôt.
La section suivante décrit APT (Advanced Packaging Tool, outil de paquetages avancé).
Ce système, basé sur dpkg, fournit des fonctions comparables à Yum.

Syntaxe et exemples
Le tableau suivant résume les opérations de base de dpkg. Vous trouverez plus d’informa-
tions sur la syntaxe dans dpkg --help et man dpkg.
Linux Livre Page 349 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 349

Options de base de dpkg


dpkg --install installe ou met à jour un paquetage
dpkg --configure lance le script de configuration d’un paquetage
dpkg --remove supprime un paquetage
dpkg --purge supprime un paquetage et ses fichiers de configuration
dpkg --list affiche une liste des paquetages installés
dpkg --listfiles affiche les fichiers d’un paquetage
dpkg --search détermine le paquetage auquel un fichier appartient

Les exemples suivants illustrent l’utilisation de dpkg dans des situations habituelles. En pra-
tique, dpkg est rarement utilisé. Dans la plupart des distributions, les paquetages sont admi-
nistrés grâce à APT ou un outil basé sur ce système.
root# dpkg --install test.deb
Dépaquetage de test (à partir de test.deb) ...
Paramétrage de test...
root# dpkg --search /etc/mediaprm
fdutils: /etc/mediaprm
root# dpkg --listfiles fdutils
/.
/usr
/usr/bin
/usr/bin/diskd
...

Certains programmes fournissent comme scripts de configuration des programmes interac-


tifs qui servent à installer des programmes individuels. Pour modifier la configuration ulté-
rieurement, lancez dpkg-reconfigure nom_du_paquetage.

21.5 APT
APT (Advanced Packaging Tool, outil de paquetages avancé) est aux paquetages Debian ce
que Yum est aux paquetages RPM : un gestionnaire de haut niveau qui télécharge les paque-
tages depuis des dépôts et résout automatiquement les dépendances de paquetages. Il est
souvent remplacé par aptitude dans les versions plus récentes de Debian et d’Ubuntu, mais
reste une référence pour gérer les paquetages DEB.
Le système APT se compose de plusieurs commandes, dont la principale est apt-get. Lorsque
APT est correctement configuré, apt-get install nom_du_paquetage télécharge et installe le
paquetage indiqué et toutes ses dépendances.
Linux Livre Page 350 Mardi, 23. septembre 2008 1:05 13

350 LINUX

Configuration
APT est configuré par les fichiers apt.conf et sources.list du répertoire /etc/apt. D’autres
fichiers, optionnels, peuvent se trouver dans le répertoire /etc/apt.conf.d.
apt.conf ne contient généralement que quelques paramètres de base ; vous n’avez générale-
ment pas à toucher à la configuration fournie par votre distribution (man apt.conf détaille
les options de ce fichier). Le fichier sources.list (man sources.list) est plus intéressant : il
contient la liste des dépôts utilisés par APT. La syntaxe de chaque ligne est de ce type :
type adresse distribution [composants1] [composants2] [composants3] ...

type a la valeur deb pour les paquetages Debian classiques et deb-src pour les paquetages
de code source. La deuxième colonne indique l’adresse de base de la source de paquetages.
APT comprend les adresses HTTP et FTP, les répertoires, les serveurs RSH et SSH, ainsi que
les CD et DVD. Les dépôts sur CD et DVD sont cependant un cas particulier ; ils doivent être
installés avec la commande apt-cdrom.
La troisième colonne indique la distribution (un serveur peut distribuer des paquetages
pour plusieurs distributions ou versions). Les colonnes suivantes indiquent les composants
de la distribution pris en compte. Les noms des composants dépendent de la distribution et
du dépôt ! Sous Ubuntu, les paquetages se divisent en paquetages main, restricted, uni-
verse et multiverse, tandis que sous Debian, il s’agit des paquetages main, contrib, non-free, etc.
Si un paquetage est présent dans plusieurs dépôt, APT le télécharge depuis le premier dépôt
qu’il trouve. Les lignes suivantes illustrent la syntaxe. Elles proviennent de la configuration
de miroirs français pour Ubuntu 8.04.
deb cdrom:[Ubuntu 8.04 _Hardy Heron_ - Release i386 (20080423)]/ hardy main
restricted
deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted
deb http://fr.archive.ubuntu.com/ubuntu/ hardy universe multiverse
deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb http://archive.canonical.com/ubuntu hardy partner

Le plus simple pour modifier ce fichier est de l’ouvrir dans un éditeur de texte. Vous pouvez
aussi utiliser le programme apt-setup ou une interface graphique comme Synaptic.
Ajouter des Les CD peuvent aussi servir de dépôts de paquetages. On ne peut cependant pas les ajouter
dépôts sur CD
simplement dans sources.list. Vous devez lancer, pour chaque CD, la commande apt-
cdrom. Celle-ci lit les métadonnées du CD et ajoute les paquetages à prendre en compte dans
un fichier de cache. Puis, sources.list est mis à jour. Si apt-cdrom se plaint qu’il ne trouve
pas de CD/DVD, passez-lui en argument le répertoire de montage du CD avec -d :
root# apt-cdrom -d /media/dvd add

Installer des La plupart des métadonnées des dépôts sont signées par une clé. Les répertoires d’APT
clés
contiennent également des sommes de contrôle pour tous les paquetages. Vous pouvez,
grâce à ces mécanismes, vous assurer qu’un paquetage n’est pas modifié malicieusement.
Cependant, ce contrôle ne fonctionne que si APT dispose de la clé publique pour authenti-
fier les archives de paquetages. Pour installer une clé APT, utilisez la commande apt-key :
root# apt-key add fichier_de_cle.gpg
Linux Livre Page 351 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 351

Exemples
Actualiser les Avant d’installer des paquetages, il est préférable de lancer apt-get update pour télécharger
informations
d’APT les dernières informations des dépôts. Cette commande n’installe pas de paquetage et n’en
met pas à jour. Il ne s’agit que des descriptions des paquetages !
root# apt-get update
Atteint http://archive.canonical.com hardy Release.gpg
...

Installer des Vous pouvez ensuite lancer apt-get install, auquel il faut donner le nom exact du paque-
paquetages
tage. Si la commande détecte des dépendances non résolues, elle propose de télécharger et
d’installer les paquetages manquants.
root# apt-get install wine
Lecture des listes de paquets... Fait
Construction de l’arbre des dépendances
Lecture des informations d’état... Fait
Les paquets supplémentaires suivants seront installés :
binfmt-support samba-common smbclient smbfs winbind
Les NOUVEAUX paquets suivants seront installés :
binfmt-support winbind wine
Les paquets suivants seront mis à jour :
samba-common smbclient smbfs
3 mis à jour, 3 nouvellement installés, 0 à enlever et 273 non mis à jour.
Il est nécessaire de prendre 17,5 Mo dans les archives.
Après cette opération, 60,8 Mo d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? o
...

Supprimer des apt-get remove paquetage supprime le paquetage indiqué. Les paquetages installés en tant
paquetages
que dépendances de ce paquetage ne sont pas désinstallés.
Actualiser des apt-get upgrade permet de mettre à jour tous les paquetages déjà installés.
paquetages
Installer un apt-get source paquetage installe le code source du paquetage dans le répertoire courant.
paquetage de
code source
Afficher des apt-cache permet d’afficher diverses données sur les paquetages disponibles et ceux déjà
informations
sur les installés (voir man apt-cache pour plus d’informations sur la syntaxe).
paquetages
root# apt-cache show apache2
Package: apache2
Priority: optional
Section: web
...
Description-fr: Serveur web de prochaine génération, modulable et évolutif
Apache v2 est la prochaine génération de l’omniprésent serveur web Apache.
Cette version - totalement réécrite - introduit de nombreuses nouvelles
améliorations comme le threading (exécution de processus légers indépendamment
du programme principal), une nouvelle API, le support de l’IPv6, le filtrage
de la requête/réponse, et plus encore.
...
Linux Livre Page 352 Mardi, 23. septembre 2008 1:05 13

352 LINUX

root# apt-cache search scribus | sort


create-resources - shared resources for use by creative applications
icc-profiles - ICC color profiles for use with Scribus, Gimp, CinePaint, and
scribus - Open Source Desktop Page Layout
scribus-template - additional scribus templates

Téléchargements et mises à jour automatiques


APT est normalement installé de manière que seuls quelques fichiers de configuration
doivent être adaptés pour télécharger et installer automatiquement les mises à jour. Sous
Ubuntu, le paquetage unattended-upgrades contient les fichiers de configuration néces-
saires.
Le point de départ de la configuration est le programme cron qui lance le script /etc/
cron.daily/apt tous les jours. Les tâches menées à bien par ce script dépendent de deux
fichiers de configuration. 10periodic indique à quelle fréquence les listes de paquetages
sont mises à jour (par exemple, 3 signifie "tous les trois jours"), si les paquetages doivent être
téléchargés, s’ils doivent être installés automatiquement et à quelle fréquence apt-get
autoclean doit être lancé (0 signifie "jamais").
# Fichier /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "0";

50unattended-updates indique quels dépôts sont pris en compte pour les mises à jour auto-
matiques (par défaut, uniquement les dépôts de mises à jour de sécurité critiques). Chaque
dépôt est décrit par deux informations : son origine et son nom.
Unattended-Upgrade::Allowed-Origins {
"Ubuntu hardy-security";
// "Ubuntu hardy-updates";
};

21.6 Synaptic
Il existe d’innombrables interfaces graphiques à APT. L’une des plus populaires est
Synaptic.
Installer des Pour installer un paquetage, cherchez-le avec le bouton Rechercher ou directement dans
paquetages
la liste, cliquez dessus du bouton droit et choisissez Sélectionner pour installation (voir
Figure 21.2). Si le paquetage dépend d’autres paquetages, une boîte de dialogue avec tous
les paquetages supplémentaires devant être installés apparaît.
Vous pouvez afficher la liste de tous les paquetages sélectionnés en cliquant sur le bouton
Filtres, puis Changements en file d’attente. L’installation commence lorsque vous cliquez
sur Appliquer, qui affiche un résumé de toutes les actions à mener. Une fois ce résumé
confirmé, Synaptic lance toutes les opérations d’installation. Les modifications sont enregistrées
et disponibles dans Fichier > Historique.
Linux Livre Page 353 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 353

Figure 21.2
Gestion de paquetages
avec Synaptic.

Administration Les dépôts sont configurés dans Configuration > Dépôts. Vous pouvez les activer ou les
des dépôts
désactiver rapidement, modifier ceux qui sont prédéfinis ou en ajouter de nouveaux.

Problèmes
Vous pouvez rencontrer certains problèmes avec Synaptic. Les points suivants résument
l’origine et les solutions des plus courants.
Verrous Vous ne pouvez lancer qu’un seul gestionnaire de fichiers à la fois. Si vous essayez d’en lan-
cer deux en même temps, vous obtiendrez une erreur du type unable to get exclusive lock. Cela
signifie que le programme ne peut pas accéder aux fichiers de gestion de paquetages. Vous
devez donc arrêter l’un des deux programmes.
Il arrive aussi que cet avertissement apparaisse même lorsque aucun autre gestionnaire
n’est lancé : c’est le cas si un programme ne supprime pas le fichier de verrou lorsqu’il est
terminé. Il suffit alors de supprimer le fichier en question :
root# rm /var/lib/dpkg/lock

Paquetages Il arrive, dans de rares cas, que l’installation ou la désinstallation d’un paquetage ne fonc-
cassés
tionne pas ou que l’opération ne se termine pas bien. Le paquetage est alors marqué comme
cassé. Synaptic et les autres programmes de gestion de paquetages refuseront d’obéir à vos
ordres tant que ce problème ne sera pas résolu.
Dans Synaptic, cliquez sur Filtres, puis sur Cassés pour afficher une liste de tous les paque-
tages cassés. Sélectionnez-les tous avec Ctrl+A, cliquez du bouton droit sur la liste, puis
Linux Livre Page 354 Mardi, 23. septembre 2008 1:05 13

354 LINUX

choisissez Sélectionner pour réinstallation. Cliquez sur Appliquer. Si cela ne résout pas le
problème, supprimez les paquetages en question.

22.7 Aptitude
Le programme aptitude est également basé sur APT. Il peut être utilisé en ligne de com-
mande (aptitude install nom_du_paquetage) ou en tant que programme indépendant dans
une console. Pour cela, lancez aptitude sans paramètre supplémentaire ; Ctrl+T permet
d’afficher le menu (voir Figure 21.3).

Figure 21.3
Gestion des paquetages
avec Aptitude.

L’utilisation d’aptitude n’est pas aussi confortable que celle de Synaptic, mais il présente un
avantage décisif : il note quels paquetages ont été installés comme dépendances et les sup-
prime automatiquement lorsqu’ils ne sont plus utiles.
De plus, il installe également les paquetages "conseillés" en parallèle des paquetages à ins-
taller et de leurs dépendances.
Utilisation en aptitude peut également être installé en ligne de commande. Son utilisation ressemble à
ligne de
commande celle de apt-get. Les deux commandes suivantes installent le paquetage claws-mail-plu-
gins et le suppriment. Remarquez la suppression des paquetages installés par le jeu de
dépendances.
root# aptitude install claws-mail-plugins
Lecture des listes de paquets... Fait
...
Les NOUVEAUX paquets suivants vont être automatiquement installés :
claws-mail-bogofilter claws-mail-dillo-viewer claws-mail-pgpinline
claws-mail-pgpmime claws-mail-spamassassin claws-mail-trayicon dillo
...
Linux Livre Page 355 Mardi, 23. septembre 2008 1:05 13

GESTION DES LOGICIELS ET DES PAQUETAGES 355

Voulez-vous continuer ? [Y/n/?] y


root# aptitude remove claws-mail-plugins
...
Les paquets suivants ne sont pas utilisés et vont être ENLEVÉS :
claws-mail-bogofilter claws-mail-dillo-viewer claws-mail-pgpinline
claws-mail-pgpmime claws-mail-spamassassin claws-mail-trayicon
...

21.8 Conversion entre deux formats de paquetages


Que faire lorsque vous ne trouvez un paquetage qu’au format RPM et que vous désirez
l’installer sur un système Debian ou Ubuntu ? Ou lorsque vous souhaitez seulement voir
quelques fichiers d’un paquetage RPM ? La réponse à ces deux questions est le pro-
gramme alien. Cette commande convertit les paquetages entre différents formats : RPM,
DEB, archives tar.
alien ne fonctionne cependant que pour les paquetages simples. Si un paquetage fait appel
à des scripts d’installation ou à des propriétés spécifiques d’un format de paquetages
donné, l’installation échouera probablement. Il s’agit globalement d’un outil pour les utili-
sateurs avancés de Linux.
Le format du paquetage souhaité est indiqué par les options --to-deb (Debian), --to-rpm
(RPM) ou --to-tgz (archive tar). alien doit être lancé par l’utilisateur root pour que les
permissions et droits d’accès du nouveau paquetage soient corrects. La commande suivante
convertit un paquetage Debian en paquetage RPM :
root# alien --to-rpm paquetage.deb

Les commandes suivantes montrent comment extraire un fichier donné d’un paquetage
RPM. Celui-ci est transformé en archive tar et la commande tar est ensuite utilisée pour
extraire le fichier.
root# alien --to-tgz paquetage.rpm
root# tar -xzf paquetage.tgz ./usr/share/doc/packages/paket/TODO
Linux Livre Page 356 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 357 Mardi, 23. septembre 2008 1:05 13

Système XWindow
22
Le système XWindow (en abrégé, X) est un ensemble de fonctions et de protocoles qui per-
met d’afficher des informations graphiques à l’écran et de gérer le clavier et la souris. Ces
fonctions sont également disponibles sur le réseau.
Une première implémentation de XWindow provenait du projet XFree86. Il s’agissait au
départ d’un système développé uniquement pour les processeurs compatibles Intel x86,
mais il a été adapté depuis à presque toutes les architectures de processeurs et à d’innom-
brables dérivés d’Unix. Le projet X.org a vu le jour à partir de la version 4.4 de XFree86, suite
à des différends entre les développeurs de XFree86 concernant une modification de la
licence de XFree86, incompatible avec la licence GPL. Depuis, presque toutes les distributions
Linux utilisent le serveur X.org.
Ce chapitre se base sur les versions 7.1 à 7.3. Il décrit différents aspects de la configuration
d’un serveur X, y compris l’inclusion de pilotes binaires d’ATI/AMD et de NVIDIA. Nous
parlerons également des fonctions 3D du bureau, de la gestion des polices, ainsi que de
divers utilitaires X (comme xterm). Vous trouverez plus d’informations sur X et X.org à
l’adresse http://www.x.org.

22.1 Glossaire
Cette section éclaircit quelques notions de base et concepts auxquels vous serez probablement
confronté lors de la configuration de X.
Système Le système XWindow (abrégé en X) ne définit que les fonctions de base pour dessiner des
XWindow
points, des rectangles, etc. Il contient également un protocole réseau qui permet de lancer un
programme X sur l’ordinateur A et d’afficher les résultats sur l’ordinateur B. Fin 2007, la ver-
sion actuelle de X.org (7.3) se base sur X11R7.3. Le système XWindow a été développé au
départ par le MIT.
X est à la base d’une interface graphique pour Linux, mais il n’est pas en soi une interface
graphique. L’aspect des programmes X et leur utilisation dépendent des bibliothèques utilisées
par les programmeurs (par exemple, GTK pour Gnome, QT pour KDE) et du gestionnaire
de fenêtre actif.
Serveur X Le serveur X est l’interface entre le système XWindow et le matériel (carte graphique, souris,
etc.). Ce serveur est modulaire : il est étendu par des fonctions spéciales pour chaque carte
graphique.
Modules Les fonctions standard du serveur X peuvent être étendues par divers modules d’extension,
d’extension
de X par exemple pour les graphismes 3D, une sortie vidéo plus rapide, etc.
Écran virtuel Le serveur X sait exploiter un écran virtuel plus grand que la résolution effective du moni-
teur. Par exemple, l’écran virtuel peut avoir une résolution de 1600x1200, tandis que seuls
Linux Livre Page 358 Mardi, 23. septembre 2008 1:05 13

358 LINUX

1280x1024 pixels s’affichent à l’écran. Le changement de zone visible se fait sans ralentis-
sement dès que la souris s’approche du bord de l’écran.
Comme le fait de travailler avec un écran virtuel demande un peu d’habitude, la plupart des
configurations X l’évitent. Un écran virtuel peut cependant s’avérer utile si votre résolution
est très faible, par exemple sur un vieil ordinateur portable.
Bureaux Un bureau virtuel est une interface graphique élargie qui se compose de plusieurs écrans
virtuels
(espaces de travail) côte à côte. Comme vous n’avez qu’un seul moniteur physique, vous ne
pouvez voir qu’un seul bureau à la fois. Les bureaux virtuels ne sont pas gérés par X, mais
par le gestionnaire de fenêtre ou de bureau (KDE, Gnome).
Xinerama Avec une carte graphique appropriée, le serveur X peut exploiter plusieurs moniteurs grâce
au mode Xinerama. L’espace de travail s’étale alors sur plusieurs moniteurs.
Gestionnaire Le gestionnaire de fenêtres est un programme X qui sert à gérer les fenêtres. Vous pouvez
de fenêtres
ainsi démarrer d’autres programmes (au moins une fenêtre de terminal xterm), passer d’une
fenêtre à une autre, déplacer et fermer des fenêtres, etc. Il s’agit de tâches très simples,
mais il ne faut pas oublier qu’elles sont gérées par le gestionnaire de fenêtres et non par X.
enlightenment, fvwm et xfce sont des gestionnaires de fenêtres usuels.
Gestionnaire Les gestionnaires de bureau, comme KDE ou Gnome, vont au-delà des fonctions d’un ges-
de bureau
tionnaire de fenêtre. Grâce aux bibliothèques graphiques, les applications KDE et Gnome
sont plus unifiées, à la fois au niveau de leur aspect et de leur utilisation. Les communica-
tions entre les programmes sont standardisées au point que le glisser-déposer entre diffé-
rents programmes fonctionne. Vous trouverez plus d’informations sur Gnome et KDE aux
Chapitres 4 et 5.
Du fait que KDE et Gnome sont de plus en plus populaires, il est devenu peu fréquent d’uti-
liser X avec un simple gestionnaire de fenêtre sans gestionnaire de bureau. Il existe cepen-
dant des cas où ce choix a un sens, par exemple sur un ordinateur avec peu de mémoire vive
ou un processeur lent (KDE et Gnome sont plutôt gourmands en ressources).
Bureau 3D Depuis 2006, il existe des gestionnaires de fenêtres qui "améliorent" diverses opérations
grâce aux fonctions 3D de la carte graphique : les fenêtres sont déformées lorsqu’elles sont
déplacées, les bureaux sont projetés sur un cube lorsqu’on change de bureau, etc. Des effets
similaires sont utilisés sous Mac OS X et Windows Vista.

Glossaire matériel
Même si les écrans cathodiques se font rares, connaître le fonctionnement d’un tel moniteur
aide à comprendre les paramètres de configuration d’une carte graphique. Pour afficher une
image, un moniteur cathodique parcourt ligne par ligne toute la surface de l’écran avec un
faisceau d’électrons et allume des petits points (sauf si ces derniers doivent rester noirs).
Pour que l’image ne scintille pas, ce processus est répété plusieurs fois par seconde (au
moins 60, de préférence 70 à 100 fois).
Balayage Le balayage de l’écran commence dans le coin en haut à gauche. Le faisceau d’électrons se
horizontal
(HSync) déplace vers la droite et parcourt ainsi la première ligne. Il saute alors au début de la
deuxième ligne et la traite de la même manière. Pendant ce retour du faisceau, celui-ci a une
intensité nulle pour qu’il ne soit pas visible. Ce retour est déclenché par l’impulsion HSync,
transmise de la carte graphique au moniteur.
Linux Livre Page 359 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 359


Balayage Une fois que toutes les lignes ont été balayées et que le faisceau d’électrons se trouve dans le
vertical
(VSync) coin en bas à droite de l’écran, l’impulsion VSync déclenche le retour du faisceau en haut à gau-
che. Celui-ci reste éteint pendant ce retour, afin d’éviter une traînée lumineuse sur tout l’écran.
Fréquences La construction d’une image est caractérisée par trois fréquences. Celles-ci sont données en
Hz (Hertz, soit le nombre d’oscillations par seconde) ou en multiples de cette unité, par
exemple kHz ou MHz.
Fréquence Cette fréquence indique combien de fois par seconde l’écran est entièrement rafraîchi. Plus
verticale
ce nombre est élevé, plus la stabilité de l’image est grande. Une fréquence de 70 images par
seconde (70 Hz) assure une image sans scintillement.
Fréquence Cette fréquence indique combien de lignes sont parcourues par le faisceau d’électrons en
horizontale
une seconde. Pour une résolution de 640 × 480 (480 lignes) à une fréquence verticale de
60 Hz, la fréquence horizontale atteint 31,5 kHz (60 × 480 = 28,8 kHz, mais il faut garder
un peu de temps pour le balayage vertical). Pour une résolution de 1200 × 1600 et 85 Hz,
la fréquence horizontale atteint 110 kHz.

Il ne faut pas dépasser les fréquences maximales d’un écran cathodique ! Sinon, le faisceau ne peut pas sui-
vre les données, des zones de l’écran (voire l’écran entier) sont éclairées trop longtemps ou trop souvent,
et l’écran peut rapidement être détruit. Les moniteurs modernes reconnaissent normalement cette situation
et désactivent automatiquement le faisceau ; pour un moniteur plus ancien, le risque de destruction est
réel.

Fréquence de Cette fréquence indique le nombre de pixels qui sont transmis de la carte graphique au
pixels (débit
vidéo) moniteur en une seconde. En 640 × 480 à une fréquence de 60 Hz, la valeur minimale est de
18,4 MHz. Pour prendre en compte le temps de retour sur le balayage, la fréquence vidéo est
normalement plus proche de 25 MHz.
Comparaison Sur un écran plat, l’image est construite par de l’électronique de pilotage qui rend plus ou
entre les
écrans moins transparentes des petites parties de la surface de l’écran. Il n’est donc plus nécessaire
cathodiques et de construire l’image ligne par ligne.
LCD
Les moniteurs LCD avec une entrée analogique traitent, pour des raisons de compatibilité, les
mêmes signaux d’entrée que les moniteurs cathodiques. Le signal est donc converti deux fois :
de la carte graphique numérique au câble analogique puis à l’écran numérique. Cela peut faire
légèrement scintiller l’image. La qualité est meilleure lorsque le signal est transmis en numé-
rique via un câble DVI entre les prises correspondantes de la carte graphique et de l’écran.
La qualité de l’image n’est optimale que lorsque la résolution du moniteur (par exemple
1280 × 1024) est respectée avec exactitude. Contrairement aux écrans cathodiques, les fré-
quences d’image sont le plus souvent fixées (généralement, entre 60 et 75 Hz). Une fré-
quence trop élevée peut entraîner un écran noir : aucune image ne s’affiche, car la fréquence
maximale de l’électronique de commande est dépassée.
DDC (Display La plupart des moniteurs modernes transmettent leurs références (par exemple, leur
Data Channel
− canal de fréquence maximale) à la carte vidéo par le biais du câble de l’écran. Cela permet
données de reconnaître automatiquement l’écran et aide à configurer correctement la carte
d’affichage)
graphique.
Linux Livre Page 360 Mardi, 23. septembre 2008 1:05 13

360 LINUX

22.2 Problème des pilotes


Avant de décrire la configuration et l’utilisation de X dans les sections suivantes, nous aime-
rions traiter ici du principal problème de X : la mauvaise prise en charge des cartes gra-
phiques modernes par les pilotes libres. (Ce texte a été traduit et mis à jour en juillet 2008.
Il se peut que la situation ait changé au moment où vous lirez ces lignes.)
L’immense majorité des PC et ordinateurs portables actuels dispose d’un processeur graphi-
que de l’un des trois fabricants ATI/AMD, Intel et NVIDIA − Intel ne fournit pas de cartes
graphiques, mais uniquement des processeurs. Les solutions graphiques de VIA (principa-
lement en tant que partie de la carte mère) se propagent également très vite.
Donnons d’abord une bonne nouvelle : les pilotes libres contenus dans X fonctionnent en
principe avec presque toutes les cartes graphiques courantes. Voici maintenant la mauvaise
nouvelle : les performances atteintes sont au mieux médiocres et de nombreuses fonctions
supplémentaires de la carte graphique restent inutilisées, comme les fonctions 3D, la gestion
de plusieurs sorties, etc.
ATI/AMD Jusqu’à récemment, ATI/AMD se refusait à spécifier publiquement les interfaces de ses pro-
cesseurs graphiques, ce qui a longtemps empêché le développement de pilotes 3D libres. Il
existait cependant des pilotes fermés gratuits, mais leur prise en charge devenait de pire
en pire au fil des ans : incompatibilité avec les versions actuelles de X.org, pas de prise en
charge de AIGLX (bureau 3D), etc.
Depuis le printemps 2007, la situation s’améliore nettement. ATI/AMD ouvre les spécifications
de ses processeurs et les pilotes libres fonctionnent de mieux en mieux.
Intel La prise en charge libre des processeurs graphiques Intel est globalement excellente. Cela
vient du fait qu’Intel coopère beaucoup avec la communauté libre et fournit lui-même des
pilotes libres.
NVIDIA NVIDIA reste pour l’instant sur ses positions : les accords de licence avec d’autres entreprises
et les brevets rendent impossibles le développement de pilotes libres et l’ouverture des spé-
cifications. NVIDIA fournit en revanche des pilotes fermés gratuits, dont la qualité est glo-
balement meilleure que celle des pilotes d’ATI/AMD. Les pilotes libres ne prennent en
charge que les fonctions 2D (nv) ou ne sont pas encore très mûrs (nouveau).
VIA Le pilote libre intégré à X ne fonctionne qu’avec les modèles VIA anciens. Pour les plus
récents, vous avez trois possibilités : le pilote VESA (lent), le pilote libre de VIA (qui n’a
pas bonne réputation et qui n’est pas intégré à X) et un second pilote libre du projet open-
Chrome qui n’est pas très mûr. Fin juillet, VIA a publié plus de 800 pages de spécifica-
tions visant au développement de pilotes libres ; gageons que la situation s’améliorera
rapidement.
Problèmes Vous vous dites peut-être que la différence entre des "vrais" pilotes libres et des pilotes
avec les pilotes
non libres binaires gratuits tient du coupage de cheveux en quatre : l’important est que cela fonc-
tionne. Il existe cependant de bonnes raisons de préférer les pilotes libres aux pilotes
binaires :
• Les pilotes binaires ne sont pas toujours stables. Cela s’est récemment amélioré, mais il
n’existe aucune garantie pour le futur.
Linux Livre Page 361 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 361

• Pour que les pilotes graphiques fonctionnent de manière efficace, il est nécessaire de les
lier étroitement au noyau Linux. Il existe donc entre le pilote réel (propriétaire) et le
noyau (sous licence GPL) un petit module de noyau qui sert uniquement d’interface
entre ces deux parties.
De nombreux développeurs de Linux doutent que cette façon de procéder soit conforme
à la GPL et ne la tolèrent qu’à contrecœur. Ils décrivent un tel noyau comme tainted
(entaché) et déclinent dans ce cas toute responsabilité vis-à-vis d’éventuels problèmes
de stabilité.
La proximité avec le noyau a un inconvénient supplémentaire : après une mise à jour du
noyau, le module de la carte graphique doit également être actualisé pour être compati-
ble avec le noyau. La complexité de cette opération dépend de la distribution. Dans un
cas idéal, le pilote est mis à jour automatiquement par le gestionnaire de paquetages.
Sinon, le système graphique ne fonctionne plus et vous devez recompiler un module de
noyau dans une console.
• En raison des conflits avec la GPL, la redistribution de pilotes fermés est difficile au vu
des licences utilisées. Pour de nombreuses distributions, vous devez télécharger et ins-
taller vous-même ces pilotes. Cette opération est plus ou moins complexe suivant la dis-
tribution : certaines privilégient le confort des utilisateurs par rapport à la stricte
observance des idéaux libres.
• Comme le code des pilotes graphiques n’est connu que des entreprises correspondan-
tes, il est impossible d’en contrôler la sécurité depuis l’extérieur. Si un pilote rencontre
un problème de sécurité (ce qui s’est déjà produit), les utilisateurs de Linux ne peuvent
qu’espérer que l’entreprise concernée fournisse une mise à jour rapide − pour du code
libre, la communauté de développeurs peut s’en occuper elle-même, ce qui va généralement
plus vite.
• Faute de code, il est impossible de porter les pilotes pour d’autres systèmes d’exploita-
tion, d’autres architectures de processeurs, etc. Les entreprises décident quels systèmes
sont pris en charge. Par exemple, les architectures 64 bits ont longtemps été exclues de
ces pilotes.
• La prise en charge graphique sous Linux dépend de la bonne volonté d’une poignée
d’entreprises. Il est déjà arrivé qu’une carte graphique soit soudain inutilisable suite à
une nouvelle version de X.
Jusqu’à récemment, on pouvait résoudre le dilemme des pilotes en se disant que les pilotes
libres suffisaient pour la 2D et que les fonctions 3D ne jouaient qu’un rôle mineur sous
Linux. Ce n’est plus vrai : les bureaux 3D commencent à s’établir comme des standards. De
plus, certains processeurs graphiques ne fonctionnent plus non plus en 2D sans pilote du
fabricant.
Linux ne peut rester un système complètement libre que si les principaux composants le
sont également. Et ces derniers comptent évidemment les pilotes graphiques. Renseignez-
vous lors de vos prochains achats de matériel sur le statut des pilotes !
Linux Livre Page 362 Mardi, 23. septembre 2008 1:05 13

362 LINUX

22.3 Démarrer et arrêter X


Cette section est un aperçu des commandes qui permettent de démarrer et d’arrêter X. La
façon de procéder dépend de la distribution.
Démarrage En général, le processus InitV démarre X automatiquement par le biais d’un gestionnaire
automatique
d’affichage (Display Manager). Selon la distribution et la configuration, trois programmes
peuvent jouer ce rôle : xdm, sa variante KDE kdm ou sa variante Gnome gdm.
Une boîte de dialogue de connexion s’affiche généralement − il arrive que le gestionnaire de
bureau soit configuré de manière à connecter automatiquement un utilisateur donné. Les
détails du processus de démarrage dépendent fortement de la distribution.
Sous Fedora et Red Hat, /etc/inittab contient une ligne qui lance X au niveau d’exécution 5 :
x:5:once:/etc/X11/prefdm -nodaemon

Sous Debian et Ubuntu, le processus InitV lance le script /etc/init.d/gdm ou /etc/init.d/


kdm aux niveaux d’exécution 2 à 5. Sous SUSE, il lance le script /etc/init.d/xdm au niveau
d’exécution 5.
Redémarrer X Les modifications dans la configuration de X ne sont prises en compte qu’après un redémar-
rage. Pour cela, déconnectez-vous. Lorsque le gestionnaire d’affichage affiche la boîte de
dialogue de connexion, saisissez la combinaison de touches Ctrl+Alt+Retour Arrière. X est
alors terminé et généralement redémarré immédiatement.
Si X ne redémarre pas, connectez-vous en tant que root et lancez la commande suivante.
Selon la distribution, vous devez remplacer gdm par kdm ou xdm.
root# /etc/init.d/gdm start

Arrêter X X fonctionne normalement jusqu’à l’arrêt de l’ordinateur sans qu’il faille l’arrêter. Vous pou-
vez connecter et déconnecter n’importe quel utilisateur. X fonctionne aussi lorsque aucun
utilisateur n’est connecté et affiche, dans ce cas, la boîte de dialogue de connexion. Vous
pouvez facilement passer à une console texte avec Ctrl+Alt+Fn. X fonctionne alors toujours
et vous pouvez y retourner avec Alt+F7 ou, dans certaines distributions, Alt+F5.
Si vous désirez réellement arrêter X (par exemple, pour effectuer des tâches de configu-
ration), déconnectez-vous du bureau courant, passez dans une console texte avec
Ctrl+Alt+F1, puis connectez-vous en tant que root et lancez init 3. Cette procédure fonc-
tionne dans de nombreuses distributions, comme Fedora, Red Hat et SUSE.
root# init 3

En ce qui concerne les distributions basées sur Debian (Debian, Ubuntu), vous devez dans
cette même console texte arrêter le gestionnaire d’affichage gdm, kdm ou xdm.
root# /etc/init.d/gdm|kdm|xdm stop

Désactiver le Il est parfois nécessaire de désactiver le démarrage automatique de X, par exemple


démarrage
automatique lorsqu’on utilise l’ordinateur en tant que serveur. Sous Red Hat, Fedora et SUSE, il suffit de
réduire le niveau standard d’exécution de InitV et de le passer de 5 à 3. Pour cela, modifiez
la ligne initdefault dans /etc/inittab.
# Niveau d’exécution par défaut : 3 (multi-utilisateur sans X)
id:3:initdefault:
Linux Livre Page 363 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 363

Cette modification est prise en compte au redémarrage de l’ordinateur. Pour réactiver le


démarrage automatique, repassez au niveau d’exécution 5 par défaut.
La procédure est différente pour les distributions basées sur Debian. Le niveau d’exécution
n’est pas modifié, mais le démarrage automatique du gestionnaire d’affichage est supprimé.
Remplacez si nécessaire gdm par kdm ou xdm.
root# update-rc.d -f gdm remove
root# update-rc.d gdm stop 1 0 1 2 3 4 5 6 .

Pour réactiver le démarrage automatique, les deux commandes suivantes sont nécessaires. Les
valeurs 30 et 1 indiquent les valeurs de priorité pour le démarrage et l’arrêt du service. Elles
varient selon la distribution ; celles indiquées ici sont les valeurs par défaut d’Ubuntu 8.04.
root# update-rc.d -f gdm remove
root# update-rc.d gdm defaults 30 1

Démarrer Lorsque X n’est temporairement pas lancé, il existe deux possibilités pour le démarrer
manuellement
X manuellement. Jusqu’à ce que la configuration soit stable, utilisez de préférence la première.
• startx. Cette commande démarre directement X. Il n’y a pas de boîte de dialogue de
connexion. L’utilisateur qui lance startx est l’utilisateur connecté sous X.
Certaines distributions (Fedora jusqu’à sa version 7 et RHEL jusqu’à sa version 5.n)
s’appuient sur le fait qu’un serveur de polices est lancé avant le démarrage de X. Si vous
lancez X manuellement, ce n’est pas le cas. Vous devez alors démarrer aussi manuellement
le serveur de polices (ce qui n’est faisable qu’en tant que root).
root# /etc/init.d/xfs start
utilisateur$ startx

• Démarrage avec un gestionnaire d’affichage. Dans de nombreuses distributions, vous


devez pour lancer le gestionnaire d’affichage passer au niveau d’exécution 5 :
root# init 5

Pour les distributions basées sur Debian, il faut lancer explicitement le gestionnaire
d’affichage :
root# /etc/init.d/gdm|kdm|xdm start

Fichiers de journalisation de X
Au démarrage de X, d’innombrables messages, avertissements, voire messages d’erreur
sont enregistrés dans le fichier /var/log/Xorg.0.log. Ce dernier contient des informations
supplémentaires sur le fichier de configuration utilisé, les modules chargés, les problèmes
rencontrés, le mode graphique utilisé ou encore les raisons de cette utilisation. Les lignes de
ce fichier sont annotées par les codes suivants :
(**) paramètre provenant du fichier de configuration
(++) paramètre provenant de la ligne de commande
(==) paramètre par défaut de X
Linux Livre Page 364 Mardi, 23. septembre 2008 1:05 13

364 LINUX

(--) paramètre résultant du matériel détecté


(!!) information
(II) information
(WW) avertissement
(EE) erreur
S’il existe plusieurs fichiers de journalisation pour X dans /var/log, utilisez le plus récent.
En raison de la grande quantité d’informations dans le fichier Xorg.0.log, chercher des
informations pertinentes revient à chercher une aiguille dans une botte de foin. Le plus sim-
ple est alors d’envoyer le fichier en question à quelqu’un qui s’y connaît mieux ou de le
poster dans un forum d’aide.

Déterminer la version de X
Pour connaître la version de X que votre ordinateur utilise, lancez la commande suivante.
Depuis quelque temps, celle-ci ne renvoie plus la version de X (par exemple, 7.2 pour
X11R7.2), mais le numéro de version du serveur (celle du programme Xorg).
utilisateur$ X -showconfig
...
X.Org X Server 1.4.0.90
Release Date: 5 September 2007
X Protocol Version 11, Revision 0
...

Vous pouvez aussi lancer la commande xdpyinfo :


utilisateur$ xdpyinfo |grep release
vendor release number: 10400090

22.4 Configuration de base


Les versions actuelles du serveur X ne peuvent être lancées que lorsque le fichier de configu-
ration /etc/X11/xorg.conf existe. Si celui-ci est absent ou erroné (par exemple, si vous
changez de carte graphique), le démarrage de X échoue. Vous devez alors vous connecter
dans une console texte et modifier xorg.conf avec un éditeur ou un autre programme de
configuration.
Le serveur X est normalement configuré pendant l’installation. Si X fonctionne sans soucis
sur votre ordinateur, vous pouvez passer cette section. Mais si vous avez un problème avec
l’écran, la souris ou le clavier, cette section et les suivantes vous seront utiles.

Cette section s’adresse aux lecteurs qui s’intéressent à la configuration interne de X ou qui ont des problèmes
de configuration. Normalement, vous ne devriez pas modifier x.org manuellement, mais utiliser les outils de
configuration de votre distribution :
Debian dpkg-reconfigure xserver-xorg
Fedora, Red Hat system-config-display
Linux Livre Page 365 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 365

SUSE Module YaST Matériel, Carte graphique et moniteur ou sax2


Ubuntu (à partir de 7.10) display-config-gtk
Toutes les distributions X -configure ou xorgcfg ou xorgconfig

Depuis la version 7.3, le serveur X.org reconnaît lui-même le matériel. Grâce à ces don-
nées, X peut démarrer sans fichier de configuration (au moins, dans un mode graphique
restreint).

Construction du fichier de configuration xorg.conf


Le fichier /etc/X11/xorg.conf se divise en plusieurs sections préfixées d’une ligne Section
"nom" et terminées par EndSection. Voici les différents noms de sections :

Sections du fichier xorg.conf


Monitor données du moniteur
Device configuration de la carte graphique
Screen résolution de l’écran
ServerLayout assemblage des sections Screen et InputDevices
Files noms de fichiers (par exemple, répertoire de polices)
Module modules supplémentaires (par exemple, freetype, dri)
ServerFlags options diverses du serveur
Modes modes vidéo (résolution, fréquence, etc.)
InputDevice configuration du clavier
InputDevice configuration de la souris

Un fichier de configuration classique ne contient qu’une partie de ces sections. X utilise dans
ce cas les paramètres par défaut ou tente de détecter lui-même le matériel. Les lignes suivan-
tes offrent un exemple minimal de configuration. Une de mes machines de test dispose
d’une carte graphique NVIDIA et d’un écran LCD ; elle fonctionne sans problème avec ce
fichier de configuration. Cet exemple suppose qu’un serveur de polices fonctionne ou que
les polices se trouvent dans les répertoires de polices par défaut. Si ce n’est pas le cas, vous
devez indiquer dans une section Files l’emplacement des fichiers de polices. X reconnaît la
bonne résolution de l’écran et la souris.
# /etc/X11/xorg.conf
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "InputDevice"
Linux Livre Page 366 Mardi, 23. septembre 2008 1:05 13

366 LINUX

Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbVariant" "nodeadkeys"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nv"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Vous remarquerez sûrement que toutes les sections incluent une ligne Identifier. Elle
donne un nom à la section. Les noms sont utilisés pour agencer des sections individuelles.
Par exemple, la section ServerLayout fait appel à Screen0 et Keyboard0.
Certaines configurations incluent également des chaînes de caractères telles que Board, Vendor
ou ModelName. Ces informations ne servent qu’à rendre plus clair le fichier de configuration.
Elles ne sont pas utilisées par X et n’ont aucune relation avec les fonctions de X.
man xorg.conf est une référence complète des mots clés et sections de xorg.conf.

Section Monitor (écran)


La section Monitor ne nécessite généralement que deux informations : l’intervalle de fré-
quences horizontales (en kHz) et l’intervalle de fréquence d’image (en Hz). Les valeurs sui-
vantes conviennent pour un écran LCD 20" doté d’une résolution de 1600x1200 pixels à une
fréquence maximale de 75 Hz :
Section "Monitor"
...
HorizSync 30-95 # 30 à 95 kHz (lignes/sec)
VertRefresh 58-78 # 58 à 78 Hz (images/sec)
EndSection

Pour un écran cathodique traditionnel, la fréquence d’image doit être plus élevée pour affi-
cher des images sans scintillement. Les données suivantes s’appliquent à un moniteur 19"
cathodique classique. Attention, des valeurs élevées pour ces deux intervalles peuvent
mener à la destruction de votre écran cathodique !
HorizSync 27-102 # 27 bis 102 kHz (lignes/sec)
VertRefresh 50-160 # 50 bis 160 Hz (images/sec)
Linux Livre Page 367 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 367

En pratique, ces valeurs sont rarement renseignées lorsqu’un écran LCD est branché. La sec-
tion ne sert alors qu’à indiquer les éventuelles options, comme l’économie d’énergie du
moniteur.

Section Device (carte graphique)


Le mot clé le plus important de la section Device est Driver. Il indique quel module doit être
chargé. Les pilotes de carte graphique disponibles se trouvent dans le répertoire /usr/
lib[64]/xorg/modules/drivers.
Choix du Si vous ne savez pas quelle carte graphique vous avez, lancez lspci :
pilote
root# lspci
...
01:00.0 VGA compatible controller: ATI Technologies Inc M10 NT
[FireGL Mobility T2] (rev 80)

Le résultat n’indique cependant pas toujours le pilote graphique nécessaire. Dans ce cas, les
notes de version de X.org (http://www.x.org/wiki/XorgReleases) sont très utiles, tout
comme les pages de manuel qui sont indiquées. Par exemple, man radeon offre des informations
sur le pilote Radeon et man nv sur le pilote NVIDIA de X.org.
Si vous n’avez pas de chance, votre carte graphique n’est pas encore prise en charge par
X.org, ou alors partiellement. Il s’agit peut-être d’un problème de détection de la carte : vous
avez indiqué le bon module dans la section Device, mais X ne reconnaît pas la carte. Dans ce
cas, vous pouvez essayer d’indiquer l’identifiant d’une carte compatible avec l’option
ChipID (par exemple ChipID "0x1234"). Le fichier pci.ids fournit une liste d’identifiants
valides. L’emplacement de ce fichier dépend de la distribution : /usr/share, /usr/share/
hwdata ou /var/lib/misc. Les forums de discussion peuvent également être un bon point de
départ pour trouver une valeur correcte de ChipID.
Si votre carte ne fonctionne toujours pas, vous pouvez utiliser les pilotes vga, vesa ou fbdev.
Ils fonctionnent avec presque toutes les cartes graphiques, mais leurs performances sont
relativement limitées.
Options Presque tous les pilotes disposent d’options pour définir des paramètres spéciaux, contour-
spécifiques
aux pilotes ner des problèmes ou activer des fonctions particulières. Nous ne pouvons pas les décrire ici
pour des raisons de place. Vous trouverez des informations détaillées sur ces options dans
les pages de manuel correspondant aux pilotes (par exemple man radeon). Les lignes suivan-
tes illustrent, par exemple, l’utilisation de l’option DisplayPriority, nécessaire sur un ordi-
nateur portable pour obtenir une image stable sur un moniteur TFT relié à la station
d’accueil :
Driver "radeon"
Option "DisplayPriority" "High"
Linux Livre Page 368 Mardi, 23. septembre 2008 1:05 13

368 LINUX

Le tableau suivant recense les pilotes les plus fréquemment utilisés.

Pilotes utilisés fréquemment par marque de carte graphique


ATI/AMD radeon, fglrx, radeonhd, ati
Intel intel, i810
NVIDIA nv, nvidia, nouveau
Autres vesa, fbdev, vga

Section Screen (résolution, nombre de couleurs)


La section Screen lie le moniteur et la carte graphique, et indique à quelle résolution et à
quelle profondeur de couleurs la carte graphique doit être utilisée. Chaque fichier xorg.conf
doit disposer d’une section Screen ; pour une configuration multi-écrans, plusieurs sections
sont nécessaires.
Les mots clés Device et Monitor indiquent la carte graphique et l’écran à utiliser parmi ceux
déjà définis. DefaultDepth définit la profondeur de couleurs par défaut ; il s’agit de bits par
pixels. 24 bits indique que chaque composant (rouge, vert et bleu) dispose de 8 bits, soit 256
nuances, pour un total de 224 couleurs.
Sous-section Dans la section Screen, plusieurs sous-sections Display peuvent être définies pour plusieurs
Display
profondeurs de couleurs. Dans l’exemple ci-après, un seul mode est défini, pour des cou-
leurs 24 bits :
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection

La ligne Modes, optionnelle, peut définir la résolution souhaitée. Si cette ligne est omise ou
contient une résolution invalide, X détermine automatiquement la meilleure résolution
adaptée à l’écran et à la carte graphique. Il utilise pour cela une base de données de modes
qui contient les paramètres de résolutions définis par les modes VESA − VESA signifie Video
Electronics Standard Association et définit une série de normes suivies par la plupart des car-
tes graphiques.
Il n’est malheureusement pas possible de configurer directement la fréquence d’image. X
définit cette valeur lui-même en fonction des données de l’écran et de la carte graphique.
La section Display peut aussi définir la taille d’un écran virtuel. Par exemple, Virtual 1600
1200 définit un écran virtuel de 1600x1200 pixels, quelle que soit la résolution réelle de
l’écran.
Linux Livre Page 369 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 369

Si la ligne Modes définit plusieurs résolutions valides, X utilise la première comme paramétrage de base.
Vous pouvez ensuite passer entre les différentes résolutions avec Ctrl+Alt++. Vous devez pour cela utiliser la
touche + du pavé numérique.

Section ServerLayout
La section ServerLayout lie les sections Screen et InputDevice. Généralement, un fichier de
configuration ne contient qu’une seule section Screen et deux sections InputDevice (souris
et clavier). Dans ce cas, la section ServerLayout peut être omise, car X combine les sections
Screen et InputDevice selon ce schéma :
Section "ServerLayout"
Identifier "Layout0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Screen "Screen0"
EndSection

Xinerama La section ServerLayout est particulièrement importante lorsque plusieurs moniteurs sont
utilisés en même temps. Il faut alors activer le mode multi-écrans avec Option "Xinerama"
"On" et définir une section Screen par écran. La configuration minimale pour deux moni-
teurs est indiquée ci-après. Notez que vous avez aussi besoin de deux sections Device,
même lorsqu’il n’y a qu’une seule carte graphique.
# deux sections Monitor
Section "Monitor"
Identifier "Monitor1"
...
EndSection
Section "Monitor"
Identifier "Monitor2"
...
EndSection
# deux sections Device, une par moniteur
Section "Device"
Identifier "Videocard1a"
Driver "..."
Screen 0
...
EndSection
Section "Device"
Identifier "Videocard1b"
Driver "..."
Screen 1
...
EndSection
# deux sections Screen qui associent une section Device à une section
Linux Livre Page 370 Mardi, 23. septembre 2008 1:05 13

370 LINUX

# Monitor
Section "Screen"
Identifier "Screen1a"
Device "Videocard1a"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1b"
Device "Videocard1b"
Monitor "Monitor2"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
# une section ServerLayout qui assemble les sections Screen
Section "ServerLayout"
Identifier "Layout1"
Screen 0 "Screen1a" LeftOf "Screen1b"
Screen 1 "Screen1b"
Option "Xinerama" "on"
InputDevice ...
EndSection

Plusieurs On peut définir plusieurs sections ServerLayout pour différents scénarios d’utilisation, par
dispositions
exemple Layout0 pour utiliser un portable de manière classique, Layout1 pour une présenta-
tion sur un vidéoprojecteur et Layout2 pour utiliser un moniteur externe. L’option Default-
ServerLayout dans la section ServerFlags permet de choisir la disposition par défaut.

Section Files
La section Files permet d’indiquer divers répertoires depuis lesquels le serveur X charge
des fichiers. Ils ne sont nécessaires que lorsqu’ils diffèrent des répertoires par défaut. Nous
parlerons des répertoires FontPath à la section 22.14.

Section Module
La section Module contient, grâce au mot clé Load, différents modules d’extensions à charger
par le serveur X :
Section "Module"
Load "extmod"
...
EndSection
Linux Livre Page 371 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 371

La section Module est optionnelle : la plupart des modules importants sont chargés automa-
tiquement. Les fichiers de modules se trouvent le plus souvent dans les répertoires /usr/
lib[64]/xorg/modules/extensions et /usr/lib[64]/xorg/modules/fonts. Le tableau sui-
vant indique les principaux modules.

Modules importants
extmod extensions souvent installées dans X, presque toujours essentielles
v4l Video 4 Linux (vidéo pour Linux)
dri Direct Rendering Infrastructure (infrastructure de rendu direct)
glx interface du protocole OpenGL X
dbe Double Buffering Extension (extension de tampon double)
freetype prise en charge des polices TrueType
type1 prise en charge des polices Adobe-Type-1
speedo prise en charge des polices Bitstream

Section ServerFlags
La section ServerFlags contient des options qui influent sur le comportement du serveur X :
Section "ServerFlags"
Option "DontZap" "on"
Option "DefaultServerLayout" "Layout2"
EndSection

Une description complète de toutes les options se trouve dans man xorg.conf. Voici les plus
importantes :
• AllowMouseOpenFail (par défaut, off) permet à X de démarrer même lorsqu’il échoue à
initialiser ou reconnaître la souris.
• DefaultServerLayout indique la section ServerLayout à utiliser par défaut. Cette option
n’est nécessaire que lorsque xorg.conf contient plusieurs sections ServerLayout.
• DontZap (par défaut, off) désactive, lorsqu’elle est à on, la terminaison immédiate du
serveur X avec la combinaison de touches Ctrl+Alt+Retour Arrière.
• DontVTSwitch (par défaut, off) désactive, lorsqu’elle est à on, le passage à une console
texte avec Ctrl+Alt+Fn.

Définir ses propres modes graphiques


X dispose d’une base de données qui contient toutes les résolutions et fréquences définies
par VESA. Si vous utilisez l’un de ces modes (par exemple, avec la ligne Modes
"1280x1024"), il est inutile de vous occuper de la manière dont ils sont définis.
Linux Livre Page 372 Mardi, 23. septembre 2008 1:05 13

372 LINUX

Si vous désirez utiliser une autre résolution (ce qui peut être nécessaire sur certains ordina-
teurs portables dont l’écran utilise une résolution non standard, par exemple 1024x600) ou
atteindre une fréquence donnée, vous devez indiquer vous-même les paramètres du mode
graphique souhaité. Pour cela, lancez la commande ModeLine dans la section Monitor. Vous
pouvez aussi décrire ces paramètres dans une sous-section délimitée par Mode et EndMode.
Ces opérations sont rares aujourd’hui. Il existe certains tutoriels de calcul de modes,
par exemple aux adresses http://koala.ilog.fr/cgi-bin/nph-colas-modelines-fr ou
http://www.traduc.org/docs/HOWTO/lecture/XFree86-Video-Timings-HOWTO.html.

XVideo
XVideo (V4L) Les lecteurs vidéo sous Linux (voir Chapitre 11) affichent, lorsque c’est possible, les images
sur l’extension XVideo (en abrégé, XV) grâce à de la mémoire partagée de la carte graphi-
que. Cette méthode nécessite le module de noyau v4l2 (Video 4 Linux version 2). Elle est
très efficace, mais ne fonctionne que lorsque le pilote de la carte graphique prend en charge
XV, ce qui n’est malheureusement pas toujours le cas.
Si c’est le cas, l’extension X correspondante est normalement activée automatiquement.
Dans certaines circonstances, vous pouvez avoir à activer manuellement le module avec la
ligne Load "v4l" dans la section Module. Vous pouvez voir si XV est pris en charge avec
la commande xvinfo. Celle-ci devrait renvoyer une longue liste d’informations à propos de
diverses fonctions XVideo. Si le résultat est no adaptors present, XV n’est pas utilisable. Vous
trouverez d’autres informations sur XV et Video 4 Linux aux adresses http://linuxtv.org/
v4lwiki/index.php/Main_Page et http://www.exploits.org/v4l.
DGA Si le pilote de votre carte graphique ne prend pas en charge XV, DGA fonctionne peut-
être. À l’instar de XV, il est activé automatiquement si le pilote reconnaît cette extension.
Vous pouvez le tester avec le programme dga. B lance un test de performances et Q quitte
le programme.

22.5 Pilotes ATI/AMD


Les cartes graphiques ATI/AMD disposent de plusieurs pilotes en fonction du modèle :
• atimisc. Pilote libre pour les cartes graphiques très anciennes avec un processeur
Mach8/32/64.
• r128. Pilote libre pour les cartes disposant d’un processeur graphique ATI Rage128
(comme Rage Fury, XPERT 128).
• radeon. Pilote libre pour les cartes graphiques actuelles disposant d’un processeur gra-
phique Radeon et de la prise en charge des fonctions 3D pour tous les modèles R100 à
R400.
• ati. Pilote libre qui active l’un des trois pilotes cités ci-dessus en fonction du modèle.
• radeonhd. Pilote libre pour les cartes graphiques R500 et supérieures. Il ne dispose pas
encore de la prise en charge des fonctions 3D, mais cela devrait changer rapidement au
vu de l’ouverture des spécifications des cartes ATI/AMD. Ces pilotes sont, en juillet
2008, en cours de développement.
Linux Livre Page 373 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 373

• fglrx. Pilote propriétaire pour les modèles Radeon à partir du R300. Il prend en charge tou-
tes les fonctions des cartes graphiques actuelles, mais pas celles des cartes plus anciennes.
Le pilote radeon fonctionne convenablement avec les cartes R100 à R400 (voir man radeon),
mais il ne prend pas forcément en charge toutes les fonctions des cartes graphiques et est
sensiblement plus lent que fglrx. J’ai personnellement testé les deux pilotes sur mon porta-
ble doté d’une carte ATI Mobility T2 (famille R300). Depuis X.org version 7.2, radeon suffit à
mes besoins : la sortie DVI fonctionne jusqu’à une résolution 1600x1200 dans scintillement
et les fonctions 3D permettent l’utilisation du bureau 3D AIGLX.

Le nom de la carte graphique n’indique pas quel processeur graphique est utilisé. La page Wikipedia sui-
vante s’avère souvent utile :
http://en.wikipedia.org/wiki/Comparison_of_ATI_Graphics_Processing_Units.

Pilote radeon
Le pilote radeon fait partie du système X.org ; il n’est pas nécessaire de l’installer séparément.
La configuration xorg.conf minimale se compose des lignes suivantes :
Section "Device"
Identifier "Device0"
Driver "radeon"
EndSection

man radeon fournit une référence complète des diverses options associées au pilote.

Pilote fglrx
Seules quelques distributions fournissent directement le pilote fglrx. Cependant, il existe
souvent des dépôts qui contiennent des paquetages pour le pilote correspondant au noyau
courant. L’installation est alors un jeu d’enfant : le pilote est installé avec les commandes
habituelles du gestionnaire de paquetages, une fois le dépôt ajouté.
Pour activer le pilote, lancez la commande aticonfig --initial. Elle modifie xorg.conf
pour qu’il contienne une référence au pilote fglrx :
Section "Device"
Identifier "Device0"
Driver "fglrx"
EndSection

aticonfig permet également de mettre en place des configurations plus avancées, par
exemple pour utiliser plusieurs moniteurs (aticonfig --initial=dual).
La nouvelle configuration xorg.conf n’est fonctionnelle que lorsque vous redémarrez X.
Pour que les fonctions 3D de la carte soient effectivement utilisées, il faut que les conditions
suivantes soient remplies :
• xorg.conf doit contenir l’instruction Load "dri" dans la section Modules.
Linux Livre Page 374 Mardi, 23. septembre 2008 1:05 13

374 LINUX

• L’extension Composite doit être désactivée explicitement :


Section "Extensions"
Option "Composite" "Disable"
EndSection

• Le module du noyau fglrx doit être chargé, ce dont se charge normalement le serveur X
au démarrage. Pour savoir si ce module est effectivement actif, le plus simple est de lan-
cer lsmod |grep fglrx. S’il n’est pas chargé, il n’est probablement pas installé ou incom-
patible avec la version courante du noyau.
Installation Si votre distribution ne dispose pas de paquetages pour les pilotes, vous devez les installer
manuelle
manuellement. Pour cela, installez tous les programmes nécessaires à la compilation d’un
module du noyau (compilateur C, make, fichiers d’en-têtes du noyau, etc.). Téléchargez
ensuite le pilote à la page http://ati.amd.com/support/driver.html, rendez le fichier télé-
chargé exécutable avec chmod u+x et lancez-le en root.

Pilote radeonhd
Le pilote radeonhd est fourni dans certaines distributions et il suffit alors de l’installer. Les
pages http://wiki.x.org/wiki/radeonhd et http://www.radeonhd.org/ fournissent des infor-
mations à jour sur le statut de ce pilote.

22.6 Pilotes Intel


Le pilote libre i810 est compatible avec tous les processeurs Intel i8nn et i9nn. Le pilote
intel, disponible depuis le printemps 2007, fonctionne avec quelques processeurs plus
récents (G33, Q33, Q35).
Les deux pilotes font officiellement partie de X ; il n’est donc pas nécessaire de les installer
en sus. Ils prennent en charge les fonctions 3D. Les performances de ces dernières ne sont
certes pas comparables avec celles des cartes ATI et NVIDIA actuelles, mais elles sont
amplement suffisantes pour utiliser les effets 3D du bureau. man i810, man intel et la page
http://intellinuxgraphics.org/man.html fournissent de plus amples informations sur ces
pilotes.
Configuration Dans la plupart des cas, la section Device ne nécessite pas d’option spécifique. Il faut néan-
moins indiquer une exception lorsqu’un ordinateur portable est utilisé avec un vidéoprojec-
teur ou lorsque deux moniteurs sont utilisés en même temps. Vous trouverez plus
d’informations à ce sujet dans la page de manuel du pilote et à la section 22.11.
Modifier la Les processeurs graphiques Intel prennent en charge peu de résolutions par défaut. En par-
résolution de
l’écran ticulier, les écrans larges (résolutions 1280x800, 1440x1050, etc.) manquent souvent. Pour
utiliser de telles résolutions, le Bios du processeur graphique doit être modifié. Le pilote
intel actuel reconnaît ces résolutions, mais ce n’est pas le cas du pilote i810, plus ancien.
La commande 915resolution peut aider à résoudre les problèmes liés au pilote i810 pour
les distributions qui ne fournissent pas encore intel. La page web de ce projet se trouve à
l’adresse http://www.geocities.com/stomljen/.
Linux Livre Page 375 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 375

22.7 Pilotes NVIDIA


Les utilisateurs de cartes NVIDIA ont le choix entre les pilotes suivants :
• nv est le pilote libre intégré à X, utilisable pour tous les modèles courants. Il ne prend
pas en charge la 3D et souffre de plusieurs restrictions en ce qui concerne le mode multi-
écrans, l’utilisation de la sortie TV, etc. Si vous n’avez pas besoin de ces fonctionnalités,
nv fonctionne sans problème et de manière efficace.
• nvidia est le pilote propriétaire de NVIDIA prenant en charge presque toutes les fonctions.
Il est disponible à l’adresse http://www.nvidia.com/Download/index.aspx.
• nouveau est un pilote libre plus récent prenant en charge la 3D. Il n’en est cependant
qu’aux débuts de son développement. Vous trouverez plus d’informations à son sujet à
l’adresse http://nouveau.freedesktop.org/wiki/.

Pilote nv
Le pilote nv fait partie du système X.org et ne nécessite pas d’installation supplémentaire.
La configuration minimale contient les lignes suivantes :
Section "Device"
Identifier "Device0"
Driver "nv"
EndSection

man nv fournit une référence des options et des fonctions spéciales du pilote.

Pilote nvidia
Seules quelques distributions fournissent directement le pilote nvidia. Il existe cependant
souvent des dépôts contenant des paquetages pour le pilote correspondant au noyau courant.
L’installation est alors un jeu d’enfant : le pilote est installé avec les commandes habituelles
du gestionnaire de paquetages, une fois le dépôt ajouté.
La documentation du pilote NVIDIA est très complète et se trouve normalement dans un
des répertoires /usr/share/doc/xorg-x11-drv-nvidia* ou /usr/share/doc/NVIDIA*.
xorg.conf Pour activer le pilote, lancez la commande nvidia-xconfig en root. Celle-ci modifie
xorg.conf pour faire référence au pilote dans la section Device :
Section "Device"
Identifier "Device0"
Driver "nvidia"
EndSection

Selon l’emplacement où a été installé le pilote NVIDIA, la section Files doit également
contenir une ligne ModulePath :
Section "Files"
ModulePath "/usr/lib[64]/xorg/modules/extensions/nvidia"
...
EndSection
Linux Livre Page 376 Mardi, 23. septembre 2008 1:05 13

376 LINUX

Le pilote NVIDIA est incompatible avec l’extension DRI de X.org et effectue les opérations
correspondantes lui-même. Il faut donc supprimer la ligne Load "dri" de la section Module.
Le programme graphique nvidia-settings permet, une fois le pilote NVIDIA installé, de
configurer plus finement l’affichage.
Module du Il est impératif de disposer du module du noyau nvidia pour que le pilote fonctionne. S’il
noyau
est absent ou compilé pour une version différente du noyau, le pilote ne fonctionne pas et X
ne peut pas être démarré.
TwinView Le mode TwinView est une alternative intéressante à Xinerama. Il présente l’avantage
de pouvoir faire fonctionner toutes les fonctions 3D en parallèle sur les deux écrans. De
plus, la configuration est relativement simple. L’inconvénient est que certains gestion-
naires de bureau ou de fenêtre présentent dans ce cas des problèmes de positionnement
de fenêtres. Vous trouverez plus d’informations à ce sujet à l’adresse
http://memoire-grise-liberee.fr.eu.org/nVidia/support/TwinView/.
Installation Si votre distribution ne fournit pas de paquetages pour les pilotes ou si ceux-ci ne sont pas à
manuelle
jour, vous devez installer le pilote et compiler le module du noyau nvidia vous-même. Ins-
tallez d’abord les paquetages nécessaires à cette compilation (compilateur C, make, fichiers
d’en-têtes du noyau, etc.).
Sous Ubuntu, assurez-vous que les modules nvidia-glx et linux-restricted-modules ne sont
pas installés et que le fichier /etc/init.d/nvidia-glx n’existe pas. La désinstallation du paque-
tage linux-restricted-modules présente l’inconvénient de supprimer tous les paquetages non
GPL, y compris ceux dont vous avez éventuellement besoin, par exemple pour votre carte Wi-Fi.
Téléchargez le pilote à l’adresse http://www.nvidia.com/Download/index.aspx. Arrêtez X
avec init 3 ou /etc/init.d/gdm stop (selon votre distribution), puis lancez le programme
d’installation en tant que root.
Pour désinstaller le pilote, lancez la commande :
root# nvidia-installer --uninstall

22.8 Pilotes VESA, Framebuffer et VGA


Si vous utilisez une carte graphique pour laquelle il n’existe pas (encore) de pilote, les trois
pilotes suivants peuvent servir de solution d’urgence. L’affichage est plutôt lent et les fonctions
3D inexistantes, mais ils permettent au moins d’utiliser un système graphique.
Pilote VESA Vous pouvez utiliser tous les modes VESA de votre carte graphique. Ces modes sont des
résolutions standardisées. Chacun est défini par trois caractéristiques : la résolution, la pro-
fondeur de couleurs et la fréquence d’image. Presque toutes les cartes graphiques comprennent,
en plus de leurs propres modes, quelques modes VESA.
Les lignes suivantes montrent que l’utilisation du pilote VESA est très simple. Si le reste du
fichier de configuration est correct, tous les modes VESA compris par la carte et par l’écran
sont pris en charge.
Section "Device"
Identifier "myDevice"
Driver "vesa"
EndSection
Linux Livre Page 377 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 377


Pilote Le pilote fbdev accède directement à la mémoire de la carte graphique. Il se situe donc à un
Framebuffer
niveau encore plus bas que le pilote VESA. Il devrait fonctionner avec presque toutes les car-
tes graphiques si le noyau Linux est compilé avec la prise en charge de cette opération. C’est
le cas si le fichier /proc/fb existe.
Un prérequis pour utiliser ce pilote est que le mode VGA correct soit choisi au moment de
l’amorçage de l’ordinateur. Jusqu’au redémarrage de l’ordinateur, X ne peut utiliser que ce
mode graphique. Pour choisir un mode, passez l’option vga=n au noyau (voir Chapitre 24).
La valeur correcte de n se trouve dans le tableau suivant.

6402400 6402480 8002600 10242640 10242768 11522720 128021024 14402900 160021200

8 bpp 768 769 771 874 773 869 775 864 796
16bpp (5:5:5) 797 784 787 875 790 870 793 865 797
16bpp (5:6:5) 798 785 788 876 791 871 794 866 798
24bpp 799 786 789 877 792 872 795 867 799
32bpp 834 809 814 878 824 873 829 868 834

Vous devez indiquer la bonne chaîne de caractères pour la ligne Driver de la section Device :
Section "Device"
Identifier "myDevice"
Driver "fbdev"
EndSection

Pilote VGA Le pilote VGA ne peut afficher que 640x480 ou 800x600 pixels en 4 bits (soit 16 couleurs) ; il
est donc la dernière solution envisageable. Vous trouverez plus de détails avec man vga.

22.9 Clavier
Configuration de base
Il existe deux mécanismes de configuration d’un clavier sous X : Xmodmap et Xkb. Ils permet-
tent de modifier la disposition du clavier et les touches d’état comme Ctrl, les raccourcis clavier,
etc.
Xmodmap est considéré comme obsolète et devrait être remplacé par Xkb. En pratique, vous
utiliserez probablement un mélange des deux :
• La disposition du clavier est configurée dans xorg.conf avec Xkb.
• Pendant le démarrage, le gestionnaire d’affichage lit les fichiers Xmodmap et Xkbmap locaux
et globaux. En général, les fichiers suivants sont pris en compte (lorsqu’ils existent) :
– /etc/X11/Xkbmap ;
– ~/.Xkbmap ;
– /etc/X11/Xmodmap (uniquement lorsqu’il n’y a pas de fichier Xkbmap) ;
– ~/.Xmodmap (uniquement lorsqu’il n’y a pas de fichier Xkbmap).
Linux Livre Page 378 Mardi, 23. septembre 2008 1:05 13

378 LINUX

Selon la distribution, certaines divergences peuvent apparaître. La syntaxe des fichiers


Xkbmap et Xmodmap est différente : Xkbmap est directement redirigé vers setxkbmap et
contient une seule ligne d’options pour cette commande (voir man xkbmap), tandis que
Xmodmap contient plusieurs instructions (voir man xmodmap).
• Pour finir, KDE et Gnome permettent de modifier la configuration du clavier ; Xkb est
alors à nouveau utilisé.
La large diffusion des fichiers Xmodmap provient des innombrables pages Internet qui docu-
mentent Xmodmap. À l’inverse, Xkb a peu de documentation en ligne. L’utilisation en parallèle
de ces deux systèmes peut cependant mener à des incompatibilités.
Si vous désirez modifier vous-même la configuration de votre clavier, il est préférable de le
faire dans xorg.conf ou dans les boîtes de configuration de KDE ou de Gnome. Si ces solu-
tions ne vous conviennent pas, vous pouvez toujours modifier directement les fichiers
~/.Xmodmap ou ~/.Xkbmap.
xorg.conf La configuration de base du clavier se trouve dans une section InputDevice du fichier
xorg.conf. Cette configuration minimale est utilisée pour un clavier US de 101 touches :
Section "InputDevice"
Identifier "myKeyboard"
Driver "Keyboard"
EndSection

Ce second exemple définit un clavier français de 105 touches :


Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
EndSection

Lorsque vous configurez vous-même votre clavier, sans passer par un programme de confi-
guration, vous vous heurtez à l’énorme quantité d’options et de paramètres, souvent insuf-
fisamment documentés (voir man 4 keyboard ou man kbd). Voici quelques éléments pour
régler les principales options :
• XkbRules définit comment les options suivantes sont exploitées. En général, la bonne
valeur est xorg ; les claviers PC-98 sont une exception pour laquelle il faut saisir la
valeur xfree98.
• XkbModel décrit le clavier.
– pc101 : clavier US sans touches Windows (valeur par défaut).
– pc102 : clavier international sans touches Windows.
– pc104 : clavier US avec touches Windows.
– pc105 : clavier international avec touches Windows.
– abnt2 : clavier brésilien.
– jp106 : clavier japonais.
– pc98 : clavier PC-98.
Linux Livre Page 379 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 379

– macintosh : clavier Apple Macintosh.


– powerpcps2 : un clavier Apple Power PC.
• XkbLayout décrit la disposition des touches sur le clavier, qui dépend du pays.
– us : clavier anglais US (valeur par défaut).
– fr : clavier français.
– be : clavier belge.
– ch : clavier suisse.
– de : clavier allemand.
– it : clavier italien.
– es : clavier espagnol.
• XkbVariant permet d’ajouter des paramètres à la disposition du clavier. Elle définit, par
exemple, le comportement nodeadkeys qui permet de saisir directement les caractères ~, ^, ’
et `. Par défaut, ils sont utilisés comme caractères de composition pour les caractères
accentués. Elle sert aussi à définir des variantes dans une disposition de clavier : le clavier
suisse se décline avec des valeurs de XkbVariant fr ou de.
• XkbOptions passe des options supplémentaires qui sont transmises à setxkbmap
-option.
Gnome et KDE Sous KDE, vous pouvez modifier la disposition du clavier dans la configuration du système
(Régional & langue, Disposition du clavier). Sous Gnome, l’applet Indicateur de claviers
permet d’atteindre un résultat similaire. Ces outils permettent de passer rapidement d’une
disposition de clavier à une autre, par exemple pour saisir du texte en plusieurs langues. Si
la modification du clavier dans xorg.conf reste sans effet, cela provient probablement de la
configuration clavier du bureau.
Indépendamment de la configuration du clavier, les deux gestionnaires de bureau permet-
tent d’associer des raccourcis clavier à des actions, par exemple pour lancer rapidement des
programmes fréquemment utilisés.
Claviers avec De plus en plus de claviers ont des touches rapides, par exemple pour démarrer un navi-
touches
spéciales gateur Internet ou définir des fonctions bureautiques ou multimédias. Pour les utiliser
sous Linux, vous devez installer le programme LinEAK (Linux support for Easy Access and
Internet Keyboards), fourni par de nombreuses distributions dans divers paquetages nom-
més lineak*. La configuration de LinEAK est décrite dans man lineakd et sur le site web
http://lineak.sourceforge.net/.

VerrNum et VerrMaj
VerrNum Par défaut, le pavé numérique n’est pas actif sous Linux, afin d’éviter des problèmes avec
les claviers de portables. Si vous travaillez avec un "vrai" clavier, ce pavé peut être utilisé
pour déplacer le curseur. La touche VerrNum permet de l’utiliser pour saisir des chiffres.
Sous KDE, vous pouvez activer VerrNum de manière permanente dans le module Clavier &
Souris, Clavier.
Linux Livre Page 380 Mardi, 23. septembre 2008 1:05 13

380 LINUX

Si vous utilisez un autre gestionnaire de bureau, lancez la commande numlockx. Dans de


nombreuses distributions, elle se trouve dans le paquetage du même nom. Une fois ce dernier
installé, VerrNum est activé automatiquement lors de la connexion suivante.
VerrMaj Si vous activez sans cesse par mégarde le verrouillage des majuscules, vous pouvez désactiver
la touche en ajoutant ces lignes à ~/.Xmodmap. VerrMaj fonctionne alors comme Maj.
remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L
add Shift = Shift_L

Je n’ai pas trouvé comment obtenir le même comportement avec Xkbmap. Le fichier ~/.Xkbmap
s’assure, en revanche, que VerrMaj peut être utilisé comme une troisième touche Ctrl :
-option ctrl:nocaps

Vous pouvez aussi passer cette option dans la section InputDevice de xorg.conf :
Option "XkbOptions" "ctrl:nocaps"

Saisie de caractères étrangers


Il existe plusieurs méthodes sous X pour saisir des caractères étrangers qui ne sont pas
directement disponibles sur le clavier :
• La touche Compose réunit deux caractères. Par exemple, Compose+A+E saisit le carac-
tère æ.
• Selon la configuration, les caractères ~, ^, ’ ou ` sont combinés automatiquement avec le
caractère suivant. ~+A saisit le caractère ã. Ce mode est souvent désactivé avec l’option
nodeadkeys dans /etc/X11/xorg.conf.
• Certaines applications ou gestionnaires de bureau (Gnome, KDE et OpenOffice.org par
exemple) proposent une boîte de dialogue de caractères spéciaux, qui permet de choisir
le caractère souhaité à la souris.
Touche Les combinaisons de touches définies par la touche Compose, et même l’existence d’une
Compose
telle touche dépendent de la distribution. La définition de cette touche était auparavant
courante, mais la plupart des distributions l’ont aujourd’hui abandonnée.
Le plus simple est de définir les combinaisons de touches avec xmodmap. Dans les résultats
présentés ici, la première colonne indique le code de la touche, la deuxième la touche sans
modificateur Maj et la troisième la touche avec le modificateur Maj. Si xmodmap ne renvoie
pas de résultat, aucune touche Compose n’est définie.
Le résultat suivant signifie que les trois combinaisons de touche Maj+AltGr, Maj+Ctrl droit
et Maj+Windows droit fonctionnent comme une touche Compose.
utilisateur$ xmodmap -pk | grep -i multi_key
KeyCode Keysym (Keysym) ... (Shift)
109 0xffe4 (Control_R) 0xff20 (Multi_key)
113 0xfe03 (ISO_Level3_Shift) 0xff20 (Multi_key)
116 0xffec (Super_R) 0xff20 (Multi_key)

Le tableau suivant indique les codes de touches pour les touches de contrôle importantes
sur un clavier international de PC.
Linux Livre Page 381 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 381

Codes de touches pour les touches de contrôle (clavier international de PC)


s^ 50 sS 63
c^ 37 cS 109
X^ 115 XS 116
a^ 64 bS 113
l 66 X 117

Si aucune touche Compose n’est prévue dans votre distribution, vous pouvez en définir une
simplement :
• Sous Gnome, lancez gnome-keyboard-properties (Système > Préférences > Clavier),
cliquez sur le bouton Options de l’agencement de l’onglet Agencements, puis choisissez
une option dans le groupe Position de la touche Compose. Malheureusement, les choix
sont limités et ne permettent pas de définir une combinaison de touches.
• KDE dispose d’une configuration similaire, dans le module Régional & Langue > Cla-
vier > Disposition du clavier. L’onglet Avancé permet de définir la position de la tou-
che Compose.
• Indépendamment du bureau, ajoutez dans ~/.Xkbmap l’une de ces options :
– -option compose:menu pour la touche Windows de menu contextuel ;
– -option compose:rwin pour la touche Windows droit qui n’est pas disponible sur tous
les claviers ;
– -option compose:caps pour la touche VerrMaj.
Vous pouvez aussi saisir cette ligne dans xorg.conf :
Option "XkbOptions" "compose:menu"

Le tableau suivant recense quelques exemples de saisie de caractères spéciaux. La définition


des règles de composition se trouve dans le fichier /usr/share/X11/locale/
jeu_de_caractères/Compose.

Exemples d’utilisation de la touche Compose


Compose+"+a ä Compose+a+e æ
Compose+`+a à Compose+<+< «
Compose+`+a
´ á Compose+>+> »
Compose+~+a ã Compose+!+! ¡
Compose+o+a å Compose+c+! ©

Euro et Cent Dans toutes les distributions, pour une disposition française, AltGr+E est associé au sym-
bole Euro. De même, AltGr+C affiche le symbole Cent.
Linux Livre Page 382 Mardi, 23. septembre 2008 1:05 13

382 LINUX

22.10 Souris et pavé tactile


xorg.conf À l’instar du clavier, la souris est configurée dans une section InputDevice. Celle-ci est
optionnelle. Lorsqu’elle est absente, X tente de déterminer lui-même une configuration
correcte. Ces lignes illustrent une configuration minimale :
Section "InputDevice"
Identifier "myMouse"
Driver "mouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mice"
EndSection

La configuration de la souris fait appel aux mots clés suivants :


• Protocol définit le protocole de communication entre la souris et l’ordinateur. Voici les
différents protocoles :
– Auto demande à X de détecter le protocole automatiquement.
– ExplorerPS/2 est une souris à molette PS/2.
– IMPS/2 est une souris à molette PS/2 compatible Microsoft.
– IntelliMouse est une souris à molette série compatible Microsoft.
– PS/2 est une souris classique PS/2.
– usb est une souris USB.
• Device définit comment la souris est connectée à l’ordinateur. Les valeurs habituelles de
ce paramètre sont /dev/input/mousen ou /dev/input/mice, ce qui, dans le second cas,
permet d’utiliser toutes les souris et pavés tactiles connectés en parallèle.
• Buttons indique combien de boutons a la souris. Par défaut, X suppose que la souris en
a trois. Attention, la molette est considérée comme deux boutons. Pour une souris avec
trois boutons et une molette, il faut donc en compter cinq.
• ZAxisMapping indique quels boutons virtuels doivent être associés à une molette. Quand
vous déplacez la molette dans un sens, X détecte un appui sur un bouton. Quand vous
la déplacez dans l’autre sens, X détecte un appui sur un autre bouton.
Les lignes suivantes fournissent la configuration d’une souris à molette typique. Elle n’a
que deux boutons mais, comme la molette peut elle-même être utilisée comme bouton,
elle est considérée comme une souris à trois boutons. Les directions de la molette sont
associées aux boutons virtuels 4 et 5.
Option Buttons 5
Option "ZAxisMapping" "4 5"

• Emulate3Buttons permet d’émuler le comportement d’un troisième bouton par un clic


simultané sur les boutons droit et gauche. Il s’agit d’une solution d’urgence, mais cela
peut aider à travailler sous X avec une souris à deux boutons. Emulate3Timeout indique
une durée en millisecondes pendant laquelle l’utilisateur doit appuyer sur les deux bou-
tons. Si cette durée est trop courte, l’appui presque simultané sur les deux boutons est
compté comme deux clics différents. Si elle est trop longue, elle interfère avec les clics
Linux Livre Page 383 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 383

usuels (car X ne sait pas ce qu’il doit faire du clic en attendant un éventuel second). Les
paramètres pour ces options sont :
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"

Pavé tactile
Presque tous les ordinateurs portables actuels disposent d’un pavé tactile (touchpad)
Synaptics ou d’un composant compatible. À la base, le protocole de ce périphérique
émule une souris standard, de sorte qu’un pilote spécial ne soit pas nécessaire. Pour
utiliser diverses fonctions supplémentaires du pavé tactile, il existe cependant un pilote,
installé par défaut dans la plupart des distributions et généralement configuré auto-
matiquement. Vous trouverez plus d’informations sur synaptics à l’adresse
http://web.telia.com/~u89404340/touchpad/.
xorg.conf La configuration dans xorg.conf ressemble généralement à celle-ci :
Section "InputDevice"
Identifier "Synaptics"
Driver "synaptics"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "yes"
EndSection

L’option Emulate3Buttons est nécessaire, car la plupart des modèles de pavé tactile n’ont pas
de troisième bouton. Des options supplémentaires (voir man synaptics) permettent d’acti-
ver toutes les autres fonctions. Pour désactiver complètement le pavé tactile (lorsque vous
travaillez avec une souris externe), remplacez la section Synaptics par une section pour la
souris, ou utilisez l’option "TouchpadOff" "1".
synclient L’option "SHMConfig" "on" permet de modifier les paramètres du pavé tactile sans redémar-
rage de X. Pour cela, installez la commande synclient ou l’interface graphique gsynaptics
(Gnome). synclient nom=valeur modifie l’option indiquée. synclient -l affiche les para-
mètres courants et synclient -m 100 l’état courant du pavé tactile toutes les 100 ms.

22.11 Portable et vidéoprojecteur


Quiconque a déjà fait une présentation sous Linux avec un portable connaît la sensation de se
demander si la synchronisation de l’image avec un vidéoprojecteur va fonctionner. Et si l’écran
reste noir, reste-t-il assez de temps pour modifier xorg.conf, afin de faire coopérer la carte gra-
phique et le vidéoprojecteur ? Ou vaut-il mieux lancer Windows pour mener à bien la confé-
rence ? Grâce à OpenOffice.org, ce n’est pas un problème, mais vous risquez de ne pas faire
bonne impression en tenant une conférence sur Linux avec une présentation sous Windows...
Il est bien sûr possible de faire cette présentation sous Linux : dans 99 % des cas, les combi-
naisons ordinateur A, vidéoprojecteur B et distribution Linux C fonctionnent. Mais il faut en
Linux Livre Page 384 Mardi, 23. septembre 2008 1:05 13

384 LINUX

passer par une configuration manuelle, ce qui demande des compétences techniques, du temps
et de la patience. Le quart d’heure précédant votre présentation risque de ne pas suffire.
Règles de Passons d’abord en revue quelques règles de survie :
survie
• Connectez votre portable au vidéoprojecteur avant de l’allumer. En général, l’écran
interne du portable est alors désactivé et la sortie de signal est activée. Avec un peu de
chance, le gestionnaire d’amorçage, les messages InitV et X apparaissent directement
sur le vidéoprojecteur. Vous pouvez alors paramétrer KDE ou Gnome, afin d’utiliser la
résolution optimale du projecteur (généralement 1024x768).
• Certains portables permettent d’activer explicitement la sortie de signal dans le Bios − la
sortie n’est normalement activée que lorsqu’un moniteur externe ou un vidéoprojecteur
est connecté.
• Testez la sortie vidéo de votre portable chez vous avec un autre écran. Vous n’avez
aucune garantie que le projecteur fonctionnera exactement comme votre moniteur, mais
ce test est un premier indicateur d’éventuels problèmes.
• Pendant que vous testez et configurez votre portable, il est préférable de supprimer le
démarrage automatique de X. Passez en niveau d’exécution 3 (init 3) ou arrêtez le ges-
tionnaire d’affichage. Pour tester vos modifications, lancez startx.

Que faire lorsque le vidéoprojecteur ou le moniteur externe n’ont pas d’image lisible, et que l’écran du por-
table est également noir ? Vous pouvez alors essayer de travailler en mode console, ce qui permet de modi-
fier xorg.conf ou au moins d’éteindre proprement l’ordinateur. Si cela ne fonctionne pas, la seule
solution consiste à redémarrer l’ordinateur en aveugle. Tapez d’abord Ctrl+Alt+Retour Arrière pour terminer
X si celui-ci fonctionne encore puis, avant le redémarrage de X, Ctrl+Alt+Suppr pour redémarrer l’ordina-
teur.

Configuration Pour régler les problèmes de vidéoprojecteur, commencez par définir une résolution fixe de
minimale
1024 × 768 dans une fréquence horizontale réduite (de l’ordre de 53 kHz) et une fréquence
verticale d’environ 60 Hz. Ces données devraient fonctionner avec la plupart des vidéopro-
jecteurs, y compris les modèles plus anciens. Le fichier de configuration qui suit montre les
modifications à faire en gras.
# /etc/X11/xorg.conf
...
Section "Monitor"
...
HorizSync 31.5 - 53
VertRefresh 57-63
EndSection
...
Section "Screen"
...
DefaultDepth 24
SubSection "Display"
...
Modes "1024x768"
EndSubSection
EndSection
Linux Livre Page 385 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 385

Cette configuration ne garantit certes pas que le vidéoprojecteur fonctionnera après le redé-
marrage de X, mais la probabilité est largement améliorée.

Si vous testez cette configuration sur un écran normal, il arrive que la fréquence d’image ne soit pas de
60 Hz, mais bien plus haute, en contradiction avec la configuration définie. Cela provient du fait que la plu-
part des moniteurs envoient leurs données de configuration via DDC (Display Data Channel, canal de don-
nées d’affichage) à la carte graphique. Ces données ont priorité sur xorg.conf. Certains pilotes
permettent de désactiver explicitement DDC dans la section Device.

Configurations Pour les présentations, il est encore plus confortable d’utiliser une configuration multi-
multi-écrans
écrans, dans laquelle l’écran du portable et le vidéoprojecteur sont utilisés indépendam-
ment l’un de l’autre. Vous pouvez alors afficher des notes sur votre portable, tandis que
seule votre présentation est visible sur le vidéoprojecteur − selon mon expérience, Open-
Office.org a cependant souvent des problèmes à trouver l’écran correct pour afficher la pré-
sentation en mode plein écran.
Les lignes suivantes illustrent des extraits de xorg.conf dans ce type de configuration.
Attention, les options de la section Device dépendent de la carte graphique ! Cet exemple
utilise le pilote i810.
Les autres sections de l’exemple peuvent cependant être utilisées pour toutes les configura-
tions multi-écrans : vous devez définir pour chaque écran une section Monitor et une section
Device, puis les assembler dans la section Screen. La section ServerLayout indique la position
relative des deux écrans. Vous devez aussi utiliser l’option Xinerama.
# /etc/X11/xorg.conf
# Configuration multi-écrans pour un portable avec carte graphique Intel
Section "InputDevice"
Identifier "Keyboard0"
...
EndSection
Section "InputDevice"
Identifier "Synaptics"
...
EndSection
# deux sections Monitor pour l’écran du portable et le vidéoprojecteur
Section "Monitor"
# moniteur du portable, 1280x800
# xorg récupère lui-même les données nécessaires
Identifier "Monitor0"
EndSection
Section "Monitor"
# vidéoprojecteur en 1024x768, 60 Hz
Identifier "Monitor1"
HorizSync 31.5 - 50.0
VertRefresh 58.0 - 62.0
EndSection
# deux sections Device, une par écran
Linux Livre Page 386 Mardi, 23. septembre 2008 1:05 13

386 LINUX

Section "Device"
# périphérique pour l’écran du portable
Identifier "Videocard1a"
Driver "i810"
BusID "PCI:0:2:0"
Screen 0
Option "MonitorLayout" "CRT,LFP"
EndSection
Section "Device"
# périphérique pour la sortie externe (vidéoprojecteur)
Identifier "Videocard1b"
Driver "i810"
BusID "PCI:0:2:0"
Screen 1
Option "MonitorLayout" "CRT,LFP"
EndSection
# deux sections Screen qui associent chaque Device à son moniteur
Section "Screen"
# configuration pour l’écran interne pour la disposition 1
Identifier "Screen1a"
Device "Videocard1a"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
# configuration de la sortie pour la disposition 1
Identifier "Screen1b"
Device "Videocard1b"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
# section ServerLayout qui associe les deux sections Screen
Section "ServerLayout"
# même image sur l’écran et sur le projecteur
Identifier "Layout1"
Screen 0 "Screen1a" LeftOf "Screen1b"
Screen 1 "Screen1b"
Option "Xinerama" "on"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Synaptics" "CorePointer"
EndSection
# cette disposition est active
Section "ServerFlags"
# seulement l’écran
# Option "DefaultServerLayout" "Layout0"
# écran et projecteur en multi-écrans
Option "DefaultServerLayout" "Layout1"
EndSection
Linux Livre Page 387 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 387

22.12 Graphismes 3D
Les graphismes 3D sous Linux végétaient auparavant dans l’ombre. D’une part, en dehors
de quelques économiseurs d’écran et jeux isolés, il existait peu d’applications 3D. D’autre
part, les graphismes 3D réclamaient l’utilisation de pilotes binaires. La situation des pilotes
s’est depuis améliorée et, à l’été 2006, une application majeure a vu le jour : il ne s’agit pas
d’un jeu, mais des effets 3D pour le bureau présentés pour la première fois par Novell dans
SUSE Enterprise Desktop 10. Les fonctions 3D de la carte sont utilisées pour déformer les
fenêtres lorsqu’on les déplace, pour projeter les bureaux sur un cube, etc. Toutes ses fonc-
tionnalités n’ont pas de réelle utilité, mais elles plaisent à de nombreux utilisateurs.
Cette section traite des bases des graphismes 3D sous Linux. La section suivante présente les
bureaux 3D et des astuces de configuration pour diverses combinaisons matériel/logiciel.

Les concepts afférents à la 3D sont bien expliqués sur les pages http://dri.freedesktop.org/wiki/Catego-
ryGlossary et http://jonsmirl.googlepages.com/graphics.html.
Vous trouverez plus d’informations sur la 3D sous Linux aux adresses http://dri.freedesktop.org/wiki/
et http://www.mesa3d.org.

OpenGL Les graphismes 3D sous Unix/Linux sont gérés par OpenGL. Il s’agit d’une bibliothèque
développée par SGI pour représenter des graphismes 3D, disponible sur presque tous les
ordinateurs Unix/Linux. La plupart des programmes et jeux 3D sous Linux sont basés sur
OpenGL.
Le code d’OpenGL n’était pas libre initialement (cela a depuis changé) ; c’est pourquoi la
bibliothèque libre Mesa a été développée. Celle-ci était au départ une solution purement
logicielle. Comme elle est trop lente pour de nombreux programmes et jeux, elle est généra-
lement associée sous X au module DRI.
DRI Le module DRI (Direct Rendering Interface, interface de rendu direct) permet d’utiliser les
fonctions 3D rapides de la carte graphique. Cela ne fonctionne que lorsque la carte prend en
charge de telles fonctions (ce qui est le cas de la plupart des modèles actuels) et qu’il existe
un pilote DRI pour la carte.
Les cartes actuelles dotées de processeurs ATI/AMD et NVIDIA ne peuvent être actuelle-
ment utilisées de manière optimale qu’en installant les pilotes binaires des fabricants. Ceux-
ci fonctionnent en général avec le module DRI de X. Le pilote NVIDIA est une exception : il
implémente lui-même les fonctions de DRI.
GLX Sous X, les fonctions OpenGL sont utilisées via la bibliothèque GLX. Cette dernière connecte
le système XWindow à OpenGL. GLX s’assure, par exemple, que les tâches OpenGL ne
s’occupent que des calculs touchant à une partie visible de la fenêtre sans collision avec
d’autres fenêtres. GLX est intégré à X par un module.
Bibliothèque La bibliothèque libGL est une connexion entre le module GLX et les programmes OpenGL.
libGL
Elle doit correspondre à l’implémentation OpenGL installée (DRI ou NVIDIA). /usr/lib/
libGL.* sont donc des liens vers les bibliothèques réelles.
Linux Livre Page 388 Mardi, 23. septembre 2008 1:05 13

388 LINUX

Le pilote NVIDIA installe ses propres versions des bibliothèques libGL. Les liens de /usr/
lib sont également modifiés. Vous pouvez les rétablir avec nvidia-installer --uninstall.
xorg.conf Il n’est pas nécessaire de configurer explicitement DRI dans xorg.conf, car les modules dri,
glx et dbe sont chargés par défaut − dbe évite les scintillements pendant la construction et le
changement d’images. Les lignes suivantes dans la section Module indiquent que ces modules
sont chargés :
Section "Module"
...
Load "dbe" # Double Buffering Extension
Load "dri" # Direct Rendering Infrastructure (ne pas utiliser avec
# NVIDIA !)
Load "glx" # GLX (Open GL for X)
EndSection
Droits d’accès Par défaut, seul root peut accéder directement au matériel graphique. L’accès aux fonctions
à DRI
DRI/GLX est donc restreint à root. Pour permettre à d’autres utilisateurs de bénéficier des
graphismes 3D, il faut ajouter deux options à xorg.conf. Dans les lignes suivantes, tous les
membres du groupe graphics ont accès aux graphismes 4D − vous devez bien sûr créer ce
groupe et associer des utilisateurs.
Section "DRI" # (n’est pas nécessaire lorsque le pilote nvidia est
# utilisé)
Group "graphics"
Mode 0660
EndSection

Ces deux options indiquent le groupe propriétaire et les droits d’accès au fichier /dev/dri/
card0. Ce périphérique sert à accéder à la carte graphique.
Le paramétrage suivant est plus libéral. Tous les utilisateurs peuvent alors utiliser les fonc-
tions DRI. Cela peut cependant représenter une faille de sécurité et n’est pas conseillé sur les
ordinateurs connectés directement à un réseau.
Section "DRI" # (n’est pas nécessaire lorsque le pilote NVIDIA est
# utilisé)
Mode 0666
EndSection

Certaines distributions donnent automatiquement les bons droits au fichier /dev/dri/card0


à l’utilisateur connecté au système graphique. Dans ce cas, vous pouvez vous passer de la
section DRI.
Tester les Le programme glxinfo permet de vérifier si tout a fonctionné. Il affiche de nombreuses
fonctions 3D
informations sur le système GLX. grep filtre les lignes importantes :
root# glxinfo |grep render
direct rendering: Yes
OpenGL renderer string: MOBILITY FIREGL T2 Pentium 4 (SSE2) (FireGL) (GNU_ICD)

Ces lignes signifient que le pilote DRI pour une carte graphique ATI (fglrx) fonctionne. Si ce
n’est pas le cas, la sortie ressemble à ceci :
root# glxinfo | grep render
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect
Linux Livre Page 389 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 389

Un autre test très visuel est le programme gears ou glxgears. Il fait partie des programmes
de démonstration de Mesa et doit éventuellement être installé à part (paquetage mesa-demos
ou mesa-utils). Si vous utilisez le pilote binaire ATI, vous pouvez aussi lancer le pro-
gramme fgl_glxgears.
glxgears montre dans une fenêtre trois engrenages qui tournent. Le shell qui a lancé
glxgears affiche toutes les cinq secondes le nombre d’images par seconde (FPS). Sur ma
machine de test (Intel Core 2 Duo 2,4 Ghz, carte graphique NVIDIA 7600-GS), j’ai obtenu
comme résultats en plein écran (1600x1200 points, couleurs 24 bit) 92 FPS avec le pilote nv
(sans fonctions 3D), et 395 FPS avec le pilote nvidia (avec les fonctions 3D).

22.13 Bureau 3D
Apple a été le précurseur de l’utilisation des fonctions 3D des cartes graphiques modernes
pour le bureau. Des fonctions élémentaires du bureau, comme le déplacement des fenêtres,
sont ainsi nettement plus rapides. Sun a également avancé dans ce sens avec son projet
Looking Glass, qui offre au bureau des fonctions 3D pour le rendre plus attrayant.
En 2006, SUSE a présenté SuSE Linux Enterprise Desktop avec des fonctions 3D. Depuis, la
plupart des grandes distributions Linux fournissent ces fonctions à leurs utilisateurs, pour
autant que la carte graphique et le pilote soient adaptés, et permettent généralement de
configurer cela en quelques clics.
Fonctions Pour ceux qui n’ont pas encore testé le bureau 3D, voici un bref aperçu des fonctions et gadgets
importants :
• Lorsqu’on déplace des fenêtres, leur forme est modifiée comme si elles étaient caoutchou-
teuses (voir Figure 22.1).
• Le passage entre les bureaux affiche ces derniers sur les faces d’un cube en 3D.
• L’apparition, la réduction, l’agrandissement et la fermeture des fenêtres et des menus
sont animés avec différents effets (transparence, etc.).
• Lorsqu’on change de fenêtre avec Alt+Tab, la fenêtre choisie passe en avant-plan.. À la
place d’une liste d’icônes, vous voyez le programme à activer (voir Figure 22.2).
• Vous pouvez aussi utiliser la fonction Scale pour changer de fenêtre. Celle-ci fonctionne
comme Exposé sous Mac OS X : toutes les fenêtres ouvertes sont réduites et s’affichent
les unes à côté des autres. Vous pouvez alors choisir avec la souris ou les touches du cur-
seur la fenêtre à activer. Cette fonction est souvent lancée avec les touches Pause,
Ctrl+Alt+Flèche haut, F8 ou F9 ou, selon la configuration, lorsque vous déplacez la
souris dans le coin en haut à droite de l’écran.
• La fonction Zoom permet d’agrandir une partie du bureau. Lorsque vous déplacez la
souris à la frontière de la section visible, la section se déplace sans ralentissement. Cette
fonction facilite la vie des malvoyants, mais permet aussi d’afficher des sites web mal
développés sur un grand moniteur à une taille décente.
Linux Livre Page 390 Mardi, 23. septembre 2008 1:05 13

390 LINUX

Figure 22.1
Déplacement d’une
fenêtre dans un bureau
3D.

Il est bien sûr légitime de s’interroger sur l’utilité de ces fonctions. Je les ai personnellement
désactivées après quelques jours. Le déplacement sans ralentissement des fenêtres est
agréable, mais seule la fonction Scale m’a réellement enthousiasmé.

Figure 22.2
Changement
de fenêtre.

Raccourcis La plupart des fonctions peuvent être configurées ou désactivées. En fait, les fonctions
clavier
disponibles dépendent largement de la distribution, tout comme les raccourcis clavier
suivants.
Linux Livre Page 391 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 391

Raccourcis utiles pour le gestionnaire de bureau 3D


a+t changement de fenêtre animé
p ou c+a+W changement de fenêtre animé (Scale/Exposé)
c+a+Z changement de bureau animé
c+a+S ^ tournoiement des bureaux (cube 3D)
X+Clic S zoom (variante 1)
X+Clic ^ zoom (variante 2)
S+0 changement de vitesse des effets 3D
G capture d’écran (y compris pendant une animation)

Prérequis Pour profiter de ces gadgets 3D, les prérequis suivants doivent être respectés :
• X doit permettre d’utiliser les fonctions 3D directement dans le gestionnaire de fenêtre
(et non, comme précédemment, uniquement à l’intérieur des fenêtres). Il existe pour
cela deux choix : AIGLX et XGL.
• Un pilote graphique compatible avec ces extensions ou les fournissant directement doit
être installé.
• Le gestionnaire de fenêtre doit utiliser les fonctions 3D en question. C’est, par exemple,
le cas du programme Compiz.
Attention, les effets 3D de la carte graphique ne fonctionnent que lorsque vous travaillez
avec un seul moniteur. Le pilote NVIDIA et son mode TwinView sont une exception : ils
permettent d’utiliser un bureau 3D sur deux moniteurs.
Le tableau suivant résume la compatibilité des différents pilotes avec AIGLX et XGL.

Prise en charge des pilotes (été 2008)

XGL AIGLX

radeon oui, pour autant que les fonctions 3D de la carte soient oui, pour autant que les fonctions 3D de la carte soient pri-
prises en charge par le pilote ses en charge par le pilote

fglrx oui oui, pour autant que le pilote soit au moins en version 8.42.3
et qu’une carte graphique compatible soit utilisée

radeonhd non (pas de prise en charge de la 3D) non (pas de prise en charge de la 3D)

i810, oui, mais nécessite un processeur i9xx au minimum oui


intel
nv non (pas de prise en charge de la 3D) non (pas de prise en charge de la 3D)

nvidia oui oui

nouveau non (prise en charge de la 3D limitée) non (prise en charge de la 3D limitée)


Linux Livre Page 392 Mardi, 23. septembre 2008 1:05 13

392 LINUX

Vous vous demandez peut-être s’il vaut mieux utiliser XGL ou AIGLX. De nombreux argu-
ments parlent en faveur d’AIGLX : il est plus efficace, demande moins de mémoire, est plus
répandu et compatible avec les jeux 3D. En pratique, vous ne verrez cependant pas de gran-
des différences entre XGL et AIGLX. Les effets 3D chargent peu la carte graphique ; une
différence de performances de quelques pour cent n’est donc pas pertinente. L’important est
que cela fonctionne !
L’approche pragmatique est sans doute la meilleure : mettez en place le système pris en
charge par votre distribution et votre carte graphique. Il vaut mieux éviter d’installer et de
configurer manuellement ces applications : il existe certes d’innombrables tutoriels pour
presque tous les cas particuliers, mais leur adaptation échoue souvent à cause d’une incom-
patibilité quelconque (par exemple, en raison de la parution d’une nouvelle version de votre
pilote graphique, de X ou de Compiz Fusion).
Nous nous concentrerons dans cette section sur AIGLX.

AIGLX
AIGLX signifie Accelerated Indirect GLX (GLX indirect accéléré). Les fonctions 3D sont
transmises au serveur X, qui les transmet à la carte graphique (d’où le terme "indirect").
Cette manière de faire implique donc peu de modifications dans l’architecture du ser-
veur X. AIGLX est en particulier utilisé par Red Hat/Fedora et par Ubuntu. Vous trou-
verez plus d’informations à son sujet sur les pages http://fr.wikipedia.org/wiki/AIGLX,
http://en.wikipedia.org/wiki/AIGLX et http://fedoraproject.org/wiki/RenderingProject/
aiglx.
xorg.conf AIGLX fait partie intégrante du serveur X depuis sa version 7.1. Vous ne devez donc rien
installer de plus. Il est automatiquement activé lorsque c’est possible. Le fichier de jour-
nalisation contient alors la ligne AIGLX enabled. Si ce n’est pas le cas, ajoutez cette ligne
dans xorg.conf :
Section "ServerFlags"
Option "AIGLX" "on"
EndSection

AIGLX suppose que l’extension Composite est activée, ce qui est normalement le cas lorsque
le serveur X est activé. grep COMPOSITE /var/log/Xorg.0.log doit normalement renvoyer le
résultat Initializing built-in extension COMPOSITE. Si ce n’est pas le cas, ajoutez cette ligne
dans xorg.conf :
Section "Extensions"
Option "Composite" "enable"
EndSection

Les points suivants conseillent des configurations pour utiliser AIGLX avec différents pilo-
tes graphiques. Nous tenons ici pour acquis que xorg.conf contient déjà toutes les options
nécessaires pour utiliser les fonctions 3D. glixinfo | grep render doit renvoyer Direct
rendering: Yes.
• radeon et AIGLX ne demandent aucune option supplémentaire.
Linux Livre Page 393 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 393

• i810/intel et AIGLX ne demandent aucune option supplémentaire.


• nvidia et AIGLX fonctionnent actuellement sans problème. La section Device doit contenir
la ligne :
Option "AddARGBGLXVisuals" "True"
Le pilote NVIDIA peut lui-même fournir les fonctions AIGLX et n’est donc pas dépendant
de l’implémentation AIGLX du serveur X.org.

Compiz Fusion
Le gestionnaire de fenêtre est responsable de la représentation des effets optiques. C’est à
cela que sert Compiz Fusion. Il provient de la fusion entre les projets Compiz et Beryl. Vous
ne le trouverez que dans les distributions répandues ; les plus anciennes utilisent majoritai-
rement Compiz, Beryl étant parfois proposé comme paquetage optionnel.
Compiz Fusion se compose d’un ensemble de programmes et de greffons.
compiz est le gestionnaire de fenêtre en soi. Il définit les fenêtres qui sont visibles, celle qui a
le focus, les effets qui sont appliqués à l’apparition, au redimensionnement ou à la fermeture
des fenêtres, ainsi que les raccourcis clavier qui peuvent être utilisés. Le code pour les
effets 3D n’est pas directement intégré à compiz, mais se trouve dans d’innombrables greffons
(/usr/lib[64]/compiz/libXxx.so).
gtk-window-decorator (dans les versions plus anciennes, gnome-window-decorator) affiche,
autour du contenu des fenêtres, les décorations, dont la barre de titre et quelques boutons.
Ce programme est compatible avec KDE, mais kde-window-decorator est plus souvent uti-
lisé sous KDE. Selon la version et la configuration, le programme emerald du projet Beryl
peut aussi être utilisé.
Attention, compiz et les programmes d’affichage de décorations, qui remplacent les compo-
sants correspondants de Gnome et de KDE, ne sont qu’en partie pris en compte. Cela peut
mener à une certaine confusion.
Vous trouverez plus d’informations sur Compiz Fusion et ses greffons à l’adresse
http://www.compiz-fusion.org/.
Configuration Pour la configuration de base de Compiz et de Compiz Fusion, les grosses distributions ont
développé certains outils de configuration :
Fedora, Red Hat desktop-effects
SUSE gnome-xgl-setting (utilisable aussi sous KDE)
Ubuntu gnome-appareance-properties (uniquement sous Gnome)
Avec ces trois programmes, vous ne pouvez régler que les fonctions de base du bureau 3D.
Il existe cependant beaucoup d’autres paramétrages (activation et configuration de greffons,
raccourcis, etc.). Pour configurer ces fonctions supplémentaires, vous devez installer compiz-
config-settings-manager (voir Figure 22.3).
Linux Livre Page 394 Mardi, 23. septembre 2008 1:05 13

394 LINUX

Figure 22.3
Configuration détaillée
de Compiz.

22.14 Polices
Les polices sous X se divisent en polices vectorielles (échelonnables) et en fontes bitmap
(prévues pour une taille fixe).
Jusqu’à il y a quelques années, X ne pouvait gérer que les fontes bitmap. Celles-ci ne sont
disponibles qu’en des tailles données et fixées à l’avance. Elles peuvent s’afficher à d’autres
tailles, mais sont alors "pixelisées".
freetype et type1 fournissent depuis, via le serveur de polices xfs, des polices libres vecto-
rielles (TrueType, Type-1). Les applications KDE et Gnome utilisent exclusivement ces poli-
ces. Les fontes bitmap ne jouent aujourd’hui qu’un rôle limité et ne sont utilisées que dans
certains programmes plus anciens (par exemple, xterm).
La différence historique entre ces deux jeux de caractères se retrouve aujourd’hui dans de
nombreuses commandes de gestion. Par exemple, fc-list renvoie la liste de toutes les poli-
ces vectorielles, tandis que xlsfonts renvoie celle de toutes les fontes bitmap.
Répertoire des Les fichiers de polices se trouvent généralement dans les sous-répertoires de /usr/share/
polices
fonts. Pour les polices bitmap, il existe un fichier pour chaque taille et attribut (par exemple
gras, italique). Pour les polices vectorielles, un fichier pour toutes les tailles suffit.
fonts.dir et Dans les répertoires de fontes bitmap, on trouve deux fichiers spéciaux : fonts.dir et
fonts.scale
fonts.scale. Ces derniers sont nécessaires pour les programmes X anciens qui n’utilisent
pas le système fontconfig. Ils contiennent des informations sur les noms et les tailles dispo-
nibles des fontes.
fc-list et La commande fc-list |sort affiche une liste de toutes les polices vectorielles. xlsfonts
xlsfonts
effectue la même opération pour les fontes bitmap. Le résultat est long et peu clair, car la
liste contient une ligne pour chaque taille de fonte et chaque jeu de caractères. xfontsel per-
met de chercher des fontes bitmap qui correspondent à vos critères de recherche.
Linux Livre Page 395 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 395


Noms des Les noms des fontes bitmap sont construits sur ce modèle :
fontes
-fonderie-famille-graisse-inclinaison-largeur-taille-espacement-codage

Ce qui donne, pour un exemple concret :


-adobe-helvetica-bold-o-normal--10-100-75-75-p-60-iso8859-1

• Il s’agit d’une fonte de l’entreprise Adobe.


• La famille de la police est Helvetica (qui est, comme Arial, une police sans serif).
• Il s’agit d’une fonte grasse (bold). Les autres possibilités comptent normal, medium,
black, extrabold.
• L’inclinaison de la fonte est o (oblique). D’autres options sont r (roman, non inclinée) et i
(italic, italique).
• La largeur de la fonte n’est pas indiquée. Certaines polices comprennent ici condensed,
extended, etc.
• La taille de la fonte est de 10 points.
• L’espacement de la police est p (proportional). D’autres possibilités sont c (character cell)
ou m (monospaced), qui signifient toutes deux que les caractères ont la même chasse. C’est
le cas, par exemple, de la famille de polices Courier.
• Les caractères sont codés en ISO-Latin 1. Ce codage contient la plupart des caractères
des langues d’Europe occidentale.
• Les nombres qui suivent représentent la résolution de la fonte, la largeur moyenne de la
police, etc.
gucharmap, Les programmes gucharmap et kcharselect affichent tous les caractères d’une police vecto-
xfd et
kcharselect rielle et permettent de copier des caractères individuels dans le presse-papiers (voir
Figure 22.4).

Figure 22.4
Représentation
de caractères spéciaux
dans gucharmap.
Linux Livre Page 396 Mardi, 23. septembre 2008 1:05 13

396 LINUX

Les caractères bitmap peuvent s’afficher avec xfd -fn ’nom_de_la_fonte’. nom_de_la_fonte
doit être le nom exact de la fonte en syntaxe. Le plus simple est d’utiliser une ligne de résultat
de xlsfonts comme paramètre.
Jeux de X est fourni avec tous les jeux de caractères imaginables, y compris Unicode. Cependant,
caractères
et prise en ceux qui sont pris en charge dépendent de la police :
charge
d’Unicode • Pour les polices vectorielles, les informations du jeu de caractères sont embarquées dans
le fichier de police. Les fichiers de codage associent des symboles individuels au code
d’un jeu de caractères. Ces fichiers sont gérés indépendamment des polices et se trou-
vent habituellement dans le répertoire /usr/share/fonts/encodings ou /usr/share/
fonts/X11/encodings.
• Pour les fontes bitmap, il existe un fichier par jeu de caractères pris en charge. Unicode
a peu de fontes bitmap. La commande suivante en affiche la liste :
utilisateur$ xlsfonts ’*iso10646-1*’

Attention, le fait qu’une police comprenne le codage Unicode n’offre pas de garantie sur le
nombre de caractères qu’elle contient. Il existe actuellement peu de polices Unicode complè-
tes (et aucune d’entre elles n’est gratuite). De plus, les polices de ce type sont énormes et peu
adaptées à un usage quotidien.
Types de X fournit différents types de polices. En voici une rapide description :
polices
• Fontes 75-dpi et 100-dpi (bitmap). Il s’agit des fontes les plus anciennes qui font partie
de X depuis plusieurs années. Elles ne sont disponibles dans des tailles correctes que
pour des résolutions d’écran de 75 et 100 dpi. Les familles de polices correspondantes
comptent généralement Charter, Courier, Helvetica, Lucida, New Century Schoolbook,
Times et Utopia.
• Polices Type1 (vectorielles). Il s’agit d’un format de polices PostScript définies par
Adobe. Elles se trouvent dans des fichiers *.pfa ou *.pfb.
• Polices TrueType (vectorielles). Développées par Microsoft et Apple comme alternative
au format de polices Adobe, elles fournissent une haute qualité d’affichage et d’impres-
sion, comparable à celle des polices Type1. Elles se trouvent dans des fichiers *.ttf. La
police DejaVu est l’une des plus populaires sous Linux. Basée sur Bitstream Vera, il
s’agit d’une police libre, souvent utilisée par défaut sous Linux.
• Polices OpenType (vectorielles). Il s’agit d’un métaformat qui permet de décrire des
polices TrueType et Type1. Les fichiers correspondants ont les extensions *.otf et *.ttf.
• Polices Speedo (vectorielles). Il s’agit du nom d’une police de l’entreprise Bitstream.
Sous Linux, elles regroupent généralement Charter, Courier et Vera.
• Polices URW (vectorielles). L’entreprise URW a financé pour GhostScript un paquetage
de polices PostScript standard vectorielles (AvantGarde, Bookman, Courier, Gothic,
Helvetica, New Century Schoolbook, Palatino, Times, Symbol, ZapfChancery et
ZapfDingbats). Il s’agit en interne de polices Type1. Elles peuvent être redistribuées
dans le cadre de la GPL et sont utilisées par GhostScript.
Linux Livre Page 397 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 397

Il existe bien sûr, chez des entreprises comme Adobe ou Bitstream, d’innombrables polices qui ne sont
pas fournies sous Linux. Elles doivent être achetées comme tout produit commercial. Celles fournies sous
Linux ne sont généralement mises à disposition que parce qu’elles sont offertes par ces entreprises.

Configuration sans serveur de fontes


À la base, les fontes peuvent s’afficher de deux manières à l’écran. Le serveur X peut conver-
tir lui-même les fichiers de polices en bitmap qui s’affichent à l’écran. Un serveur de fontes
(le plus souvent xfs) peut également effectuer ce travail. RHEL, jusqu’à sa version 5.n, et
Fedora 7 utilisent un serveur de fontes ; ce n’est généralement pas le cas des autres distributions.
Il n’y a pas vraiment d’avantage ou d’inconvénient décisif pour l’une ou l’autre des solu-
tions. Les serveurs de fontes n’étant plus vraiment utilisés actuellement, nous n’en parlerons pas
dans cet ouvrage.
xorg.conf Si vous n’utilisez pas de serveur de fontes, vous pouvez ajouter à la section Files de
xorg.conf le chemin des répertoires de polices. Cet ajout est facultatif. Cependant, si vous
l’omettez, le serveur X ne prend en compte que quelques répertoires standard indiqués à la
compilation.
Section "Files"
FontPath "/usr/share/fonts/misc:unscaled"
FontPath "/usr/share/fonts/local"
FontPath "/usr/share/fonts/75dpi:unscaled"
FontPath "/usr/share/fonts/100dpi:unscaled"
FontPath "/usr/share/fonts/Type1"
FontPath "/usr/share/fonts/URW"
FontPath "/usr/share/fonts/Speedo"
...
EndSection

L’ordre des répertoires a une importance. Si une fonte existe dans plusieurs répertoires, la
première trouvée dans la liste de répertoires est utilisée. Il est donc important d’indiquer en
premier les polices ayant une bonne qualité d’affichage.
Lorsque le chemin est suivi de :unscaled, X n’utilise la fonte que lorsqu’elle est disponible
exactement dans la taille souhaitée. Ce mot clé n’est valide que pour les polices bitmap et
non vectorielles.
Les versions actuelles du serveur X chargent par défaut tous les modules pour gérer les dif-
férents types de polices. Certains fichiers de configuration énumèrent cependant explici-
tement ces modules :
Section "Module"
Load "bitmap" # fontes bitmap
Load "speedo" # polices Speedo
Load "type1" # polices Type-1 et CID
Load "freetype" # polices TrueType, OpenType et Type1
...
EndSection
Linux Livre Page 398 Mardi, 23. septembre 2008 1:05 13

398 LINUX

Activer la Pour prendre en compte les modifications de la configuration des polices, il suffit générale-
configuration
ment de lancer la commande suivante. Il arrive cependant qu’un redémarrage de X soit
nécessaire.
root# xset fp rehash

Installation de polices TrueType et Type1 supplémentaires


La plupart des distributions Linux fournissent peu de polices TrueType et Type1. Si vous
possédez des droits sur de telles polices, cette section propose quelques astuces pour leur
installation. Trois étapes sont nécessaires :
1. Les fichiers de polices doivent être copiés dans le répertoire prévu à cet effet.
2. Les fichiers fonts.* doivent être mis à jour dans le répertoire de polices.
3. X (ou le serveur de fontes xfs) doit être informé que de nouvelles polices sont disponibles.
Installation Copiez les fichiers (*.ttf, *.pfa ou *.pfb) dans l’un des répertoires de polices de votre distri-
manuelle
bution. Veillez à ce qu’ils soient lisibles par tous les utilisateurs.
Lancez ces commandes pour enregistrer les nouvelles polices :
root# cd /usr/share/fonts/xxx
root# fc-cache .
root# mkfontscale .
root# mkfontdir .

La commande fc-cache fait partie du système fontconfig. mkfontscale et mkfontdir mettent à


jour les fichiers fonts.scale et fonts.dir.
Pour finir, rafraîchissez le système de polices de X :
root# xset fp rehash

Il peut également être utile de redémarrer X.


KDE Konqueror affiche toutes les polices disponibles lorsque vous saisissez l’adresse fonts:/.
Pour installer vos propres polices TrueType et Type1, lancez l’installateur de polices de la
configuration du système. Vous pouvez les installer pour l’utilisateur courant ou tous les
utilisateurs. Dans le premier cas, elles sont installées dans le répertoire ~/.fonts et ne sont
accessibles qu’à l’utilisateur courant et aux programmes compatibles avec fontconfig. Si
vous les installez pour le système, elles sont installées dans l’un des répertoires de polices
de X.
Gnome Nautilus permet d’afficher toutes les polices du système à l’adresse fonts:///.
Pour installer de nouvelles polices, déplacez le fichier de police par glisser-déposer. Les poli-
ces sont alors copiées dans le répertoire ~/.fonts et sont disponibles à tous les programmes
compatibles avec fontconfig.
Polices Vous pouvez, même sans Windows, utiliser des polices Microsoft. Microsoft a long-
Microsoft
temps fourni des polices TrueType en téléchargement. Elles devaient permettre à tous les utili-
sateurs d’afficher de manière optimale les polices Microsoft utilisées sur les sites web.
Linux Livre Page 399 Mardi, 23. septembre 2008 1:05 13

SYSTÈME XWINDOW 399

Le site de téléchargement original n’existe plus ; les polices ne peuvent plus être téléchar-
gées que sur le site corefonts. La redistribution commerciale de ces polices est interdite ; c’est
pourquoi les distributions ne les fournissent généralement pas directement.
Malheureusement, leur installation sous Linux est compliquée, car elles sont contenues
dans un fichier *.exe et ne peuvent pas être distribuées sous un autre format. Le site web
http://corefonts.sourceforge.net/ fournit une documentation pour les distributions qui utili-
sent des paquetages RPM.
Sous Ubuntu, le paquetage msttcorefonts permet d’installer les polices Microsoft.

Anticrénelage
Par défaut, X utilise l’anticrénelage (anti-aliasing) pour afficher les polices TrueType et
Type1. Les contours des lettres s’affichent alors en niveaux de gris. Les caractères sont
moins pixelisés.
Sur de nombreux écrans plats, chaque pixel est composé de trois sous-pixels (rouge, vert et
bleu). La variation des couleurs associées permet une plus grande qualité d’affichage de
l’anticrénelage. On parle ici de rendu par sous-pixelisation.
Configuration L’anticrénelage et le rendu par sous-pixelisation sont définis dans le fichier XML /etc/
fonts/fonts.conf. Celui-ci ne doit cependant pas être modifié, car il est régulièrement
écrasé. Les paramètres doivent être modifiés dans /etc/fonts/local.conf (pour le système)
ou dans ~/.fonts.conf (pour l’utilisateur). man fontconfig ou man fonts.conf vous donne-
ront plus d’informations à ce sujet.
Artefacts Selon le moniteur, le rendu par sous-pixelisation peut mener à des artefacts colorés gênants.
colorés
Il faut alors désactiver la fonction avec les lignes suivantes :
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font" >
<edit mode="assign" name="rgba" >
<const>none</const>
</edit>
</match>
</fontconfig>

Configuration KDE et Gnome fournissent des boîtes de dialogue confortables pour modifier la confi-
sous KDE et
Gnome guration utilisateur par utilisateur de l’anticrénelage et du rendu par sous-pixelisation. Sous
KDE, les paramètres se trouvent dans le module Apparence > Polices de la configuration du
système. Sous Gnome, lancez gnome-font-properties ou Propriétés > Polices.
Linux Livre Page 400 Mardi, 23. septembre 2008 1:05 13

400 LINUX

22.15 Outils X
X fournit quelques programmes. La plupart disposent de versions plus modernes intégrées
à Gnome ou KDE, mais certains des utilitaires de X sont encore importants de nos jours. En
voici une liste rapide. man commande permet d’obtenir plus d’informations sur ces différentes
commandes.
• xev. xev affiche des informations sur les événements du clavier, de la souris, etc. Vous
pouvez ainsi voir comment X réagit lorsque vous appuyez, par exemple, sur une touche
donnée.
• xkill. xkill permet de terminer un programme X. Lancez xkill, cliquez sur la fenêtre et
l’application correspondante est terminée.
• xlsfonts. xlsfonts affiche une liste de toutes les polices disponibles. On peut lui passer
un motif de filtrage comme à ls. Il faut cependant mettre ce motif entre apostrophes
pour qu’il ne soit pas étendu par bash.
• xmodmap. xmodpam permet d’afficher et de modifier la configuration du clavier. xmodmap
-pk affiche la table de clavier courante. xmodmap -e définition permet de redéfinir une
touche.
• xrandr. xrandr permet de modifier la résolution de l’écran, la fréquence de l’image et
d’autres paramètres de l’écran sans quitter X. xrandr -q affiche les possibilités de confi-
guration. Celles-ci dépendent de la configuration de X et du pilote de la carte graphique.
xrandr -s n modifie la résolution, xrandr -r n la fréquence d’affichage et xrandr -o
l’orientation de l’image.
• xset. xset modifie le paramétrage du serveur X.
• xterm. xterm est une fenêtre de terminal dans laquelle diverses commandes peuvent
être lancées. xterm dispose de nombreuses options pour modifier son apparence.
Linux Livre Page 401 Mardi, 23. septembre 2008 1:05 13

Administration du système
23 de fichiers
Ce chapitre décrit diverses facettes de l’administration du système de fichiers. Il s’adresse
majoritairement aux utilisateurs avancés de Linux et couvre les thèmes suivants :
• Introduction. Cette section offre un premier aperçu des différents aspects des systèmes
de fichiers de Linux.
• Noms de périphériques. Linux communique avec les disques durs, les supports de
données et les partitions qui y sont contenues par le biais de fichiers de périphériques
comme /dev/hda1 ou /dev/sdc. Cette section résume la nomenclature et la numérotation
de ces fichiers.
• Partitionnement du disque dur. Le partitionnement du disque dur est une tâche cen-
trale de l’installation de Linux. Il est parfois aussi nécessaire de créer une nouvelle
partition alors que Linux fonctionne déjà.
• Types de systèmes de fichiers. Peu de systèmes d’exploitation prennent en charge
autant de systèmes de fichiers que Linux. Cette section en présente les plus importants.
• Gestion du système de fichiers. Vous y apprendrez comment ajouter des partitions de
données manuellement à un système de fichiers (mount) et comment automatiser cette
opération (/etc/fstab).
• Systèmes de fichiers Linux. Cette section offre divers conseils et astuces pour utiliser
les trois systèmes de fichiers les plus importants sous Linux : ext, reiser et xfs.
• Systèmes de fichiers Windows. Vous pouvez aussi accéder à des partitions Windows
sous Linux. Linux prend en charge les deux systèmes de fichiers courants FAT32 et
NTFS.
• CD/DVD et disquettes. Les CD et DVD de données disposent de leurs propres types de
systèmes de fichiers, qui sont présentés dans cette section. Ce chapitre traite également
rapidement des disquettes, même si celles-ci ne sont plus que peu utilisées de nos jours.
• Supports de données externes (USB, Firewire). Lorsque vous connectez un disque dur
Firewire ou une clé USB, dans la plupart des cas, une fenêtre du gestionnaire de fichiers
apparaît et vous donne accès à vos fichiers. Cette section explique ce qu’il se passe dans
les coulisses d’une telle opération et comment utiliser si besoin des supports de données
externes manuellement.
• Partitions d’échange. Lorsque Linux n’a pas assez de mémoire vive pour exécuter ses
programmes, il décharge une partie de la mémoire dans une partition d’échange.
• Systèmes de fichiers réseau. Vous pouvez intégrer des répertoires d’autres ordinateurs
sur votre réseau local, dans votre arborescence de répertoires. Je m’intéresse dans cette
section aux systèmes de fichiers CIFS (Windows / Samba) et NFS (Unix / Linux).
• LVM. LVM (Logical Volume Manager, gestionnaire de volumes logiques) permet d’admi-
nistrer les partitions de manière flexible. LVM offre la possibilité par exemple de réunir
Linux Livre Page 402 Mardi, 23. septembre 2008 1:05 13

402 LINUX

les partitions de plusieurs disques en une seule partition virtuelle, de modifier la taille
des partitions sans avoir à réinstaller le système, etc.
• Optimisation des disques durs. Cette section décrit les outils hdparm et SMART avec
lesquels vous pouvez optimiser vos disques durs et relever des statistiques sur leur
utilisation.
Il resterait encore beaucoup à écrire sur l’administration des systèmes de fichiers. Je n’ai
cependant pas la place de traiter des sujets suivants et vous indique donc quelques
pointeurs :
• Utilisation du système de fichiers. Les commandes de copie de fichiers, de création de
sauvegarde, de gestion des droits d’accès, etc. ont déjà été traitées au Chapitre 13.
• Quotas de disques. Il s’agit d’un système qui contrôle l’espace disque maximum
attribué à un utilisateur. Si cette limite est dépassée, l’utilisateur ne peut pas créer de
nouveau fichier. Vous trouverez une bonne introduction à ce système à l’adresse
http://tldp.org/HOWTO/Quota.html.
• RAID. Le RAID (Redundant Array of Inexpensive Disks, ensemble redondant de disques
bon marché) permet d’associer une partition à plusieurs disques et ainsi d’améliorer la
sécurité ou les performances de l’ensemble.
• Systèmes de fichiers chiffrés. Si vous désirez éviter qu’une personne non autorisée
(par exemple un voleur) puisse lire vos données, vous devez chiffrer une partie ou la
totalité de votre système de fichiers. Linux fournit plusieurs alternatives pour cela,
comme CryptoFS, DM-Crypt, eCryptfs, Enc-FR, Loop-AES et TrueCrypt. Une recher-
che sur ces termes sur Internet renvoie d’innombrables articles qui décrivent la mise
en place de tels systèmes. Certaines distributions en offrent la possibilité dès l’instal-
lation.
• Systèmes de fichiers de grappes (clusters). Les systèmes de fichiers de grappes ou les
systèmes de fichiers globaux réunissent les données de plusieurs ordinateurs via un sys-
tème de fichiers virtuel. On peut ainsi construire des systèmes de fichiers immenses et
les utiliser en parallèle depuis plusieurs machines. On peut citer pour exemples de ce
type de systèmes OCFS (Oracle Cluster File System) d’Oracle, ou GFS (Global Filesystem)
de Red Hat.

23.1 Fonctionnement général


Les tenants et les aboutissants de la gestion du système de fichiers sont jusqu’ici un peu confus.
Cette section tente d’en résumer les principes de manière claire et concise. Pour garder ce
texte aussi clair que possible, je me limite ici aux disques durs intégrés et aux systèmes de
fichiers habituels. Je ne parle donc ni de supports externes (CD/DVD, disques USB, etc.) ni
de LVM.
Disques durs Les disques durs intégrés à l’ordinateur sont associés à des noms de périphériques. Les dis-
tributions les plus récentes utilisent /dev/sda, /dev/sdb pour de tels disques durs. D’autres
distributions plus anciennes utilisent /dev/hda, /dev/hdb, etc. pour les disques IDE et /dev/
sda, /dev/sdb, etc. pour les disques SATA et SCSI.
Linux Livre Page 403 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 403


Partitions Pour loger plusieurs systèmes de fichiers indépendamment les uns des autres sur un disque
dur, il faut diviser ce disque en sections (partitions). Ces partitions sont elles-mêmes asso-
ciées à des fichiers de périphériques, par exemple /dev/sda1 pour la première partition du
premier disque SATA. La nomenclature détaillée des fichiers de périphériques pour les
partitions est traitée à la section 23.2.
Partition Au démarrage de Linux, le noyau accède d’abord à la partition système (partition
système
racine). Son nom de périphérique est indiqué comme paramètre du noyau dans le fichier
de configuration de GRUB ou de LILO. Vous trouverez plus de détails à ce sujet au
Chapitre 24.
Partitions En plus de la partition système, qui est absolument nécessaire, il peut exister des partitions
supplémen-
taires supplémentaires qui doivent être prises en compte dès le démarrage de Linux. Elles sont
décrites dans le fichier /etc/fstab. Ce fichier doit se trouver dans la partition système ; il est
lu par le processus init.
Test de Lorsqu’une partition est attachée à l’arborescence de fichiers, la cohérence de son système
cohérence
de fichiers est automatiquement vérifiée. Si l’ordinateur a été brutalement éteint (par exem-
ple par une coupure de courant), une réparation automatique du système de fichiers ou
d’autres mécanismes de sécurité se mettent en place pour éviter d’éventuelles erreurs de
cohérence. Le test de cohérence est également lancé après une certaine période d’utilisation.
En détail, cette opération dépend de la distribution et de la configuration individuelle de la
machine. La durée de la réparation et du test de cohérence dépend largement du système de
fichiers.
Arborescence Sous Windows, il est courant de communiquer avec différents systèmes de fichiers via des
au lieu de
lettres de lettres de lecteur différentes (A:, C:, D:, etc.). Sous Linux, ces systèmes de fichiers sont ras-
lecteur semblés dans une arborescence de répertoires. La partition système est accessible via le
répertoire racine /. Le point de départ des autres systèmes de fichiers peut varier selon la
distribution et la configuration. On utilise fréquemment des sous-répertoires de /mnt ou de
/media, par exemple /media/dvd pour un DVD de données.
Ajout de On peut ajouter ou supprimer des systèmes de fichiers de l’arborescence de répertoires alors
systèmes de
fichiers que le système fonctionne. Lorsque l’on branche un support de données externe (par exem-
ple une clé USB), cela fonctionne généralement automatiquement. Si cela ne fonctionne pas
ou si le mécanisme a été désactivé, root peut ajouter ou supprimer des systèmes de fichiers
manuellement avec les commandes mount et umount.
La seule constante est la partition système : elle ne peut pas être supprimée de l’arbores-
cence de fichiers lorsque le système fonctionne. Cela n’est possible que pendant le processus
d’arrêt de l’ordinateur.
Types de Linux prend en charge de nombreux types de systèmes de fichiers. La partition système doit
systèmes de
fichiers se trouver dans un système de fichiers Linux (par exemple ext3, reiserfs ou xfs). Pour les
autres partitions, le choix s’élargit. Les systèmes de fichiers de Windows, d’Unix ou d’Apple
sont aussi envisageables.
Linux Livre Page 404 Mardi, 23. septembre 2008 1:05 13

404 LINUX

23.2 Noms de périphériques pour les disques durs


et les autres supports de données
Glossaire L’IDE, le SATA et le SCSI sont de nos jours des interfaces courantes pour connecter un ordi-
nateur à ses lecteurs. L’IDE était ces quinze dernières années l’interface la plus répandue. Le
SATA est en train de remplacer l’IDE. Ses avantages comptent un taux de transfert de don-
nées plus grand et des câbles plus fins. Les disques SCSI sont plus chers que les périphéri-
ques IDE ou SATA mais sont plus fiables et plus rapides. Ils sont le plus souvent utilisés
dans des serveurs de fichiers et de bases de données.

Glossaire
ATA interface de connexion des disques durs
ATAPI extension d’ATA pour les lecteurs CD et DVD
IDE description alternative de PATA
PATA ATA parallèle (interface ATA courante avec un accès parallèle aux données)
SATA ATA série (nouvelle interface ATA avec un accès série aux données)
SCSI alternative à IDE/SATA

Fonctionne- Linux accède aux disques durs internes et externes, à leurs partitions, aux CD et DVD et à
ment interne
du noyau tout autre support de données par le biais de fichiers de périphériques. Ces fichiers sont des
fichiers particuliers qui servent d’interface entre Linux et le noyau.
Vous n’avez besoin de ces fichiers qu’à des fins d’administration, c’est-à-dire lorsque vous
souhaitez modifier le partitionnement d’un disque ou monter une partition dans l’arbores-
cence de fichiers. En dehors de cela, vous accédez normalement au système de fichiers par le
biais de répertoires. / est le début du système de fichiers. Les partitions peuvent y être asso-
ciées à un emplacement particulier : par exemple, une partition Linux supplémentaire peut
être associée au nom /data, et la partition Windows à /media/win.
Il existe deux familles de pilotes pour les disques durs et les autres supports de données :
• IDE. Le pilote IDE sert à gérer les disques durs IDE et les lecteurs CD/DVD IDE – il
s’agit donc de tous les périphériques PATA.
• SCSI. Le système SCSI ne gère pas seulement les périphériques SCSI, mais aussi tous les
lecteurs connectés aux bus SATA, USB et Firewire. Comme de nombreuses cartes mère
utilisent maintenant SATA comme interface principale pour les lecteurs DVD et disques
durs, le système SCSI prend de plus en plus d’importance.

Le code IDE du noyau est relativement ancien et mal maintenu. De ce fait, de plus en plus de distributions
accèdent également aux périphériques IDE par le biais du pilote SCSI. Pour que cela fonctionne, le système
SCSI du noyau a été étendu par des fonctions PATA. Le module correspondant s’appelle libata et se trouve
dans le noyau officiel depuis sa version 2.6.19.
Le passage à libata signifie que tous les supports de données sont accessibles par les périphériques /
dev/s*. Il n’y a plus de périphérique /dev/hd*. Tous les supports de données sont donc gérés par la
même base de code.
Linux Livre Page 405 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 405

Au passage du pilote IDE au pilote SCSI, les noms de périphériques de tous les périphériques IDE sont
modifiés, ce qui peut poser problème lors de la mise à jour d’un noyau ou d’une distribution. Pour régler
ces problèmes, de nombreuses distributions n’utilisent plus le nom du périphérique pour identifier une
partition, mais son UUID ou son libellé. Cela a un impact sur les fichiers de configuration /etc/fstab
et /boot/grub/menu.lst .
Cependant, le nombre maximal de partitions utilisables sous Linux passe de 64 à 16. De plus, les fonctions
HD_IO ne sont plus disponibles et certains contrôleurs IDE (généralement anciens) ne sont pas pris en
charge par les systèmes SCSI.

Périphériques Si le système IDE est toujours utilisé, les disques IDE sont identifiés par les fichiers de péri-
IDE
phériques /dev/hda, /dev/hdb, etc. L’ordre des périphériques dépend du câblage interne des
disques. Le schéma de nommage est résumé dans le tableau ci-après. Notons que, selon ce
schéma, il se peut que les périphériques hda et hdc existent sans que le périphérique hdb
n’existe.

Noms de périphériques pour les périphériques IDE gérés par le système IDE
/dev/hda périphérique IDE maître du premier canal IDE
/dev/hdb périphérique IDE esclave du premier canal IDE
/dev/hdc périphérique IDE maître du second canal IDE
/dev/hdd périphérique IDE esclave du second canal IDE
...

Périphériques Les disques SCSI et SATA sont, de manière similaire, nommés sdxy. Pour les distributions
SCSI et SATA
qui utilisent l’extension libata du système SCSI, cela est également valable pour les disques
IDE.
Les périphériques SATA sont associés à une lettre dans l’ordre du canal utilisé. Les cartes
mère modernes voient généralement six ou huit canaux au plus. Si deux disques durs sont
connectés aux canaux 1 et 3, ils sont nommés /dev/sda et /dev/sdb. Si un troisième disque
est ensuite connecté au canal 2, le nom du deuxième disque dur devient /dev/sdc.
Lorsque libata est utilisé, les périphériques IDE sont également nommés dans la suite de
périphériques /dev/sda, /dev/sdb, etc. Attention, il existe ici une différence de nommage
importante. Lorsque l’ordinateur dispose d’un disque maître sur chacun des canaux IDE,
mais pas de disque esclave, les périphériques IDE s’appellent /dev/hda et /dev/hdc, mais
libata les appelle /dev/sda et /dev/sdb.
Pour les périphériques SCSI, l’ordre dépend du numéro d’identifiant du périphérique. Les
trous dans la numérotation ne sont pas pris en compte : trois périphériques ayant comme
identifiants 0, 2 et 5 reçoivent les noms de périphériques /dev/sda, /dev/sdb et /dev/sdb.
Comme pour les périphériques SATA, cela peut mener à une modification ultérieure de la
configuration.
Linux Livre Page 406 Mardi, 23. septembre 2008 1:05 13

406 LINUX

Les périphériques USB et Firewire sont gérés comme des périphériques USB ; l’identifiant
utilisé est le premier disponible. Lorsque des périphériques SCSI, SATA, USB et Firewire
sont branchés, la numérotation commence avec les périphériques SCSI ou SATA (en fonc-
tion du BIOS, des emplacements PCI utilisés, etc.) et continue avec les périphériques USB et
Firewire dans l’ordre dans lequel ils ont été branchés.
Les CD et DVD reçoivent des noms de périphériques spéciaux qui peuvent être, selon la
distribution, /dev/sdcn ou /dev/srn.

Noms de périphériques pour les périphériques SCSI, SATA, USB, Firewire et IDE avec un
noyau libata
/dev/sda premier disque SCSI/SATA
/dev/sdb second disque SCSI/SATA
...
/dev/scd0 ou /dev/sd0 premier lecteur CD/DVD
/dev/scd1 ou /dev/sr1 second lecteur CD/DVD

Numérotation En ce qui concerne la numérotation des partitions, indépendamment du bus utilisé, les chif-
des partitions
fres 1 à 4 sont réservés pour les partitions primaires ou étendues et les chiffres supérieurs à
5 servent pour les partitions logiques à l’intérieur de la partition étendue. Il est donc fré-
quent que cette numérotation contienne des trous. Si votre disque contient une partition pri-
maire, une partition étendue et trois partitions logiques, elles sont respectivement
numérotées 1, 2, 5, 6 et 7. Le tableau suivant donne quelques exemples.
Le nombre de partitions par disque dur est limité. Pour des raisons historiques, on ne peut
créer que quatre partitions primaires ou trois partitions primaires et une partition étendue.
D’autre part, Linux limite le nombre de partitions logiques utilisables à 59 (dans le système
IDE) ou à 11 (SCSI/SATA/USB/Firewire/IDE avec libata). Le nombre total de partitions
est alors de 63 ou de 15.

Exemples pour les numéros de partitions


/dev/hda premier disque IDE complet (système IDE)
/dev/hda1 première partition primaire du premier disque dur
/dev/hda2 partition étendue
/dev/hda5 première partition logique
/dev/hda8 quatrième partition logique
/dev/sda premier disque SCSI/SATA (ou premier disque dur IDE dans un noyau libata)
/dev/sda1 première partition primaire du premier disque dur
/dev/sdd3 troisième partition primaire du quatrième disque SCSI/SATA

Noms de Comme nous l’avons vu précédemment, la numérotation des disques peut changer au cours
périphériques
alternatifs du temps, en particulier lorsque l’on ajoute ou supprime un disque. De plus, le nom des
périphériques externes est globalement imprévisible : il dépend de l’ordre dans lequel les
périphériques sont branchés.
Linux Livre Page 407 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 407

Pour accéder à des périphériques dont le nom varie (par exemple dans un script de sauve-
garde), le répertoire /dev/disk contient des liens supplémentaires vers tous les supports de
données, triés selon plusieurs critères :
• /dev/disk/by-id/id utilise des identifiants qui dépendent du bus, du nom du périphé-
rique et d’un numéro de série ou de modèle.
• /dev/disk/by-label/label utilise des noms indiqués dans le système de fichiers.
• /dev/disk/by-path/path utilise un chemin constitué de l’interface PCI, du bus et du
numéro de la partition. Attention, si un périphérique USB ou Firewire est connecté à
une autre prise de l’ordinateur, cet identifiant est modifié.
• /dev/disk/by-uuid/uuid utilise l’UUID des partitions. Les UUID (Universal Unique
IDentifier, identifiant universel unique) sont des numéros d’identifiant unique asso-
ciés à la partition lors de la création du système de fichiers et qui peuvent être utilisés
pour identifier le système de fichiers, même lorsque la configuration matérielle a été
modifiée.
Le nombre de liens dans chaque répertoire /dev/disk/* est variable. /dev/disk/by-label et
by-uuid ne contiennent que les partitions nommées ou qui ont un UUID. Le système udev
crée automatiquement les liens vers les disques. La commande ls suivante montre par
exemple les liens d’un système disposant d’un disque SATA, d’une clé USB et d’une carte
CompactFlash (qui fonctionne également en USB).
user$ cd /dev/
user$ ls -lR disk/
disk/by-id:
scsi-SATA_ST3320620AS_5QF194H9 -> ../../sda
scsi-SATA_ST3320620AS_5QF194H9-part1 -> ../../sda1
scsi-SATA_ST3320620AS_5QF194H9-part2 -> ../../sda2
scsi-SATA_ST3320620AS_5QF194H9-part3 -> ../../sda3
scsi-SATA_ST3320620AS_5QF194H9-part4 -> ../../sda4
scsi-SATA_ST3320620AS_5QF194H9-part5 -> ../../sda5
usb-Generic_USB_CF_Reader_058F312D81B -> ../../sdc
usb-Generic_USB_MS_Reader_058F312D81B -> ../../sde
usb-Generic_USB_SD_Reader_058F312D81B -> ../../sdb
usb-Generic_USB_SM_Reader_058F312D81B -> ../../sdd
usb-Hama_FlashPen_09202251030128CA -> ../../sdf
usb-Hama_FlashPen_09202251030128CA-part1 -> ../../sdf1
disk/by-path:
pci-0000:00:1a.7-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sdf
pci-0000:00:1a.7-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sdf1
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:0 -> ../../sdb
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:1 -> ../../sdc
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:2 -> ../../sdd
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:3 -> ../../sde
pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sda
pci-0000:00:1f.2-scsi-0:0:0:0-part1 -> ../../sda1
Linux Livre Page 408 Mardi, 23. septembre 2008 1:05 13

408 LINUX

pci-0000:00:1f.2-scsi-0:0:0:0-part2 -> ../../sda2


pci-0000:00:1f.2-scsi-0:0:0:0-part3 -> ../../sda3
pci-0000:00:1f.2-scsi-0:0:0:0-part4 -> ../../sda4
pci-0000:00:1f.2-scsi-0:0:0:0-part5 -> ../../sda5
pci-0000:03:00.1-ide-0:0 -> ../../hde
disk/by-uuid:
008f06ef-28be-45c9-acbc-20cda51f712b -> ../../sda2
06efc09c-9a3e-4668-81d7-8925c380889e -> ../../sda5
366CA8D16CA88D65 -> ../../sda1
D3A0-1831 -> ../../sdf1
e35139a5-5871-48fe-9191-df0d003e4ed5 -> ../../sda3

23.3 Partitionnement du disque dur

Les programmes de partitionnement peuvent détruire le contenu de votre disque dur ! Lisez cette section
attentivement avant de lancer un outil de partitionnement quelconque. Il est impossible de modifier une parti-
tion montée dans le système de fichiers.
Le schéma de partitionnement de Windows Vista a changé : Vista ne démarre que lorsque sa partition
commence au 2 048e secteur. Or, dans certains programmes de partitionnement, il arrive que le début de
la partition passe au 63e secteur. Dans ce cas, il faut corriger la partition avant de redémarrer Vista. Le pro-
blème et sa solution sont documentés à l’adresse
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=379835.

Pendant l’installation, presque toutes les distributions Linux fournissent des outils simples
à utiliser pour partitionner le disque dur. Une fois l’installation terminée, de nombreux
outils sont à votre disposition, comme les commandes texte fdisk ou parted ou les applications
graphiques gparted ou qtparted.
Si vous devez modifier fréquemment le partitionnement de vos disques, LVM est probable-
ment intéressant. LVM ajoute un niveau virtuel entre les partitions physiques du disque dur
et les partitions utilisées pour les systèmes de fichiers. Il facilite nettement les modifications
futures du partitionnement. Nous en parlerons à la section 23.12.

Règles de base
Indépendamment des outils, vous devez connaître quelques règles de base :
• Il est impossible d’effectuer des modifications sur une partition montée. Si vous désirez
redimensionner la partition système, vous devez démarrer l’ordinateur avec un live CD.
Il existe des minidistributions spécialement prévues pour cela, comme GParted Live
(http://gparted.sourceforge.net/livecd.php), Parted Magic (http://partedmagic.com/)
ou SystemRescueCD (http://www.sysresccd.org/Page_Principale).
• Généralement, il n’est possible de modifier la taille d’une partition que pour la dernière
partition du disque dur. Vous ne pouvez pas déplacer les partitions sur le disque.
Linux Livre Page 409 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 409

• Lorsque vous modifiez la taille d’une partition, la taille du système de fichiers qui s’y
trouve n’est pas automatiquement modifiée ! Diverses commandes supplémentaires
sont nécessaires. Elles dépendent du type de système de fichiers.
• Le nombre de partitions par disque est limité (63 pour les disques IDE lorsqu’ils ne sont
pas gérés par libata, 15 pour les disques SATA, USB, Firewire et IDE lorsqu’ils sont
gérés par libata). Une de ces partitions est la partition étendue qui peut contenir
d’autres partitions mais pas de système de fichiers. Le nombre maximal de partitions se
réduit donc à 3 partitions primaires et 59 ou 11 partitions logiques.
• Lorsque vous modifiez une partition en cours d’utilisation (par exemple la partition sys-
tème de votre distribution Linux), le programme de partitionnement vous demande de
redémarrer l’ordinateur. Sous fdisk, l’erreur qui s’affiche est AVERTISSEMENT: la relec-
ture de la table de partitions a échoué avec l’erreur 16: Périphérique ou ressource occupé. Le ker-
nel va continuer d’utiliser l’ancienne table. La nouvelle table sera utilisée lors du prochain
réamorçage.
La raison en est que le noyau Linux ne sait pas lire la table de partitions lorsque le dis-
que fonctionne. La modification est donc enregistrée, mais elle n’est active qu’au redé-
marrage. Vous devez redémarrer Linux avant de pouvoir utiliser le nouveau
partitionnement.

Problèmes de compatibilité
Les outils présentés dans cette section et ceux qui sont utilisés pendant l’installation de
Linux se différencient sur plusieurs points. Certains outils laissent la partition étendue
comme elle a été créée à l’origine. Nous appellerons ces programmes les programmes de
type 1. Ils comprennent fdisk, parted, les programmes d’installation de Fedora, de Red Hat,
de SUSE et les outils de partitionnement de Windows.
D’autres programmes modifient automatiquement la partition étendue pour qu’elle dispose
exactement de la place nécessaire pour les partitions logiques (type 2). Ils comprennent les
programmes d’installation de Debian, de Mandriva et d’Ubuntu.
Les deux méthodes sont valides, seul leur mélange pose problème. Supposons que vous
créiez une nouvelle partition logique avec un outil de type 2. Le programme adapte la
taille de la partition étendue automatiquement. Si vous essayez à présent d’utiliser un
outil de type 1 pour créer une nouvelle partition logique, celui-ci indique que la partition
étendue est déjà pleine. Les programmes de type 1 ne parviennent pas, à l’exception de
parted, à modifier la taille de la partition étendue lorsque des partitions logiques s’y trouvent
déjà.
Pour corriger cela, lancez un programme de type 2 et modifiez le partitionnement. Vous
pouvez aussi utiliser cet outil pour créer une partition logique temporaire pour réserver la
place nécessaire. Vous supprimerez cette partition temporaire avec le programme de type 1
et pourrez alors utiliser l’espace libre de la partition étendue.
Linux Livre Page 410 Mardi, 23. septembre 2008 1:05 13

410 LINUX

fdisk
fdisk est un des programmes les plus anciens parmi ceux qui sont encore utilisés
aujourd’hui. L’interface utilisateur est plutôt démodée, mais le programme est sophistiqué
et apprécié par les utilisateurs de longue date.
Démarrage fdisk ne peut modifier qu’un disque à la fois ; son nom doit être passé en argument (par
exemple /dev/sdc pour le troisième disque). Si vous utilisez l’option -l, fdisk affiche toutes
les partitions de tous les disques durs. La touche M (menu) affiche une courte description
des commandes disponibles. P (print, afficher) affiche une liste des partitions existantes sur
le disque.

Lorsque le disque dur se compose de plus de 1 024 cylindres (ce qui est le cas des disques actuels), fdisk
affiche un message d’avertissement. Ce message concerne la partition d’amorçage de Linux et n’est valable
que lorsque votre carte mère est ancienne (BIOS datant d’avant 1998) ou lorsque vous utilisez une version
de LILO très ancienne. En règle générale, vous pouvez ignorer cet avertissement.

Création d’une N (new, nouveau) permet de créer une nouvelle partition sur le disque dur. Vous ne pouvez
nouvelle
partition pas créer plus de quatre partitions primaires. Si vous désirez en créer plus de quatre, vous
devez créer une partition étendue. Si plusieurs options sont possibles (partition primaire,
étendue ou logique), fdisk affiche les différents choix et demande le type de partition
souhaité.
Ensuite, il demande à quel endroit la partition doit commencer (normalement au premier
cylindre libre) et quelle doit être sa taille (cylindre de fin). La taille peut aussi être indi-
quée par la syntaxe plus confortable +nM. Par exemple, +2500M pour une partition de
2 500 mégaoctets (Mo).
La taille d’un cylindre dépend du disque dur, du BIOS et éventuellement du contrôleur
SCSI. Cette information se trouve dans la troisième ligne de la sortie de la commande P.
Dans notre exemple, les cylindres sont des ensembles de 16 065 × 512 octets, soit 8 Mo.
Une fois la partition créée, vous pouvez réafficher la liste des partitions avec P. Pour finir,
vous pouvez créer de nouvelles partitions, supprimer des partitions déjà définies, etc.
Identifiants de fdisk crée les nouvelles partitions de type Linux Native (numéro d’identifiant 83). Pour
partitions
utiliser un autre type, vous devez indiquer le nouveau type de partition avec T (type).
Les identifiants de partitions courants, en hexadécimal, sont :
• 82 : partition d’échange Linux (swap) ;
• 83 : Linux (pour tous les systèmes de fichiers Linux : ext, reiser, xfs, etc.) ;
• 8e : Linux LVM ;
• fd : Linux RAID autodetect.
La commande L affiche tous les numéros d’identifiants disponibles. La liste contient égale-
ment des codes pour d’innombrables autres systèmes d’exploitation (DOS, Windows, Unix,
etc.).
Sauvegarde fdisk effectue les modifications uniquement lorsque la commande W (write, écrire) est
des modifi-
cations lancée. Vous pouvez vérifier avec V (verify, vérifier) que toutes les informations internes
sont cohérentes avec le disque. Il s’agit d’un contrôle de sécurité supplémentaire.
Linux Livre Page 411 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 411

Normalement, V ne fait qu’afficher le nombre de secteurs qui ne sont pas attribués à une
partition primaire ou logique.
Vous pouvez quitter fdisk à tout moment avec Q (quit, quitter) ou avec Ctrl+C. Votre disque
dur reste alors inchangé.

Les partitions créées avec fdisk sont vides : fdisk n’installe pas de système de fichiers ! La commande de
création d’un système de fichiers dépend du système souhaité (il s’agit par exemple de mkfs.ext3 pour
un système de fichier ext3). Les commandes sont présentées à la section suivante.

Augmentation fdisk ne peut pas, de base, augmenter la taille d’une partition existante. Il est toutefois pos-
de la taille
d’une partition sible de modifier la dernière partition du disque dur (ou la dernière partition logique d’une
partition étendue) lorsqu’il reste de la place derrière cette partition. Dans ce cas, vous pouvez
supprimer la partition et la recréer à sa nouvelle taille.
fdisk modifie uniquement la table de partitions ; il ne modifie pas les données sur le disque.
Le système de données de la partition n’est donc pas adapté. Seule une partie de la partition
est alors utilisée. Augmenter la taille du système de fichiers n’est possible que pour certains
systèmes de fichiers (voir la section 23.4).
La modification d’une partition ou d’un système de données est une opération très dange-
reuse qui n’est à conseiller qu’aux utilisateurs avancés. N’oubliez pas d’effectuer une
sauvegarde lorsque cela est possible.
Exemple Cet exemple montre comment ajouter une partition supplémentaire à un disque dur de
80 gigaoctets (Go). Il s’agit du premier disque de l’ordinateur. fdisk est donc lancé avec le
paramètre /dev/sda.
La commande P donne des informations sur l’état courant du disque. Le disque se compose
de 255 × 63 × 9 729 × 512 octets = 76 316 Mo.
Un cylindre occupe 16 065 × 512 octets = 7,8 Mo.
Le disque se compose d’une première partition primaire (12 cylindres, 94 Mo, système de récu-
pération Dell), d’une seconde partition primaire (1 215 cylindres, 9 477 Mo, partition Windows)
et d’une partition étendue (le reste des cylindres, 66 300 Mo). Dans cette partition étendue se
trouvent cinq partitions Linux et une partition d’échange Linux. La partition étendue dispose
d’espace libre entre les secteurs 3 783 et 9 729 (soit 46 597 Mo).
root# fdisk /dev/sda
Le nombre de cylindres pour ce disque est initialisé à 9729.
Il n’y a rien d’incorrect avec cela, mais c’est plus grand que 1024,
et cela pourrait causer des problèmes en fonction pour certaines
configurations :
1) logiciels qui sont exécutés à l’amorçage (i.e., vieilles versions de LILO)
2) logiciels d’amorçage et de partitionnement pour d’autres SE
(i.e., DOS FDISK, OS/2 FDISK)
Commande (m pour l’aide): p
Disque /dev/sda: 80.0 Go, 80026361856 octets
255 heads, 63 sectors/track, 9729 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Linux Livre Page 412 Mardi, 23. septembre 2008 1:05 13

412 LINUX

Identifiant disque: 0xeede9d79

Périphérique Amorce Début Fin Blocs Id Système


/dev/sda1 1 12 96358+ de Dell Utility
/dev/sda2 * 13 1228 9767520 7 HPFS/NTFS
/dev/sda3 1229 9729 68284282+ 5 Extended
/dev/sda5 1229 1350 979933+ 82 Linux swap / Solaris
/dev/sda6 1351 3782 19535008+ 83 Linux

N permet de créer une nouvelle partition logique. Le cylindre de début est le premier cylin-
dre libre. La taille est indiquée avec +1500M. Pour finir, la nouvelle table de partitions est à
nouveau affichée. Elle montre que la nouvelle partition occupe en fait 1 506 Mo (parce que
fdisk travaille uniquement sur des cylindres complets) :
Commande (m pour l’aide): n
Action de commande
l logique (5 ou plus)
p partition primaire (1-4)
l
Premier cylindre (3783-9729, par défaut 3783): <Entrée>
Utilisation de la valeur par défaut 3783
Dernier cylindre ou +taille or +tailleM ou +tailleK (3784-9729, par défaut
9729): +1500M
Commande (m pour l’aide): p
Disque /dev/sda: 80.0 Go, 80026361856 octets
255 heads, 63 sectors/track, 9729 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Identifiant disque: 0xeede9d79

Périphérique Amorce Début Fin Blocs Id Système


/dev/sda1 1 12 96358+ de Dell Utility
/dev/sda2 * 13 1228 9767520 7 HPFS/NTFS
/dev/sda3 1229 9729 68284282+ 5 Extended
/dev/sda5 1229 1350 979933+ 82 Linux swap / Solaris
/dev/sda6 1351 3782 19535008+ 83 Linux
/dev/sda7 3783 3974 1542208+ 83 Linux

W enregistre la table de partitions modifiée. Comme le disque est utilisé, fdisk ne parvient
pas à lire la nouvelle table. Il faut donc redémarrer l’ordinateur avant de pouvoir utiliser la
nouvelle partition.
Commande (m pour l’aide): w
La table de partitions a été altérée!

Appel de ioctl() pour relire la table de partitions.

AVERTISSEMENT: la re-lecture de la table de partitions a échoué avec l’erreur


16: Périphérique ou ressource occupé.
Le kernel va continuer d’utiliser l’ancienne table.
La nouvelle table sera utilisée lors du prochain réamorçage.
Synchronisation des disques.
Linux Livre Page 413 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 413

Raccourcis clavier de fdisk


D supprime la partition (delete)
L affiche les identifiants de partitions (list)
M affiche l’aide en ligne (menu)
N crée une nouvelle partition (new)
P affiche la liste des partitions (print)
Q termine le programme sans modifier la table de partitions (quit)
T modifie le type de partitions (type)
V vérifie la table de partitions (verify)
W écrit la table de partitions (write)

parted
La différence la plus importante entre fdisk et parted est que fdisk est un programme de
partitionnement pur tandis que parted tente (autant que possible) de prendre en compte le
contenu des partitions. parted peut par exemple modifier la taille d’une partition et du sys-
tème de fichiers qui s’y trouve sans perte de données. Cela fonctionne uniquement lorsque
parted peut accéder à diverses commandes et bibliothèques. La page http://www.gnu.org/
software/parted/ recense les nombreuses fonctions de parted.
Malheureusement, son utilisation est encore plus inconfortable que celle de fdisk. Par ailleurs,
toutes les modifications sont exécutées immédiatement et non après une écriture explicite sur le
disque. Pour ces raisons, il vaut mieux préférer fdisk ou un outil graphique de partitionnement.
Démarrage Indiquez au démarrage de parted le disque à utiliser (par défaut, /dev/hda). H+Entrée affi-
che les commandes disponibles. H+commande affiche un texte d’aide rapide à propos de la
commande. P affiche la table des partitions.
root# parted /dev/sda
GNU Parted 1.7.1
On utilise /dev/sda
Bienvenu dans GNU Parted ! Tapez "help" pour voir la liste des commandes.
(parted) h
check NUMERO effectue une simple vérification du système de fichiers
cp [PÉRIPHÉRIQUE-SOURCE] NOMBRE-SOURCE NOMBRE-DESTINATION copie le système de fichiers
vers une autre partition
help [COMMANDE] affiche l’aide générale, ou l’aide sur la COMMANDE
mklabel LABEL-TYPE crée une nouvelle étiquette de disque (table de partition)
mkfs NUMERO TYPE-FS crée un système de fichiers de type TYPE-SF sur la partition
NUMERO.
mkpart TYPE-PART [TYPE-SF] DÉBUT FIN crée une partition
mkpartfs TYPE-PART TYPE-SF DÉBUT FIN crée une partition avec un système de fichiers
move NUMERO DEPART FIN déplace la partition NUMERO.
name NUMERO NOM donne le nom NOM à la partition NUMERO.
print [free|NUMÉRO|all] affiche la table de partitions, une partition ou tous les
périphériques
Linux Livre Page 414 Mardi, 23. septembre 2008 1:05 13

414 LINUX

quit quitter le programme


rescue DEPART FIN restaure une partition perdue entre DEPART et FIN
resize NUMERO DÉPART FIN redimensionne la taille de la partition NUMERO et de son
système de fichiers.
rm NUMERO supprime la partition NUMERO
select PERIPHERIQUE sélectionne le périphérique à éditer.
set NUMERO STATUT DRAPEAU modifie le drapeau sur la partition NUMERO
toggle [NUMERO [DRAPEAU]] change l’état du DRAPEAU de la partition NUMERO
unit UNITE change l’unité par défaut à UNITE
version affiche la version utilisée de GNU Parted et les informations de copyright
(parted) p

Disque /dev/sda : 100,0GB


Taille des secteurs (logique/physique) : 512o/512o
Table de partitions : msdos

Numéro Début Fin Taille Type Système de fichiers Fanions


1 32,3kB 98,7MB 98,7MB primaire fat16
2 98,7MB 10,1GB 10,0GB primaire ntfs amorce
3 10,1GB 80,0GB 69,9GB étendue
5 10,1GB 11,1GB 1003MB logique linux-swap
6 11,1GB 31,1GB 20,0GB logique ext3
7 31,1GB 80,0GB 48,9GB logique ext3
Utilisation Les commandes mkpart et rm créent et suppriment des partitions. mkpartfs crée une nou-
velle partition et y crée le système de fichiers souhaité, pour autant que parted puisse accéder
aux programmes et bibliothèques spécifiques au système de fichiers.
Vous devez passer à la commande de création de partition le début et la fin souhaitée de la
partition. GB est une abréviation de gigaoctet. parted fait en sorte que les partitions se sui-
vent sans problème. Si vous créez une partition logique, vous devez auparavant agrandir la
partition étendue.
Exemple Les commandes suivantes agrandissent d’abord la partition étendue (numéro 3) de 10 Go.
Puis, une nouvelle partition logique y est créée, sans système de fichiers :
(parted) resize 4 10.1gb 90gb
(parted) mkpart logical 80gb 90gb
(parted) print
Disque /dev/sda : 100,0GB
Taille des secteurs (logique/physique) : 512o/512o
Table de partitions : msdos

Numéro Début Fin Taille Type Système de fichiers Fanions


1 32,3kB 98,7MB 98,7MB primaire fat16
2 98,7MB 10,1GB 10,0GB primaire ntfs amorce
3 10,1GB 90,0GB 79,9GB étendue
5 10,1GB 11,1GB 1003MB logique linux-swap
6 11,1GB 31,1GB 20,0GB logique ext3
7 31,1GB 80,0GB 48,9GB logique ext3
8 80,0GB 90,0GB 10,0GB logique

Pour créer une nouvelle partition en tant que partition d’échange ou comme partie d’un sys-
tème LVM ou RAID, vous devez modifier le type de partition. La commande correspon-
dante est set numéro_partition nom_attribut. Les différents attributs comprennent entre
autres amorce, swap, lvm et raid.
Linux Livre Page 415 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 415

Interfaces graphiques (gparted et qtparted)


parted dispose de deux interfaces graphiques : gparted pour les utilisateurs de Gnome et
qtparted pour les utilisateurs de KDE. Le développement de qtparted semble cependant
interrompu – la dernière version date de 2005. C’est pour cette raison que seul gparted
(voir Figure 23.1) a été testé dans le cadre de cet ouvrage. Ce programme peut également
être installé et lancé sous KDE, pour autant que les bibliothèques Gnome sous-jacentes
soient installées. Vous trouverez plus d’informations sur ces deux programmes aux adresses
http://gparted.sourceforge.net/ et http://qtparted.sourceforge.net/.
Au démarrage, gparted analyse les disques présents sur l’ordinateur.

gparted peut modifier uniquement les partitions qui ne sont pas en cours d’utilisation (c’est-à-dire cel-
les qui ne sont pas montées dans l’arborescence). Toutes les partitions utilisées sont affichées avec un
verrou et les boutons d’édition correspondants sont désactivés. La partition étendue est verrouillée dès
lors qu’au moins une des partitions logiques qui s’y trouvent est active. En pratique, vous devrez donc
utiliser souvent gparted sur un live CD, sans quoi presque toutes les opérations importantes sont
bloquées.

Contrairement à parted, gparted enregistre toutes les actions, mais ne les effectue pas direc-
tement. Annuler permet de revenir sur sa décision ; Appliquer effectue les actions.
gparted ne sait malheureusement pas créer de partitions LVM ou RAID.

Figure 23.1
Agrandir une partition
étendue.
Linux Livre Page 416 Mardi, 23. septembre 2008 1:05 13

416 LINUX

23.4 Types de systèmes de fichiers


Cette section est un aperçu des types de systèmes de fichiers utilisés sous Linux. Ce chapitre
traitera plus tard des types de fichiers importants : ext, reiserfs, vfat, ntfs et iso9660.
Vous pouvez déterminer quels systèmes de fichiers vous utilisez actuellement avec la
commande df -T.
Linux Les "systèmes de fichiers Linux" sont ceux qui sont appropriés à l’installation et à l’utilisa-
tion de Linux. Vous ne verrez pas de différence au quotidien entre les différents systèmes de
fichiers que vous pouvez utiliser. Les commandes élémentaires comme ls ou cp, la gestion
des droits d’accès, etc. fonctionnent quel que soit le système de fichiers.
Ils se différencient par des particularités qui n’intéressent généralement que les utilisateurs
avancés de Linux ou sur des points qui ne concernent qu’une utilisation en tant que ser-
veur : les performances d’accès à de très gros fichiers ou à de très nombreux petits fichiers,
l’efficacité des opérations de lecture et d’écriture, la charge du processeur, la fonction de
journalisation (comportement après une interruption), la fonction de quotas (la possibilité
de limiter l’espace maximal alloué à un utilisateur), la compatibilité avec NFS, la surcharge
de gestion, la prise en charge de droits d’accès supplémentaires (ACL), la compatibilité avec
SELinux, etc.
• ext. ext2 (extended filesystem, système de fichiers étendu, version 2) a longtemps été le
système de fichiers dominant sous Linux. Depuis 2002, ext3 a pris la suite. ext3 est com-
patible avec ext2 mais prend en charge des fonctions de journalisation et, depuis le
noyau 2.6, les ACL. La taille maximale d’un fichier est de 2 téraoctets (To) ; la taille
maximale du système de fichiers et de 8 To.
Le développement d’ext4 a commencé mi-2006. La taille maximale du système de
fichiers passe alors à un exaoctet (Eo), soit 1 048 576 To. L’utilisation pratique de ext4
n’est pas encore prévue.
• reiser. reiserfs (nommé d’après son créateur, Hans Reiser) fut le premier système de
fichiers disposant de la fonction de journalisation intégrée au noyau. La version 3.n était
le système de fichiers par défaut de SUSE jusqu’à sa version 10.1 ; c’est toujours le cas
pour la distribution Slackware. L’avantage principal de reiserfs sur ext3 est la gestion
des petits fichiers : elle est plus rapide et plus efficace en termes de place (un système de
données typique se compose essentiellement de petits fichiers).
Hans Reiser a complètement revu l’architecture de son système de fichiers pour reiser4
(reiserfs version 4), qui devient un des systèmes les plus modernes. Les nouveautés
importantes comptent une interface de greffons pour le développement modulaire de
fonctions supplémentaires. Cependant, en raison de divergences personnelles et de cri-
tiques sur la qualité du code, reiser4 ne fait toujours pas partie du noyau Linux officiel
à ce jour. Il est de ce fait peu répandu. reiser4 est incompatible avec reiserfs : pour
changer de version, il faut copier l’ancien système de fichiers reiserfs dans une
nouvelle partition reiser4.
Du fait des démêlés courants de Hans Reiser avec la justice américaine, l’avenir de ce
système de fichiers est inconnu.
• xfs. xfs était à l’origine le système de fichiers des stations de travail SGI qui utilisaient le
système d’exploitation IRIX. Il est surtout adapté à la gestion des très gros fichiers et il
Linux Livre Page 417 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 417

est par exemple idéal pour l’exploitation de flux vidéo. Il prend en charge les quotas et
les ACL. Le système de fichiers peut être agrandi en cours de fonctionnement.
• jfs. jfs signifie journaled file system (système de fichiers journalisé). Il a été développé
par IBM, puis porté sous Linux. jfs n’a jamais été très populaire sous Linux et est
actuellement dans l’ombre des autres systèmes de fichiers existants.

Il n’existe pas de système de fichiers "plus sûr" ou "plus rapide" : les performances dépendent de l’utili-
sation. Pour les débutants sous Linux, il est conseillé d’utiliser ext3. Ce système est très répandu, mûr et
stable. Ces éléments sont plus importants que quelques pour cent supplémentaires de performances sur
des applications précises. Vous trouverez une description plus précise de tous les types de systèmes de
fichiers dans Wikipedia, où les pages en anglais sont encore plus détaillées. Internet regorge de comparaisons
et de tests de rapidité.
Il est également possible d’exploiter plusieurs types de systèmes de fichiers, par exemple ext2 ou ext3
pour la partition d’amorçage (ce qui évite les problèmes liés à GRUB ou à LILO), ext3 pour la partition sys-
tème, reiserfs pour une partition de développement (contenant de nombreux petits fichiers) et xfs
pour une partition multimédia (qui contient généralement des fichiers plus gros).

Unix Si vous avez installé un second système Unix sur votre machine, les systèmes de fichiers
suivants peuvent servir pour les échanges de fichiers :
• efs. Le système efs est utilisé sur les anciennes machines SGI (IRIX, versions antérieures
à 6.0). Certains CD-ROM de SGI utilisent également ce format. Linux peut uniquement
le lire, il ne sait pas le modifier.
• sysv. Le système de fichiers sysv est utilisé par les systèmes SCO, XENIX et Coherent.
• ufs. Le système de fichiers UFS est utilisé par FreeBSD, NetBSD, NeXTSTEP et SunOS.
Linux peut uniquement lire ces systèmes. Pour accéder à une partition BSD, il faut utiliser
l’extension BSD Disklabel. Une extension similaire existe pour les tables de partitions
SunOS.
DOS, Les systèmes de fichiers suivants permettent d’échanger des fichiers avec les systèmes DOS,
Windows,
OS/2 et Windows, OS/2 et Macintosh :
Macintosh • vfat. Ce système est utilisé par Windows 9x/ME. Linux peut lire et écrire sur ce type de
partitions. Le pilote vfat peut également travailler avec le système de fichiers DOS (8+3
caractères).
• ntfs. Ce système de fichiers est utilisé sous Windows NT4, 2000, XP et Vista. Linux peut
y lire des fichiers et en écrire, avec certaines restrictions.
• hpfs. hpfs est le système de fichiers de OS/2. Linux peut y lire et écrire des fichiers.
• hfs et hfsplus. Ces systèmes de fichiers sont utilisés sur les ordinateurs Apple. Linux
peut y lire et écrire des fichiers.
CD-ROM et Les CD-ROM et DVD utilisent également certains systèmes de fichiers :
DVD
• iso9660. Le système de fichiers des CD-ROM est défini par la norme ISO 9660. Cepen-
dant, cette norme prévoit uniquement des noms de fichiers courts. Les noms de fichiers
longs sont définis selon le système d’exploitation par des extensions différentes et
Linux Livre Page 418 Mardi, 23. septembre 2008 1:05 13

418 LINUX

incompatibles entre elles. Linux peut lire aussi bien les extensions Rockridge, souvent
utilisées sous Unix, que les extensions Joliet, utilisées par Microsoft. De tels CD sont
reconnus automatiquement.
• udf. Le format Universal Disk Format (format de disque universel) s’est établi comme
successeur du format ISO 9660. Il est souvent utilisé sur les DVD.
Systèmes de Les systèmes de fichiers ne se trouvent pas obligatoirement sur des disques durs locaux,
fichiers réseau
vous pouvez également y accéder par le réseau. Le noyau Linux prend en charge divers
systèmes de fichiers réseau. Je vous indique ici les plus courants :
• smbfs/cifs. Ces systèmes de fichiers permettent de monter des répertoires réseau
Windows ou Samba dans l’arborescence de fichiers.
• nfs. Le Network File System (système de fichiers réseau) est le système de fichiers réseau
le plus important sous Unix.
• coda. Ce système de fichiers est le plus souvent comparé à NFS. Il fournit quelques fonc-
tionnalités supplémentaires, mais n’est pas très répandu.
• ncpfs. ncpfs est basé sur NetWare Core Protocol (protocole principal NetWare). Il est
utilisé par Novell NetWare.
Systèmes Il existe sous Linux de nombreux systèmes de fichiers qui ne servent pas à enregistrer des
de fichiers
virtuels fichiers sur un disque dur (ou sur un autre support de données) mais à échanger des infor-
mations entre le noyau et les applications. Ils sont indiqués par le mot clé nodev dans /proc/
filesystems. La liste suivante présente les systèmes les plus importants.
• devpts. Ce système de fichiers permet d’accéder aux pseudo-terminaux (PTY) via /dev/
pts/*, conformément à la spécification Unix 98. Les pseudo-terminaux émulent une
interface série. Ils sont utilisés sous Unix/Linux par les émulateurs de terminaux
comme xterm. Les périphériques comme /dev/ttypn sont traditionnellement utilisés. La
spécification Unix 98 définit à leur place de nouveaux périphériques. Vous trouverez
plus de détails à ce sujet dans le Text-Terminal-HOWTO (http://tldp.org/HOWTO/Text-
Terminal-HOWTO.html).
• proc et sysfs. Le système de fichiers proc reproduit les informations d’administration
du noyau et de l’administration des processus. Le système sysfs reproduit la connexion
entre le noyau et le matériel. Ils sont respectivement montés dans le système aux empla-
cements /proc et /sys.
• tmpfs. Ce système de fichiers est à la base de la mémoire partagée conformément à Sys-
temV. Il est généralement monté à l’emplacement /dev/shm et permet d’échanger effica-
cement des données entre deux programmes.
Dans certaines distributions (par exemple Ubuntu), les répertoires /var/run et /var/
lock sont également mis en œuvre avec tmpfs. Les fichiers de ces répertoires sont uti-
lisés par de nombreux démons réseau pour enregistrer l’identifiant des processus
ainsi que des informations d’accès à des fichiers. Grâce à tmpfs, les données sont
accessibles en mémoire vive. Cette méthode est plus rapide et permet de s’assurer
qu’il ne reste aucun fichier dans /var/run ou dans /var/lock au redémarrage de
l’ordinateur.
Linux Livre Page 419 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 419

• usbfs. usbfs fournit des informations au noyau 2.6 au sujet des périphériques USB
branchés. Il est généralement intégré au système de fichiers proc (/proc/bus/usb).
Autres Pour finir, je vous présente quelques systèmes de fichiers ou mots clés qui ne peuvent pas
systèmes
de fichiers être associés aux catégories précédentes.
• auto. Il n’existe en fait pas de système de fichiers auto. Cependant, ce mot clé peut être
utilisé dans /etc/fstab ou comme argument de la commande mount. Linux essaie alors
de reconnaître lui-même le système de fichiers considéré. Cela fonctionne dans la majo-
rité des cas.
• autofs, autofs4. autofs et sa nouvelle version autofs4 ne sont pas non plus de réels sys-
tèmes de fichiers. Il s’agit d’extensions du noyau qui montent automatiquement les systè-
mes de fichiers qui ont déjà été utilisés. Si un tel système n’est pas utilisé pendant une
certaine période, umount est automatiquement exécuté. Ce comportement est particuliè-
rement pratique lorsque seuls quelques répertoires NFS sont utilisés parmi une pléthore
d’entre eux disponibles sur le système.
En interne, le programme automount est lancé lors du démarrage du système par le
script /etc/init.d/autofs. automount est configuré dans le fichier /etc/auto.master.
Les programmes correspondants sont installés par défaut par Fedora et Red Hat. Cepen-
dant, autofs n’est actif qu’après la configuration de /etc/auto.master ou de /etc/
auto.misc. Vous trouverez plus de détails dans le Automount-Mini-HOWTO
(http://tldp.org/HOWTO/Automount.html).
• fuse. FUSE signifie Filesytem in Userspace (système de fichiers en espace utilisateur) et
permet de développer et d’utiliser des pilotes de systèmes de fichiers en dehors du
noyau. FUSE est donc toujours utilisé en conjonction avec un pilote externe. Il a été inté-
gré au noyau officiel 2.6.14. Il est par exemple mis en œuvre pour deux pilotes NTFS
(ntfsmount et ntfs-3g).
FUSE est pour le moment le seul moyen d’utiliser le système ZFS de Sun sous Linux.
ZFS est un système de fichiers moderne qui gère des quantités presque illimitées de
données. Il est cependant publié sous une licence incompatible avec la GPL et ne peut
donc pas être intégré au noyau.
• gfs et ocfs. gfs (Global File System, système de fichiers global) et ocfs (Oracle Cluster File
System, système de fichiers pour grappe d’Oracle) permettent de construire des systè-
mes de fichiers répartis sur le réseau auquel plusieurs ordinateurs peuvent accéder en
parallèle.
• jffs et cramfs. Ces deux systèmes sont utilisés dans les périphériques embarqués. Ils
permettent de compresser autant de fichiers que possible sur une mémoire Flash ou sur
une ROM.
• loop. Le périphérique de bouclage (loopback device) est un adaptateur qui permet de
considérer un fichier habituel comme un périphérique bloc. Vous pouvez alors y créer
un système de fichiers et le monter dans une arborescence de fichiers. La fonction du
noyau correspondante, loopback device support (prise en charge du périphérique de bou-
clage) est gérée par le module loop.
Linux Livre Page 420 Mardi, 23. septembre 2008 1:05 13

420 LINUX

Les périphériques de bouclage ont de nombreuses applications. Ils servent par exemple
à créer un disque virtuel pour GRUB ou LILO, à mettre en place des systèmes de fichiers
chiffrés, à tester des images ISO pour les CD, à accéder à des fichiers image, etc.
• none. none n’est pas un système de fichiers. Il offre la possibilité, assez peu utilisée, de
monter un répertoire local dans un autre emplacement de l’arborescence de fichiers.
Pour cela, vous devez passer à mount ou à fstab le type de fichiers none et l’option sup-
plémentaire bind. Le résultat est alors comparable à un lien symbolique, mais la mise en
œuvre interne en est très différente.
• unionfs/aufs. Le concept de unionfs et de sa variante aufs permet de créer plusieurs
systèmes de fichiers quasiment les uns au-dessus des autres, où le système le plus haut
a la priorité. unionfs et aufs sont utilisés sur de nombreux systèmes "live". Linux
démarre directement depuis le CD ou depuis le DVD. Un système de fichiers de disque
virtuel (RAM-disk) accessible en écriture surcharge celui du CD/DVD, en lecture seule.
Le système de fichiers visible contient alors la structure du CD/DVD, mais permet des
modifications sur le disque virtuel.
• Systèmes de fichiers chiffrés. Linux sait chiffrer le contenu d’un système de fichiers de
plusieurs manières différentes. Certaines méthodes se fondent directement sur leurs
propres systèmes de fichiers (par exemple CryptoFS ou eCryptfs).

Le fichier /proc/filesystems permet de savoir quels systèmes de fichiers sont intégrés au noyau ou
chargés en tant que modules. Les modules du noyau correspondants se trouvent dans le répertoire /lib/
modules/n/kernel/fs . Si le code source du noyau est installé, vous trouverez plus d’informations dans
/fs/filesystems.c et dans /Documentation/filesystems .

23.5 Gestion du système de fichiers (mount et /etc/fstab)


Une fois Linux installé, généralement, vous ne devez vous occuper de la gestion du système
de fichiers. Divers répertoires vous permettent d’accéder à la majorité des partitions de don-
nées du disque dur. Lorsque vous insérez un CD ou un DVD ou lorsque vous branchez un
support de données externe, le système de fichiers est monté automatiquement dans l’arbo-
rescence. Tout fonctionne presque comme par magie.
Cette section est un aperçu de ce qui se passe en coulisses et décrit les commandes mount et
umount ainsi que le fichier /etc/fstab.
• mount et umount sont exécutées lorsqu’une partition ou un support de données sont
intégrés ou supprimés dans l’arborescence. Vous pouvez les lancer vous-même en tant
que root si les mécanismes automatiques échouent.
• Le fichier de configuration /etc/fstab contrôle quels systèmes de fichiers sont intégrés
automatiquement à l’arborescence lors du démarrage et avec quelles options. /etc/
fstab est configuré pendant l’installation de Linux. Si vous n’êtes pas satisfait de cette
configuration ou si vous modifiez votre environnement, vous devez modifier ce fichier
avec un éditeur de texte. Cette section décrit la syntaxe du fichier.
Linux Livre Page 421 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 421

De manière surprenante, il n’existe que peu d’outils de configuration graphiques utilisables à la place de
mount ou pour modifier /etc/fstab. Au nombre des rares exceptions, on compte le module de YaST Sys-
tème, Partitionneur (SUSE) ainsi que le programme admin-disks, disponible sur certains systèmes Gnome.
Cependant, l’utilisation de ces outils implique que vous connaissiez les concepts sous-jacents de mount et de
/etc/fstab.
Les supports de données externes comme les clés USB ou les disques durs Firewire constituent une excep-
tion : de nombreuses distributions montent automatiquement ces supports dans l’arborescence. Les méca-
nismes nécessaires à cela sont cependant relativement complexes et ne sont pas réalisables directement par
/etc/fstab.

Déterminer l’état courant d’un système de fichiers


df Pour savoir comment votre système Linux est utilisé, le plus simple est de lancer la commande
df. Celle-ci affiche l’emplacement où sont montées les partitions du disque, les supports de
données, etc. et l’espace disponible dont le système de fichiers dispose.
Cet exemple montre les systèmes de fichiers d’un ordinateur de tests. Il y a deux partitions
Linux : la partition système / et la partition de données /vmware. Ces deux partitions utilisent le
système de fichiers ext3.
/win-c et /win-d donnent accès aux fichiers du Windows XP installé sur le même ordina-
teur. /media/dvd contient un DVD de données. Pour finir, la partition /data est une partition
NFS distante sur un autre ordinateur du réseau local. /dev/shm est un système de fichiers
virtuel servant à échanger des données entre processus.
utilisateur$ df -T
Sys. de fich. Type 1K-blocs Occupé Disponible Capacité Monté sur
/dev/hdc2 ext3 6940516 6422792 159476 98% /
/dev/hdc5 ext3 14428928 4935304 8760660 37% /vmware
/dev/hda1 ntfs 53872528 49505408 4367120 92% /win-c
/dev/hda2 vfat 4715772 3269176 1446596 70% /win-d
mars:/data nfs 97881408 78792480 14116832 85% /data
tmpfs tmpfs 777764 0 777764 0% /dev/shm
mount La commande mount sans options supplémentaires affiche des options plus détaillées encore
sur les systèmes de fichiers montés. Le résultat affiche également divers systèmes de fichiers
virtuels. De plus, la commande affiche les options actives de mount. L’exemple suivant a été
mis en forme en colonnes pour améliorer la lisibilité.
utilisateur$ mount
/dev/hdc2 on / type ext3 (rw)
/dev/hda2 on /win-d type vfat (rw,uid=501,gid=100)
/dev/hdc5 on /vmware type ext3 (rw,acl,user_xattr)
/dev/hda1 on /win-c type ntfs (rw,uid=501,gid=100)
mars:/data on /data type nfs (rw,noexec,nosuid,nodev,
addr=192.168.0.1,user=kofler)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
Linux Livre Page 422 Mardi, 23. septembre 2008 1:05 13

422 LINUX

automount on /net type autofs (rw,fd=4,pgrp=1950,minproto=2,


maxproto=4)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

Les fichiers /etc/mtab et /proc/mounts contiennent les mêmes informations. Ils compren-
nent une liste de tous les supports de données montés, associés à leurs types de systèmes de
fichiers et aux options de mount utilisées. /etc/mtab est modifié chaque fois qu’un système
de fichiers est monté ou démonté. La syntaxe de mtab est la même que celle de /etc/fstab. /
proc/mounts contient également des options qui ne sont indiquées explicitement ni par
mount ni par /etc/fstab.

Monter et démonter des systèmes de fichiers manuellement


Après l’installation d’une distribution Linux récente, le système est configuré de sorte que
vous n’ayez que rarement besoin de mount. Tous les systèmes Linux sont montés dans
l’arborescence et une nouvelle fenêtre du gestionnaire de fichiers de KDE ou de Gnome
apparaît automatiquement lors de l’insertion d’un CD/DVD ou lors de la connexion d’une
clé USB. Derrière ces mécanismes automatiques se trouve toujours la commande mount.
La syntaxe de mount est celle-ci :
mount [options] périphérique répertoire

Les options indiquent entre autres le type de système de fichiers (-t xxx). Le nom du péri-
phérique indique la partition ou le lecteur. Le répertoire est un répertoire du système de
fichiers courant (il doit déjà exister ; vous pouvez le créer avec mkdir).
mount peut généralement être exécuté uniquement par root. Cependant, le fichier /etc/
fstab permet d’indiquer des partitions individuelles pour lesquelles tous les utilisateurs
peuvent exécuter mount (option user ou users).
Exemples Le plus simple pour comprendre mount est de présenter quelques exemples. Le premier permet
d’accéder aux fichiers d’une partition Windows 9x/ME depuis le répertoire /windows :
root# mkdir /windows
root# mount -t vfat /dev/sda1 /windows

La commande suivante monte le lecteur CD-ROM qui contient un CD de données (système


de fichiers ISO 9660) dans le répertoire /media/cdrom. Le périphérique /dev/scd0 indique
que l’accès au lecteur se fait par le système SCSI du noyau.
root# mount -t iso9660 /dev/scd0 /media/cdrom

Lorsque les paramètres du lecteur CD (type de système de fichiers, nom du périphérique,


répertoire) sont enregistrés dans /etc/fstab, vous pouvez monter le CD avec la commande
suivante :
root# mount /media/cdrom

mount -o remount permet de remonter un système de fichiers déjà monté en modifiant ses
options. La commande suivante active par exemple l’option exec pour un DVD afin de
pouvoir exécuter les programmes qui s’y trouvent :
root# mount /media/dvd -o remount,exec
Linux Livre Page 423 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 423

Si le montage de la partition système a rencontré un problème pendant le démarrage de


l’ordinateur, la partition est montée en lecture seule. Pour corriger l’origine du problème
(par exemple de mauvaises options dans /etc/fstab), il faut souvent modifier des fichiers
sur le système de fichiers. Pour cela, lancez la commande suivante, qui remonte la partition
système avec des droits en écriture :
root# mount -o remount,rw /

Pour supprimer un système de fichiers de l’arborescence, lancez la commande umount :


root# umount /win-c

Monter automatiquement des systèmes de fichiers


Il serait très pénible de devoir monter toutes les partitions à chaque démarrage du système,
de devoir lancer mount avec toutes ses options à chaque changement de CD, etc. Le travail
est facilité par le fichier /etf/fstab. Il indique quels supports de données doivent être pris
en compte dans le système de fichiers au démarrage. Dans tous les cas, fstab doit contenir
la partition système ainsi que tous les systèmes nécessaires à la gestion interne du système.
Exemple Selon la distribution, un fichier fstab minimal peut ressembler à ce qui suit :
# deux lignes d’exemple de /etc/fstab
/dev/sda2 / ext2 defaults 1 1
none /proc proc defaults 0 0
... autres systèmes de fichiers virtuels (/dev/pts, /dev/shm etc.)

La première ligne indique qu’il faut utiliser la deuxième partition du premier disque IDE
comme répertoire système. Selon la partition sur laquelle vous avez installé Linux, hda2 doit
être remplacé par le bon nom de périphérique.
La deuxième ligne monte le système de gestion des processus. Les fichiers et répertoires du
répertoire /proc n’existent en fait pas sur le disque dur, il s’agit d’une représentation des
données utilisées en interne par le noyau.

Certaines distributions, pour la plupart anciennes, modifient automatiquement le fichier /etc/fstab dès
qu’un nouveau support de données est ajouté ou supprimé dans le système. Ces modifications automati-
ques peuvent être gênantes : des lignes peuvent être écrasées ou supprimées.

Syntaxe de /etc/fstab
L’exemple ci-dessus représente le format principal de fstab. Chaque ligne décrit, en six
colonnes, un support de données (une partition, un système de fichiers).
Première La première colonne contient le nom du périphérique du support de données. Vous trouverez
colonne
des informations sur la nomenclature des partitions de disque à la section 23.2.
Au lieu d’utiliser le nom d’un périphérique, vous pouvez utiliser son nom ou son identi-
fiant. La syntaxe correcte dans ces cas est alors LABEL=chaîne_de_caractères ou UUID=nnn-
nnn. /lib/udev/vol-id permet d’obtenir les noms et UUID d’une partition. Pour modifier
Linux Livre Page 424 Mardi, 23. septembre 2008 1:05 13

424 LINUX

ces données, il faut utiliser différents outils selon le format du système de fichiers (par exemple
tune2fs ou reiserfstune).
root# /lib/udev/vol_id /dev/sda9
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=a12b639e-fafc-4a21-ad43-4852f47bd571
ID_FS_LABEL=/12
ID_FS_LABEL_SAFE=12

L’avantage des noms de partitions ou des libellés par rapport aux noms de périphériques est
qu’ils restent identiques même quand le périphérique a changé de nom. Cela arrive relativement
fréquemment pour les disques SCSI lorsqu’un lecteur supplémentaire est ajouté.
Cette méthode présente cependant deux inconvénients. D’une part, fstab en devient plutôt
moins clair (les UUID le rendent même illisible). D’autre part, si plusieurs distributions Linux
sont installées en parallèle, des problèmes supplémentaires peuvent se poser. En effet, lors de
l’installation, la partition d’échange et éventuellement d’autres partitions sont reformatées. Par
conséquent, de nouveaux UUID sont générés. Les distributions installées ne peuvent donc plus
reconnaître ces partitions. Il faut alors modifier fstab pour lui indiquer les nouveaux UUID.
Deuxième La deuxième colonne indique dans quel répertoire le support de données doit être monté.
colonne
Les répertoires de la deuxième colonne doivent déjà exister. Le répertoire ne doit pas néces-
sairement être vide, mais vous ne pourrez plus accéder aux fichiers qui s’y trouvent après
avoir monté le système de fichiers.
Troisième La troisième colonne indique le système de fichiers. Le tableau suivant liste tous les systèmes
colonne
de fichiers importants, en ordre alphabétique.

Systèmes de fichiers pris en charge par Linux (troisième colonne de /etc/fstab)


auto système de fichiers à reconnaître automatiquement
cifs système de fichiers réseau de Windows (Samba)
devpts pseudo-terminaux conformément à la spécification Unix 98
ext2 ext version 2
ext3 ext version 3
ext4 ext version 4
iso9660 CD-ROM, DVD
nfs système réseau Unix (NFS)
ntfs système de fichiers Windows NT/2000/XP/Vista
proc gestion des processus /proc
reiserfs reiser version 3.n
reiser4 reiser version 4.n
smbfs système de fichiers réseau de Windows (Samba)
swap partition ou fichier d’échange
sysfs gestion du système (/sys)
tmpfs échange de données entre les programmes conformément à SystemV (mémoire partagée)
udf Universal Disk Format (DVD, CD-RW)
usbfs gestion des périphériques USB
vfat système de fichiers Windows 9x/ME
Linux Livre Page 425 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 425

On peut également indiquer plusieurs systèmes de fichiers, séparés par des virgules. Par
exemple, les CD et DVD peuvent être configurés avec l’option iso9660,udf car seuls ces
deux systèmes de fichiers sont généralement utilisés dans ce cas. mount choisit alors le format
qu’il va utiliser.
Quatrième La quatrième colonne contient des informations relatives à l’accès au support de données.
colonne
Les options sont séparées par des virgules ; les espaces ne sont pas autorisées. Le tableau
suivant énumère les options les plus importantes de mount. Vous en trouverez une référence
complète dans man mount. Si vous ne souhaitez pas passer d’options, utilisez le mot clé
defaults.

Options de mount (quatrième colonne de /etc/fstab)


defaults utiliser les options par défaut
dev prendre en compte les identificateurs des périphériques caractère ou bloc
exec autoriser l’exécution de programmes (par exemple pour les lecteurs CD/DVD)
noauto ne pas monter au démarrage du système
nodev ignorer les identificateurs des périphériques caractère ou bloc
noexec interdire l’exécution de programmes
nosuid ne pas prendre en compte les bits d’accès sid et gid
sync ne pas mettre en tampon les accès en écriture (plus sûr, mais plus lent)
owner autoriser le propriétaire à exécuter (u)mount
user autoriser tous les utilisateurs à exécuter mount ; seul l’utilisateur qui a appelé mount
peut appeler umount
users autoriser tous les utilisateurs à appeler (u)mount

Cinquième La cinquième colonne contient des informations pour le programme dump et est actuelle-
colonne
ment ignorée. Généralement, la partition système contient la valeur 1, et les autres partitions
ou supports de données contiennent la valeur 0.
Sixième La sixième colonne indique si et dans quel ordre le système de fichiers doit être vérifié au
colonne
démarrage. Dans la plupart des distributions, la valeur de cette colonne est 1 pour la parti-
tion système et 0 pour toutes les autres, ce qui signifie que seule la partition système est vérifiée
et éventuellement réparée.
Si vous souhaitez vérifier d’autres partitions automatiquement, donnez-leur la valeur 2
dans cette colonne. Les systèmes de fichiers qui ne doivent pas être vérifiés doivent avoir la
valeur 0.
Si les valeurs de la cinquième et de la sixième colonne ne sont pas renseignées dans /etc/
fstab, la valeur 0 est utilisée par défaut.
Linux Livre Page 426 Mardi, 23. septembre 2008 1:05 13

426 LINUX

23.6 Les systèmes de fichiers Linux


Cette section traite des trois systèmes de fichiers les plus importants sous Linux, ext3, rei-
serfs et xfs. Avant d’en décrire la mise en œuvre et l’administration, nous allons établir ici
quelques bases indépendantes du système de fichiers. Cette section de généralités explique
des concepts tels que la journalisation ou LFS et est en quelque sorte un glossaire pour les
sections suivantes.

Généralités
Journalisation Tous les systèmes de fichiers actuels sous Linux prennent en charge des fonctions de
journalisation. Dans sa forme la plus simple, la journalisation implique qu’au début et à
la fin de chaque opération sur les fichiers, celle-ci est enregistrée dans un fichier spécifi-
que. Grâce à cet enregistrement, vous pouvez vérifier si une opération donnée a été com-
plètement exécutée ou non. Si ce n’est pas le cas, elle peut être répétée (dans le
vocabulaire des bases de données, on parle de transactions). Dans les systèmes de journa-
lisation avancés, il est également possible d’enregistrer les modifications propres aux
fichiers. Cela ralentit le fonctionnement quotidien, mais fournit plus de possibilités en ce
qui concerne la reconstruction.
Lorsqu’une opération ne se termine pas correctement, le fichier de journalisation entre en
jeu. Lorsque la journalisation est simple, les modifications sont perdues (n’attendez pas des
miracles de la journalisation), mais l’état précédent du fichier est rétabli.
L’avantage des fonctions de journalisation est que le système de fichiers peut être ramené
très rapidement à un état cohérent lors du démarrage de l’ordinateur et être utilisé presque
immédiatement. C’est une différence majeure par rapport à ce qui se faisait précédemment :
après une interruption ou une coupure de courant, le système de fichiers complet devait être
parcouru à la recherche d’erreurs. Cela durait plusieurs minutes, voire des heures pour les
gros disques durs.

La journalisation n’offre pas de garantie en ce qui concerne la cohérence du système de fichiers après une
coupure de courant. Le problème provient des disques durs. Ceux-ci utilisent, pour des raisons d’efficacité, de
la mémoire tampon interne. Il peut alors arriver que, du point de vue du système de fichiers, les données
soient reçues et enregistrées par le disque alors qu’elles ne sont écrites sur le disque dur que quelques secondes
plus tard. Si la coupure de courant survient pendant cet intervalle de temps, les données de la mémoire
tampon sont perdues. Certains disques durs permettent de désactiver ce cache. Les performances d’écriture
s’en ressentent fortement, ce qui explique pourquoi on évite généralement de le faire.
Indépendamment du cache d’écriture, le comportement du disque dur lors d’une coupure d’électricité sou-
daine est imprévisible.
Pour formuler cela autrement, les systèmes de fichiers journalisés sont une belle chose, mais ils n’évitent
pas les pertes de données consécutives à une coupure. Si vos données ont une certaine valeur, investissez
100 euros dans un petit onduleur qui permettra à votre ordinateur de s’arrêter proprement, même en cas
de coupure d’électricité.
Linux Livre Page 427 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 427


Vérification Lorsque Linux détecte, au moment du démarrage, que l’ordinateur n’a pas été éteint correc-
automatique
du système de tement, il lance une vérification pour la partition système et, selon la configuration, pour
fichiers d’autres partitions listées dans /etc/fstab. La vérification dépend de la valeur de la sixième
colonne du fichier, comme l’explique la section 23.5. Grâce à la journalisation, cette vérification
ne prend normalement que quelques secondes.
Indépendamment de cela, certains systèmes de fichiers (entre autres toutes les versions
d’ext) vérifient régulièrement leur cohérence. Ces tests relativement longs sont lancés au
démarrage de l’ordinateur au bout d’une certaine durée ou d’un certain nombre de montages
de la partition.
Lorsque les fonctions de journalisation ont été introduites, il a souvent été argumenté que ce
type de vérification était redondant. Cela n’est malheureusement pas tout à fait vrai : un sys-
tème de fichiers peut souffrir d’incohérences dues à des erreurs matérielles et la probabilité
de ce type d’erreur augmente avec la taille du disque. La spécification d’un disque dur de
320 Go indique que la probabilité d’erreur (non-recoverable read errors per bits read, nombre
d’erreurs de lecture non récupérables par bit lu) est de 1/1014. Cela semble négligeable.
Cependant, ce disque contient 2,56 × 1013 bits. Les erreurs sont donc probables en fonction-
nement normal, en dehors même de tout incident. Un test de cohérence régulier du système
de fichiers ne permet pas d’éviter ces erreurs, mais il permet de détecter et de corriger les
comportements d’erreur (au moins lorsque des zones critiques pour la gestion interne du
système de fichiers sont touchées).
Les systèmes de fichiers présentés dans cet ouvrage ne tolèrent malheureusement pas les
erreurs. Les systèmes qui détectent les erreurs matérielles grâce à des sommes de contrôle
ou qui peuvent corriger de telles erreurs grâce à un enregistrement redondant ne sont
actuellement que des sujets de recherche.
Les détails de la vérification des systèmes de fichiers au démarrage dépendent souvent de la
distribution. Généralement, elle se fait sans interaction de l’utilisateur et ralentit visiblement
le processus de démarrage. Cela ne devient réellement gênant que lorsque des erreurs non
récupérables sont rencontrées. Dans ce cas, la partition est montée en lecture seule. Vous
devez alors vous connecter en tant que root, répéter la vérification du système de fichiers et
indiquer de manière interactive ce que doit faire l’outil de vérification avec les données
défectueuses. Dans la plupart des cas, vous reviendrez ici à un état cohérent du système de
fichiers, mais il est possible que vous n’arriviez pas à secourir tous les fichiers. Pour finir,
redémarrez l’ordinateur.
Vérification Vous pouvez vérifier manuellement un système de fichiers avec la commande fsck. Cepen-
manuelle du
système de dant, la partition concernée ne peut pas être utilisée pendant ce temps et doit être démontée
fichiers avec umount.
Vous ne pouvez pas vérifier la partition système lorsque le système fonctionne car vous ne
pouvez pas la démonter. Pour forcer la vérification, lancez en tant que root la commande
touch /forcefsck et redémarrez l’ordinateur. Ce fichier est également créé lorsque vous lancez
shutdown avec l’option -F.
Linux Livre Page 428 Mardi, 23. septembre 2008 1:05 13

428 LINUX

Lorsque le fichier /forcefsck existe, presque toutes les distributions lancent une vérification
du système de fichiers. Si ce n’est pas le cas, utilisez un système de secours ou un live CD
(Knoppix) et lancez-y fsck.
Limites de Auparavant, la taille maximale des fichiers était une question récurrente, dont la réponse
taille
dépendait du noyau, de l’architecture du processeur, de la bibliothèque glibc et du système
de fichiers. Les distributions courantes prennent en charge l’extension LFS dans la biblio-
thèque glibc. La taille des fichiers est alors, du point de vue de Linux, presque illimitée :
263 octets.
En pratique, il existe cependant certaines limites. Même aujourd’hui, certains programmes
se heurtent à la limite de 2 Go, ce qui peut par exemple rendre le téléchargement d’images
ISO de DVD pénible. Utilisez des outils adaptés, comme wget à partir de sa version 1.10.
D’autre part, les systèmes de fichiers ont différentes limites pour la taille maximale des fichiers
et des systèmes de fichiers. Le tableau suivant résume ces données. Ici, 1 To = 1024 Go.

Système de fichiers Taille maximale d’un fichier Taille maximale du système


ext2 / ext3 2 To 8 To (en blocs de 4 Ko)
ext4 inconnue 1 048 576 To
reiserfs 8 To 16 To
reiser4 inconnue inconnue
xfs 9 437 184 To 9 437 184 To

Changement Il n’existe pas d’outil pour changer de système de fichiers (par exemple passer une partition
de système de
fichiers de ext3 à reiserfs). La seule manière consiste à créer une nouvelle partition formatée dans
le système souhaité et à y copier tous les fichiers.

Systèmes de fichiers ext (ext2, ext3 et ext4)


Les différentes versions de ext dominent le monde des systèmes de fichiers sous Linux :
• ext, la première version du système de fichiers, n’a été exploitée que brièvement aux
débuts de Linux (1992). La taille maximale du système de fichiers état de 2 Go.
• ext2 était le système de fichiers dominant sous Linux entre 1993 et 2001. La taille maxi-
male du système de fichiers était de 8 To.
• Les nouveautés principales de ext3 étaient les fonctions de journalisation et la prise en
charge des ACL (à partir du noyau 2.6). La large adoption de ext3 est probablement due
à sa compatibilité avec ext2. Les systèmes ext2 n’avaient pas besoin d’être formatés et
pouvaient être transformés facilement en systèmes ext3. Un système ext3 peut même
être monté en tant que système ext2.
• Le développement de ext4 a commencé en 2006. ext4 fait partie du noyau officiel
depuis le noyau 2.6.19, mais il a encore actuellement un statut expérimental et ne doit
pas être utilisé pour des données importantes.
La taille maximale du système passe à 1 Eo (1 048 576 To) et les dates des modifications
de fichiers sont enregistrées plus précisément. De plus, diverses optimisations de per-
formances sont prévues. La compatibilité est également prise en compte afin d’assurer
Linux Livre Page 429 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 429

des migrations sans problème de ext3 à ext4. Attention, il n’est en revanche plus possible
de passer de ext4 à ext3.
La compatibilité entre les différents systèmes ext est également visible du fait que divers
outils d’administration ont toujours un 2 dans le nom de la commande même s’ils fonctionnent
également pour les versions plus récentes (par exemple tune2fs).
Les informations qui suivent sont valides pour le système ext3. Presque toutes les distributions
actuelles utilisent aujourd’hui ext3 par défaut.
/etc/fstab Les systèmes ext3 sont généralement définis dans /etc/fstab de la manière suivante :
/dev/sdb8 / ext3 defaults 1 1
/dev/sdb9 /data ext3 defaults 0 0
/dev/sdb9 /acl-data ext3 acl,user_xattr 0 0

Création d’un Les systèmes de fichiers ext2 et ext3 sont tous deux formatés avec la commande mke2fs.
système de
fichiers ext3 Celle-ci peut également être appelée sous la forme mkfs.ext2 ou mkfs.ext3. L’option -j sert
à créer un fichier de journalisation pour le système de données ; ce fichier est la seule diffé-
rence entre ext2 et ext3. Vous trouverez une référence complète de mke2fs dans man mke2fs.
Dans l’exemple suivant, un système ext3 est créé sur une clé USB de 64 Mo. mke2fs choisit
lui-même une taille de bloc de 1 kilooctet (Ko) et choisit également d’utiliser 256 inodes par
mégaoctet (ce qui correspond à l’option -i 4096) :
root# mke2fs -j /dev/sda14
mke2fs 1.40.8 (13-Mar-2008)
Étiquette de système de fichiers=
Type de système d’exploitation : Linux
Taille de bloc=1024 (log=0)
Taille de fragment=1024 (log=0)
16000 i-noeuds, 64000 blocs
3200 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=1
Nombre maximum de blocs du système de fichiers=65536000
8 groupes de blocs
8192 blocs par groupe, 8192 fragments par groupe
2000 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
8193, 24577, 40961, 57345

Écriture des tables d’i-noeuds : complété


Création du journal (4096 blocs) : complété
Écriture des superblocs et de l’information de comptabilité du système de
fichiers : complété

Le système de fichiers sera automatiquement vérifié tous les 30 montages ou


après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.

Modes de ext3 peut mener sa journalisation de trois manières différentes :


journalisation
• data=ordered. C’est le mode par défaut. Seules les métadonnées sont enregistrées dans
le journal (les informations sur les fichiers et non leur contenu). Dans le journal, les
Linux Livre Page 430 Mardi, 23. septembre 2008 1:05 13

430 LINUX

fichiers ne sont indiqués comme étant validés (commited) que lorsqu’ils sont copiés
entièrement sur le disque.
Après un plantage, le système de fichiers peut revenir très rapidement à un état cohé-
rent car tous les fichiers qui n’ont pas été complètement enregistrés sont identifiables
immédiatement. Cependant, il est impossible de les récupérer.
• data=writeback. Ce mode est comparable au mode ordered. La seule différence est que
le journal et les opérations sur les fichiers ne sont pas toujours complètement synchro-
nes (ext3 n’attend pas la fin de l’opération de l’enregistrement pour marquer le fichier
comme committed).
Ce mode est plus rapide que le mode ordered. Après un plantage, l’intégrité du système de
fichiers est assurée dans la même mesure. Cependant, il arrive que les fichiers contien-
nent des anciennes données. Le résultat est le même que pour une récupération après
un plantage sous ext2, mais cette correction est nettement plus rapide avec ext3.
• data=journal. Au contraire des deux autres, ce mode enregistre aussi les modifications
des données. Toutes les modifications sont donc enregistrées deux fois (une fois dans le
journal et une fois dans le fichier). ext3 est donc nettement plus lent dans ce mode. Les
fichiers dont les modifications se trouvent dans le journal (mais pas encore enregistrées
dans le fichier) peuvent être récupérés après un plantage.
Si vous ne passez pas d’option particulière à mount, data=ordered est utilisé. Pour utiliser un
autre comportement de journalisation, passez-le à mount avec l’option -o :
root# mount -t ext3 -o data=journal /dev/sda12 /test

Vous pouvez aussi régler ce comportement dans /etc/fstab :


/dev/sda12 /test ext3 data=journal 1 0

En interne, c’est le démon de journalisation intégré au noyau kjournald qui s’occupe de l’actualisation
régulière du fichier de journalisation. Ce processus est démarré automatiquement lorsqu’un système de
fichiers ext3 est monté dans l’arborescence. kjournald est responsable du fait qu’un accès disque ait
lieu toutes les cinq secondes, même lorsque l’ordinateur n’effectue apparemment aucune tâche.

Conversion de Pour convertir un système ext2 au format ext3, il suffit de lancer la commande suivante :
ext2 à ext3
root# tune2fs -j /dev/sda5

Vérification du Les systèmes de fichiers ext sont régulièrement contrôlés lors du démarrage de l’ordinateur,
système de
fichiers après un nombre donné de commandes mount (par défaut 36) ou après une durée donnée
(par défaut 6 mois), quel que soit le premier critère atteint. Certaines distributions modifient
ces paramètres pour des valeurs bien plus grandes, voire désactivent (avec la valeur 0) com-
plètement les vérifications. La plupart des distributions configurent fstab pour que seule la
partition système soit vérifiée (cela correspond à la sixième colonne, voir la section 23.5).
Malgré la journalisation, il est conseillé de vérifier le système de fichiers régulièrement (au
moins une à deux fois par an). Ainsi, vous pouvez détecter d’éventuelles défaillances maté-
rielles. Il arrive également que le pilote du système de fichiers contienne des erreurs encore
inconnues. Plus les erreurs sont corrigées tôt, plus les dégâts potentiels sont faibles.
Linux Livre Page 431 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 431

Vous pouvez lancer manuellement une vérification avec la commande fsck.ext2 ou


fsck.ext3. La partition doit être démontée lors du contrôle.
root# fsck.ext3 -f /dev/sda13
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l’information du sommaire de groupe
(/dev/sda13): 152190/640000 files (1.0% non-contiguous),
722668/1279167 blocks

Modification Vous pouvez définir et modifier l’intervalle de vérification du système de fichiers avec
de l’intervalle
de vérification tune2fs. Les options -c et -i permettent de modifier respectivement le nombre de montages
automatique de la partition et l’intervalle, en jours :
root# tune2fs -l /dev/sda12
...
Mount count: 57
Maximum mount count: 500
Last checked: Thu Dec 4 18:10:14 2003
Check interval: 5184000 (2 months)
...
root# tune2fs -c 100 -i 90 /dev/sda12
Setting maximal mount count to 100
Setting interval between check 7776000 seconds

Définition e2label permet de voir et de définir le nom interne d’une partition ext3 :
du nom de
la partition root# e2label /dev/sda1 mylabel

Vous pouvez donner ces noms dans la première colonne de /etc/fstab à la place du nom du
périphérique.
Définition Le système de fichiers reçoit automatiquement un UUID lors de sa création. Vous pouvez le
de l’UUID
connaître avec la commande vol_id ou /lib/udev/vol_id. Vous pouvez éventuellement le
modifier avec tune2fs -U. Cette modification peut être faite même lorsque la partition est
montée. Vous pouvez indiquer un identifiant aléatoire (random) ou prédéterminé.
root# tune2fs -U random /dev/sda1
root# tune2fs -U f7c49568-8955-4ffa-9f52-9b2ba9877021 /dev/sda1

Redimension- resize2fs permet de redimensionner un système de fichiers ext3. Attention, vous devez
nement d’un
système de auparavant modifier la taille de la partition !
fichiers ext3 Dans l’exemple suivant, la partition de 1.5 Go /dev/sdb11 est supprimée et recréée avec une
taille de 2 Go. Cela se passe sans problème : il s’agit de la dernière partition du disque et il y
a encore de la place sur le disque dur.
root# umount /dev/sdb11
root# fdisk /dev/sdb
Commande (m pour l’aide): p
255 heads, 63 sectors/track, 2055 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Linux Livre Page 432 Mardi, 23. septembre 2008 1:05 13

432 LINUX

Périphérique Amorce Début Fin Blocs Id Système


/dev/sdb11 1334 1525 1542208+ 83 Linux
Commande (m pour l’aide): d
Numéro de partition (1-11): 11
Commande (m pour l’aide): n
Action de commande
l logique (5 ou plus)
p partition primaire (1-4)
l
Premier cylindre (1334-2055, par défaut 1334): <Entrée>
Utilisation de la valeur par défaut 1334
Dernier cylindre ou +taille ou +tailleM ou +tailleK (1334-2055, par défaut
2055): +2000M

Commande (m pour l’aide): w


La table de partitions a été altérée!
Appel de ioctl() pour relire la table de partitions.
AVERTISSEMENT: la re-lecture de la table de partitions a échoué avec l’erreur
16: Device or resource busy.
La nouvelle table sera utilisée lors du prochain réamorçage.

Après un redémarrage, on peut sans problème modifier le système de fichiers de la partition


/dev/hdb11. Il faut vérifier le système avec e2fsck -f avant de lancer resize2fs.
root# e2fsck -f /dev/sdb11

root# resize2fs /dev/sdb11

Le système de fichiers /dev/sdb11 a maintenant une taille de 512064 blocs.

Il existe, pour le noyau 2.6, un correctif permettant d’augmenter (mais pas de diminuer) la taille d’un système
ext3 sans le démonter. Sous Red Hat et Fedora, ce correctif est intégré par défaut. Pour les distributions plus
anciennes, vous pouvez modifier la taille du système de fichiers avec la commande ext2online. À partir de
Fedora 6 et de Red Hat Enterprise 5, cette fonction est directement intégrée à resize2fs ; ext2online
n’est plus disponible en tant que commande.
Ce type de modification n’est possible que lorsque le système de fichiers ext3 se trouve sur un périphé-
rique LVM ou RAID. Vous ne pouvez pas modifier la taille d’une partition classique, le correctif du noyau n’y
change rien. Vous trouverez plus d’informations dans les pages de manuel de ext2online et de
resize2fs ainsi qu’à l’adresse http://ext2resize.sourceforge.net/online.html.

Fragmentation La fragmentation recouvre le fait qu’un fichier ne soit pas enregistré dans des blocs contigus
du système de
fichiers mais répartis sur toute la partition. La fragmentation peut ralentir les accès aux fichiers.
ext3 ne nécessite généralement pas de défragmentation car le système de fichiers évite glo-
balement la fragmentation. Cependant, vous devez éviter de remplir le système de fichiers à
plus de 90 %.
Accès au Sous Windows, vous pouvez aussi accéder à vos données Linux avec différents program-
système de
fichiers sous mes. Explore2fs (http://www.chrysocome.net/explore2fs) est, selon moi, un des meilleurs.
Windows Il s’agit d’un genre de gestionnaire de fichiers avec lequel vous pouvez lire les systèmes
ext2/3. Vous ne pouvez cependant pas les modifier.
Linux Livre Page 433 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 433

À première vue, le pilote ext (http://www.fs-driver.org/) est une solution plus élégante. Une
fois ce pilote installé, vous pouvez utiliser sans problème des partitions Linux avec tous les
programmes Windows. Cependant, vous devez impérativement éteindre complètement le
système d’exploitation (ne pas le mettre en hibernation) lorsque vous passez d’un système
à l’autre. Vous risquez sinon d’endommager votre système de fichiers et de perdre des
données.

Système de fichiers reiserfs


Version 3 Le système de fichiers reiserfs a été développé par l’entreprise Namesys sous licence GPL.
Sa version 3.0 était le premier système de fichiers Linux qui disposait de fonctionnalités de
journalisation et, depuis, il fait partie de la version 2.4.1 du noyau officiel. Le système
de fichiers reiserfs version 4 était largement répandu, notamment parce qu’il fut le sys-
tème par défaut sous SUSE pendant de nombreuses années. SUSE est passé à ext3 dans sa
version 10.2. reiserfs est plus efficace que ext pour gérer les petits fichiers.
Le système reiserfs est mûr, mais se trouve dans une impasse. Le système n’est plus déve-
loppé ou maintenu, à l’exception des correctifs critiques. Une mise à jour vers la version 4
est possible uniquement lorsque toutes les données sont copiées dans une nouvelle partition
reiser4.
Version 4 Depuis 2004, le système de fichiers Reiser version 4.n est disponible sous le nom reiser4 en
tant que correctif du noyau. Le code de cette version a été entièrement redéveloppé. Cela a
pour conséquence que le système de fichiers n’est pas compatible avec les versions 3.n et
qu’il est impossible de passer de l’un à l’autre facilement. D’un point de vue technique,
reiser4 est le système de fichiers le plus intéressant et le plus moderne qui existe sous
Linux. Grâce à une interface de greffons, on peut l’étendre par des modules.
Malgré des éléments techniques impressionnants, reiser4 est pour l’instant un échec. Il
n’est pas intégré au noyau officiel, à la fois en raison des différends personnels entre déve-
loppeurs et d’une stabilité insuffisante. En septembre 2006, Hans Reiser (fondateur et déve-
loppeur principal de l’entreprise Namesys) a fait l’objet d’une enquête pour meurtre.
L’activité commerciale de Namesys s’est arrêtée. Hans Reiser a été reconnu coupable pen-
dant l’été 2008. L’avenir de reiser4 est incertain, même si officiellement il est toujours déve-
loppé.
/etc/fstab Les systèmes reiser sont généralement définis comme suit dans /etc/fstab :
/dev/sdb11 /data1 reiserfs defaults 0 0
/dev/sdb12 /data2 reiser4 defaults 0 0

Création d’un Pour créer un système de fichiers reiser dans une partition, utilisez mkfs.reiserfs et
système de
fichiers reiser mkfs.reiser4. Les commandes sont également disponibles sous les noms mkreiserfs
et mkreiser4. De manière générale, aucune option en dehors du nom du périphérique n’est
nécessaire. Pour partitionner le disque, utilisez comme d’habitude fdisk ou un autre outil
de partitionnement. Les partitions reiserfs doivent avoir le même identifiant de système
de fichiers que les partitions ext3, c’est-à-dire 83.
Linux Livre Page 434 Mardi, 23. septembre 2008 1:05 13

434 LINUX

root# mkfs.reiserfs /dev/sdc1


mkfs.reiserfs 3.6.19 (2003 www.namesys.com)
...
Format 3.6 with standard journal
Count of blocks on the device: 2443872
Number of blocks consumed by mkreiserfs formatting process: 8286
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 064c57a1-9f1f-4c35-b1db-b49559703c3e
...
ReiserFS is successfully created on /dev/sdc1.

Vous devez alors exécuter la commande mount pour pouvoir utiliser le nouveau système de
fichiers :
root# mount -t reiserfs /dev/sdc1 /test

Vérification fsck.reiserfs et fsck.reiser4 permettent de vérifier l’intégrité du système de fichiers. Par


du système
de fichiers défaut, cette commande affiche un rapport d’état, mais ne modifie pas le système de fichiers.
Pour effectuer des réparations, vous devez passer les options --fix-fixable ou --fix. Vous
trouverez une référence complète de la syntaxe dans les pages de manuel des commandes.
Définition reiserfstune -l permet de modifier le nom d’une partition. De même, l’option -u permet
du nom de
la partition d’en modifier l’UUID.
Redimension- La commande resize_reiserfs permet de modifier la taille d’un système reiserfs. Vous
nement du
système de devez avant cela modifier la taille de la partition. La section précédente qui traite d’ext3
fichiers présente un exemple de procédure comparable.

Système de fichiers xfs


Le système de fichiers xfs a été développé par l’entreprise SGI en 1994 pour ses stations de
travail sous IRIX, un système Unix. Plus tard, le programme a été porté sous Linux et fait
partie du noyau depuis les versions 2.6. xfs est un des plus anciens systèmes de fichiers
journalisés. Il a été conçu comme un système de fichiers 64 bits ; la taille des fichiers et du
système est presque illimitée. Il n’a été que peu modifié ces dernières années et est considéré
comme mûr, stable et très efficace pour la gestion des très gros fichiers.

Lorsque vous travaillez avec xfs, vous devez prendre en compte deux particularités :
• Le système de fichiers utilise la partition à partir du premier octet et ne laisse pas, à la différence des
autres systèmes de fichiers sous Linux, de place pour le secteur d’amorçage. L’installation de GRUB ou
de LILO dans le secteur d’amorçage d’une partition xfs détruit donc une partie du système de
fichiers. Vous devez l’installer dans le MBR ou dans le secteur d’amorçage d’une autre partition.
• Les systèmes de fichiers xfs peuvent être agrandis avec xfs_growfs, mais ne peuvent pas être
réduits.
Linux Livre Page 435 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 435

Vous trouverez plus d’informations sur le système de fichiers xfs aux adresses
http://en.wikipedia.org/wiki/XFS et http://oss.sgi.com/projects/xfs/faq.html.
/etc/fstab Les systèmes xfs sont généralement définis comme suit dans /etc/fstab :
/dev/sdb13 /data xfs defaults 0 0
Création d’un Pour créer un système de fichiers xfs sur une partition, lancez simplement mkfs.xfs :
système de
fichiers xfs root# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=256 agcount=16, agsize=152742 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=2443872, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=2560, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0

Vous devez alors exécuter la commande mount pour pouvoir utiliser le nouveau système de
fichiers :
root# mount -t xfs /dev/sdc1 /test
Vérification L’intégrité du système xfs est vérifiée automatiquement à chaque exécution de mount (seul
du système
de fichiers le fichier de journalisation est pris en compte). Pour le vérifier manuellement, lancez
xfs_check. Cela n’est possible que lorsqu’il n’est pas monté. Si la commande renvoie des
erreurs, vous pouvez essayer de les corriger avec xfs_repair.
Pour des raisons de compatibilité avec les autres systèmes, la commande fsck.xfs existe
aussi. Cependant, elle ne remplit aucune tâche à part pointer vers les outils appropriés.
Redimension- xfs_growfs agrandit un système de fichiers xfs. Celui-ci doit être monté. La commande
nement du
système de suppose que la partition sous-jacente a déjà été agrandie.
fichiers
Modification xfs_admin modifie divers paramètres du système de fichiers, en particulier son nom et son
des para-
mètres du UUID. Le système de fichiers considéré doit être démonté au préalable.
système de
fichiers

23.7 Systèmes de fichiers Windows


De nombreux utilisateurs de Linux ont également une version de Windows installée en
parallèle. De plus, les supports de données externes (clés USB, cartes mémoire d’appareils
photo numériques, etc.) sont souvent formatés dans un système de fichiers Windows. Cette
section traite de l’accès à ces systèmes de fichiers, qu’ils soient sur une partition du disque
dur interne ou sur un support de données externe.
Il existe deux systèmes de fichiers Windows :
• FAT et VFAT. Ce système de fichiers de DOS et Windows 3.1/9x existe en plusieurs ver-
sions : FAT12 pour les disquettes, FAT16 pour les systèmes de fichiers jusqu’à 2 Go,
Linux Livre Page 436 Mardi, 23. septembre 2008 1:05 13

436 LINUX

FAT32 pour les systèmes de fichiers jusqu’à 8 To et les fichiers jusqu’à 4 Go (mais divers
outils de formatage Windows limitent la taille du système à 32 Go).
Windows 95 a introduit l’extension VFAT, dont la principale amélioration est d’autori-
ser des noms de fichiers de plus de 8+3 caractères. Les noms de fichiers longs sont enre-
gistrés en tant que chaînes de caractères Unicode. Les versions récentes de Windows
enregistrent tous les noms de fichiers (y compris les noms courts) en tant que chaînes de
caractères Unicode, ce qui assure que la casse des noms soit conservée et qu’il ne puisse
pas y avoir de problème de jeu de caractères.
Une partition Windows typique d’un disque dur est une combinaison de FAT32 et de
VFAT (abrégé en VFAT32). Lorsque nous parlerons de VFAT dans les sections qui sui-
vent (ou de système de fichiers vfat), nous parlerons de toutes les combinaisons possibles
de FAT12/16/32 et VFAT.
• NTFS. NFTS a été introduit par Windows NT et est pris en charge par toutes les ver-
sions courantes de Windows (2000, XP, 2003, Vista). NFTS est plus sûr (droits d’accès,
journalisation, etc.) et fournit plus de fonctionnalités. La taille du système de fichiers est
presque illimitée (16 777 216 To).
Windows Vista prévoyait un nouveau système de fichiers fondé sur une base de données,
mais cela n’a pas pu être réalisé.
Prise en charge Linux peut accéder aux systèmes de fichiers VFAT et NTFS. Le pilote VFAT est mûr depuis
de Linux
plusieurs années et offre des droits d’accès en lecture et en écriture. Une partition VFAT est
pour cette raison la méthode la plus simple de partager des données entre Windows et
Linux sur un ordinateur. (Si vous travaillez en réseau, vous pouvez utiliser les partages
Windows/Samba à cette fin.)
La prise en charge de NTFS fut problématique pendant de nombreuses années car il n’exis-
tait qu’un pilote en lecture seule. Cependant, la communauté de développement NTFS a
remué ciel et terre pour changer cela : il existe maintenant trois pilotes libres qui se différencient
principalement dans la mesure avec laquelle ils permettent l’accès en écriture.
Conversion de Indépendamment du système de fichiers, le transfert de fichiers texte entre Linux et Windows
fichiers texte
pose souvent problème car les deux systèmes utilisent des jeux de caractères et des caractères
de fin de ligne différents. Vous pouvez résoudre ces problèmes grâce à divers convertisseurs
(voir Chapitre 15).
Droits d’accès VFAT ne connaît pas le concept de droits d’accès. NTFS prend en charge des droits d’accès,
mais ceux-ci ne sont pas gérés comme sous Unix/Linux. Un problème se pose alors : quel
utilisateur Linux a le droit d’accéder à quels fichiers Windows ? Les options uid, gid et
umask/fmask/dmask de mount permettent de répondre à cette question. Elles définissent le
propriétaire, le groupe et les droits d’accès du système de fichiers Windows pour tous les
fichiers du système de fichiers NTFS, indépendamment des éventuels droits NTFS. Les détails
de ces options sont donnés dans man mount.
Formatage Il est rare de devoir formater une partition Windows, mais cette opération est possible.
d’une partition
Windows • mkdosfs permet de formater une partition en VFAT16 (Windows 9x/ME). Pour formater
en VFAT32, il faut utiliser la syntaxe mkdosfs -F 32.
• mkntfs crée un système de fichiers NTFS. Cette commande se trouve généralement dans
le paquetage ntfsprogs, qui doit souvent être installé préalablement.
Linux Livre Page 437 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 437

Si vous n’éteignez pas complètement Windows (mode hibernation ou veille) et si vous démarrez Linux et
modifiez le système de fichiers Windows, vous risquez de perdre des données. Comme Windows fige égale-
ment l’état du système de fichiers, il s’attend, au démarrage suivant, à trouver le même état.
Si vous voulez modifier des fichiers Windows sous Linux, vous devez arrêter complètement Windows avant
de passer sous Linux.

Système de fichiers VFAT


Paramètres par Résumons d’abord rapidement les paramètres par défaut du pilote vfat. Il reconnaît le type
défaut
FAT (FAT12/16/32). Les noms de fichiers Windows sont représentés sous Linux dans le jeu
de caractères Latin-1 (ISO8859-1). L’utilisateur qui lance la commande mount peut lire et
modifier tous les fichiers et répertoires ; tous les autres utilisateurs peuvent lire, mais ils ne
peuvent pas modifier ces fichiers.
Vous pouvez modifier tous ces paramètres par le biais d’options. Vous trouverez les options
correspondantes dans man mount.
/etc/fstab Les systèmes VFAT locaux sont généralement définis comme suit dans /etc/fstab. Cette
ligne indique que l’utilisateur avec l’identifiant 501 peut modifier tous les fichiers et que les
caractères spéciaux des noms de fichiers longs (plus de 8+3 caractères) sont représentés
dans l’encodage UTF-8. Ce paramètre est nécessaire si votre distribution est configurée par
défaut en UTF-8, ce qui est le cas dans la majorité des distributions actuelles.
/dev/sda1 /media/win1 vfat noauto,users,gid=users,utf8 0 0

Système de fichier NTFS (pilote ntfs)


Il existe trois pilotes libres différents pour le système de fichiers NTFS.
Les utilisateurs de Red Hat et de Fedora ont longtemps dû se passer de pilote NTFS. Ces dis-
tributions n’en fournissaient pas par peur d’un éventuel procès. Le pilote NTFS devait être
téléchargé depuis www.linux-nfts.org, puis installé. Depuis Fedora 6, le pilote ntfs-3g est
fourni.
Le pilote ntfs Le pilote ntfs intégré au noyau est présent dans presque toutes les distributions, à part Red
Hat et Fedora. Historiquement, il s’agit d’un redéveloppement du pilote pour le noyau 2.6
qui n’a rien à voir avec les pilotes ntfs des versions plus anciennes du noyau. La liste suivante
résume l’état du pilote ntfs dans le noyau 2.6.24 :
• opérations de lecture prises en charge : lecture des fichiers et répertoires, y compris les
fichiers compressés et les liens durs ;
• opérations d’écriture prises en charge : modification des fichiers, y compris en modifiant
leur taille ;
• opérations de lecture non prises en charge : lecture de fichiers chiffrés, de flux, liens
symboliques, attributs étendus ;
Linux Livre Page 438 Mardi, 23. septembre 2008 1:05 13

438 LINUX

• opérations d’écriture non prises en charge : modification des fichiers compressés, créa-
tion ou suppression de fichiers ou de répertoires, restauration du système de fichiers
grâce aux fonctions de journalisation.
En résumé, le pilote ntfs est généralement suffisant uniquement pour lire des fichiers sur
une partition NTFS et n’est adapté que dans des cas particuliers à la modification du sys-
tème de fichiers. Vous trouverez plus d’informations sur l’état courant du pilote dans le
fichier Documentation/filesystems/ntfs.txt du code source du noyau.
Paramètres par Par défaut, seul root a accès aux fichiers. Vous trouverez une référence des options de ntfs
défaut
pour mount et /etc/fstab dans man mount.
/etc/fstab Les systèmes NTFS locaux sont généralement définis comme suit dans /etc/fstab. Cette
ligne indique que l’utilisateur avec l’identifiant 501 peut lire et modifier tous les fichiers. Les
autres utilisateurs n’ont aucun accès aux fichiers. Les noms de fichiers sont représentés dans
le codage UTF-8.
/dev/sda1 /media/win ntfs nls=utf8,uid=501,gid=100 0 0

Comme les fonctionnalités d’écriture du pilote ntfs sont limitées, certaines distributions
montent les partitions NTFS avec l’option ro (lecture seule).
Administration Le paquetage ntfsprogs contient diverses commandes d’administration des systèmes de
fichiers NTFS.

Commantes importantes du paquetage ntfsprogs


mkntfs crée un système de fichiers NTFS
ntfsclone copie un système de fichiers NTFS
ntfsinfo affiche des informations sur un système de fichiers NTFS
ntfslabel renomme une partition NTFS
ntfsresize modifie la taille d’un système de fichiers NTFS
ntfsundelete essaie de récupérer des fichiers supprimés

Système de fichiers NTFS (ntfsmount)


La commande ntfsmount est une alternative au module ntfs. Il ne s’agit pas d’un module
du noyau, mais d’un module FUSE. FUSE signifie Filesystem in Userspace, système de
fichiers en espace utilisateur. C’est un module du noyau qui communique avec des pro-
grammes externes. FUSE permet d’implémenter des pilotes de systèmes de fichiers en
dehors du noyau, ce qui est le cas pour ntfsmount. Vous trouverez plus de détails à ce sujet
à la page http://www.linux-ntfs.org/doku.php?id=ntfsmount. La liste suivante résume les
fonctionnalités de ntfsmount version 2.0 :
• opération de lecture prises en charge : lecture de fichiers et de répertoires, y compris
compressés et chiffrés, liens durs et liens symboliques, flux, attributs étendus ;
• opérations d’écriture prises en charge : modification, création et suppression de
fichiers ;
• opérations d’écriture non prises en charge : modification des fichiers compressés ou
chiffrés, restauration du système de fichiers avec les fonctions de journalisation.
Linux Livre Page 439 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 439


Prérequis Pour que ntfsmount fonctionne, certains prérequis doivent être validés :
• ntfsmount doit être installé. La commande se trouve soit dans le paquetage ntfsprogs,
soit dans son propre paquetage (par exemple ntfsprogs-fuse).
• ntfsmount utilise les bibliothèques et commandes FUSE qui doivent être également
installées (paquetages fuse, fuseutils, fuselibs ou libfuse, etc.).
• Le module de noyau fuse doit être disponible, ce qui est le cas pour la plupart des dis-
tributions. Si ntfsmount affiche un message d’erreur indiquant que /dev/fuse n’existe
pas, vous devez le charger manuellement (modprobe fuse).

Dans certaines distributions (Red Hat, Fedora), seuls root et les utilisateurs du groupe fuse ont le droit de
monter des systèmes de fichiers grâce à FUSE.

ntfsmount Pour monter un système de fichiers NTFS avec FUSE, utilisez la commande ntfsmount ou
mount -t ntfs-fuse. Par défaut, le système de fichiers n’est lisible que par root. Vous trouverez
une référence des options de ntfsmount dans man ntfsmount.
root# ntfsmount /dev/sda1 /media/win
root# mount -t ntfs-fuse /dev/sda1 /media/win

Pour démonter le système de fichiers, utilisez comme d’habitude umount ou ntfsmount -u.
/etc/fstab Pour monter automatiquement une partition avec ntfsmount, ajoutez dans /etc/fstab une
ligne selon le schéma suivant :
/dev/sda1 /media/win ntfs-fuse uid=501,gid=100 0 0

Lorsque la ligne ntfs-fuse de /etc/fstab reste sans effet ou lorsque mount -t ntfs-fuse renvoie
l’erreur unknown filesystem type ntfs-fuse, une cause fréquente est que le lien /sbin/mount.ntfs-
fuse vers ntfsmount est manquant ou défaillant. Les commandes suivantes permettent de régler cette
situation :
root# cd /sbin
root# rm mount.ntfs-fuse
root# ln -s $(which ntfsmount) mount.ntfs-fuse

Système de fichiers NTFS (ntfs-3g)


ntfs-3g est techniquement une variante de ntfsmount. ntfs-3g intègre du code supplémen-
taire pour améliorer la prise en charge en écriture.
Depuis mars 2007, les développeurs de ntfs-3g l’ont déclaré comme étant officiellement stable
et l’ont exprimé en passant à des numéros de version 1.n.
ntfs-3g Pour utiliser ntfs-3g, installez d’abord le paquetage portant ce nom. La syntaxe pour mon-
ter un système de fichiers avec ntfs-3g est comparable à celle de ntfsmount. Elle se différencie
seulement par le nom du système de fichiers. Vous trouverez une référence des options de
montage de ntfs-3g dans man ntfs-3g.
Linux Livre Page 440 Mardi, 23. septembre 2008 1:05 13

440 LINUX

root# ntfs.3g /dev/sda1 /media/win


root# mount -t ntfs-3g /dev/sda1 /media/win

umount et fusermount -u permettent de démonter le système de fichiers.


/etc/fstab La ligne fstab n’est modifiée que par le nom du système de fichiers (ntfs-3g au lieu de
ntfs-fuse) :
/dev/sda1 /media/win ntfs-3g uid=501,gid=100 0 0

Flux Les flux (streams) sont une particularité du système de fichiers NTFS. Un fichier NTFS peut
se composer de plusieurs flux. Chaque flux a la même fonction qu’un fichier. Lorsqu’on
accède comme d’habitude à un fichier, le flux par défaut est lu et modifié. L’accès à des flux
spéciaux (lorsqu’ils existent) passe pas une syntaxe spéciale.
Le pilote ntfs-3g offre l’option streams_interface pour accéder à ces flux. Par défaut,
l’accès est bloqué. streams_interface=windows active la syntaxe Windows typique sous la
forme nom_de_fichier:nom_de_flux. streams_interface=xattr permet d’accéder aux flux
via getfattr/setfattr.
Pour tester cette fonctionnalité, montez le système NTFS avec l’option streams_inter-
face=windows. Créez un nouveau fichier streamtest avec cat. Ctrl+D termine la saisie.
Créez ensuite le flux streamtest:stream1.
root# ntfs-3g -o streams_interface=windows /dev/sda1 /media/win
root# mkdir /media/win/test
root# cd /media/win/test
root# cat > streamtest
abc Ctrl+D
root# cat > streamtest:stream1
efg Ctrl+D
root# ls
streamtest
root# cat streamtest
abc
root# cat streamtest:stream1
efg

Les commandes suivantes montrent l’accès aux flux via les attributs étendus.
root# cd
root# umount /media/win
root# ntfs-3g -o streams_interface=xattr /dev/sda1 /media/win
root# cd /media/win/test
root# setfattr -n user.stream2 -v "xyz" streamtest
root# getfattr -d -e text streamtest
# file: streamtest
user.stream1="efg^012"
user.stream2="xyz"

Systèmes de fichiers NTFS (Captive, Paragon)


Il existe encore deux autres possibilités pour monter un système de fichiers NTFS :
• Captive est un paquetage libre, mais il accède au pilote NTFS de Microsoft et nécessite
donc une licence Windows. Cette solution est lente et gourmande en mémoire, mais
Linux Livre Page 441 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 441

toutes les fonctions de NTFS sont prises en charge : http://www.jankratochvil.net/pro-


ject/captive/.
• Paragon est un produit commercial, compatible avec la majeure partie des fonctions
spéciales de NTFS : http://ntfs-linux.com/.

23.8 CD, DVD et disquettes


CD et DVD de données
Les lecteurs CD et DVD sont en principe gérés comme des disques durs. Cependant, on
peut remarquer deux différences importantes. D’une part, on peut changer de CD/DVD
dans un lecteur, alors que l’on ne change pas le disque dur traditionnel en cours de fonction-
nement. D’autre part, les CD et DVD de données utilisent un autre système de fichiers,
ISO 9660 ou UDF.
ISO 9660 et ISO 9660 est une norme universelle pour les CD de données. Certaines extensions se sont
UDF
établies pour pallier quelques restrictions. L’extension Rockridge, typique d’Unix, permet
d’enregistrer des noms de fichiers longs et des droits d’accès. L’extension Joliet, typique de
Windows, permet d’utiliser un jeu de caractères Unicode dans les noms de fichiers. L’extension
El-Torito permet de démarrer un ordinateur directement depuis le CD.
UDF (Universal Disk Format, format de disque universel) est le successeur d’ISO 9660. Il est
utilisé sur de nombreux DVD (les DVD peuvent aussi utiliser le format ISO 9660). UDF
permet, à la différence d’ISO 9660, les fichiers de plus de 2 Go, les noms de fichiers jusqu’à
255 caractères Unicode, une meilleure prise en charge des médias en lecture-écriture, etc.
Noms de La liste suivante indique quels noms de périphériques sont utilisés pour accéder aux lec-
périphériques
CD/DVD teurs CD/DVD. Le nom du périphérique dépend principalement de sa connexion au sys-
tème (IDE, SCSI, SATA, USB ou Firewire). Pour les périphériques IDE, le pilote utilisé (pilote
IDE ou extension libata du système SCSI) joue également un rôle. Dans le second cas, votre
lecteur IDE se comporte comme un lecteur SCSI.
Si vous ne savez pas quel type de lecteur vous utilisez et comment il est connecté à l’ordinateur,
il est probable qu’il s’appelle /dev/hdb, /dev/hdc ou /dev/scd0.

Noms de périphériques CD/DVD


/dev/hda lecteur IDE (maître du premier canal, pilote IDE)
/dev/hdb lecteur IDE (esclave du premier canal, pilote IDE)
/dev/hdc lecteur IDE (maître du second canal, pilote IDE)
/dev/hdd lecteur IDE (esclave du second canal, pilote IDE)
/dev/scd0 oder /dev/sr0 lecteur 1 SATA/SCSI/USB/Firewire/IDE avec pilote libata
/dev/scd1 oder /dev/sr1 lecteur 1 SATA/SCSI/USB/Firewire/IDE avec pilote libata
Linux Livre Page 442 Mardi, 23. septembre 2008 1:05 13

442 LINUX

Certaines distributions créent aussi des liens comme /dev/cdrom, /dev/dvd ou /dev/dvd-
recorder vers le périphérique réel.
Fonctionne- Pour la plupart des distributions, le système est configuré de manière que, lorsqu’on insère
ment auto-
matique un CD ou un DVD de données dans le lecteur, une fenêtre du gestionnaire de fenêtres appa-
raisse et en affiche le contenu. Vous pouvez sortir le CD/DVD à tout moment en appuyant
sur le bouton du lecteur ou grâce au menu contextuel de l’icône du lecteur sur le bureau.
Ce comportement est dû aux démons de gestion du matériel de KDE et de Gnome.
Fonctionne- Lorsque vous travaillez en console ou sur un bureau sans automatismes liés au CD/DVD,
ment manuel
vous devez monter manuellement les CD/DVD. Les noms de périphériques et de répertoires
varient selon le matériel et la distribution. Les deux lignes suivantes illustrent le montage,
respectivement, d’un support ISO 9660 et d’un support UDF.
root# mount -t iso9660 -o ro /dev/scd0 /media/dvd
root# mount -t udf -o ro /dev/scd0 /media/dvd

Par défaut, tous les répertoires et les fichiers sont lisibles par tous les utilisateurs. Si vous
désirez exécuter des programmes qui se trouvent sur un CD ou un DVD, vous devez ajouter
l’option exec lors du montage. Pour gérer correctement les noms de fichiers internationaux,
utilisez l’option iocharset=utf8 ou utf8. Vous trouverez plus d’informations dans man
mount.
Avant de pouvoir éjecter le CD/DVD, vous devez lancer explicitement umount :
root# umount /media/dvd

À la place d’umount, vous pouvez lancer la commande eject. Le CD est alors supprimé de l’arborescence
et éjecté du lecteur. S’il y a plusieurs supports de données éjectables connectés à l’ordinateur, ils sont testés
les uns après les autres et le premier support trouvé est éjecté. Vous pouvez aussi indiquer comme option le
nom du périphérique ou le point de montage.

Périphérique Lorsque la commande umount renvoie le message d’erreur "périphérique occupé", cela signi-
occupé
fie qu’un autre programme utilise des données sur le CD-ROM. C’est entre autres le cas si
un répertoire du CD-ROM est ouvert dans un terminal. Lancez-y cd pour revenir à votre
répertoire personnel. Pour chercher l’origine d’un problème lié à umount, vous pouvez utiliser la
commande fuser -m /media/dvd.
Une autre source de problèmes peut être NFS. Si le lecteur CD est utilisé via NFS sur un
autre ordinateur, umount échoue souvent, même lorsque l’ordinateur distant a rendu la main
sur le lecteur CD-ROM. Dans ce cas, il faut redémarrer le serveur NFS, voire, dans de rares
cas, l’ordinateur lui-même.
/etc/fstab Dans la plupart des distributions, en raison du mécanisme automatique décrit ci-dessus, il
n’y a pas de ligne pour le lecteur CD/DVD dans /etc/fstab. Si vous montez souvent des
CD/DVD dans l’arborescence, une ligne comme la suivante se révèle en général plus
confortable :
/dev/scd0 /media/dvd udf,iso9660 users,noauto,ro 0 0

Il suffit alors de lancer la commande mount /media/dvd ou mount /dev/scd0 pour monter le
CD/DVD. Tous les utilisateurs peuvent lancer ces commandes.
Linux Livre Page 443 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 443

CD audio et DVD vidéo


CD audio Les CD audio sont gérés différemment des CD de données. Ils ne sont pas montés dans le
système de fichiers, mais lus directement avec des programmes spéciaux (par exemple
Amarok sous KDE ou Rythmbox sous Gnome). On peut aussi lire les pistes audio pour les
transformer, par exemple, en fichiers OggVorbis.
DVD vidéo Les DVD vidéo sont généralement au format UDF. Pour lire un DVD vidéo, vous avez
besoin d’un programme comme mplayer ou xine.

Disquettes
Même si votre ordinateur dispose encore d’un lecteur de disquettes, les disquettes ne jouent
plus un grand rôle au quotidien sous Linux. Les disquettes que vous avez le plus de chance
de trouver sont des installations de LILO ou de GRUB. Cependant, si vous avez besoin de
lire une disquette, cette section regroupe quelques astuces.
La gestion des disquettes est analogue à celle des CD et DVD. Vous montez la disquette avec
mount et accédez à ses fichiers comme d’habitude. Le nom habituel du périphérique est /dev/
fd0. Pensez à lancer umount avant d’éjecter une disquette du lecteur, sans quoi vous risquez
de perdre des données. Divers systèmes de fichiers peuvent se trouver sur une disquette. Le
plus souvent, les disquettes DOS/Windows sont formatées en VFAT.
root# mount -t vfat /dev/fd0 /media/floppy

mtools Vous pouvez aussi lire et modifier une disquette DOS/Windows sans la monter. Pour cela,
utilisez les commandes mtools, comme mcopy ou mdir. Selon la distribution, il est possible
que vous deviez installer le paquetage mtools.
Formatage Pour formater une disquette, utilisez la commande fdformat. Il ne s’agit cependant que d’un
d’une
disquette formatage bas niveau. Pour créer un système de fichiers, vous devez utiliser mformat ou
mkfs.vfat (DOS/Windows), ou encore mke2fs (ext2).

23.9 Supports de données externes (USB, Firewire, etc.)


Les clés USB, les cartes mémoire d’appareils photo numériques, les disques durs Firewire et
eSATA ainsi que d’autres supports de données externes ont une particularité commune : ils
sont branchés et débranchés pendant le fonctionnement de l’ordinateur. Presque tous ces
lecteurs sont gérés comme des lecteurs SCSI. Nous n’avons trouvé comme exception que les
adaptateurs PCMCIA/Flash, qui sont reconnus comme des périphériques IDE.
Fonction- Les gestionnaires de bureau KDE et Gnome de presque toutes les distributions réagissent au
nement
automatique branchement d’un support de données externe en ouvrant (éventuellement après confirma-
tion) une nouvelle fenêtre du gestionnaire de fichiers qui offre un accès confortable au sup-
port de données. Généralement, une icône apparaît également sur le bureau. Celle-ci
symbolise le support de données et permet de le démonter à partir d’un menu contextuel.
Linux Livre Page 444 Mardi, 23. septembre 2008 1:05 13

444 LINUX

Vérifiez que vous avez bien démonté toutes les partitions d’un support de données avant de le déconnecter
physiquement. Dans la plupart des distributions, cliquez sur l’icône du support et choisissez
Déconnecter, Éjecter ou un élément similaire du menu. De cette manière, vous vous assurerez que toutes les
opérations d’écriture sont terminées avant de couper physiquement la connexion entre le lecteur et l’ordi-
nateur. Si vous omettez cette étape, vous risquez d’endommager votre système de fichiers ou de perdre des
fichiers.
Si vous n’avez pas d’icône sur votre bureau KDE, saisissez dans Konqueror l’adresse media:/. Le gestionnaire
de fichiers affiche alors des icônes pour tous les supports de données.

Configuration Sous Gnome, vous pouvez contrôler les périphériques externes avec le programme gnome-
volume-properties (voir Figure 23.2). Ce programme se trouve généralement dans le menu
Système > Préférences > Périphériques et médias amovibles.

Figure 23.2
Gestion des supports de
données externes sous
Gnome.

Performances Certaines distributions utilisent l’option sync par défaut lorsqu’elles montent des périphéri-
ques externes. Les opérations d’écriture ne sont alors pas mises en tampon et sont effectuées
immédiatement. Les performances peuvent alors chuter énormément. Pour éviter cela,
montez le support de données manuellement sans l’option sync.
Fonctionne- Depuis 2006, la gestion du branchement à chaud fait appel au noyau, au système udev, au
ment interne
du bran- démon hald et au système de communication D-Bus. Sous KDE, kioslave media:/ attend
chement à des événements D-Bus et réagit en fonction. Sous Gnome, gnome-volume-manager effectue
chaud
cette tâche.
Si vous n’utilisez ni KDE ni Gnome et si vous désirez monter automatiquement des périphé-
riques externes, le paquetage ivman (http://ivman.sourceforge.net/) peut vous être utile.
L’article consultable à l’adresse http://www.linux.com/article.pl?sid=06/07/26/2129232 fournit
plus d’informations à son sujet.
Il arrive sous KDE et sous Gnome que plusieurs utilisateurs soient connectés en même
temps. Dans ce cas, le premier utilisateur connecté obtient les droits d’accès sur les périphé-
riques nouvellement connectés. Ce cas particulier est résolu selon la distribution et peut
Linux Livre Page 445 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 445

entraîner des problèmes. Le plus simple est d’éviter de changer d’utilisateur lorsque vous
travaillez avec des disques externes.
Avant la gestion par udev/HAL/D-Bus, il existait d’autres alternatives que vous pouvez
encore rencontrer sur des installations plus anciennes :
• supermount. Ce pseudo-système de fichiers monte et démonte automatiquement les
disquettes, CD et DVD.
• magicdev. Red Hat employait ce programme dans certaines versions plus anciennes. Il est
démarré par le gestionnaire de bureau, surveille les lecteurs de disquettes et de CD/DVD
et monte au besoin le système de fichiers correspondant dans l’arborescence.
• subfs/submount. SUSE employait dans les versions 9.1 à 10.0 le module de noyau non
officiel subfs qui, en combinaison avec les programmes submountd et net-submountd,
intégrait les supports de données externes dans l’arborescence. Ce système n’a jamais
été très stable.
Fonctionne- Lorsque vous travaillez en mode texte ou dans un système de bureau sans gestion automa-
ment manuel
tique des supports de données, vous devez lancer vous-même les commandes mount corres-
pondantes. Pour cela, vérifiez d’abord le nom de votre périphérique (généralement /dev/
sdx où x est la première lettre non utilisée).
La commande fdisk -l fournit un aperçu de tous les supports de données (y compris les
disques durs, mais à l’exception des lecteurs CD et DVD). Dans l’exemple suivant, /dev/sda
est le disque SATA interne avec diverses partitions. /dev/sdb à /dev/sde sont associés à un
lecteur de cartes dans lequel seule une carte CF est insérée (/dev/sdc). /dev/sdf1 est la
première et seule partition d’une clé USB.
root# fdisk -l
Disque /dev/sda: 320.0 Go, 320072933376 octets
...
Disque /dev/sdc: 32 Mo, 32112640 octets
...
Disque /dev/sdf: 256 Mo, 256901120 octets
16 heads, 32 sectors/track, 980 cylinders
Units = cylindres of 512 * 512 = 262144 bytes
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdf1 * 1 980 250864 e W95 FAT16 (LBA)

Les clés USB et les cartes Flash peuvent également être formatées en tant que super-floppy. Cela signifie
qu’elles ne contiennent pas de table de partitions. Dans ce cas, le lecteur complet est désigné sous le nom
/dev/sda (et non, comme d’habitude, /dev/sda1).

Lorsque vous connaissez le nom du périphérique, la suite est simple : créez un nouveau
répertoire et montez-y votre support de données :
root# mkdir /media/memorystick
root# mount /dev/sdf1 /media/memorystick
Linux Livre Page 446 Mardi, 23. septembre 2008 1:05 13

446 LINUX

Les supports de données externes peuvent utiliser différents types de systèmes de fichiers.
En pratique, VFAT est le plus fréquent sur les disques externes et sur les clés USB. C’est éga-
lement le cas des cartes mémoire de divers périphériques électroniques (PDA, appareils
photo numériques, etc.) utilisés par le biais d’un adaptateur USB ou PCMCIA. Sous Linux,
vous pouvez modifier le partitionnement du périphérique et formater chaque partition avec
un système de fichiers au choix.
Lorsque vous avez terminé ce que vous aviez à faire, lancez comme d’habitude la com-
mande umount. Ne débranchez pas le câble USB ou Firewire avant que la commande umount
soit terminée : vous risqueriez de perdre des données !
root# umount /media/memorystick

/etc/fstab Seul root a le droit d’exécuter la commande mount. Si des utilisateurs sans privilèges souhai-
tent monter un support de données dans l’arborescence et le démonter, root doitajouter la
ligne correspondante dans fstab avec l’option users. Pour une clé USB avec un système de
fichiers VFAT, vous pouvez par exemple ajouter :
/dev/sdf1 /media/memorystick vfat users,gid=users,utf8,noatime,noauto 0 0

Tous les utilisateurs peuvent alors monter la clé USB avec mount /media/memorystick et y
lire et écrire des fichiers. Cette méthode a cependant deux inconvénients :
• Selon l’ordre dans lequel le périphérique est branché, le nom du périphérique peut être
modifié. Si la clé USB est branchée en tant que deuxième ou troisième périphérique, elle
peut s’appeler /dev/sdg et l’accès au répertoire /media/memorystick échoue.
• Inversement, la ligne ci-dessus peut être utilisée pour un autre support de données, ce
qui n’est pas toujours le comportement souhaité.
La meilleure solution est d’indiquer le nom du périphérique par le biais de son UUID. Pour
déterminer l’UUID d’un périphérique, utilisez la commande vol_id. Si la commande n’est
pas accessible directement sur votre distribution, essayez de lancer /lib/udev/vold_id.
root# vol_id /dev/sdf1
...
ID_FS_UUID=4550-9BD2

La ligne fstab correspondante est ici divisée en deux pour des raisons de place :
/dev/disk/by-uuid/4550-9BD2 /media/memorystick vfat \
users,gid=users,utf8,noatime,noauto 0 0

Normalement, il est également possible de commencer la ligne de fstab par UUID=4550-9BD2. La com-
mande mount fonctionne alors comme dans la variante précédente, mais la commande umount pose
problème. Malgré l’UUID, mount enregistre le nom courant du périphérique. Les lignes de /etc/
fstab et de /etc/mtab ne correspondent donc pas du point de vue de umount, ce qui peut mener
à des erreurs.

pmount Les commandes pmount et pumount permettent aux utilisateurs sans privilèges de monter et
de démonter des supports externes. Cependant, ces commandes ne sont disponibles que
dans peu de distributions (Ubuntu en est une exception notable).
Linux Livre Page 447 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 447

utilisateur$ pmount /dev/sdf1 /media/usbdisk


utilisateur$ ...
utilisateur$ pumount /media/usbdisk

Avec la configuration par défaut, pmount permet à tous les utilisateurs du groupe plugdev de
monter des supports de données externes. Pour des raisons de sécurité, cela fonctionne uni-
quement lorsque le périphérique ne se trouve pas dans /dev/fstab. Une partition est consi-
dérée comme support externe lorsqu’elle se trouve sur un lecteur USB ou Firewire pour
lequel le fichier /sys/block/nom_du_périphérique/removable contient la valeur 1. De plus,
pmount permet d’accéder à tous les supports de données dont le nom de périphérique se
trouve dans /etc/pmount.allow.
Par défaut, pmount passe à mount les options atime, async et utf8 (lorsque cette option est prise
en charge par le système de fichiers). Les options qui diffèrent de ce jeu par défaut doivent être
indiquées explicitement dans une syntaxe différente de celle de mount (voir man pmount).

23.10 Systèmes de fichiers réseau et virtuels


Systèmes de fichiers virtuels
Linux connaît de nombreux systèmes de fichiers virtuels. Il s’agit d’informations internes au
fonctionnement de Linux auxquelles on peut accéder par le biais d’un système de fichiers.
Ces fichiers n’existent pas sur un disque dur, ils sont mis à disposition par le noyau. Linux
et les programmes exécutés par Linux gèrent ce système de fichiers.
Dans la plupart des distributions, ces systèmes de fichiers sont montés directement par le
processus InitV sans prendre en compte fstab – les lignes correspondantes n’apparaissent
donc pas. Les systèmes virtuels actifs peuvent être consultés dans le fichier /etc/mtab ou
proc/mounts.

Systèmes de fichiers réseau Unix (NFS)


NFS (Network File System, système de fichiers réseau) est la méthode habituelle pour exporter
un répertoire d’un ordinateur vers le réseau local.
Cette section se limite à NFS version 3. NFS4 n’est pas encore vraiment répandu. Vous
trouverez plus d’informations à son sujet au Chapitre 30.
Prérequis Pour utiliser NFS, vous devez remplir quelques conditions préalables :
• L’ordinateur sur lequel vous voulez lire ou modifier des données doit être accessible par
le réseau (testez cela avec ping).
• Il doit également avoir un serveur NFS installé et configuré pour vous permettre d’accé-
der aux fichiers du répertoire souhaité. Vous trouverez plus d’informations à ce sujet au
Chapitre 30.
• Si votre ordinateur ou le serveur NFS font fonctionner un pare-feu, les communications
NFS ne doivent pas être bloquées. NFS utilise généralement le protocole UDP.
Linux Livre Page 448 Mardi, 23. septembre 2008 1:05 13

448 LINUX

mount Une fois ces conditions remplies, l’accès à un répertoire NFS est simple. La commande sui-
vante monte le répertoire /data de l’ordinateur mars dans le répertoire /media/nfsdata de
l’arborescence. Ce répertoire doit exister avant d’exécuter la commande. Vous trouverez les
options de mount spécifiques au NFS dans man mount.
root# mount -t nfs mars:/data /media/nfsdata

Vous pouvez aussi utiliser l’adresse IP de l’ordinateur à la place de son nom.


Pour déconnecter le répertoire NFS, utilisez comme d’habitude umount. Si la connexion
réseau est interrompue, lancez umount avec l’option -f pour accélérer l’opération.
root# umount /media/nfsdata

/etc/fstab Pour monter automatiquement un système de fichiers NFS au démarrage de l’ordinateur,


ajoutez une ligne selon ce schéma à /etc/fstab. L’option bg, spécifique à NFS, permet d’exé-
cuter la commande mount en tâche de fond lorsque le répertoire n’est pas immédiatement
disponible.
jupiter:/data /externaldata nfs user,exec,bg 0 0

Pour la plupart des distributions, tous les répertoires de /etc/fstab sont montés par le pro-
cessus InitV. SUSE est une exception, il faut que le service nfs soit explicitement activé :
root# insserv nfs

NFS ne se préoccupe pas du jeu de caractères des noms de fichiers et les interprète comme des suites
d’octets. NFS suppose que tous les utilisateurs emploient le même jeu de caractères. Si ce n’est pas le cas, les
caractères non ASCII s’affichent mal.
Il n’y a pas de solution à ce problème. Assurez-vous que tous les utilisateurs emploient le même jeu de
caractères ou évitez les caractères internationaux dans les noms de fichiers.

Répertoires réseau Windows (cifs, smbfs)


Le protocole SMB est le quasi équivalent Windows de NFS. On accède généralement aux
répertoires Windows grâce au gestionnaire de fichiers (voir Chapitres 4 et 5 pour Gnome et
KDE).
Vous pouvez aussi mettre en œuvre le système de fichiers cifs ou son prédécesseur obsolète
smbfs pour monter des répertoires Windows comme des répertoires NFS. Vous pouvez alors
accéder à tous les fichiers comme s’ils se trouvaient dans votre système de fichiers. Cette
manière de procéder est confortable et fonctionne bien tant que le répertoire est partagé sur
le réseau.
smbfs et cifs Linux peut utiliser deux systèmes de fichiers pour l’accès aux répertoires réseau Windows :
SMBFS et CIFS. CIFS est une extension du système de fichiers réseau de Microsoft et il est
préférable de l’utiliser autant que possible. Les serveurs CIFS Samba envoient des informa-
tions compatibles avec Unix/Linux à propos des droits d’accès, ce qui n’est pas le cas de
SMBFS.
mount La commande mount permet de monter des répertoires réseau Windows dans votre sys-
tème de fichiers local. Vous pouvez indiquer le système de fichiers (smbfs ou cifs) avec
l’option -t. En interne, mount lance les commandes smbmount et mount.cifs, respectivement.
Linux Livre Page 449 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 449

Vous trouverez une référence des options de ces deux systèmes de fichiers dans man
mount.cifs pour cifs et dans man smbmount pour smbfs.
root# mount -t cifs //venus/partage /media/winshare
root# mount -t cifs -o username=nom //venus/partage /media/winshare

La commande vous demande un mot de passe, que vous pouvez aussi saisir directement :
root# mount -t cifs -o username=nom,password=pw \
//venus/partage /media/winshare
/etc/fstab Pour monter un système de fichiers Windows lors du démarrage de l’ordinateur, ajoutez
une ligne de ce type dans /etc/fstab :
//venus/partage /media/winshare cifs defaults 0 0

Cela suffit dans la plupart des distributions. SUSE présente le même type d’exception que
pour NFS et il faut activer le script InitV smbfs :
root# insserv smbfs
Partages CIFS On peut préférer préparer Linux pour qu’un utilisateur sans privilèges root puisse monter
pour les
utilisateurs ou démonter un système de fichiers distant. La procédure est peu pratique et dépend de la
sans privilèges distribution pour certains détails. J’ai testé ce qui suit dans Ubuntu 8.04.
L’administrateur crée un nouveau répertoire et l’associe à l’utilisateur par défaut d’Ubuntu :
user$ sudo -s -H
Password: xxxxxx
root# mkdir /media/winshare
root# chown 1000:1000 /media/winshare

chmod permet de positionner le bit SUID aux commandes mount.cifs et umount.cifs. Cela
induit un risque d’insécurité, mais sinon la procédure ne fonctionne pas. Pesez les avantages et
les inconvénients d’une telle solution avant de la mettre en œuvre.
root# chmod +s /sbin/mount.cifs
root# chmod +s /sbin/umount.cifs

Créez un fichier /etc/.winshare-pw contenant l’identifiant et le mot de passe du répertoire


réseau si une authentification est nécessaire :
username=nom
password=xxx

Modifiez les droits d’accès au fichier pour que tout le monde ne puisse pas accéder à des
mots de passe en clair :
root# chmod go-rw /etc/.winshare-pw

Pour finir, ajoutez à /etc/fstab une ligne de ce type (ici séparée en deux pour des raisons de
place) :
//venus/partage /media/winshare cifs \
users,noauto,credentials=/etc/.winshare-pw,dir_mode=777,file_mode=777 0 0
Linux Livre Page 450 Mardi, 23. septembre 2008 1:05 13

450 LINUX

23.11 Partitions et fichiers d’échange


Lorsque la mémoire vive ne suffit pas pour l’exécution de tous les programmes, Linux
décharge une partie de cette mémoire dans une partition ou un fichier d’échange. Linux peut
ainsi utiliser plus de mémoire que de RAM disponible.
La partition d’échange est normalement créée pendant l’installation. La commande free
indique combien de mémoire d’échange est à disposition. Dans l’exemple suivant, l’ordina-
teur dispose de 1 519 Mo de RAM et de 2 000 Mo de mémoire d’échange. La RAM est utili-
sée à 401 Mo par des programmes et des données, le reste est utilisé comme tampon et
comme cache. La mémoire d’échange est pour l’instant inutilisée.
root# free -m
total used free shared buffers cached
Mem: 1519 1479 39 0 67 1010
-/+ buffers/cache: 401 1117
Swap: 2000 0 2000

Lorsqu’un ordinateur fonctionne pendant longtemps, il accède généralement à l’espace


d’échange même lorsque beaucoup de mémoire vive est encore disponible. En effet, le
noyau utilise un cache pour les accès en lecture sur les fichiers. Si un fichier est réutilisé par
la suite, il peut être lu à partir du cache. Lorsque le cache est plus grand que la mémoire dis-
ponible, Linux décharge les blocs mémoire qu’il n’a pas utilisés depuis longtemps dans la
partition d’échange. Ce n’est pas un signe que la mémoire vive est insuffisante. Linux essaie
d’utiliser la mémoire disponible de la manière la plus efficace possible.
/etc/fstab Les lignes suivantes montrent deux partitions d’échange dans /etc/fstab. L’option pri
indique que les deux partitions sont gérées de manière identique par Linux. Cela permet
d’améliorer les performances lorsque les deux partitions se trouvent sur deux disques indé-
pendants. Si une seule partition d’échange est disponible, utilisez plutôt l’option pri=0.
/dev/sda9 swap swap pri=1 0 0

/dev/sdc7 swap swap pri=1 0 0

Combien de On comptait auparavant qu’un espace d’échange devait être dimensionné pour contenir
mémoire
d’échange ? deux fois la mémoire vive. Avec l’augmentation de la quantité de RAM, cette règle n’est plus
que rarement de mise. Généralement, pour un ordinateur de bureau, une partition
d’échange nettement plus petite suffit (par exemple 512 Mo pour 2 Go de RAM).
Les ordinateurs portables sont un cas particulier lorsque vous désirez utiliser les fonctions de
Suspend to Disk (mise en suspens sur le disque). La mémoire vive complète est alors enregis-
trée dans la partition d’échange avant que l’ordinateur ne passe en veille. Cela suppose que la
partition d’échange est plus grande que la mémoire vive (par exemple d’un facteur 1,5).
Lorsque vous faites fonctionner un serveur, les données sont encore différentes. Oracle
conseille par exemple pour son serveur de bases de données (10.2) d’adapter le facteur multi-
plicatif à la taille de la mémoire vive :
• jusque 2 Go facteur 2
• 2 à 8 Go facteur 1
• plus de 8 Go facteur 0,75
Linux Livre Page 451 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 451

Sur les systèmes 32 bits, la partition d’échange est limitée à 2 Go. Si vous souhaitez plus
d’espace d’échange, vous devez créer plusieurs partitions d’échange.
Création d’une Si votre partition d’échange est trop petite ou si vous souhaitez en créer une autre, créez une
partition
d’échange nouvelle partition. Donnez-lui comme type de partition Linux swap (82 dans fdisk), forma-
tez-la avec mkswap et activez-la avec swapon. Lorsque tout cela fonctionne, ajoutez une ligne
à /etc/fstab.
Fichier On peut aussi créer, à la place d’une partition d’échange, un fichier d’échange. Cependant,
d’échange
ce n’est qu’une solution d’urgence car l’accès au système de fichiers en est ralenti.
Suivez pour cela les étapes suivantes :
root# dd bs=1024 if=/dev/zero of=/swapfile count=1000
1000+0 enregistrements lus
1000+0 enregistrements écrits
1024000 bytes (1,0 MB) copied, 0,0990064 s, 10,3 MB/s
root# swap /swapfile 1000
Initialisation de la version de l’espace de swap 1, taille = 1019 kB
root# sync
root# swapon -v /swapfile
swapon sur /swapfile

Vous pouvez ensuite ajouter le nouveau fichier comme une partition d’échange dans fstab :
/swapfile none swap sw 0 0

23.12 LVM
LVM (Logical Volume Manager, gestionnaire par volumes logiques) est une couche logique
entre le système de fichiers et les partitions du disque dur. Elle est gérée par le module du
noyau md_mod. Cette section est une courte introduction aux bases et à la configuration
manuelle de LVM. Vous trouverez plus d’informations aux adresses http://fr.wikipedia.org/
wiki/Gestion_par_volumes_logiques, http://www.redhat.com/magazine/009jul05/featu-
res/lvm2/, http://www.traduc.org/docs/HOWTO/vf/LVM-HOWTO.html et http://sour-
ceware.org/lvm2/.
Avantages et La description de LVM peut paraître abstraite, mais ses avantages sont réels :
inconvénients
• Vous pouvez créer et redimensionner des partitions sans redémarrer l’ordinateur en
fonctionnement normal : le problème d’une partition trop petite appartient au passé.
• Vous pouvez joindre plusieurs disques en une seule énorme partition virtuelle.
• Vous pouvez créer un instantané d’un système de fichiers très facilement. Un tel méca-
nisme est idéal pour les sauvegardes d’un système en cours de fonctionnement.
• LVM est très rapide. La flexibilité induite ne l’est pas au détriment des performances.
Cependant, LVM présente également quelques inconvénients :
• LVM doit être mis en place dès la création de la partition.
Linux Livre Page 452 Mardi, 23. septembre 2008 1:05 13

452 LINUX

• Il s’occupe uniquement des partitions et pas du système de fichiers qui s’y trouve. Lors-
que vous avez modifié la taille d’une partition, vous devez modifier la taille du système
de fichiers. Généralement, cela ne fonctionne que lorsqu’il n’est pas utilisé (lorsqu’il est
démonté).
• Lorsqu’un système de fichiers est réparti sur plusieurs disques, la probabilité d’erreur
augmente. Un problème sur un seul disque dur rend toutes les données inutilisables.
• La gestion des partitions est plus souple, mais aussi plus compliquée, en particulier en
ce qui concerne la récupération en cas d’incident.
• Vous ne pouvez pas accéder à une partition contenue dans un système LVM sous
Windows.
• Les versions courantes de GRUB ne parviennent pas à démarrer depuis une partition
LVM. Vous avez donc besoin d’une partition /boot à l’extérieur de LVM.
Versions Il existe deux versions de LVM : LVM1 à partir du noyau 2.4 et LVM2 à partir du noyau 2.6.
Cette section traite exclusivement de LVM2.
Vous pouvez connaître votre version de LVM avec lvm version. Vous devez installer les
outils LVM2 et charger le module dm_mod.
root# modprobe dm_mod
root# lvm version
LVM version: 2.02.26 (2007-06-15)
Library version: 1.02.20 (2007-06-15)
Driver version: 4.12.0

LVM pour la Dans cette section, je pars du principe que vous ne mettez en place LVM que pour les
partition
système partitions de données et que la partition système est une partition habituelle. Si vous
désirez mettre en place LVM pour la partition système, vous devez remplir les conditions
suivantes :
• Votre distribution doit le permettre pendant l’installation. C’est le cas pour Debian,
Fedora, Red Hat, SUSE et Ubuntu.
• Vous devez créer une partition d’amorçage en dehors du système LVM ou utiliser le
gestionnaire d’amorçage LILO.
• Le fichier initrd doit contenir le module md_mod.

Glossaire
Voici un glossaire rapide des divers termes associés à LVM.
• Volume physique (PV, physical volume). Un PV est un disque utilisé par une partition
LVM. Il peut s’agir d’un disque ou d’un ensemble de disques monté en RAID.
• Groupe de volumes (VG, volume group). Un ou plusieurs volumes physiques peuvent
être rassemblés dans un groupe. On peut alors répartir des partitions sur les disques
durs.
• Volume logique (LV, logical volume). Un LV est une partie du VG. Pour l’utilisateur, un
LV fait office de partition. Le système de fichiers y est créé. Tant qu’il reste de l’espace
sur le VG, on peut créer ou agrandir des LV à volonté.
Linux Livre Page 453 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 453

• Périphérique physique (PD, physical device). Il s’agit d’un disque dur. LVM peut utiliser
tout le disque ou plusieurs partitions de ce disque sous la forme de PV.
• Extension physique (PE, physical extent). On ne peut pas gérer chaque octet d’un VG
ou d’un LV indépendamment. La plus petite unité de données est une extension physique
et sa taille est généralement de 4 Mo.

Mettre en place un système LVM simple


Pour ce qui suit, je pars du principe que vous avez installé Linux sans LVM et que vous sou-
haitez utiliser des partitions supplémentaires en LVM. Cette section traite du cas où vous
n’avez qu’un seul disque à utiliser en LVM.
Réglage des Les partitions de disque dur doivent être identifiées en tant que partitions LVM. Si vous uti-
identifiants de
partitions lisez fdisk, vous pouvez leur associer l’identifiant hexadécimal 8e avec la commande T.
Dans parted, la commande correspondante est set numéro_partition lvm on.
Dans cet exemple, le système LVM est créé sur /dev/sdc1, puis étendu à /dev/sdc2.
root# fdisk -l /dev/sdc
Disque /dev/sdc: 320.0 GB, 320072933376 octets
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdc1 1 1217 9775521 8e Linux LVM
/dev/sdc2 1218 2434 9775552+ 8e Linux LVM
Fichier de Le seul fichier de configuration que vous pouvez modifier vous-même s’appelle /etc/lvm/
configuration
lvm.conf. Il contient divers paramètres de base qui n’ont que rarement besoin d’être modifiés.
Tous les autres paramètres de LVM (paramètres spécifiques aux volumes) sont gérés par les
outils associés.
Initialisation Pour initialiser LVM, lancez modprobe et vgscan. Ces opérations sont prises en charge par les
de LVM
distributions compatibles avec LVM2 dès le démarrage de l’ordinateur lorsque le système
LVM est mis en œuvre.
root# modprobe dm_mod
root# vgscan
Reading all physical volumes (this may take a while...)
No volume groups found
Création d’un Avant que LVM gère la partition /dev/sdc1, il faut déclarer celle-ci comme volume physique.
volume
physique Attention, vous perdrez toutes les données qui se trouvent sur cette partition.
root# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created
Création d’un Il faut maintenant grouper tous les volumes physiques dans un groupe de volumes. Dans
groupe de
volumes cet exemple, il n’y a qu’un seul PV, mais cette étape reste nécessaire. La commande
vgcreate doit également contenir le nom souhaité du VG. Dans cet exemple, le VG est
nommé myvg1 :
root# vgcreate myvg1 /dev/sdc1
Volume group "myvg1" successfully created
Linux Livre Page 454 Mardi, 23. septembre 2008 1:05 13

454 LINUX

Création monvg1 est un espace encore inutilisé. Pour l’utiliser, vous devez créer un volume logique,
d’un volume
logique c’est-à-dire une partition virtuelle. Pour cela, utilisez la commande lvcreate qui a besoin de
trois informations : la taille du volume logique, son nom et le nom du groupe de volumes.
root# lvcreate -L 2G -n myvol1 myvg1
Logical volume "myvol1" created
Création Pour créer un système de fichiers dans le volume logique, utilisez simplement mkfs.ext3 ou
d’un système
de fichiers dans mkfs.xfs :
le volume
logique root# mkfs.ext3 /dev/myvg1/myvol1

mount permet de vérifier que tout a fonctionné :


root# mkdir /test
root# mount -t ext3 /dev/myvg1/myvol1 /test
Arrêt de LVM LVM est interrompu lors de l’arrêt de l’ordinateur. Vous pouvez aussi effectuer cette opération
manuellement avec vgchange :
root# umount /test
root# vgchange -a n
0 logical volume(s) in volume group "myvg1" now active

Pour réutiliser LVM, relancez vgchange avec l’option -a y :


root# vgchange -a y
1 logical volume(s) in volume group "myvg1" now active

Redimensionner un système de fichiers


Agrandir Pour agrandir un système de fichiers, il faut d’abord agrandir le volume logique correspondant :
un système
de fichiers root# lvextend -L 3G /dev/myvg1/myvol1
Extending logical volume myvol1 to 3,00 GB
Logical volume myvol1 successfully resized

Il faut ensuite agrandir le système de fichiers. Si votre noyau ne contient pas le correctif
ext2online, vous devez démonter la partition, la vérifier avec fsck.ext3, la redimensionner
avec resize2fs et la remonter :
root# umount /test
root# fsck.ext3 -f /dev/myvg1/myvol1
...
root# resize2fs /dev/myvg1/myvol1
Resizing the filesystem on /dev/myvg1/myvol1 to 786432 (4k) blocks.
Le système de fichiers de /dev/myvg1/myvol1 a maintenant une taille de 786432
blocs.
root# mount -t ext3 /dev/myvg1/myvol1 /test
Réduire Pour réduire un système de fichiers, vous devez d’abord le réduire avec resize2fs ou l’outil
un système
de fichiers équivalent du système de fichiers considéré :
root# umount /test
root# fsck.ext3 -f /dev/myvg1/myvol1
root# resize2fs /dev/myvg1/myvol1 2560M
resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/myvg1/myvol1 to 655360 (4k) blocks.
Linux Livre Page 455 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 455

Vous pouvez alors réduire le volume logique avec lvreduce. Attention, vous devez indiquer
la taille correcte. Dans cet exemple, la taille des blocs est d’exactement 1 Ko, il n’y a donc
rien à calculer. Ce n’est pas toujours le cas.
root# lvreduce --size 2560M /dev/myvg1/myvol1
WARNING: Reducing active logical volume to 2,50 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvol1? [y/n]: y
Reducing logical volume myvol1 to 2,50 GB
Logical volume myvol1 successfully resized

Agrandir le Si vous n’avez plus de place sur le groupe de volumes et que vous souhaitez ajouter une
groupe de
volumes partition, reportez-vous aux étapes suivantes :
root# pvcreate /dev/sdc2
Physical volume "/dev/sdc2" successfully created
root# vgextend myvg1 /dev/sdc2
Volume group "myvg1" successfully extended
root# vgdisplay myvg1
...
VG Size 18,64 GB
Alloc PE / Size 640 / 2,50 GB
Free PE / Size 4132 / 16,14 GB
...

23.13 Optimiser les paramètres du disque dur


hdparm
hdparm a été développé pour configurer les disques durs IDE. Depuis la version 2.6.15 du
noyau, il fonctionne aussi pour les disques SATA. Il faut que le noyau prenne en charge
l’option libata passthrough. Le plus simple est de tester cela avec hdparm -i périphéri-
que : si cette commande renvoie des données sur le fonctionnement du disque, hdparm fonc-
tionne. Notez cependant que de nombreuses options de hdparm sont redondantes pour les
disques durs : par exemple les disques SATA ont toujours le mode DMA activé.
État du disque La commande hdparm -I affiche des informations sur le disque dur.
Performances hdparm -tT affiche les performances de transfert de données entre le disque dur et l’ordina-
du disque dur
teur. Cette commande renvoie deux résultats : les performances pour les données dans le
cache du disque dur et les performances pour les données qui doivent être lues sur le disque
dur. J’ai obtenu les résultats suivants sur mon disque dur SATA. Cependant, les performances
ne sont que théoriques.
root# hdparm -tT /dev/sda
Timing cached reads: 15172 MB in 2.00 seconds = 7592.33 MB/sec
Timing buffered disk reads: 224 MB in 3.00 seconds = 74.54 MB/sec

Cache La plupart des disques durs utilisent une mémoire tampon pour les opérations d’écriture.
d’écriture
Dès que les données s’y trouvent, le disque dur indique au système d’exploitation que les
Linux Livre Page 456 Mardi, 23. septembre 2008 1:05 13

456 LINUX

données sont écrites, mais elles ne le sont physiquement qu’un peu plus tard. Ce cache accé-
lère les opérations d’écriture, mais représente un risque d’insécurité des données. Lors
d’une coupure de courant, des données peuvent ne pas être complètement enregistrées et
même un système de fichiers journalisé n’y fera rien.
Pour désactiver le cache – ce qui diminue les performances mais augmente la sécurité –, uti-
lisez la commande hdparm -W0. hdparm -W1 réactive le cache.
Économie Les disques durs de portables modernes peuvent être éteints après une certaine période
d’énergie
d’inactivité pour économiser l’énergie. À l’accès suivant, il faut compter quelques secondes
avant que le disque dur ne soit prêt à l’utilisation. L’option -S permet de régler la valeur
avant que le disque ne soit désactivé. La valeur de cette option va de 0 à 255 et son interpré-
tation est détaillée dans man hdparm. Évitez les valeurs très faibles : cela économise certes de
l’énergie, mais réduit énormément la durée de vie du disque dur, qui n’est prévue que pour
10 000 cycles de désactivation/réactivation.
La commande suivante désactive le disque au bout de dix minutes sans activité :
root# hdparm -S 120 /dev/hda

SMART
SMART signifie Self-Monitoring, Analysis and Reporting Technology (technologie d’autosur-
veillance, d’analyse et de rapport) et est utilisable par presque tous les disques IDE, SATA et
SCSI courants. SMART permet d’enregistrer divers paramètres du disque dur à intervalles
réguliers. Ces paramètres donnent un avertissement sur d’éventuels défauts du disque et
sur sa durée de vie. La surveillance de ces paramètres par le système d’exploitation est un
système d’alerte précoce.
Vous trouverez plus d’informations au sujet de SMART dans les pages
http://fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology,
http://smartmontools.sourceforge.net/ et http://www.linuxjournal.com/article/6983.
Prérequis Pour que SMART puisse être utilisé, quelques conditions doivent être remplies :
• Le disque dur doit prendre en charge SMART. Vous pouvez par exemple savoir cela
avec hdparm -I.
• Il doit s’agir d’un disque dur interne. SMART ne peut pas être utilisé sur les disques
USB et Firewire.
• Les disques durs connectés par un contrôleur RAID matériel ne peuvent utiliser
SMART que dans certains cas particuliers.
• Le paquetage smartmontools doit être installé.
• Le noyau a besoin, pour les disques SATA, de l’option libata passthrough. C’est géné-
ralement le cas pour les noyaux à partir de la version 2.6.15.
État du disque Pour lire les données SMART et pour effectuer les tests SMART, on utilise la commande
smartctl.
Lancez smartctl -i pour voir si le disque prend en charge SMART. Si, pour un disque SATA,
le message d’erreur Device does not support SMART s’affiche, vous devez indiquer le type
de disque avec -d ata. Cette option est nécessaire uniquement pour les versions anciennes
de smartctl.
Linux Livre Page 457 Mardi, 23. septembre 2008 1:05 13

ADMINISTRATION DU SYSTÈME DE FICHIERS 457

Lorsque smartctl -i affiche dans la dernière ligne SMART support is Disabled, activez
SMART avec smartctl -s on.
smartctl -H indique si un disque dur est dans un état correct et s’il est probable qu’il fonc-
tionne encore dans les prochaines vingt-quatre heures. Si smartctl ne renvoie pas PASSED
comme résultat, il est urgent de faire une sauvegarde complète du disque concerné.
root# smartctl -H /dev/hda
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

smartctl -A affiche une liste des attributs du disque dur. Pour interpréter les résultats, il
faut prendre en compte deux valeurs. La colonne VALUE est la valeur actuelle et TRESH est le
seuil au-dessous duquel il faut s’attendre à des problèmes.
Les valeurs sont normalisées à 100. Par exemple, la valeur Power_On_Hour (indiquant le
nombre d’heures pendant lesquelles le disque a fonctionné) est à 100 pour un nouveau dis-
que dur et chute au fur et à mesure vers 0. La colonne RAW_VALUE indique la valeur brute de
la donnée, en l’occurrence le nombre d’heures de fonctionnement.
smartctl -l error affiche des informations sur les cinq dernières erreurs rencontrées. Les
erreurs isolées qui ne se répètent pas ne sont généralement pas pertinentes.
Exécution SMART permet d’établir encore plus précisément l’état d’un disque avec des tests poussés.
d’un test
Il existe deux tests : un test court (smartctl -t short) et un test long (smartctl -t long). Le
test est effectué en tâche de fond et vous pouvez continuer à travailler normalement. Une
fois le test terminé, vous pouvez en voir le résultat avec smartctl -l selftest.
Surveillance Il existe également des outils de surveillance automatique pour collecter des informations
automatique
régulièrement sur le disque et pour prévenir l’utilisateur en cas de défaillance. Vous pouvez
par exemple utiliser le démon smartd (voir man smartd).
Linux Livre Page 458 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 459 Mardi, 23. septembre 2008 1:05 13

Démarrage du système
24
Ce chapitre traite du démarrage d’un système Linux, qui est assuré par trois composants :
• GRUB sert à démarrer le noyau Linux. Pour cela, il faut l’installer sur une disquette ou
sur le secteur d’amorçage d’un disque dur. Il existe des alternatives à GRUB, comme
LILO, mais leur usage est de plus en plus restreint.
• Lorsque le noyau fonctionne, le système est initialisé (détection du matériel, accès au
disque dur, etc.). Si cela pose problème, vous pouvez passer des options d’amorçage.
• Pour finir, le noyau démarre le programme init du processus InitV. init effectue diver-
ses tâches d’initialisation, comme le montage des systèmes de fichiers et le démarrage
des services réseau. Des connaissances de base sur ce processus s’avèrent utiles
lorsqu’on configure des services.

24.1 GRUB
Pour être précis, nous ne parlons pas ici simplement de GRUB, mais de GNU GRUB 0.9.n
legacy. legacy indique que cette version n’est plus développée activement. Depuis 2005, les
développeurs travaillent sur une nouvelle implémentation de GRUB, nommée GRUB 2. Mi-
2008, celle-ci n’était toujours pas utilisée en pratique. La plupart des distributions fournissent
pour l’instant GRUB 0.9.n, auquel ce chapitre est consacré.
GRUB signifie GRand Unified Bootloader (grand chargeur d’amorçage unifié). La documenta-
tion officielle est accessible avec info grub. Vous trouverez plus d’informations sur GRUB,
y compris GRUB 2, à la page http://www.gnu.org/software/grub/.

Détails du démarrage du système


Avant de traiter de l’installation et de la configuration de GRUB, voici un aperçu des opéra-
tions effectuées à l’amorçage. Lorsque vous allumez votre ordinateur, le BIOS est initialisé.
Certains messages apparaissent à l’écran, comme par exemple la quantité de mémoire de
votre ordinateur.
Le BIOS charge le contenu du premier secteur du premier disque dur ou de la disquette en
mémoire et exécute son code. Ce secteur spécial du disque dur s’appelle le MBR (Master Boot
Record, enregistrement d’amorçage maître).
Si seul Windows est installé sur votre ordinateur, le petit programme qui se trouve dans le
MBR le lance. Pour Windows NT/2000/XP/Vista, le système d’exploitation n’est pas
démarré directement ; le processus de démarrage passe par le chargeur d’amorçage. Vous
pouvez, dans ce menu, choisir entre plusieurs versions de Windows.
Chargeur Si Linux est également installé sur votre ordinateur, le MBR doit contenir le programme qui le
d’amorçage
de Linux démarre. Il existe plusieurs chargeurs d’amorçage pour Linux, dont le plus populaire est GRUB.
Linux Livre Page 460 Mardi, 23. septembre 2008 1:05 13

460 LINUX

Le MBR ne peut contenir que 512 octets de données. C’est pourquoi le chargeur d’amorçage
ne se trouve pas complètement dans le MBR. Pour contourner cette limite de place, celui-ci
ne contient que le code qui permet de charger le reste du chargeur d’amorçage depuis le
disque dur.
Le code de GRUB est divisé en deux ou trois parties. stage1 se trouve dans le MBR et n’a
comme tâche que de charger les premiers secteurs de stage1_5 ou stage2. stage1_5 contient
le code supplémentaire pour accéder aux fichiers dans divers systèmes de fichiers et stage2
le gestionnaire d’amorçage réel.
Dès que le gestionnaire d’amorçage est lancé, un menu apparaît. Celui-ci permet de choisir
entre tous les systèmes d’exploitation définis dans la configuration de GRUB. Vous pouvez
naviguer dans ce menu à l’aide des touches de direction et démarrer le système souhaité
avec Entrée. Le gestionnaire d’amorçage est souvent configuré pour démarrer un système
donné au bout d’un certain temps.

Il n’existe qu’un seul MBR, mais il peut y avoir plusieurs systèmes d’exploitation sur votre disque dur. Cela risque
évidemment de mener à des conflits !
Lorsque vous réinstallez Windows, le MBR est écrasé et vous ne pouvez plus démarrer Linux directement.
Si votre ordinateur dispose d’un lecteur CD, vous pouvez créer dans ce cas une disquette d’amorçage
GRUB. Si vous n’avez pas de lecteur de disquette, vous devez lancer pour réparer GRUB un système live
(par exemple Knoppix) ou un système d’urgence (fourni sur le CD ou DVD d’installation de nombreuses
distributions).
Inversement, GRUB écrase également, lorsqu’il est installé, le code présent sur le MBR. Cela n’est normale-
ment pas un problème, car GRUB peut démarrer Windows. Malheureusement, l’installation de GRUB peut
échouer. Si cela vous arrive, vous ne pouvez plus démarrer aucun système.

Démarrage Lorsque vous décidez de lancer Windows, le chargeur d’amorçage doit charger et démarrer
de Linux
le fichier du noyau sur le disque dur. Ce fichier s’appelle généralement /boot/vmlinuz (z
indique que le noyau est compressé). Le chargeur d’amorçage doit donc pouvoir charger un
fichier depuis le système de fichiers Linux.
Paramètres En général, on passe peu de paramètres au noyau, mais il en faut au moins un : le nom du
du noyau
périphérique contenant la partition système (par exemple root=/dev/sdb13). Ainsi, le noyau
connaît la partition système. Dès que le noyau est lancé, il passe le contrôle au programme
/sbin/init. Ce programme sert à initialiser le système Linux ; il démarre par exemple tous
les services réseau.
Accès aux Il faut encore prendre en compte une particularité : le noyau Linux est modulaire. Cela
modules
du noyau signifie qu’il ne contient que des fonctions relativement élémentaires. Les fonctionnalités
supplémentaires, par exemple pour accéder à divers composants matériels ou lire et écrire
différents systèmes de fichiers, se trouvent dans des modules qui sont chargés depuis le
système de fichiers et qui étendent le noyau.
Pour que le processus de démarrage fonctionne, le noyau doit pouvoir accéder à la partition
système. Si celle-ci est formatée dans un système de fichiers que le noyau ne prend pas en
charge ou si elle se trouve sur un disque SCSI pour lequel le noyau n’a pas de pilote matériel,
survient le classique problème du paradoxe de l’œuf et de la poule : le noyau ne peut pas
Linux Livre Page 461 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 461

accéder au système de fichiers et ne peut donc pas charger le module nécessaire pour lire
des fichiers sur le système de fichiers.
Fichier initrd La solution à ce problème est de charger, en plus du noyau, un fichier initrd. Il s’agit d’un
fichier spécial qui contient tous les modules du noyau nécessaires au démarrage du sys-
tème. Ce fichier est géré par le noyau comme un disque en mémoire vive − le noyau peut
alors lancer les modules nécessaires une fois le disque virtuel chargé.
Le fichier initrd s’appelle souvent /boot/initrd ou /boot/initrd.gz. La plupart des distri-
butions fournissent des outils pour créer un fichier initrd qui correspond au matériel et au
système de fichiers de la partition système (commande mkinitrd).
Installation et Lorsque nous parlons d’installation de logiciels dans cet ouvrage, cela implique souvent
configuration
de GRUB l’installation d’un paquetage depuis un CD ou Internet. Dans ce chapitre, une autre signifi-
cation s’applique. "Installer GRUB" décrit le processus d’écriture du code de démarrage de
GRUB sur le secteur d’amorçage d’un disque dur ou d’une disquette. Nous supposerons
que le paquetage logiciel GRUB est installé.
La configuration de GRUB consiste à modifier /boot/grub/menu.lst de manière que tous les
systèmes puissent être démarrés. GRUB accède par défaut à ce fichier. Dans GRUB 2, le fichier
de configuration s’appelle grub.conf. Fedora et Red Hat utilisent déjà ce nom de fichier.
LILO Dans ce chapitre, nous ne parlerons pas de LILO, qui n’est plus utilisé que dans de rares cas
(distribution Slackware et certains serveurs dédiés, par exemple). Dans le cas où LILO
serait installé par défaut, vous pouvez généralement installer GRUB pour le remplacer.
Vous trouverez des informations sur LILO aux adresses http://lilo.go.dyndns.org/, http://
doc.ubuntu-fr.org/lilo et http://fr.wikipedia.org/wiki/Linux_loader.

24.2 GRUB – Utilisation


Lorsque GRUB est bien installé, un menu permet de choisir le système d’exploitation sou-
haité lors du démarrage de l’ordinateur (voir Figure 24.1). Dans certaines distributions, ce
menu s’affiche en mode graphique. Pour utiliser les fonctions supplémentaires de GRUB, il
faut quitter ce mode avec Échap.

Figure 24.1
Menu GRUB.
Linux Livre Page 462 Mardi, 23. septembre 2008 1:05 13

462 LINUX

Vous pouvez alors modifier une ligne du menu de GRUB avec E (edit). C (command line) per-
met de quitter ce menu. Vous vous trouvez alors dans un interpréteur de commandes. help
fournit un aperçu des commandes valides, dont certaines seront décrites dans cette section.
help commande permet d’en savoir plus sur une commande donnée et Échap, de revenir au
menu d’amorçage.

GRUB peut être sécurisé avec un mot de passe. Dans ce cas, vous ne pouvez accéder aux fonctions interactives
de GRUB que lorsque vous avez saisi P et le mot de passe.
GRUB fonctionne normalement en clavier QWERTY US.

Passer des La fonction de modification de GRUB sert avant tout à passer des options du noyau au
options au
noyau Linux démarrage de Linux (par exemple, pour régler des problèmes matériels). Pour cela, choisis-
sez la ligne de menu souhaitée et passez en mode d’édition avec E. Quelques lignes s’affi-
chent, semblables à celles-ci :
root (hd1,12)
kernel /boot/vmlinuz root=/dev/sdb13
initrd /boot/initrd

Choisissez avec les touches de direction la ligne qui commence par kernel, tapez E pour
la modifier, puis ajoutez les options du noyau à la fin de la ligne. Entrée permet de vali-
der les modifications. Échap retourne au menu, d’où vous pouvez démarrer Linux. La
modification des options d’amorçage n’est utilisée qu’une seule fois ; ces options ne sont
pas enregistrées.
Exécuter des Depuis le menu GRUB, vous pouvez passer dans un mode de commandes interactives avec
commandes
interactives C. Vous pouvez y lancer diverses commandes GRUB. Cela permet de démarrer un système
Linux lorsque le menu GRUB ne dispose pas de ligne explicite pour ce système. Vous devez
pour cela savoir sur quelle partition se trouve Linux et quelles sont les commandes GRUB
correspondantes. Les commandes suivantes démarrent par exemple la distribution qui se
trouve sur la partition /dev/sdb13 :
grub> root (hd1,12)
grub> kernel /boot/vmlinuz root=/dev/sdb13
grub> initrd /boot/initrd
grub> boot

Lorsque vous saisissez des noms de fichiers, GRUB sait compléter avec Tab les noms
de fichiers de root ou d’une partition donnée (voir Figure 24.2). cat permet d’afficher un
fichier texte. Le mode de commandes interactives fournit de nombreuses autres commandes,
que nous ne détaillerons pas ici pour des raisons de place.
Modifier le GRUB lit le menu d’amorçage dans le fichier /boot/grub/menu.lst. Celui-ci contient des
menu de
manière commandes telles que title, root, kernel, chainloader, etc. Pour modifier le menu de
persistante manière persistante, vous devez lancer Linux, chercher le fichier de menu de GRUB et le
modifier. GRUB prend en compte vos modifications dès le démarrage suivant. La section
suivante traite des modifications de ce fichier.
Linux Livre Page 463 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 463

Figure 24.2
Utiliser GRUB de manière
interactive.

24.3 GRUB – Configuration


Cette section décrit les éléments importants du fichier de menu de GRUB, souvent situé
dans /boot/grub/menu.lst. À partir de la version 2, ce fichier de configuration s’appelle
grub.conf. Red Hat et Fedora l’utilisent déjà. Les liens symboliques /boot/grub/menu.lst et
/etc/grub.conf pointent vers ce fichier, afin de ne pas faire d’erreur lorsque vous chargez et
modifiez menu.lst dans un éditeur.
Notez que toutes les commandes présentées ici peuvent également être lancées de manière
interactive dans l’interpréteur de commandes de GRUB. Les modifications de menu.lst ne
sont prises en compte que lorsque GRUB se trouve déjà sur le secteur d’amorçage de votre
disque dur ou lorsqu’un autre support de données est installé. L’installation de GRUB sera
détaillée à la section suivante.
Le caractère # introduit un commentaire.
Il existe également des outils spécifiques aux distributions pour modifier GRUB, par exemple
dans SUSE le module YaST Système, Configuration du chargeur d’amorçage.

La plupart des distributions actualisent automatiquement le fichier de menu de GRUB lorsque vous mettez à
jour le noyau. Vous êtes ainsi assuré que le nouveau noyau est amorcé au démarrage suivant. Il arrive
cependant que cette reconfiguration automatique écrase vos propres modifications.
Sous les systèmes Debian et Ubuntu, le script update-grub reconfigure GRUB.
Tous les noms de fichiers et de partitions de cette section ont valeur d’exemple. Vous devez remplacer le nom
du disque par votre propre partition système ou partition d’amorçage. Si Linux fonctionne, la commande
df permet de connaître le nom de ces partitions.
Il arrive également que le fichier du noyau ou le fichier initrd aient d’autres noms que ceux des exemples
de cet ouvrage.
Linux Livre Page 464 Mardi, 23. septembre 2008 1:05 13

464 LINUX

Descriptions des disques durs et partitions


GRUB a sa propre nomenclature pour désigner les disques durs et les partitions. La règle de
base est que la numérotation commence toujours par 0.

Noms de partitions de GRUB


(hd0) premier disque dur (correspond à /dev/hda ou /dev/sda)
(hd0,0) première partition du premier disque dur (correspond à /dev/hda1 ou /dev/sda1)
(hd2,7) huitième partition du troisième disque dur
(fd0) lecteur de disquette

Selon la manière dont le disque est partitionné, le schéma des noms GRUB peut, comme celui du nommage des
partitions, contenir des trous. Un disque dur doté d’une partition primaire, d’une partition étendue et de deux
partitions logiques aura pour noms de périphériques /dev/sda1, /dev/sda2, /dev/sda5 et /dev/sda6.
Les noms GRUB correspondants sont (hd0,0), (hd0,1), (hd0,4) et (hd0,5).

Les disques SATA et SCSI sont décrits de la même façon que les disques IDE. Lorsque plu-
sieurs systèmes de disques (par exemple, IDE et SCSI) sont utilisés sur l’ordinateur, l’ordre
numérique des disques durs dépend du BIOS. Les lecteurs CD et DVD ne sont pas pris en
compte par la numérotation.
devices.map Le fichier /boot/grub/devices.map sert à faire correspondre les noms des périphériques et les
noms GRUB. Il est créé lorsque GRUB est lancé pour la première fois. Cependant, il n’est pas
automatiquement actualisé lors de l’ajout d’un disque. Vous pouvez, en revanche, le supprimer
et exécuter à nouveau grub. Le fichier est alors recréé, ce qui peut prendre jusqu’à une minute.
Dans les cas tenaces, vous pouvez aussi modifier vous-même le fichier. Veillez cependant à
ce que vos modifications s’accordent avec celles que GRUB récupère du BIOS lors du
démarrage de l’ordinateur. Ce fichier ressemble à ceci :
(hd0) /dev/sda
(hd1) /dev/sdb
(fd0) /dev/fd0

Paramètres globaux de menu.lst


Le fichier de menu de GRUB se compose d’une section globale, qui contient divers paramè-
tres de base, et de plusieurs éléments de menu, qui commencent tous par title. Voici des
exemples de paramètres globaux de menu.lst :
default 2 # le troisième élément du menu est le choix
# par défaut
timeout 30 # attendre 30 secondes avant de démarrer
# le choix par défaut
color yellow/blue red/white # couleurs du menu

Les paragraphes suivants définissent les mots clés utilisables dans la section globale de
menu.lst.
Linux Livre Page 465 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 465

• default. Cette option indique le numéro de l’élément du menu qui fait office de choix
par défaut. La numérotation commence à 0 ! À la place d’un numéro, vous pouvez aussi
trouver default saved. Dans ce cas, l’élément par défaut est celui sélectionné lors du
dernier amorçage. Pour que cela fonctionne, il faut cependant que l’élément contienne
le mot clé savedefault, dont nous parlerons à la section suivante. S’il n’y a pas d’option
default, le premier élément du menu est le choix par défaut.
• fallback. Cette option donne le numéro du menu utilisé lorsque le choix par défaut ne
fonctionne pas. Lorsque fallback n’est pas défini, si l’élément par défaut ne fonctionne
pas, GRUB passe en mode interactif.
• timeout. Cette option indique le nombre de secondes pendant lesquelles GRUB attend
un choix dans le menu. Une fois cette durée écoulée, le système par défaut est démarré.
• hiddenmenu. Cette option cache le menu. Une fois le temps défini par timeout écoulé, le
système par défaut est démarré. L’utilisateur peut, pendant ce temps, appuyer sur
Échap pour afficher le menu.
• password --md5 mot_de_passe. Cette option protège GRUB avec un mot de passe. Les
commandes du menu ne peuvent pas être utilisées sans mot de passe. Les fonctions
interactives de GRUB se limitent à la saisie d’un mot de passe.
• color avant-plan/arrière-plan avant-plan du menu/arrière-plan du menu. Cette
option définit les couleurs du menu. La première est la couleur du texte. La deuxième
est la couleur du fond de l’écran. Les deux couleurs suivantes définissent celle du texte
et du fond pour l’élément en surbrillance du menu. S’il n’y a pas d’option color, le
menu s’affiche en noir et blanc.
• splashimage. Cette option n’est pas disponible dans toutes les distributions, car il ne
s’agit pas d’une option officielle de GRUB. Ce mot clé permet d’ajouter une image de
fond au menu. Celle-ci doit faire 640x480 pixels, être au format XPM (8 bits par pixel) et
compressée avec gzip. La ligne suivante illustre l’utilisation de splashimage :
splashimage=(hd1,1)/boot/grub/splash.xpm.gz
Vous trouverez également plus de détails à l’adresse
http://ruslug.rutgers.edu/~mcgrof/grub-images/.
• gfxmenu. Il s’agit d’une autre extension non officielle de GRUB, utilisée entre autres par
les distributions SUSE et Novell. Le fichier d’image doit être créé avec mkbootmsg. Ces
commandes, ainsi que le fichier de documentation gfxboot.html se trouvent dans le
paquetage gfxboot.
Protection par La grande flexibilité de GRUB pose évidemment des problèmes de sécurité. Un utilisateur
mot de passe
de GRUB peut lire tous les fichiers du disque qui se trouvent sur une partition ext2, ext3,
reiserfs ou vfat avec cat. Il est donc sensé de protéger GRUB par un mot de passe.
Pour cela, lancez la commande grub, puis md5crypt. Vous pouvez alors saisir un mot de
passe. GRUB renvoie une clé chiffrée :
root# grub
grub> md5crypt
Password: ******
Encrypted: $1$FWk/60$QfckeBVBoaWNBm274USHO0
Linux Livre Page 466 Mardi, 23. septembre 2008 1:05 13

466 LINUX

Ajoutez simplement cette clé au champ password du fichier de menu de GRUB :


password --md5 $1$FWk/60$QfckeBVBoaWNBm274USHO0

Tous les utilisateurs peuvent alors choisir n’importe quel élément du menu, mais ils ne peu-
vent pas utiliser les fonctions interactives de GRUB tant qu’ils n’ont pas saisi le mot de
passe. Pour ce faire, l’utilisateur doit taper P, puis le mot de passe.
Pour protéger un élément donné du menu, ajoutez le mot clé lock après la ligne title de
l’élément en question.

Éléments du menu dans menu.lst


Après la configuration globale, menu.lst contient différents éléments de menu pour diffé-
rents systèmes d’exploitation. Chaque élément commence par title. Le titre indiqué après
title est le contenu affiché dans le menu. Mes tests montrent que seuls les caractères du jeu
US ASCII sont autorisés, à l’exception des caractères accentués. Je n’ai cependant trouvé
aucune documentation confirmant ce fait.
Les lignes suivantes (jusqu’à la section title suivante ou la fin du fichier) sont les commandes
GRUB lancées à la suite les unes des autres. Lorsque vous testez des commandes interactives,
vous devez ajouter une commande boot. Celle-ci n’est pas nécessaire dans le fichier du menu.
Démarrer Pour démarrer Linux, vous devez indiquer la partition root sur laquelle se trouvent le
Linux
noyau et le fichier initrd (si nécessaire). Elle est considérée comme partition active pour
GRUB. Les options kernel et initrd indiquent l’emplacement exact des fichiers, ainsi que
d’éventuelles options d’amorçage du noyau.
Pour les options du noyau, et en particulier pour la saisie du système de fichiers root, la
nomenclature Linux est utilisée. Il faut donc taper root=/dev/sdb13 pour indiquer le système
de fichiers à utiliser. Vous pouvez aussi utiliser les notations root=LABEL=libellé ou
root=UUID=n et dans ce cas, le libellé ou le numéro d’identification du disque (voir Chapitre 23).
Attention, les noms de fichiers vmlinuz et initrd peuvent différer sur votre système.
title Linux
root (hd1,12)
kernel /boot/vmlinuz root=/dev/sdb13
initrd /boot/initrd

Vous pouvez aussi omettre la commande root. Vous devez cependant alors indiquer, pour
chaque fichier, la partition à considérer.
title Linux
kernel (hd1,12)/boot/vmlinuz root=/dev/sdb13
initrd (hd1,12)/boot/initrd

Si /boot ne se trouve pas sur la partition système, mais sur une partition d’amorçage sépa-
rée, vous devez modifier la commande root en conséquence. Comme la partition boot
devient alors le point d’entrée de tous les fichiers, /boot ne doit pas être ajouté aux commandes
indiquant les fichiers du noyau et du disque virtuel. Les lignes suivantes supposent que la
partition /dev/sda2 est la partition /boot :
title Linux
root (hd0,1)
Linux Livre Page 467 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 467

kernel /vmlinuz root=/dev/sdb13


initrd /initrd

Passer des Selon le matériel et la distribution, il peut être nécessaire de passer des options d’amorçage
options au
noyau au noyau Linux. Ces options gèrent, entre autres, l’affichage des messages du processus
InitV. Elles doivent simplement être ajoutées à la fin de la ligne kernel. Les lignes suivantes
sont un premier exemple :
title Linux
root (hd1,12)
kernel /boot/vmlinuz root=/dev/sdb13 vga=normal
initrd /boot/initrd

Pour connaître les options nécessaires à votre distribution ou votre matériel, le plus simple
est de consulter le fichier GRUB créé pendant l’installation. Voici quelques exemples :
• Debian 4 root=/dev/xxx ro
• Fedora 9, RHEL 5 root=LABEL=xxx ro rhgb quiet
• Ubuntu 8.04 root=UUID=xxx ro quiet splash
• SUSE 11 root=/dev/xxx vga=xxx resume=/dev/xxx splash=silent showopts
vga=317
Démarrer Pour démarrer Windows, vous devez indiquer la partition active avec rootnoverify, plutôt
Windows
qu’avec root. La commande chainloader +1 assure que le premier secteur de cette partition
est lu et exécuté. Sous Windows 9x/ME, cela revient à démarrer directement Windows.
Sous Windows NT/2000/XP/Vista, cela lance le gestionnaire d’amorçage de Windows qui
s’occupe lui-même de démarrer Windows − GRUB ne sait pas démarrer lui-même Win-
dows NT/2000/XP/Vista.
title Windows
rootnoverify (hd0,0)
chainloader +1

Windows n’arrive à démarrer que lorsqu’il se trouve sur le premier disque dur. Si ce n’est
pas le cas, il faut échanger virtuellement les disques avec les lignes suivantes :
title Windows
rootnoverify (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1

Enregistrer le Lorsque menu.lst contient de nombreux éléments, le fait que GRUB enregistre le dernier
dernier choix
élément choisi peut s’avérer pratique. Pour cela, ajoutez l’option default saved à la section
globale de menu.lst, puis le mot clé savedefault dans tous les éléments du menu :
title Linux
root (hd1,12)
kernel /boot/vmlinuz root=/dev/sdb13
initrd /boot/initrd
savedefault
Linux Livre Page 468 Mardi, 23. septembre 2008 1:05 13

468 LINUX

N’utilisez savedefault en aucun cas sur un ordinateur pour lequel le BIOS lie deux ou plusieurs disques
en RAID (RAID logiciel au niveau du BIOS). Vous risquez de perdre des données et de mettre en danger la
synchronisation des disques du RAID.

Tester la configuration de GRUB


Pour tester rapidement et sans redémarrer la syntaxe d’un élément du menu de GRUB, lancez
d’abord grub et passez-lui la commande suivante :
root# grub
grub> configfile (hd1,12)/boot/grub/menu.lst

(hd1,12) doit être remplacé par le nom GRUB du disque dur sur lequel se trouve le fichier
de menu. Lorsque tout fonctionne, GRUB affiche le menu. Cependant, vous ne pouvez pas
choisir de système d’exploitation, puisque Linux est déjà démarré.

24.4 GRUB – Installation


L’installation de GRUB s’effectue normalement pendant l’installation de Linux. Il n’est donc
pas nécessaire de le réinstaller. Pour le configurer, il suffit de modifier /boot/grub/menu.lst
(voir section 24.3).
Cette section couvre les cas particuliers suivants :
• la réinstallation de GRUB après son écrasement sur le MBR ;
• l’installation de GRUB sur une disquette ;
• l’installation de GRUB sur un support USB.

Réinstallation de GRUB
Lorsque l’installation de GRUB échoue ou lorsqu’elle est écrasée (par exemple, par l’instal-
lation de Windows), vous ne pouvez plus accéder directement au système Linux. Knoppix
est un outil pratique pour réparer une installation de Linux, et en particulier le chargeur
d’amorçage. Vous le trouverez à l’adresse http://knoppix-fr.org/. Vous pouvez aussi télé-
charger la version francisée, Kaella, à l’adresse http://kaella.linux-azur.org/.
Knoppix se grave sur un CD ou un DVD. Il suffit alors d’amorcer l’ordinateur pour démar-
rer Knoppix. Celui-ci devient cependant de moins en moins utile à mesure que les distributions
fournissent un CD d’installation "live". Les manipulations ci-après peuvent peut-être fonc-
tionner avec le CD d’installation de votre distribution.
Une fois Knoppix démarré, lancez un shell en root. Dans l’idéal, vous savez sur quelle
partition se trouve votre distribution Linux et en particulier, le répertoire /boot.
Si ce n’est pas le cas, cliquez sur les différentes icônes de disque dur du bureau Knoppix.
Vous reconnaîtrez la partition souhaitée à son répertoire /boot qui contient les fichiers du
noyau Linux (vmlinuz par exemple), le sous-répertoire /boot/grub et le fichier de menu
GRUB /boot/grub/menu.lst. Si vous avez une partition d’amorçage séparée, celle-ci ne
Linux Livre Page 469 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 469

contient pas de répertoire boot : vmlinuz et le sous-répertoire grub se trouvent directement à


la racine de cette partition.
Lorsque vous avez trouvé cette partition − nous supposons dans la suite de cette section
qu’il s’agit de /dev/sda3 −, cliquez du bouton droit sur l’icône de la partition et activez les
droits en écriture.
Il faut ensuite installer GRUB sur le secteur d’amorçage du disque dur, afin qu’il puisse lire tous
les fichiers nécessaires à l’amorçage sur /dev/sda3. La notation GRUB de cette partition est
(hd0,2) et celle du premier disque, dont le secteur d’amorçage doit être modifié, est (hd0).
root# grub
grub> root (hd0,2)
grub> setup (hd0)
grub> quit

Installation sur une disquette


Si votre ordinateur dispose encore d’un lecteur de disquette, vous pouvez installer GRUB sur
une disquette vierge. Linux ne démarre que lorsque le secteur d’amorçage de la disquette est
lu − cela implique généralement une modification des paramètres du BIOS.
Variantes Il existe deux variantes d’installation de GRUB sur une disquette :
• Installation minimale. Vous n’installez que le fichier stage1 dans le secteur d’amorçage
de la disquette de manière que tous les autres fichiers (stage2, le fichier de menu de
GRUB, etc.) soient chargés depuis le disque dur. L’amorçage est donc plus rapide, car un
seul secteur est lu sur la disquette. Il est cependant nécessaire que tous les autres fichiers
se trouvent effectivement sur le disque. Cette disquette ne peut donc servir que de dis-
quette d’urgence pour démarrer Linux lorsque le MBR est défectueux, par exemple
après une réinstallation de Windows.
• Installation complète. Vous copiez ici tous les fichiers GRUB sur la disquette (stage1,
stage-1_5 et stage2, ainsi que les fichiers du menu). L’avantage est que l’ordinateur
démarre même lorsque les fichiers GRUB ne sont pas lisibles sur l’ordinateur. L’inconvé-
nient est que l’amorçage est plus long, car tous ces fichiers doivent être lus depuis la
disquette.
Installation L’exemple suivant suppose que tous les fichiers GRUB se trouvent sur la partition /dev/
minimale
sdb13 de l’ordinateur. Pour installer GRUB sur le secteur d’amorçage de la disquette, lancez
les commandes suivantes :
root# grub
grub> root (hd1,12)
grub> setup (fd0)
grub> quit

Installation Pour installer complètement GRUB sur une disquette, il faut modifier, en plus de son sec-
complète
teur d’amorçage, le contenu de la disquette. Les commandes suivantes créent un système de
fichiers ext2 sur la disquette, le montent sur /disquette, créent le répertoire /disquette/
Linux Livre Page 470 Mardi, 23. septembre 2008 1:05 13

470 LINUX

boot et y copient tous les fichiers stage. Selon la distribution, il se peut que ces fichiers ne
soient pas dans /usr/lib/grub, mais dans un autre répertoire.
root# mke2fs /dev/fd0
root# mkdir /floppy
root# mount -t ext2 /dev/fd0 /floppy
root# mkdir /floppy/boot
root# cp -a /usr/lib/grub/ /floppy/boot/

Vous devez aussi copier le fichier de menu de GRUB :


root# cp /boot/grub/menu.lst /floppy/boot/

Ensuite, vous devez installer GRUB dans le chargeur d’amorçage de la disquette :


root# grub
grub> root (fd0)
grub> setup (fd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (fd0)"... failed
(this is not fatal)
Running "embed /boot/grub/e2fs_stage1_5 (fd0)"... failed
(this is not fatal)
Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2
p /boot/grub/menu.lst "... succeeded
grub> quit

Pour finir, démontez le système de fichiers de la disquette.


Pour modifier le menu ultérieurement, il suffit de modifier le fichier menu.lst sans avoir à
réinstaller GRUB.

Installation sur un support USB


Le BIOS de la plupart des ordinateurs modernes permet d’amorcer l’ordinateur depuis un
support USB (disque dur externe, clé USB). En théorie, il n’est donc pas difficile d’installer
GRUB sur le secteur d’amorçage d’une clé USB et de lancer avec cette clé Windows, Linux,
etc. Mais dans la pratique, on se heurte souvent à des problèmes, dont les deux sources
principales sont les suivantes :
• La carte mère doit reconnaître le support USB dès l’amorçage et l’accepter comme
média d’amorçage. Les clés USB peuvent être formatées avec ou sans table de partition ;
le format accepté dépend du BIOS.
De plus, vous devez activer la prise en charge de l’USB dans le BIOS (le plus souvent,
grâce à une option spéciale). À l’inverse de Linux, GRUB dépend du BIOS pour accéder
à un support USB !
• Lorsque le BIOS accepte un support USB en tant que périphérique d’amorçage, l’ordre
des lecteurs est modifié dans GRUB. (hd0) devient alors le support USB et les disques
déjà présents sont nommés (hd1), (hd2), etc.
Linux Livre Page 471 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 471

La meilleure stratégie est d’installer une première fois GRUB sur une clé USB pour voir ce
qu’il se passe. Lorsque le système est lancé, GRUB reconnaît la clé sous le nom (hdn+1), où n
est le dernier disque interne. Si votre système se trouve sur /dev/sdb13 et si votre ordinateur
dispose de deux disques durs, la clé a pour identifiant (hd2). Pour installer GRUB dans le
MBR de la clé USB, utilisez les commandes suivantes :
root# grub
grub> root (hd1,12)
grub> setup (hd2)
grub> quitv

Si tout se passe bien, l’ordinateur reconnaît GRUB au démarrage suivant, démarre depuis la
clé USB et affiche le menu. Si cela ne fonctionne pas, passez en mode interactif avec C et
cherchez sous quel nom GRUB reconnaît le disque dur. Vous pouvez alors modifier la ligne
correspondante avec E.
Installation sur Nous avons pour l’instant supposé que la seule utilité de la clé USB était l’amorçage. L’opé-
un disque dur
USB ration est encore plus difficile lorsqu’il s’agit de démarrer Linux sur une grosse clé USB ou
un disque dur USB. La procédure est identique à ce qui précède, mais le fichier initrd doit
contenir tous les modules USB nécessaires à l’utilisation du disque dur. Seules quelques dis-
tributions font cela automatiquement. Nous parlerons de la création de fichiers initrd au
Chapitre 27.

24.5 GRUB – Résolution de problèmes


Que faire lorsque GRUB ne fonctionne pas ? Dans le pire des cas, vous ne pouvez plus
démarrer de système d’exploitation sur votre ordinateur. Cette section résume quelques
astuces qui peuvent vous tirer d’affaire.
Les éléments GRUB démarre, mais si vous choisissez un élément du menu, l’ordinateur plante. Il est pos-
du menu de
GRUB ne sible que le fichier de menu de GRUB contienne des informations erronées. Dans ce cas,
fonctionnent essayez de saisir les commandes d’amorçage manuellement. Lorsque vous arrivez à démarrer
pas
Linux de cette manière, vous pouvez modifier le fichier de menu.
GRUB n’affiche Après le démarrage, GRUB n’affiche pas de menu, mais une invite de commande. Il ne peut
pas de menu
visiblement pas trouver le fichier de menu. Vous pouvez dans ce cas démarrer Linux
manuellement avec des commandes GRUB et réinstaller ce dernier depuis Linux.
GRUB plante Ce problème vient probablement d’une erreur entre l’installation des fichiers stage1 et
stage2. Il est peu probable que vous réussissiez à démarrer votre ordinateur de la manière
ordinaire. Vous avez cependant le choix entre les opérations suivantes :
• démarrer Linux avec une disquette d’amorçage GRUB ;
• démarrer le système d’urgence de votre CD d’installation Linux et réinstaller GRUB ;
• utiliser un système "live", comme Knoppix, pour démarrer un système et réinstaller
GRUB ;
• restaurer le secteur d’amorçage avec une disquette d’urgence Windows ou un CD d’instal-
lation de Windows pour pouvoir au moins utiliser Windows.
Linux Livre Page 472 Mardi, 23. septembre 2008 1:05 13

472 LINUX

24.6 Options d’amorçage du noyau


Vous pouvez ajouter des options d’amorçage au noyau lorsque vous configurez GRUB. Elles
peuvent également être saisies au démarrage de l’installation ou du gestionnaire d’amor-
çage. La syntaxe générale de ces options ressemble à ceci :
optionA=parametre optionB=parametre1,parametre2

Les paramètres doivent être saisis sans espace. Lorsque plusieurs options sont ajoutées, elles
doivent être séparées les unes des autres par des espaces. Les adresses hexadécimales doi-
vent être saisies au format 0x1234. Les nombres sans préfixe 0x sont considérés comme des
nombres décimaux.

Notez que les paramètres passés au noyau n’ont une influence que sur les pilotes directement intégrés au
noyau. Les paramètres des modules du noyau doivent être ajoutés au format /etc/modprobe.conf (voir
section 25.1).
Cette section ne définit que les options d’amorçage importantes. Vous trouverez plus de détails dans man
bootparam et dans la documentation du noyau, si celle-ci est installée : /usr/src/linux/Documenta-
tion/kernel-parameters.txt , /usr/src/linux/Documentation/ide.txt et /usr/src/
linux/Documentation/* .
Cette documentation peut, selon la distribution, se trouver à un autre endroit. Sous Fedora, elle se trouve
par exemple dans /usr/share/doc/kernel-doc-n.n .

Options d’amorçage importantes


• root=/dev/sdb13. Cette option indique la partition système de l’ordinateur. Si la parti-
tion est décrite avec un libellé, elle peut être donnée sous la forme root=LABEL=xxx. On
peut aussi l’indiquer sous la forme root=UUID=n, où n est l’UUID de la partition.
• ro. Cette option indique que le système de fichiers doit être monté en lecture seule.
• init. Le programme /sbin/init est automatiquement lancé après le démarrage du
noyau. Si ce n’est pas ce que vous voulez, vous pouvez lancer un autre programme avec
l’option init. Par exemple, init=/bin/sh permet de lancer un interpréteur de comman-
des. Attention, le système de fichiers racine est alors monté en lecture seule, le clavier est
disposé en QWERTY et la variable PATH n’est pas initialisée.
• single ou emergency. L’ordinateur démarre en mode mono-utilisateur. Pour être précis,
ces options ne sont pas gérées directement par le noyau mais, comme toute option
inconnue du noyau, passées au premier programme lancé par le noyau (en l’occurrence
/sbin/init).
• initrd= ou noinitrd. Ces deux options s’assurent que le disque virtuel n’est pas chargé.
Cela peut servir lorsque vous désirez éviter une erreur présente dans ce fichier ou que
vous lancez un système déjà installé à partir du CD-ROM d’installation.
• pci=bios|nobios. Cette option définit si les composants PCI reconnus par le BIOS doi-
vent être utilisés ou non. Si la reconnaissance automatique du matériel par le noyau
échoue, pci=bios peut être utile dans certains cas.
Linux Livre Page 473 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 473

• pci=nommconf. Cette option désactive MMCONFIG pour la configuration du PCI. Cela


résout des problèmes pour certains systèmes PCI Express.
• quiet. Grâce à cette option, aucun message ne s’affiche à l’écran lors du démarrage du
noyau.

Options SMP
SMP (Symmetric Multi Processing) décrit la capacité du noyau à utiliser plusieurs processeurs
ou cœurs de processeurs en même temps. Si vous rencontrez des problèmes, vous pouvez
utiliser les options suivantes :
• maxcpus=1. Cette option limite le nombre de processeurs utilisés à 1. La valeur 0 cor-
respond à l’option nosmp.
• nosmp. Cette option désactive les fonctions SMP ; le noyau n’utilise qu’un seul pro-
cesseur.
• noht. Cette option désactive les fonctions HyperThreading des processeurs Pentium 4.
• nolapic. APIC (Advanced Programmable Interrupt Controller) décrit un schéma pour trans-
mettre les interruptions matérielles au processeur. Sur certains noyaux plus anciens, il
ne pouvait être activé que sur les ordinateurs avec un seul processeur. Si vous avez des
problèmes avec APIC, utilisez nolapic pour que le noyau ne l’active pas et ne l’utilise
pas.
• noapic. Cette option est un peu moins forte que nolapic ; elle ne désactive que la partie
entrées/sorties d’APIC.
• lapic. Cette option active explicitement APIC. Elle est nécessaire lorsque le BIOS désactive
APIC, alors que celui-ci doit être utilisé.

Options APM et ACPI


APM (Advanced Power Management, gestion avancée de l’énergie) et ACPI (Advanced Configu-
ration and Power Interface, interface avancée de configuration et d’énergie) sont les princi-
pales sources de problèmes sur le matériel actuel. Ces systèmes sont utilisés pour l’allumage
et l’extinction de l’ordinateur, mais aussi pour les économies d’énergie sur les ordinateurs
portables, la gestion des différents modes d’hibernation, etc.
Voici les options qui permettent de gérer APM et ACPI dans le noyau :
• apm=off|on. Cette option désactive ou active les fonctions APM du noyau.
• acpi=off|on. Cette option désactive ou active les fonctions ACPI du noyau.
• reboot=bios|hard,warm|cold. Cette option indique comment le redémarrage de l’ordi-
nateur doit être effectué. Elle attend deux paramètres. Le premier indique si le redémar-
rage doit être effectué par une fonction du BIOS ou non. Le second indique s’il faut
redémarrer la machine normalement ou la réinitialiser complètement. Dans ce dernier
cas, le BIOS est réinitialisé, la mémoire testée, etc.
Linux Livre Page 474 Mardi, 23. septembre 2008 1:05 13

474 LINUX

• noresume. Lorsque le noyau prend en charge la fonction d’hibernation logicielle, cette


option permet d’ignorer le fichier d’hibernation lors du redémarrage. Elle s’avère utile
lorsque l’ordinateur n’arrive plus à sortir d’hibernation, par exemple quand le fichier
d’hibernation est corrompu.
• resume=fichier. Cette option utilise le fichier indiqué pour sortir d’hibernation.

24.7 InitV
Cette section est consacrée à InitV et couvre le déroulement des opérations entre le démar-
rage du noyau et l’affichage de l’invite de connexion.

Aperçu d’InitV
Le démarrage de Linux suit généralement le processus suivant :
1. GRUB charge et démarre le noyau.
2. Le noyau démarre le programme /sbin/init.
3. init lit le fichier de configuration /etc/inittab.
4. init démarre un script pour initialiser le système.
5. init démarre le script /etc/rc.d/rc ou /etc/init.d/rc. Le script rc dépend de la distri-
bution. Il sert à démarrer les fichiers de scripts qui se trouvent dans /etc/rcn.d ou /etc/
init.d/rcn.d (n est le niveau d’exécution, voir ci-après). Il actualise également, sur la
plupart des distributions, une barre de progression qui indique la progression du
démarrage.
6. Les scripts de /etc/rcn.d et /etc/init.d/rcn.d lancent divers services du système, en
particulier les fonctions réseau.

Niveau d’exécution
Le noyau démarre comme premier programme /sbin/init. Les options qui ne sont pas pri-
ses en compte par le noyau lui sont transmises. C’est ainsi que Linux est démarré en mode
mono-utilisateur.
Tous les processus sont démarrés directement ou indirectement par init. Celui-ci est égale-
ment le dernier processus lancé sur l’ordinateur ; il s’occupe de la terminaison correcte de
tous les autres processus.
Niveau Le niveau d’exécution décrit différents états que le système d’exploitation peut prendre.
d’exécution
sous Fedora, Malheureusement, ces niveaux ne sont pas unifiés au sein des diverses distributions. Leur
Red Hat et signification est généralement documentée dans /etc/inittab. Les niveaux d’exécution sui-
SUSE
vants sont valables pour la plupart des distributions, à l’exception de Debian et Ubuntu :
• Niveau 0. Extinction du système et arrêt de l’ordinateur.
• Niveau 1 et S. Mode mono-utilisateur.
• Niveau 2. Mode multi-utilisateur sans réseau et sans NFS.
Linux Livre Page 475 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 475

• Niveau 3. Mode multi-utilisateur avec réseau, mais sans démarrage automatique de X.


• Niveau 4. Ce niveau n’est généralement pas utilisé.
• Niveau 5. Mode multi-utilisateur avec réseau et démarrage de X. Il s’agit généralement
du niveau d’exécution par défaut.
• Niveau 6. Extinction du système et réamorçage de l’ordinateur.
Niveaux Sur les systèmes dérivés de Debian, les niveaux d’exécution 2 à 5 sont identiques et lancent
d’exécution
sous Debian et un système multi-utilisateur avec le réseau et X. Le niveau d’exécution par défaut est 2. Le
Ubuntu détail des niveaux d’exécution est indiqué dans la liste qui suit :
• Niveau S. Initialisation du système directement après le démarrage.
• Niveau 0. Extinction du système et arrêt de l’ordinateur.
• Niveau 1. Mode mono-utilisateur avec réseau.
• Niveaux 2-5. Mode multi-utilisateur avec réseau et démarrage automatique de X.
• Niveau 6. Extinction du système et réamorçage de l’ordinateur.

Modifier le niveau d’exécution


root peut modifier le niveau d’exécution avec init x lorsque le système fonctionne. shutdown
et Ctrl+Alt+Suppr permettent également de le modifier.
Niveau Le niveau d’exécution par défaut est généralement défini par la ligne initdefault dans /etc/
d’exécution
par défaut inittab. Dans la plupart des distributions actuelles, le niveau par défaut est 5 ; sous Debian
et Ubuntu, il s’agit du niveau 2. Sous Ubuntu, depuis la version 6.10, ce niveau est défini
dans /etc/event.d/rc-default.
Démarrer Dans la plupart des distributions, pour démarrer l’ordinateur en mode texte, vous devez
l’ordinateur en
mode texte ou modifier le niveau d’exécution par défaut dans la ligne id:n:initdefault : 3 est le mode
en mode texte, 5 le mode avec X.
graphique
Sous Debian ou Ubuntu, il faut activer ou désactiver le démarrage du gestionnaire d’affi-
chage de X (gdm, xdm ou kdm). Pour cela, lancez les commandes suivantes :
root# update-rc.d -f gdm remove
root# update-rc.d gdm stop 1 0 1 2 3 4 5 6 .

Pour démarrer X à nouveau automatiquement, utilisez ces lignes :


root# update-rc.d -f gdm remove
root# update-rc.d gdm defaults 30 1

inittab
Le démarrage du système est contrôlé par le fichier /etc/inittab. La syntaxe des lignes de
inittab est la suivante :
identifiant:niveau:action:commande
Linux Livre Page 476 Mardi, 23. septembre 2008 1:05 13

476 LINUX

identifiant est un champ de deux caractères qui identifie la ligne de manière unique.
niveau indique les niveaux d’exécution valides pour la ligne. action contient une instruc-
tion pour init. command indique quelle commande doit être lancée. La liste suivante recense
les mots clés action importants et leur signification. man inittab fournit une liste complète
de ces mots clés.

Mots clés de inittab


ctrlaltdel indique le comportement d’init à l’appui des touches Ctrl+Alt+Suppr
initdefault définit le niveau d’exécution par défaut d’init
once démarre la commande indiquée à chaque changement de niveau d’exécution
respawn redémarre la commande lorsqu’elle est terminée
sysinit démarre la commande une fois pendant le processus d’amorçage
wait attend la fin de la commande indiquée
bootwait démarre le processus pendant l’amorçage et attend la fin de la commande

Initialisation du système
Avant de lancer les services spécifiques au niveau d’exécution, un script d’initialisation du sys-
tème est lancé juste après le démarrage de l’ordinateur. Ce script dépend de la distribution :
Debian, Ubuntu /etc/init.d/rcS
Red Hat, Fedora /etc/rc.d/rc.sysinit
SUSE /etc/init.d/boot
L’initialisation du système effectue les opérations suivantes :
• initialiser diverses variables système (y compris le nom d’hôte et de domaine) ;
• activer le système de fichiers /proc ;
• configurer la date et l’heure ;
• configurer la disposition du clavier pour la console texte ;
• démarrer le système udev ;
• éventuellement activer les systèmes RAID et LVM ;
• vérifier les systèmes de fichiers ;
• remonter la partition système en mode lecture/écriture ;
• monter les partitions ;
• initialiser les fonctions de base du réseau (uniquement sous Debian et Ubuntu).

Scripts InitV
Une fois le système activé, le niveau d’exécution par défaut indiqué par /etc/inittab est
démarré. Chaque niveau d’exécution a ses propres scripts. Ceux-ci se trouvent, selon la
distribution, dans /etc/init.d ou /etc/rc.d/init.d.
Linux Livre Page 477 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 477

init démarre le script /etc/rc.d/rc ou /etc/init.d/rc. Le niveau d’exécution est passé à rc.
Ce dernier lance quelques tâches d’initialisation, puis les scripts rcn.d/K* pour terminer
tous les processus courants. Enfin, les scripts rcn.d/S* permettant de démarrer les nouveaux
processus pour le niveau d’exécution souhaité sont lancés.
Il est donc très facile d’ajouter des processus système à InitV : il suffit de copier les scripts de
démarrage et d’arrêt dans les bons répertoires.
En pratique, les répertoires rcn.d ne contiennent pas directement des scripts, mais des liens
vers ces derniers. Chaque fichier de script est donc unique, mais peut être utilisé dans plusieurs
niveaux d’exécution et modifié de manière centralisée.
Nomenclature Les liens des répertoires rcn.d commencent par S ou K. Ces liens pointent vers le même
script. Cependant, le script prendra le paramètre start ou stop selon la lettre par laquelle il
commence.
Le numéro qui suit indique l’ordre dans lequel les scripts sont lancés. Par exemple, les
démons réseau supposent généralement qu’une connexion réseau soit présente ; le script
network doit donc être lancé avant ces démons.
Lancer et Vous pouvez lancer les scripts du niveau d’exécution manuellement. Par exemple, cette
arrêter
manuellement commande arrête le serveur Apache :
des démons
root# /etc/init.d/httpd stop
Paramètres La plupart des scripts comprennent les paramètres suivants :
des scripts
InitV • start démarre le programme.
• stop termine le programme.
• status affiche l’état du programme (actif ou non).
• reload est utilisé lorsque le fichier de configuration doit être relu sans redémarrer complè-
tement le démon.
• restart redémarre le programme.

Processus InitV sous Debian


Le tableau suivant présente les répertoires et fichiers de configuration d’InitV sous Debian.

Fichiers et répertoires de configuration sous Debian


Initialisation du système /etc/init.d/rcS, /etc/rcS.d/*
Scripts d’Init /etc/init.d/*
Liens du niveau d’exécution /etc/rcn.d/*
Fichiers de configuration /etc/default/*

Démarrer un La commande invoke-rc.d permet de lancer manuellement un script InitV :


script InitV
root# invoke-rc.d samba start
root# invoke-rc.d samba stop
Linux Livre Page 478 Mardi, 23. septembre 2008 1:05 13

478 LINUX

Gérer les liens La commande update-rc.d permet de gérer les liens InitV. update-rc.d nom remove sup-
InitV
prime tous les liens de démarrage et d’arrêt du service concerné. update-rc.d nom defaults
ajoute des liens de démarrage aux niveaux d’exécution 2 à 5 et des liens d’arrêt aux niveaux
d’exécution 0, 1 et 6. Reportez-vous à man update-rc.d pour plus d’informations à ce sujet.

Processus InitV sous Red Hat et Fedora


Le tableau suivant présente les répertoires et fichiers de configuration d’InitV sous Red Hat
et Fedora.

Fichiers et répertoires de configuration sous Red Hat et Fedora


Initialisation du système /etc/rc.d/rcsysconfig
Scripts d’Init /etc/rc.d/init/*
Liens du niveau d’exécution /etc/rc.d/rcn.d/*
Fichiers de configuration /etc/sysconfig/*

Démarrer un La commande service permet de lancer manuellement un script InitV :


script InitV
root# service httpd start
root# service httpd stop
Gérer les liens La commande chkconfig permet de gérer les liens des niveaux d’exécution. chkconfig --list
InitV
affiche tous les scripts, ainsi que les niveaux auxquels ils sont lancés ou arrêtés.
chkconfig --del nom permet de supprimer un script de tous les niveaux d’exécution. chk-
config --add ajoute des liens pour un nouveau service à tous les niveaux prévus. Cette
option ne fonctionne que lorsque le script InitV contient des informations sur ces niveaux.
chkconfig --level n nom on|off permet d’ajouter des scripts de démarrage ou d’arrêt à un
niveau donné.
man chkconfig est une référence de cette commande contenant toutes les informations
nécessaires à son utilisation.

Processus InitV sous SUSE


Le tableau suivant présente les répertoires et fichiers de configuration d’InitV sous SUSE.

Fichiers et répertoires de configuration sous SUSE


Initialisation du système /etc/init.d/boot, /etc/init.d/boot.d/*
Scripts d’Init /etc/rc.d/init/*
Liens du niveau d’exécution /etc/rc.d/rcn.d/*
Fichiers de configuration /etc/sysconfig/*

Démarrer un Sous SUSE, les scripts lancés normalement par /etc/init.d/nom peuvent également l’être
script InitV
sous la forme rcnom. Par exemple, rcsmb permet de lancer ou d’arrêter le serveur Samba.
Linux Livre Page 479 Mardi, 23. septembre 2008 1:05 13

DÉMARRAGE DU SYSTÈME 479


Gérer les liens La commande insserv permet d’ajouter de nouveaux liens vers les scripts InitV. insserv
InitV
nom lit les commentaires Default-Start et Default-Stop du script qui indiquent à quels
niveaux d’exécution le script doit être ajouté. Pour supprimer ces liens, passez l’option -r.
man insserv offre une référence complète de insserv.
De plus, SUSE fournit, pour des raisons de compatibilité, la commande chkconfig. Les com-
mandes -add, -del et -list fonctionnent comme sous Red Hat, mais certaines divergences
subsistent sur les autres options. chkconfig appelle insserv.
Linux Livre Page 480 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 481 Mardi, 23. septembre 2008 1:05 13

Noyau et modules
25
Ce chapitre traite du noyau Linux et de ses modules. Ces derniers sont des parties du noyau
qui peuvent être chargées lorsqu’elles sont nécessaires, par exemple lorsqu’un périphérique
est utilisé pour la première fois. La section 25.1 explique le fonctionnement et la gestion des
modules du noyau Linux.
Rares sont les cas où vous devez impérativement recompiler le noyau. Vous n’aurez proba-
blement qu’un module à compiler. La section 25.2 traite de la compilation des modules et du
noyau, et la section 25.3 de la création d’un fichier initrd. Les options d’amorçage du noyau
sont quant à elles décrites au Chapitre 24.
Ce chapitre s’adresse aux utilisateurs avancés de Linux. Les débutants ont généralement
intérêt à utiliser le noyau de leur distribution et à n’installer que des paquetages fournis par
cette dernière. Nous traiterons ici des noyaux 2.6.

25.1 Modules du noyau


Le noyau gère les fonctions élémentaires du système, comme la gestion de la mémoire et des
processus, l’accès aux disques durs et aux cartes réseau, etc. Il est de plus modulaire : le noyau
lancé à l’amorçage ne contient que les fonctions nécessaires au démarrage de l’ordinateur.
Lorsqu’une fonction supplémentaire est requise (par exemple, pour du matériel spécial), le
code nécessaire est lié au noyau en tant que module. Lorsque cette fonction n’est plus utili-
sée pendant quelque temps, le module peut être supprimé du noyau. Ce concept modulaire
présente plusieurs avantages :
• Les modules peuvent être liés à la demande. Lorsqu’un module est peu utilisé, la mémoire
correspondante peut être économisée ; le noyau n’est pas plus gros que nécessaire et
adapté au matériel de l’utilisateur.
• Lorsque le matériel présent est modifié (ajout d’une nouvelle carte réseau, par exemple),
le noyau ne doit pas être recompilé ; il suffit d’ajouter le module nécessaire. Toutes les
distributions courantes sont basées sur ce concept.
• Lorsqu’un nouveau module du noyau est développé, il ne faut pas forcément redémar-
rer l’ordinateur à chaque modification. Il suffit de recompiler le module, qui peut être
testé directement.
• Les fabricants de matériel peuvent fournir des modules binaires pour leurs périphé-
riques sans fournir le code. Cela entraîne un certain nombre d’inconvénients (voir
Chapitre 22).
Charger Le composant kmod du noyau fait en sorte que les modules du noyau soient chargés automa-
automati-
quement des tiquement dès qu’ils sont nécessaires. Il est contrôlé par /etc/modprobe.conf. Nous parlerons
modules plus en détail de ce fichier dans ce qui suit.
Linux Livre Page 482 Mardi, 23. septembre 2008 1:05 13

482 LINUX

Le noyau Jusqu’au noyau 2.6.15, les versions du noyau et de ses modules doivent être identiques. On
et les modules
doivent corres- ne peut pas charger un module compilé pour une autre version du noyau. C’est pourquoi
pondre chaque version a son propre répertoire de modules, /lib/modules/version_du_noyau. En ce
qui concerne les modules qui ne sont pas fournis avec la distribution (module NTFS de
Fedora/Red Hat, modules pour les cartes graphiques ATI ou NVIDIA, etc.), la dépendance
de versions pose souvent problème.
Versionnage Depuis le noyau 2.6.16, le mécanisme de module versioning (versionnage de modules) est une
de modules
amélioration significative. Le module enregistre des informations supplémentaires qui indi-
quent s’il peut fonctionner avec une version différente du noyau. Cela permet également
d’utiliser des modules qui ne correspondent pas à la version du noyau. Cependant, ce méca-
nisme ne fonctionne que lorsque l’option module versioning a été activée lors de la compila-
tion du noyau et que l’interface du noyau n’a pas été modifiée entre la version du noyau et
celle du module.
Le mécanisme de module versioning peut également être décrit sous les noms kernel symbol
versions ou modversions.

Commandes de gestion des modules


Toutes les distributions courantes sont configurées de manière à charger automatiquement
les modules nécessaires. Par exemple, si vous montez avec mount une partition Windows de
votre système, le module ntfs ou vfat, qui sert à lire ce système de fichiers, est chargé.
Par conséquent, la gestion des modules est en général automatique et transparente, sans que
vous ayez à utiliser les commandes que nous allons décrire. Celles-ci sont cependant utiles
pour charger un module manuellement si le besoin s’en fait sentir.
Tous les modules se trouvent dans le répertoire /lib/modules/n. n est la version du noyau
en cours de fonctionnement. Les modules ont l’extension *.ko.
Connaître La commande uname -r affiche le numéro de version du noyau courant :
la version
de son noyau utilisateur$ uname -r
2.6.24-16-generic
Charger insmod intègre le module indiqué dans le noyau. Cette commande prend pour argument le
des fichiers
de modules nom complet du fichier. Vous pouvez aussi passer des options au module. Si vous indiquez
des valeurs hexadécimales, vous devez les préfixer de 0x.
root# insmod /lib/modules/2.6.24-16-generic/kernel/fs/fuse/fuse.ko

insmod -f tente de charger le module même lorsqu’il ne correspond pas à la version cou-
rante du noyau. Le fonctionnement effectif de cette opération dépend de la compatibilité
intrinsèque entre le noyau et le module.
Généralement, on ne charge pas les modules avec insmod, mais avec modprobe. Cette com-
mande présente deux avantages. D’une part, elle cherche elle-même le module à insérer ; il
suffit d’indiquer le nom du module. D’autre part, elle charge également tous les modules
utilisés par le module souhaité. De plus, toutes les options du module indiquées dans /etc/
modprobe.conf sont prises en compte. modprobe demande cependant une configuration
correcte des modules (modprobe.conf et modules.dep).
root# modprobe fuse
Linux Livre Page 483 Mardi, 23. septembre 2008 1:05 13

NOYAU ET MODULES 483


Liste des La commande lsmod affiche une liste (normalement assez longue) de tous les modules intégrés
modules
chargés dans le noyau au moment où elle est exécutée.
root# lsmod | sort
ac 6916 0
acpi_cpufreq 10796 1
aes_i586 33536 0
af_packet 23812 12
agpgart 34760 3 drm,intel_agp
...
fuse 50580 3
...

Supprimer un rmmod supprime le module indiqué du noyau et libère la mémoire correspondante. Cette
module
commande ne fonctionne que lorsque le module n’est plus utilisé. rmmod -a supprime tous
les modules non utilisés du noyau.
root# rmmod fuse

Afficher des modinfo affiche des informations sur un module. Celui-ci ne doit pas nécessairement se trou-
informations
sur un module ver dans le noyau. L’exemple suivant affiche les données pour le module e1000, qui est un
pilote pour les cartes réseau Intel Pro/1000.
root# modinfo e1000
filename: /lib/modules/2.6.24-16-generic/kernel/drivers/net/e1000/
e1000.ko
version: 7.3.20-k2-NAPI
license: GPL
description: Intel(R) PRO/1000 Network Driver
author: Intel Corporation, <linux.nics@intel.com>
srcversion: AD899B6372523BED5266B06
alias: pci:v00008086d000010DAsv*sd*bc*sc*i*
...
depends:
vermagic: 2.6.24-16-generic SMP mod_unload 586
parm: TxDescriptors:Number of transmit descriptors (array of int)
...
parm: debug:Debug level (0=none,...,16=all) (int)

Configuration des modules


La gestion des modules fonctionne presque comme par magie. Lorsque vous désirez monter
une partition dans le système de fichiers et que cela implique l’utilisation d’un format de
système de fichiers jusqu’alors inutilisé, le module de ce système est automatiquement
chargé. Lorsque la partition se trouve sur un disque SCSI, le module SCSI est également
activé et le module du pilote de la carte réseau est automatiquement chargé pendant l’initia-
lisation des fonctions réseau.
Linux Livre Page 484 Mardi, 23. septembre 2008 1:05 13

484 LINUX

Pour que tout cela fonctionne, divers mécanismes de configuration sont mis en œuvre :
• Modules au démarrage de l’ordinateur. Certains modules sont utilisés dès le démar-
rage de l’ordinateur (par exemple, ceux qui servent à accéder aux systèmes de fichiers).
Lorsqu’ils ne font pas partie intégrante du noyau, ils doivent être fournis au noyau sous
la forme d’un disque virtuel initrd par le chargeur d’amorçage dès le démarrage.
• Modules de base. Les modules de gestion de base des composants USB, Firewire ou
PCMCI sont directement chargés par divers scripts du processus InitV grâce à mod-
probe − grep modprobe /etc/init.d/* donne un aperçu rapide des modules chargés
de cette manière.
• Modules d’interface. Différents modules sont ensuite chargés lorsqu’une interface don-
née est utilisée pour la première fois. Cela peut poser des problèmes, car certaines inter-
faces correspondent à plusieurs modules. Par exemple, lorsque vous utilisez l’interface
eth0 pour la première fois, il faut charger le module correspondant à la carte réseau.
Comme le noyau ne peut pas le deviner, il faut ajouter cette information au fichier de
configuration de modules /etc/modprobe.conf.
Nous parlerons plus en détail de ce fichier de configuration à la prochaine section. Ce
fichier est particulièrement important, car c’est l’un des rares endroits où la configura-
tion doit être adaptée à votre matériel. Dans la plupart des cas, cette adaptation est gérée
par les outils de configuration de votre distribution. Pour les composants très récents ou
exotiques, il arrive cependant que vous deviez modifier ce fichier manuellement.
La gestion des périphériques par le système udev charge également les modules lorsqu’ils
sont nécessaires. Vous trouverez les règles correspondantes dans /etc/udev/rules.d.
• Modules pour les cartes PCMCIA, les périphériques USB et Firewire, etc. Ces périphéri-
ques ont un rôle particulier. Plusieurs fichiers *.map dans /lib/modules/version_du_noyau
différencient ces composants en fonction d’un identifiant et chargent le module correct.
Modules non La plupart des distributions ne fournissent que des modules dont le code source est
GPL (Ubuntu)
conforme à la GPL. Ubuntu fait exception et fournit des modules de différents pilotes maté-
riels qui contiennent du code binaire de divers fabricants (ATI, AVM et NVIDIA, par exem-
ple). Ces modules sont regroupés dans le paquetage linux-restricted-modules-arch et
installés dans le répertoire /lib/linux-restricted-modules.
Le script InitV linux-restricted-modules-common appelle le script lrm-manager pendant le
démarrage de l’ordinateur. Ce script crée un système de fichiers temporaire dans le réper-
toire /lib/modules/version_du_noyau/volatile. Ce système contient des copies de tous les
modules qui ne se conforment pas à la FPL et depmod est lancé sur ce répertoire. Ces étapes
assurent une utilisation sans problème des modules. Pour désactiver certains modules du
paquetage, indiquez leur nom dans la variable DISABLED_MODULES de /etc/default/linux-
restricted-modules-common.

Dépendances entre modules (modules.dep, modules*.map)


Certains modules dépendent les uns des autres. Par exemple, le module nfs du système de
fichiers NFS ne fonctionne que lorsque les modules lockd, nfs_acl et sunrpc sont chargés.
De telles dépendances sont enregistrées de manière centrale dans le fichier /lib/modules/n/
modules.dep.
Linux Livre Page 485 Mardi, 23. septembre 2008 1:05 13

NOYAU ET MODULES 485


depmod Si ce fichier n’existe pas encore ou s’il est incomplet (par exemple, après la compilation d’un
nouveau module), vous devez le créer ou l’actualiser avec la commande depmod. Celle-ci
examine les symboles définis et utilisés dans les modules. Elle crée quelques fichiers *.map
pour faire la correspondance entre différents composants matériels et les modules nécessai-
res. Les fichiers *.map sont nécessaires pour le branchement à chaud des périphériques. Par
exemple, lorsque vous branchez un nouveau périphérique USB, le module nécessaire à sa
prise en charge peut être détecté automatiquement grâce à un code d’identification.
Les fichiers modules.dep et *.map sont normalement créés pendant l’installation des modu-
les. Il est donc rarement nécessaire de lancer depmod manuellement.

Paramètres des modules et ordre des périphériques


Pour que le module correct soit chargé la première fois qu’une interface est activée, le noyau
prend en compte de nombreux paramètres définis dans les modules et le paquetage modu-
tils pour depmod, et enregistrés dans modules.dep et modules*.map.
Les paramètres correspondants sont en général enregistrés dans le fichier /etc/mod-
probe.conf et les fichiers du répertoire /etc/modprobe.d.
Les différentes distributions ont chacune leurs particularités.
Debian, modprobe.conf n’existe pas. Les paramètres sont enregistrés dans les fichiers du répertoire
Ubuntu
modprobe.d.
Red Hat, modprobe.conf ne contient que quelques paramètres spécifiques à l’ordinateur. Le fichier /
Fedora
etc/modprobe.d/modprobe.conf.dist contient une liste plus longue avec les paramètres par
défaut de la distribution.
SUSE modprobe.conf contient une liste interminable de paramètres, dont la plupart sont valides
par défaut. Les modifications doivent être effectuées dans modprobe.conf.local.

Syntaxe de modprobe.conf
Cette section décrit les mots clés importants de modprobe.conf et des fichiers de modprobe.d/.
Vous trouverez plus de détails dans man modprobe.conf.
alias Les instructions alias indiquent quel module du noyau doit être utilisé pour quel périphé-
rique. Par exemple, le périphérique /dev/eth0 est associé au module 8139too :
alias eth0 8139too

On accède généralement à des composants matériels grâce aux périphériques bloc et carac-
tère /dev/xxx. Du point de vue du noyau, ces fichiers ne sont pas caractérisés par leur nom,
mais par leurs numéros de périphériques majeur et mineur. De nombreuses instructions
alias font la correspondance entre les numéros de périphériques et les modules. Les deux
exemples suivants montrent que les périphériques bloc ayant le numéro majeur 2 doivent
charger le module floppy. De même, les périphériques caractère ayant le numéro majeur 6
doivent charger le module lp.
alias block-major-2 floppy
alias char-major-6 lp
Linux Livre Page 486 Mardi, 23. septembre 2008 1:05 13

486 LINUX

La définition des protocoles réseau est similaire. Pour utiliser un protocole donné, le noyau
cherche une famille de protocoles nommée net-pf-n. Dans l’exemple suivant, le module
AppleTalk est utilisé pour la famille de protocoles 5 :

alias net-pf-5 appletalk

Lorsque vous n’avez pas besoin de ce protocole (ou si vous n’avez pas installé le module
correspondant), l’instruction suivante supprime des messages d’erreur :

alias net-pf-5 off

options Les instructions options indiquent avec quelles options doit être chargé un module donné.
La ligne suivante indique que le module ne (pour les cartes Ethernet compatibles NE2000)
doit être chargé avec l’option io=0x300 :

options ne io=0x300

include Les instructions include chargent des fichiers de configuration supplémentaires.


install Les instructions install permettent de lancer des commandes, plutôt que de charger sim-
plement le module. L’exemple suivant est partagé en deux lignes pour des raisons de
place. Lorsque le module ALSA snd est utilisé, ces commandes doivent être lancées :
install snd modprobe --ignore-install snd $CMDLINE_OPTS && \
{ modprobe -Qb snd-ioctl32 ; : ; }

remove remove permet de lancer des commandes lorsqu’un module doit être supprimé.
blacklist Les instructions blacklist indiquent que les définitions de modules ne doivent pas être uti-
lisées et se trouvent généralement dans le fichier /etc/modprobe.d/blacklist. Celui-ci
contient la liste des modules qui ne doivent pas être chargés, pour des raisons de compatibi-
lité ou parce qu’une meilleure alternative existe. Dans cet exemple, usbmouse n’est pas chargé ;
en général, hid est utilisé à la place.
blacklist usbmouse

Exemple Le fichier modprobe.conf diffère largement d’une distribution à une autre. Des fichiers de
de fichier
modprobe configuration courts s’appuient souvent sur les paramètres de base de /lib/modules/n.n/
.conf module.alias et modules.symbols.
Ce fichier reflète la configuration matérielle individuelle et est modifié par la distribution. Il
est généralement minimal. Les lignes suivantes montrent la configuration de l’une de mes
machines de test sous Fedora 7. Elles correspondent à deux cartes réseau (Ethernet et Wi-Fi),
au contrôleur IDE et à une carte son.
alias eth0 e1000
alias eth1 ipw2100
alias scsi_hostadapter ata_piix
alias scsi_hostadapter1 usb-storage
alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
Linux Livre Page 487 Mardi, 23. septembre 2008 1:05 13

NOYAU ET MODULES 487

Compiler un module supplémentaire


Pour utiliser VMware, pour exploiter les pilotes binaires d’ATI ou de NVIDIA, ou si vous
avez besoin d’un module spécifique à votre matériel qui n’est pas présent dans votre distri-
bution, vous devez compiler un module qui correspond au noyau courant. En général, un
script (par exemple, vmware-config.pl ou le script d’installation de vos pilotes) mène à bien
cette tâche. Cependant, certains prérequis doivent être remplis, comme pour compiler un
noyau complet.
Outils de Vous devez tout d’abord installer les outils de développement (en particulier, le compilateur
dévelop-
pement C gcc, ainsi que make) dans une version suffisamment actuelle.
Fichiers Vous avez également besoin des fichiers d’en-tête du noyau courant. Ces derniers font par-
d’en-tête du
noyau tie du code du noyau. Pour de nombreuses distributions, les fichiers d’en-tête et le reste du
code se trouvent dans deux paquetages séparés. Cela permet de ne pas avoir à installer
l’ensemble du code lorsque vous n’avez besoin que des fichiers d’en-tête.
Les paquetages de fichiers d’en-tête ont les noms suivants et sont installés dans les répertoires
indiqués :
• Debian, Ubuntu linux-headers-generic /usr/include/linux
• Red Hat, Fedora kernel-devel-n.n /lib/modules/n.n/build/include
• SUSE kernel-source /usr/src/linux-n.n/include
Lorsque vous compilez vous-même votre noyau, les fichiers d’en-tête sont installés dans le
répertoire /lib/modules/n.n/build/include.

25.2 Configurer et compiler son propre noyau


Un utilisateur classique ne doit généralement pas compiler son noyau. Toutes les distribu-
tions actuelles fournissent par défaut un noyau utilisable et de nombreux modules. Voici
cependant quelques raisons qui peuvent vous amener à recompiler un noyau :
• Vous voulez apprendre à mieux connaître votre système.
• Vous avez besoin de fonctionnalités qui ne sont pas intégrées au noyau et qui ne sont
pas fournies en tant que module (par exemple, les fonctions réseau).
• Vous désirez utiliser une version plus récente du noyau que celle fournie par votre distri-
bution.
• Vous souhaitez ajouter un correctif à votre noyau. Les correctifs servent à prendre en
charge du matériel très récent ou à utiliser de nouvelles fonctions, sans pour autant utiliser
un noyau en cours de développement.
• Vous aimeriez prendre part au développement du noyau et expérimenter les noyaux en
cours de développement.
• Vous avez envie de pouvoir dire à votre entourage que vous avez compilé vous-même
le dernier noyau Linux !
Linux Livre Page 488 Mardi, 23. septembre 2008 1:05 13

488 LINUX

Obstacles à la Il existe cependant des arguments à l’encontre de la compilation d’un noyau personnalisé :
compilation du
noyau • La plupart des distributions n’utilisent pas le noyau original tel que fourni par Linus
Torvalds et la communauté, mais une version modifiée avec diverses fonctions supplé-
mentaires − chaque distribution utilise évidemment ses propres correctifs. En soi, c’est
plutôt une bonne chose pour les utilisateurs : ils peuvent ainsi bénéficier des fonctions
supplémentaires que le mainteneur de la distribution considère comme stables. Cepen-
dant, les noyaux originaux du serveur FTP de kernel.org ne disposent pas de ces cor-
rectifs. Certains éléments de votre distribution peuvent alors ne plus fonctionner ou
poser certains problèmes.
• La compilation d’un noyau n’est pas difficile. En revanche, la configuration de cette
compilation l’est. Le noyau a plus de 100 options. Celles-ci influent sur les fonctions
intégrées au noyau, sur les modules compilés et sur les options qui ne doivent pas être
mises à disposition. Si vous prenez de mauvaises décisions pour certaines de ces
options, les fonctions correspondantes peuvent refuser de vous obéir et il peut être diffi-
cile de trouver l’origine du problème. Il est cependant pratiquement impossible pour un
débutant sous Linux de deviner toutes les options correctement.

Installer les paquetages nécessaires


Outils de Vous pouvez installer les outils de développement (gcc, make, etc.) paquetage par paque-
dévelop-
pement tage, mais la plupart des distributions effectuent une section de paquetages ou fournissent
un métapaquetage qui installe tous les paquetages nécessaires. En voici un résumé :
Debian, Ubuntu métapaquetage build-essential
Red Hat, Fedora groupe Développement
SUSE groupe Développement

Pour faciliter et automatiser la compilation de noyaux ou de modules sous Debian ou Ubuntu, vous pouvez
considérer les paquetages kernel-package et module-assistant . Ils fournissent des scripts qui facili-
tent certaines opérations.

Code du noyau Jusqu’à la version 2.6, il existait des versions "stables" du noyau (2.0.n, 2.2.n, 2.4.n) et des
versions "développeurs" (2.3.n, 2.5.n). Ce schéma a changé avec le noyau 2.6. Il n’existe plus
de branche 2.7.n de développement ; tous les développements sont effectués directement
dans la branche 2.6.
Le code du noyau se trouve généralement dans le répertoire /usr/src/linux. Vous pouvez
choisir d’installer le code de votre distribution ou le code officiel.
Pour le code du noyau de votre distribution, installez les paquetages suivants :
Debian, Ubuntu linux-source-n.n
Red Hat, Fedora paquetage de code source de kernel-n.n
SUSE kernel-source
Linux Livre Page 489 Mardi, 23. septembre 2008 1:05 13

NOYAU ET MODULES 489

Pour récupérer une version du noyau qui n’est pas fournie par votre distribution (par exem-
ple, la version la plus récente), vous devez vous rendre sur le site www.kernel.org, qui indique
quelle est la dernière version stable du noyau et où la télécharger.

Configurer le noyau
Le noyau se compose de milliers de fonctions. Avant la compilation, vous pouvez décider
du devenir de chacune d’elles : doivent-elles être intégrées directement au noyau, compilées
en tant que modules ou ne pas être mises à disposition ? Cette opération s’appelle configurer le
noyau.
Noyau Vous devez principalement choisir entre un noyau monolithique ou modulaire. Les noyaux
monolithique
ou modulaire monolithiques contiennent tous les pilotes nécessaires directement dans le noyau et ne pren-
nent pas en charge les modules. Les noyaux modulaires peuvent prendre en compte des
modules et sont, dans presque tous les cas, le bon choix.
Choix des Pour la plupart des composants, vous avez le choix entre trois options : Yes, Module et No.
composants
Yes signifie que le composant est intégré directement au noyau, Module qu’il est compilé en
tant que module, et No qu’il ne sera pas compilé.
Outils de La configuration du noyau se trouve dans le fichier .config à la racine des sources du
configuration
noyau. Il s’agit d’un fichier texte assez long qui contient une liste de composants et le choix
effectué précédemment pour chacun d’eux (y, m ou n). Il n’est généralement pas modifié
manuellement, mais à l’aide des outils suivants :
• make config fonctionne toujours, mais est très pénible à utiliser et n’est pas conseillé.
Vous devez en effet passer toutes les options, y compris lorsque vous souhaitez n’en
modifier que quelques-unes.
• make menuconfig nécessite que ncurses-devel soit installé. Il s’agit d’une interface en
mode texte, mais les différentes options sont structurées dans des menus et non listées
les unes à la suite des autres.
• make xconfig nécessite que X soit lancé et que le paquetage qt3-devel ou qt4-devel soit
installé. make compile l’interface graphique et la lance.
• make gconfig est le pendant GTK de make xconfig. Diverses bibliothèques de dévelop-
pement de Gnome doivent être installées (entre autres, libgtk2-devel et libglade2-
devel).
Tous ces outils de configuration permettent d’afficher une aide en ligne pour savoir à quoi
correspondent les différentes options.
Reprendre une Vous pouvez souvent reprendre la configuration d’un noyau existant et l’utiliser comme
configuration
existante base pour votre nouveau noyau. Pour cela, copiez le fichier .config de l’ancien noyau dans
l’arborescence du nouveau et lancez la commande make oldconfig. Les options du nouveau
noyau qui n’étaient pas présentes dans la configuration existante seront alors proposées, de
manière comparable à make config. Le succès de cette opération n’est pas garanti (surtout si
les deux versions sont très différentes), mais le temps nécessaire à la configuration du noyau
est si faible que cela vaut généralement la peine d’essayer.
Linux Livre Page 490 Mardi, 23. septembre 2008 1:05 13

490 LINUX

Si votre noyau a été compilé avec les bonnes options, le fichier /proc/config.gz contient le
fichier .config du noyau courant. Certaines distributions installent également le fichier de
configuration du noyau dans /boot parallèlement au noyau.

Compiler et installer le noyau


Une fois la configuration du noyau achevée, il est temps de passer à la compilation. Attention,
c’est une opération assez longue et coûteuse en place disque.
root# cd /usr/src/linux-n.n
root# make all
root# make modules_install

Le résultat de ces commandes est une image bzImage dans le répertoire /usr/src/linux-
n.n/arch/i386/boot. La taille du fichier varie entre 1 et 2 Mo, selon le nombre de fonctions
que vous avez intégrées au noyau.
make modules_install copie les modules à l’endroit où insmod les attend.
Installer le Le noyau fraîchement compilé n’est pas encore actif ! Vous devez le copier dans un endroit
noyau
accessible à GRUB et ajouter un élément au menu :
root# mv /usr/src/linux-n.n/arch/i386/boot/bzImage /boot/vmlinuz-n.n

Pour modifier GRUB, le plus simple est généralement de copier l’élément existant et de
modifier cette copie pour l’adapter au nouveau noyau. Ne remplacez pas le noyau courant,
ni sa configuration : il se peut que votre noyau ne fonctionne pas du premier coup. Il est
alors intéressant de pouvoir revenir à l’ancienne version.

25.3 Créer un fichier initrd


Dans le menu GRUB, la plupart des éléments indiquent deux fichiers : le noyau Linux et le
fichier initrd qui lui correspond. Ces deux fichiers se trouvent généralement dans le réper-
toire /boot, mais leur nom varie selon la distribution. initrd contient tous les modules dont
le noyau a besoin pour accéder au système de fichiers. GRUB crée un disque virtuel pour
mettre ce fichier à disposition du noyau.
En général, initrd contient un module pour le pilote du système de fichiers de la partition
système. Si votre partition se trouve sur un disque SCSI, initrd doit également contenir le
pilote de votre carte SCSI. Si votre partition racine est installée dans un système LVM ou
RAID, des pilotes supplémentaires sont à prévoir.

Le fichier initrd n’est pas obligatoire. Si votre noyau contient tous les composants nécessaires au proces-
sus d’amorçage, le démarrage fonctionne sans initrd. Le noyau doit cependant être compilé de cette
manière.

Le fichier initrd doit correspondre exactement à la version du noyau. Il faut donc recréer
un fichier initrd chaque fois que l’on compile un noyau.
Linux Livre Page 491 Mardi, 23. septembre 2008 1:05 13

NOYAU ET MODULES 491


mkinitramfs Sous Debian et Ubuntu, le script mkinitramfs sert à créer le fichier initrd. La configuration
de base se trouve dans /etc/initramfs-tools/initramfs.conf, ainsi que dans les fichiers
du répertoire /etc/initramfs-tools/conf.d. initrd contient tous les modules du fichier /etc/
initramfs-tools/modules (un module par ligne).
Vous pouvez ensuite générer initrd :
root# mkinitramfs -o myinitrd 2.16.13-10-i686

Pour plus d’informations à ce sujet, reportez-vous à man mkinitramfs.


mkinitrd (Red Sous Fedora et Red Hat, c’est le script mkinitrd qui permet de créer le fichier initrd, qui
Hat, Fedora)
contient tous les modules nécessaires pour accéder à la partition système. Les modules qui
ne sont pas automatiquement reconnus par le programme doivent être ajoutés avec l’option
--with=nom_du_module. Vous trouverez plus d’options pour la commande mkinitrd dans
man mkinitrd. Cette commande crée un disque virtuel qui permet d’accéder à un système de
fichiers reiserfs :
root# mkinitrd --with=reiserfs /boot/initrd-2.6.16-1.2111_FC5.img \
2.6.16-1.2111_FC5
mkinitrd La commande mkinitrd fonctionne différemment sous SUSE et Red Hat. Normalement,
(SUSE)
vous ne devez passer aucun paramètre à mkinitrd sous SUSE. mkinitrd crée automatique-
ment un fichier initrd pour tous les noyaux qu’il trouve dans le répertoire /boot. Les nouveaux
fichiers sont nommés /boot/initrd-nnn, où nnn est la version du noyau.
mkinitrd examine la variable INITRD_MODULES du fichier /etc/sysconfig/kernel. Celle-ci
contient tous les modules à lancer dès l’amorçage et ressemble à ceci :
INITRD_MODULES="via82cxxx processor thermal fan jbd ext3"
Voir le Pour examiner le contenu d’un fichier initrd, lancez les commandes suivantes :
contenu d’un
fichier initrd root# cd /boot
root# cp initrd-n.n initrd-test.gz
root# gunzip initrd-test
root# mkdir test
root# cd test
root# cpio -i < ../initrd-test.gz
root# ls -lR
Linux Livre Page 492 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 493 Mardi, 23. septembre 2008 1:05 13

PARTIE 5 – CONFIGURATION RÉSEAU ET SERVEUR

Configurer l’accès réseau


26 (réseau local, Wi-Fi)
Ce chapitre décrit comment connecter un ordinateur Linux à un routeur
(ADSL), à un réseau local (LAN ou Local Area Network) ou à un réseau sans fil
(Wi-Fi), et ce qui se passe en coulisse de cette procédure.
Lorsque tout fonctionne, la configuration du réseau local ou sans fil ne prend
qu’une à deux minutes. Bien souvent, la configuration a lieu (avec succès) lors
de l’installation. Ce chapitre se focalise donc davantage sur les bases : à quoi
servent les adresses IP ? Comment tester les fonctionnalités réseau ? De quels
moyens dispose-t-on pour identifier les erreurs ?
Dans le cadre d’un réseau sans fil, l’intégration au réseau n’est pas tout : la
connexion doit également être sûre. Le meilleur chemin vers une sécurité accrue
consiste à mettre en place un réseau privé virtuel (VPN ou Virtual Private Network).
Ce chapitre part du principe que vous souhaitez connecter votre ordinateur
Linux à un réseau local préexistant. Si vous devez configurer vous-même la
connexion à Internet, le prochain chapitre vous fournira les informations néces-
saires (PPP, modem, ADSL). Si vous envisagez d’utiliser votre ordinateur non
pas en tant que client, mais en tant que serveur au sein d’un réseau local, vous
trouverez des informations détaillées sur ce sujet au Chapitre 28.

26.1 Bases réseau


Dans cette section, nous aborderons les bases et les rouages internes de la confi-
guration réseau. Les informations données ici valent non seulement pour la
connexion à un réseau local, mais également pour la configuration Wi-Fi, ADSL
ou modem téléphonique.

Glossaire
TCP/IP Tous les systèmes d’exploitation existants prennent en charge TCP/IP en tant
que protocole réseau. Celui-ci régit les communications entre ordinateurs, aussi
bien sur un réseau local (LAN, intranet) que sur Internet. Pour cette raison, de
nombreux services réseau n’ont aucun besoin de savoir si l’ordinateur cible se
trouve à cinq mètres du serveur et sur le même réseau local, ou s’il se trouve au
Japon. Dans le second cas, la vitesse de transfert sera simplement moins élevée.
Le protocole IP (Internet Protocol) constitue la base pour le protocole TCP (Transmis-
sion Control Protocol). TCP/IP gère donc conjointement deux tâches : il identifie
chaque ordinateur par le biais d’un numéro unique (adresse IP) et se charge de
vérifier que les données devant être émises à l’attention d’une adresse particulière
lui parviennent effectivement. Ces données sont transmises sous la forme de petits
paquets.
Linux Livre Page 494 Mardi, 23. septembre 2008 1:05 13

494 LINUX

Même si votre ordinateur ne fait pas partie d’un réseau et que vous ne possédez ni connexion réseau ni
modem, vous aurez quand même besoin des fonctionnalités TCP/IP ! De nombreux programmes Linux utili-
sent en effet ce protocole pour leurs communications internes. Pour cette raison, l’interface loopback doit
dans tous les cas être installée (voir plus bas). C’est le cas par défaut sur toutes les distributions.

UDP et ICMP Outre TCP, il existe deux autres protocoles jouant un rôle important sur Internet : UDP et
ICMP. UDP est l’acronyme d’User Datagram Protocol. Il permet de transmettre les paquets de
façon non fiable. "Non fiable" signifie dans ce contexte que l’émetteur et le destinataire ne
sont pas connectés en permanence l’un à l’autre pour échanger des informations sur les
paquets transmis. Avec UDP, il est donc possible que des paquets n’arrivent pas du tout à
destination, ou dans le désordre par rapport à leur ordre d’envoi. C’est le rôle du destina-
taire (et non du protocole) de vérifier l’intégrité des données. UDP possède l’avantage, par
rapport à TCP, d’être plus efficace pour certaines applications du fait de la faible charge qu’il
occasionne et qu’il permet des temps de réaction plus courts. Il est par exemple utilisé pour
les services DNS et NFS.
ICMP est l’acronyme d’Internet Control Message Protocol. Il est conçu non seulement pour
l’échange de données entre programmes mais également pour la transmission de codes de
contrôle et d’erreur pour TCP/IP. ICMP est par exemple utilisé par l’outil ping.
Ports Chaque paquet IP est classé suivant un numéro de port. Ceci permet d’ordonnancer plus
facilement les paquets au niveau du destinataire. La plupart des applications Internet
(WWW, FTP, E-mail, etc.) se voient attribuer un numéro de port propre.
PPP Lorsque la connexion à Internet intervient, non pas à travers l’infrastructure d’un réseau
local mais directement par le biais d’un modem ou d’une carte RNIS, c’est le protocole PPP
(Point-to-Point Protocol) qui entre en jeu. Il permet de transmettre les données TCP/IP sur
une ligne téléphonique, par RNIS ou par ADSL. PPP peut également être utilisé pour la mise
en place des réseaux privés virtuels (VPN).
Nom d’hôte et Les adresses IP (voir ci-après) sont certes pratiques pour les ordinateurs, mais elles sont peu
nom de
domaine commodes pour les êtres humains. Pour cette raison, l’ordinateur peut aussi être identifié
par la combinaison de son nom d’hôte et du nom de domaine.
Le nom d’hôte est le nom effectivement attribué à l’ordinateur. Le nom de domaine décrit la
portion de réseau dans laquelle on peut accéder à l’ordinateur. Le nom de domaine peut
également comprendre plusieurs sections.
Au sein d’un réseau local, les noms d’hôte et de domaine servent principalement d’aide-
mémoire pour les utilisateurs. Ainsi, mes ordinateurs de test sont nommés suivant les pla-
nètes de notre système solaire (par exemple jupiter), tandis que le domaine associé est sol.
Le nom complet résultant est donc jupiter.sol.

Il faut éviter d’utiliser comme nom d’hôte le fabricant de l’ordinateur, son propriétaire, le nom d’un projet, etc.
car cela peut conduire à une certaine confusion. Utilisez des noms courts et faciles à retenir, correspondant à
des animaux, des plantes, des rivières ou tout autre domaine de votre choix. Les caractères spéciaux ne sont
pas autorisés.
N’utilisez jamais localhost en tant que nom d’hôte ! Ce nom possède une signification particulière : il
sert de nom pleinement qualifié (fully qualified). Il est toujours affecté à l’adresse 127.0.0.1 de l’interface
loopback, indépendamment de tout autre paramètre de la configuration réseau.
Linux Livre Page 495 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 495

Vous avez moins de marge de manœuvre sur le choix du nom de domaine. Celui-ci doit cor-
respondre aux noms de domaines déjà utilisés au sein du réseau. Ce n’est que lorsque vous
mettez en place un nouveau réseau local que vous pouvez librement choisir votre nom de
domaine.
Lorsque votre ordinateur Linux doit être visible sur Internet en tant que serveur web, e-mail
ou pour tout autre service, vous devez enregistrer le nom de domaine souhaité auprès d’un
fournisseur d’accès Internet ou d’un bureau d’enregistrement NIC (Network Information Cen-
ter), par exemple auprès de l’AFNIC (http://www.afnic.fr) pour les noms de domaines en .fr
ou de CORE (http://www.corenic.org) pour les noms de domaines en .com, .net et .org.
Adresses IP Les adresses IP servent à identifier de façon univoque un ordinateur au sein d’un réseau.
192.168.0.75 est par exemple une adresse IP typique pour un ordinateur du réseau local. Vous
trouverez davantage d’informations sur les adresses IP un peu plus loin dans ce chapitre.
Adresse MAC L’adresse MAC (Media Access Control) est un numéro d’identifiant univoque que possède
chaque contrôleur Ethernet. L’adresse MAC permet d’identifier le contrôleur réseau avant
même que lui soit affectée une adresse IP. L’adresse MAC est en particulier utilisée par le
protocole DHCP (voir Chapitre 28).
Interface L’adresse IP décrit non pas un ordinateur mais une interface IP. Un ordinateur possède souvent
plusieurs interfaces, chacune dotée d’une adresse IP différente. Sur un ordinateur, on retrouve
généralement l’interface loopback (127.0.0.1, voir ci-après), une ou plusieurs interfaces Ethernet,
ainsi qu’une éventuelle interface PPP pour l’accès Internet par modem, RNIS ou ADSL.
Lorsque l’on parle de l’adresse IP (comme s’il n’en existait qu’une), on fait alors générale-
ment référence à l’adresse permettant d’accéder à l’ordinateur au sein du réseau local ou
d’Internet. En règle générale, il s’agit de l’adresse IP de l’interface Ethernet à laquelle sont
affectés les noms d’hôte et de domaine, et qui est unique au sein du réseau local.
Nom En interne à Linux, toutes les interfaces réseau se voient attribuer un nom. Des noms typi-
d’interface
ques sont par exemple lo pour l’interface loopback, eth0, eth1, etc. pour les interfaces Ethernet
et pppn pour les interfaces PPP.
Interface L’interface loopback joue un rôle particulier : elle permet d’utiliser le protocole réseau pour les
loopback
services locaux et donc pour la communication interne à l’ordinateur. Cela peut sembler
absurde, mais c’est obligatoire pour de nombreuses commandes élémentaires de Linux. En
effet, celles-ci basent leurs communications sur le protocole réseau, et ce que les données res-
tent sur l’ordinateur local ou qu’elles soient transmises à destination d’un ordinateur distant
sur le réseau. Un exemple de ce fonctionnement est le système d’impression CUPS, qui traite
les tâches d’impression aussi bien locales qu’en provenance d’autres ordinateurs sur le réseau.
L’adresse IP réservée pour l’interface loopback est 127.0.0.1. Toutes les distributions gèrent
automatiquement la configuration de l’interface loopback, même si aucune configuration
réseau n’est effectuée par ailleurs.
Masques de L’étendue d’un réseau local est exprimée par deux ou trois masques. Il s’agit pour chaque
sous-réseau,
adresse masque de quatre groupes de chiffres, utilisés en interne comme motif binaire pour les
réseau, adresses IP. Lorsque le réseau local comprend toutes les adresses 192.168.0.n, le masque de
adresse de
broadcast sous-réseau correspondant est 255.255.255.0, l’adresse réseau, 192.168.0.0 et l’adresse de broad-
cast (ou adresse de diffusion), 192.168.0.255. Dans de nombreux outils de configuration,
Linux Livre Page 496 Mardi, 23. septembre 2008 1:05 13

496 LINUX

vous n’avez pas besoin de renseigner l’adresse de broadcast dans la mesure où celle-ci est
calculée à partir des deux autres adresses fournies.
Le réseau résultant est alors décrit comme 192.168.0.0/255.255.255.0 ou, plus brièvement,
192.168.0.0/24 (cette seconde notation fournit le nombre de valeurs binaires à 1 dans le mas-
que de sous-réseau). Deux ordinateurs d’adresses IP 192.168.0.71 et 192.168.0.72 peuvent
donc communiquer directement l’un avec l’autre sur ce réseau (parce que les adresses IP
correspondent au domaine défini par le masque de sous-réseau). Le nombre maximal
d’ordinateurs pouvant communiquer entre eux dans ce réseau est de 254 (correspondant
aux adresses .1 à .254, les adresses .0 et .255 étant réservées).
Passerelle Une passerelle (gateway) est un ordinateur constituant une interface entre deux réseaux
(bien souvent, entre le réseau local et Internet). Pour que votre ordinateur Linux, situé sur le
réseau local, puisse accéder à Internet, vous devez fournir l’adresse de la passerelle à la
configuration.
L’adresse de la passerelle décrit donc un ordinateur du réseau local (par exemple
192.168.0.1). Cet ordinateur possède une position particulière dans la mesure où il est égale-
ment connecté (par exemple par une liaison ADSL) à Internet. Le trafic Internet de l’ensemble
du réseau local transite donc par la passerelle.
Serveur Un serveur de noms est un programme traduisant les noms des ordinateurs ou les adresses
de noms
Internet (par exemple www.yahoo.fr) en adresses IP. Sur les petits réseaux, la correspon-
dance entre nom et adresse s’effectue bien souvent par le biais d’un tableau (le fichier /etc/
hosts). Sur Internet, ce sont des ordinateurs dotés des bases de données appropriées qui
gèrent cette tâche. Pour décrire un serveur de noms, on utilise également l’abréviation DNS
(pour Domain Name Server).
Lorsque vous souhaitez consulter la page www.yahoo.fr dans un navigateur web, un contact
est établi en premier lieu avec le serveur de noms pour en obtenir l’adresse IP du serveur
web correspondant. Ce n’est qu’après la réussite de cette opération qu’une connexion peut
être établie avec l’adresse IP en question.
DHCP Le protocole DHCP (Dynamic Host Configuration Protocol) est fréquemment utilisé au sein des
réseaux locaux pour centraliser l’administration du réseau. Plutôt que configurer individuelle-
ment, sur chaque ordinateur, l’adresse IP, la passerelle, le serveur de noms, etc., un ordinateur
est configuré comme serveur DHCP (voir Chapitre 28). Tous les autres postes du réseau local
prennent contact, à l’amorçage, avec le serveur DHCP pour en obtenir les paramètres à utiliser
pour le réseau. La configuration des clients est donc réduite à sa plus simple expression.

Adresses IP
Nous avons déjà mentionné que les adresses IP servent à l’identification des ordinateurs au
sein d’un réseau. Cela vaut aussi bien pour le réseau local que pour Internet. Cette section
fournit des informations de base sur l’utilisation des adresses IP.
En théorie, il existe 2564 adresses IP (environ 4 milliards). Toutefois, le nombre d’adresses
disponibles de fait est très inférieur car, d’une part, un certain nombre de ces adresses sont
réservées (par exemple toutes celles finissant par .0 et .255) et, d’autre part, parce que les
adresses IP ont par le passé été attribuées de façon assez libérale.
Du fait de la croissance exponentielle d’Internet, le besoin en adresses IP univoques pour
chaque ordinateur présent sur Internet est devenu un problème grandissant. Jusqu’à l’adoption
Linux Livre Page 497 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 497

complète d’IPv6 (une nouvelle version du protocole Internet qui, outre de nombreuses amé-
liorations, offrira également un espace d’adresses considérablement plus grand), les adresses
IP resteront un bien rare.
Adresses IP Si vous souhaitez connecter votre propre serveur web à Internet, vous aurez besoin non seu-
sur Internet
lement d’un nom de domaine valable mondialement (par exemple "masociete.fr"), mais
également d’une adresse IP propre. Le plus simple pour obtenir ces deux paramètres consiste à
passer par votre FAI ou par l’organisme NIC de votre pays.
Pour les utilisateurs privés ou les petites organisations, ceci n’est toutefois que rarement
nécessaire. Pour le réseau local, ce sont les adresses IP de l’espace d’adresses privé qui sont
utilisées (voir un peu plus loin pour les détails). La connexion à Internet s’effectue par le
biais d’un FAI qui, pour la durée de la connexion, met à votre disposition une adresse IP
valable mondialement.
Si, toutefois, vous souhaitez être présent sur Internet avec votre propre site web, vous
devrez en général faire appel à un fournisseur de services. L’ordinateur hébergeant le ser-
veur web et vos documents HTML se trouve chez le fournisseur (et non à votre domicile) et
c’est le prestataire qui est responsable de l’adresse IP. Ce fonctionnement présente un avan-
tage supplémentaire dans la mesure où vous n’avez pas à être connecté en permanence à
Internet pour que votre site web soit, lui, accessible.
Pour résumer : vous n’aurez besoin d’une adresse IP personnelle et univoque que si votre
ordinateur doit être en permanence accessible sur Internet et que vous possédiez à cet effet
une connexion directe à Internet (par exemple par une ligne dédiée). Cela ne concerne en
général que les grosses sociétés et les universités.
Adresses IP sur Les ordinateurs du réseau local sont en règle générale invisibles depuis Internet. Cela signi-
le réseau local
fie que les ordinateurs peuvent certes utiliser les fonctionnalités Internet par le biais d’une
configuration appropriée, mais qu’ils sont protégés contre les accès non autorisés réalisés
depuis Internet. En conséquence, les adresses IP du réseau local n’ont besoin d’être univoques
qu’au sein de ce réseau et non au niveau mondial.
Les adresses IP étant un bien rare, ceci offre des possibilités intéressantes d’économies. Trois
plages d’adresses parmi l’espace d’adresses IP disponibles ont donc été réservées aux
réseaux locaux :
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Le premier domaine permet de mettre en place un réseau local très important (comprenant
en théorie 16 millions d’ordinateurs, ce qui suffit déjà pour de très grosses entreprises). Le
deuxième domaine compte de fait 16 plages d’adresses d’environ 65 000 adresses chacune
(par exemple 172.23.0.0 à 172.23.255.255). Le troisième domaine est constitué de 256 petites
plages d’adresses (par exemple 192.168.75.0 à 192.168.75.255.
La plage d’adresses dans laquelle vous choisissez de configurer votre réseau local n’a pas
d’importance : ce système garantit qu’il n’y aura aucun conflit d’adresse avec les "vraies"
adresses IP d’Internet.
Linux Livre Page 498 Mardi, 23. septembre 2008 1:05 13

498 LINUX

La plupart du temps, vous souhaiterez pouvoir utiliser librement les fonctionnalités Inter-
net au sein du réseau local (par exemple consulter des pages web). Pour ce faire, vous
devrez configurer un ordinateur du réseau local en tant que passerelle vers Internet. Cet
ordinateur établit la connexion à Internet (qu’il s’agisse d’une connexion ADSL, RNIS,
modem ou autre) et redirige toutes les requêtes Internet du réseau local. La passerelle a en
outre la responsabilité de traduire les adresses IP locales en une adresse IP valable à
l’extérieur : cette fonction porte le nom de mascarade et est décrite au Chapitre 28.
Adresses IP Le fait qu’une adresse IP est obligatoire pour identifier un ordinateur sur le réseau devrait
dynamiques
maintenant être clair. Mais d’où l’ordinateur peut-il savoir quelle adresse utiliser ? La solu-
tion la plus simple consiste à renseigner explicitement l’adresse IP à la configuration. Sur les
petits réseaux locaux, c’est la procédure la plus courante. Le premier ordinateur du réseau
se voit par exemple attribuer l’adresse 192.168.0.1, le second 192.168.0.2, etc. L’adresse est
enregistrée dans le fichier /etc/hosts.
Plus la taille du réseau augmente, et plus cette configuration décentralisée devient problé-
matique. Pour éviter la surcharge de travail afférente, on utilise fréquemment des adresses
IP dynamiques. Pour cela, un ordinateur du réseau local doit être configuré en tant que ser-
veur DHCP (Dynamic Host Configuration Protocol). Tous les autres postes du réseau, au lance-
ment de leurs fonctions réseau, prennent contact avec le serveur DHCP et se voient attribuer
une adresse IP. Il n’est pas rare de voir un routeur ADSL jouer ce rôle de serveur DHCP.
Ceci présente avant tout deux avantages : tout d’abord, l’ensemble du réseau peut être géré
de manière centralisée (plutôt que devoir configurer des paramètres sur chaque poste) ;
ensuite, la charge de travail d’administration par client tend alors vers zéro. Pour connecter
un client au réseau, il n’y a plus besoin que de fournir le nom de machine et d’activer
l’option DHCP. Toutes les autres données (adresse IP propre, adresses IP de la passerelle et
du DNS, etc.) sont transmises par DHCP.
Il existe en outre un troisième avantage qui est toutefois plus intéressant pour les FAI : du
fait que les adresses IP sont attribuées de manière dynamique et que tous les ordinateurs ne
sont pas connectés simultanément au réseau, le nombre d’adresses IP nécessaires pour
répondre aux besoins d’un grand nombre d’utilisateurs est donc inférieur au nombre total
de postes. Chaque fois qu’un utilisateur s’identifie auprès de son FAI par modem ou ADSL,
il obtient la première adresse disponible à ce moment précis.
Un ordinateur, Un ordinateur possède, en règle générale, plusieurs adresses IP ! Si nous n’avons jusqu’à
plusieurs
adresses IP présent parlé que de l’adresse IP, nous impliquions qu’il s’agissait de l’adresse affectée à
l’interface du contrôleur Ethernet. C’est donc l’adresse identifiant l’ordinateur au sein du
réseau. Cela signifie également, plus précisément, que l’adresse IP est non pas celle de l’ordi-
nateur à proprement parler mais celle de l’interface associée au contrôleur réseau présent dans
cet ordinateur.
Chaque ordinateur Linux/Unix est par ailleurs accessible par le biais de l’adresse 127.0.0.1
ou du nom localhost. Cette interface loopback, que nous avons déjà mentionnée, est réser-
vée au trafic réseau local. Vous pouvez tester très simplement son bon fonctionnement à
l’aide de ping :
utilisateur$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.040 ms
Linux Livre Page 499 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 499

64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.041 ms

--- localhost ping statistics ---


3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.040/0.043/0.049/0.006 ms

ping transmet des paquets de données à l’adresse fournie en paramètre et mesure la durée
écoulée jusqu’à confirmation de la bonne réception des paquets. ping localhost devrait
même fonctionner si votre ordinateur ne possède aucun contrôleur Ethernet !
Enfin, un ordinateur peut également être pourvu de plusieurs contrôleurs réseau. Chaque
contrôleur fonctionne alors comme une interface individuelle et possède donc sa propre
adresse IP. Les connexions PPP établies par le biais d’un modem ou d’une carte RNIS
constituent également des interfaces. Celles-ci se voient attribuer une adresse IP, généralement
déterminée par le FAI (il s’agit d’une adresse IP dynamique).
Un ordinateur peut être équipé de plusieurs contrôleurs réseau si, par exemple, il doit relier
deux portions de réseau situées dans des plages d’adresses différentes. L’ordinateur est
alors désigné par le terme de routeur. Un exemple en est la passerelle Internet d’un réseau.
Tant que la connexion Internet est établie, la passerelle possède au moins trois adresses IP :
l’adresse loopback 127.0.0.1, une adresse au sein du réseau local et enfin une adresse Inter-
net globale attribuée par un FAI (pour être tout à fait exact, une passerelle assure les fonc-
tionnalités non pas de routage mais uniquement de mascarade ; cette différence subtile est
décrite plus précisément au Chapitre 28).
Configuration Lorsqu’il n’y a pas de serveur DHCP sur un réseau local, vous devez paramétrer de façon
statique de
l’adresse IP statique l’adresse IP de l’interface lors de la configuration réseau. Mais quelle adresse IP
devez-vous utiliser ?
• Si votre ordinateur ne fait pas partie d’un réseau local : en dehors de l’adresse 127.0.0.1
pour l’interface loopback, vous n’avez pas besoin de la moindre adresse IP (ceci vaut même
si cet ordinateur doit être ultérieurement connecté à Internet par une liaison modem/
RNIS/ADSL). Votre seule tâche de configuration consiste donc à fournir les noms d’hôte et
de domaine.
• Si votre ordinateur fait partie d’un réseau local existant : l’adresse IP doit se trouver dans la
plage d’adresses valides pour ce réseau (par exemple 192.168.0.*) et doit y être unique.
• Si votre ordinateur doit être le premier d’un nouveau réseau local : choisissez une plage
d’adresses privée (par exemple 192.168.0.*) et affectez à l’ordinateur une adresse IP de
cette plage.

IPv6
Jusqu’à présent, je n’ai fondé mes explications que sur le protocole IP dans sa version 4
(IPv4). Internet, dans sa forme actuelle et dans son ensemble, est également basé sur cette
version du protocole IP. Toutefois, depuis plusieurs années déjà se dessine une pénurie
d’adresses IP. De surcroît, ce protocole présente quelques lacunes fonctionnelles qui le
Linux Livre Page 500 Mardi, 23. septembre 2008 1:05 13

500 LINUX

rendent peu adapté à de nombreuses applications actuelles et à venir (par exemple la télé-
phonie sur IP, le streaming audio et vidéo).
Adresses IPv6 La version 6 du protocole IP (IPv6), lorsqu’elle sera mise en place, devrait combler ces lacunes.
Le changement le plus marquant et le plus visible pour les administrateurs est sans doute la
longueur des adresses, qui de 32 bits avec IPv4 passera à 128 bits avec IPv6. Les adresses
IPv6 devraient donc être rédigées sur le modèle suivant :
121.57.242.17.122.58.243.18.19.123.59.20.244.124.60.245

Il est toutefois manifeste que cette écriture n’est pas utilisable. Pour économiser de la place,
les adresses IPv6 sont donc présentées sous la forme de groupes (jusqu’à huit) de chiffres
hexadécimaux, séparés par un caractère deux-points ":", comme dans l’exemple suivant :
abcd:17:2ff:12aa:2222:783:dd:1234

Pour gagner encore en lisibilité, on abrège une succession de plusieurs groupes de valeur
nulle en un double caractère deux-points "::" :
abcd:17:0:0:0:0:dd:1234 -> abcd:17::dd:1234
0:0:0:0:0:783:dd:1234 -> ::783:dd:1234

Pour localhost, il existe une écriture encore plus compacte : ::1.


Lorsque l’on convertit des adresses IPv4 en adresses IPv6, les six premiers groupes sont
constitués de zéros. Les deux derniers groupes peuvent également être écrits sous la forme
décimale bien connue :
Adresse IPv4 : ::110.111.112.113
Dans le cadre de l’adoption d’IPv6, il sera nécessaire pendant plusieurs années d’utiliser
conjointement IPv4 et IPv6. Il existe plusieurs méthodes pour faire transiter des paquets
IPv6 sur des réseaux IPv4 (et vice versa).
IPv6 et Linux Le noyau Linux gère en principe IPv6 depuis la version 2.2 ; en pratique, la prise en charge
d’IPv6 n’est mûre que depuis le noyau 2.6. Une majorité des applications réseau sont également
devenues compatibles IPv6 entre-temps.

Du fait qu’IPv6 ne s’est pas encore couramment établi dans l’espace européen, les informations de cet
ouvrage ne s’appliquent pour le moment qu’à IPv4. Les pages suivantes constituent un bon point de départ
pour rechercher des informations supplémentaires sur IPv6 et sur les particularités de Linux :
http://www.ipv6.org/ ; http://www.ipv6forum.com/ ; http://fr.wikipedia.org/wiki/IPv6 ;
http://www.faqs.org/rfcs/rfc1752.html

26.2 Activer manuellement un contrôleur LAN


Le contrôleur réseau ou LAN est en règle générale une puce sur la carte mère de votre ordi-
nateur qui gère les fonctionnalités Ethernet. Le contrôleur peut également se trouver sur une
carte réseau propre (PCI, ISA, PCMCIA). Les cartes réseau sont pratiques pour doter un
vieil ordinateur de fonctionnalités réseau ou étendre les capacités d’un ordinateur moderne
en lui ajoutant une interface réseau supplémentaire.
Linux Livre Page 501 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 501

Indépendamment de la façon dont les fonctionnalités réseau sont physiquement mises en


œuvre, je ne parlerai dans la suite que de contrôleur réseau. Si vous avez déjà configuré le
contrôleur réseau, c’est votre distribution qui se charge, à l’amorçage, de sa mise en service.
Cette section vous montre comment se déroule l’initialisation d’un contrôleur réseau et
comment vous pouvez activer manuellement l’interface réseau. L’objectif de cette section est
non pas de vous faire configurer à l’avenir vos interfaces réseau à la main, mais de vous faire
maîtriser les bases du fonctionnement.
Reconnais- La première étape consiste à vérifier que le module noyau correspondant à votre contrôleur
sance du
matériel réseau est bien chargé. Fréquemment, le noyau y parvient automatiquement. Dans ce cas, la
commande ifconfig eth0 up ne doit renvoyer aucun message d’erreur (voir ci-après). Si
vous rencontrez des problèmes à ce stade, vous devez identifier quel contrôleur réseau est
utilisé dans votre ordinateur et quel module noyau en est responsable. Dans de tels cas,
lspci vous renvoie les premières informations utiles :
root# lspci | grep -i net
02:01.0 Ethernet controller: Intel Corporation 82540EP Gigabit Ethernet
Controller (Mobile) (rev 03)
...

Ce portable utilise donc le contrôleur Ethernet Gigabit 82540EP d’Intel. La seconde étape
consiste alors à affecter un pilote approprié au contrôleur (c’est-à-dire un module noyau issu
du répertoire /lib/modules/n.n/net/*). Une recherche Internet sur les termes linux kernel
module 82540EP conduit rapidement au module noyau approprié, e1000.
root# modinfo e1000
filename: /lib/modules/2.6.17-10-generic/kernel/drivers/net/e1000/
e1000.ko
author: Intel Corporation, <linux.nics@intel.com>
description: Intel(R) PRO/1000 Network Driver
license: GPL
version: 7.1.9-k4
...

La commande modprobe vous permet de charger le module correspondant :


root# modprobe e1000

dmesg montre si des erreurs surviennent au chargement du module (ce qui n’est pas le cas
ici). L’avertissement link is not ready indique uniquement que l’interface n’est pour le
moment pas active faute de configuration adéquate.
root# dmesg -c
...
Intel(R) PRO/1000 Network Driver - version 7.1.9-k4
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt 0000:02:01.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
e1000: 0000:02:01.0: e1000_probe: (PCI:33MHz:32-bit) 00:11:25:32:4f:5d
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
ADDRCONF(NETDEV_UP): eth0: link is not ready
Linux Livre Page 502 Mardi, 23. septembre 2008 1:05 13

502 LINUX

Pour que ce module soit, à l’avenir, automatiquement chargé, enregistrez dans le fichier de
configuration des modules (voir Chapitre 25) la correspondance entre l’interface eth0 et le
module noyau 8139too :
# Fichier de configuration des modules /etc/modprobe.conf ou /etc/modprobe.d/aliases
alias eth0 e1000

Configuration Dans tous les cas, le contrôleur réseau identifie lui-même les paramètres obligatoires pour
des para-
mètres de communiquer au sein du réseau. Ce n’est que dans de très rares cas qu’il devient nécessaire
contrôleur de configurer explicitement des paramètres tels que la vitesse, le mode duplex, etc. Dans de
tels cas, la commande ethtool pourra vous être utile (voir man ethtool).
Activation Vous pouvez enfin activer l’interface réseau à l’aide d’ifconfig :
de l’interface
root# ifconfig eth0 up

Si aucun module n’est chargé ou que ce ne soit pas le bon, le message d’erreur suivant appa-
raît alors : eth0: unknown interface: No such device. dmesg vous donne plus de détails sur la
réussite ou l’échec de l’opération :
root# dmesg -c
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
eth0: no IPv6 routers present

Cartes réseau Avec les cartes ISA, qui commencent à dater, il peut y avoir une complication supplémen-
ISA
taire dans certaines circonstances : le module n’est, en règle générale, pas en mesure d’iden-
tifier le domaine d’entrées/sorties de la carte ou la bonne interruption. Cette information
doit être saisie manuellement dans modprobe.conf ou dans un fichier du répertoire /etc/
modprobe.d/, et ce sous la forme d’une ligne alias. Pour une carte ISA compatible NE-2000,
les lignes correspondantes ont l’allure suivante :
alias eth0 ne
options ne io=0x300

Linux peut aussi gérer plusieurs cartes réseau simultanément (tant que cela ne génère pas
de conflit entre domaines d’adresses d’entrées/sorties ou entre interruptions). Voici là
encore un exemple :
alias eth0 ne
alias eth1 ne
options ne io=0x300,0x320 irq=5,7

Vous trouverez plus d’informations sur ce sujet dans les HOW-TO dédiés au matériel et à Ethernet, ainsi que
sur le site web : http://www.scyld.com/network/

Configuration Pour configurer l’interface réseau, fournissez son nom (eth0), ainsi que l’adresse IP souhai-
de l’interface
tée, à la commande ifconfig. Si vous exécutez une seconde fois la commande sans fournir
cette fois d’adresse IP, vous obtenez toutes les informations connues relatives à l’interface
réseau :
root# ifconfig eth0 192.168.0.2
root# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:25:32:4F:5D
Linux Livre Page 503 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 503

inet adr:192.168.0.2 Bcast:192.168.0.255 Masque:255.255.255.0


adr inet6: fe80::211:25ff:fe32:4f5d/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:82 errors:0 dropped:0 overruns:0 frame:0
TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 file transmission:100
RX bytes:9252 (9.0 KiB) TX bytes:7732 (7.5 KiB)
Interruption:17 Adresse de base:0x8000

Vous pouvez alors vérifier avec la commande ping si vous parvenez à contacter d’autres
ordinateurs du réseau local. L’option -c 2 vous permet d’envoyer exactement deux paquets
ping :
root# ping -c 2 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.95 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.169 ms

--- 192.168.0.1 ping statistics ---


2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.169/1.560/2.952/1.392 ms

Configuration La commande ping ne fonctionne pour le moment que si vous lui fournissez directement
du serveur de
noms une adresse IP. Pour pouvoir lui passer aussi des noms de machine, le fichier /etc/
resolv.conf doit contenir l’adresse IP d’un serveur de noms. L’exemple qui suit part du
principe que le réseau local dispose de son propre serveur de noms, d’adresse IP 192.168.0.1.
Le serveur de noms peut toutefois être extérieur au réseau et, par exemple, être mis à dispo-
sition par le FAI (vous trouverez un peu plus loin dans ce chapitre des informations sur ce
fichier de configuration).
# /etc/resolv.conv
nameserver 192.168.0.1

Passerelle par À l’heure actuelle, vous ne pouvez envoyer des paquets qu’à destination du réseau local.
défaut
Pour permettre également des contacts avec l’extérieur (en particulier avec Internet), l’ordi-
nateur doit savoir où envoyer ces paquets. Vous devez pour cela fournir l’adresse de la pas-
serelle Internet de votre réseau, à l’aide de la commande route. Dans l’exemple qui suit,
l’adresse IP de la passerelle est 192.168.0.1 :
root# route add default gw 192.168.0.1
root# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

Il devrait maintenant être possible d’envoyer des paquets vers toute adresse située sur
Internet :
root# ping -c 2 yahoo.com
PING yahoo.com (216.109.112.135) 56(84) bytes of data.
Linux Livre Page 504 Mardi, 23. septembre 2008 1:05 13

504 LINUX

64 bytes from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=1 ttl=52


time=116 ms
64 bytes from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=2 ttl=52
time=115 ms

--- yahoo.com ping statistics ---


2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 115.397/115.807/116.217/0.410 ms

Récupérer les S’il y a sur le réseau un serveur DHCP, vous pouvez vous appuyer dessus pour la configu-
informations
par DHCP ration. Une fois l’interface réseau activée (ifconfig eth0 up sans autre paramètre), exécutez
sous Debian et Ubuntu la commande dhclient3 :
root# dhclient3 eth0
...
Listening on LPF/eth0/00:11:25:32:4f:5d
Sending on LPF/eth0/00:11:25:32:4f:5d
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER from 192.168.0.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.15 -- renewal in 36624 seconds.

Sur SUSE, vous parviendrez au même résultat avec la commande dhcpd :


root# dhcpcd eth0

Red Hat ou Fedora reposent, comme Debian et Ubuntu, sur dhclient pour la configuration
du client DHCP. Toutefois, la commande y est préconfigurée de telle sorte qu’un appel
manuel ne fonctionne pas. dhclient ne peut être utilisé sur ces distributions que dans le
cadre des scripts Init-V, pour une initialisation automatisée du réseau.
Pour la configuration DHCP, Knoppix utilise le programme pump, piloté par le biais du
fichier /etc/pump.conf. Il est possible de l’appeler manuellement sous la forme pump -i
eth0. pump -s renvoie les informations d’état relatives aux interfaces configurées par
DHCP.
Désactivation Pour désactiver une interface réseau, utilisez la commande ifconfig avec l’option down :
de l’interface
root# ifconfig eth0 down

Gestion de Il n’est maintenant pas rare de rencontrer des ordinateurs dotés de plusieurs contrôleurs
plusieurs
contrôleurs réseau. La quasi-totalité des portables actuels possède un contrôleur Ethernet ainsi qu’un
contrôleur Wi-Fi (dont l’interface est gérée, en interne à Linux, de façon strictement sembla-
ble à une interface Ethernet ; plus de détails sur ce sujet un peu plus loin dans ce chapitre).
Les serveurs réseau nécessitent également plusieurs contrôleurs : c’est à travers un premier
contrôleur qu’a lieu la connexion à Internet, un deuxième gère la connexion au réseau local,
un troisième peut également gérer le Wi-Fi, etc.
Linux n’a, en principe, aucun problème à gérer plusieurs contrôleurs et à les intégrer dans la
configuration réseau. Le système udev est chargé de générer une correspondance cohérente
entre le matériel (les contrôleurs) et les noms des interfaces associées (eth0, eth1, etc.), de
sorte que chaque contrôleur se voie systématiquement affecter le même nom d’interface
(voir un peu plus loin).
Linux Livre Page 505 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 505

26.3 Fichiers de configuration du réseau local


En règle générale, il vaut mieux éviter de modifier directement les fichiers de configuration
du réseau local et faire appel aux outils de configuration de votre distribution (ou ceux de
Gnome ou KDE, si votre distribution ne prévoit aucun outil de configuration de ce type).
Après avoir modifié la configuration réseau, vous devrez fermer votre session Gnome ou
KDE et en ouvrir une nouvelle !
Gnome network-admin
KDE Centre de configuration > Internet et Réseau > Paramètres réseau
Debian Outils Gnome ou KDE
Red Hat, Fedora system-config-network = neat
SUSE YaST (Périphériques réseau > Carte réseau)
Ubuntu/Kubuntu Outils Gnome ou KDE
Cette section décrit les principaux fichiers de configuration pour connecter un ordinateur à
un réseau local. Malheureusement, il n’existe de règles unifiées pour les principales distri-
butions que pour une partie de ces fichiers. Pour les autres fichiers, qui concernent principa-
lement les interfaces et le contrôleur, je présenterai ici les variantes Debian/Ubuntu, Red
Hat/Fedora et SUSE (testé avec Ubuntu 7.04, Fedora 7 et OpenSUSE 10.2).
Voici quelques éléments valables pour tous les exemples de cette section : l’ordinateur à
configurer s’appelle uranus, son domaine, sol. Les autres ordinateurs du réseau local
s’appellent jupiter, saturne, etc. Le réseau local utilise des adresses de la plage 192.168.0.*.
L’ordinateur local possède l’adresse IP 192.168.0.2. La passerelle du réseau local a l’IP
192.168.0.1 et elle héberge également un serveur de noms. Les noms et adresses ne sont bien
entendu que des exemples.

Configuration de base
/etc/hosts Le fichier /etc/hosts contient une liste d’adresses IP connues et des noms de machine asso-
ciés. Le fichier doit, dans tous les cas, contenir les données relatives à l’interface loopback,
dont l’entrée correspondante a en général l’allure suivante :
# /etc/hosts
127.0.0.1 localhost # Interface loopback de l’ordinateur
...

Sur la plupart des distributions Linux, au lieu de l’écriture 127.0.0.1, on trouve également
l’écriture IPv6 ::1. Sur Red Hat et Fedora, la ligne localhost comprend en outre l’entrée
localhost.localdomain. Cette ligne ne doit pas être modifiée :
# /etc/hosts sur Red Hat und Fedora
::1 localhost.localdomain localhost
...
Linux Livre Page 506 Mardi, 23. septembre 2008 1:05 13

506 LINUX

Suivant la distribution, le fichier hosts présente également une entrée pour l’ordinateur
local. Lorsque son contrôleur réseau est configuré avec une adresse IP statique, celle-ci est
renseignée. Lorsque le contrôleur réseau obtient son adresse dynamiquement par DHCP,
c’est la pseudo-adresse 127.0.0.1 qui est alors renseignée (par exemple sur Debian et
Ubuntu), ou l’entrée n’apparaît pas du tout (sur Red Hat et Fedora).
# /etc/hosts (suite)
...
192.168.0.2 uranus.sol uranus # adresse IP statique de l’ordinateur local

Si vous souhaitez pouvoir dialoguer avec d’autres ordinateurs du réseau en utilisant leurs
noms, en l’absence d’un serveur de noms sur le réseau local (voir chapitre suivant), vous
devrez renseigner leurs noms dans /etc/hosts. Vous pourrez alors exécuter la commande ping
saturne au lieu de ping 192.168.0.13 pour tester votre connexion à l’ordinateur saturne :
# /etc/hosts (suite)
...
192.168.0.1 mars.sol mars # Adresses IP et noms des autres
192.168.0.2 uranus.sol uranus # ordinateurs sur le réseau
192.168.0.13 saturne.sol saturne

Des informations similaires doivent être saisies dans les fichiers /etc/hosts de tous les ordi-
nateurs du réseau local. Plus celui-ci compte de postes, plus la gestion de ces nombreux
fichiers /etc/hosts devient fastidieuse. Pour cette raison, il est conseillé, sur les réseaux les
plus étendus, de mettre en place un serveur de noms sur un ordinateur (voir chapitre sui-
vant). Cet ordinateur (et donc le serveur de noms) connaît les noms de tous les ordinateurs
du réseau. Les ordinateurs du réseau local peuvent contacter le serveur de noms pour en
obtenir ces informations. /etc/hosts peut alors être réduit à sa plus simple expression, ne
comprenant que quelques lignes pour localhost. Toutefois, cela nécessite de configurer correc-
tement le fichier /etc/resolv.conf (voir un peu plus loin dans ce chapitre).
Sur de nombreuses distributions, /etc/hosts contient en outre quelques adresses IPv6 parti-
culières comme fe00::0. Ces adresses n’ont toutefois de sens que si vous utilisez le nouveau
protocole IPv6.
/etc/host.conf Le fichier /etc/host.conf indique comment TCP/IP doit identifier les adresses IP inconnues.
Suivant le fichier d’exemple ci-après, on commence par analyser le fichier /etc/hosts (mot-
clé hosts) avant d’interroger le serveur de noms renseigné dans /etc/resolv.conf (mot-clé
bind). La seconde ligne autorise l’affectation de plusieurs adresses IP à un même nom d’hôte
renseigné dans /etc/hosts.
Ce fichier existe dans la quasi-totalité des distributions sous la forme présentée ici et il ne
doit pas être modifié.
# /etc/host.conf
order hosts, bind
multi on

/etc/ Le fichier /etc/resolv.conf pilote la façon dont sont identifiées les adresses IP correspon-
resolv.conf
dant à des noms de réseau ou d’hôtes inconnus (inconnus signifiant ici que les noms ne sont
pas définis dans hosts.conf).
Les mots-clés domain et search permettent de compléter les noms d’hôtes (par exemple jupi-
ter) avec le nom de domaine (pour obtenir par exemple jupiter.sol). Ceci améliore le confort
Linux Livre Page 507 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 507

d’utilisation car les noms d’hôtes peuvent alors être fournis sous forme abrégée. search permet
de renseigner plusieurs noms de domaines (avec domain, un seul peut être fourni) : pour cette
raison, le nom domain a la préséance sur les noms search et il est testé en priorité. Si, comme ici,
un seul nom de domaine est renseigné, la ligne domain peut être totalement ignorée.
Les entrées les plus importantes de /etc/resolv.conf sont précédées du mot-clé
nameserver : ceci permet de renseigner jusqu’à trois adresses IP de serveurs de noms. On
interroge toujours ces serveurs pour identifier l’adresse IP correspondant à un nom de
machine inconnu (par exemple www.yahoo.com). Il est donc absolument indispensable de
renseigner un serveur de noms pour pouvoir résoudre les adresses IP d’URL Internet. En tant
que particulier, vous obtenez les adresses IP d’un serveur DNS de votre FAI. Dans les réseaux
locaux de plus grande envergure, il y a au moins un serveur de noms propre (voir plus haut)
directement connecté au réseau : demandez-en l’adresse IP à votre administrateur système !
# /etc/resolv.conf
domain sol # Les noms d’hôtes s’appliquent à .sol
search sol # Les noms d’hôtes s’appliquent à .sol
nameserver 192.92.138.35 # DNS primaire
nameserver 195.3.96.67 # DNS secondaire (en cas de panne du primaire)

Si votre réseau comprend un serveur de noms local, renseignez-en l’adresse IP :


# /etc/resolv.conf
domain sol # Les noms d’hôtes s’appliquent à .sol
search sol # Les noms d’hôtes s’appliquent à .sol
nameserver 192.168.0.1 # Adresse IP d’un serveur de noms local

Suivant la configuration réseau, le fichier resolv.conf est généré dynamiquement :


• À l’établissement d’une connexion Internet par PPP (modem, ADSL ou RNIS), le script
gérant la connexion insère automatiquement l’adresse du serveur de noms nameserver
de votre FAI dans le fichier /etc/resolv.conf.
• Lorsque votre connexion au réseau local (LAN, Wi-Fi) est configurée par DHCP, le script
gérant la connexion insère les adresses des serveurs de noms transmises par le serveur
DHCP.
Protéger L’adaptation automatique du fichier resolv.conf est, dans la plupart des cas, la solution la
resolv.conf
de toute plus pratique. Si toutefois vous ne souhaitez pas l’utiliser, vous pouvez empêcher les modi-
modification fications automatiques dans la plupart des cas.
Sur Debian et Ubuntu, pour les connexions PPP, vous devez supprimer du fichier /etc/ppp/
peers/nom le mot-clé usepeerdns. Pour les interfaces réseau configurées par DHCP, cela
dépend du client DHCP installé. S’il s’agit de pump, insérez les lignes suivantes dans le
fichier pump.conf :
# /etc/pump.conf
# empêcher les modifications du fichier /etc/resolv.conf
# à la configuration d’eth0 par DHCP (Debian)
device eth0 {
nodns
}
Linux Livre Page 508 Mardi, 23. septembre 2008 1:05 13

508 LINUX

Si c’est dhcp3-client qui est installé, vous devez modifier son fichier de configuration
dhclient.conf :
# /etc/dhcp3/dhclient.conf
...
supersede domain-name "sol";
prepend domain-name-servers 192.168.0.1;

Sur Red Hat ou Fedora, vous devrez modifier le fichier ifcfg-xxx correspondant à l’inter-
face réseau souhaitée :
# /etc/sysconfig/network-scripts/ifcfg-xxxx (Red Hat, Fedora)
PEERDNS=no

Sur SUSE, deux fichiers de configuration sont concernés :


# /etc/sysconfig/network/config pour Modem, ISDN, ADSL (SUSE)
MODIFY_RESOLV_CONF_DYNAMICALLY="no"

# /etc/sysconfig/network/dhcp für DHCP-Clients (SUSE)


DHCLIENT_MODIFY_RESOLV_CONF="no"

Configuration Il n’existe pas une unique manière ou un seul fichier pour configurer une passerelle. Sur un
de la
passerelle réseau local, l’adresse de la passerelle est en général fournie par DHCP. Dans le cadre d’une
configuration statique, les fichiers concernés dépendent de la distribution.
Sur Debian et Ubuntu, le fichier /etc/network/interfaces décrit toutes les interfaces
réseau. Dans le cadre d’interfaces configurées de façon statique, la passerelle est indiquée
par le mot-clé gateway :
# /etc/network/interfaces (Debian, Ubuntu)
...
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1

Sur Red Hat et Fedora, le fichier de configuration de l’interface réseau contient la variable
GATEWAY :
# /etc/sysconfig/network-scripts/ifcfg-xxxx (Red Hat, Fedora)
GATEWAY=192.168.0.1

Sur SUSE, la configuration s’effectue de façon centralisée dans le fichier suivant :


# /etc/sysconfig/network/routes (SUSE)
default 192.168.0.1 - -

Le paramétrage effectif de la passerelle s’effectue de la même manière sur toutes les distri-
butions, par le biais de la commande route. Les deux commandes qui suivent vous mon-
trent comment insérer manuellement la passerelle 192.168.0.1 dans la table de routage puis
comment l’en supprimer :
root# route add default gw 192.168.0.1
root# route del default gw 192.168.0.1

Configuration Vous pouvez afficher le nom d’hôte courant par le biais de la commande hostname. Si ce nom
du nom d’hôte
d’hôte n’est pas paramétré par DHCP, la configuration s’effectue sur Debian et Ubuntu par
Linux Livre Page 509 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 509

le biais du fichier /etc/hostname, sur SUSE par /etc/HOSTNAME. Sur Red Hat et Fedora, le
nom d’hôte est paramétré par la variable hostname dans le fichier /etc/sysconfig/network.
Veillez à bien assurer la cohérence avec /etc/hosts, au cas où ce fichier contienne une ligne
indiquant le nom d’hôte de l’ordinateur.

Correspondance entre contrôleur et interface réseau


Tant qu’il n’y a qu’un seul contrôleur Ethernet, les choses sont vraiment simples : ce contrô-
leur reçoit le nom d’interface eth0. S’il y a plusieurs contrôleurs, il est essentiel que ceux-ci
reçoivent toujours le même nom d’interface, indépendamment de leur ordre d’activation. Par
le passé, cela a fréquemment occasionné des problèmes. En règle générale, les noms d’interfa-
ces étaient attribués dans l’ordre d’activation : suivant l’ordre dans lequel étaient chargés les
modules noyau pour les contrôleurs réseau, il n’était pas rare de finir dans un état de chaos.
Sur la plupart des distributions Linux actuelles, c’est le système udev qui est chargé de la corres-
pondance entre contrôleurs réseau et noms d’interface (voir également Chapitre 13). Toutefois,
la configuration d’udev varie d’une distribution à l’autre. Du fait qu’aucun standard commun
ne s’est pour le moment établi, j’ai choisi de décrire ici trois distributions particulières.
Fedora 7 Sur Fedora 7, le système udev ne présente pas encore de règles pour la correspondance des
interfaces réseau. Au lieu de cela, /etc/modprobe.conf pilote l’affectation des modules
noyau aux interfaces. Cette méthode est certes simple, mais également moins fiable que les
variantes udev d’autres distributions.
# /etc/modprobe.conf (Fedora)
alias eth0 skge
alias eth1 sky2
...
OpenSUSE Sur OpenSUSE 10.2, c’est la règle udev 30-net_persistent_names.rules qui gère le nom-
10.2
mage des interfaces réseau. Ce fichier peut, par exemple, avoir l’allure suivante :
# /udev/rules.d/30-net_persistent_names.rules (SUSE)
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:16:17:cd:c3:81", \
IMPORT="/lib/udev/rename_netiface %k eth0"
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:4f:4e:0f:8e:a0", \
IMPORT="/lib/udev/rename_netiface %k eth1"
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:14:6c:8e:d9:71", \
IMPORT="/lib/udev/rename_netiface %k eth2"

Lorsque le système udev identifie un nouveau contrôleur réseau, une nouvelle règle lui cor-
respondant est insérée dans le fichier, ce dont le fichier de règles udev 31-network.rules est
responsable : il délègue ensuite cette tâche au script /lib/udev/rename_netiface.
Si vous souhaitez désactiver le mécanisme de nommage des interfaces, modifiez le contenu
du fichier de configuration suivant :
# /etc/sysconfig/network/config
...
FORCE_PERSISTENT_NAMES=no
Linux Livre Page 510 Mardi, 23. septembre 2008 1:05 13

510 LINUX

Ubuntu 7.04 Sur Ubuntu, c’est le fichier /etc/iftab qui pilote la correspondance entre contrôleur réseau
et nom d’interface. iftab est analysé par le fichier de règles udev 25-iftab.rules.
Pour identifier un contrôleur dans iftab, on utilise l’adresse MAC. Le fichier peut avoir
l’allure suivante :
# /etc/iftab
eth0 mac 00:0c:f1:58:f9:93 arp 1
eth1 mac 00:11:25:32:4f:5d arp 1

Configuration et initialisation des interfaces réseau


(Debian et Ubuntu)
Cette section décrit dans quels fichiers sont configurées les interfaces réseau et quels scripts
sont responsables de l’initialisation automatique de ces interfaces à l’amorçage. Comme ces
détails dépendent fortement de la configuration, nous nous focaliserons ici sur Debian et
Ubuntu. Les deux sections suivantes fourniront les renseignements correspondant à Red
Hat/Fedora et à SUSE.
/etc/network/ Sur Debian et Ubuntu, c’est le fichier /etc/network/interfaces qui contient l’ensemble des
interfaces
paramètres courants pour toutes les interfaces réseau actives (loopback, LAN, Wi-Fi, etc.).
La ligne auto indique quelles interfaces doivent être activées à l’amorçage. La ligne iface
introduit la description d’une interface. Vous obtiendrez plus de détails sur la structure du
fichier à l’aide de la commande man interfaces.
L’exemple suivant décrit un ordinateur doté de deux interfaces réseau locales : eth0 est
configuré par DHCP, tandis qu’eth1 est configuré de façon statique. Les options d’interface
ont été indentées pour donner plus de lisibilité au fichier :
# /etc/network/interfaces

auto lo eth0 eth1 eth2

iface lo inet loopback

iface eth0 inet dhcp

iface eth1 inet static


address 172.16.0.1
netmask 255.255.255.0

Initialisation Le script InitV /etc/init.d/networking, exécuté dès l’initialisation du système (lien /etc/
rcS.d/S40networking), gère l’initialisation automatique des interfaces réseau à l’amorçage
de l’ordinateur. C’est la commande spécifique à Debian ifup (paquetage ifupdown) qui
assure le travail effectif. ifup -a analyse /etc/network/interfaces et active toutes les inter-
faces auto.
Si les interfaces sont configurées par DHCP, ifup fait appel à la commande dhclient pour
transmettre et analyser les données DHCP. C’est le fichier /etc/dhcp3/dhclient.conf qui
est responsable de la configuration.
Si vous possédez les droits d’administration, vous pouvez aussi utiliser manuellement
ifup : ifup nom active l’interface souhaitée, ifdown nom la désactive.
Linux Livre Page 511 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 511

Configuration et initialisation des interfaces réseau


(Red Hat, Fedora)
/etc/sysconfig/ Chaque interface réseau est configurée par le biais de son propre fichier ifcfg-nom (où nom
network-
scripts/ifcfg- désigne l’interface), hébergé dans le répertoire /etc/sysconfig/network-scripts. Les lignes
xxx qui suivent sont extraites d’un fichier de configuration typique pour un contrôleur Ethernet
configuré par DHCP.
# /etc/sysconfig/network-scripts/ifcfg-eth0
# Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:17:31:67:BA:40
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
IPV6INIT=no
PEERDNS=yes

Le fichier suivant contient une description exhaustive de la plupart des fichiers de configu-
ration réseau et des variables qu’ils contiennent :
/usr/share/doc/initscripts-n.n/sysconfig.txt

Après avoir modifié la configuration réseau, il est fréquemment recommandé de redémarrer


complètement les fonctionnalités réseau :
root# /etc/init.d/network restart

Initialisation Le script InitV /etc/init.d/network gère l’initialisation de toutes les interfaces réseau confi-
gurées. Le script network appelle, pour chaque interface, le script spécifique à Red Hat ifup.
Celui-ci fait appel à différentes fonctions shell définies dans le fichier network-functions. En
outre, des fichiers additionnels sont appelés suivant le type d’interface (ifup-eth, ifup-ppp,
ifup-wireless). Tous ces fichiers se trouvent dans le répertoire /etc/sysconfig/network-
scripts.
Si les interfaces réseau doivent accéder à un serveur DHCP (BOOTPROTO=dhcp dans le fichier
de configuration), la commande dhclient est appelée à cet effet.
De façon analogue aux scripts ifup, il existe également des scripts ifdown pour désactiver
les interfaces réseau.
usernetctl L’utilisateur root peut activer et désactiver confortablement une interface réseau à l’aide de
la commande spécifique à Red Hat usernetctl :
root# usernetctl eth0 up
root# usernetctl eth0 down

Les utilisateurs usuels peuvent également utiliser cette commande s’ils en fournissent le
chemin complet (/usr/sbin/usernetctl). C’est le paramètre USERCTL=yes/no, du fichier de
configuration ifcfg-interface, qui détermine s’ils sont autorisés à modifier l’état d’une
connexion réseau.
Linux Livre Page 512 Mardi, 23. septembre 2008 1:05 13

512 LINUX

Configuration et initialisation des interfaces réseau (SUSE)


/etc/sysconfig/ Pour chaque interface réseau, le répertoire /etc/sysconfig/network présente un fichier de
network/ifcfg-
xxx configuration dont le nom est formé à partir du type d’interface et, pour les contrôleurs
Ethernet, de l’adresse MAC. Les lignes qui suivent illustrent un fichier de configuration
typique :
# /etc/sysconfig/network/ifcfg-eth-id-00:14:6c:8e:d9:71
BOOTPROTO=’static’
BROADCAST=’’
ETHTOOL_OPTIONS=’’
IPADDR=’192.168.0.1’
MTU=’’
NAME=’Netgear RTL-8169 Gigabit Ethernet’
NETMASK=’255.255.255.0’
NETWORK=’’
REMOTE_IPADDR=’’
STARTMODE=’auto’
...

Les fichiers config, dhcp et routes du répertoire /etc/sysconfig/network contiennent


divers paramètres réseau généraux. La page de manuel d’ifup, ainsi que le fichier suivant,
vous donneront des informations détaillées quant à la configuration réseau sur SUSE :
/usr/share/doc/packages/sysconfig/Network

Initialisation Le script InitV /etc/init.d/network est également sur SUSE le point d’entrée pour l’initiali-
sation des interfaces réseau. network démarre aussi bien l’interface loopback pour local-
host que toutes les interfaces réseau configurées.
Le script spécifique à SUSE /sbin/ifup est prévu pour l’activation d’interfaces individuel-
les. Même si le nom de ce script est identique sur Debian, Fedora, Red Hat, Ubuntu et SUSE,
le code sous-jacent est différent dans chaque cas ! De manière analogue à ifup, il existe éga-
lement des scripts ifstatus et ifdown permettant respectivement d’obtenir l’état d’une
interface réseau ou de la désactiver. Pour les interfaces configurées par DHCP, ifrenew permet
de relire les données DHCP.
Suivant le type d’interface, ifup appelle l’un des scripts additionnels ifup-ppp, ifup-wire-
less, etc. Diverses fonctions communes sont hébergées dans le fichier functions. Tous ces
fichiers se trouvent dans le répertoire /etc/sysconfig/network/scripts.
Si l’interface réseau doit faire appel à un serveur DHCP (BOOTPROTO=dhcp dans le fichier de
configuration), dhcpd se charge de transmettre et d’analyser les données DHCP.

26.4 Bases sur le Wi-Fi


Pour décrire les réseaux sans fil, on utilise des abréviations diverses. La plus courante en
français est sans conteste Wi-Fi (Wireless Fidelity). On trouve également l’acronyme WLAN
(Wireless Local Area Network), essentiellement dans les documents anglophones.
Linux Livre Page 513 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 513

Standards, glossaire
Cette section vise à présenter brièvement la terminologie Wi-Fi. Si vous vous êtes déjà fami-
liarisé avec les bases des réseaux sans fil, vous pouvez passer aux sections suivantes, qui
abordent de plus près les détails spécifiques à Linux concernant le Wi-Fi.
Standards Les standards Wi-Fi sont nombreux : ils sont définis par l’IEEE (Institute of Electrical and Elec-
tronics Engineers) et commencent tous par le nombre 802.11. La lettre qui vient compléter
cette référence indique la succession chronologique des nouvelles versions ou variantes du
standard. La liste qui suit énumère quelques-uns des standards Wi-Fi :
• 802.11. Le premier standard 802.11 définissait la fréquence d’émission à 2,4 GHz. Le
débit brut maximal n’était toutefois que de 2 Mbits/s. Ce standard n’a aujourd’hui plus
cours du fait de cette vitesse très limitée.
• 802.11a. Avec ce standard, la fréquence d’émission est définie à 5,2 GHz et le débit brut
peut atteindre 54 Mbits/s. Toutefois, il n’a été jusqu’à présent adopté qu’aux États-Unis.
En Europe, le standard 802.11a n’est autorisé qu’avec une puissance d’émission beau-
coup plus réduite qu’aux États-Unis (dans plusieurs pays, l’utilisation de matériel
802.11a est même totalement interdite). Il présente en outre l’inconvénient d’être incom-
patible avec les standards 802.11b et 802.11g, beaucoup plus répandus, ainsi que d’avoir
une portée limitée.
• 802.11b. Ce standard, défini depuis 1999, est jusqu’à maintenant le dénominateur com-
mun du monde Wi-Fi. Des millions de composants Wi-Fi sont basés sur ce standard ou
sont compatibles avec. Le matériel 802.11b émet à une fréquence de 2,4 GHz. Le débit
brut n’atteint toutefois que 11 MBits/s, ce qui suffit pour surfer sur le Web.
• 802.11g. Ce standard est le successeur du 802.11b et est compatible avec ce dernier. Le
matériel 802.11g est disponible depuis 2003. La fréquence d’émission est, comme pour le
802.11b, de 2,4 GHz, le débit brut est toutefois meilleur (54 MBits/s).
• 802.11i. Il s’agit d’une extension de 802.11a/b/g/h pour améliorer la sécurité de ces
standards. 802.11i définit la méthode de chiffrement et d’authentification WPA2.
• 802.11n. Successeur de 802.11a, b et g, le standard 802.11n améliore quelque peu la por-
tée et notablement le débit brut (qui atteint désormais 540 MBits/s). Ces deux améliora-
tions sont permises par l’utilisation simultanée de plus d’antennes, plus de récepteurs et
plus d’émetteurs (MIMO ou Multiple-in, Multiple-out). 802.11n est certes compatible
avec les variantes a, b et g, mais un seul élément Wi-Fi non compatible 802.11n peut
affecter la vitesse de l’ensemble du réseau.
Le matériel compatible 802.11n ou prévu pour l’être (pre-n, draft-n) existe depuis mi-
2006. La certification définitive du standard n’est toutefois prévue que pour l’automne
2008.
Brut/net Le débit brut (par exemple 54 MBits/s pour 802.11g) peut sembler très prometteur. Toute-
fois, si l’on tient compte de la surcharge importante liée au protocole, le débit net restant est
nettement plus faible et n’atteint pas la moitié de la valeur brute (même lorsqu’il ne s’agit de
faire communiquer que deux participants entre eux, que la liaison physique radio est bonne
et qu’aucun participant au réseau n’utilise un standard antérieur).
Linux Livre Page 514 Mardi, 23. septembre 2008 1:05 13

514 LINUX

Adaptateurs Tous les ordinateurs portables modernes intègrent un contrôleur Wi-Fi. Les portables plus
Wi-Fi
anciens ou les ordinateurs de bureau pourront au besoin voir leurs capacités étendues par le
biais de cartes PCMCIA, d’adaptateurs Wi-Fi USB ou de cartes PCI.
Ponts, points Les ponts, points d’accès et routeurs Wi-Fi sont des périphériques autonomes connectés au
d’accès et
routeurs sans réseau local ou à un modem ADSL par le biais d’un câble Ethernet :
fil
• Un pont sans fil connecte un périphérique LAN isolé à un réseau sans fil. Le pont assure
la même fonctionnalité qu’une carte Wi-Fi mais la connexion à l’ordinateur est
différente : elle est assurée par Ethernet plutôt que par PCI, PCMCIA ou USB.
• Un point d’accès (access point) représente la méthode la plus simple pour connecter plu-
sieurs clients sans fil. Un point d’accès est, comme un pont, connecté à un serveur ou à
un hub réseau par un câble Ethernet. Il émet plusieurs fois par seconde un signal (bea-
con) permettant aux autres périphériques Wi-Fi de déterminer la portée du point
d’accès. Contrairement au pont, le point d’accès prend en charge plusieurs modes Wi-Fi
et peut communiquer avec plusieurs clients sans fil à la fois (les différences entre pont et
point d’accès concernent donc avant tout le logiciel de pilotage plutôt que le matériel).
• Un routeur Wi-Fi connecte un réseau entier (LAN et Wi-Fi) à Internet. Le point de sortie
est, le plus souvent, un modem ADSL équipé d’une sortie Ethernet ou un serveur réseau
local. Il existe également des routeurs Wi-Fi intégrés à un modem ADSL : on décrit de
fait des périphériques de ce type comme des passerelles.
Le routeur est généralement constitué d’un point d’accès et d’un petit hub pour, au
maximum, quatre périphériques Ethernet. Le logiciel interne du routeur pilote l’accès à
Internet et la gestion du réseau local. Un routeur héberge en général des fonctionnalités
de traduction d’adresses (NAT), un serveur DHCP, un pare-feu élémentaire, etc. Ces
fonctionnalités sont décrites en détail au Chapitre 28.
Les ponts, points d’accès et routeurs Wi-Fi présentent deux avantages par rapport à la majo-
rité des cartes et adaptateurs Wi-Fi : tout d’abord, ils comprennent une ou même deux
antennes relativement grandes qui permettent une meilleure connectivité que les antennes
souvent trop petites des cartes d’extension Wi-Fi. Par ailleurs, il s’agit de périphériques
autonomes fonctionnant sans pilotes Linux (la connexion à un ordinateur sous Linux peut
donc être assurée par un câble Ethernet tout ce qu’il y a de plus ordinaire).
La configuration de périphériques Wi-Fi s’effectue en règle générale par le biais d’un navi-
gateur Internet. Pour ce faire, les périphériques mettent à disposition leurs propres pages de
configuration sur une adresse IP définie (par exemple http://192.168.0.1). Attention, toute-
fois, au fait qu’il existe des périphériques Wi-Fi ne pouvant être configurés que par le biais
d’un logiciel disponible uniquement sous Windows ! Cela concerne principalement les
ponts Wi-Fi : de tels périphériques sont naturellement peu utilisables avec Linux.

La terminologie utilisée ici n’est pas uniforme chez tous les fabricants. Vous pourrez trouver des explications
relativement exhaustives sur les concepts réseau du type pont, hub, routeur, passerelle, etc. sur Wikipedia
ainsi que sur le site suivant : http://whatis.techtarget.com/
Le site web suivant est également intéressant sur le sujet du Wi-Fi et non spécifique à Linux :
http://www.wi-fiplanet.com/
Linux Livre Page 515 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 515


Centrino Le nom de marque Centrino, déposé par Intel, décrit les ordinateurs portables dotés d’un
processeur mobile Intel, d’un chipset Intel ainsi que d’un module Wi-Fi Intel. Les premières
générations de Centrino, compatibles avec les standards Wi-Fi 802.11a, b et g, sont désor-
mais très bien prises en charge par Linux.

Paramètres de connexion Wi-Fi


Lorsque vous établissez une connexion entre deux périphériques Wi-Fi, divers paramètres
doivent être configurés. La liste qui suit explique rapidement le rôle de chacun d’eux.
Mode réseau Les composants Wi-Fi peuvent communiquer entre eux de différentes manières. Nous ne
décrivons ici brièvement que les trois modes principaux :
• Le mode infrastructure (également appelé mode géré) permet de communiquer avec
un point d’accès centralisé. Le réseau est donc structuré en forme d’étoile. La plupart du
temps, la connexion s’établit avec un point d’accès ou un routeur Wi-Fi, mais ce peut
également être un ordinateur spécialement configuré pour jouer ce rôle.
• Le périphérique Wi-Fi du point d’accès fonctionne en mode maître (le mode infrastruc-
ture ne vaut donc que pour les clients, tandis que le mode maître est utilisé au niveau
du serveur d’un réseau Wi-Fi).
• En mode ad-hoc, chaque périphérique Wi-Fi communique directement avec tous ceux
qui sont à sa portée.
SSID et ESSID Les abréviations SSID (Service Set Identification) et ESSID (Extended SSID) désignent tout
simplement une chaîne de caractères décrivant le nom d’un réseau Wi-Fi. Les périphériques
Wi-Fi ne peuvent communiquer entre eux que si leurs SSID se correspondent. Des SSID diffé-
rents permettent également de distinguer plusieurs réseaux Wi-Fi actifs dans la même zone.
Le nom du fabricant est fréquemment prédéfini en tant que chaîne de caractères SSID. Pour
cette raison, des périphériques issus du même fabricant peuvent souvent communiquer l’un
avec l’autre directement, tandis que des appareils d’origines différentes nécessiteront tout
d’abord de paramétrer une chaîne SSID commune.
De nombreuses cartes Wi-Fi prévoient une configuration automatique pour la chaîne SSID
(valeur any). Attention : pour la chaîne de caractères SSID, on différencie les majuscules et
les minuscules !
NWID Au sein d’un même réseau Wi-Fi (un unique SSID), il peut y avoir plusieurs cellules (cells)
différenciées par leurs identifiants NWID (Network ID). En pratique, ceci n’est plus que rare-
ment utilisé car de nombreux programmes de configuration renoncent tout simplement à
utiliser le paramètre NWID.
Parfois, au lieu de l’identifiant NWID, on parle de domaine, ce qui peut conduire à une certaine
confusion : l’identifiant NWID n’a rien à voir avec les noms de domaine des adresses IP.
Canal À l’intérieur des bandes de fréquence prévues par chacun des standards 802.11x, il existe
plusieurs canaux sur lesquels on peut émettre en parallèle. En mode infrastructure, les adap-
tateurs Wi-Fi identifient par eux-mêmes le canal utilisé par le point d’accès. Par conséquent,
Linux Livre Page 516 Mardi, 23. septembre 2008 1:05 13

516 LINUX

il ne devient nécessaire de configurer explicitement le canal qu’en cas d’interférences entre


plusieurs réseaux Wi-Fi.
Clé WEP/WPA Pour des raisons évidentes, il est nécessaire de sécuriser les réseaux Wi-Fi. Suivant le stan-
dard pris en charge par votre matériel Wi-Fi, vous aurez le choix entre les méthodes WEP,
WPA ou, idéalement, WPA2 (plus de détails sur ce sujet à la prochaine section). Vous devez
fournir la clé lors de la configuration de votre contrôleur Wi-Fi. Suivant le système employé,
vous devez fournir la clé sous forme de code hexadécimal ou sous forme de texte. Attention
au fait que de nombreux programmes de configuration nécessitent de faire précéder la clé
hexadécimale du code 0x !

Sécurité d’un réseau Wi-Fi


Il est fondamentalement possible de faire fonctionner un réseau Wi-Fi sans le moindre chif-
frement. Toutefois, n’importe qui situé à portée du réseau peut alors l’utiliser et écouter tou-
tes les communications qui y ont lieu ! Un fonctionnement non chiffré est donc à proscrire !
WEP Pour chiffrer le flux de données, les premières générations de réseaux Wi-Fi ont utilisé le
système WEP (Wired Equivalent Privacy). Les données étaient dans ce cadre chiffrées à l’aide
d’une clé à 40 ou 104 bits (on parle souvent de clés à 64 ou 128 bits, mais les 24 bits restants
ne servent pas au chiffrement à proprement parler).
La clé WEP est en règle générale fournie sous la forme d’un nombre hexadécimal (10 ou 26
chiffres suivant la taille de la clé). Comme la saisie d’un nombre à 26 chiffres est sujette à
erreur, de nombreux outils de configuration permettent de générer la clé à partir d’une
"phrase de passe" (c’est-à-dire un texte de votre choix, qui peut être constitué de plusieurs
mots). Toutefois, la génération de la clé dépend du fabricant du matériel. La même phrase
de passe peut donc aboutir à des clés différentes sur des matériels différents. En cas de
doute, il ne reste donc qu’une seule solution, saisir exactement la clé.
À la configuration WEP, vous pouvez saisir jusqu’à quatre clés. Dans les faits, une seule clé
est utilisée à la fois. La gestion de quatre clés présente néanmoins un avantage : lorsque
vous changez de réseau Wi-Fi, vous n’avez pas à saisir intégralement la nouvelle clé, mais
vous pouvez tout simplement changer de clé active.

Du fait de sérieuses lacunes de conception, WEP s’est révélé insuffisamment sûr. Même une clé sur 104 bits
peut être identifiée en un temps relativement court (au pire quelques heures mais bien souvent beaucoup
moins) par simple écoute du trafic réseau. Des programmes permettant de "craquer" les clés WEP sont à
disposition librement sur Internet. En d’autres termes, une protection WEP est mieux que rien, mais pas
de beaucoup.
Si votre matériel le permet, vous devriez utiliser WPA ou, mieux, WPA2 (voir plus bas). Si ce n’est pas possi-
ble, vous devez protéger votre réseau sans fil par d’autres mesures supplémentaires, idéalement par la mise
en place d’un VPN.

WPA, WPA2 À la suite de WEP, les méthodes de protection WPA (Wi-Fi Protected Access) ainsi que sa ver-
sion améliorée WPA2 ont vu le jour. La spécification exacte de WPA2 est inscrite dans le
standard 802.11i. La différence principale entre WPA et WPA2 réside dans l’algorithme de
chiffrement (RC4 pour WPA et AES pour WPA2).
Linux Livre Page 517 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 517

WPA a été conçu comme une solution de contournement jusqu’à la finalisation du standard
802.11i. Comme il existe toutefois du matériel Wi-Fi qui ne prend en charge que WPA et pas
encore WPA2, les deux variantes devraient rester en usage pendant encore un certain temps.
L’avantage essentiel de WPA réside dans le fait que la clé ne sert qu’à l’établissement de la
connexion. Une fois celle-ci établie, les clés sont régulièrement changées suivant un algo-
rithme sophistiqué. WPA et WPA2 peuvent, en l’état actuel des techniques, être considérés
comme sûrs tant que l’on utilise une phrase de passe suffisamment longue (et donc une clé
constituée de plusieurs mots et caractères).
Ce livre ne traite que la variante PSK (Pre-Shared Key) de WPA/WPA2 : tous les utilisateurs
du Wi-Fi se connectent au réseau à l’aide de la même clé. La version Managed Key, encore
plus sûre, attribue à chaque utilisateur sa propre clé (mais cela nécessite de gérer les clés sur
un serveur centralisé).

Attention au fait que vous devez configurer sur la plupart des routeurs et points d’accès Wi-Fi une méthode
de chiffrement. Il n’est donc pas possible qu’un ordinateur établisse une connexion avec WPA2 tandis
qu’un autre utiliserait WEP. Ainsi, le niveau de sécurité de vos périphériques les plus anciens détermine le
niveau de sécurité global de votre réseau.

Protection Indépendamment de la technique de chiffrement choisie, vous devriez également mettre en


de base
place une protection de base de votre réseau Wi-Fi :
• La configuration d’un point d’accès s’effectue normalement par un navigateur web.
L’accès web est protégé par un mot de passe que vous devez impérativement changer.
Vous devriez limiter autant que possible les possibilités de gestion distante de l’appareil
et surtout l’autoriser uniquement à travers une connexion par câble (et non sans fil).
• De nombreux points d’accès permettent de n’autoriser l’accès au réseau Wi-Fi que pour
des adresses MAC données. Une adresse MAC (Media Access Control) est un numéro
univoque identifiant le contrôleur Wi-Fi. Cette mesure de protection n’a toutefois
qu’une efficacité limitée, car un pirate peut travailler avec une fausse adresse MAC.
• Éteignez le point d’accès lorsque vous ne l’utilisez pas.
• Utilisez autant que possible des clés et mots de passe longs, qui ne peuvent être "craqués"
par des essais multiples.
Pare-feu Un pare-feu vous permet de restreindre le trafic Wi-Fi à certains protocoles, segments de
réseau, etc. Vous trouverez au Chapitre 29 des indications pour la sécurisation d’un client
Wi-Fi par le biais d’un pare-feu. Si votre point d’accès Wi-Fi est branché à un serveur Linux,
ce chapitre vous fournira également des astuces intéressantes.
VPN Une autre solution pour augmenter la sécurité consiste à considérer le réseau Wi-Fi comme
non sûr, malgré toutes les protections possibles. Pour communiquer de façon sécurisée,
vous devez chiffrer votre trafic réseau vous-même. La solution la plus populaire consiste à
utiliser un réseau privé virtuel (VPN).
Linux Livre Page 518 Mardi, 23. septembre 2008 1:05 13

518 LINUX

Prise en charge du Wi-Fi par Linux


Wireless-Tools Pour utiliser un contrôleur Wi-Fi sous Linux, on fait appel aux outils Wireless-Tools (qu’il
s’agisse d’un composant Wi-Fi intégré, d’une carte PCI ou PCMCIA ou encore d’un périphé-
rique USB externe). Les Wireless-Tools sont une collection de commandes relativement res-
treinte (iwconfig, iwstatus, etc.) permettant de configurer l’adaptateur Wi-Fi. La page web
ci-après présente quelques-unes de ces commandes plus en détail. Les outils Wireless-Tools
sont livrés avec toutes les distributions courantes.
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
Pilotes Les outils Wireless-Tools ne contiennent que des commandes de contrôle. Les pilotes maté-
matériels
riels se trouvent quant à eux dans les modules du noyau. Si, dans les éditions précédentes
de cet ouvrage, je me suis plaint de la mauvaise prise en charge du Wi-Fi, la situation a
entre-temps bien évolué : de nombreux contrôleurs Wi-Fi populaires pour les standards
802.11a, b et g sont bien pris en charge. Cela inclut en particulier les contrôleurs Intel PRO
Wireless 2100, 2200 et 2915, que vous pourrez trouver dans les portables Centrino. Le Wi-Fi
fonctionne de façon particulièrement confortable sur Ubuntu : de nombreux contrôleurs Wi-Fi
sont reconnus et configurés automatiquement dès l’installation.
Néanmoins, au niveau du noyau, le secteur du Wi-Fi demeure comme auparavant un certain
chantier : tous les pilotes Wi-Fi possèdent, depuis le noyau 2.6.22, une nouvelle base commune
(mac80211, lui-même basé sur la pile WLAN!Stack de Devicescape). Parallèlement doit être
introduite une interface de communication avec les outils réseau (cfg80211). Enfin, de nou-
veaux pilotes ou des améliorations des pilotes existants sont livrés avec chaque nouvelle
version du noyau. Tout ceci conduit régulièrement à des incompatibilités et autres problèmes.
Les articles suivants donnent une vision assez synthétique de la situation courant 2007 :
http://lwn.net/Articles/219102/ ; http://www.linux-watch.com/news/NS9956020927.html

Un certain nombre de contrôleurs Wi-Fi ne sont pas encore pris en charge par Linux ou exigent une installa-
tion manuelle et complexe de pilotes non encore intégrés officiellement au noyau. Il est encore trop tôt pour
le moment pour établir un pronostic sur la prise en charge des contrôleurs 802.11n ; d’expérience, il faut au
minimum un an pour que le pilote d’un nouveau contrôleur Wi-Fi fasse son apparition au sein d’une distribu-
tion. Ne vous attendez donc pas à ce que votre portable dernière génération flambant neuf fonctionne immé-
diatement sous Linux.
Avant l’achat d’un nouveau portable, renseignez-vous impérativement pour savoir si le contrôleur qu’il intè-
gre est pris en charge. C’est malheureusement plus simple à dire qu’à faire : courant 2007, je n’ai pu trou-
ver aucune référence à jour sur Internet indiquant quels contrôleurs Wi-Fi sont pris en charge sous Linux.
Les deux sites suivants, sur lesquels vous pourrez trouver des retours d’expérience sur la majorité des por-
tables disponibles sur le marché, se révèlent déjà très utiles :
http://www.linux-on-laptops.com/ ; http://tuxmobil.org/

Problèmes de La plupart des contrôleurs Wi-Fi sont programmables. Pour qu’ils fonctionnent correcte-
firmware
ment, un firmware (programme interne au contrôleur) doit être transmis au contrôleur lors
de son initialisation. Le firmware provient du fabricant et peut être librement distribué sous
réserve de respecter les termes de licence. C’est en général le module noyau ou le système
Linux Livre Page 519 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 519

udev qui se charge de la transmission du code vers le contrôleur. Le code se trouve dans des
fichiers binaires (blobs), généralement dans le répertoire /lib/firmware.
Toutefois, les fabricants de puces ne mettent à disposition le firmware que sous forme
binaire et non sous forme de code source. Cette situation ainsi que les termes de licence
jusqu’à présent complexes et restrictifs des fabricants n’étaient pas compatibles avec les
idéaux open-source de nombreux développeurs. Pour cette raison, le firmware est absent de
nombreuses distributions Linux. Pour utiliser votre contrôleur Wi-Fi, vous devez rechercher
et installer le paquetage correspondant au firmware. C’est un peu pesant, mais guère
compliqué : pour la plupart des distributions populaires, il existe des sources spéciales pour
de tels paquetages (par exemple livnia pour Fedora). SUSE et Ubuntu comptent parmi les
exceptions positives : sur Ubuntu, le paquetage restricted contient les firmwares de très
nombreux composants matériels tandis que, sur SUSE, ce sont les paquetages Non-OSS
(pour lesquels il existe une source propre).

Personnellement, je ne vois pas le problème des licences de firmwares de façon aussi dramatique : autrefois, le
contrôleur Wi-Fi aurait compris un EPROM et personne ne se serait plaint de l’absence de code open-source. La
solution actuelle est plus souple et moins coûteuse (car elle permet des mises à jour). Naturellement, il serait
souhaitable que le code source soit disponible pour les programmes exécutés dans le contrôleur, mais cette
espérance n’est pas réaliste. Tant que les fabricants de contrôleurs Wi-Fi permettent de redistribuer leur firm-
ware, je ne vois pas d’argument qui s’oppose à la politique d’Ubuntu.
L’article qui suit offre d’ailleurs une perspective intéressante sur les discussions des développeurs Debian sur
la gestion des firmwares : http://lwn.net/Articles/195820/

Problèmes Comme si les problèmes de firmware déjà évoqués n’étaient pas suffisants, de nombreux
avec la GPL
pilotes Wi-Fi sont totalement incompatibles avec la GPL. Cela concerne en particulier le
pilote MadWi-Fi pour de nombreux contrôleurs Atheros. Ces pilotes contiennent un bloc de
code binaire (Hardware Abstraction Layer ou HAL) qui est toutefois directement exécuté
depuis le noyau (il ne s’agit donc pas du firmware exécuté sur le contrôleur). Leur statut est
comparable à celui des pilotes des fabricants pour les cartes ATI et NVidia.
Ubuntu est distribuée avec ces pilotes mais, sur la plupart des autres distributions, vous
devrez les installer vous-même depuis des sources externes.
Utiliser des Lorsqu’il n’existe aucun pilote Linux, pourquoi ne pas utiliser le pilote Windows ? Ce qui
pilotes
Windows peut sembler totalement impossible au premier abord n’est finalement pas si compliqué à
mettre en pratique : l’interface d’intégration des pilotes Wi-Fi sous Windows est relative-
ment compacte. Plusieurs projets commerciaux et open-source ont implémenté cette inter-
face (NDIS) sous Linux. Vous pourrez trouver des informations sur l’utilisation de pilotes
binaires Windows sous Linux sur les pages suivantes :
http://www.linuxant.com/driverloader/wlan/ (commercial)
http://ndiswrapper.sourceforge.net/ (open-source)
Naturellement, il est contraire à l’esprit open-source d’utiliser des pilotes binaires, dont le
code sous-jacent n’est pas contrôlé par la communauté open-source. Cela vaut toutefois
Linux Livre Page 520 Mardi, 23. septembre 2008 1:05 13

520 LINUX

également pour les pilotes binaires de nombreuses cartes graphiques, auxquelles bon nom-
bre d’utilisateurs Linux se sont habitués. Un autre inconvénient est le fait que les pilotes
Windows ne sont disponibles que pour les systèmes compatibles Intel/AMD.

26.5 Activer manuellement le contrôleur Wi-Fi


Cette section décrit l’initialisation manuelle d’un contrôleur Wi-Fi. La procédure est compa-
rable à celle employée pour un contrôleur réseau usuel (voir un peu plus haut dans ce cha-
pitre). L’objectif principal de cette section est de vous donner un aperçu de ce qui se passe en
coulisse des outils de configuration modernes. Parallèlement, elle doit également vous ser-
vir d’aide lorsque vous rencontrez des difficultés à configurer et à activer automatiquement
votre contrôleur Wi-Fi.
Reconnais- La première étape consiste à charger le module approprié pour votre contrôleur Wi-Fi. Idéa-
sance du
matériel lement, ce module est chargé automatiquement lorsque vous amorcez votre ordinateur. La
commande iwconfig vous permet de constater si la reconnaissance automatique a réussi.
Elle vous fournit des informations sur l’ensemble des adaptateurs Wi-Fi disponibles. Les
lignes d’exemple qui suivent proviennent d’un portable Centrino déjà peu récent utilisant
un contrôleur Intel Pro Wireless 2100. Le contrôleur a été reconnu automatiquement.
root# iwconfig
lo no wireless extensions.

irda0 no wireless extensions.

eth0 unassociated ESSID:off/any Nickname:"ipw2100"


Mode:Managed Channel=0 Access Point: Not-Associated
Bit Rate=0 kb/s Tx-Power:16 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

eth1 no wireless extensions.

Si iwconfig ne renvoie aucune information, vous devrez charger vous-même le module


noyau nécessaire à l’aide de la commande modprobe. La commande dmesg ou un coup d’œil
à /var/log/messages devraient vous indiquer si le chargement du module s’est bien
déroulé. Pour le module ipw2100, les messages du noyau ont l’allure suivante :
root# dmesg -c | less
...
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, git-1.2.2
ipw2100: Copyright(c) 2003-2006 Intel Corporation
...
ipw2100: Detected Intel PRO/Wireless 2100 Network Connection
...
Linux Livre Page 521 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 521

Si vous ne savez pas de quel contrôleur Wi-Fi vous disposez, exécutez la commande lspci
(ou lspcmcia s’il s’agit d’une carte PCMCIA) :
root# lspci
...
02:02.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini
PCI Adapter (rev 04)

Il est souvent plus difficile d’identifier le module noyau correspondant à votre contrôleur. La
meilleure solution consiste ici à effectuer une recherche sur Internet (par exemple sur http://
groups.google.com). Suivant le contrôleur, il est également possible que vous deviez préalable-
ment installer le module noyau nécessaire et/ou le firmware (voir la section précédente). Cela
dépend non pas seulement du matériel mais également de la distribution que vous utilisez.

Pour les installations aussi bien que pour vos recherches Internet, vous aurez besoin d’une connexion
réseau. Il est donc recommandé de réaliser la mise en service de votre contrôleur Wi-Fi lorsque vous pouvez
connecter votre ordinateur par un câble réseau ou, a minima, par un modem téléphonique.

Nom De nombreux modules noyau Wi-Fi désignent l’interface Wi-Fi non pas par le nom ethn,
d’interface
mais par wlann ou athn (par exemple le pilote MadWifi pour le contrôleur Atheros). Cela
limite le risque de désordre dans la numérotation des interfaces réseau au branchement
d’un adaptateur Wi-Fi.
Cette nomenclature différente n’est toutefois pas très éloignée sur le fond : dans toutes les
commandes qui suivent, il vous suffit de remplacer eth0 par wlan0 ou ath0.
Configuration Afin que la carte Wi-Fi puisse communiquer avec le point d’accès, vous devrez en général
Wi-Fi
configurer trois paramètres : le mode, l’identifiant SSID et la clé. Vous pouvez configurer le
mode et l’identifiant SSID à l’aide de la commande iwconfig :
root# iwconfig eth0 mode managed
root# iwconfig eth0 essid wlan-sol

La suite des opérations dépend de la sécurisation du réseau Wi-Fi. Les choses sont simples
(mais pas particulièrement sûres) avec WEP : fournissez la clé hexadécimale à iwconfig.
root# iwconfig eth0 key c8192b13adf4ee58309953eebe

Si tout se passe bien, dmesg -c renvoie quelques nouveaux messages du noyau, qui
devraient avoir une allure proche de ceci :
root# dmesg -c
ieee80211_crypt: registered algorithm ’WEP’
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
WPA Les choses sont légèrement plus compliquées lorsque vous utilisez WPA ou WPA2. Dans ce
cas, le programme wpa_supplicant (issu du paquetage éponyme) est responsable de l’ini-
tialisation de la connexion et des échanges ultérieurs des clés en mutation permanente.
Une fois celui-ci installé, vous devez mettre en place un fichier de configuration, que vous
pouvez par exemple nommer /etc/wpa_supplicant.conf.
Linux Livre Page 522 Mardi, 23. septembre 2008 1:05 13

522 LINUX

Le fichier contient tout d’abord quelques paramètres globaux, puis des paramètres spécifi-
ques pour divers réseaux Wi-Fi. L’exemple suivant vous montre une variante minimaliste,
suffisante pour la connexion à un routeur ou à un point d’accès Wi-Fi avec chiffrement per-
sonnel WPA ou WPA2. Les deux paramètres décisifs ici sont ssid (identification du réseau)
et psk (contenant la clé, chiffrée pour des raisons de sécurité, mais que l’on peut également
renseigner sous forme de texte en clair, entre guillemets).
# /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant

network={
ssid="sol"
psk=00a38f42e6681596e1a5a4c5ede9a15250fb2a01c21028c6d490bb3458b8ea00
}
network={
ssid="wlan-sol2"
psk=053633deb59038da9e9168e015fef97d3d54ae3794d4a12d31ee75a830cccec2
}

wpa_passphrase peut vous être utile pour chiffrer votre mot de passe WPA. Vous pouvez
copier directement le résultat de cette commande dans wpa_supplicant.conf et y supprimer
la ligne contenant votre mot de passe en clair :
root# wpa_passphrase sol ’Mon mot de passe très secret’
network={
ssid="sol"
#psk="Mon mot de passe très secret"
psk=18555b0f9e0fc28cd0aa9ee19575a9790de1f46050b5bb932682febf824699c4
}

Vous pouvez maintenant lancer wpa_supplicant. La commande s’exécute jusqu’à ce que vous
l’interrompiez par la combinaison de touches Ctrl+C. Elle se charge d’établir la connexion
Wi-Fi et, par la suite, de renouveler régulièrement la clé sécurisant la connexion. En d’autres
termes, ce programme doit s’exécuter tant que vous utilisez la connexion Wi-Fi. Vous devez
donc à partir de maintenant travailler dans une autre console.
Quelques remarques complémentaires quant aux options de cette commande : -i renseigne
l’interface réseau, -c le fichier de configuration (dont vous pouvez librement choisir le
nom). Avec -D, vous indiquez le pilote Wi-Fi à utiliser. Commencez par essayer wext (il s’agit
d’une interface Wi-Fi générique prise en charge par de nombreux pilotes). Si cela ne fonc-
tionne pas, vous pouvez alors essayer d’indiquer explicitement votre pilote, par exemple -D
madwifi. man wpa_supplicant vous renvoie une liste de tous les pilotes pris en charge.
root# wpa_supplicant -i eth0 -D wext -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:b5:25:6e (SSID=’sol’ freq=0 MHz)
Associated with 00:13:46:b5:25:6e
WPA: Key negotiation completed with 00:13:46:b5:25:6e [PTK=TKIP GTK=TKIP]
CTRL-EVENT-CONNECTED - Connection to 00:13:46:b5:25:6e completed (auth) [id=0
id_str=]
...

Vous obtiendrez une documentation exhaustive dans les pages de manuel de


wpa_supplicant et wpa_supplicant.conf, dans le fichier README livré avec le paquetage (suivant
Linux Livre Page 523 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 523

les distributions, il peut par exemple se trouver dans /usr/share/doc/wpasupplicant/) ainsi


que sur le site web suivant : http://hostap.epitest.fi/wpa_supplicant/
La page suivante, spécifique à Ubuntu, est également une source intéressante :
http://wiki.ubuntuusers.de/WLAN/wpa_supplicant
Configuration Vous n’avez maintenant plus qu’à connecter votre interface Wi-Fi à votre réseau. Pour cela, fai-
du réseau
tes appel comme pour une interface filaire à la commande ifconfig. Lorsque l’ordinateur doit
être inséré au réseau avec l’adresse IP 192.168.0.12, la commande a donc l’allure suivante :
root# ifconfig eth0 up 192.168.0.12

La commande ping vous permet de tester si la connexion vers le routeur ou le point d’accès
fonctionne (vous devez pour cela connaître l’adresse IP de l’appareil). Pour pouvoir égale-
ment accéder à Internet, vous devrez paramétrer l’adresse de la passerelle et d’un serveur
de noms, comme nous l’avons décrit à la section correspondante de configuration manuelle
d’un réseau Ethernet (voir plus haut).

Lors de mes tests, j’ai rencontré des problèmes avec un routeur ADSL : celui-ci répondait correctement aux
requêtes DHCP de clients Ethernet, ainsi que des clients Wi-Fi non chiffrés ou chiffrés par WEP. Toutefois, il
ignorait les requêtes DHCP des clients Wi-Fi chiffrés par WPA.
Sur Internet, je n’ai trouvé que des références isolées à des problèmes WPA/DHCP comparables, sans pour
autant que ces références ne me permettent d’identifier des points communs avec le matériel et les logiciels
que j’utilisais. DHCP a par ailleurs fonctionné sans le moindre problème avec un autre routeur Wi-Fi : Linux
n’était donc (probablement) pas en cause.
En résumé : si WPA et DHCP ne parviennent pas à fonctionner ensemble, ne doutez pas de vous mais confi-
gurez votre client en adresse IP statique.

Récupérer le La commande iwconfig renvoie une synthèse des paramètres principaux de toutes les inter-
statut Wi-Fi
faces Wi-Fi :
root# iwconfig eth0
eth0 IEEE 802.11b ESSID:"wlan-sol" Nickname:"ipw2100"
Mode:Managed Frequency:2.457 GHz Access Point: 00:09:5B:52:CC:28
Bit Rate=11 Mb/s Tx-Power:16 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:8C19-2B13-ADF4-EE58-3099-53EE-BE Security mode:open
Power Management:off
Link Quality=100/100 Signal level=-42 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Le pseudo-fichier /proc/net/wireless fournit également une synthèse de la qualité cou-


rante de la connexion Wi-Fi :
root# cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 20
eth0: 0004 100. 212. 0. 0 0 0 0 0 0
Linux Livre Page 524 Mardi, 23. septembre 2008 1:05 13

524 LINUX

La commande iwlist est également parfois utile : elle fournit les choix disponibles pour dif-
férents paramètres et indique également l’option active parmi celles disponibles. Les deux
exemples suivants illustrent son utilisation pour le canal et pour le réseau Wi-Fi actifs parmi
ceux disponibles :
root# iwlist eth0 channel
eth0 14 channels in total; available frequencies:
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
...
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Channel=10

root# iwlist eth0 scan


eth0 Scan completed :
Cell 01 - Address: 00:13:46:B5:25:6E
ESSID:"sol"
Protocol:IEEE 802.11bg
Mode:Master
Channel:6
Encryption key:on
...
Cell 02 - Address: 00:16:B6:9D:FF:4B
ESSID:"wlan-sol2"
...

26.6 Fichiers de configuration Wi-Fi


Pour configurer votre client Wi-Fi, vous disposez en général des mêmes outils que pour la
configuration d’un client Ethernet (voir un peu plus haut dans ce chapitre). Une alternative
est le gestionnaire de réseaux NetworkManager, particulièrement adapté si vous utilisez
fréquemment votre connexion Wi-Fi (voir un peu plus loin dans ce chapitre).
Dans cette section, j’aborderai brièvement les principaux fichiers de configuration spécifi-
ques au Wi-Fi. Je pars ici du principe que vous connaissez les fichiers de configuration
Ethernet de votre distribution.

En matière de Wi-Fi, il existe de grosses différences d’une distribution à l’autre ! De nombreux contrôleurs
Wi-Fi fonctionnant immédiatement sur Ubuntu ne sont même pas reconnus sur Fedora. SUSE se situe quel-
que part entre les deux. Naturellement, il est possible de faire fonctionner sur toute distribution un contrô-
leur Wi-Fi géré par une distribution en particulier ; la question est seulement de savoir combien de temps
vous êtes prêt à y passer...

Debian, La configuration centrale s’effectue, comme pour les interfaces réseau filaire, dans le fichier
Ubuntu
/etc/network/interfaces. Deux options supplémentaires permettent de saisir la chaîne
ESSID et la clé WEP.
Linux Livre Page 525 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 525

# /etc/network/interfaces
...
# Interface Wifi avec WEP
auto eth2
iface eth2 inet dhcp
wireless-essid sol
wireless-key xxxxxxxx

network-admin n’est pour le moment pas en mesure d’établir des connexions Wi-Fi chiffrées
par WPA. Préférez-lui donc autant que possible le gestionnaire NetworkManager (voir un
peu plus loin). Dans le cas contraire, vous devrez plonger les mains dans le cambouis : com-
mencez par créer un fichier /etc/wpa_supplicant.conf (comme mentionné précédemment)
puis remplacez le mot-clé wireless par wpa :
# /etc/network/interfaces
...
# Interface Wifi avec WPA
auto eth2
iface eth2 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf

Les versions anciennes de Debian et d’Ubuntu ne connaissent pas le mot-clé wpa. Vous pou-
vez alors vous aider des termes pre-up et post-down. Ces mots-clés indiquent quelles com-
mandes doivent être exécutées avant l’établissement et après la fermeture de la connexion.
L’instruction pre-up apparaît ici sur plusieurs lignes pour des raisons de lisibilité (il a donc
fallu la couper par un caractère \) :
# /etc/network/interfaces
...
# Interface Wifi avec WPA
auto eth2
iface eth2 inet dhcp
pre-up /sbin/wpa_supplicant -d wext -i eth2 \
-c /etc/wpa_supplicant.conf -Bw; sleep 2;
post-down killall -q wpa_supplicant

Red Hat, Sur Red Hat et Fedora, les interfaces Wi-Fi sont traitées comme des interfaces LAN. Les
Fedora
lignes qui suivent présentent un fichier de configuration typique :
# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Wireless
HWADDR=00:0c:f1:58:f9:93
IPADDR=192.168.1.16
GATEWAY=192.168.1.254
MODE=Managed
...

La ou les clés WEP sont enregistrées dans un fichier propre keys-interface :


# /etc/sysconfig/network-scripts/keys-eth1
KEY=8C192B13ADF4EE58309953EEBE
Linux Livre Page 526 Mardi, 23. septembre 2008 1:05 13

526 LINUX

Dans la dernière version testée (Fedora 7), system-config-network ne prenait pas encore en
charge WPA. Pour utiliser WPA, vous devez soit configurer manuellement wpa_supplicant,
soit faire appel au NetworkManager.
SUSE Les versions actuelles de SUSE prennent en charge deux variantes très différentes de confi-
guration Wi-Fi : la configuration classique (que nous présentons ici) par Yast ainsi que la
configuration dynamique à l’aide du NetworkManager (voir la section suivante). Vous pou-
vez choisir la variante à utiliser dans la première boîte de dialogue du module YaST Péri-
phériques réseau > Carte réseau. La configuration est enregistrée dans la variable
NETWORKMANAGER dans le fichier /etc/sysconfig/network/config.
Si vous avez opté pour la variante classique, chaque interface Wi-Fi possède son propre
fichier de configuration dans /etc/sysconfig/network. Les lignes qui suivent (fortement
élaguées) visent à montrer la structure d’un tel fichier pour une connexion Wi-Fi chiffrée par
WPA.
# Exemple pour /etc/sysconfig/network/ifcfg-eth-pcmcia
# /etc/sysconfig/network/ifcfg-wlan-bus-pci-0000:05:04.1
BOOTPROTO=’dhcp’
STARTMODE=’auto’
WIRELESS_AUTH_MODE=’psk’
WIRELESS_BITRATE=’auto’
WIRELESS_ESSID=’wlan-sol2’
WIRELESS_MODE=’Managed’
WIRELESS_POWER=’yes’
WIRELESS_WPA_PSK=’Jag aelskar dig, Heidi!’
...

26.7 NetworkManager
Les outils classiques de configuration réseau sont bien souvent inadaptés au quotidien des
utilisateurs de portables : lorsque l’on doit, plusieurs fois par jour, changer d’emplacement
avec son ordinateur et à chaque fois configurer une nouvelle connexion au réseau sans fil
local, l’énervement n’est pas loin.
C’est précisément pour des cas comme celui-ci que le NetworkManager a été développé.
Une appliquette montre, dans le tableau de bord KDE ou Gnome, l’état du réseau. Un menu
vous permet de choisir parmi les réseaux sans fil ou filaires actuellement disponibles. Lors-
que vous utilisez pour la première fois un réseau sans fil, le NetworkManager vous
demande le mot de passe ; il reconnaît lui-même la technologie de chiffrement employée
(WEP, WPA, WPA2). Si le réseau est à nouveau utilisé ultérieurement, les données déjà connues
sont réutilisées automatiquement.
http://www.gnome.org/projects/NetworkManager
http://live.gnome.org/DarrenAlbers/NetworkManagerFAQ
Problèmes, Si vous pensez toutefois que le NetworkManager soit la solution à tous les problèmes de Wi-Fi,
inconvénients
je me dois malheureusement de vous décevoir :
• Le NetworkManager ne peut être utilisé que sur un réseau géré par DHCP : il n’est pas
possible de configurer les paramètres de façon statique.
Linux Livre Page 527 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 527

• Le NetworkManager est inadapté pour configurer plusieurs interfaces LAN (comme


c’est le cas, par exemple, sur un serveur).
• Courant 2007, le NetworkManager rencontrait encore des problèmes de compatibilité
avec certains contrôleurs Wi-Fi. Il fonctionne bien avec, entre autres, les contrôleurs
Intel 2100, 2200 et 2915 ainsi qu’avec le pilote MadWifi. La page suivante vous donnera
plus de détails sur ce sujet : http://live.gnome.org/NetworkManagerHardware
• Du fait que le NetworkManager est piloté par une interface graphique, vous ne pouvez
établir une connexion réseau qu’après avoir ouvert une session. Pour de nombreuses
fonctionnalités, il serait souhaitable de disposer d’une connexion réseau dès l’amorçage
de l’ordinateur.
Il existe par ailleurs une complication supplémentaire : le NetworkManager ne peut gérer
que les interfaces non utilisées. En d’autres termes, l’utilisation simultanée d’outils de confi-
guration classiques avec le NetworkManager conduit à des conflits. Fin 2006, OpenSUSE
10.2 a été la première distribution à en tirer des conséquences et à demander à la configuration
réseau quel outil (parmi YaST ou le NetworkManager) utiliser.
Démarrage Le NetworkManager est, sur la plupart des distributions, partagé entre plusieurs paquets :
network-manager contient le programme NetworkManager à proprement parler ainsi que Net-
workManagerDispatcher, qui effectuent tout le travail en tâche de fond. Vérifiez bien que ces
services sont effectivement lancés par le système Init-V. Sur certaines distributions (par
exemple Fedora), ce n’est pas le cas par défaut.
Les interfaces graphiques pour Gnome et KDE se trouvent dans les paquetages network-
manager-gnome et knetworkmanager.
Avant de lancer le NetworkManager, vérifiez que les interfaces réseau ne sont pas gérées
par le programme de configuration de votre distribution. Effacez-y toute interface
existante ! Sur Debian et Ubuntu, vous pouvez aussi, tout simplement, effacer les lignes cor-
respondantes dans le fichier /etc/network/interfaces (faites-en toutefois éventuellement
une copie de sauvegarde).
Les interfaces réseau devraient maintenant être inutilisées, ce dont vous pouvez vous convain-
cre à l’aide de la commande ifconfig. Au besoin, désactivez vous-même les interfaces :
root# ifconfig eth0 down
root# ifconfig eth1 down

Pour lancer le NetworkManager, exécutez l’une des deux commandes suivantes selon votre
environnement de bureau. Le programme (Applet) apparaît alors sous la forme d’une icône
dans le tableau de bord. Au besoin, les services NetworkManager requis sont lancés automati-
quement. Par la suite, Gnome et KDE se chargeront de lancer automatiquement l’appliquette.
utilisateur$ nm-applet & Gnome
utilisateur$ knetworkmanager & KDE
Un clic sur l’appliquette vous montre tous les réseaux à portée desquels vous vous trouvez,
ainsi que leur nom. Une fois que vous avez choisi un réseau, apparaît une boîte de dialogue
pour saisir votre mot de passe. Pour vous éviter d’avoir à saisir systématiquement le mot de
Linux Livre Page 528 Mardi, 23. septembre 2008 1:05 13

528 LINUX

passe, le NetworkManager enregistre ce dernier dans la base de données centrale de Gnome ou


KDE (dont vous devez fournir le mot de passe maître à la première tentative d’utilisation).

26.8 Zeroconf et Avahi


Zeroconf Jusqu’à présent, je suis parti du principe que la configuration réseau de votre ordinateur
était effectuée soit par vous-même, soit par le biais d’un serveur DHCP (voir Chapitre 28). Il
existe toutefois une troisième voie : la configuration automatique par Zeroconf.
Dans ce cadre, tous les ordinateurs présents sur le réseau partagent leurs informations de
connexion. Un nouvel ordinateur ou périphérique connecté au réseau peut donc se configu-
rer automatiquement à l’aide de ces informations, de manière à pouvoir communiquer sans
conflit avec les autres périphériques. Les ordinateurs configurés par ce biais utilisent des
adresses IP de la plage 169.254.*.* ainsi que des noms d’hôtes se terminant par .local.

Les communications Zeroconf interviennent sur le port UDP 5454. Pour que Zeroconf fonctionne, ce port ne
doit donc pas être bloqué par un pare-feu !
Zeroconf et DHCP ne sont pas mutuellement exclusifs : lorsque les ordinateurs Zeroconf obtiennent leurs
adresses IP par DHCP, Zeroconf ne modifie pas les valeurs de celles-ci. Cela devient toutefois problématique
lorsque certaines adresses IP sont attribuées par DHCP et d’autres par Zeroconf : les ordinateurs se trouvent
alors sur deux segments de réseau distincts qui ne peuvent communiquer entre eux.

Un explorateur compatible Zeroconf montre tous les ordinateurs Zeroconf visibles sur le
réseau ainsi que leurs ressources (par exemple les partages réseau, serveurs HTTP ou FTP).
Ainsi, il est possible d’intégrer plusieurs ordinateurs à un réseau et de partager des données,
sans pour autant exiger un gros travail de configuration.
Il reste à voir si le concept de Zeroconf peut s’imposer : le développement des routeurs
(ADSL) intégrant des serveurs DHCP facilite l’intégration d’ordinateurs Linux au sein d’un
réseau, même sans faire appel à Zeroconf. Pour les réseaux statiques, dont la structure ne
change que rarement, Zeroconf présente peu d’intérêt. Même pour les réseaux hétérogènes
comprenant des ordinateurs sous Windows, Zeroconf n’est pas d’une grande assistance car
il est peu usité sous Windows.
Avahi Zeroconf fut initialement implémenté par Apple sous le nom Rendezvous. Ce projet, ulté-
rieurement baptisé Bonjour, est également disponible pour Windows. Cette implémenta-
tion, bien que disponible sous forme de code open-source, n’est toutefois pas compatible
avec la licence GPL. Pour cette raison, un projet Zeroconf (indépendant de Bonjour) a vu le
jour pour Linux, sous le nom d’Avahi. Sa licence de distribution est la LGPL.
http://avahi.org
Le service avahi-daemon est responsable des communications entre ordinateurs Avahi. La
quasi-totalité des grandes distributions propose un paquetage Avahi dans lequel vous trou-
verez ce programme ainsi que divers outils et bibliothèques. Il n’est toutefois que rarement
installé et activé.
Linux Livre Page 529 Mardi, 23. septembre 2008 1:05 13

CONFIGURER L’ACCÈS RÉSEAU (RÉSEAU LOCAL, WI-FI) 529

Il existe également des lacunes au niveau de l’intégration avec les outils de configuration
réseau. L’outil Gnome network-admin est toutefois une exception positive : vous pouvez y
activer le lancement automatique du démon Avahi par le biais du système Init-V.
À l’heure actuelle, mes tests ont montré que l’utilisation d’Avahi n’est pas aussi simple
qu’on pourrait s’y attendre. Ces problèmes ne sont pas forcément liés à la technique en soi
ou à l’implémentation d’Avahi. L’adoption de Zeroconf est encore très limitée et, par
ailleurs, il existe un certain scepticisme quant à la sûreté de l’outil. Aucune distribution n’a
donc pour le moment franchi le pas de mettre en place Avahi dès l’installation d’un
ordinateur : cela contribuerait pourtant à donner ses lettres de noblesse à cet outil.
Linux Livre Page 530 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 531 Mardi, 23. septembre 2008 1:05 13

Accès à Internet
27
Dans les chapitres précédents, nous avons supposé que l’ordinateur était connecté à un
réseau local et accédait de cette manière à Internet. La situation actuelle en France y corres-
pond souvent. Du fait de la prépondérance des "box" sur le marché de l’ADSL, peu de per-
sonnes se soucient aujourd’hui de l’accès à Internet : l’ordinateur est souvent branché via
Ethernet à la box et celle-ci se charge de tout. Si vous utilisez ce type de "box" ou un routeur
ADSL, ce chapitre ne vous concerne pas. La configuration est gérée par le routeur et est
équivalente à la connexion d’un ordinateur au réseau local. Les informations pertinentes à
ce sujet se trouvent au Chapitre 26.
Cependant, il existe d’autres méthodes d’accès à Internet :
• Modem analogique. Dans certaines zones non desservies par l’ADSL ou pour des rai-
sons d’économies, le modem analogique est une alternative souvent peu coûteuse bien
que lente. Toutes les distributions Linux fournissent des outils de configuration pour les
modems. Les modems plus anciens connectés à une interface série présentent peu de
problèmes. Les modems internes (sur un ordinateur portable), les cartes PCI modem et
les modems USB ont souvent besoin de pilotes qui manquent fréquemment sous Linux.
• RNIS. Le RNIS est largement passé de mode en France. De plus, peu de distributions
fournissent les outils de configuration. Pour de nombreuses cartes, il faut télécharger les
pilotes du fabricant (ce qui est difficile sans accès à Internet). Nous n’en parlerons que
brièvement dans cette section.
• ADSL. Si vous disposez d’un routeur ADSL (ce que sont la plupart des "box" des four-
nisseurs d’accès), il suffit de brancher votre ordinateur au routeur. Techniquement, cette
configuration est équivalente à un réseau local. La configuration est un jeu d’enfant
grâce à DHCP et tout peut être prêt en moins d’une minute.
En revanche, si vous utilisez un modem ADSL non routeur, la configuration est générale-
ment plus compliquée et dépend de nombreux facteurs comme votre fournisseur d’accès
et l’interface du modem. C’est de cette situation que nous traiterons dans ce chapitre.

27.1 Outils de configuration


Configuration d’un modem analogique
Outils de Selon la distribution et votre environnement de bureau, les diverses interfaces utilisateur
configuration
suivantes sont à votre disposition pour configurer votre modem. Vous pouvez aussi lancer
la connexion avec l’outil network-admin. Cependant, cet outil est peu pratique au quotidien.
Le problème principal est que cet outil ne renvoie aucune information sur l’état de la connexion
et sur les différents problèmes rencontrés. Pour les utilisateurs de Gnome, gnome-ppp est le
meilleur choix.
Linux Livre Page 532 Mardi, 23. septembre 2008 1:05 13

532 LINUX

Gnome gnome-ppp
KDE kppp (voir Figure 27.1)
Debian, Ubuntu outils Gnome/KDE
Red Hat, Fedora system-config-network = neat
SUSE module YaST Périphériques réseau > Modem

L’aspect de ces différents programmes varie, mais il se ramène toujours aux quatre informa-
tions principales que sont le numéro de téléphone de votre fournisseur d’accès, votre identi-
fiant et votre mot de passe chez ce fournisseur ainsi que l’interface physique de votre modem.
Certains programmes séparent la configuration matérielle de la configuration du fournisseur
d’accès.
Les problèmes de configuration ne sont généralement liés qu’au matériel. Il existe différents
types de modems analogiques :
• Modems externes. Les modems externes sont des périphériques à relier à l’interface
série de l’ordinateur. Ils ne présentent généralement que peu de problèmes. On accède à
l’interface série sous Linux avec /dev/ttySn, où n est, selon toute probabilité, 0 ou 1.
• Modems USB. Ces modems sont connectés à l’ordinateur via USB. L’interface corres-
pondante est souvent /dev/ACMn ou /dev/input/ttyACMn. Généralement, ce type de
modem est également pris en charge, mais certains modèles peuvent poser problème.
Vous trouverez une liste de compatibilité à l’adresse http://www.linux-usb.org/.
• Modems internes. Les modems internes consistent en une carte additionnelle ou sont
intégrés directement à la carte mère de l’ordinateur. Sous Linux, on accède générale-
ment à ces modems comme à des modems externes par /dev/ttySn. Malheureusement,
il s’agit souvent de "winmodems", qui sont peu ou mal pris en charge sous Linux.

Figure 27.1
Configuration d’un
modem avec KPPP.
Linux Livre Page 533 Mardi, 23. septembre 2008 1:05 13

ACCÈS À INTERNET 533

Configuration RNIS
Outils de Traditionnellement, SUSE était la meilleure distribution pour les utilisateurs de RNIS. Le
configuration
marché allemand avait de nombreux utilisateurs RNIS et beaucoup de matériels RNIS sont
allemands (AVM, Siemens). Depuis, SUSE fait partie de l’entreprise américaine Novell et ne
fournit plus les pilotes binaires AVM, ce qui est sensé du point de vue de la philosophie
libre, mais nettement moins pratique pour les utilisateurs de RNIS.
Selon votre distribution, il existe différentes interfaces utilisateur pour configurer votre carte
RNIS.

Debian, Ubuntu network-admin (suppose que le matériel CAPI est configuré)


Red Hat, Fedora system-config-network = neat (uniquement ISDN4Linux)
SUSE module YaST Périphériques Réseau, ISDN (RNIS) (ISDN4Linux, CAPI)

Nous ne traiterons pas plus du RNIS dans le cadre de cet ouvrage. La configuration et les diffi-
cultés que vous pouvez rencontrer dépendent largement du matériel et de la distribution. Vous
pouvez par exemple lire la page http://forum.ubuntu-fr.org/viewtopic.php?pid=1775181 pour
avoir des informations sur une configuration RNIS sous Ubuntu 8.04.

Configuration ADSL
La méthode d’accès à Internet la plus simple consiste à utiliser un routeur ADSL. Si vous
disposez uniquement d’un modem ADSL, sa configuration dépend de son type, de la
variante de PPP utilisée et de votre distribution.
• Type de modem. On distingue les modems Ethernet des modems USB. Si vous le pouvez,
évitez les modems USB, qui manquent généralement cruellement de pilotes.
• Variante de PPP. Les informations TCP/IP peuvent être transmises par PPPoA, PPPoE
ou PPTP. Vous trouverez des informations à ce sujet à la section suivante. Si vous ne
savez pas quel protocole utiliser, demandez à votre fournisseur d’accès.
Outils de Le tableau suivant résume les outils de configuration ADSL utilisables dans chaque distri-
configuration
bution et les protocoles qu’ils prennent en charge.

Debian, Ubuntu pppoeconf (uniquement PPPOE)


Red Hat, Fedora system-config-network = neat (uniquement PPPOE)
SUSE module YaST Périphériques réseau, DSL (PPPOE, PPPOA, PPTP, CAPI pour ADSL).

Si votre distribution ne fournit pas d’outils pour votre modem ADSL ou pour le protocole
pris en charge par votre fournisseur d’accès, vous pouvez vous procurer un routeur ADSL
ou configurer manuellement votre modem.
Linux Livre Page 534 Mardi, 23. septembre 2008 1:05 13

534 LINUX

pppoeconf Les distributions basées sur Debian fournissent l’outil en ligne de commande pppoeconf.
Démarrez pppoeconf en tant que root dans une fenêtre de terminal. La commande cherche
un modem ADSL sur toutes les interfaces réseau.
Une fois le modem trouvé, indiquez votre identifiant et votre mot de passe. Vous pouvez
simplement confirmer les questions suivantes à propos de la configuration du DNS et des
paramètres MSS.
Pour finir, le programme vous demande si la connexion ADSL doit être lancée automatique-
ment au démarrage de l’ordinateur ou bien manuellement. La première variante est sensée
lorsque votre accès ADSL est illimité (ce qui est le cas pour l’immense majorité des forfaits en
France) et lorsque vous voulez rester en ligne en permanence. Dans la seconde variante, vous
devez activer et désactiver manuellement l’accès à Internet avec les commandes suivantes :
root# pon dsl-provider
...
root# poff dsl-provider

27.2 Configuration manuelle d’un modem


Cette section traite du problème des winmodems et de la configuration manuelle d’une
connexion avec un modem via pppd. Il ne s’agit que d’une section minimale ; en cas de pro-
blème ou pour plus de détails, reportez-vous au Modem HOWTO (http://tldp.org/
HOWTO/Modem-HOWTO.html).

Winmodems
Les modems internes sont souvent des winmodems (ou softmodems). Les fonctions diver-
ses du modem ne sont pas gérées par le matériel, mais émulées par du logiciel. Ce logiciel
n’est souvent disponible que sous Windows.
Peu de winmodems fonctionnent sous Linux. La plupart des entreprises ne fournissent pas les
spécifications nécessaires au développement de pilotes pour les projets libres. Vous trouverez
plus d’informations à ce sujet aux adresses http://linmodems.org/ et http://walbran.org/sean/
linux/linmodem-howto.html.
Ce genre de modem est le plus souvent rencontré sur des ordinateurs portables. Le site web
http://www.linux-laptop.net présente de nombreux modèles, leur compatibilité avec Linux
et éventuellement décrit leur fonctionnement.
scanModem La première étape consiste à déterminer le type exact de modem dont vous disposez. Télé-
chargez pour cela la commande scanModem et lancez-la :
user$ wget http://linmodems.technion.ac.il/packages/scanModem.gz
user$ gunzip scanModem.gz
user$ chmod u+x scanModem
user$ ./scanModem
Identifying PCI bus slots with candidate modems.
=== Finished modem firmware and bootup diagnostics section. ===
=== Next deducing cogent software ===
Analysing card in PCI bus 00:1f.6, writing to scanout.00:1f.6
Linux Livre Page 535 Mardi, 23. septembre 2008 1:05 13

ACCÈS À INTERNET 535

Modem with PCI ID 8086:24c6 is in the software modem category.


The modem driver snd-intel8x0m is Not loaded.
...
Unload and reload the modem driver:
sudo modprobe -r snd-intel8x0m
sudo modprobe snd-intel8x0m
and rerun
./scanModem

Sur mon ordinateur portable, scanModem indique que la fonction du modem est gérée par
une puce son Intel. La commande indique que je dois charger le module du noyau snd-
intel8x0m et relancer scanModem :
root# modprobe snd-intel8x0m
user$ ./scanModem
...
Checking for match with Archived softmodem information.
IDENT=hsfmodem
Using scanout.00:1f.6 data, and writing guidance to ModemData.txt
Writing Intel.txt
Writing Conexant.txt
Writing residual guidance customized to your System.
A subfolder Modem/ has been written, containing these files with
more detailed Information:
--------------------------------------------------------------------
1stRead.txt Bootup.txt Conexant.txt dmesg.txt
DriverCompiling.txt InfoGeneral.txt Intel.txt ModemData.txt
Rational.txt scanout.00:1f.6 SoftModem.txt Testing.txt
UNSUBSCRIBE.txt wvdial.txt YourSystem.txt

scanModem a créé divers fichiers dans le répertoire Modem. Ceux-ci fournissent des informa-
tions supplémentaires sur le modem et sur les étapes suivantes. On y trouve en particulier :
user$ less Modem/ModemData.txt
...
Formal support for Conexant chipset modems are available ONLY through
http://www.linuxant.com/drivers. Read Conexant.txt for details. and
Modem/YourSystem.txt for follow through guidance. Driver speed is limited to
14,400 until a key is purchased. There is NO freeware alternative.
...

Suivez les instructions de scanModem. Notez que, si vous avez besoin de pilotes binaires,
ceux-ci doivent être actualisés à chaque mise à jour du noyau. Cela en fait une solution à
limiter aux cas d’urgence.

Configuration manuelle de pppd


La connexion s’établit en deux étapes. Le modem doit d’abord composer le bon numéro de
téléphone, ce que fait le programme chat. Lorsque la connexion téléphonique est établie,
Linux Livre Page 536 Mardi, 23. septembre 2008 1:05 13

536 LINUX

pppd est démarré. Il prend le contrôle du modem et commence à communiquer avec le four-
nisseur d’accès. Une fois l’authentification réussie, votre ordinateur est connecté à Internet.
chat chat définit l’établissement de la communication entre le modem et le fournisseur d’accès.
Le fichier suivant est un exemple de configuration de chat.
# /etc/chatscripts/mychat
# paramètres
TIMEOUT 60
ABORT ERROR
ABORT BUSY
ABORT VOICE
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
ABORT "NO ANSWER"
# la communication elle-même
"" "+++ATZ"
"OK" "ATDT1234567890"
CONNECT

La première section indique quelles erreurs sont rédhibitoires pour la connexion. La


seconde section est la communication du modem. La première ligne remet à 0 le modem,
la deuxième ligne lance la numérotation (1234567890 est ici à remplacer par le numéro de
téléphone de votre fournisseur d’accès) et la troisième ligne établit la connexion – si aucune
des erreurs précédentes n’a été rencontrée.
Options Le fichier suivant, à placer dans le répertoire /etc/ppp/peers (par exemple /etc/ppp/peers/
de pppd
myconnection), contient les options de pppd pour établir la connexion. L’interface du modem
doit être indiquée dans la première ligne (à l’exception des commentaires). Le mot clé connect
appelle le bon fichier de configuration pour chat. Vous trouverez une description de toutes
les autres options de ce fichier dans man pppd.
/dev/ttyS0
# spécifique aux modems analogiques
crtscts
connect '/usr/sbin/chat -f /etc/chatscripts/mychat'
# options classiques de pppd
lock
noauth
usepeerdns
noipdefault
defaultroute
name "hofer"
idle 300
# pour Red Hat / Fedora
ipparam "modem"
Authentifi- Les fichiers de configuration pour PAP et pour CHAP doivent tous les deux être composés
cation
d’une ligne qui contient l’identifiant et le mot de passe chez votre fournisseur d’accès :
# login name password (secret)
"identifiant" * "mot_de_passe"
Linux Livre Page 537 Mardi, 23. septembre 2008 1:05 13

ACCÈS À INTERNET 537


Red Hat et Il existe une étape supplémentaire sous Red Hat et Fedora. Vous devez modifier le fichier
Fedora
/etc/sysconfig/network-scripts/ifcfg-myconnection pour y ajouter le paramètre
PEERDNS=yes.
Démarrage et La connexion est démarrée avec :
arrêt de la
configuration root# pppd call myconnection

pppd est lancé en tâche de fond. Il faut généralement compter une trentaine de secondes
pour que la connexion soit établie. Vous pouvez alors vérifier avec ifconfig, route -n et ping
si la connexion fonctionne bien.
Pour couper la connexion, lancez :
root# killall pppd

27.3 Configuration matérielle de l’ADSL


Variantes de Il existe plusieurs possibilités de configuration en fonction du type de modem ADSL (Ether-
configuration
net ou USB) ou du protocole (PPPoE, PPPoA, PPTP). Dans cette section, nous traiterons de
PPPoE et de PPTP. Nous ne visons cependant pas à l’exhaustivité, qui dépend en grande partie
du matériel et du fournisseur d’accès. Vous trouverez des informations sur certains modèles
courants en France à l’adresse http://doc.ubuntu-fr.org/modem_adsl.
Nous n’évoquerons donc pas PPPoA. Nous vous conseillons d’éviter ces modems sous
Linux. L’installation en est complexe et l’utilisation trop sujette à erreur. Si vous devez passer
par PPPoA, il est préférable d’acquérir un routeur ADSL compatible avec PPPoA. La page
http://www.linux-usb.org/SpeedTouch/ parle plus précisément des modems Speedtouch.

Configuration manuelle de PPPoE


Configuration Le modem ADSL est connecté à la carte réseau par un câble Ethernet. Cependant, le proto-
de la carte
réseau cole TCP/IP n’est pas utilisé. L’adresse IP et le masque de sous-réseau de l’interface ne sont
pas pris en compte. Il n’est donc pas nécessaire de configurer la carte. En particulier, l’inter-
face réseau ne doit pas être configurée en tant que passerelle.
Configuration PPPoE est géré par un module du noyau. Pour que pppd puisse utiliser l’interface réseau
de pppd
pour PPPoE, il faut installer le module de pppd, rp-pppoe.so. Ce fichier est généralement
installé avec pppd.
Pour configurer pppd, vous avez besoin d’un fichier de configuration dans /etc/ppp/peers
(par exemple /etc/ppp/peers/adsl) analogue à celui-ci :
# options spécifiques à PPPoE
plugin rp-pppoe.so
mru 1492
mtu 1492
# le modem ADSL est branché à cette interface
eth0
# options habituelles
Linux Livre Page 538 Mardi, 23. septembre 2008 1:05 13

538 LINUX

lock
noauth
noipdefault
defaultroute
usepeerdns
# identifiant pour /etc/ppp/pap-secrets et chap-secrets
name "hofer"
# attendre 4 secondes lors d'une déconnexion avant d'essayer de
# reconnecter
persist
holdoff 4
maxfail 25
# pour Red Hat/Fedora
ipparam "adsl"

Démarrage et pppd est démarré comme un modem analogique avec la commande :


arrêt de pppd
root# pppd call adsl

Pour fermer la connexion, arrêtez pppd avec killall.


root# killall pppd

Configuration manuelle de PPTP


Le protocole PPTP est pris en charge par le programme pptp. La plupart des distribu-
tions courantes fournissent ce paquet dans un seul paquet du même nom, qui n’est
cependant pas toujours installé automatiquement. Vous trouverez plus d’informations
sur PPTP et sur son programme de configuration graphique pptpconfig à l’adresse
http://pptpclient.sourceforge.net/.
Configuration Le modem ADSL est connecté à l’ordinateur via Ethernet, mais il faut cette fois configurer la
de la carte
réseau connexion. Vous devez choisir l’adresse IP et le masque de sous-réseau de manière que le
modem soit accessible. Si l’adresse IP de votre modem est 10.0.0.138 (ce qui est le cas de cer-
tains modems Alcatel), choisissez pour votre interface une IP de type 10.0.0.n et un masque
255.255.255.0. N’indiquez pas d’adresse de passerelle.
Pour vérifier que la connexion fonctionne, utilisez simplement ping et vérifiez que le
modem répond à son adresse.
Configuration Pour configurer pppd, vous avez besoin d’un fichier dans /etc/ppp/peers, par exemple /
de pppd
etc/ppp/peers/adsl. Les lignes qui suivent sont un exemple de ce type de fichier.
# /etc/ppp/peers/adsl
# options spécifiques à pptp
pty "/usr/sbin/pptp 10.0.0.138 --nolaunchpppd"
# pas de compression
nobsdcomp
nodeflate
# identifiant pour les fichiers /etc/ppp/pap-secrets et chap-secrets
name "hofer"
# options habituelles
lock
noauth
noipdefault
Linux Livre Page 539 Mardi, 23. septembre 2008 1:05 13

ACCÈS À INTERNET 539

defaultroute
usepeerdns
# attendre 4 secondes lors d'une déconnexion avant d'essayer de
# reconnecter
persist
holdoff 4
maxfail 25
# pour Red Hat/Fedora
ipparam "adsl"
Démarrage et Pour démarrer et arrêter pppd, utilisez les commandes habituelles :
arrêt de pppd
root# pppd call adsl
root# killall pppd
Linux Livre Page 540 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 541 Mardi, 23. septembre 2008 1:05 13

Passerelle Internet
28 (mascarade et DHCP)
Ce chapitre traite de la configuration d’un serveur. Il s’adresse à tous ceux qui gèrent de
petits réseaux locaux, dans lesquels se trouvent éventuellement des clients Windows.
Il décrit la mise en place d’une passerelle Internet pour le réseau local. Il s’agit d’un ordina-
teur qui met à disposition l’accès à Internet pour d’autres ordinateurs. Le plus simple est
généralement d’activer la mascarade sur cet ordinateur. Pour faciliter la gestion du réseau
local, l’installation d’un serveur DHCP est également conseillée. Les clients qui s’y connectent
peuvent alors être configurés presque entièrement automatiquement.
Une passerelle devrait toujours être protégée par un pare-feu (voir Chapitre 29).
Les informations de ce chapitre ont été testées uniquement sous Ubuntu, openSUSE et
Fedora, mais la configuration des distributions Debian, SUSE Enterprise et Red Hat diffère
généralement peu.

28.1 Introduction
Ce chapitre décrit l’installation des composants suivants :
• Mascarade/NAT. La mascarade permet de connecter tous les clients d’un réseau local à
Internet. Un ordinateur est connecté à Internet via ISDN ou ADSL, tandis que tous les
autres sont connectés à cette machine et peuvent utiliser Internet de cette manière. Il
n’est donc pas nécessaire que tous aient leur propre modem !
• DHCP et DNS. Le DHCP permet de gérer automatiquement les adresses IP et d’autres
paramètres réseau sur tous les clients. Il existe deux possibilités pour mettre en place ce
type de serveur. Dans le cas d’un petit réseau simple, on peut utiliser dnsmasq, qui gère
à la fois le DHCP et le service de noms (DNS) du réseau. Pour des tâches plus importan-
tes, on utilise plutôt dhcpd. Celui-ci ne fait pas office de serveur de noms ; il est généra-
lement couplé avec Bind. La configuration de ce dernier, plutôt complexe, sort du cadre
de cet ouvrage.
Installation Pour des raisons de sécurité, les paquetages présentés ici ne sont généralement pas installés
des
paquetages par défaut. Il existe parfois des paquetages avec des noms similaires pour les services clients
associés, mais ils ne suffisent pas. Une fois le paquetage serveur installé, le programme doit
être activé explicitement.
Aides à la Ce chapitre s’adresse à des utilisateurs avancés de Linux. Les divers fichiers de configura-
configuration
tion seront décrits, ce qui ne sera pas le cas des interfaces utilisateur mises à disposition par
les différentes distributions.
L’approche suivie ici (modification manuelle des fichiers de configuration) peut sembler
démodée, mais elle a fait ses preuves. Vous ne savez où se trouvent les fichiers que lorsque
vous les modifiez manuellement. Et seule cette méthode permet de modifier ou de transférer
Linux Livre Page 542 Mardi, 23. septembre 2008 1:05 13

542 LINUX

une configuration sur un autre serveur, par exemple après une réinstallation ou un changement
de distribution.
Sécurité Si vous désirez utiliser Linux en tant que serveur réseau, vous devez vous préoccuper de la
sécurité (voir Chapitre 29).
IPv6 Toutes les commandes utilisées ici sont compatibles avec IPv6. Les tests n’ont cependant été
effectués que sur une base IPv4 et les spécificités d’IPv6 ne seront pas traitées.

Topologie du réseau utilisé comme exemple


Pour faciliter l’orientation dans ce chapitre et les suivants, nous utilisons un réseau fixe (voir
Figure 28.1).
Nom de Le réseau local utilise la plage d’adresses 192.168.0.* et le domaine sol. Les adresses IP sont
domaine sol
(192.168.0.*) obtenues de la manière suivante. Lorsque vous planifiez un réseau, le serveur obtient géné-
ralement l’adresse *.*.*.1 et tous les clients, des adresses *.*.*.n, où n est une suite de
nombres séquentielle.

Figure 28.1
Topologie du réseau.

Passerelle mars est la passerelle. Elle sécurise aussi le réseau contre les accès extérieurs par un pare-feu.
mars
(192.168.0.1) Divers services réseau fonctionnent dessus (DHCP, DNS, Apache, MySQL, Samba, NFS,
SSH, etc.).
Linux Livre Page 543 Mardi, 23. septembre 2008 1:05 13

PASSERELLE INTERNET (MASCARADE ET DHCP) 543

L’accès à Internet est assuré par un modem ADSL, branché via un câble réseau (eth1).
L’accès au réseau local passe par un concentrateur (hub) via eth2. L’ordinateur dispose éga-
lement d’une imprimante USB, partagée par tout le réseau.
Autres uranus et saturne sont des ordinateurs fixes, avec pour adresses IP 192.168.0.2 et
éléments
du réseau 192.168.0.13. mercure est un ordinateur portable, avec pour IP 192.168.0.15. pluton est une
imprimante laser réseau.

Pour des raisons de sécurité, il serait préférable que mars ne serve qu’à l’accès à Internet et au pare-feu. Un
vieil ordinateur peut alors suffire. Tous les autres services du réseau peuvent être gérés par un second ordina-
teur derrière le pare-feu.
Le problème de cette configuration est que chaque programme serveur sur mars présente le danger qu’un
intrus l’utilise pour accéder à l’ordinateur (malgré le pare-feu).
Dans les grandes entreprises, l’architecture réseau sépare généralement l’ordinateur pare-feu et les ser-
veurs. Pour mon environnement de test privé, c’est néanmoins nettement moins pratique.

Installation d’une passerelle Internet


Pour installer une passerelle Internet, on passe généralement par les étapes suivantes :
• Installation de la distribution. Installez d’abord la distribution souhaitée, de la manière
la plus réduite possible. Plus le nombre de paquetages est élevé, plus le risque d’une
faille de sécurité est grand.
• Configuration du réseau. Pour configurer le réseau, utilisez des adresses statiques. La
passerelle dispose généralement de deux cartes Ethernet : l’une d’elles assure la connexion
à Internet (par exemple, via un modem ADSL), la seconde sert de connexion au réseau
local.
• Configuration d’Internet. Configurez Internet. Si votre connexion n’est pas permanente
ou illimitée, il faut généralement la configurer de sorte qu’elle soit mise en place auto-
matiquement et coupée lorsqu’elle n’est plus utilisée. Si votre accès est permanent et illi-
mité, rien ne s’oppose à ce que la connexion soit établie dès le démarrage de l’ordinateur
et arrêtée en même temps que ce dernier.
• Mascarade. Pour que les autres ordinateurs du réseau accèdent à Internet, il faut activer
la mascarade. Pour que les ordinateurs clients puissent utiliser cette fonction, les prére-
quis suivants sont nécessaires. Ils doivent être connectés au serveur via le réseau local,
indiquer l’adresse du serveur en tant que passerelle et comme serveur de noms celui du
fournisseur d’accès à Internet. Pour les premiers tests, vous pouvez paramétrer les
clients de manière statique.
• DHCP. Pour faciliter la configuration des clients, il est conseillé d’installer un serveur
DHCP qui attribue à tous les clients leur adresse IP, ainsi que la passerelle et l’adresse
du serveur de noms. Le client ne doit alors être configuré qu’en tant que client DHCP, ce
que permettent toutes les distributions Linux et Windows en quelques clics.
Linux Livre Page 544 Mardi, 23. septembre 2008 1:05 13

544 LINUX

• Serveurs de noms. Pour que les clients connaissent les noms des ordinateurs du réseau,
l’installation d’un serveur de noms s’impose souvent dans les réseaux importants. Ce
service est utile pour la communication interne et se place entre le DNS du fournisseur
d’accès et l’ordinateur client. Il réduit le trafic Internet vers le fournisseur d’accès et les
requêtes peuvent être traitées plus vite.
• Pare-feu. Pour sécuriser les ordinateurs du réseau local contre un accès indésirable, il
faut absolument installer un pare-feu sur l’ordinateur (voir Chapitre 29).
Ajout de Lorsque votre réseau local est configuré, vous pouvez rapidement ajouter un client. Si votre
nouveaux
clients DHCP est géré par dnsmasq, il suffit d’ajouter une ligne hostname à /etc/dnsmasq.conf. Ici,
00:11:22:33:44:55 est l’identifiant MAC de la carte réseau (numéro unique), terre le nom
d’hôte du nouvel ordinateur et 192.168.0.21 l’adresse IP souhaitée.
dhcp-host=00:11:22:33:44:55,terre,192.168.0.21

Si vous utilisez dhcpd et bind, ajoutez un élément selon le motif suivant :


host terre {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.0.12;}

Sur le client, l’installation est encore plus simple : il suffit d’indiquer que la configuration
réseau est assurée par DHCP.

Comparaison entre un routeur matériel et une passerelle Linux


De nombreuses fonctions de ce chapitre peuvent également être remplies par un routeur
ADSL matériel. Il s’agit d’un appareil qui fait office de modem ADSL, de commutateur
Ethernet et éventuellement de point d’accès sans fil. C’est le cas de la plupart des "box" prê-
tées ou louées par de nombreux fournisseurs d’accès français. En général, ce type d’appareil
sert également de serveur DHCP et de pare-feu. Il est configuré via un navigateur web. Il
faudrait d’ailleurs plutôt parler de passerelle, mais le terme routeur s’est imposé.

Figure 28.2
Routeur ADSL.

Le principal avantage d’un routeur matériel est que la configuration est très simple et qu’il
est, à l’achat, moins cher qu’un ordinateur sous Linux et un commutateur (auxquels il faut
parfois ajouter un modem ADSL et une carte sans fil). Si vous souhaitez rapidement mettre
en place un accès à Internet, ce type de solution vous économisera du temps et de la fatigue.
Linux Livre Page 545 Mardi, 23. septembre 2008 1:05 13

PASSERELLE INTERNET (MASCARADE ET DHCP) 545

Il suffit alors généralement de connecter les ordinateurs au routeur, comme l’illustre la


Figure 28.2.
Cette solution présente l’avantage de la simplicité. Vous pouvez, par exemple, intégrer un
serveur web local ou des serveurs d’authentification ou de fichiers (LDAP, Samba, etc.). De
plus, vous comprendrez vraiment comment fonctionne votre réseau et quels services sont à
votre disposition.
Pour finir, il est possible de combiner ces deux stratégies : utiliser un routeur ADSL pour les
fonctions routeur et DHCP, et un serveur Linux pour les autres fonctions.

28.2 Mascarade (NAT)


Notions de base
Le point de départ de la mascarade est toujours le même : un ordinateur est connecté à Internet
et doit fournir un accès à Internet à d’autres ordinateurs du réseau local.
Le problème est qu’en général, les clients du réseau local utilisent des adresses IP privées :
celles-ci se trouvent dans des plages d’adresses réservées pour les réseaux locaux. Elles ne
sont valides que sur le réseau local et pas sur Internet. Seul le serveur dispose (en plus de
son IP sur le réseau local) d’une seconde adresse IP unique sur le réseau mondial, attribuée
par le fournisseur d’accès à Internet. Cette adresse n’est souvent pas fixe ; elle peut changer
à intervalles réguliers ou à chaque déconnexion.
Pour éviter les conflits d’adresses, le serveur ne peut pas se contenter de transmettre les
requêtes Internet des clients sans les modifier. On parlerait dans ce cas d’un routeur. Les ter-
mes de mascarade et de routage sont souvent intervertis, mais recouvrent deux concepts
différents. Le routage sur Internet n’est possible que lorsque les clients disposent d’une IP
valide sur Internet, ce qui est rarement le cas dans un réseau local.

Dans ce qui suit, l’ordinateur doté de l’accès à Internet est désigné comme serveur et tous les autres sont
appelés clients, indépendamment de leurs fonctions réelles. Dans le cas de la mascarade, le serveur est sou-
vent appelé passerelle Internet ou routeur (ce qui est un abus de langage).

Mascarade Selon le concept de mascarade, les paquets de données provenant des clients à destination
d’Internet sont acceptés par le serveur, puis transformés comme s’ils en provenaient. Pour
formuler cela de manière plus concrète, l’adresse d’expédition du paquet du client (par
exemple 192.168.0.17) est transformée en l’adresse du serveur (par exemple 175.118.190.232).
Cette modification est désignée par le terme NAT (Network Address Translation, traduction
d’adresses réseau). Le NAT est un concept plus avancé que celui de mascarade. En effet, il
existe plusieurs manières de mettre en place un NAT, la mascarade étant la plus simple.
Le paquet peut alors être envoyé sur Internet, qui renvoie généralement une réponse
après un certain temps. Par exemple, si le paquet de données de départ est une requête
vers un site web, la réponse est le document HTML demandé sous la forme de paquets IP.
Linux Livre Page 546 Mardi, 23. septembre 2008 1:05 13

546 LINUX

Le problème pour le serveur est alors d’adresser la réponse au bon ordinateur (en l’occur-
rence, 192.168.0.17). Comment connaît-il la bonne adresse ? Vu que le paquet de requête
provient du serveur, la réponse lui est également adressée.
Pour résoudre ce problème, le serveur modifie non seulement l’adresse d’expédition, mais
aussi le port d’expédition. Chaque adresse IP du réseau local est associée à un port donné.
Les communications TCP/IP sont réparties sur différents ports. Les ports sont des informa-
tions supplémentaires qui identifient le service. Par exemple, FTP utilise normalement les
ports 20 et 21, HTTP 80, etc. Il existe aussi de nombreux ports auxquels aucun service n’est
associé. Ces numéros sont, entre autres, utilisés pour la mascarade.
Celle-ci est mise en place grâce à diverses commandes selon la version du noyau. Le
noyau 2.0 utilisait ipfwadm, le noyau 2.2 ipchains et, depuis la version 2.4, le noyau utilise
iptables. Cette section se limite à iptables.
Mascarade Les fonctions de mascarade et de pare-feu sont étroitement liées. Cette section suppose que
et pare-feu
l’ordinateur n’est pas encore configuré en tant que pare-feu. Si c’est le cas, vous devrez
d’abord désactiver le pare-feu avant de pouvoir activer la mascarade (voir Chapitre 29 ).

Mascarade avec iptables


Configuration Après cette description de la mascarade, vous vous attendez probablement à une configuration
manuelle
extrêmement compliquée. Vous ne pourriez pas vous tromper d’avantage. Deux commandes
suffisent à l’activer :
root# echo 1 > /proc/sys/net/ipv4/ip_forward
root# iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE

echo active la fonction de transfert d’IP du noyau, qui est par défaut désactivée. Dans de
nombreuses distributions, vous pouvez utiliser à la place la commande sysctl, plus
élégante :
root# sysctl -w net.ipv4.ip_forward=1

La commande iptables définit une règle selon laquelle un paquet qui doit quitter le réseau
local est transmis à l’interface eth1 et manipulé avec les règles du NAT. Selon la configura-
tion de votre accès à Internet, vous devez utiliser, à la place de eth1, une autre interface,
comme ppp0 ou ipp0 !
MSS clamping Si le serveur accède à l’ADSL via le protocole PPPoE (ce qui est rarement le cas en France),
cela peut poser problème pour les gros paquets IP. Pour éviter cela, on utilise une com-
mande iptables supplémentaire. Cette règle, appelée MSS clamping, évite que de trop gros
paquets ne soient envoyés :
root# iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu

Sécurité Il est préférable de mettre en place une sécurité minimale contre les abus. Après tout, une
minimale
fois la mascarade activée, tous les ordinateurs du réseau local sont connectés à Internet.
Les trois commandes suivantes s’assurent que tous les paquets du réseau local passent, mais
que seuls les paquets entrants envoyés en réponse à une requête sont transmis au réseau
local. Nous supposons ici que le réseau local est connecté au serveur via eth2 et que l’accès à
Linux Livre Page 547 Mardi, 23. septembre 2008 1:05 13

PASSERELLE INTERNET (MASCARADE ET DHCP) 547

Internet passe par eth1. Vous devez modifier ces valeurs en fonction de votre propre confi-
guration.
root# echo 1 >
/proc/sys/net/ipv4/ip_forward
root# iptables
-P FORWARD DROP
root# iptables
-A FORWARD -i eth2 -o eth1 -j ACCEPT
root# iptables
-A FORWARD -i eth1 -o eth2 -m state \
--state ESTABLISHED,RELATED -j ACCEPT
root# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Désactiver la Pour désactiver la mascarade, lancez les commandes suivantes :


mascarade
root# iptables -t nat -D POSTROUTING -o eth1 -j MASQUERADE
root# echo 0 > /proc/sys/net/ipv4/ip_forward

Modules Si votre système est bien configuré, la commande iptables charge automatiquement les
iptables
modules nécessaires dans le noyau. Dans le cas contraire, vous devez les activer manuelle-
ment. Les principaux modules sont ip_tables, iptable_nat, ip_conntrack, ipt_MASQUERADE,
iptable_filter, ip_conntrack_ftp et ip_nat_ftp.

Activation et désactivation automatique de la mascarade


Il ne faut évidemment pas activer manuellement la mascarade à chaque démarrage du ser-
veur. La procédure habituelle est de l’activer en même temps que le pare-feu. De nombreu-
ses distributions et programmes de pare-feu fournissent des assistants de configuration à
ces fins. Si vous activez le pare-feu manuellement, activez-le, y compris la mascarade, par
un script lancé lors du processus InitV.
Si vous n’avez pas de pare-feu ou si vous désirez contrôler ces opérations indépendamment,
vous pouvez lancer ou arrêter la mascarade par le biais de son propre script InitV.
Si vous accédez à Internet par PPP (modem ADSL ou RNIS), vous pouvez intégrer les com-
mandes de mascarade dans les scripts ip-up ou ip-down de /etc/ppp. La mascarade est alors
activée dès que vous êtes connecté à Internet et désactivée lorsque la connexion est coupée.
Cette méthode n’est pas compatible avec une gestion des connexions à la demande.

Problèmes
La mascarade est une solution élégante pour fournir un accès à Internet à des ordinateurs
qui ne disposent pas d’adresse IP valable sur le réseau mondial. Elle pose cependant parfois
quelques problèmes, dont seuls les plus fréquents sont détaillés ici.
• Un certain nombre de protocoles Internet ont des mécanismes de protection qui vérifient
l’association de l’adresse IP. Le fait que la mascarade empêche une correspondance unique
entre une adresse IP et un ordinateur peut être à la source de certaines difficultés.
• Certains protocoles envoient l’adresse non seulement dans le paquet IP, mais aussi dans
le contenu de données du paquet (en tant que texte ASCII ou de manière protégée). FTP
est un exemple connu de ce type de comportement. Pour que ce dernier fonctionne
Linux Livre Page 548 Mardi, 23. septembre 2008 1:05 13

548 LINUX

malgré la mascarade, le serveur de mascarade doit modifier, en plus du paquet, le


contenu de ce paquet.
Linux fournit divers modules pour faire cohabiter la mascarade et les services Internet,
par exemple ip_masq_ftp. Ils doivent être activés au besoin :
root# modprobe ip_nat_ftp
root# modprobe ip_conntrack_ftp

Si les clients FTP rencontrent toujours des difficultés, le plus simple est de les faire fonc-
tionner en mode passif. La plupart activent ce mode automatiquement ou permettent
au moins de le faire.
• Si le serveur de mascarade est connecté via ADSL/PPPoE à Internet, la taille maximale
(MTU) des paquets peut poser problème. Pour éviter cela, il faut la modifier sur tous les
clients ou mettre en place un MSS clamping sur le serveur.

Configuration des clients


Pour qu’un client puisse utiliser la passerelle pour accéder à Internet, sa configuration
réseau doit être la suivante :
• L’adresse de la passerelle doit contenir l’adresse IP de la passerelle Linux.
• L’adresse du serveur de noms doit être celle du fournisseur d’accès à Internet.

28.3 Serveur DHCP et serveur de noms intégré (dnsmasq)


Introduction à DHCP
Divers fichiers permettent de régler les différents paramètres réseau : l’adresse IP et celle
des autres ordinateurs du réseau (/etc/hosts), l’adresse de la passerelle et du serveur de
noms, etc. (voir Chapitre 26). Tous ces paramètres peuvent être configurés statiquement sur
l’ensemble des machines. Pour un petit réseau de trois ou quatre ordinateurs, cette procédure
est acceptable.
Configuration Pour les gros réseaux, il est plus sensé qu’un seul ordinateur s’occupe de transmettre les
centrale par
DHCP adresses IP à toutes les autres machines. C’est à cela que sert DHCP (Dynamic Host Configu-
ration Protocol, protocole de configuration dynamique d’hôtes). L’ordinateur qui contrôle le
tout est appelé serveur DHCP ; les autres sont les clients DHCP.
DHCP présente divers avantages par rapport à une configuration manuelle :
• L’administration est centralisée, et donc facilitée.
• La configuration des clients est limitée au minimum ; vous devez indiquer le nom de
l’ordinateur et du domaine, puis activer DHCP.
• L’ajout d’un ordinateur dans le réseau se fait sans problème et ne demande que des
modifications mineures sur le fichier de configuration. C’est particulièrement intéres-
sant pour les ordinateurs portables qui ne sont connectés qu’épisodiquement au réseau.
Linux Livre Page 549 Mardi, 23. septembre 2008 1:05 13

PASSERELLE INTERNET (MASCARADE ET DHCP) 549

• Seuls les ordinateurs effectivement en service ont besoin d’une adresse IP. Cela ne pré-
sente un avantage que lorsque le nombre d’adresses IP est faible, ce qui n’est généralement
pas le cas dans un réseau local.
Il compte cependant également quelques inconvénients :
• Le fonctionnement de tout le réseau dépend de l’ordinateur sur lequel fonctionne le ser-
veur DHCP. Si ce dernier tombe en panne, les clients actifs utilisent simplement leur
dernière adresse. Les clients nouvellement connectés n’ont cependant pas d’adresse
réseau. La dépendance à un seul ordinateur peut être diminuée si plusieurs ordinateurs
sont configurés comme serveurs DHCP.
• Un système DHCP dynamique peut représenter un risque de sécurité. Quiconque entre
dans votre bureau peut se connecter au réseau avec un ordinateur. L’accès effectif aux
données dépend largement du reste de la configuration du réseau, mais la première
étape en devient triviale.
DHCP et noms DHCP peut également gérer les noms d’hôte des ordinateurs. Il existe deux variantes de
d’hôte des
clients configuration :
• Configuration centrale du nom d’hôte par DHCP. Chaque client reçoit du serveur
DHCP son nom d’hôte. DHCP est souvent configuré pour associer une IP et le nom
d’hôte correspondant à une adresse MAC donnée. Cette adresse est un identifiant unique
de la carte réseau.
• Gestion locale des noms d’hôte sur les clients. Les clients locaux ont un nom d’hôte
fixe. Le serveur DHCP ne sert qu’au reste de la configuration.
Ces deux solutions ont chacune leurs arguments et aucune n’est meilleure en soi. Si vous
utilisez la seconde, il faut cependant veiller lors de la configuration du client à ce que celui-
ci envoie son nom d’hôte au serveur DHCP, ce qui sert à actualiser le serveur de noms.
Fonctionne- Lorsqu’un ordinateur (client DHCP) est démarré, il envoie une requête à l’adresse
ment interne
de DHCP 255.255.255.255 (soit à tous les ordinateurs du réseau local). Seul le serveur DHCP réagit à cette
requête et renvoie comme réponse une adresse IP qui provient de la liste des adresses IP valides.
Vous vous demandez peut-être où le serveur envoie sa réponse : le client n’a en effet pas encore
d’adresse IP. L’adressage passe par une adresse MAC, qui est connue grâce à la requête DHCP.
Le serveur DHCP assigne les adresses IP pour une durée donnée (lease time). Celle-ci est
généralement d’une journée, mais elle peut être paramétrée différemment. Avant que cette
durée ne soit écoulée, le client doit renouveler l’adresse auprès du serveur DHCP ou
demander une nouvelle adresse IP.

Paramétrage du serveur de noms


Un serveur de noms de domaine (abrégé en serveur de noms, voire en DNS) établit la cor-
respondance entre les noms d’ordinateurs et les adresses IP. Tous les fournisseurs d’accès à
Internet mettent à disposition un serveur DNS. Plutôt que d’accéder à ce serveur, vous pou-
vez mettre en place un serveur DNS pour votre propre réseau local. Cela a deux avantages :
Linux Livre Page 550 Mardi, 23. septembre 2008 1:05 13

550 LINUX

• Rapidité. Le DNS gère un cache des adresses récemment utilisées. Si vous accédez deux
fois à www.yahoo.com sur une journée, le serveur DNS n’a pas à réinterroger le serveur
DNS de votre fournisseur d’accès − le DNS local a déjà enregistré l’adresse.
• Résolution locale. Le DNS gère les noms et adresses IP des ordinateurs du réseau local.
Vous pouvez ainsi accéder à tous les ordinateurs du réseau via un nom et, par exemple,
lancer depuis l’ordinateur mercure la commande ping saturne. mercure ne contacte que
le serveur de noms local, qui renvoie l’adresse IP de saturne. La résolution de noms
locaux est un élément de base pour utiliser confortablement des services réseau comme
NFS, FTP, SSH, etc.
Les DNS du monde entier sont connectés les uns aux autres. Lorsqu’un DNS ne connaît pas
un nom donné, il transmet la requête à un autre DNS. Les DNS sont organisés de manière
hiérarchique.

Configuration de dnsmasq
Cette section décrit le programme dnsmasq, qui intègre les fonctions de serveur DHCP et de
serveur de noms. La section suivante traite de dhcpd, qui ne sert que de serveur DHCP.
Prérequis Nous supposons ici que le paquet dnsmasq est installé et que dhcpd ne l’est pas (sans quoi, les
deux programmes peuvent entrer en conflit).
Un autre prérequis important est la configuration correcte du fichier /etc/hosts sur la pas-
serelle. Celui-ci est étonnamment incomplet ou mal configuré sur de nombreuses configura-
tions. Pensez à le vérifier lorsque vous modifiez la configuration réseau de votre passerelle.
L’élément décisif est l’association entre l’ordinateur local (ici, mars et mars.sol) et l’adresse
IP locale (192.168.0.1). Diverses lignes suivent généralement. Elles concernent la configuration
IPv6, que nous ne traitons pas dans cet ouvrage.
# /etc/hosts sur la passerelle
127.0.0.1 localhost
192.168.0.1 mars mars.sol

Si vous rencontrez des problèmes, pensez à regarder la configuration de votre pare-feu. L’interface du
réseau local ne doit pas être bloquée par le pare-feu !

dnsmasq.conf dnsmasq est configuré dans le fichier /etc/dnsmasq.conf. Le fichier de configuration par
défaut fait office de documentation et se compose de presque 400 lignes de commentaires.
Renommez-le en dnsmasq.conf.orig et créez un nouveau fichier sans ces commentaires
avec grep :
root# cd /etc
root# cp dnsmasq.conf dnsmasq.conf.orig
root# grep -v '^#' /etc/dnsmasq.conf.orig | cat -s > dnsmasq.conf

La configuration de dnsmasq réclame, en plus de /etc/dnsmasq, des fichiers /etc/hosts et /etc/


resolv.conf fonctionnels. Si vous modifiez ces fichiers, il faut relancer dnsmasq.
Linux Livre Page 551 Mardi, 23. septembre 2008 1:05 13

PASSERELLE INTERNET (MASCARADE ET DHCP) 551


Démarrer et dnsmasq est un démon. Certaines distributions le démarrent tout de suite après son installa-
arrêter
dnsmasq tion. Dans le cas contraire, vous devez le lancer manuellement. Lorsque vous en modifiez la
configuration, vous devez également le relancer :
root# /etc/init.d/dnsmasq restart

Vous pouvez aussi avoir à configurer son démarrage automatique. Vous trouverez plus
d’informations à ce sujet à la section 24.7.
Configuration La configuration minimale ci-après permet à dnsmasq de fonctionner sans problème. Il sert
minimale
ici de cache de serveur de noms pour Internet et fournit aux clients des adresses IP comprises
entre 192.168.0.2 et 192.168.0.254 :
# /etc/dnsmasq.conf - configuration minimale
domain-needed
bogus-priv
interface=eth2
dhcp-range=192.168.0.2,192.168.0.254,24h

Expliquons rapidement les mots clés du fichier. domain-needed et bogus-priv empêchent


que dnsmasq envoie des noms d’hôte locaux ou des adresses IP locales au serveur de noms
de votre fournisseur d’accès à Internet − le serveur de noms de votre fournisseur ne résout
que les adresses Internet et non les adresses locales.
interface indique que dnsmasq ne doit répondre qu’aux requêtes provenant de eth2. dhcp-
range précise la plage d’adresses accessible au serveur DHCP pour répondre aux requêtes
DHCP. Les adresses transmises sont valides 24 heures et doivent ensuite être renouvelées
par le client.
Le serveur de noms et la passerelle n’ont pas à être configurés. dnsmasq lit le fichier /etc/
resolv.conf et renvoie l’adresse du serveur de noms qui s’y trouve. Les clients DHCP reçoivent
comme passerelle et serveur de noms l’adresse IP locale.
Mise en place La configuration minimale ci-dessus ne permet à dnsmasq de résoudre les noms d’hôte
d’un serveur
de noms local locaux que lorsque le fichier /etc/hosts contient les informations correspondantes. Les
adresses attribuées dynamiquement par DHCP sont donc inaccessibles par ce biais. Pour
que dnsmasq fonctionne également comme serveur de noms pour les adresses locales du
réseau local sol, il faut ajouter les lignes suivantes à dnsmasq.conf et redémarrer dnsmasq :
# /etc/dnsmasq.conf - serveur de noms pour les adresses locales
local=/sol/
domain=sol
expand-hosts

Le mot clé local indique que les requêtes d’adresses sur ce domaine doivent être gérées
directement par dnsmasq (et non par le serveur de noms du fournisseur d’accès). Si vous
n’avez pas de meilleur nom de domaine, utilisez simplement localnet ou localdomain.
domain indique à dnsmasq le nom de domaine à transmettre aux clients DHCP. Ce nom doit
correspondre à celui indiqué dans le paramètre local.
Linux Livre Page 552 Mardi, 23. septembre 2008 1:05 13

552 LINUX

expand-hosts fait en sorte que les requêtes au serveur de noms qui n’indiquent pas de nom
de domaine soient suffixées du nom de domaine indiqué dans domain. Ainsi, lorsque vous
lancez ping uranus, dnsmasq étend l’adresse à uranus.sol.
Dans la configuration courante, dnsmasq ne s’occupe pas du nom d’hôte des clients. Celui-ci
doit donc être géré individuellement par les clients. Pour que la résolution de noms fonc-
tionne localement, les clients doivent envoyer leur nom d’hôte au serveur DHCP (dnsmaq).
Noms d’hôte dnsmasq peut également être configuré pour fournir aux clients des noms d’hôte. L’associa-
et adresses
statiques tion statique des noms et adresses IP se fait grâce à l’adresse MAC des clients. C’est la
méthode de configuration que je préfère : un fichier unique contrôle sous quels noms et
adresses IP sont accessibles les ordinateurs de mon réseau. Lorsqu’un nouvel ordinateur est
branché, il suffit d’ajouter une ligne à dnsmasq.
Le mot clé dhcp-host permet une telle configuration. Les lignes suivantes illustrent la confi-
guration de l’ordinateur mercure et de l’imprimante pluton. La plage 192.168.2-127 est réser-
vée aux adresses statiques et 192.168.0.128-254, aux adresses dynamiques (par exemple,
lorsqu’un ami désire se connecter rapidement à Internet avec son ordinateur portable).
# /etc/dnsmasq.conf - ajout d'adresses statiques
# associations statiques pour les clients dont l'adresse MAC est connue
dhcp-host=00:11:25:32:4f:5d,mercure,192.168.0.15
dhcp-host=00:c0:ee:51:39:9f,pluton,192.168.0.127
# plage d'adresses dynamiques pour les clients ayant une adresse MAC
# inconnue : 192.168.0.128-254
dhcp-range=192.168.0.128,192.168.0.254,24h

man dnsmasq et /etc/dnsmasq.conf.orig décrivent de nombreuses variantes de syntaxe


pour dhcp-host. Vous pouvez, par exemple, établir une correspondance entre des noms
d’hôte et des adresses IP, bloquer complètement certaines adresses MAC, etc.
DNS pour Par défaut, dnsmasq ne fonctionne comme serveur de noms que pour les autres ordinateurs
l’ordinateur
local du réseau. En effet, c’est le DNS indiqué dans /etc/resolv.conf qui est utilisé. Généralement,
ce fichier contient le serveur de noms de votre fournisseur d’accès à Internet.
Pour que dnsmasq assure également la résolution de noms locale, vous devez ajouter à /etc/
resolv.conf la ligne nameserver 127.0.0.1. Si l’ordinateur récupère lui-même sa configura-
tion via DHCP, cela ne sert à rien : après chaque redémarrage, resolv.conf sera écrasé. Il
faut pour cela utiliser une configuration réseau statique.
# /etc/resolv.conf - pour que dnsmasq fonctionne pour l’ordinateur local
nameserver 127.0.0.1
...

La deuxième modification concerne dnsmasq. Comme il ne peut plus obtenir l’adresse du


serveur DNS externe via resolv.conf, il faut indiquer explicitement cette adresse et lui dire
d’ignorer resolv.conf. Ajoutez pour cela les deux lignes ci-après à dnsmasq.conf − dans
l’exemple suivant, 192.168.1.1 est l’adresse du routeur ADSL qui fait aussi office de DNS.
# /etc/dnsmasq.conf - ajouts pour que le DNS fonctionne sur la machine
#locale
# ignorer /etc/resolv.conf
no-resolv
# accéder au DNS externe
server=192.168.1.1
Linux Livre Page 553 Mardi, 23. septembre 2008 1:05 13

PASSERELLE INTERNET (MASCARADE ET DHCP) 553


Journalisation dnsmasq enregistre toutes les adresses IP dynamiques dans le fichier /var/lib/misc/dns-
masq.leases. Les adresses statiques ne sont, en revanche, pas prises en compte. Chaque
ligne contient aussi l’adresse MAC et, lorsqu’il est connu, le nom d’hôte du client. Ce fichier
est pratique pour connaître l’adresse MAC des nouveaux clients.
Lorsque dnsmasq ne fonctionne pas comme souhaité, ajoutez le mot clé log-queries à dns-
masq.conf. Le programme journalise alors toutes les requêtes au serveur de noms dans /var/
log/syslog ou /var/log/messages.

Configuration des clients


La configuration correcte d’un ordinateur pour qu’il puisse récupérer son IP est très simple.
Les distributions Linux et les versions actuelles de Windows fournissent toutes une option
dans la boîte de dialogue de configuration du réseau ; en principe tout fonctionne !
Le point critique est la configuration du nom d’hôte. Celui-ci doit-il être géré par DHCP ou
le client doit-il renvoyer son nom d’hôte au serveur DHCP ? Cette configuration diffère
selon la distribution Linux.
Debian, Pour modifier le nom d’hôte sous Debian et Ubuntu, vous pouvez utiliser le programme
Ubuntu
network-admin, dans l’onglet Général. Les données statiques ont priorité sur celles envoyées
par le serveur DHCP ! Si vous désirez que le nom d’hôte soit transmis par le serveur DHCP,
vous devez laisser le champ vide. Pour finir, vous devez redémarrer l’ordinateur.
Les noms d’hôte statiques ne sont pas transmis au serveur DHCP. network-admin n’offre pas
d’option sur ce point. En interne, c’est le programme dhclient qui s’en occupe. Dans son
fichier de configuration /etc/dhcp3/dhclient.conf, vous pouvez indiquer le nom envoyé
au serveur DHCP :
# /etc/dhclient.conf
send host-name "mercure.sol"

Red Hat, Sous Red Hat et Fedora, vous pouvez modifier le nom d’hôte et de domaine dans le champ
Fedora
texte Nom d’hôte de l’onglet DNS du programme system-config-network. Lorsque le ser-
veur DHCP transmet un nom d’hôte, celui-ci a priorité sur le nom de la configuration statique.
Par défaut, le nom d’hôte n’est pas transmis au serveur DHCP. Si vous désirez ce comporte-
ment, ouvrez avec Modifier la fenêtre de propriétés de l’interface réseau (généralement
eth0) et indiquez le nom d’hôte dans les paramètres DHCP.
Le programme dhclient évalue les informations DHCP. Il est, entre autres, appelé par le
script /etc/sysconfig/network-scripts/ifup-eth et peut être contrôlé par le système de
communication DBUS. Fedora utilise pour cela le paquetage dhcdbd, qui est installé par
défaut, mais qui n’est généralement pas actif. dhcdbd est en particulier utilisé par Network-
Manager. Vous trouverez plus d’informations sur dhcdbd dans le fichier /usr/share/doc/
dhcdbd-n/README.
SUSE Dans SUSE, le nom d’hôte est défini dans l’onglet Nom d’hôte/DNS module Périphériques
réseau, Paramètres réseau de YaST. Si le serveur DHCP transmet un nom d’hôte, ce nom a
Linux Livre Page 554 Mardi, 23. septembre 2008 1:05 13

554 LINUX

par défaut priorité sur la configuration statique. Ce comportement peut être modifié grâce à
l’option Modifier le nom d’hôte via DHCP.
SUSE transmet par défaut le nom d’hôte au serveur DHCP. Si ce n’est pas le comportement
souhaité ou si un autre nom doit être envoyé, modifiez le paramétrage dans l’onglet Options
globales du même module.
Au contraire de Debian et Red Hat, SUSE utilise la commande dhcpcd pour exploiter les
informations DHCP. Celle-ci est, entre autres, lancée dans /etc/init.d./network. dhcpcd
peut également communiquer sur le système DBUS via dhcdbd.
Recharger les Lorsque vous testez le serveur DHCP, vous devez redémarrer les clients à chaque fois. Un
données DHCP
redémarrage du réseau suffit parfaitement et récupère à nouveau les informations DHCP.
Sous Fedora, Red Hat et SUSE, lancez la commande
root# /etc/init.d/network restart

Sous Debian et Ubuntu, lancez


root# /etc/init.d/networking restart

Vous pouvez vous assurer avec ifconfig et un examen du fichier /etc/resolv.conf que
tout a fonctionné. Si vous travaillez sous KDE ou Gnome, vous devez vous reconnecter lorsque
le nom d’hôte ou un autre paramètre réseau essentiel a été modifié.
Vous pouvez aussi recharger les données DHCP sous Windows sans le redémarrer. Ouvrez
une fenêtre de commande et lancez
> ipconfig /renew

28.4 Serveur DHCP (dhcpcd)


dhcpd est le serveur DHCP classique. Il fonctionne sur presque tous les serveurs Linux qui
doivent gérer un réseau important. Ses possibilités de configuration sont bien plus grandes
que celles de dnsmasq.
Prérequis Dans cette section, nous supposons que dhcpd est utilisé au moins en version 3. Le nom du
paquetage diffère selon la distribution : dhcpd3-server sous Debian et Ubuntu, dhcp sous
Fedora et Red Hat, et dhcp-server sous SUSE. dnsmasq ne peut pas être installé en parallèle,
sans quoi les deux programmes entrent en conflit.
Nous supposons également que vous avez lu l’introduction à DHCP et que votre fichier /etc/
hosts est correctement configuré. La configuration des clients est identique à celle de
dnsmasq.
Vous trouverez plus d’informations sur la configuration et le serveur lui-même dans
les pages de manuel dhcpd, dhcpd.conf et dhcp-options, ainsi que sur le site web
http://www.isc.org/sw/dhcp/.
Démarrage Le serveur DHCP est un démon. Les commandes pour son démarrage (automatique)
et arrêt
dépendent de la distribution. Le nom du script InitV est dhcp3-server sous Debian et
Ubuntu, et dhcpd sous Fedora, Red Hat et SUSE. Lorsque vous modifiez la configuration du
serveur, il faut le relancer :
root# /etc/init.d/dhcp3-server restart
Linux Livre Page 555 Mardi, 23. septembre 2008 1:05 13

PASSERELLE INTERNET (MASCARADE ET DHCP) 555


Configuration dhcpd est configuré dans le fichier /etc/dhcp3/dhcpd.conf. Les lignes suivantes illustrent
minimale
une configuration minimale qui attribue des adresses IP dynamiquement entre
192.168.0.128 et 192.168.0.265. Les IP 192.168.0.0 et 192.168.0.255 sont réservées et ne peu-
vent donc pas être attribuées. La plage 192.168.0.1 à 192.168.0.127 est réservée pour attribuer
des adresses statiques.
# /etc/dhcpd.conf
# options globales
authoritative;
default-lease-time 86400;
max-lease-time 86400;
# informations clés du réseau local
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option domain-name-servers 199.85.37.2;
# plage d'adresses dynamiques
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.128 192.168.0.254;

authoritative indique que ce serveur est le serveur DHCP officiel du réseau local. default-
lease-time et max-lease-time indiquent combien de temps les adresses IP sont valides (une
journée, soit 86 400 secondes). Une fois cette durée écoulée, les clients doivent renouveler
leurs données de configuration (cela est automatique).
Les options broadcast-address et subnet-mask décrivent le segment de réseau géré par le
serveur DHCP. routers indique l’adresse de l’ordinateur qui sert de routeur ou de passe-
relle pour le réseau local. Dans l’exemple ci-dessus, il s’agit de l’ordinateur qui fait office de
serveur DHCP.
domain-name-servers est une liste de serveurs DNS (au maximum trois, séparés par des virgu-
les). Si vous utilisez un serveur DNS local, donnez-en l’adresse. Ces adresses sont transmises
aux clients pour qu’ils puissent aussi se passer de configurer eux-mêmes le DNS.

Vous pouvez récupérer l’adresse du serveur de noms dans /etc/resolv.conf . Si vous utilisez aussi
un serveur de noms local, indiquez dans domain-name-server l’adresse de la passerelle locale. Dans notre
exemple, il s’agit de 192.168.0.1.
Si un serveur WINS fonctionne sur votre réseau, vous pouvez indiquer son adresse avec l’option netbios-
name-server. WINS est l’équivalent d’un DNS pour le monde Windows. Un serveur Samba sous Linux
peut également faire office de serveur WINS.

Adresses Si votre seul but est de fournir des adresses IP à votre réseau local, vous avez terminé.
statiques
Cependant, on désire généralement attribuer des adresses statiques à quelques ordinateurs
du réseau local. Les lignes suivantes en sont un exemple.
Linux Livre Page 556 Mardi, 23. septembre 2008 1:05 13

556 LINUX

L’ordinateur ayant l’adresse MAC 00:11:25:32:4f:5d est associé à l’adresse IP 192.168.0.15. Si


vous désirez transmettre le nom d’hôte aux clients, utilisez l’option use-host-decl-names on.
La saisie des noms d’hôte permet, de toute façon, de rendre le fichier plus lisible.
# /etc/dhcpd.conf, suite
group {
# envoyer les noms d'hôte aux clients
use-host-decl-names on;
# adresses statiques
host mercure {
hardware ethernet 00:11:25:32:4f:5d;
fixed-address 192.168.0.15; }
host pluton {
hardware ethernet 00:c0:ee:51:39:9f;
fixed-address 192.168.0.127; }
...
}

dhcpd permet d’exploiter plusieurs sous-réseaux et groupes. Vous pouvez ajouter des
options au début du fichier ou à l’intérieur d’un groupe entre accolades ; les options corres-
pondantes s’appliquent globalement ou à un seul groupe. Le fichier dhcpd.conf comprend
d’innombrables options supplémentaires. Vous en trouverez les détails dans les pages de
manuel.
Journalisation dhcpd enregistre toutes les adresses IP dynamiques dans le fichier /var/lib/dhcp3/
dhcpd.leases. Ce dernier permet de déterminer facilement les adresses MAC des nouveaux
clients. Les messages de journalisation supplémentaires sont enregistrés dans /var/log/
messages ou syslog.
DNS Divers mots clés ddns permettent de configurer le serveur DHCP de manière qu’il trans-
dynamique
mette les noms et adresses IP des nouveaux clients du réseau local à un serveur de noms. Ce
dernier connaît alors automatiquement les noms et adresses des ordinateurs du réseau local.
Linux Livre Page 557 Mardi, 23. septembre 2008 1:05 13

Sécurité du réseau
29
Ce chapitre décrit quelques mesures pour sécuriser votre ordinateur et votre réseau local :
• sécurisation des services Internet actifs grâce à xinetd et à TCP Wrapper ;
• sécurisation du trafic TCP/IP grâce à un filtre de paquets basé sur iptables (pare-feu) ;
• sécurisation de votre accès web ("filtrage parental") grâce à un filtre (Squid).
Les solutions présentées ici ne sont ni parfaites ni complètes. En particulier, nous ne parlons
pas des mécanismes SELinux ou AppArmor, ni des réseaux privés virtuels (VPN). Le but est
principalement d’éveiller votre vigilance et de vous fournir quelques clés pour bien démarrer.
Je tiens cependant à attirer votre attention sur ces deux points :
• Les informations de ce chapitre ne sont pas suffisantes pour éviter tout accès malicieux
à un système Linux ou à votre réseau. Si vous mettez en place un réseau d’entreprise ou
si vous effectuez des tâches dont la sécurité est primordiale, vous avez besoin d’ouvrages
spécialisés.
• Un système que l’on croit sûr est plus dangereux qu’un système non sûr !

29.1 Types de sécurité


Le champ de la sécurité est très large. Il englobe entre autres les éléments suivants :
• Se prémunir des pertes de données. Un disque dur défectueux ou un ordinateur porta-
ble volé sont à l’origine de nombreuses pertes de données. On prévient ce type de risque
par une stratégie de sauvegardes régulières.
• Éviter le vol physique des données. Un ordinateur portable, un disque dur ou une clé
USB volés contiennent souvent des données de valeur. Pour éviter que le voleur ne
puisse les lire, vous devez les chiffrer. Le plus sûr est de chiffrer une partition entière ou
un répertoire. Linux fournit divers outils pour cela (par exemple CryptoFS, DM-Crypt,
eCryptfs, EncFS, Loop-AES et TrueCrypt), qui ne sont cependant pas traités dans cet
ouvrage.
• Se protéger contre les programmes malicieux et les virus. Ce problème est moindre
sous Linux. D’une part, les programmeurs de virus visent surtout les systèmes Windows.
D’autre part, il est comparativement plus difficile de faire des dégâts sous Linux/Unix
dans le cadre d’une utilisation raisonnable. "Utilisation raisonnable" signifie en particulier
de ne pas lancer de programmes inconnus en tant que root et de travailler en tant que
root uniquement lorsque c’est nécessaire.
• Filtrer le contenu indésirable. Lorsqu’on met en place un accès Internet pour une école
ou pour un environnement comparable, un point du cahier des charges est souvent de
filtrer des contenus spécifiques (par exemple la pornographie). Ce point est plus facile à
promettre qu’à mettre en place. On peut certes filtrer des sites donnés avec un serveur
Linux Livre Page 558 Mardi, 23. septembre 2008 1:05 13

558 LINUX

mandataire web, mais, en raison de la nature dynamique d’Internet et des nombreuses


autres possibilités de communication (Usenet, discussion en ligne, etc.), de telles solu-
tions sont forcément incomplètes. Cependant, une protection incomplète est préférable
à une absence totale de protection (ce qui s’applique à tous les aspects de la sécurité).
• Sécuriser les données privées dans le réseau local. Tous les utilisateurs du réseau local
ne doivent pas avoir accès à tous les fichiers et encore moins pouvoir les modifier. Ce
point recouvre avant tout les droits d’accès (y compris sur NFS, Samba, FTP, etc.) et
l’utilisation de mots de passe non triviaux.
• Se prémunir des accès étrangers (pare-feu). Un accès à Internet n’est pas à sens unique.
Un attaquant externe au réseau (pirate) peut essayer d’accéder à vos données ou à celles
de votre réseau, voire de les modifier.
• Éviter les écoutes de transmissions Wi-Fi (VPN). Lorsqu’un réseau est câblé, un pirate
doit accéder à la passerelle Internet ou au réseau interne physiquement. Du point de
vue du pirate, un réseau sans-fil est bien plus confortable. À l’heure actuelle, seul le chif-
frage WPA2 associé à un mot de passe correct est considéré comme sûr. Les anciennes
techniques toujours utilisées (WEP, WPA) sont bien plus simples à forcer. Indépen-
damment du chiffrage Wi-Fi, il est conseillé d’encapsuler le trafic dans un VPN (Virtual
Private Network, réseau privé virtuel).
• Sécuriser les services réseau contre les accès malicieux (SELinux, AppArmor). Des
failles de sécurité dans les services réseau courants (Samba, Sendmail, Apache, etc.) sont
souvent découvertes. Elles permettent à un pirate, sous certaines conditions, de faire
planter un service réseau ou même d’exécuter des commandes. Les mesures préventi-
ves sont de lancer aussi peu de services qu’il est nécessaire, de les faire fonctionner avec
les droits les plus restreints possible (ne pas les faire fonctionner en tant que root) et de
protéger ces services par un pare-feu.
Ces mesures ont cependant des limites. Certains services doivent être accessibles depuis
Internet et ils doivent lire et écrire des fichiers sur l’ordinateur local. Pour assurer une
sécurité optimale, vous pouvez définir des règles avec SELinux ou avec AppArmor.
Vous pouvez par exemple limiter les opérations d’écriture d’un programme à un certain
répertoire ou en limiter les fonctions réseau. Si le service sort du cadre défini par ces
règles, il est arrêté automatiquement.
Mises à jour et La sécurisation d’un ordinateur n’est pas une tâche unique, mais un processus continu.
journalisation
Vous devez mettre à jour régulièrement vos logiciels vers la version actualisée. Aucun pro-
gramme n’est infaillible, et cela est valable également pour les programmes sous Linux.
Lorsqu’un problème de sécurité est découvert, les mises à jour sont généralement disponibles
en quelques jours. Cependant, il vous revient de les installer.
Il est également conseillé de surveiller régulièrement les fichiers de journalisation de votre
ordinateur. Un signe d’alarme très clair est par exemple l’augmentation des lignes du type
Failed login (connexion échouée).
Lectures Nous ne pouvons pas traiter dans cet ouvrage de tous les aspects susmentionnés, et nous en
conseillées
avons probablement omis certains. Vous trouverez sur Internet d’innombrables ressources
sur le thème de la sécurité. Les adresses http://linuxsecurity.com/, http://www.cert.org/ et
http://lwn.net/security sont de bons points de départ.
Linux Livre Page 559 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 559

Intéressez-vous régulièrement aux informations de sécurité de votre distribution. Vous y


trouverez entre autres les mises à jour relevant de la sécurité des applications. Indépendam-
ment de la distribution, le Red Hat Enterprise Linux Security Guide est une lecture intéressante
et se trouve à l’adresse :
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/en-US/Security_Guide/.

29.2 Bases de l’analyse réseau


Avant de pouvoir sécuriser votre ordinateur, vous devez savoir comment les services réseau
fonctionnent, lesquels fonctionnent, quels ports sont ouverts, etc. Cette section pose les
bases de TCP/IP et décrit quelques programmes pour analyser l’état courant de votre
réseau, par exemple pour afficher toutes les connexions réseau actives. Le tableau suivant
récapitule les acronymes les plus importants.

Glossaire réseau
DNS Domain Name Service, service de noms de domaines
HTTP HyperText Transfer Protocole, protocole de transfert hypertexte
ICMP Internet Control Message Protocol, protocole de messages de contrôle Internet
IP Internet Protocol, protocole Internet
NFS Network File System, système de fichiers réseau
TCP Transmission Control Protocol, protocole de contrôle des transmissions
UDP User Datagram Protocol, protocole de datagrammes utilisateur

IP Presque tous les services réseau courants sont fondés sur des paquets IP. Par exemple,
lorsqu’un utilisateur souhaite accéder à votre ordinateur par FTP, il démarre sur son ordinateur
un client FTP. Celui-ci envoie des paquets IP spéciaux à votre ordinateur. Si un serveur FTP
est installé sur votre ordinateur, il intercepte le paquet et réagit à la requête en renvoyant des
paquets IP.
En plus des données, un paquet IP contient quatre informations importantes : l’adresse IP
de l’expéditeur, le port de l’expéditeur, l’adresse du destinataire et son port. Ces données
indiquent d’où vient le paquet et où il va.
Adresses et Le sens d’une adresse IP devrait être clair (voir le Chapitre 26). Les ports sont utilisés pour
ports IP
identifier les différents services. Par exemple, pour demander un document WWW, on uti-
lise généralement le port 80. Le numéro de port est un nombre de 16 bits. Les ports de 1 à
1 024 sont considérés comme privilégiés et sont réservés pour les serveurs (par exemple le
serveur HTTP). Les ports restants peuvent être utilisés par les clients, mais il existe d’autres
numéros de ports déjà réservés pour des buts précis.
Le fichier /etc/services définit des alias pour les ports IP. Reportez-vous à ce fichier pour
savoir à quel protocole est associé un port donné.
Linux Livre Page 560 Mardi, 23. septembre 2008 1:05 13

560 LINUX

Protocoles IP Il existe différents protocoles pour les paquets IP. La plupart des services Internet utilisent
TCP. Ce protocole attend des accusés de réception. Il existe aussi des protocoles qui n’atten-
dent pas de telles confirmations, comme ICMP (qui est par exemple utilisé par ping) et UDP
(utilisé par exemple par DNS et NFS).
Filtres de Les paquets IP peuvent être créés par les programmes locaux ou arriver depuis l’extérieur,
paquets IP
c’est-à-dire depuis une interface réseau ou PPP. C’est le noyau qui décide quoi faire de ces
paquets. Il peut les rejeter ou les transmettre à un programme ou à une autre interface. Les
critères de décision regroupent les caractéristiques que nous venons de détailler. Pour met-
tre en œuvre un filtre de paquets, vous devez aussi disposer d’un moyen d’ajouter des
règles au noyau pour qu’il gère les paquets individuels. La commande iptables est fournie
à cet effet depuis le noyau 2.4 – nous en parlerons dans sa section dédiée.
Déterminer les Le principe de la plupart des services réseau est de surveiller un port donné. Si un paquet
ports actifs
arrive sur ce port, le service s’occupe de le traiter et d’y répondre. Les paquets qui ne sont
pas envoyés à un port surveillé sont simplement ignorés et ne posent donc pas de risques.
Pour protéger un ordinateur d’éventuelles menaces, il est donc nécessaire de disposer d’une
liste des ports surveillés (à l’inverse, un pirate essaiera d’abord de déterminer les ports
actifs).
La commande netstat est très utile pour examiner l’activité réseau de l’ordinateur local.
Selon les options avec lesquelles elle est lancée, elle affiche une énorme quantité d’informations
différentes.
Par exemple, a affiche les ports qui ne sont pas actifs, tu limite la sortie aux protocoles TCP
et UDP et pe affiche le numéro du processus et le compte sous lesquels le programme a été
lancé.
Pour savoir quel programme utilise quels ports TCP ou UDP, la commande lsof est égale-
ment utilisable. lsof -i [protocole]@hôte:port affiche une liste des processus qui utilisent
la ressource réseau indiquée. Par exemple, lsof -i udp affiche les programmes qui utilisent
le port UDP et lsof -i :22 affiche ceux qui utilisent le port 22.
netstat et lsof ne s’appliquent qu’aux ordinateurs locaux et ne sont généralement pas à
disposition d’un éventuel pirate. Celui-ci peut en revanche utiliser un scanneur de ports. De
tels programmes envoient des paquets aux ports importants d’un ordinateur et, en fonction
de la réponse, ils déterminent quel service fonctionne avec quelle version de quel pro-
gramme. La commande nmap en est l’exemple le plus connu, mais il existe de nombreux
autres programmes de ce type.

Un balayage des ports d’une machine avec nmap est considéré par de nombreux administrateurs comme
une tentative d’intrusion. N’utilisez pas un outil comme nmap sur un ordinateur inconnu ! Cependant, c’est
un outil pratique pour reconnaître des faiblesses dans votre propre réseau.

nmap n’est que rarement installé par défaut, mais il est généralement disponible en tant que
paquetage. Vous pouvez aussi trouver son code source à l’adresse http://nmap.org/. nmap
dispose également d’une interface graphique, que vous pouvez généralement installer
grâce au paquetage nmap-frontend.
Linux Livre Page 561 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 561

29.3 Sécuriser les services réseau


La section précédente a montré comment connaître rapidement les services réseau qui fonc-
tionnent sur l’ordinateur. L’étape suivante consiste à éteindre les services non utilisés et à
sécuriser autant que possible tous les autres services :
• Désinstallez tous les services dont vous n’avez pas besoin. Ce qui n’est pas installé ne
peut pas être exécuté et ne pose donc aucun risque.
Il arrive que le nom du paquetage ne dérive pas directement du nom du programme.
Dans ce cas, déterminez l’emplacement exact du fichier exécutable et lancez, selon votre
système de paquetages, rpm -qf /chemin/nom ou dpkg -S /chemin/nom.
• Au lieu de les désinstaller, vous pouvez aussi empêcher les services de démarrer (si
vous envisagez par exemple de les utiliser plus tard).
Le système InitV est généralement responsable du démarrage des services. Selon la dis-
tribution, la méthode pour empêcher le démarrage des scripts InitV diffère, par exemple
chkconfig --del pour Fedora et Red Hat ou insserv -r sous SUSE. Vous trouverez
plus d’informations sur InitV au Chapitre 24.
Les services réseau lancés par xinetd sont un cas particulier dont nous parlerons dans
cette section.
• Il est rarement utile de partager des répertoires ou des imprimantes sur Internet. Vous
ne pouvez certes que rarement vous passer de tels services, mais vous pouvez au moins
en restreindre l’utilisation à votre réseau local.
Pour de nombreux services (par exemple xinetd, SSH et NFS), on utilise à cette fin la
bibliothèque TCP Wrapper et ses fichiers de configuration /etc/hosts.allow et /etc/
hosts.deny. Les autres services (par exemple Apache, MySQL et Samba) utilisent géné-
ralement leurs propres fichiers de configuration.
• Comme niveau de protection supplémentaire, un pare-feu filtre de paquets est conseillé :
grâce à des règles, celui-ci peut bloquer les paquets provenant d’Internet à destination
de services divers.
Cependant, ne partez pas du principe qu’un pare-feu est suffisant et que les autres points
sont superflus ! Aucun pare-feu n’est parfait et il est toujours possible d’omettre un détail
critique pour votre réseau.

Bases de xinetd
Les programmes qui mettent à disposition des services réseau peuvent être divisés en deux
catégories :
• Les démons. Ils surveillent un port donné et, lorsqu’un paquet y est adressé, le traitent
et y répondent. Ils sont gérés par InitV.
• Les programmes démarrés à la demande. Seul le programme xinetd est démarré. Il
surveille plusieurs ports et démarre au besoin les services correspondants. xinetd est au
cœur de cette section.
Linux Livre Page 562 Mardi, 23. septembre 2008 1:05 13

562 LINUX

xinetd signifie Extended Internet Service Daemon (démon de services Internet étendu). Il est le
successeur du programme inetd. Vous trouverez de la documentation sur xinetd à l’adresse
http://www.xinetd.org/.
Démarrage xinetd est un démon. Il est installé par défaut sur de nombreuses distributions, mais il n’est
et arrêt
pas toujours démarré, pour des raisons de sécurité (vérifiez cela avec ps ax |grep xinetd).
xinetd se lance ensuite comme tout autre service (voir la section 14.4).
/etc/services xinetd est contrôlé par plusieurs fichiers que nous décrirons dans ce qui suit. Les services
réseau se différencient les uns des autres par le port et le protocole qu’ils utilisent. Par exem-
ple, telnet utilise le port 23 et les protocoles tcp et udp. Pour que les fichiers de configura-
tion de xinetd restent lisibles, il existe un fichier, /etc/services, qui associe les noms de
divers services Internet (par exemple ftp, telnet, etc.) au protocole et au numéro de port
utilisés.
/etc/ /etc/xinetd.conf contient quelques paramètres de base, concernant par exemple la journa-
xinetd.conf
lisation ou les adresses IP définies par défaut. En général, vous pouvez laisser ces paramè-
tres tels qu’ils ont été définis par défaut. L’option includedir indique le répertoire contenant
les fichiers de configuration supplémentaires (généralement /etc/xinetd.d).
/etc/xinetd.d Le répertoire /etc/xinetd.d contient, pour chaque service enregistré dans xinetd, un fichier
de configuration spécifique. Le nom de ces fichiers ne joue pas de rôle particulier : xinetd lit
tous les fichiers de ce répertoire et les prend en compte (les fichiers dont le nom se termine
par ~ ou contenant un point ne sont pas pris en compte).
Ces fichiers ont une structure uniformisée. L’exemple suivant est un fichier de configuration
pour un serveur rsync :
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

Voici une courte explication des mots clés que vous pouvez rencontrer dans le fichier de
configuration de xinetd :
• service est le nom du service (correspondant à /etc/services).
• socket_type et protocol indiquent comment les données sont transférées entre le client
et le serveur.
• type = INTERNAL indique qu’il s’agit d’un service mis directement à disposition par
xinetd.
• server est le nom du programme (s’il ne s’agit pas d’un service interne de xinetd).
• server_args fournit des paramètres qui sont transmis au démarrage du service.
• user est le nom du compte sous lequel le programme est lancé (souvent root, mais cela
peut aussi être news, mail, etc.).
• disable = Yes / No indique si le service est actif ou bloqué (Yes pour les services bloqués).
Linux Livre Page 563 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 563

• log_* définit les niveaux de journalisation du service.


• man xinetd.conf fournit une référence complète de tous ces mots clés. Dans la plupart
des cas, vous pouvez laisser les fichiers tels qu’ils ont été créés à l’installation.
Sécurisation Pour des raisons de sécurité, il serait optimal de ne pas lancer du tout xinetd et son prédéces-
de xinetd
seur inetd sur un pare-feu ou sur une passerelle Internet. Si vous ne pouvez pas vous passer des
programmes contrôlés par xinetd, vous devriez au moins considérer les éléments suivants :
• Désinstallez ou désactivez tous les services que vous n’utilisez pas qui sont démarrés
par xinetd. Pour les désactiver, ajoutez une ligne disable=Yes dans le fichier /etc/
xinetd.d/nom_du_service.
Sous Red Hat et Fedora, vous pouvez aussi désactiver ou réactiver un service avec chk-
config -del nom ou chkconfig -add nom. Ces commandes modifient la ligne disable.
• Évitez telnet, utilisez ssh. sshd n’est pas contrôlé par xinetd.
• Configurez l’accès aux services restants de manière aussi restrictive que possible. Utilisez
pour cela les fichiers /etc/hosts.deny et /etc/hosts.allow (voir ci-après).
Les modifications de la configuration sont prises en compte uniquement lorsque xinetd a
relu les fichiers de configuration. xinetd vérifie si des services fonctionnent alors qu’ils ne
sont plus censés le faire dans le cadre de la nouvelle configuration : ceux-ci sont alors terminés.
root# /etc/init.d/xinetd reload

hosts.allow et hosts.deny
Les fichiers /etc/hosts.allow et /etc/hosts.deny contrôlent quels ordinateurs ont accès à quels
services. Ces paramètres sont valides aussi bien pour les services contrôlés par xinetd que pour
divers services réseau qui utilisent la bibliothèque TCP Wrapper pour les contrôles d’accès.
Lorsqu’un client du réseau souhaite utiliser un service contrôlé par hosts.allow et
hosts.deny, le fichier hosts.allow est pris en compte en premier. Si l’accès y est explicite-
ment autorisé, le service réseau est démarré. Sinon, le fichier hosts.deny est lu : si l’accès s’y
trouve, alors il est explicitement interdit et le client reçoit un message d’erreur. Si le client ne
se trouve ni dans hosts.allow ni dans hosts.deny, l’accès est autorisé.
hosts.deny La configuration la plus sûre est d’interdire tous les accès à tous les clients à tous les services
réseau. L’instruction spawn journalise toutes les tentatives d’accès dans le fichier /var/log/
deny.log.
#/etc/hosts.deny
ALL : ALL : spawn (echo Attempt from %h %a to %d at $(date) \
>> /var/log/deny.log)

hosts.allow Dans un second temps, vous pouvez autoriser l’utilisation de certains services. La configu-
ration suivante autorise :
• des accès locaux (localhost) à tous les services ;
• un accès à SSH pour tous les ordinateurs (y compris depuis Internet) ;
• l’utilisation de NFS et FTP dans le réseau local.
Linux Livre Page 564 Mardi, 23. septembre 2008 1:05 13

564 LINUX

# /etc/hosts.allow
ALL : localhost mars mars.sol : ALLOW
sshd : ALL : ALLOW
vsftpd : 192.168.0.0/255.255.255.0 *.sol : ALLOW
portmap : 192.168.0.0/255.255.255.0 *.sol : ALLOW
mountd : 192.168.0.0/255.255.255.0 *.sol : ALLOW

Prise en charge Vous pouvez déterminer avec ldd si un programme spécifique utilise TCP Wrapper
de TCP
Wrapper (libwrap) :
utilisateur$ ldd /usr/sbin/sshd |grep wrap
libwrap.so.0 => /lib/libwrap.so.0 (0xb7ef2000)

Notez que, sous SUSE, cupsd (service d’impression) utilise TCP Wrapper, ce qui n’est géné-
ralement pas le cas pour les autres distributions. Vous devez donc penser à en autoriser
l’accès sur le réseau pour partager une imprimante.

29.4 Introduction aux pare-feu


Le concept de pare-feu est très souvent évoqué, mais il n’existe pas de définition universel-
lement acceptée. Un pare-feu peut être matériel : il s’agit alors généralement d’un ordina-
teur qui fournit une interface entre le réseau local et Internet. Si l’accès à Internet se fait via
modem/RNIS/ADSL, le pare-feu fait également souvent office de contrôle d’accès à Inter-
net. Inversement, de nombreux routeurs (RNIS ou ADSL) fournissent également des fonctions
élémentaires de pare-feu.
Souvent, le terme de pare-feu désigne également un paquetage logiciel installé sur l’ordina-
teur et qui, lorsqu’il est bien configuré, améliore la configuration de l’ordinateur. Vous pou-
vez mettre en place un pare-feu manuellement, comme cela est décrit dans ce chapitre. Dans
de nombreuses distributions, vous pouvez aussi utiliser des outils de configuration graphi-
ques (dont nous ne parlerons pas ici). Une troisième possibilité est d’installer un paquetage
de pare-feu commercial.
Nous aborderons dans cette section un pare-feu qui sécurise le trafic TCP/IP via un filtre de
paquets. Ce type de filtre analyse les paquets réseau qui arrivent ou qui sortent de l’ordina-
teur. Selon les règles définies, les paquets sont transmis ou bloqués. La section suivante pré-
sente les détails de mise en œuvre d’un filtre de paquets. Cette section vise avant tout à
éclaircir le vocabulaire.

Pare-feu pour un ordinateur personnel


Jusqu’à relativement récemment, il semblait absurde de protéger un ordinateur personnel
par un pare-feu. Les ordinateurs personnels n’étaient connectés à Internet que de façon irré-
gulière et avec peu de débit via un modem ou une carte RNIS. Ces ordinateurs n’étaient de
ce fait qu’une cible peu attractive et la nature même de la connexion à Internet en rendait
l’accès plutôt difficile.
Linux Livre Page 565 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 565

Entre-temps, la situation a changé : de plus en plus de foyers disposent d’une connexion


permanente par ADSL ou par câble. Votre ordinateur est donc accessible à tout instant
depuis l’extérieur par l’adresse IP définie par votre fournisseur d’accès à Internet.
Risques de Cela ne signifie évidemment pas qu’un pirate peut entrer facilement. Il peut cependant
sécurité
envoyer des paquets IP à votre ordinateur (par exemple avec ping) et celui-ci, selon sa confi-
guration, lui répond (jusqu’ici aucun problème). Si votre ordinateur fait fonctionner un ser-
veur SSH, un pirate peut tenter de se connecter. Il doit pour cela fournir un nom d’utilisateur
et un mot de passe – si vous utilisez des mots de passe triviaux, quelques essais peuvent suf-
fire. De telles attaques peuvent être automatisées : des dictionnaires de mots sont essayés les
uns à la suite des autres. Si vous avez un réseau Windows avec des partages sans mot de
passe, les répertoires Windows peuvent être lus depuis Internet sans mot de passe également !
Une source supplémentaire d’insécurité est le Wi-Fi. Si la connexion entre votre ordinateur
et le point d’accès Wi-Fi est protégée par une clé WEP de 104 bits, un pirate peut trouver
cette clé en quelques jours.
Les utilisateurs privés n’ont généralement aucune notion de sécurité. Leurs ordinateurs sont
souvent ouverts à tous les vents. Inversement, il existe des outils professionnels et gratuits à
la disposition des pirates, qui servent par exemple à trouver automatiquement les trous de
sécurité d’un ordinateur. L’utilisation de tels outils ne demande que peu de connaissances.
Vous vous dites peut-être que votre ordinateur ne contient aucune donnée susceptible
d’intéresser qui que ce soit. Mais une attaque n’a pas nécessairement pour but d’espionner
ou de manipuler des données. Il s’agit souvent d’un "jeu" pour des adolescents désœuvrés.
Le but peut aussi être d’installer un petit programme sur votre ordinateur, qui peut être pré-
programmé pour se lancer à une date définie ou qui peut être contrôlé à distance par le
pirate. Mais que vos données soient perdues en raison d’une attaque ciblée ou en raison
d’une expérience idiote, le résultat est le même.

Pare-feu pour le réseau local


Dans un réseau local (d’entreprise), le cahier des charges de la sécurité est bien plus impor-
tant que pour un ordinateur privé. Les conditions sont généralement meilleures en termes
d’infrastructure. En pratique, cela signifie qu’au moins un ordinateur est dédié à l’accès à
Internet et à sa protection. Les services réseau fonctionnent sur d’autres ordinateurs. La
Figure 29.1 est un exemple de cela.
Distributions Un PC dédié en tant que pare-feu peut sembler onéreux, mais ce n’est pas nécessairement le
pare-feu
cas. Un ancien PC à processeur Pentium avec deux cartes réseau suffit amplement. Cepen-
dant, il est souvent difficile, voire impossible, d’installer une distribution Linux habituelle
sur ce type de matériel. Une alternative attractive consiste à utiliser un live CD pare-feu.
Linux est démarré directement depuis le CD et n’a pas besoin de disque dur (si un disque
dur est disponible, il peut cependant être utilisé pour la journalisation). Vous trouverez de
telles distributions aux adresses http://www.devil-linux.org/ et http://distrowatch.com/
dwres.php?resource=firewalls. Il existe aussi des distributions installables prévues pour un
pare-feu ou un routeur, comme http://www.ipcop.org/.
Linux Livre Page 566 Mardi, 23. septembre 2008 1:05 13

566 LINUX

Figure 29.1
Pare-feu pour un réseau
local.

Vous pouvez également vous servir d’une distribution standard comme Ubuntu ou SUSE et
la configurer pour l’utiliser sur un pare-feu. Vous devez cependant effectuer une installation
minimale et vérifier que seuls les services et programmes vraiment nécessaires sont lancés.
Variantes Pour les très petits réseaux, un ordinateur peut faire office de pare-feu et de serveur réseau
(voir la Figure 28.1). Cela n’est pas optimal car les services qui fonctionnent sur cet ordina-
teur représentent tous un risque de sécurité éventuel. Cependant, une architecture de ce
type est toujours meilleure qu’une absence totale de pare-feu.
Dans les gros réseaux d’entreprises, il existe souvent, à l’inverse, deux pare-feu. Le premier
pare-feu n’est qu’une sécurité de base, mais laisse passer les protocoles Internet habituels
comme HTTP ou FTP. La zone réseau qui se trouve derrière ce premier pare-feu s’appelle la
DMZ pour Demilitarized Zone (zone démilitarisée) : la sécurité de cette zone n’est que limi-
tée. Elle héberge généralement le serveur web ainsi que d’autres serveurs réseau qui doivent
être accessibles publiquement (depuis Internet).
La DMZ est séparée du réseau local par un second pare-feu. Les services supplémentaires
qui ne sont accessibles qu’au réseau local se trouvent sur ce second réseau et ne sont absolu-
ment pas accessibles depuis l’extérieur. La configuration d’un pare-feu multiple dépasse
cependant le cadre de cet ouvrage ; vous trouverez plus d’informations à ce sujet dans des
ouvrages spécialisés.
Pare-feu pour En plus de la sécurisation du réseau par un pare-feu central, on peut aussi sécuriser chaque
les ordinateurs
clients d’un PC d’un réseau local individuellement. Ce procédé offre plusieurs avantages : il peut vous
réseau local protéger d’accès depuis l’intérieur du réseau, il fournit une protection supplémentaire au
cas où le pare-feu extérieur tomberait ou serait mal configuré et il protège les ordinateurs
lorsqu’ils sont utilisés à l’extérieur de l’entreprise (par exemple les ordinateurs portables).
Linux Livre Page 567 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 567

Cependant, cela présente également des inconvénients : cela augmente la charge d’adminis-
tration et peut bloquer des services utiles à l’intérieur du réseau.
Les ordinateurs connectés au réseau local par un réseau sans-fil représentent un cas parti-
culier. D’un point de vue technique, la sécurité est optimale lorsque la connexion est établie
avec un VPN (Virtual Private Network, réseau privé virtuel). Le trafic réseau devrait (y com-
pris sur le client) être limité sur un réseau Wi-Fi non sûr à l’établissement du VPN, ce qui se
fait facilement avec un pare-feu.

29.5 Pare-feu avec iptables


Cette section montre comment mettre en place un pare-feu filtre de paquets. Le filtre de
paquets analyse tout le trafic (tous les paquets IP) et refuse ou transmet les paquets indivi-
duellement. Un pare-feu peut ainsi éviter qu’un paquet servant à initialiser une connexion
FTP depuis Internet vers votre ordinateur ne soit transmis. Cependant, vous pouvez établir
une connexion FTP vers l’extérieur.

Introduction
Pour configurer votre filtre de paquets, vous devez vous familiariser avec la commande
iptables. Elle est disponible depuis le noyau 2.4 et fait partie du système netfilter. man
iptables est une référence de la syntaxe de cette commande.
La Figure 29.2 résume, de manière très simplifiée, les chemins que peut prendre un
paquet IP dans un système de filtres. Vous en trouverez une description détaillée à l’adresse
http://open-source.arkoon.net/kernel/kernel_net.png.

Figure 29.2
Représentation simplifiée
du système iptables/
netfilter.

La liste suivante décrit rapidement les différentes étapes d’un paquet IP dans le noyau :
• Routage. En fonction de l’adresse IP et du port, le noyau décide si le paquet doit être
traité localement ou s’il doit être transmis à une autre interface réseau et à un autre ordi-
nateur (que ce soit sur le réseau local ou sur Internet).
Linux Livre Page 568 Mardi, 23. septembre 2008 1:05 13

568 LINUX

• Filtrage des entrées. En fonction d’un ensemble de règles, on teste si le paquet doit être
accepté et transféré aux programmes locaux (par exemple les démons réseau) ou non.
• Traitement local. Cette boîte représente tous les programmes qui traitent les paquets IP
sur l’ordinateur local ou qui créent des paquets IP (c’est-à-dire les services réseau,
comme ftpd, httpd, etc.).
• Filtrage des sorties. En fonction d’un ensemble de règles, on teste si le paquet peut quitter
le noyau.
• Filtrage des transferts. Ce filtre décide quels paquets, parmi ceux qui doivent être transférés
(mais non traités), peuvent effectivement passer par le noyau.
• Postroutage NAT. Si l’ordinateur local fournit un accès à Internet à d’autres ordinateurs
par le biais d’une mascarade, cette étape effectue les manipulations nécessaires sur les
paquets IP.
À la Figure 29.2, vous pouvez voir que seules les boîtes Filtrage des entrées, Filtrage des sor-
ties, Filtrage des transferts et éventuellement Postroutage NAT sont associées à un filtre de
paquets. Toutes les autres parties du schéma décrivent des fonctions réseau du noyau qui
sont gérées par le noyau ou par des services réseau courants fonctionnant sur le système
local et n’ayant pas de rapport avec le filtre de paquets.

Dans de nombreuses illustrations de pare-feu, vous pouvez voir à gauche Internet (dangereux), puis le
pare-feu, puis le réseau local (plus sûr). La Figure 29.2 ne fait pas cette distinction. Les paquets qui arrivent
à l’ordinateur proviennent aussi bien du réseau local que d’Internet. Cela s’applique également aux paquets
qui quittent le pare-feu à droite.

Le noyau s’occupe de transférer les paquets, qu’ils proviennent d’une interface réseau ou
d’un programme local. Trois comportements sont alors possibles :
• Deny (refusé). Le paquet est refusé sans information supplémentaire. Le paquet est
perdu, il n’existe plus. L’expéditeur ne sait pas ce qui lui est arrivé.
• Reject (rejeté). Le paquet est refusé avec un message de retour. En ce qui concerne le
paquet, le résultat est le même, mais l’expéditeur sait, grâce à un autre paquet ICMP,
que son paquet a été refusé.
• Accept (accepté). Le paquet est transmis.
Vous trouverez plus d’informations sur le fonctionnement et l’utilisation de iptables aux
adresses suivantes :
• http://www.unixgarden.com/index.php/administration-systeme/netfilter-firewalling-
sous-linux ; http://www.unixgarden.com/index.php/securite/mise-en-oeuvre-d’une-
passerelle-Internet-sous-linux ; http://www.netfilter.org/ ; http://people.netfilter.org/
rusty/unreliable-guides/.

Tables et chaînes de règles iptables


L’idée de base d’un filtre de paquets iptables est la suivante. Chaque paquet IP traverse dif-
férents points dans le noyau et ces points vérifient si le paquet y est autorisé. Si oui, il est
transmis au point suivant, sinon il est détruit ou renvoyé à l’expéditeur.
Linux Livre Page 569 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 569

Le système iptables se compose de trois tables :


• Table filter. Cette table contient généralement le système de règles du filtre de paquets
(pare-feu) lui-même.
• Table NAT. Cette table n’est active que lorsque la fonction de mascarade du noyau est
elle-même active. Elle permet diverses transformations d’adresses pour les paquets qui
entrent dans le noyau ou qui en sortent.
• Table mangle. Cette table manipule également les paquets IP. Elle effectue des tâches
spéciales dont nous ne parlerons pas dans cet ouvrage.
Chacune de ces tables se compose de plusieurs chaînes de règles (chains) :
• Table filter : input (entrée), forward (transfert) et output (sortie) ;
• Table NAT : prerouting (préroutage), output (sortie) et postrouting (postroutage) ;
• Table mangle : prerouting (préroutage) et output (sortie).
La Figure 29.2 représente les quatre chaînes de règles les plus importantes de cet ensemble
de huit chaînes.

Les chaînes sont indépendantes les unes des autres ! Il existe donc deux chaînes prerouting et trois chaînes
output différentes.
Il arrive cependant que les documentations parlent de chaîne output sans indiquer de laquelle il s’agit.
Dans ce cas, il s’agit de la chaîne de la table filter, qui est de loin la plus importante.
La même convention est utilisée par la commande iptables. On peut y indiquer la table souhaitée avec
l’option -t. Si cette option n’est pas indiquée, la commande s’applique à la table filter.

Lorsqu’un paquet rencontre une chaîne de règles, le noyau vérifie toutes les règles.
Lorsqu’une règle s’applique au paquet, l’action prévue est exécutée (par exemple transmettre,
supprimer ou renvoyer le paquet). Lorsque aucune règle ne correspond, le comportement
par défaut du filtre s’applique (ce comportement dépend de la configuration).
De base, dans le noyau, seules la table filter et ses trois chaînes input, forward et output sont
actives. Ces chaînes ne contiennent aucune règle et leur comportement par défaut est de
transmettre les paquets.
Tout l’art de la mise en place d’un filtre de paquets est donc de définir le comportement par
défaut et le jeu de règles des chaînes de filtres. C’est à cela que sert la commande iptables.

Remettre à zéro le pare-feu


Dans ce qui suit, je pars du principe que vous vous êtes familiarisé avec la syntaxe élémen-
taire de la commande iptables (voir man iptables). La commande iptables n’est générale-
ment pas lancée manuellement, mais par un script. Sur mon ordinateur, ce script et divers
autres scripts de ce type se trouvent dans un répertoire que j’ai créé pour cela, /etc/maconfig.
Cela me permet de voir d’un seul coup d’œil quels scripts sont les miens et lesquels font
partie de la distribution.
Linux Livre Page 570 Mardi, 23. septembre 2008 1:05 13

570 LINUX

L’ordre des commandes iptables est important car la première règle rencontrée termine le traitement.
Lorsque vous énoncez des règles de pare-feu, il existe deux stratégies : vous pouvez autoriser certains
paquets individuels et bloquer tous les autres paquets ou vous pouvez autoriser tous les paquets et n’inter-
dire que certains paquets particulièrement dangereux. Cette seconde possibilité correspond au comporte-
ment par défaut de iptables, qui consiste à tout accepter tant qu’aucune règle ne l’interdit
explicitement.

Un des problèmes rencontrés par les scripts de pare-feu est qu’ils sont parfois lancés par
d’autres scripts dans lesquels la variable PATH n’est pas définie ou ne l’est que partiellement.
Exécuter directement iptables peut alors échouer car la commande n’est pas trouvée.
Cependant, les distributions ne sont pas cohérentes entre elles sur l’emplacement de la com-
mande. La première étape d’un tel script est donc généralement de chercher la commande
iptables, que nous enregistrons dans la variable IPT.
Le script suivant sert à remettre à zéro iptables : il supprime toutes les règles de filtrage
définies préalablement. Puis, tout le trafic IP est autorisé (ce script n’offre donc absolument
aucune protection).
Vous devez lancer ce type de script avant d’essayer de mettre en place vos propres règles.
Sinon, les règles définies dans les essais précédents peuvent rester actives et interférer avec
ce que vous essayez de faire.
#!/bin/sh
# /etc/maconfig/iptables-reset
IPT=$(which iptables)
if [ -z $IPT ]; then
[ -x /sbin/iptables ] && IPT=/sbin/iptables
[ -x /usr/sbin/iptables ] && IPT=/usr/sbin/iptables
fi
[ -z $IPT ] && (echo "Impossible de trouver iptables !"; exit)
# par défaut on accepte tout
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P POSTROUTING ACCEPT -t nat
$IPT -P PREROUTING ACCEPT -t nat
$IPT -P OUTPUT ACCEPT -t nat
# supprime toutes les règles
$IPT -F
$IPT -F -t nat
# supprime toutes les règles définies par les utilisateurs
$IPT -X
# supprime le transfert IP (pas de mascarade)
echo 0 > /proc/sys/net/ipv4/ip_forward

Sécuriser l’accès à Internet


Interface Le script suivant définit un pare-feu minimal pour un seul ordinateur connecté à Inter-
Internet
net. L’interface est définie par la variable INET. Dans l’exemple suivant, je suppose que
l’accès à Internet se fait par le biais de l’interface eth1. Vous devez bien sûr adapter INET
Linux Livre Page 571 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 571

à votre environnement. Si votre connexion à Internet est assurée par un modem (ADSL) ou
par RNIS, INET doit prendre la valeur ppp0 ou ippp0. Si l’interface varie lors de la connexion
à Internet, vous pouvez aussi utiliser l’écriture ppp+ ou ippp+. La commande iptables prend
alors en compte toutes les interfaces de ce type.
Repousser les Le filtre se compose d’une simple chaîne de règles wall. Elle protège de manière élégante et
tentatives de
connexions efficace des nouvelles connexions depuis l’extérieur. La première règle de wall indique que
externes tous les paquets appartenant à une connexion déjà établie sont acceptés.
La deuxième règle accepte les paquets qui initient une nouvelle connexion dès lors qu’ils ne
sont pas initiés à partir de l’interface Internet. Il est donc possible de démarrer une session
SSH depuis le réseau local.
La troisième règle est que tous les paquets qui ne correspondent pas aux règles précédentes
sont refusés. Cette règle concerne donc l’interdiction de tout ce qui n’est pas explicitement
autorisé. Par exemple, un pirate potentiel n’arrivera donc pas à démarrer une session SSH
(cela est également valable pour tous les autres services réseau : HTTP, FTP, telnet, etc.).
Les deux dernières commandes indiquent que les règles de wall s’appliquent à tous les
paquets qui passent par les chaînes input ou forward.
#!/bin/sh
# /etc/maconfig/iptables-firewall
# Mini-Firewall pour un accès ADSL via ppp
# remise à zéro
/etc/maconfig/iptables-reset
# paramétrage
IPT=... #à définir comme dans le script iptables-reset
INET=eth1
# cette nouvelle chaîne bloque toutes les tentatives de connexion
# provenant de l’extérieur (Internet)
$IPT -N wall
$IPT -A wall -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A wall -m state --state NEW -i ! $INET -j ACCEPT
$IPT -A wall -j DROP
# utiliser la chaîne pour INPUT et FORWARD
$IPT -A INPUT -j wall
$IPT -A FORWARD -j wall

Sécuriser un client sans-fil sans VPN


Vous pouvez également utiliser le script ci-dessus si vous accédez à Internet via Wi-Fi. Selon
la distribution, l’interface à utiliser peut être eth* ou wlan*. Le plus simple est de déterminer
cela avec ifconfig.
Ce pare-feu ne permet pas aux autres utilisateurs du réseau Wi-Fi de se connecter à votre
ordinateur en SSH, de lire les répertoires Samba que vous partagez, etc. Si le but du réseau
Wi-Fi n’est pas de vous connecter à Internet, mais à un réseau local, ce pare-feu est trop
restrictif.
Linux Livre Page 572 Mardi, 23. septembre 2008 1:05 13

572 LINUX

Vous ne devez pas non plus placer une confiance démesurée dans ce pare-feu. Si un pirate
craque le chiffrage de votre réseau sans-fil, il peut lire le trafic réseau non chiffré, par exem-
ple les mots de passe d’un formulaire web. Le pare-feu n’a aucune influence sur cela. Il
empêche qu’un pirate ne se connecte à votre ordinateur mais ne fournit aucune protection
contre l’écoute du trafic.
Il est donc conseillé de fournir l’accès à Internet et à tous les autres services réseau par-des-
sus un VPN. Cela est particulièrement vrai si l’accès sans-fil ne sert pas qu’à l’accès à Internet,
mais aussi au réseau local d’une entreprise.

Sécuriser un client sans-fil avec PPTP-VPN


Lorsqu’un client est connecté au réseau local par un VPN, il dispose de deux réseaux en
même temps : un réseau non sûr (le réseau Wi-Fi) et un réseau sûr (le VPN).
Un pare-feu du côté client a ici la tâche principale de sécuriser l’interface Wi-Fi. Sur cette
interface, seuls les paquets nécessaires à la configuration du client (DHCP) et à l’établissement
du tunnel VPN peuvent circuler.
L’idée de base du pare-feu est de ne définir que quelques règles qui autorisent les paquets ser-
vant à configurer le VPN. Tous les autres paquets sont interdits. Les règles du VPN dépendent
ensuite du protocole utilisé pour le VPN. Nous ne parlerons dans cet ouvrage que de PPTP.
Accepter les Les instructions suivantes acceptent les paquets DHCP (protocole UDP sur les ports 67 et 68).
paquets DHCP
# /etc/maconfig/iptable-firewall
# Pare-feu pour un client VPN Wi-Fi
# remise à zéro
/etc/maconfig/iptables-reset
# paramétrage
IPT=... #à définir comme dans le script iptables-reset
WLAN=eth1
# accepter le trafic sur les ports 67 et 68 UDP (DHCP)
$IPT -A INPUT -i $WLAN -p udp --dport 67 -j ACCEPT
$IPT -A OUTPUT -o $WLAN -p udp --dport 67 -j ACCEPT
$IPT -A INPUT -i $WLAN -p udp --dport 68 -j ACCEPT
$IPT -A OUTPUT -o $WLAN -p udp --dport 68 -j ACCEPT

Accepter les PPTP utilise le protocole TCP sur le port 1 723 ainsi que le protocole GRE (Generic Encapsu-
paquets PPTP
lation, encapsulation générique), pris en compte par l’option -p 47 de iptables. Pour que
PPTP fonctionne en tant que client, les paquets TCP en entrée et en sortie du port 1 723 doi-
vent être acceptés :
# extension de /etc/maconfig/iptables-firewall
# accepter les paquets sur le port 1723 (contrôle PPTP)
# accepter le protocole GRE (numéro 47, données PPTP)
$IPT -A INPUT -i $WLAN -p tcp --sport 1723 -j ACCEPT
$IPT -A OUTPUT -o $WLAN -p tcp --dport 1723 -j ACCEPT
$IPT -A INPUT -i $WLAN -p 47 -j ACCEPT
$IPT -A OUTPUT -o $WLAN -p 47 -j ACCEPT

Bloquer tous Les règles suivantes bloquent l’interface pour tous les paquets des protocoles UDP et TCP :
les autres
paquets
Linux Livre Page 573 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 573

# extension de /etc/maconfig/iptables-firewall
# bloquer tout le reste
$IPT -A INPUT -i $WLAN -p tcp -j DROP
$IPT -A OUTPUT -o $WLAN -p tcp -j DROP
$IPT -A INPUT -i $WLAN -p udp -j DROP
$IPT -A OUTPUT -o $WLAN -p udp -j DROP

Règles pour L’interface Wi-Fi est suffisamment protégée. Tout le trafic passe à présent sur le VPN via
l’interface PPP
l’interface PPP. La sécurisation de cette interface dépend de la sécurité du réseau local. Pour
un petit réseau dont le serveur réseau est lui-même protégé par un pare-feu, vous pouvez
vous contenter des règles ci-dessus. Si vous souhaitez plus de sécurité, vous pouvez protéger
l’interface PPP par la chaîne wall décrite ci-dessus.

Sécuriser une passerelle Internet


Le script iptables est plus complexe lorsqu’il s’agit de protéger non pas un ordinateur uni-
que, mais une passerelle Internet complète. Le script commence comme d’habitude, mais il
définit également la variable LAN pour l’interface au réseau local. Sur mon ordinateur, il
s’agit de eth2.
#!/bin/sh

# /etc/maconfig/iptables-firewall
# Mini-Firewall pour sécuriser une passerelle Internet
# remise à zéro
/etc/maconfig/iptables-reset
# paramétrage
IPT=... # à définir comme dans le script iptables-reset
MODPROBE=... # contient le chemin vers modprobe ; déterminé comme le
# chemin d’iptables
INET=eth0
LAN=eth2

Fournir des Le but du pare-feu est de bloquer les accès provenant de l’extérieur. Les règles correspon-
services
individuels dantes sont indiquées ci-après. Cependant, si votre serveur doit mettre à disposition des ser-
publiquement vices réseau sur Internet en plus du réseau local (par exemple un serveur web ou SSH), vous
devez créer des règles d’exceptions. Comme toutes les tentatives de connexion sont interdi-
tes par la chaîne wall, vous devez les définir avant cette chaîne ! Il suffit de définir des règles
INPUT. Les règles OUTPUT ne sont pas nécessaires car la chaîne wall laisse passer les
paquets des connexions actives.
MYIP content l’adresse IP avec laquelle votre ordinateur est accessible sur Internet. Seuls les
paquets qui y sont adressés et qui en viennent sont acceptés. Si votre adresse IP est dynami-
que (ce qui est le cas pour de nombreuses connexions par modem, RNIS ou ADSL), vous
pouvez omettre les options -d et -s. Dans ce cas, l’établissement d’une connexion HTTP ou
SSH depuis l’extérieur est de toute façon plus difficile car votre adresse IP change à chaque
reconnexion.
Linux Livre Page 574 Mardi, 23. septembre 2008 1:05 13

574 LINUX

# extension de /etc/maconfig/iptables-firewall
# Permettre l’accès au serveur HTTP (port 80) depuis l’extérieur
MYIP=123.124.125.126
$IPT -A INPUT -i $INET -p tcp -d $MYIP --dport 80 -j ACCEPT
# Permettre l’accès au serveur SSH (port 22) depuis l’extérieur
$IPT -A INPUT -i $INET -p tcp -d $MYIP --dport 22 -j ACCEPT

Si votre passerelle Internet n’est pas directement connectée par un modem, mais par un routeur ADSL, les
règles ci-dessus ne s’appliquent pas. Depuis Internet, il n’est pas possible de s’adresser directement à votre pas-
serelle. Les paquets qui arrivent depuis l’extérieur sont adressés au routeur ADSL qui transmet les données aux
clients par NAT. Ces clients regroupent aussi votre passerelle Linux.
Du point de vue de la sécurité, cette variante de configuration est également un avantage. Le routeur
ADSL est un premier pare-feu et laisse passer uniquement les paquets qui résultent d’une connexion établie
depuis l’intérieur. L’inconvénient évident est que votre passerelle n’est pas accessible depuis Internet, même
dans les cas où vous aimeriez fournir des services comme un serveur SSH ou web.

Bloquer Les lignes suivantes bloquent tout accès à divers ports dangereux par le biais de l’interface à
complètement
les ports Internet. Dans la boucle for, quatre commandes iptables sont lancées pour chaque numéro
dangereux de port. La première règle bloque le trafic entrant TCP sur le port. La deuxième règle bloque
le trafic sortant TCP. Les troisième et quatrième règles fonctionnent de manière comparable
pour le protocole UDP.
# extension de /etc/maconfig/iptables-firewall
# bloquer complètement quelques ports
# 23 (telnet)
# 69 (tftp)
# 135 (Microsoft DCOM RPC)
# 139 (NetBIOS/Samba/etc.)
# 445 (système de fichiers CIFS pour Samba/SMB)
# 631 (ipp/CUPS)
# 1433 (Microsoft SQL Server)
# 2049 (NFS)
# 3306 (MySQL)
# 4444 (W32.Blaster Virus)
# 5999-6003 (X-Displays)
# 7100 (X-Font-Server)
# 7741 (lisa, RLAN)
for PORT in 23 69 135 139 445 631 1433 2049 3306 \
4444 5999 6000 6001 6002 6003 7100 7741; do
$IPT -A INPUT -i $INET -p tcp --dport $PORT -j DROP
$IPT -A OUTPUT -o $INET -p tcp --dport $PORT -j DROP
$IPT -A INPUT -i $INET -p udp --dport $PORT -j DROP
$IPT -A OUTPUT -o $INET -p udp --dport $PORT -j DROP
done

Interdire l’éta- Une fois les règles ci-dessus définies, vous devez ajouter les règles définissant wall au script
blissement
de connexion de pare-feu. Attention, celles-ci ne protègent pas la passerelle contre un accès provenant du
depuis réseau local.
l’extérieur
Mascarade Comme l’ordinateur sert de passerelle Internet, il faut activer la mascarade. Les trois com-
mandes modprobe ci-après s’assurent que FTP fonctionne malgré la mascarade :
Linux Livre Page 575 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 575

# extension de /etc/maconfig/iptables-firewall
# Masquerading
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_nat_ftp
$IPT -t nat -A POSTROUTING -o $INET -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Serveur Si votre ordinateur fait office de serveur mandataire-cache transparent (voir la section 29.6),
mandataire-
cache il faut ajouter une règle supplémentaire :
# extension de /etc/maconfig/iptables-firewall
# serveur mandataire/cache transparent
$IPT -t nat -A PREROUTING -i $INET -p tcp --dport 80 -j REDIRECT --to-port 3128

Sécuriser les Si votre serveur est connecté à un point d’accès sans-fil pour fournir ses services aux clients
interfaces
Wi-Fi sans-fil, il faut également protéger cette interface. Vous pouvez utiliser les mêmes règles que
pour l’interface Internet, ce qui fournit une protection acceptable. Cependant, le pare-feu ne
bloque pas seulement les intrus mais aussi tous les clients légitimes.
La seule solution sensée est de permettre aux clients Wi-Fi de se connecter uniquement par
le biais d’un VPN. Pour cela, vous devez installer un serveur VPN sur votre serveur (ce dont
nous ne traiterons pas dans cet ouvrage). Vous pouvez ainsi bloquer tout le trafic Wi-Fi à
l’exception des paquets VPN et DHCP.

Journalisation
iptables permet de journaliser l’efficacité de règles indépendantes. Pour cela, donnez à la
règle l’action LOG. Pour qu’une règle soit active et journalisée, vous devez donc donner deux
options -j : -j LOG et -j ACCEPT ou -j DROP.
La journalisation est gérée par syslogd dans les fichiers usuels (/var/log/messages et /var/
log/warn). Par défaut, peu d’informations sont journalisées. Vous pouvez activer des messa-
ges supplémentaires avec diverses options -log-xxx (voir man iptables). Les lignes suivan-
tes montrent comment les règles de blocage des ports importants sont étendues pour ajouter
de la journalisation :
# Modification de /etc/maconfig/iptables-firewall
for PORT in 23 137 138 139 631 1433 2049 3306 5999 6000 6001 6002 6003 7100
7741; do
$IPT -A INPUT -i $INET -p tcp --dport $PORT -j LOG \
--log-prefix "myfirewall:" --log-level warning
$IPT -A OUTPUT -o $INET -p tcp --dport $PORT -j LOG \
--log-prefix "myfirewall:" --log-level warning
$IPT -A INPUT -i $INET -p tcp --dport $PORT -j DROP
$IPT -A OUTPUT -o $INET -p tcp --dport $PORT -j DROP
done

Attention, les fichiers de journalisation peuvent vite devenir énormes. Ne journalisez que ce
qui est nécessaire !
Linux Livre Page 576 Mardi, 23. septembre 2008 1:05 13

576 LINUX

Exécuter automatiquement les règles du filtre


Intégration Pour lancer automatiquement les règles de filtrage dans le cadre d’InitV, vous devez enre-
à InitV
gistrer le script de filtres dans un endroit accessible pendant le processus InitV et l’appeler
par un script InitV. Inspirez-vous pour cela des scripts InitV de votre distribution.
Intégration Vous pouvez aussi intégrer les règles du pare-feu aux scripts /etc/ppp/ip-up.local et /etc/
à la configu-
ration PPP ppp/ip-down-local qui sont démarrés à la mise en place et à la terminaison de toute connexion
PPP. Cela offre l’avantage de pourvoir passer le nom de l’interface au script (par exemple
ppp0). De cette manière, le pare-feu peut obtenir dynamiquement le nom de l’interface utilisée,
si celui-ci varie.
Ces deux scripts ont six arguments : le premier est le nom de l’interface (par exemple ppp0) et le
sixième est l’identifiant de la connexion PPP (option ipparam). Pour que tout fonctionne, vous
devez modifier plusieurs fichiers : /ppp/peers/adsl, ip-up.local, ip-down.local et iptables-
firewall.
/ppp/peers/ Le fichier /ppp/peers/adsl (qui peut s’appeler autrement) contient les options de votre
adsl
connexion à Internet. Ajoutez-y l’option ipparam si elle n’existe pas déjà. Cela permet d’uti-
liser une chaîne de caractères unique pour identifier l’accès à Internet et le différencier des
autres connexions PPP.
# dans /etc/ppp/peers/adsl
...
ipparam "adsl"
ip-up.local Vous devez créer le fichier /etc/ppp/ip-up.local ou l’étendre de cette manière :
#! /bin/sh
# démarrage du pare-feu
# $1 est l’interface PPP utilisée (par exemple ppp0)
# $6 contient la chaîne de caractères ipparam
if [ "$6" = "adsl" ]; then
/etc/maconfig/iptables-firewall $1
fi

De cette manière, vous pouvez lancer le script iptables-firewall lorsque la connexion PPP
ADSL est lancée. Le script du pare-feu prend comme argument le nom de l’interface.
ip-down.local De la même manière, créez ou étendez le fichier /etc/ppp/ip-down.local :
#! /bin/sh
# démarrage du pare-feu
if [ "$6" = "adsl" ]; then
/etc/maconfig/iptables-firewall
fi
iptables- Le script du pare-feu doit être modifié pour prendre en compte l’interface réseau indiquée
firewall
en paramètre. La variable INET est maintenant définie de manière dynamique.
#!/bin/sh
# pare-feu
# remise à zéro
/etc/maconfig/iptables-reset
# déterminer l’emplacement de iptables et modprobe
IPT=...
MODPROBE=...
Linux Livre Page 577 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 577

# Interface réseau : l’interface réseau Internet


# est passée comme paramètre du script
LAN=eth0
WLAN=eth1
INET=$1
# règles du pare-feu lorsque l’interface à Internet est connectée
# (y compris la mascarade)
if [ $INET ]; then
...
fi
# règles du pare-feu ne dépendant pas de l’accès à Internet,
# par exemple sécurisation de l’interface Wi-Fi
...

Lorsque tout fonctionne, chaque fois qu’une interface PPP est connectée à Internet, le pare-
feu est configuré spécifiquement pour l’interface PPP en question. Lorsque la connexion à
Internet est coupée, le pare-feu est redémarré, mais les commandes iptables spécifiques à
Internet sont omises.

29.6 Filtrage web (Squid)


Le programme squid est au cœur de ce chapitre. Il s’agit d’un serveur mandataire-cache.
Cela signifie qu’il enregistre les pages web localement et qu’il en régule l’accès. Deux raisons
peuvent justifier la mise en place d’un serveur mandataire-cache :
• L’accélération de l’accès aux pages souvent consultées. Lorsque plusieurs personnes
lisent des pages web en passant par le serveur mandataire-cache, on peut éviter de
transmettre plusieurs fois le même fichier. Cela accélère la lecture des pages qui sont
souvent demandées et réduit le trafic vers le fournisseur d’accès à Internet. Les écono-
mies réalisées ne sont généralement que réduites car de nombreux sites web sont basés
sur des pages dynamiques qui ne peuvent pas être mises en cache.
• Le contrôle d’accès. L’utilisation de squid en tant que filtre web est de plus en plus
importante. Squid peut bloquer des pages données à certains utilisateurs, restreindre
l’accès web à certaines heures, etc. Il se révèle idéal pour les établissements qui veulent
limiter ou sécuriser l’accès à Internet (par exemple les écoles).
Cette section se limite au contrôle d’accès par Squid et fournit quelques pointeurs pour la
configuration de base. Vous trouverez plus d’informations dans le fichier /etc/squid/
squid.conf. Le site web de Squid (http://www.squid-cache.org) contient également un
guide de configuration ainsi qu’une foire aux questions.

Configuration et démarrage
Configuration Le comportement de squid est défini par /etc/squid/squid.conf. Le fichier de configura-
minimale
tion fourni avec squid est documenté de manière exhaustive et il est donc affreusement long
Linux Livre Page 578 Mardi, 23. septembre 2008 1:05 13

578 LINUX

(4 500 lignes). Créez une copie de ce fichier afin de constituer une documentation et supprimez-
en tous les commentaires :
root# cd /etc/squid
root# mv squid.conf squid.conf.orig
root# grep -v ’^#’ squid.conf.orig | cat -s > squid.conf

Le fichier est alors réduit à une soixantaine de lignes.


Par défaut, squid.conf est configuré de manière à ne pouvoir être utilisé comme cache que
pour l’ordinateur localhost. Selon la configuration de l’ordinateur local, cela ne fonctionne
pas nécessairement : squid ne reconnaît pas forcément que l’accès provient de localhost.
Les lignes suivantes montrent une configuration minimale possible pour squid. Le point de
départ était la configuration de base de Squid version 2.6. Les modifications effectuées sont
indiquées en gras. cache_mem est la quantité de mémoire vive réservée pour les objets du
cache. La ligne cache_dir est le répertoire dans lequel les pages web sont enregistrées. Les
trois valeurs numériques indiquent la taille du cache en mégaoctets ainsi que le nombre de
répertoires et sous-répertoires maximaux (de manière générale, plus l’espace attribué au
cache est gros, mieux c’est).
acl localnet définit la variable localnet qui contient la plage d’adresses du réseau local.
Utilisée avec http_access, elle permet aux autres ordinateurs du réseau local d’utiliser le
cache. Vous pouvez choisir un nom arbitraire à la place de localnet.
# /etc/squid/squid.conf
# Exemple de configuration
# nom de l’hôte sur lequel squid est lancé
visible_hostname mars.sol
# Taille du cache : 64Mo en mémoire vive, 100Mo sur le disque dur
cache_mem 64 MB
cache_dir ufs /var/spool/squid 100 16 256 # Debian, Fedora, Red Hat,
# Ubuntu
# cache_dir ufs /var/cache/squid 100 16 256 # SUSE
# pas de cache lorsque l’URL contient cgi-bin
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
# durée de vie des fichiers sans date d’expiration
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
# configuration du réseau local
hosts_file /etc/hosts
# Définitions
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.0.0/255.255.255.0
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
Linux Livre Page 579 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 579

acl Safe_ports port 443 # https


acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access deny all
icp_access allow all
coredump_dir /var/spool/squid # Debian, Fedora, Red Hat, Ubuntu
coredump_dir /var/cache/squid # SUSE

Si votre fournisseur d’accès fournit son propre cache et si vous voulez ou devez l’utiliser,
indiquez son adresse IP et son port avec le mot clé cache_peer (comme dans l’exemple sui-
vant). Si vous ne connaissez pas le port ICP, essayez 0 ou 7. Si cela ne fonctionne pas, ajoutez
l’option supplémentaire default ou no-query.
# serveur mandataire-cache suivant (par exemple celui de votre FAI)
# cache_peer <hostname> <type> <proxy-port> <icp-port> <options>
cache_peer www-proxy.provider.de parent 8080 7 default

Si vous souhaitez que les pages web d’un serveur local ne soient pas mises en cache, utilisez
le mot clé no_cache :
# accès direct au serveur web local mars.sol
acl mars dstdomain .mars .mars.sol
no_cache deny mars

Il existe au moins une centaine d’options supplémentaires avec lesquelles vous pouvez contrôler le compor-
tement de Squid, par exemple pour éviter de mettre en cache certaines pages, pour contrôler la journali-
sation, etc. Pour plus d’informations, reportez-vous au fichier original squid.conf ou à la documentation
sur www.squid-cache.org.
Linux Livre Page 580 Mardi, 23. septembre 2008 1:05 13

580 LINUX

Démarrage/ Squid est un démon qui doit éventuellement être démarré explicitement. La commande cor-
arrêt
respondante varie selon la distribution. Si Squid est déjà démarré, vous pouvez lui faire
relire son fichier de configuration avec reload :
root# /etc/init.d/squid reload

Premier test Squid crée alors divers répertoires de cache dans /var/cache/squid ou dans /var/spool/
squid. Pour tester si un programme fonctionne, démarrez un navigateur sur l’ordinateur
local et modifiez la configuration du serveur mandataire. Indiquez-y le nom de l’ordina-
teur (ici, mars.sol) et le numéro de port 3 128. Sous Firefox, cela se fait en passant par le
menu Édition > Préférences > Avancé > Réseau > Paramètres. Sous Konqueror, il faut aller
dans Configuration > Configurer Konqueror > Serveur mandataire > Spécifier manuellement
la configuration du serveur mandataire (proxy).
Chargez alors une page avec le navigateur web. Le fichier /var/log/squid/access.log contient
normalement tous les fichiers enregistrés.
Pour que les utilisateurs de votre réseau local puissent utiliser le cache, ils doivent également
passer par ces opérations pour le configurer dans leurs navigateurs web.

Configuration en tant que serveur mandataire-cache transparent


Jusqu’ici, l’utilisation du serveur mandataire se fait volontairement. squid est utilisé unique-
ment lorsque les clients ajoutent la configuration du serveur mandataire dans leurs navigateurs.
Sans cette modification, les utilisateurs court-circuitent le cache.
Cette situation n’est pas idéale, et ce pour deux raisons. D’une part, pour de nombreux uti-
lisateurs, changer les paramètres du cache est une exigence trop grande. D’autre part, Squid
en tant que filtre reste sans effet s’il suffit aux utilisateurs de supprimer le paramétrage pour
le contourner.
Pour remédier à cela, le noyau Linux peut être configuré pour transférer tout le trafic HTTP
(qui transite habituellement sur le port 80) au serveur mandataire. Celui-ci est alors désigné
sous le terme de "transparent". Cela signifie que le cache est automatiquement utilisé pour
tous les accès HTTP.
La configuration suivante suppose que squid est installé sur l’ordinateur qui fait office de
passerelle Internet. Nous supposons aussi que la connexion entre le serveur et les clients
passe par l’interface Ethernet eth2.
Configuration Vous devez d’abord configurer correctement votre noyau. Les fonctions Netfilter suivantes
du noyau
doivent être compilées directement dans le noyau : Connection Tracking, IP tables support, Full
NAT et Redirect target support. C’est le cas pour les noyaux de toutes les distributions que j’ai
testées. Il n’est donc généralement pas nécessaire de recompiler un noyau.
Activation du Vous devez ensuite activer une fonction spéciale du noyau pour permettre de transférer les
transfert IP
paquets IP :
root# echo 1 > /proc/sys/net/ipv4/ip_forward

Configuration Vous devez effectuer les modifications suivantes :


de Squid
# Modifications de /etc/squid/squid.conf
httpd_accel_host virtual
httpd_accel_port 80
Linux Livre Page 581 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 581

httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Puis, vous devez lancer /etc/init.d/squid reload.


Configuration Vous devez aussi activer le transfert de paquets IP. Tous les paquets qui quittent l’ordinateur
de iptables
et qui sont adressés au port 80 doivent passer par le port de squid. La commande est coupée
en deux pour des raisons de place :
root# iptables -t nat -A PREROUTING -i eth0 -p tcp \
--dport 80 -j REDIRECT --to-port 3128

Lorsque tout fonctionne, tous les clients du réseau local passent automatiquement par squid
pour consulter des pages web. Vérifiez que tout fonctionne en consultant /var/log/squid/
access.log après avoir accédé au Web depuis un ordinateur client.
Pour finir, ajoutez la commande iptables dans un script InitV lancé automatiquement au
démarrage de l’ordinateur. Sur mon serveur, la commande fait partie des scripts de pare-
feu.

En principe cette configuration fonctionne uniquement pour les clients du réseau local, mais pas pour
l’ordinateur sur lequel le serveur mandataire est installé. En d’autres termes, la protection automatique n’est
pas valable pour l’ordinateur local, mais elle est valable pour tous les autres ordinateurs du réseau. Si vous
souhaitez utiliser le serveur mandataire pour l’ordinateur local, vous devez modifier le paramétrage corres-
pondant dans le navigateur web.

Exceptions Il existe quelques sites web qui ne peuvent pas être utilisés à travers un serveur manda-
taire. Lorsque le serveur mandataire n’est pas transparent, un utilisateur peut le contour-
ner facilement (en le désactivant ou en définissant des exceptions). Pour un proxy
transparent, l’utilisateur n’a pas le choix. Squid ne permet pas non plus de transférer des
pages web précises sans modification. Lorsque Squid reçoit l’ordre de récupérer une page web,
il est déjà trop tard.
Pour pouvoir utiliser des pages problématiques malgré le cache transparent, vous devez
modifier les règles iptables afin d’éviter que les requêtes vers ces pages n’atteignent Squid.
Le plus simple pour cela est de modifier le script iptables avec quelques lignes de script.
#!/bin/sh
# Extension du script de pare-feu
#
# transférer directement les adresses suivantes (pas de serveur
# mandataire)
for ADDRESS in adresse1.com adresse2.fr adresse3.ca; do
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -d $ADDRESS -j
ACCEPT
done
# transférer toutes les autres adresses (serveur mandataire transparent)
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 \
-j REDIRECT --to-port 3128
Linux Livre Page 582 Mardi, 23. septembre 2008 1:05 13

582 LINUX

Tous les ouvrages iptables déconseillent l’utilisation de règles de pare-feu dépendant d’une résolution
DNS. Si celle-ci ne fonctionne pas, un message d’erreur est renvoyé. Dans ce cas concret, je n’ai cependant
pas trouvé d’autre solution. J’insiste sur le fait que cette méthode n’est qu’une solution d’urgence. Si le script
est lancé par InitV, la connexion à Internet et la configuration du serveur de noms doivent fonctionner.
Vous trouverez plus d’informations sur la configuration d’un serveur mandataire-cache dans le Petit guide
de mise en place d’un mandataire transparent avec Linux et Squid à l’adresse
http://www.traduc.org/docs/HOWTO/vf/TransparentProxy.html.

Règles de contrôle d’accès


Grâce à la configuration minimale ci-dessus, tous les utilisateurs du réseau local utilisent le
serveur mandataire-cache. squid fournit aussi des mécanismes très fins de contrôle d’accès.
Il faut d’abord définir des acl (Access Controls, contrôles d’accès). Ces règles contiennent par
exemple des adresses source (src, qui peut accéder à quoi ?), des heures (time, à quelle
heure est autorisé l’accès ?) ou des adresses cible (url_regex, quelles adresses peuvent ou
non être consultées ?)
# modifications de /etc/squid/squid.conf
acl admin src mars
acl mynet src 192.168.0.0/255.255.255.0
# dates et heures. SA = Saturday + Sunday (samedi + dimanche)
# (S = Dim, M = Lun, T = Mar, W = Mer, H = Jeu, F = Ven, A = Sam)
acl time1 time SA
acl time2 time 18:00-23:59
acl time3 time 0:00-7:00

Les mots clés définis ci-dessus peuvent alors être utilisés dans des commandes
http_access-allow et -deny. Pour finir, une règle deny-all indique que les accès qui ne se
trouvent pas dans les cas indiqués sont interdits.
# localhost a toujours le droit d’accéder au web
http_access allow localhost
# mars a toujours le droit d’accéder au web
http_access allow admin
# Les ordinateurs de mynet peuvent accéder au web le
# samedi, le dimanche et de 18h00 à 7h00
http_access allow mynet time1
http_access allow mynet time2
http_access allow mynet time3
# dans tous les autres cas, l’accès au web est interdit
http_access deny all

Filtre web avec DansGuardian


On peut bloquer des sites individuels avec squid.conf. Mais réaliser un filtre web complet
serait extrêmement coûteux. Pourquoi réinventer la roue ? Le programme DansGuardian
(http://dansguardian.org/) permet de mettre en place un accès web avec une protection
parentale de manière bien plus simple.
Linux Livre Page 583 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 583

La fonction de base du programme est d’analyser les pages web à la recherche de mots clés
pornographiques et de bloquer la page en fonction du résultat de la recherche. Le méca-
nisme est suffisamment intelligent pour ne pas filtrer toutes les pages contenant les mots
"sexe" ou "seins". Comme DansGuardian prend en compte le contenu des pages, il est indé-
pendant de la plupart des listes noires de sites web.
Installation DansGuardian peut être installé comme paquetage dans la plupart des distributions.
Comme il bloque également le téléchargement des virus les plus connus, il est installé avec
le filtre ClamAV.
DansGuardian est un démon, démarré et arrêté avec les commandes habituelles. Par défaut,
il attend des requêtes sur le port 8 080. Il contacte ensuite Squid (sur le port 3 128) et analyse
la page web. Si la page ne pose pas de problème, elle est retransmise via le port 8 080 au
navigateur web. La variante de configuration que nous proposons ici est plus élégante :
DansGuardian traite toutes les requêtes web sur le port 80 afin qu’aucune configuration ne
soit nécessaire du côté client.
dansguardian. Le fichier de configuration principal de DansGuardian est /etc/dansguardian/dansguar-
conf
dian.conf. Vous pouvez généralement laisser ce fichier tel qu’il est. Selon la distribution, le
fichier peut contenir la ligne UNCONFIGURED, que vous devez désactiver avec un caractère de
commentaires. Si vous souhaitez que les messages d’erreur soient affichés en français, utili-
sez le paramètre language=’french’. Si votre réseau ne contient que des ordinateurs sous
Linux, vous pouvez désactiver le scanner de virus avec virusscan=off.
Pour intégrer DansGuardian et Squid, il faut indiquer l’adresse et le port de ce dernier :
# /etc/dansguardian/dansguardian.conf (extraits)
reportinglevel = 3
languagedir = ’/etc/dansguardian/languages’
language = ’french’
loglevel = 1
logexceptionhits = on
logfileformat = 1
filterport = 8080
proxyip = 127.0.0.1
proxyport = 3128
...

Une fois le fichier modifié, faites-le relire par DansGuardian :


root# /etc/init.d/dansguardian reload

dansguardianf Le filtre lui-même est configuré dans /etc/dansguardian/dansguardianf1.conf. Ce fichier


1.conf
définit d’abord divers fichiers préconfigurés de mots clés, de sites web bloqués, etc. Le para-
mètre naughtynesslimit contrôle le degré de "malfaisance" à partir duquel la page est blo-
quée. Plus cette valeur est haute, plus le nombre de mots clés et de combinaisons de mots
clés trouvés dans le texte est élevé.
# /etc/dansguardian/dansguardianf1.conf (extraits)
# Content filtering files location
bannedphraselist = ’/etc/dansguardian/bannedphraselist’
weightedphraselist = ’/etc/dansguardian/weightedphraselist’
Linux Livre Page 584 Mardi, 23. septembre 2008 1:05 13

584 LINUX

exceptionphraselist = ’/etc/dansguardian/exceptionphraselist’
bannedsitelist = ’/etc/dansguardian/bannedsitelist’
greysitelist = ’/etc/dansguardian/greysitelist’
exceptionsitelist = ’/etc/dansguardian/exceptionsitelist’
bannedurllist = ’/etc/dansguardian/bannedurllist’
greyurllist = ’/etc/dansguardian/greyurllist’
exceptionurllist = ’/etc/dansguardian/exceptionurllist’
bannedregexpurllist = ’/etc/dansguardian/bannedregexpurllist’
bannedextensionlist = ’/etc/dansguardian/bannedextensionlist’
bannedmimetypelist = ’/etc/dansguardian/bannedmimetypelist’
picsfile = ’/etc/dansguardian/pics’
contentregexplist = ’/etc/dansguardian/contentregexplist’
# Naughtyness limit
# As a guide:
# 50 is for young children, 100 for old children, 160 for young adults.
naughtynesslimit = 50
...

Ne vous faites pas d’illusion sur l’efficacité de DansGuardian. Même un paramètre naughtynesslimit=50
(adapté aux jeunes enfants) n’offre pas une protection complète envers les pages web pornographiques ; il
ne présente aucune protection envers les images pornographiques.
La configuration par défaut prend essentiellement en compte des mots clés en anglais. Pour la plupart des
sites pornographiques, cela peut suffire. Toutefois, si vous souhaitez également filtrer des pages de sites
d’extrême droite ou de sites incitant à la violence, vous devrez mettre la main à la pâte. Jetez un œil au
fichier de configuration /etc/dansguardian/weightedphraselist et aux fichiers qui y sont définis.
Indépendamment de cela, il n’est pas très difficile de contourner le filtre par du texte créé dynamiquement
(JavaScript, Flash), par du texte affiché dans des images ou par des fichiers externes (PDF par exemple). Le
filtre ne s’applique qu’aux pages web et ne concerne pas les autres services Internet (courrier électronique,
Usenet, discussion en ligne, etc.). DansGuardian fournit une protection, mais ne peut pas remplacer l’édu-
cation et les explications.

Règles En pratique il est souvent difficile de discriminer les pages uniquement sur des mots clés. Le
supplémen-
taires et tableau suivant décrit quelques fichiers du répertoire /etc/dansguardian dans lesquels vous
exceptions pouvez indiquer des sites web à laisser passer ou à filtrer.

bannedextensionlist bloque les fichiers avec les extensions indiquées


bannedmimetypelist bloque les types de fichiers indiqués
bannedsitelist bloque entièrement les sites web indiqués
bannedurllist bloque les pages indiquées
exceptionsitelist accepte les sites web indiqués sans les contrôler
exceptionsurllist accepte les pages indiquées sans les contrôler
exceptionphraselist mots clés positifs
greysitelist de base, accepte le site web, mais contrôle le contenu texte
Linux Livre Page 585 Mardi, 23. septembre 2008 1:05 13

SÉCURITÉ DU RÉSEAU 585

bannedurllist et bannedsitelist peuvent se fonder sur les fichiers du projet urlblacklist


(http://urlblacklist.com/). Ce projet collecte divers liens d’innombrables sites web problé-
matiques, classés par catégories (par exemple drugs, porn, violence). Attention, urlblac-
klist est un service commercial. Les listes de filtres peuvent être téléchargées gratuitement
une fois afin d’effectuer des tests, mais les mises à jour régulières ne sont pas gratuites.
Dans sa configuration par défaut, DansGuardian bloque le téléchargement de fichiers com-
pressés, de fichiers MP3, de fichiers ISO, etc. Ces paramètres sont trop restrictifs pour une
utilisation quotidienne de Linux et peuvent même empêcher un fonctionnement correct du
gestionnaire de paquetages. N’hésitez pas à commenter quelques types de fichiers dans les
fichiers bannedmimetypelist et bannedextensionlist.
Configuration Pour interfacer Squid avec DansGuardian, squid.conf doit contenir les lignes suivantes :
de Squid
# modifications de /etc/squid/squid.conf
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Protection Par défaut, DansGuardian fonctionne sur le port 8 080. Pour protéger l’accès au web de
transparente
manière transparente sur le port 80, modifiez le script de pare-feu comme suit :
#!/bin/sh
# extension du script de pare-feu
#
# transfère tous les paquets adressés au port 80 au port 8080
# utilisé par DansGuardian (filtre web transparent)
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 \
-j REDIRECT --to-port 8080

DansGuardian n’est pas la seule extension de Squid qui vise au contrôle parental. Une alternative intéres-
sante est SquidGuard qui est un greffon de Squid fournissant diverses fonctions supplémentaires et dont la
configuration via Squid est plus simple : http://www.squidguard.org/.
Linux Livre Page 586 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 587 Mardi, 23. septembre 2008 1:05 13

Serveur de réseau local


30 (CUPS, NFS et Samba)
Ce chapitre décrit la configuration de services réseau généralement utilisés dans un réseau
local. Vous apprendrez comment partager des fichiers et des imprimantes au sein de votre
organisation. Nous traiterons plus particulièrement des points suivants :
• Système d’impression (CUPS). Que votre imprimante soit branchée à un seul ordina-
teur ou utilisée sur un réseau, un service s’occupe de la communication avec elle. Pour
la plupart des distributions, il s’agit de CUPS.
• Partage de répertoires par NFS. NFS (Network File System, système de fichiers réseau)
permet de partager facilement des fichiers entre des ordinateurs Unix/Linux.
• Partage de répertoires et d’imprimantes par Samba. Pour assurer la compatibilité des
partages de fichiers avec Windows, il faut utiliser Samba. Celui-ci permet de partager
des répertoires et des imprimantes sur un réseau via le protocole SMB.

30.1 CUPS – Les fondamentaux


Le paquetage de programmes CUPS (Common Unix Printing System, système d’impression
commun sous Unix) sert à traiter et à gérer les files d’attente de tâches d’impression, ainsi
qu’à transformer les données à imprimer au format de l’imprimante. CUPS, fourni par la
plupart des distributions, est au cœur de cette section, basée sur la version 1.3.
Vous vous demandez peut-être pourquoi le thème de l’impression, élémentaire, n’est traité
qu’à ce point avancé du livre. Cela est dû au fait que sous Linux, l’impression est gérée par
un service réseau. Selon la configuration, chaque imprimante peut être utilisée par tous les
autres utilisateurs du réseau local.
L’utilisation d’une imprimante locale n’est pas compliquée et fonctionne généralement sans
avoir à lire cette section. Les pages suivantes s’adressent aux utilisateurs qui souhaitent
comprendre les bases et l’histoire du système d’impression sous Linux.

Lorsqu’une imprimante est momentanément indisponible (par exemple, parce qu’elle est éteinte), elle
est mise en pause par CUPS. Ce dernier enregistre donc que l’imprimante ne peut pas être utilisée.
Cependant, lorsque celle-ci est rallumée ou reconnectée, CUPS ne s’aperçoit pas nécessairement qu’elle
est à nouveau disponible. Il faut alors la réactiver explicitement. Toutes les interfaces utilisateur
de CUPS le permettent, ainsi que les commandes cupsenable nomimprimante et lpadmin -E -p nom-
imprimante .
Linux Livre Page 588 Mardi, 23. septembre 2008 1:05 13

588 LINUX

Processus d’impression
PostScript La philosophie d’impression sous Unix/Linux repose sur les imprimantes PostScript. PostS-
cript est un langage de programmation pour décrire le contenu des pages. Ce type d’impri-
mantes attend des données d’impression dans ce format. La plupart des programmes dotés
d’une fonction d’impression envoient des données PostScript au système d’impression.
L’avantage de PostScript sur les autres formats est que la description utilise un format vec-
toriel et qu’il fonctionne donc dans n’importe quelle résolution. L’impression d’un fichier
PostScript est d’autant plus précise que l’imprimante est de bonne qualité (résolution éle-
vée). C’est pourquoi PostScript joue un rôle dominant non seulement sous Unix, mais aussi
dans toute l’industrie de l’impression.

Sous Linux, il existe de nombreux programmes qui permettent de lire un document PostScript. Leur ancêtre
est ghostview. Son interface n’est cependant pas très moderne. Les alternatives populaires sont Evince (qui
fait partie du bureau Gnome), Okular, KPDF et kghostview (trois applications KDE), ainsi que gv et ggv.
Vous pouvez aussi utiliser n’importe quel outil de visualisation de PDF, après avoir converti le fichier au format
PDF avec ps2pdf.

Périphériques Il est extrêmement simple d’imprimer si votre imprimante comprend le PostScript. Il suffit
d’impression
pour cela d’envoyer le fichier PostScript avec cp en tant que root sur le périphérique de
l’interface à laquelle l’imprimante est connectée.
root# cp fichier.ps /dev/lp0
root# cp fichier.ps /dev/ttyS0
root# cp fichier.ps /dev/lp0

Ces trois lignes correspondent respectivement à l’impression sur le port parallèle, sur le port
série et sur un port USB.
Système Tous les utilisateurs en dehors de root devraient cependant pouvoir imprimer, qu’ils tra-
d’impression
vaillent en local sur l’ordinateur ou sur une autre machine du réseau. Par ailleurs, aucun
d’eux ne veut se battre avec les noms de périphériques, d’autant qu’ils n’y ont probablement
pas accès. C’est pourquoi un système d’impression a été développé. Il a plusieurs tâches :
• fournir des commandes simples d’impression qui permettent d’accéder à des noms
d’imprimantes plutôt qu’à des noms de périphériques ;
• permettre à tous les utilisateurs, y compris ceux du réseau, d’imprimer ;
• permettre d’ajouter et de gérer plusieurs imprimantes sur un ordinateur ;
• fournir un mécanisme de file d’attente lorsque plusieurs tâches sont lancées en même
temps, de manière à attendre que l’imprimante soit libre ;
• effectuer quelques tâches annexes, comme des statistiques sur le système d’impression.
Le système d’impression le plus simple et le plus moderne est, à l’heure actuelle, CUPS. Ses
alternatives classiques, BSD-LPD et LPRng, ne seront pas traitées dans cet ouvrage.
Quel que soit le système d’impression utilisé sur votre ordinateur, la commande d’impression
est toujours la même :
utilisateur$ lpr -Pnom fichier
Linux Livre Page 589 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 589

nom est le nom de l’imprimante (ou plus exactement, celui de la file d’attente de l’impression).
Si vous omettez l’option -P, le document est imprimé sur l’imprimante par défaut.
Filtre Nous avons jusqu’ici décrit la mise en œuvre d’une imprimante PostScript. En pratique, les
d’impression
(GhostScript) imprimantes qui ne comprennent pas ce langage sont les plus nombreuses. Pour pouvoir les
faire fonctionner sous Linux, il faut convertir les données PostScript au format de l’impri-
mante. Le programme GhostScript se charge de cette conversion.
gs est appelé par un filtre. Il s’agit d’un script qui traite les données d’entrée et renvoie les
données de sortie. Le filtre pour le processus d’impression doit en particulier envoyer les
bons paramètres à gs : modèle de l’imprimante, résolution et taille de page souhaitées, etc. Il
transforme les données PostScript en fichiers bitmap, page par page, et les renvoie à l’impri-
mante, sans oublier d’ajouter aux données les commandes spécifiques à ladite imprimante.
GhostScript accède également à des pilotes d’imprimantes externes. Le projet le plus impor-
tant de pilotes pour Linux est Gutenprint (autrefois connu sous le nom de Gimp-Print), que
vous trouverez à l’adresse http://gutenprint.sourceforge.net/.
Filtres de Jusqu’ici, PostScript est le seul format des fichiers à imprimer. Il est cependant courant de
documents
devoir imprimer un seul fichier texte ou image. On peut bien sûr le charger dans un éditeur,
qui l’imprime alors au format PostScript. On peut aussi le convertir avec un programme ou
un convertisseur graphique au format PostScript.
Il est cependant plus confortable de ne lancer que lpr fichier. Pour que cela fonctionne, le
système d’impression tente de reconnaître le type de fichiers à imprimer. Lorsque cela fonc-
tionne et qu’il ne s’agit pas encore d’un fichier PostScript, le fichier est transformé au format
PostScript avec le programme approprié. Le convertisseur est cependant appelé par un
script de filtre.
Résumé de Vous avez configuré une imprimante jet d’encre non PostScript sur votre ordinateur. Elle
la chaîne
s’appelle pluton. Vous aimeriez maintenant imprimer le fichier monimage.png. Lancez par
conséquent la commande suivante :
utilisateur$ lpr -Ppluton monimage.png

Le processus d’impression suit alors ces étapes :


1. lpr envoie le fichier au système d’impression CUPS.
2. Celui-ci envoie le fichier au système de filtres.
3. Le filtre reconnaît le type de fichiers (PNG) et convertit l’image bitmap au format PostScript.
4. Les données PostScript sont envoyées à GhostScript, qui convertit le fichier PostScript
au format de données de l’imprimante pluton.
5. Lorsque pluton a terminé toutes ses tâches précédentes, elle imprime monimage.png.

Configuration de base de CUPS


cupsd.conf La configuration de base de CUPS est enregistrée dans /etc/cups/cupsd.conf. Les paramè-
tres par défaut varient selon la distribution. Vous pouvez modifier les principales options
Linux Livre Page 590 Mardi, 23. septembre 2008 1:05 13

590 LINUX

avec un programme de configuration ou l’interface web localhost:631. Nous allons cepen-


dant d’abord parler de la configuration manuelle de CUPS.
La place manque pour détailler tous les mots clés d’une configuration cupsd.conf.
Les exemples ci-après montrent le principe de la configuration et n’ont pas vocation à
servir de référence. Vous pourrez trouver une référence de tous les mots clés à l’adresse
http://localhost:631/help/ref-cupsd-conf.html.

Attention, une modification de cupsd.conf n’est valide qu’une fois CUPS redémarré. Le nom du script InitV
correspondant diffère selon la distribution (cups, cupsd, cupsys, etc.).
root# /etc/init.d/cups* restart
Si vous utilisez CUPS sous SUSE, vous devez vous abstenir d’utiliser des tabulations ; YaST peut, dans le cas
contraire, détruire votre configuration !

Paramètres cupsd.conf commence par quelques paramètres essentiels, qui ressemblent par exemple à
essentiels
ceux-ci :
# Paramètres essentiels de /etc/cups/cupsd.conf
# Journalise les erreurs et les avertissements
LogLevel warning
# Les membres du groupe lpadmin sont administrateurs de CUPS (@SYSTEM)
SystemGroup lpadmin
# Administration web uniquement pour les utilisateurs locaux
Listen localhost:631
Listen /var/run/cups/cups.sock
#Permettre l’accès réseau à l’imprimante sur le réseau local
Browsing On
BrowseOrder allow,deny
BrowseAllow @LOCAL
BrowseAddress @LOCAL
#Authentification par nom d’utilisateur et mot de passe lorsqu’une
#telle authentification est nécessaire
DefaultAuthType Basic

Contrôle L’accès à plusieurs composants de CUPS est contrôlé par diverses sections <Location xxx>,
d’accès
ainsi que par des règles <Policy> :
• <Location /> est la configuration de base pour tous les composants.
• <Location /admin> gère les droits d’administration sur l’interface web.
• <Location /admin/conf> gère les droits de configuration sur l’interface web.
• <Policy default> définit les règles pour les opérations de base.
L’exemple de configuration suivant définit un droit d’accès à toutes les fonctions de CUPS
uniquement pour l’ordinateur local. Order allow,deny interdit par défaut tout accès et définit
les règles en lisant d’abord les lignes Allow, puis les lignes Deny.
L’administration web sur localhost:631 n’est également accessible que pour localhost. Les
modifications de la configuration nécessitent l’authentification d’un administrateur système
(root ou un utilisateur membre du groupe défini par le mot clé SystemGroup).
Le bloc Policy contient des règles sur les opérations accessibles aux différents utilisateurs
(par exemple, pour arrêter une tâche d’impression déjà lancée).
Linux Livre Page 591 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 591

# Gestion des droits d’accès dans /etc/cups/cupsd.conf


# Authentification par nom d’utilisateur et mot de passe lorsqu’une
# telle authentification est nécessaire
DefaultAuthType Basic
# Autorise un accès global au serveur CUPS pour localhost
<Location />
Order allow,deny
Allow localhost
</Location>
# Autorise l’administration web à localhost
<Location /admin>
Order allow,deny
Allow localhost
</Location>
# Autorise la configuration web à localhost, mais demande une
# authentification d’un administrateur système CUPS
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
</Location>
# Règles pour l’accès à l’imprimante et aux tâches d’impression
<Policy default>
# Les tâches d’impression ne peuvent être modifiées que par leur
# propriétaire ou par un administrateur
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job
Purge-Jobs Set-Job-Attributes Create-Job-Subscription
Renew-Subscription Cancel-Subscription Get-Notifications
Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job
CUPS-Move-Job Cancel-Job
CUPS-Authenticate-Job>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
# les tâches administratives nécessitent qu’un administrateur de CUPS se
# connecte
<Limit Pause-Printer Resume-Printer Set-Printer-Attributes
Enable-Printer Disable-Printer Pause-Printer-After-Current-Job
Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer
Activate-Printer Restart-Printer Shutdown-Printer
Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer
CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class
CUPS-Accept-Jobs CUPS-Reject -Jobs CUPS-Set-Default>
AuthType Basic
Require user @SYSTEM
Order deny,allow
</Limit>
# toutes les autres opérations sont autorisées à tous
<Limit All>
Order deny,allow
</Limit>
</Policy>
Linux Livre Page 592 Mardi, 23. septembre 2008 1:05 13

592 LINUX

TCP-Wrapper L’accès à CUPS est normalement enregistré dans /etc/cups/cupsd.conf. Il arrive cependant
que CUPS soit compilé avec la bibliothèque TCP-Wrapper (comme sous SUSE). Vous pouvez
vérifier cela avec ldd :
user$ ldd /usr/sbin/cupsd
...
libwrap.so.0 => /lib64/libwrap.so.0

Dans ce cas, CUPS ne fonctionne que lorsqu’il n’est pas interdit dans /etc/hosts.deny ou
autorisé explicitement dans /etc/hosts.allow, ce qui est le cas par défaut. Si vous modifiez
ces fichiers, vous devez penser à CUPS (ligne cupsd).

Administration de CUPS dans un navigateur web


On peut aussi administrer CUPS dans un navigateur web. CUPS embarque pour cela un ser-
veur http, qui écoute par défaut sur le port 631. Pour tester cette fonction, allez à l’adresse
http://localhost:631 avec votre navigateur (voir Figure 30.1).

Figure 30.1
Administration web
de CUPS.

cupsd.conf Le fichier /etc/cups/cupsd.conf définit si l’administration web est activée, si elle peut être
utilisée sur l’ordinateur local ou le réseau, et s’il est nécessaire de s’y connecter avec un iden-
tifiant de compte système et un mot de passe associé. La configuration de la section précé-
dente autorise uniquement les utilisateurs locaux à gérer CUPS via le Web (Listen
localhost:631).
Si vous désirez faire également fonctionner la configuration web sur le réseau local, vous
devez modifier cupsd.conf comme suit. Vous devez aussi vous assurer que le port 631 n’est
pas bloqué par un pare-feu.
# /etc/cups/cupsd.conf
...
Port 631
Listen /var/run/cups/cups.sock
Linux Livre Page 593 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 593

...
<Location /admin>
...
Order allow,deny
Allow @LOCAL
</Location>
# Modifier la configuration nécessite l’authentification d’un
# administrateur système de CUPS
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow @LOCAL
</Location>
...

Commandes d’administration de CUPS


En général, vous utiliserez la boîte de dialogue d’impression d’un programme (Open-
Office.org, Firefox, etc.) pour imprimer, et les outils de Gnome ou de KDE pour gérer les
tâches d’impression. Vous pouvez également utiliser pour cela diverses commandes en
ligne de commande. Celles-ci sont très utiles lorsque vous désirez automatiser l’envoi de
tâches d’impression.

Les commandes lpr, lpq, lprm et lpc ne sont pas spécifiques à CUPS ; elles existent aussi dans BSD-LPD
et LPRng. Il s’agit d’un dénominateur commun de tous les systèmes d’impression, mais attention : les
options peuvent différer d’un système à un autre.

lpr lpr permet d’imprimer un fichier. Si plusieurs imprimantes sont configurées, indiquez avec
l’option -P sans espace le nom de la file d’attente. Vous pouvez l’omettre si vous utilisez
l’imprimante par défaut.
utilisateur$ lpr -Pnom fichier

On peut aussi utiliser lpr en conjonction avec un tube pour imprimer la sortie d’une autre
commande. La commande suivante imprime la liste de fichiers renvoyée par ls sur l’impri-
mante par défaut :
utilisateur$ ls -l *.odt |lpr

Vous pouvez aussi utiliser, à la place de lpr, la commande lp (sa syntaxe est expliquée dans
man 1 lp).
lpq et lprm Toutes les tâches d’impression qui ne sont pas exécutées immédiatement sont enregistrées
dans une file d’attente (une file par imprimante). Vous pouvez afficher le contenu de cette
file d’attente avec lpq -Pnom.
Linux Livre Page 594 Mardi, 23. septembre 2008 1:05 13

594 LINUX

Pour supprimer les tâches d’impression que vous avez vous-même lancées, utilisez lprm -
Pnom id en indiquant le nom de l’imprimante et le numéro de la tâche, que vous pouvez
obtenir avec lpq.
utilisateur$ lpq
HPLasJet1022 est prête et en cours d’impression
Rang Propr. Tâche Fichiers Taille totale
active michael 20 evince-print 17408 octets
1st michael 21 evince-print 16384 octets
utilisateur$ lprm 20
utilisateur$ lprm 21
lpc lpc permet un contrôle plus fin sur l’activité de l’imprimante. Lorsque vous lancez cette
commande, vous arrivez dans un environnement interactif, dans lequel vous pouvez lancer
des commandes telles que status, help, etc. Certaines ne peuvent être lancées que par l’uti-
lisateur root. Pour quitter lpc, utilisez les commandes exit, bye ou quit.
lpstat, lpinfo, lpstat affiche des informations sur toutes les imprimantes disponibles. lpinfo fournit une liste
lpadmin et
lpoptions de tous les périphériques et pilotes d’impression. lpadmin permet d’ajouter ou de supprimer une
imprimante. lpoptions affiche les options des imprimantes CUPS et permet de les modifier.
utilisateur$ lpoptions -o PageSize=A4

CUPS désactive les imprimantes qui ne sont pas accessibles. Pour les réactiver, lancez les
deux commandes suivantes :
utilisateur$ lpadmin -E -p nom
utilisateur$ accept nom

Pour les désactiver explicitement, utilisez la commande reject :


utilisateur$ reject nom

HP Linux Imaging and Printing (HPLIP)


HP développe des pilotes libres pour la plupart de ses imprimantes, scanners et appareils
multifonction. Les licences sont principalement la GPL, mais aussi parfois la licence MIT ou
BSD. La prise en charge du libre chez HP est exemplaire − mais malheureusement encore
une exception.
La plupart des distributions installent HPLIP par défaut. Le paquetage HPLIP contient
divers pilotes et programmes supplémentaires pour la configuration et la maintenance des
périphériques. Par exemple, hp-setup reconnaît les appareils HP connectés à l’ordinateur et
aide à les connecter. hp-toolbox permet de connaître le niveau de remplissage des cartouches
de nombreuses imprimantes à jet d’encre HP, une fonction que CUPS ne fournit pas.
L’utilisation des pilotes HPLIP est optionnelle pour de nombreuses imprimantes. La plupart
des imprimantes laser HP sont prises en compte directement par CUPS. Le pilote HPLIP, en
association avec hp-toolbox, peut cependant fournir des fonctionnalités supplémentaires.
HPLIP est étroitement lié à CUPS. Les processus hpiod et hpssd, lancés lors du démar-
rage du système par le script InitV /etc/init.d/hplip, gèrent la communication avec
les périphériques HP. Vous trouverez plus d’informations sur HPLIP à l’adresse
http://hplip.sourceforge.net/.
Linux Livre Page 595 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 595

30.2 CUPS – Configuration d’une imprimante


Pour configurer une imprimante, vous pouvez utiliser les outils intégrés à Gnome et KDE,
l’outil de configuration web de CUPS ou les programmes fournis par votre distribution.
• Gnome : gnome-cups-manager
• KDE : module du centre de contrôle
• CUPS : configuration web
• Debian, Ubuntu : outils KDE et Gnome
• Red Hat, Fedora : system-config-printer
• SUSE : module YaST Matériel, Imprimantes
Pilotes La question décisive de la configuration de l’imprimante est bien sûr de savoir si elle est
d’imprimante
compatible avec Linux et avec la combinaison CUPS, GhostScript et leurs pilotes. La liste
suivante résume la compatibilité à prévoir pour les différentes catégories d’imprimantes :
• Imprimantes laser. Elles sont pour la plupart compatibles PostScript ou PCL (langage
d’imprimante de HP). Leur utilisation sous Linux est optimale. C’est également valable
pour la majorité des modèles réseau.
• Imprimantes GDI/Windows. Ces imprimantes, généralement bon marché, sont pré-
vues pour être utilisées sous Windows. L’idée sous-jacente est qu’un programme Win-
dows prépare la page à imprimer sur l’ordinateur et l’envoie à l’imprimante. Les pages
sont souvent construites avec l’interface graphique GDI développée par Microsoft, d’où
le nom d’imprimante GDI. Malheureusement, le format des données des pages n’est
généralement pas documenté. De nombreuses imprimantes de ce type ne sont donc pas
prises en charge sous Linux.
• Imprimantes à jet d’encre et imprimantes photo. La prise en charge des imprimantes à
jet d’encre dépend largement du modèle et de la marque.
Les imprimantes HP sont en général relativement bien prises en charge. Comme HP tra-
vaille beaucoup avec la communauté Linux, il existe un pilote libre pour la plupart des
modèles. Les modèles les plus récents peuvent cependant manquer d’une base de données
d’impression CUPS (fichiers PPD).
Les imprimantes à jet d’encre d’autres fabricants posent souvent plus de problèmes. Le
site web http://mambo.kuhp.kyoto-u.ac.jp/~takushi propose des pilotes pour quelques
imprimantes Canon et Epson. L’installation peut cependant être compliquée.
Lorsque vous achetez une nouvelle imprimante, il est profitable de jeter un œil sur le site
web http://www.freestandards.org/en/OpenPrinting qui recense d’innombrables informa-
tions sur le thème de l’impression sous Linux. Il existe aussi une base de données de modèles
pris en charge sous Linux.

Certaines imprimantes pour lesquelles il n’existe pas de pilote libre disposent d’un pilote commercial Turbo-
Print. Ce dernier permet d’ailleurs d’obtenir de meilleurs résultats pour certaines imprimantes photo. Vous
trouverez des pilotes relativement bon marché et une version gratuite, mais limitée des pilotes sur le site
web http://www.turboprint.de/en_p_turboprint.phtml .
Linux Livre Page 596 Mardi, 23. septembre 2008 1:05 13

596 LINUX

Fichiers PPD CUPS voit toutes les imprimantes comme une imprimante PostScript. Les paramètres spéci-
fiques, comme la taille des marges non imprimables, la résolution de l’imprimante, les com-
mandes pour différentes fonctions (par exemple, les bacs d’entrée du papier) et autres
particularités (impression en duplex), sont enregistrés dans des fichiers PPD (PostScript
Printer Definition, définition d’imprimantes PostScript). Ce format, défini par Adobe, est
également utilisé pour les imprimantes sous Windows et Mac OS X.
Comme toutes les imprimantes ne sont pas en réalité des imprimantes PostScript, les
fichiers CUPS PPD contiennent également sous forme de commentaires la commande
GhostScript, y compris toutes les options, avec lesquelles gs peut convertir les fichiers
PostScript dans le format de l’imprimante. Les lignes suivantes constituent quelques
extraits d’un fichier PPD pour l’imprimante à jet d’encre HP DeskJet 5940 :
*PPD-Adobe: "4.3"
...
*Manufacturer: "HP"
*Product: "(deskjet 5940)"
...
*cupsFilter: "application/vnd.cups-postscript 0 foomatic-rip"
*%pprRIP: foomatic-rip other
...
*FoomaticIDs: HP-DeskJet_5940 hpijs
*FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE
-sDEVICE=ijs -sIjsServer=hpijs%A%B%C
-dIjsUseOutputFD%Z -sOutputFile=- -"
...

Ces informations sont extraites d’une base de données ppds.dat qui contient toutes les
imprimantes connues par CUPS. Le fichier ppds.dat est créé lors de la configuration de
l’imprimante et se trouve selon la distribution dans un répertoire différent, par exemple
/var/cache/cups. Si votre imprimante ne se trouve pas dans cette base de données et si vous
ne trouvez pas de modèle compatible, vous pouvez éventuellement trouver un fichier .ppd
sur Internet.
Le script cupsomatic extrait du fichier PPD de l’imprimante les paramètres GhostScript,
puis appelle gs et convertit les données PostScript au format de l’imprimante.

Configuration d’une imprimante locale


Indépendamment du programme de configuration utilisé, les astuces suivantes devraient
vous aider :
• La détection automatique de l’imprimante ne peut fonctionner que lorsque celle-ci est
allumée. Si vous possédez plusieurs imprimantes, vous devez pendant la configuration
d’une imprimante donnée éteindre toutes les autres.
• Pour configurer manuellement une imprimante, vous devez au moins connaître l’inter-
face (parallèle, série, USB, réseau, etc.) et le modèle. Celui-ci est choisi dans une énorme
base de données.
Linux Livre Page 597 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 597

Si votre imprimante n’y figure pas, essayez de trouver un modèle compatible. Pour les
imprimantes PostScript et PCL, vous pouvez choisir le fabricant Generic et indiquer le
type de l’imprimante (PostScript ou PCL).
Pour certaines imprimantes récentes qui ne figurent pas encore dans la base de don-
nées de modèles de CUPS, vous pouvez trouver un fichier PPD sur Internet et le
charger pendant la configuration. Attention, tous les fichiers PPD ne sont pas compa-
tibles avec CUPS. Un fichier donné peut aussi demander une version très récente de
CUPS.
• Pour de nombreux modèles d’imprimantes, il existe plusieurs pilotes. Deux raisons
peuvent expliquer cela. Bon nombre d’imprimantes prennent en charge différents stan-
dards. De plus, CUPS agrège plusieurs projets différents (GhostScript, GutenPrint, etc.),
ce qui peut mener à différents pilotes provenant de différents projets. L’imprimante
peut alors apparaître plusieurs fois sous différents noms.
Il n’est souvent pas facile de dire si le pilote X est meilleur que le pilote Y. La qualité de
l’impression dépend largement de ce que vous désirez imprimer : texte, schémas techni-
ques, photos, etc. Seules quelques expériences vous permettront de savoir quel pilote
utiliser pour quelles données. La qualité d’impression dépend également du paramé-
trage du pilote, par exemple la résolution.
Les pilotes ne se différencient pas seulement par la qualité, mais aussi par la vitesse
d’impression. Pour imprimer du code, il n’est pas forcément nécessaire d’utiliser un
pilote destiné à l’impression de photos !
• La plupart des imprimantes laser PostScript peuvent aussi être configurées via un mode
de compatibilité pour se comporter comme une imprimante HP LaserJet. Les données
d’impression sont alors converties dans le langage d’impression de HP et envoyées à
l’imprimante. Cela peut paraître lourd, mais la vitesse d’impression obtenue est dans de
nombreux cas supérieure.
En effet, pour l’imprimante, traiter des fichiers PostScript est bien plus complexe que
traiter des fichiers LaserJet. La vitesse de traitement est plus faible que celle d’un PC
classique. Cette configuration a cependant un inconvénient : la qualité d’impression est
en partie plus faible. La différence dépend principalement des polices utilisées.

Configuration d’une imprimante réseau (côté serveur)


Les termes "configuration d’une imprimante réseau" sont souvent peu clairs. Cette section
traite du cas d’une imprimante tout à fait normale branchée sur un ordinateur et mise à la
disposition du reste du réseau via CUPS. La section suivante décrit comment utiliser une
imprimante déjà connectée au réseau.
cupsd.conf Nous supposons ici que l’imprimante est déjà configurée en local, c’est-à-dire qu’il est pos-
sible d’imprimer depuis l’ordinateur. Avant que d’autres ordinateurs ne puissent l’utiliser, il
faut que les contrôles d’accès du serveur CUPS le permettent. Pour que toutes les impriman-
tes du réseau local sachent quelles imprimantes sont disponibles sur le réseau, il faut activer
Linux Livre Page 598 Mardi, 23. septembre 2008 1:05 13

598 LINUX

la fonction Browsing du serveur CUPS. Les modifications nécessaires du fichier cupsd.conf


sont indiquées dans le fichier de configuration ci-après :
# /etc/cups/cupsd.conf
...
Listen 631
Browsing On
BrowseAddress @LOCAL
...
# Permettre l’accès à CUPS dans le réseau local
<Location />
Order allow,deny
Allow @LOCAL
</Location>
...
Listen 631 indique que CUPS communique sur le port réseau 631. Attention, le paramé-
trage par défaut est Listen localhost:631, qui n’autorise l’accès qu’à l’ordinateur local.
BrowseAdress @LOCAL s’assure que les informations de CUPS sont envoyées sur toutes les
interfaces réseau locales, mais pas sur les interfaces d’accès à Internet (PPP, etc.). Vous pou-
vez aussi indiquer une interface réseau particulière avec BrowseAddress @IF(eth0).
cupsd.conf a de nombreux mots clés associés au parcours du réseau. Par exemple, Brow-
seAllow et BrowseDeny permettent d’indiquer explicitement depuis quels ordinateurs les
informations CUPS peuvent être reçues. Par défaut, il n’y a pas de restriction d’accès et il est
rarement nécessaire ou sensé de modifier les autres paramètres BrowseXxx.
Allow @LOCAL permet de donner accès à CUPS aux ordinateurs du réseau local.
N’oubliez pas de redémarrer CUPS pour que les modifications soient prises en compte :
root# /etc/init.d/cups* restart

Pour qu’une imprimante locale soit également utilisée sur les ordinateurs Windows du réseau, elle doit être
partagée par Samba (voir section 30.8).

Configuration d’une imprimante réseau (côté client)


Après avoir décrit comment partager une imprimante avec d’autres membres du réseau,
nous allons maintenant traiter de l’opération inverse : envoyer des documents à une impri-
mante qui n’est pas connectée directement à l’ordinateur, mais seulement disponible via le
réseau. Il existe deux variantes : les imprimantes usuelles, connectées à un autre ordinateur,
et les vraies imprimantes réseau, qui disposent elles-mêmes d’une prise réseau et d’un serveur
d’impression intégré.
Lorsque la connexion à l’imprimante se fait par le biais d’un autre ordinateur, on peut ren-
contrer les cas suivants :
• une imprimante IPP (gestion par Linux/Unix avec CUPS, Internet Printing Protocol) ;
• une imprimante Linux/Unix (gestion par Linux/Unix, protocole LPD) ;
• une imprimante Windows (gestion par un ordinateur sous Windows ou un serveur
Samba) ;
• une imprimante Novell (gestion par un ordinateur Novell Networks).
Linux Livre Page 599 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 599

La plupart des vraies imprimantes réseau connaissent au moins l’un de ces protocoles.
De plus, certains appareils prennent en charge divers protocoles supplémentaires :
• une API de socket (par exemple JetDirect d’HP) sur le port IP 9100 ;
• AppSocket (par exemple Tektronix) ;
• un protocole spécifique au fabricant.
Utiliser une Les détails de la configuration dépendent du protocole utilisé pour les communications. La
imprimante IPP
situation la plus simple correspond à celle où CUPS et IPP sont disponibles des deux côtés.
Les imprimantes répondant à cette configuration sont visibles sans autre configuration du
côté client et peuvent être utilisées immédiatement. CUPS ajoute toutes les imprimantes
visibles sur le réseau au fichier /etc/printcap.
lpstat -v affiche une liste de toutes les imprimantes disponibles. La commande suivante est
lancée sur l’ordinateur uranus. Il existe une imprimante locale, nommée DeskJet-5940, ainsi que
deux imprimantes sur mars et saturne, nommées respectivement pluton et kyocera.
user@uranus$ lpstat -v
périphérique pour DeskJet-5940 : parallel:/dev/lp0
périphérique pour pluton : ipp://mars.sol:631/printers/pluton
périphérique pour kyocera : ipp://saturn.esol:631/printers/kyocera
Ces trois imprimantes sont accessibles directement avec lpr -Pnom. Si plusieurs impriman-
tes ont le même nom sur le réseau, elles doivent être désignées sous la forme nomimpri-
mante@nomhôte, par exemple lpr -Plp@jupiter.

Pour que les imprimantes CUPS soient visibles des autres ordinateurs dans le réseau local, CUPS doit être
configuré sur les ordinateurs distants comme dans la section précédente. Le port 631 ne doit pas être bloqué
par un pare-feu !
En principe, une imprimante IPP peut être configurée de manière à pouvoir être utilisée en réseau, mais non
visible automatiquement. Dans ce cas, vous devez configurer l’imprimante sur l’ordinateur local. Choisissez
comme type d’imprimante Imprimante réseau IPP et saisissez comme adresse ipp://nomhôte/printers/
nomimprimante. Si l’imprimante distante est gérée par Linux/CUPS, indiquez comme fabricant et modèle
Raw et Queue. Cela signifie que les données PostScript doivent être envoyées telles quelles à l’ordinateur dis-
tant qui se chargera du traitement des données pour l’imprimante.

Configurer Si l’imprimante réseau distante n’est pas compatible avec IPP, elle doit être configurée du
d’autres
imprimantes côté du client avant qu’il puisse l’utiliser. Les programmes de configuration s’en chargent
réseau comme pour une imprimante locale. Il faut cependant choisir, comme type d’imprimante,
Imprimante réseau. La suite de la configuration dépend du protocole :
• SMB (Windows/Samba). Vous devez indiquer le nom d’hôte de l’ordinateur, le nom de
l’imprimante et éventuellement un nom d’utilisateur et un mot de passe. Avant de pou-
voir utiliser une imprimante Windows, vous devez installer les outils client de Samba.
Selon la distribution, les outils client et serveur font tous partie du même paquetage.
• LPD (Unix-LPD). Indiquez le nom de l’ordinateur et de l’imprimante, ainsi que celui de
la file d’attente. En cas de doute, il s’agit souvent de lp ou lp0.
• Protocole de socket comme HP JetDirect. Indiquez le nom d’hôte et l’adresse IP de
l’imprimante, ainsi que le numéro de port (en général, 9100).
Linux Livre Page 600 Mardi, 23. septembre 2008 1:05 13

600 LINUX

Certains programmes de configuration attendent les informations ci-après sous la forme


d’une adresse URI (la syntaxe est résumée dans le tableau qui suit).
Les informations détaillées quant à l’imprimante réseau (protocole, identifiant de connexion,
etc.) sont enregistrées dans le fichier /etc/cups/printers.conf. Les lignes suivantes montrent
la configuration d’une imprimante réseau compatible JetDirect :
# /etc/cups/printers.conf
<DefaultPrinter FS-1800+>
Info FS-1800+
DeviceURI socket://pluton:9100
State Idle
StateTime 1164874758
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
</Printer>

Le mot clé correspondant de printers.conf est DeviceURI. Il introduit l’adresse URI qui
fournit le protocole et l’adresse réseau. Le tableau suivant donne quelques exemples de syn-
taxe pour ces adresses.

Adresses URI de CUPS


parallel:/dev/lp0 imprimante locale (parallèle)
serial:/dev/ttyS0?baud=115200 imprimante locale (série)
usb:/dev/usb/lp0 imprimante locale (USB)
lpd://nomhôte/nomimprimante imprimante réseau LPD
socket://nomhôte:9100 imprimante avec protocole de socket
smb://nomhôte/imprimante imprimante Windows
smb://groupe/nomhôte/imprimante imprimante Windows dans un groupe de travail
smb://utilisateur:xxx@wg/hôte/imprimante imprimante Windows dans un groupe de travail
avec authentification
ipp://nomhôte/printers/nomimprimante imprimante IPP

30.3 NFS
NFS (Network File System, système de fichiers réseau) permet à un ordinateur de mettre à
disposition ses répertoires locaux pour d’autres ordinateurs du réseau. C’est la méthode la
plus courante sous Unix/Linux de gérer les répertoires partagés.
Les fonctions de base de NFS sont intégrées directement au noyau depuis la version 2.2, afin
d’atteindre des performances optimales. La plupart des distributions actuelles fournissent
un noyau NFS. Il existe aussi un serveur NFS en espace utilisateur, indépendant du noyau.
Linux Livre Page 601 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 601

Le noyau NFS prend en charge les versions 3 et 4 de NFS. Pour l’instant, NFS4 n’est pas large-
ment diffusé.
NFS est implémenté avec des RPC (Remote Procedure Calls, appels de procédures distants).
Pour que NFS fonctionne, il faut donc un ensemble de programmes, dont voici une liste des
principaux :
• nfsd (pour NFS3) et nfsd4 (pour NFS4) sont les démons NFS. Ils sont mis en œuvre par
des threads du noyau.
• portmap établit la connexion entre le client et le serveur NFS, et s’occupe de l’allocation
dynamique de ports UDP sur les clients.
• rpc.mountd traite les demandes de montage des clients.
Vous avez normalement peu d’attention à porter à ces programmes : dès lors que NFS est
installé et actif, tous les programmes nécessaires sont démarrés par InitV.

Un guide pratique détaillé sur le thème de NFS, avec de nombreuses astuces d’optimisation et de sécurité,
se trouve à l’adresse http://nfs.sourceforge.net/nfs-howto/.

Installation et configuration
Avant de configurer un serveur NFS, vous devez vous assurer que les différents paquetages
sont installés. Par défaut, ce n’est généralement pas le cas. Les noms des paquetages varient
selon la distribution.
Debian, Ubuntu nfs-common, nfs-kernel-server, portmap
Fedora, Red Hat, SUSE nfs-utils, portmap
La configuration est regroupée dans trois fichiers : /etc/exports, /etc/hosts.allow et /etc/
hosts.deny.
/etc/exports Le fichier /etc/exports est le fichier central de configuration de NFS. Il définit quel ordina-
teur a le droit d’accéder à quel répertoire. L’ordinateur peut être indiqué par son adresse IP
ou son nom sur le réseau. Les adresses IP peuvent être des masques (par exemple,
192.168.0.0/255.255.255.0 ou 192.168.0.0/24). Les adresses IP et noms d’ordinateurs
peuvent, de plus, contenir le caractère joker * (par exemple *.sol).
L’exemple suivant indique que tous les clients dans le réseau IP 192.168.0.* ou nommés
*.sol peuvent accéder au répertoire /usr/local, mais pas le modifier. De plus, uranus.sol
peut lire et modifier le répertoire /usr/share. La ligne /usr/local est séparée en deux lignes
pour des raisons de place.
# /etc/exports sur l’ordinateur mars.sol
# ro = lecture seule, rw = lecture et écriture
/usr/local 192.168.0.0/24(ro,async,no_subtree_check) \
*.sol(ro,async,no_subtree_check)
/usr/share uranus.sol(rw,async,no_subtree_check)
Linux Livre Page 602 Mardi, 23. septembre 2008 1:05 13

602 LINUX

La syntaxe de /etc/exports est comparable à celle des lignes qui précèdent. Le répertoire et
le nom d’hôte ou l’adresse IP sont suivis d’options NFS entre parenthèses. ro et rw indiquent
si l’accès n’est autorisé qu’en lecture ou en lecture/écriture. sync et async définissent le
moment où le serveur NFS prend en compte les modifications. Par défaut, il s’agit de sync :
la modification est enregistrée lorsque le fichier est effectivement enregistré. async est une
option plus rapide, mais nettement moins sûre. man exports fournit une référence exhaus-
tive de toutes les options.
Si le serveur NFS est déjà démarré, les modifications de /etc/exports ne seront prises en
compte qu’après avoir lancé la commande exportfs :
root# exportfs -a

/etc/ Les fichiers hosts.allow et hosts.deny indiquent quels ordinateurs ont le droit d’accéder au
hosts.allow et
/etc/hosts.deny serveur NFS. Les informations de /etc/exports définissent quels utilisateurs peuvent contac-
ter le serveur NFS. Ils se situent en première ligne de la protection des accès. Le serveur NFS
s’occupe des lignes portmap et mountd.
Démarrage Le serveur NFS est, comme tous les autres services réseau, lancé grâce à un script InitV. Le
nom du script dépend de la distribution et peut s’appeler nfs, nfs-kernel, nfsserver, etc.
Une fois le serveur lancé, vous pouvez regarder si tout fonctionne avec la commande mount
sur un autre ordinateur :
utilisateur@uranus$ mkdir /test
utilisateur@uranus$ mount -t nfs mars:/usr/share /test
utilisateur@uranus$ ...
utilisateur@uranus$ umount /test

Si ce n’est pas le cas, vérifiez que NFS n’est pas bloqué par un pare-feu. Attention, NFS utilise le
protocole UDP et non TCP.
UID et GID Un des gros problèmes de NFS dans un petit réseau est que les utilisateurs de NFS doivent
avoir les mêmes identifiants d’utilisateur et de groupe. NFS utilise ces numéros et les droits
d’accès en dépendent. Pour les gros réseaux, il existe souvent un serveur qui centralise ces
informations.
root a souvent un rôle particulier. Il ne peut pas, pour des raisons de sécurité, utiliser NFS
comme un utilisateur normal. Il n’a que les droits de l’utilisateur nobody. Si vous désirez
donner les droits usuels à root, il faut utiliser l’option no_root_squash.

NFS4
NFS4 est une implémentation complètement nouvelle du protocole. Il prend en charge les
ACL et permet une authentification plus sûre des utilisateurs. De plus, il utilise le port TCP
2049 et non UDP.
Les fichiers ne sont plus associés aux UID et GID des utilisateurs, mais à une chaîne de
caractères de la forme utilisateur@ordinateur.
Il a cependant l’inconvénient d’être plus compliqué. Pour Linux et Sun, il existe peu de
clients NFS4. Vous trouverez plus d’informations sur NFS4 sur les pages suivantes :
Linux Livre Page 603 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 603

http://wiki.linux-nfs.org/ ; http://fr.wikipedia.org/wiki/Network_File_System
http://www.citi.umich.edu/projects/nfsv4/linux/using-nfsv4.html
http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html
http://www.brennan.id.au/19-Network_File_System.html#nfs4

30.4 Samba – Les fondamentaux


Samba est un ensemble de programmes servant à faire communiquer les ordinateurs sous Win-
dows et Unix/Linux. Son nom vient de l’abréviation SMB, qui signifie Server Message Block.
SMB est utilisé sous Windows pour partager des fichiers et des imprimantes sur un réseau.
Sur les réseaux Windows, il existe souvent un serveur Windows pour fournir ces fonction-
nalités à tous les clients. Samba permet de mettre en place cela sur un serveur Linux. Cette
solution est moins coûteuse et souvent plus efficace et stable. Il n’est cependant pas néces-
saire de modifier tout un réseau Windows pour pouvoir mettre en place Samba. Comme ce
dernier peut être ajouté sans problème à un ordinateur sous Linux, vous pouvez d’une part
accéder à des fichiers et à des imprimantes partagées par des ordinateurs Windows et
d’autre part, servir vous-même des fichiers ou des imprimantes locales.

Cette section ne couvre que les fonctions de base de Samba 3.0. Si vous avez besoin de fonctions plus
avancées, comme l’authentification via LDAP, vous devez recourir à d’autres documentations, par exemple
sur http://www.samba.org ou https://help.ubuntu.com/community/SettingUpSamba.

Protocole et services
Un prérequis de la configuration d’un serveur Samba est que vous ayez une idée de la
manière dont fonctionnent les réseaux Windows. Nous ne pouvons ici qu’en donner un bref
aperçu. Cette section a pour seul but de déclarer les fonctions de Samba et de les relier à la
terminologie Windows. Procurez-vous un bon livre sur la configuration du réseau sous
Windows. Si vous vous intéressez aux aspects plus techniques, http://www.samba.org/
samba/docs/using_samba/toc.html est un bon point de départ.
NetBIOS L’abréviation NetBIOS vient du protocole Network Basic Input/Output System, système basique
d’entrées/sorties réseau, développé par IBM. Il a été entre temps plusieurs fois mis à jour.
NetBIOS ne doit pas être confondu avec NetBEUI. Ce dernier est un protocole qui remplis-
sait le même rôle que TCP/IP. Il était autrefois utilisé à la place de TCP/IP sous Windows,
mais n’a depuis plus beaucoup de signification.
NBNS NetBIOS sert, entre autres, à échanger les noms d’ordinateurs (service de noms). Ces noms
peuvent être gérés de manière centralisée par un serveur de noms NetBIOS (NBNS) ou de
manière décentralisée. Dans ce cas, chaque ordinateur envoie lorsqu’il démarre un message
à tous les autres clients du réseau et leur indique sous quel nom il est accessible.
Linux Livre Page 604 Mardi, 23. septembre 2008 1:05 13

604 LINUX

Datagrammes/ NetBIOS utilise deux mécanismes de communication : le service de sessions et le service de


sessions
datagrammes. Tous deux ont à voir avec l’échange de données entre deux ordinateurs. Le
premier établit une connexion fixe entre deux ordinateurs. Dans le deuxième, la connexion
n’est au contraire pas fixée : il n’y a pas de vérification que les données arrivent dans le bon
ordre. Le service de datagrammes a l’avantage de pouvoir envoyer des données à plusieurs
ordinateurs en même temps.
WINS Le NBNS est réalisé grâce à WINS (Windows Internet Name Service, service de noms Internet
sous Windows). Ce dernier est le pendant du DNS sous Linux/Unix. Les serveurs WINS
peuvent être mis en place avec Samba ou des versions actuelles de Windows (à l’exception
des Windows 9x). Samba peut ainsi accéder à un DNS déjà actif.
La résolution de noms fonctionne, à la différence d’Unix, sans serveur de noms explicite. Les
paquets de datagrammes doivent être envoyés à tous les ordinateurs du réseau. C’est pourquoi
cette opération est de plus en plus inefficace au fur et à mesure que le réseau grossit.

Les noms d’ordinateurs NetBIOS et TCP/IP sont indépendants. En théorie, un ordinateur peut avoir un nom
différent par protocole. En pratique, on évitera évidemment cette situation. Utiliser différents noms porte à
confusion et peut également s’opposer à l’utilisation de certaines fonctions.

Exploration Un client Windows peut explorer le réseau pour savoir quels sont les autres ordinateurs pré-
du réseau
sents sur le réseau. Pour que tous les ordinateurs n’aient pas à parcourir le réseau, un explo-
rateur principal (Master Browser) se charge de cette tâche. Dans les réseaux importants, il est
aidé par un ou plusieurs explorateurs de sauvegarde. Samba peut faire office d’explorateur.
Il n’est pas explicitement défini qui doit prendre le rôle d’explorateur. Les ordinateurs qui se
trouvent sur le réseau le négocient dynamiquement en fonction de leur adaptation au rôle −
en général, l’ordinateur avec le système d’exploitation le plus récent est le mieux adapté.
La liste d’exploration n’est malheureusement pas toujours synchrone avec l’état courant du
réseau. Cela est dû au fait que les clients gèrent un cache avec le dernier état valide. L’actua-
lisation de ce cache (F5 sous l’Explorateur de Windows) ne fonctionne pas toujours ou peut
demander un certain temps. Si vous ne trouvez pas un ordinateur alors que vous savez qu’il
fonctionne, cela dénote probablement un problème d’exploration.

Droits d’accès et systèmes de sécurité


Initialement, Windows n’était pas conçu comme un système multi-utilisateur, ni comme un
système réseau. Cela a bien changé, mais les origines de Windows sont encore reconnaissa-
bles lorsqu’il s’agit de savoir à quels fichiers un utilisateur peut accéder et comment régler
ces droits d’accès. D’un point de vue Unix, ces concepts peuvent paraître déconcertants.
Partages Le concept de partages décrit les répertoires ou les imprimantes qui sont mis à la disposition
d’autres ordinateurs via NetBIOS.
Sécurité au La forme la plus simple de contrôle d’accès est d’associer un mot de passe à chaque réper-
niveau des
partages toire et imprimante. Vous pouvez aussi ouvrir complètement l’accès à des répertoires ou des
imprimantes données ; aucun mot de passe n’est nécessaire, mais aucun contrôle d’accès
n’est fait. Tous les ordinateurs sous Windows à partir de la version 3.11 prennent en charge
cette sécurité au niveau des partages.
Linux Livre Page 605 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 605

L’idée est si simple qu’elle est encore très utilisée et tout à fait envisageable dans les petits
réseaux. Elle fonctionne sans notion d’utilisateur (jusqu’à Windows 95, la connexion avec
des noms d’utilisateurs différents n’était pas prévue).
Cette pratique a cependant un inconvénient : si dix ordinateurs partagent trois objets cha-
cun, trente mots de passe différents sont nécessaires. Dans des réseaux plus importants, cela
mène rapidement au chaos et à la multiplication des Post-It sur les écrans...
Sécurité au La sécurité au niveau des utilisateurs suppose que ces derniers se connectent côté client
niveau des
utilisateurs avec un identifiant et un mot de passe. Lorsqu’ils désirent utiliser des données du serveur,
leur identifiant et leur mot de passe courants servent à leur attribuer des autorisations
d’accès. En plus de l’authentification correcte, il faut également à ce niveau que le client et le
serveur appartiennent au même groupe de travail.
Par conséquent, un répertoire sur le serveur n’est pas simplement associé à un mot de passe.
Il est lié à un utilisateur (ou à une liste ou un groupe d’utilisateurs). Le serveur a donc besoin
d’une base de données avec les noms d’utilisateurs, les appartenances aux groupes et les
mots de passe.
Pour donner un exemple, supposons que l’utilisateur X travaille sur l’ordinateur A. Pour
que X puisse accéder au serveur S, il doit être déclaré en tant qu’utilisateur sur S comme sur
A (avec le même identifiant et le même mot de passe). Supposons à présent que l’ordinateur
A tombe en panne et que X passe sur l’ordinateur B. Pour qu’il puisse accéder aux mêmes
données sur S, il doit également être créé sur l’ordinateur B (avec un mot de passe).
Si X décide de changer son mot de passe, cette modification doit être répercutée sur le ser-
veur S et tous les clients (A, B, etc.). La gestion décentralisée des mots de passe et de
l’authentification est donc un problème perpétuel avec ce concept.
Les clients A, B, etc. accèdent aux données du serveur au niveau utilisateur, mais ils peuvent
utiliser entre eux une approche de sécurité de partages. Il est également possible que le
client A partage, sans mot de passe, un répertoire. Le client B peut alors utiliser ce répertoire
(quel que soit l’utilisateur connecté), à partir du moment où il connaît le mot de passe.
Domaines Les domaines et Active Directory permettent de centraliser l’authentification des utilisateurs
et Active
Directory sur le réseau. Nous ne parlerons pas ici de l’utilisation de Samba dans ce type de configuration.
Que peut Revenons maintenant à Linux. Samba prend en charge les quatre modèles de sécurité :
faire Samba ?
• La sécurité au niveau des partages peut être reproduite, mais c’est assez peu intuitif
pour les administrateurs de Samba.
• L’utilisation de Samba comme serveur avec une sécurité au niveau des utilisateurs est la
plus simple et la plus populaire.
• Samba prend en charge, depuis la version 2.2, tous les aspects de la sécurité au niveau
des domaines.
• Depuis la version 3.0, Samba peut s’intégrer comme client dans un réseau Active Directory.
• La version 4 de Samba, attendue pour 2008, devrait lui permettre d’être utilisé comme
serveur de domaine Active Directory.
Linux Livre Page 606 Mardi, 23. septembre 2008 1:05 13

606 LINUX

Nous ne parlerons ici que de la sécurité au niveau des partages et des utilisateurs. Pour confi-
gurer Samba au niveau des domaines ou mettre en œuvre Active Directory, vous devrez
trouver un ouvrage spécifique à Samba.

30.5 Client Samba


Gnome et KDE Vous pouvez accéder à des partages réseau sous Linux, qu’il s’agisse d’ordinateurs Win-
dows ou de serveurs Samba. Le plus simple est d’utiliser le gestionnaire de fichiers de
Gnome ou de KDE.
L’accès à des répertoires réseau est si simple que les nombreuses limitations concernant la
modification des fichiers qui s’y trouvent sont d’autant plus agaçantes. Dans certains cas, un
double-clic sur un fichier entraîne des erreurs qui indiquent que ce dernier n’existe pas ou
qu’il ne peut pas être trouvé. C’est bien sûr absurde. En fait, de nombreux programmes ne
savent pas ouvrir des fichiers sur des partages Windows (par exemple Gimp). D’autres peu-
vent les ouvrir, mais ne savent pas les enregistrer. La meilleure intégration est la prise en
charge transparente du protocole SMB par les programmes purement KDE.
La solution à ce problème est malheureusement assez inconfortable : copiez les fichiers du
répertoire distant dans un répertoire local, éditez-les et recopiez-les sur le répertoire réseau.
Vous pouvez aussi intégrer le répertoire réseau avec le système de fichiers CIFS dans l’arbo-
rescence locale.
CIFS On peut également monter directement un répertoire réseau avec le système de fichiers cifs
dans l’arborescence locale (voir section 23.10).

Quelle que soit la méthode utilisée, vous devez au moins installer les outils client pour Samba, qui sont fournis
dans de nombreuses distributions par des paquetages distincts (sous Ubuntu, samba-common et smb-
client).
Il faut également s’assurer que le protocole SMB n’est pas bloqué par un pare-feu. Les ports utilisés sont les
ports TCP 135, 139 et 445, ainsi que les ports UDP 137 et 138.

smbclient On peut également chercher des répertoires Windows avec la commande smbclient. Celle-
ci est peu confortable, mais elle est souvent pratique pour tracer les problèmes Samba.
L’exemple suivant montre toutes les ressources de l’ordinateur local mercure. Il ne s’agit que
d’imprimantes. La deuxième partie du résultat liste tous les groupes de travail visibles et
indique quel ordinateur est maître de ces groupes. Il n’est pas nécessaire de donner un mot
de passe ; il suffit de taper Entrée, puisque nous ne cherchons pas ici à accéder à des ressour-
ces protégées par des mots de passe.
utilisateur$ smbclient -L localhost
smbclient -L localhost
Password:
Anonymous login successful
Domain=[TEST] OS=[Unix] Server=[Samba 3.0.22]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
Linux Livre Page 607 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 607

IPC$ IPC IPC Service (mercure server (Samba, Ubuntu))


ADMIN$ IPC IPC Service (mercure server (Samba, Ubuntu))
pluton Printer pluton
LaserJet-5 Printer LaserJet-5
DeskJet-5940 Printer hp5940
FS-1800+ Printer FS-1800+
Anonymous login successful
Domain=[TEST] OS=[Unix] Server=[Samba 3.0.22]
Server Comment
--------- -------
MERCURE mercure server (Samba, Ubuntu)
Workgroup Master
--------- -------
MYGROUP SATURNE
SOL MARS
TEST MERCURE

Si smbclient renvoie une erreur (access denied), le nom d’utilisateur ou celui du groupe de
travail de votre ordinateur ne correspond pas à celui de l’ordinateur Windows ou du ser-
veur Samba. La solution la plus simple est de donner ces informations comme paramètres
supplémentaires à smbclient. Le fichier /etc/smb.conf propose plus de paramètres à confi-
gurer. Il sert principalement à configurer un serveur Samba, mais certains paramètres sont
également exploités par smbclient.
utilisateur$ smbclient -U utilisateur -W groupe -L venus

Vous pouvez aussi utiliser smbclient pour télécharger des fichiers. Vous devez d’abord éta-
blir une connexion avec le répertoire partagé sur l’ordinateur Windows ou Samba distant.
Un mot de passe est alors généralement demandé. Vous pouvez, comme avec ftp, afficher le
contenu du répertoire avec ls, changer de répertoire avec cd, télécharger des fichiers avec
get et en transférer sur le partage avec put. help renvoie la liste des commandes disponibles
et man smbclient fournit une description détaillée des commandes.
utilisateur$ smbclient //venus/partage -U nom -W groupe
added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0
Password: xxxxxx
Domain=[SOL] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: > ls
. D 0 Thu Sep 7 17:38:02 2006
.. D 0 Thu Sep 7 17:38:02 2006
data D 0 Wed Apr 5 18:17:11 2006
file.xy AR 226 Sat Dec 14 00:00:00 2006

30.6 Samba – Configuration de base et mise en service


Configuration Le fichier de configuration central pour Samba est /etc/samba/smb.conf. Il se compose
minimale
d’une section globale pour les paramètres de base, ainsi que de plusieurs autres sections
pour le partage des ressources (répertoires, imprimantes, etc.). Chaque section commence
Linux Livre Page 608 Mardi, 23. septembre 2008 1:05 13

608 LINUX

par une ligne du type [nom_ressource]. Le fichier peut ressembler, pour les premiers tests, à
ceci :
; /etc/samba/smb.conf
[global]
workgroup = SOL
security = share
[public]
path = /data/public
guest ok = yes
guest only = yes

Samba partage le répertoire public et se trouve dans le groupe de travail SOL. Ce répertoire
contient les données du répertoire /data/public de l’ordinateur local − ce répertoire doit
donc exister et contenir quelques fichiers à des fins de test.
On peut accéder au serveur (security = share) et au répertoire public (guest ok, guest
only = yes) sans mot de passe. Les fichiers ne sont cependant pas modifiables : par défaut,
les répertoires sont partagés en lecture seule (read only = yes).

Chaque fois que l’on modifie le fichier de configuration, le serveur Samba doit le recharger. Si le serveur fonc-
tionne déjà, il faut forcer cela par /etc/init.d/smb reload ou /etc/init.d/samba reload.

Démarrage Deux processus d’arrière-plan présentent les services de Samba :


• nmbd sert à la gestion interne et agit comme serveur de noms. Ce démon gère aussi l’explora-
tion du réseau. Il peut au besoin faire office d’explorateur maître ou de serveur WINS.
• smbd est l’interface pour les clients et leur donne accès aux répertoires, aux imprimantes
et à la liste des ressources.
Ces deux processus sont démarrés par le système InitV. Les noms des scripts InitV dépen-
dent de votre distribution.
• Debian, Ubuntu samba démarre les deux processus
• Red Hat, Fedora smb démarre les deux processus
• SUSE smb démarre smbd, nmb démarre nmbd
Tests Pour tester si tout fonctionne, lancez sur le serveur la commande smbclient. Si vous avez
utilisé la configuration minimale proposée, il n’est pas nécessaire de saisir un mot de passe.
Dans l’exemple suivant, Samba est installé sur l’ordinateur mars :
root# smbclient -L localhost
Password: <Entrée>
Domain=[SOL] OS=[Unix] Server=[Samba 3.0.23]
Sharename Type Comment
--------- ---- -------
public Disk
IPC$ IPC IPC Service (Samba 3.0.23)
Domain=[SOL] OS=[Unix] Server=[Samba 3.0.23]
Server Comment
--------- -------
MARS Samba 3.0.23d
Workgroup Master
--------- -------
SOL MARS
Linux Livre Page 609 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 609

Lorsque cela fonctionne, vous devez vérifier si le serveur Samba et le répertoire public sont
visibles par les clients Windows. Un mot de passe n’est normalement pas nécessaire non
plus dans ce cas. La Figure 30.2 montre le répertoire sous Windows XP.

Figure 30.2
Le serveur Mars vu de
l’Explorateur Windows.

Vérificateur Lorsque vous faites de grosses modifications dans le fichier smb.conf, il est prudent de vérifier
de syntaxe
de smb.conf sa syntaxe avec testparm avant de redémarrer Samba.
root# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions <Return>
# Global parameters
[global]
workgroup = SOL
...

À partir de Samba 3.0, l’option -v affiche une liste de tous les paramètres par défaut pour
toutes les options possibles. Cela peut être pratique si vous ne savez pas quelles valeurs par
défaut ont les paramètres.
État de Samba smbstatus permet de connaître l’état courant de Samba, y compris les connexions actives :
root# smbstatus
Samba version 3.0.23
PID Username Group Machine
-------------------------------------------------------------------

Service pid machine Connected at


-------------------------------------------------------
Linux Livre Page 610 Mardi, 23. septembre 2008 1:05 13

610 LINUX

IPC$ 32292 192.168.1.41 Sun Jul 13 12:30:03 2008


public 32292 192.168.1.41 Sun Jul 13 12:30:00 2008

Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name ...
------------------------------------------------------------------------------
32292 65534 DENY_NONE 0x100001 RDONLY NONE /data/public . ...

Samba enregistre généralement son état et ses messages d’erreur dans les fichiers /var/log/
samba/log.smbd et log.nmbd.

30.7 Samba – Partager des répertoires


Il existe de nombreuses possibilités de partager des répertoires pour des utilisateurs indivi-
duels ou des groupes et d’indiquer qui peut modifier des fichiers, en créer de nouveaux, etc.
Cette section offre quelques exemples pour lesquels vous devez connaître les principes de
configuration dans smb.conf.

Les gestionnaires de fichiers de KDE et de Gnome permettent de partager des répertoires réseau. Cette
fonctionnalité masque une modification de smb.conf. D’après mon expérience, cela ne fonctionne pas
toujours de manière satisfaisante et nécessite de toute façon une configuration de base correcte de
smb.conf.

Sécurité au niveau des partages


Faire fonctionner Samba avec une sécurité au niveau des partages est rarement une bonne
idée. Ce niveau de sécurité n’est utile que lorsque vous désirez partager tous vos objets
(répertoires, imprimantes, etc.) sans mot de passe. Si vous souhaitez sécuriser vos ressources
par un identifiant de connexion, la section suivante vous sera plus profitable.
Répertoire Notre exemple de base à la section 30.6 garantissait presque le succès du partage : l’accès au
sans mot
de passe serveur Samba et au répertoire public fonctionne indépendamment de l’identifiant du
client et n’est pas partagé par un mot de passe.
Samba associe à chaque accès à un répertoire un utilisateur Linux. Les options guest ok
et guest only assurent que tout le monde peut accéder au répertoire public sans mot de
passe et que cet accès est toujours associé au compte correspondant à guest. Il s’agit nor-
malement de l’utilisateur Linux nobody, dont disposent automatiquement la majorité des
distributions Linux. Vous pouvez déterminer le compte par défaut pour guest avec cette
commande :
root# testparm -s -v | grep "guest account"
guest account = nobody

Pour que les clients Windows puissent effectivement accéder au répertoire public, il faut
s’assurer que l’utilisateur nobody existe et que le répertoire /data/public est accessible à cet
utilisateur. L’option guest account permet d’associer le compte guest à un autre compte
système.
Linux Livre Page 611 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 611


Répertoires On peut aussi sécuriser un répertoire avec un mot de passe au niveau partage. Le problème
avec un mot
de passe est qu’il n’existe pas de méthode simple de définir ce mot de passe. Vous devez associer le
répertoire à un compte Linux existant. Les commandes suivantes créent le nouvel utilisateur
dummy1 et en font le propriétaire du répertoire /data/readwrite.
root# useradd -s /bin/false dummy1
root# chown -R dummy1:users /data/readwrite

smbpasswd permet de créer un mot de passe Samba pour dummy1, qui sécurise l’accès réseau
au répertoire readwrite.
root# smbpasswd -a dummy1
New SMB password: ********
Retype new SMB password: ********
Added user dummy1.

Les lignes suivantes montrent la configuration nécessaire dans smb.conf. L’option browsea-
ble assure que le répertoire est visible de l’ordinateur client avant que l’accès ne soit
accordé.
[readwrite]
path = /data/readwrite
user = dummy1
writeable = true
browseable = true

L’authentification fonctionne à présent en plusieurs étapes − l’opération est même plus


complexe en vérité ; vous trouverez des détails dans la description de smb.conf.
• Dès qu’un client souhaite accéder au répertoire, Samba tente d’abord de gérer l’authen-
tification avec le nom d’utilisateur courant et le mot de passe. Si cela réussit, l’accès au
répertoire fonctionne pour ce compte.
• Si cela ne fonctionne pas (ce qui est généralement le cas au niveau de sécurité du par-
tage), le mot de passe transféré est comparé à celui de l’utilisateur dummy1. S’il est correct,
l’accès au répertoire est autorisé.
• Si cela ne fonctionne pas, une boîte de dialogue apparaît dans laquelle l’utilisateur doit
saisir un nom et un mot de passe. L’identifiant utilisé n’a pas d’importance, car Samba
utilise dans tous les cas dummy1 ; l’authentification n’est faite que sur la base du mot de
passe.

Lors de mes tests, je n’ai pas réussi à accéder avec le paramétrage par défaut à un répertoire en lecture/écri-
ture. Il semble que Samba ne comprenne pas le protocole NTLMv2 au niveau partage (mais cela fonctionne
au niveau sécurité des utilisateurs).
Il faut modifier les paramètres de sécurité de Vista pour accéder à un répertoire en lecture/écriture. Le para-
mètre correspondant se trouve, pour la plupart des versions de Vista, dans la configuration des stratégies
locales de sécurité. Choisissez dans le panneau de configuration Outils d’administration > Stratégie de
sécurité locale > Stratégies locales > Options de sécurité et passez la valeur de Sécurité réseau : Niveau
Linux Livre Page 612 Mardi, 23. septembre 2008 1:05 13

612 LINUX

d’authentification Lan Manager de Envoyer uniquement les réponses NTLM v.2 à Envoyer LM et NTLM −
utiliser la sécurité de session NTLM version 2 si négociée.
Sous Windows Vista Home, le programme de modification des politiques de sécurité n’existe pas. Vous ne
pouvez modifier la politique d’authentification que dans la base de registres. Il faut pour cela modifier la clé
LmCompatibilityLevel de HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa
de la valeur 3 à la valeur 1.

Sécurité au niveau utilisateur


Correspon- Sous Windows, les noms des utilisateurs sont des chaînes de caractères arbitraires qui peu-
dance entre
les noms vent contenir jusqu’à 128 caractères. Sous Linux, elles se composent au maximum de huit
d’utilisateurs caractères, sans caractère spécial, ni espace. Lorsqu’un utilisateur de Windows utilise un
Windows et
Linux nom d’utilisateur qui n’est pas compatible avec un utilisateur Linux, il faut définir l’associa-
tion dans un fichier. Le nom de ce fichier est défini dans smb.conf avec l’option username
map :
[global]
...
username map = /etc/samba/smbusers

Chaque ligne du fichier smbuser contient un nom d’utilisateur Linux, le signe = et le nom
d’un ou de plusieurs utilisateurs de Windows. Vous pouvez aussi utiliser ce fichier pour
associer plusieurs utilisateurs Windows à un utilisateur Linux. administrateur est souvent
associé à root, et guest à nobody.
Si l’utilisateur peter a comme identifiant Peter Mayer sous Windows, il faut simplement
ajouter la ligne peter = Peter Mayer à smbusers.

/etc/samba/smbusers (quel que soit son nom) peut compromettre le système de sécurité complet du
système. Assurez-vous donc que le fichier n’est modifiable que par root !

Mots de passe Avant que peter puisse effectivement accéder à des répertoires, il doit s’identifier. Pour cela,
lorsque la connexion est établie entre le client Windows et Samba, l’identifiant Windows et
un mot chiffré pour le mot de passe sont échangés. Cette valeur ne permet pas de reconstruire
le mot de passe. Samba ne peut donc vérifier le mot de passe que s’il existe un fichier de
mots de passe (le plus souvent, /etc/samba/smbpasswd) qui contient le même mot chiffré.
L’administrateur du système Linux doit donc ajouter une nouvelle ligne à ce fichier pour
peter, ce que permet la commande smbpasswd. Indiquez comme mot de passe la même
chaîne de caractères que celle saisie par l’utilisateur Peter Mayer sous Windows. Pour modifier
un mot de passe Samba existant, utilisez smbpasswd sans l’option -a :
root# smbpasswd -a peter
New SMB password: ******
Retype new SMB password: ******
Added user peter.
Password changed for user peter.
Linux Livre Page 613 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 613

Attention, cette commande ne fonctionne que lorsque peter existe sur le système local. Dans
le cas contraire, il faut l’ajouter avec useradd ou l’un des outils prévus par la distribution.
L’utilisateur peter a maintenant trois combinaisons identifiant/mot de passe :
• pour se connecter sous Windows, Peter Mayer et son mot de passe Windows ;
• pour se connecter sous Linux, peter et son mot de passe Linux ;
• pour se connecter à des ressources Samba, Peter Mayer ou peter et son mot de passe
Samba.
Si les mots de passe Windows et Samba correspondent, l’utilisateur peut accéder de manière
transparente aux ressources Samba. Si ce n’est pas le cas, il doit saisir son mot de passe cha-
que fois qu’il désire accéder à un répertoire. Le mot de passe du compte système sur le serveur
Samba et le mot de passe Samba sont en revanche indépendants.
Répertoires La sécurité au niveau de l’utilisateur correspond au modèle de sécurité de Linux ; elle est
personnels
donc bien plus légère à mettre en place. La configuration par défaut de nombreux serveurs
Samba ressemble à ceci :
[global]
workgroup = SOL # nom de votre groupe de travail
security = user
username map = /etc/samba/smbusers
map to guest = bad user
guest account = nobody
[homes]
writeable = true
browseable = false

Les deux lignes guest indiquent que tous les utilisateurs dont le nom ne se trouve pas dans
/etc/samba/smbusers sont automatiquement associés au compte nobody. Ainsi, ils peuvent
tous accéder au serveur Samba et voir quels fichiers s’y trouvent. Les dossiers accessibles
effectivement sont ceux dont l’option guest ok = yes est activée.
Le groupe [homes] est une section spéciale. Les répertoires personnels des utilisateurs actifs
sont visibles sous leur nom. Ces trois lignes économisent une liste sans fin de sections de
cette forme :
[peter]

writeable = true
user = peter

L’option browseable = false n’indique pas que l’utilisateur ne peut pas voir son répertoire.
Elle évite juste que le répertoire soit visible deux fois, une fois sous le nom de l’utilisateur
(par exemple peter) et une fois sous homes.
L’accès au répertoire personnel n’est possible que lorsque l’utilisateur dispose d’un compte
Linux avec un répertoire personnel. Une condition supplémentaire est qu’il ait un mot de
passe dans smb.conf.
Linux Livre Page 614 Mardi, 23. septembre 2008 1:05 13

614 LINUX

L’option map to guest = bad user dans la section [global] peut présenter un risque de sécurité. La
valeur never pour cette option est plus sûre. Elle fait en sorte que le serveur Samba soit entièrement inaccessible
aux utilisateurs qui ne sont pas correctement identifiés.
L’accès général à tous les répertoires personnels est également problématique du point de vue de la sécurité.
Si vous désirez refuser cet accès à certains utilisateurs, vous pouvez utiliser l’option invalid users.

Répertoires Le répertoire personnel n’est accessible qu’à un utilisateur donné. Mais il est souvent utile
de groupes
de disposer d’un répertoire auquel les différents membres d’un groupe peuvent accéder.
Pour cela, il faut d’abord associer tous les comptes utilisateurs membres à un groupe. Vous
pouvez alors définir dans smb.conf un répertoire que tous les membres de ce groupe peu-
vent utiliser avec une syntaxe du type @groupe. Vous évitez ainsi de devoir énumérer tous
les membres du groupe, ce qui est bien sûr également possible.
[ventes]
path = /data/ventes
writeable = true
browseable = true
user = @ventes
create mask = 0770
directory mask = 0770

Les droits d’accès à des répertoires de groupes sont particulièrement importants. Cela est
aussi valable pour les fichiers créés par les membres du groupe. Les deux options mask
font en sorte que les fichiers et les répertoires soient accessibles par tous les membres du
groupe.

30.8 Samba – Imprimantes réseau


Samba permet aux utilisateurs de Windows d’accéder à vos imprimantes sous Linux. La
configuration est simple, mais suppose que le système d’impression fonctionne déjà en
local.
Pour donner accès à tous les utilisateurs de smbpasswd aux imprimantes de /etc/printcap, il
suffit d’ajouter les lignes suivantes à smb.conf :
# /etc/samba/smb.conf
[global]
...
printing = CUPS
# accès à toutes les imprimantes locales du serveur
[printers]
printable = yes
path = /var/tmp/
browseable = no

browseable = no indique que les imprimantes sont visibles, mais pas le répertoire printers.
L’option path est utilisée pour les fichiers d’impression temporaires. Tous les utilisateurs
doivent avoir le droit d’écrire dans ce répertoire, sans quoi ils ne peuvent pas imprimer.
Linux Livre Page 615 Mardi, 23. septembre 2008 1:05 13

SERVEUR DE RÉSEAU LOCAL (CUPS, NFS ET SAMBA) 615

Si vous désirez ne partager qu’une imprimante donnée, vous devez ajouter ces lignes. Cet
exemple suppose que la file d’attente de l’imprimante s’appelle lp1 dans /etc/printcap et
qu’elle soit visible sous le nom hp3 sur les clients Samba :
[hp3]
printer = lp1
printable = yes
path = /var/tmp/
browseable = no

Pour donner à tous les utilisateurs le droit d’imprimer (sans mot de passe), ajoutez la ligne
guest ok = yes à la configuration de l’imprimante.
Configuration Il existe plusieurs possibilités qui influent sur l’endroit où sont converties les données
du système
d’impression d’impression au format de l’imprimante.
• Le plus simple est de choisir le pilote de l’imprimante sous Windows lorsque vous configu-
rez l’imprimante réseau.
Cette configuration peut poser certains problèmes. Il arrive que les données à imprimer
soient filtrées deux fois. Par exemple, pour une imprimante configurée comme une
imprimante PostScript, il se peut que le code PostScript envoyé par Windows soit inter-
prété comme du code ASCII par Linux et que le résultat de l’impression soit du code
PostScript explicite (commençant généralement par deux caractères %).
• L’autre variante est de configurer l’imprimante sous Windows comme une imprimante
PostScript, quel que soit son modèle (y compris lorsqu’il ne s’agit pas d’une imprimante
PostScript).
Sous Linux, la file d’attente correspond au modèle réel de l’imprimante.
Cela implique que le client Windows envoie des données PostScript au serveur Linux.
Les données sont alors converties au format de l’imprimante. Elles sont donc converties
deux fois, sous Windows au format PostScript et sous Linux au format de l’imprimante.
Cette méthode est, entre autres, appuyée par les développeurs de CUPS qui ont même
développé un pilote Windows à cette fin.
Cette variante présente deux inconvénients. D’une part, les pilotes sous Windows sont
généralement meilleurs que sous Linux. C’est particulièrement vrai pour les impriman-
tes à jet d’encre. Vous obtiendrez donc de meilleurs résultats si vous préparez les
fichiers sous Windows. De plus, la préparation de données d’impression est un proces-
sus coûteux en temps. De nombreuses tâches d’impression peuvent entraîner une
charge importante pour le serveur. Il est donc plus intéressant d’effectuer ces tâches sur
les clients de manière décentralisée.
Configuration Les imprimantes partagées sont visibles dans l’explorateur Windows, mais ne peuvent pas
des
imprimantes être utilisées immédiatement. Il faut d’abord installer la nouvelle imprimante. Pour cela,
sous Windows lancez le module Imprimantes et télécopieurs du Panneau de configuration, puis Ajouter
une imprimante et choisissez l’option Une imprimante réseau ou une imprimante connectée
à un autre ordinateur. Toutes les imprimantes réseau disponibles devraient alors s’afficher.
Si cela ne fonctionne pas, saisissez le nom de l’imprimante manuellement.
Linux Livre Page 616 Mardi, 23. septembre 2008 1:05 13

616 LINUX

Un second problème est que Windows affiche généralement un avertissement qui signale
que le serveur ne fournit pas de pilote d’impression. Vous devez le valider avec OK et choi-
sir le pilote d’impression dans la liste qui s’affiche. Le pilote à utiliser dépend de la configu-
ration de l’imprimante sous Linux.
Il serait plus élégant que Samba fournisse lui-même le bon pilote, afin de faciliter l’installa-
tion côté client. Ajoutez pour cela un répertoire partagé [print$] dans smb.conf qui pointe
vers un répertoire avec les fichiers d’installation. Les quatre options write list, force
group, create mask et directory mask indiquent qui peut installer des pilotes sur le serveur
et quels droits ont les fichiers résultants.
[print$]
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775

Le seul problème est maintenant d’installer le pilote d’imprimante dans le répertoire /var/
lib/samba/drivers. Cette étape relativement compliquée peut être effectuée depuis un ordi-
nateur sous Windows doté du pilote d’imprimante, ou depuis Linux, ce qui installe les
pilotes CUPS ou PostScript librement disponibles. Les différentes opérations nécessaires
à l’installation des pilotes sont décrites en détail dans le Samba-HOWTO sur
http://www.samba.org.
Linux Livre Page 617 Mardi, 23. septembre 2008 1:05 13

PARTIE 6 – UTILISATION DE PLUSIEURS SYSTÈMES


SIMULTANÉMENT

Lancer des programmes


31 Windows (Wine, CrossOver)
À la base, les programmes Windows ne fonctionnent pas sous Linux, car les
bibliothèques correspondantes n’existent pas. Plusieurs méthodes permettent
néanmoins d’accomplir l’impossible :
• Wine. Cet acronyme signifie Wine Is Not an Emulator, soit Wine n’est pas un
émulateur. Ce programme libre est cependant souvent décrit comme un ému-
lateur de Windows. Il s’agit en fait d’un ensemble de bibliothèques qui contien-
nent toutes les fonctions de base des bibliothèques Windows. Pour des raisons
de licence, le code de Windows ne peut évidemment pas être copié par Wine ;
des fonctions similaires sont donc développées. Cela explique pourquoi le pro-
jet Wine vient de publier sa version 1.0 après 15 ans de développement ! Il fonc-
tionne suffisamment bien pour lancer des programmes Windows sous Linux.
• CrossOver et Cedega. CrossOver et Cedega sont deux variantes commer-
ciales de Wine. CrossOver est un logiciel de l’entreprise CodeWeavers, qui
facilite l’installation et le démarrage de programmes Windows. Il se posi-
tionne sur le marché de la bureautique. Cedega, de l’entreprise TransGaming,
fournit diverses fonctions supplémentaires, en particulier les bibliothèques
DirectX, et se positionne sur le marché des jeux Windows.
• Programmes de virtualisation. Les programmes de virtualisation comme
VMware ou Xen ont une tout autre approche. Ils permettent de mettre en
place un environnement virtuel, dans lequel vous pouvez installer Win-
dows. (Il existe évidemment d’autres raisons pour mettre en place des logi-
ciels de virtualisation.) Vous pouvez alors lancer Windows dans une fenêtre
et y installer vos programmes Windows préférés.
• Terminal Server. Plutôt que de lancer des programmes Windows en local,
vous pouvez les lancer sur un ordinateur distant. Le programme s’affiche
cependant sur l’ordinateur Windows local. Les communications se font via
un protocole réseau (VNC, NX, etc.). L’ordinateur local fonctionne alors
comme un simple terminal.
Cette variante est particulièrement intéressante dans les réseaux impor-
tants : un serveur Windows correctement dimensionné permet à tous les
utilisateurs de Linux d’accéder à un programme Windows. La configura-
tion initiale est plus complexe que celle des autres solutions et les questions
de licence doivent être considérées − en général, il faut des licences multi-
utilisateur spéciales pour que plusieurs utilisateurs puissent utiliser un
programme commercial en même temps.
Cet ouvrage ne décrit pas toutes ces possibilités. Dans ce chapitre, nous parlerons
de Wine et de ses deux variantes commerciales les plus connues, CrossOver et
Cedega. Les chapitres suivants décrivent quelques programmes de virtualisation.
Linux Livre Page 618 Mardi, 23. septembre 2008 1:05 13

618 LINUX

Limitations Avant de crier victoire, vous devez être conscient de certaines limitations. Wine et Cross-
Over ne fonctionnent que sur des plateformes x86. Ces mêmes limitations s’appliquent à la
plupart des programmes de virtualisation.
La compatibilité de Wine et de CrossOver avec Windows est limitée. De nombreux pro-
grammes ne fonctionnent pas ou alors uniquement pour des fonctions basiques. Mais les
performances sont généralement au rendez-vous et, dans quelques rares cas, supérieures à
celles de la même application sous Windows.
Les programmes de virtualisation peuvent pallier certains problèmes de compatibilité. Les
fonctions nécessaires ne sont pas redéveloppées : le système d’exploitation complet est lancé
dans un environnement virtuel. Cela diminue largement les problèmes de compatibilité,
mais au détriment des performances. De plus, le matériel nécessaire et, en particulier, la
quantité de mémoire sont nettement plus importants.
Lancer des programmes Windows sous Linux implique souvent des coûts élevés. Certains
programmes ne sont pas libres (par exemple, CrossOver ou VMware). De plus, vous avez
besoin d’une licence pour le programme à démarrer (par exemple, Adobe Photoshop) et,
dans le cas d’un programme de virtualisation, d’une licence pour le système d’exploitation
(par exemple, Windows XP).
Enfin, signalons qu’une motivation courante pour passer à Linux est la sécurité accrue du
système. Si vous ne faites pas attention, vous pouvez rétablir le même genre de problèmes
(virus, etc.) avec Wine et d’autres programmes similaires que sous Windows.

31.1 Wine
La plupart des distributions fournissent un paquetage pour Wine, qui n’est cependant pas
installé par défaut. Cette section se base sur la version 1.1.2. Vous trouverez plus d’informations
sur Wine aux adresses http://www.winehq.org/ et http://wine-wiki.org/.
Configuration Généralement, Wine fonctionne sans configuration préalable. Si vous rencontrez des problè-
mes, le programme winecfg aide souvent à les résoudre (voir Figure 31.1). Vous pouvez y
configurer différents éléments audio et graphiques, associer des répertoires à diverses let-
tres de lecteurs Windows, etc. L’onglet Applications permet de définir quelle version de
Windows est imitée par Wine (par défaut, il s’agit de Windows 2000). Vous pouvez alors
définir des versions de Windows différentes pour vos programmes.
Installer et Une fois Wine installé, vous pouvez lancer un programme Windows avec la commande
démarrer des
programmes wine nom_du_programe.exe. Comme premier test, lancez le bloc-notes fourni avec Wine :
Windows
utilisateur$ wine /usr/lib/wine/notepad.exe.so

Cela ne fonctionne que lorsque le programme souhaité est installé. Une installation dans la
partition Windows de votre ordinateur n’est généralement pas d’une grande aide, car les
programmes Windows utilisent généralement des bibliothèques supplémentaires et des
enregistrements dans la base de registres. Il faut donc l’installer localement pour Wine :
utilisateur$ cd répertoire_des_fichiers_d’installation
utilisateur$ wine setup.exe
Linux Livre Page 619 Mardi, 23. septembre 2008 1:05 13

LANCER DES PROGRAMMES WINDOWS (WINE, CROSSOVER) 619

Figure 31.1
Configuration de Wine
avec winecfg.

Si vous avez de la chance, l’installation fonctionne sans erreur. C’est souvent le cas lorsque
vous installez de petits programmes populaires et anciens. Les programmes récents, très
gros ou exotiques renverront pour la plupart des messages d’erreur obscurs. Le problème
vient généralement du fait que l’installation réclame une fonction ou une bibliothèque Win-
dows (DLL) qui n’est pas encore implémentée sous Wine. Une recherche sur Internet permet
parfois de trouver quelques astuces pour débloquer la situation. Sinon, il faut vous faire une
raison : le programme ne fonctionne pas (encore) sous Wine. Un rapport d’erreur à l’adresse
http://bugs.winehq.org aide les développeurs de Wine à remédier au problème dans le
futur.

La base de données d’application de Wine recense plus de 5 000 programmes, avec des informations sur
la manière de les installer et sur la mesure dans laquelle ils fonctionnent. Cette base se trouve à l’adresse
http://appdb.winehq.org/.

Lorsque l’installation se passe bien, Wine se termine sans indiquer où le programme a été
installé. La commande find peut s’avérer utile lorsqu’on l’utilise, par exemple, pour trouver
tous les fichiers *.exe modifiés dans les 60 dernières minutes :
utilisateur$ find ~/.wine -cmin -60 -iname ’*.exe’

Notez que Wine ne fournit ni bureau Windows, ni menu de démarrage, barre des tâches,
gestionnaire de programmes, explorateur Windows, etc.
Linux Livre Page 620 Mardi, 23. septembre 2008 1:05 13

620 LINUX

Transfert de Par défaut, le lecteur C: de Windows est associé au répertoire ~/.wine/drive_c et le lecteur
données entre
Wine et Linux Z: à /. Vous pouvez, si nécessaire, définir d’autres lettres de lecteurs avec winecfg ou modifier
le chemin des lecteurs préexistants.
Pour transférer des données via le presse-papiers, pensez à utiliser sous Windows les rac-
courcis Ctrl+C et Ctrl+V. Sous Linux, c’est le presse-papiers et non le tampon de texte marqué
qui est utilisé ! Pour les programmes texte, les combinaisons de la souris ne fonctionnent
donc pas.
Wine met à disposition toutes les imprimantes définies sous Linux pour les applications
Windows. Cependant, cela ne fonctionne pas toujours. En revanche, les fonctions réseau ne
posent aucun problème. Si votre ordinateur sous Linux a accès à Internet, les applications
Windows lancées sous Wine y ont accès également.
Installer Vous vous demandez peut-être pourquoi installer l’un des programmes réputés comme les
Internet
Explorer moins sûrs sous Windows. Il y a deux raisons à cela. D’une part, Microsoft utilise depuis
plusieurs années Internet Explorer pour installer diverses extensions du système. Certains
programmes Windows ne peuvent donc être installés que lorsqu’une version récente
d’Internet Explorer l’est également. D’autre part, les développeurs web doivent, bon gré
mal gré, tester leurs pages sous Internet Explorer − l’installer localement sous Linux permet
d’éviter de changer de système d’exploitation.
L’installation manuelle d’Internet Explorer est relativement pénible. Le script ies4linux
s’en chargera pour vous. Il permet d’installer IE6 et, si vous le choisissez, IE 5.5SP2 et
5.01SP2, ainsi que le greffon Flash9. La version courante d’Internet Explorer, IE7, n’est mal-
heureusement pas encore prise en charge. Le script ies4linux permet cependant d’utiliser
le moteur de rendu d’IE7 dans l’interface d’IE6. La procédure est assez compliquée et n’est
conseillée qu’aux utilisateurs avancés. Vous trouverez plus d’informations à l’adresse
http://www.tatanka.com.br/ies4linux/page/Fr/Page_D’Accueil.
Le script nécessite l’installation de Wine et cabextract. Ce dernier sert à décompresser des
archives CAB (méthode classique pour créer des archives Microsoft). Attention, l’installation
d’Internet Explorer n’est autorisée que si vous disposez d’une licence Windows !
Pour installer Internet Explorer, lancez les commandes suivantes. Choisissez la version d’IE
à installer ; vous pouvez la télécharger directement depuis le site web de Microsoft et l’ins-
taller rapidement.
utilisateur$ wget \
http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
utilisateur$ tar zxvf ies4linux-latest.tar.gz
utilisateur$ cd ies4linux-*
utilisateur$ ./ies4linux

Ensuite, lancez Internet Explorer avec les commandes ie6, ie55 ou ie5 (voir Figure 31.2).
Lorsque vous utilisez Wine 1.x, le programme d’installation affiche un avertissement
comme quoi votre version de Wine ne convient peut-être pas ; vous pouvez l’ignorer.
Conclusion Il est possible d’installer et de faire fonctionner certains programmes Windows avec Wine.
Ce dernier est néanmoins plutôt destiné aux utilisateurs avancés de Linux. Si vous n’êtes
pas prêt à expérimenter quelques éléments et à chercher des solutions sur Internet, Wine ne
vous conviendra pas.
Linux Livre Page 621 Mardi, 23. septembre 2008 1:05 13

LANCER DES PROGRAMMES WINDOWS (WINE, CROSSOVER) 621

Figure 31.2
Internet Explorer 6
sous Linux.

31.2 Dérivés commerciaux de Wine


Il existe des dérivés commerciaux de Wine, comme CrossOver et Cedega, qui visent à facili-
ter l’installation de différents programmes. Ils réclament une licence payante, mais permet-
tent parfois de gagner du temps par rapport à une installation standard sous Wine. Celle-ci
peut certes fonctionner, mais parfois au prix d’un temps non négligeable. De plus, ces sociétés
commerciales fournissent une assistance utilisateur qui peut être un gain appréciable.

CrossOver
CrossOver, de l’entreprise CodeWeavers, est un dérivé commercial de Wine qui permet
d’installer facilement des programmes fréquemment utilisés. Le répertoire des applications
prises en charge contient, entre autres, Microsoft Office (versions 97, 2000, XP, 2003 ; la prise
en charge de la version 2007 est encore expérimentale), Adobe Photoshop 6 et 7, iTunes, Fra-
meMaker, Lotus Notes, World of Warcraft, ainsi que les greffons de navigateur QuickTime,
Shockwave et Windows Media Player. Vous trouverez plus d’informations sur CrossOver à
l’adresse http://www.codeweavers.com/products/cxoffice/. Vous pouvez également télé-
charger une version d’évaluation de CrossOver à l’adresse
http://www.codeweavers.com/products/cxlinux/download_trial/.
Linux Livre Page 622 Mardi, 23. septembre 2008 1:05 13

622 LINUX

Installation Dans la plupart des cas, vous devez télécharger le programme d’installation de CrossOver
depuis le site web de CodeWeavers. Positionnez son bit d’exécution et lancez-le :
utilisateur$ chmod u+x install-crossover-xxx.sh
utilisateur$ ./install-crossover-xxx.sh

CodeWeavers fournit également des paquetages pour la plupart des distributions actuelles.
Le programme d’installation ajoute un menu CrossOver dans les menus Gnome et KDE. Si
cela ne fonctionne pas, lancez les programmes CrossOver avec les commandes cxnom. Dans
le cas d’une installation locale, ces programmes se trouvent dans le répertoire ~/cxoffice/
bin. Sinon, ils se trouvent dans /opt/cxoffice.
Installer des Pour installer un programme Windows, lancez cxinstallwizard. Choisissez le programme
programmes
Windows souhaité dans la liste, placez le CD dans le lecteur ou indiquez à quel endroit se trouvent les
fichiers d’installation. L’installation fonctionne alors comme sous Windows.
Si le programme à installer ne se trouve pas dans la liste, choisissez l’option Installer une
application non supportée.
Lorsque l’installation s’est bien déroulée, les programmes peuvent être lancés confortablement
à partir du nouveau menu Applications Windows.

Cedega
Cedega, de l’entreprise TransGaming, vise également la facilité d’installation, mais les
applications concernées sont les jeux. Ceux officiellement pris en charge comprennent War-
craft 3, World of Warcraft, Diablo 2, Half Life 2 et Sim City 4. De plus, le site web de Cedega
maintient une liste des jeux testés et de leur état. Vous trouverez plus d’informations à
l’adresse http://www.cedega.com/. Cedega ne fournit pas de version d’évaluation et fonc-
tionne sur un système de souscription qui permet, entre autres, de télécharger le logiciel. Il
existe également un wiki non officiel d’informations sur Cedega et sur les jeux pris en
charge à l’adresse http://cedegawiki.sweetleafstudios.com/wiki/.
Linux Livre Page 623 Mardi, 23. septembre 2008 1:05 13

Virtualisation avec VMware,


32 VirtualBox, QEMU et KVM
Ces dernières années, les différentes techniques de virtualisation ont suscité un intérêt crois-
sant. Ce terme représente la simulation sur un ordinateur d’une ou de plusieurs machines
virtuelles et de leurs systèmes d’exploitation. Les applications sont variées :
• Exécution simultanée de Windows et de Linux. Il n’est plus nécessaire de choisir l’un
de ces deux systèmes. La virtualisation permet de les exécuter sur le même ordinateur.
Le système hôte peut être Windows ou Linux ; l’autre fonctionne dans une fenêtre.
• Machines d’assistance et de développement. Les développeurs d’applications Linux
doivent souvent tester leurs produits sous différentes versions et distributions. Les
employés d’une entreprise ou d’un service d’assistance ont des besoins similaires : de
nombreuses questions sont spécifiques à une distribution. Au lieu de redémarrer sans
cesse l’ordinateur ou de mettre en place de nombreuses machines, vous pouvez installer
plusieurs distributions dans un environnement donné et les activer à la demande. Cela
économise du temps et des ressources.
• Virtualisation de serveurs. Les machines actuelles sont si performantes qu’un seul ser-
veur ne suffit plus pour les exploiter entièrement. Les systèmes de virtualisation per-
mettent de réunir plusieurs serveurs virtuels sur un ordinateur. Cela était bien sûr
possible auparavant, mais avec certaines limitations − Apache pouvait, par exemple,
être configuré pour servir plusieurs adresses IP ou hôtes. La virtualisation de serveurs
présente, de plus, un avantage décisif : les serveurs virtuels sont complètement indé-
pendants les uns des autres. Un problème de sécurité ou de stabilité sur un serveur
donné n’a aucune influence sur les autres.
Ce type de virtualisation n’est pas nouveau pour les supercalculateurs. La nouveauté
vient de la mise à disposition de ces techniques aux utilisateurs d’un PC ordinaire. La
virtualisation de serveurs est le segment pour lequel l’intérêt croît le plus vite.
Jusqu’à récemment, la virtualisation impliquait du matériel coûteux (supercalculateurs) ou au
moins, des logiciels chers (par exemple VMware). Cela a bien changé : les ordinateurs courants
fournissent désormais suffisamment de puissance de calcul pour expérimenter la virtualisation
et de plus en plus de programmes de virtualisation sont disponibles librement ou gratuitement.
Ce chapitre présente quelques solutions commerciales (VMware) et libres (VirtualBox, QEMU,
KVM). En raison de sa plus grande complexité, Xen sera traité à part, au Chapitre 33.
Nous nous limiterons à une rapide introduction. Les programmes présentés ici sont si com-
plexes qu’il faudrait y consacrer un livre entier. Cet ouvrage fournit les premiers éléments ;
vous trouverez des informations supplémentaires sur Internet.
Notez également que peu de domaines de Linux changent aussi vite que les systèmes de vir-
tualisation. Diverses méthodes se disputent l’entrée dans le noyau officiel et plusieurs entre-
prises tentent de s’établir comme standard pour la virtualisation. Ce chapitre est un aperçu
de la virtualisation sous Linux à l’été 2008.
Linux Livre Page 624 Mardi, 23. septembre 2008 1:05 13

624 LINUX

32.1 Notions de base


Hôte et invités Pour décrire les systèmes de virtualisation, les termes d’hôte (host) pour le système de base
et d’invités (guests) pour les systèmes virtuels se sont imposés.
Techniques de Il existe différentes méthodes pour virtualiser des systèmes d’exploitation. La liste suivante
virtualisation
résume les techniques existantes et quelques programmes associés.
• Virtualisation complète (machines virtuelles, émulation). Le programme simule du
matériel virtuel : processeur, mémoire vive, disque dur, carte réseau, etc. Du point de
vue du système invité, ce matériel semble exister réellement. Pour que cela fonctionne,
le programme de l’hôte doit contrôler le système invité et remplacer certaines opéra-
tions par d’autres. C’est à cela que sert l’hyperviseur (VMM ou Virtual Machines Monitor,
moniteur de machines virtuelles). Celui-ci gère également la mémoire, les processus et
les fonctions proches du matériel.
Avantages : la plupart des systèmes d’exploitation peuvent fonctionner sur une
machine virtuelle. Ils n’ont pas besoin d’être modifiés.
Inconvénients : cette solution est relativement lente.
Programmes/entreprises : VMware, QEMU, Parallels, VirtualBox, Microsoft Virtual PC.
• Paravirtualisation. L’hôte met également à disposition des machines virtuelles dans les-
quelles les invités sont lancés. La différence est que les systèmes invités sont modifiés
pour la virtualisation et qu’ils communiquent directement avec l’hyperviseur.
Avantages : cette solution est efficace.
Inconvénients : les systèmes d’exploitation doivent être modifiés pour le système de vir-
tualisation. C’est assez simple pour les systèmes libres comme Linux, mais plus problé-
matique pour les systèmes propriétaires comme Windows.
Programmes/entreprises : Xen, UML (User Mode Linux).
• Paravirtualisation avec prise en charge matérielle. Les processeurs modernes d’Intel et
d’AMD contiennent des instructions matérielles pour faciliter la virtualisation, nommées
Intel-VT (anciennement Vanderpool) pour Intel, et AMD-V (anciennement Pacifica)
pour AMD.
Avantages : cette méthode est efficace et, selon l’implémentation, ne demande pas de
modification du système invité.
Inconvénients : elle nécessite des processeurs spéciaux.
Programmes/entreprises : KVM, Xen.
• Virtualisation au niveau du système d’exploitation. Cette technique est à différencier
des vraies machines virtuelles. Les systèmes invités utilisent le même noyau et une par-
tie du système de fichiers de l’hôte. Elle permet cependant d’isoler l’hôte et ses invités,
afin d’éviter certains risques de sécurité.
Avantages : cette méthode est efficace et économise des ressources (mémoire, disque
dur, etc.).
Inconvénients : elle n’est adaptée que lorsque l’hôte et ses invités utilisent le même système
d’exploitation et la même version du noyau. Le système d’exploitation doit être modifié.
Programmes/entreprises : OpenVZ, Virtuozzo, Linux VServer.
Toutes ces méthodes, excepté la première, nécessitent pour Linux une modification du
noyau. À l’heure actuelle (mi-2008), seuls les composants de virtualisation de KVM et certaines
Linux Livre Page 625 Mardi, 23. septembre 2008 1:05 13

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM 625

parties de Xen font partie du noyau Linux officiel. Pour les autres, il faut modifier le noyau
avec un correctif non officiel. Lorsque vous installez une distribution prévue pour Xen, le
mainteneur de la distribution a ajouté les fonctions Xen au noyau.
Vous trouverez plus d’informations sur les différentes techniques de virtualisation aux adresses
http://doc.ubuntu-fr.org/virtualisation et http://fr.wikipedia.org/wiki/Virtualisation.
Pour déterminer si votre processeur dispose de fonctionnalités de virtualisation matérielles
(Intel-VT ou AMD-V), lancez la commande egrep. Un processeur Intel Core2 avec deux
cœurs renvoie le résultat suivant. Si ce dernier est vide, le processeur ne prend pas en charge
la virtualisation ou alors, les fonctions correspondantes sont désactivées dans le BIOS.
Notez que ces lignes peuvent apparaître même lorsque les fonctions sont présentes, mais
désactivées dans le BIOS.
utilisateur$ egrep ’^flags.*(vmx|svm)’ /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr
lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr
lahf_lm

Aspects L’émulation de matériels virtuels est par nature une opération complexe. Selon la méthode
matériels
de virtualisation et l’implémentation, vous vous heurterez à un moment ou à un autre aux
frontières suivantes :
• Processeurs. Le système hôte peut bien sûr accéder complètement aux processeurs et
cœurs de l’ordinateur. Cependant, peu de systèmes de virtualisation sont capables
d’attribuer plus d’un processeur à un invité. Dans ce cas, les systèmes SMP et multi-
cœurs n’aident donc qu’à exécuter plusieurs invités en parallèle de manière efficace.
On ne peut pas lancer un invité 64 bits sur un système hôte 32 bits (à l’exception d’une
émulation du processeur par QEMU, mais il s’agit d’un cas particulier). Par contre, si
l’hôte est un système 64 bits, il peut généralement lancer des invités 32 ou 64 bits.
• Mémoire vive. La règle de base s’énonce ainsi : votre ordinateur doit disposer de plus
de mémoire que la somme de la mémoire nécessaire au système hôte et à tous les invités
en cours d’exécution. Il faut donc prévoir plusieurs gigaoctets de mémoire vive.
• Disques durs. La plupart des systèmes de virtualisation enregistrent le système de
fichiers des invités dans de gros fichiers dans le système hôte. Les invités n’accèdent
donc pas directement au disque dur, mais indirectement via le système de virtualisation.
Les accès disque sont donc plus lents que sur l’hôte. Le facteur de ralentissement a pour
valeur typique deux ou trois.
• Lecteurs CD/DVD. L’accès aux lecteurs CD et DVD est transmis de l’hôte aux invités,
mais uniquement en lecture seule. Aucun système de virtualisation ne permet la gravure
de CD/DVD depuis le système hôte.
La plupart des programmes de virtualisation permettent d’associer un fichier ISO au
lecteur CD/DVD. Plutôt que d’utiliser le lecteur réel, l’hôte accède à un fichier ISO.
Linux Livre Page 626 Mardi, 23. septembre 2008 1:05 13

626 LINUX

C’est particulièrement pratique pour l’installation. Vous pouvez extraire une image
ISO très facilement à partir d’un CD :
root# dd if=/dev/scd0 of=fichier.iso bs=2048

• Fonctions réseau. Le système de virtualisation met à la disposition des systèmes invités


l’infrastructure réseau de l’hôte. Il existe divers procédés pour lier la carte virtuelle à la
carte réseau réelle. Nous utiliserons dans ce qui suit la nomenclature de VirtualBox.
Attention, tous les programmes de virtualisation n’utilisent pas les mêmes possibilités
et celles-ci peuvent être nommées différemment.
Dans l’option par défaut, NAT (Network Address Translation), le système de virtualisation
met en place un serveur DHCP et des fonctions de mascarade pour ses invités. Ces der-
niers peuvent ainsi utiliser l’accès Internet de l’hôte. L’adressage du réseau local de
l’hôte et celui du réseau des invités sont disjoints ; il est généralement impossible de
faire communiquer ces deux réseaux.
L’option Adaptateur réseau hôte crée une carte réseau virtuelle sur le système hôte.
Cette interface fonctionne en parallèle avec vos interfaces habituelles. Lorsque l’invité
l’utilise, c’est comme si le système hôte et l’invité étaient connectés physiquement par
un câble réseau : l’hôte peut envoyer des données via l’interface et en recevoir. Vous
pouvez alors configurer des routes ou un pont entre l’invité et le reste de votre réseau.
L’option Réseau interne limite le réseau disponible vu des invités au système hôte et
éventuellement aux autres systèmes invités.
• Carte graphique. Pour utiliser efficacement les fonctions graphiques, il faut installer sur
chaque système invité un pilote spécial adapté au système de virtualisation de l’hôte.
Cependant, lors de nos tests, nous n’avons pas pu profiter des fonctions 3D de la carte
graphique sur un système invité. Autrement dit, les graphismes 2D ont des performances
décentes, mais vous devrez probablement vous passer de fonctions 3D.
• Fonctions audio. La plupart des programmes de virtualisation fournissent une carte
son virtuelle aux invités et transmettent la sortie audio au système audio de l’hôte. Cela
fonctionne sans problème si vos besoins sont raisonnables.
• Périphériques USB et matériel externe. Le clavier et la souris sont transmis de l’hôte à
l’invité. L’accès aux périphériques externes dépend largement du système de virtualisa-
tion. Les périphériques USB ne sont souvent pas pris en charge ou alors, avec de nom-
breuses limitations.
• Heure. Ce problème semble trivial, mais de nombreux systèmes de virtualisation ont du
mal à gérer l’heure. Cela provient du fait que l’heure est initialisée par le système hôte
lors du démarrage de la machine, mais gérée par la suite par les systèmes invités. La
gestion de l’heure utilise généralement le processeur pour décompter le temps. Or, les
processeurs modernes font dépendre leur fréquence de la charge. Le système hôte le sait
et peut corriger l’heure en fonction de cette information. Le système invité ne dispose
pas de cette information. C’est pourquoi le déroulement du temps sur les systèmes invités
peut sembler plus rapide que sur le système hôte.

Nous supposons ici que les systèmes hôte et invités partagent la même architecture. Certains programmes,
comme QEMU, sont capables d’émuler du matériel différent. Cela réduit cependant largement les perfor-
mances. On parle alors d’émulation et non de virtualisation, même si la frontière entre ces deux concepts
est floue.
Linux Livre Page 627 Mardi, 23. septembre 2008 1:05 13

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM 627


Échange La principale restriction est qu’un invité ne peut pas accéder directement à un disque dur
de données
entre l’hôte utilisé par l’hôte. Deux systèmes d’exploitation ne peuvent pas contrôler en même temps un
et les invités disque dur − cela mènerait inévitablement à des pertes de données. Le système de virtuali-
sation de l’hôte simule donc un disque dur pour l’invité et s’occupe de le reproduire dans le
fichier du système hôte. L’hôte ne peut donc pas non plus accéder directement au système
de fichiers des invités.
Le moyen le plus rapide de partager des données est d’utiliser des répertoires partagés. Le
plus simple est de lancer un serveur NFS ou Samba sur l’hôte ou sur un ordinateur accessi-
ble par l’hôte et les invités. Certains programmes de virtualisation incluent des fonctions de
ce type, mais, d’après mon expérience, cela apporte peu d’avantages et complique inutile-
ment la configuration.
De nombreux programmes de virtualisation permettent d’échanger un texte marqué via le
presse-papiers. Malheureusement, cela fonctionne plus ou moins bien. De plus, le presse-
papiers se limite alors à la copie de texte brut. Vous ne pourrez donc pas copier un dia-
gramme Excel depuis un invité Windows vers un document OpenOffice.org sur l’hôte.
Compatibilité À la base, vous devez supposer que les systèmes de virtualisation sont incompatibles les
entre les
systèmes uns avec les autres. Un système invité installé sous VMware ne peut pas être réutilisé sous
Xen (et réciproquement). Cette incompatibilité est due à deux facteurs. D’une part, les for-
mats des disques durs virtuels sont différents. D’autre part, les systèmes de virtualisation
font appel à différents pilotes supplémentaires, différentes extensions de noyau, etc.
Les programmes commerciaux sont généralement en partie capables d’importer des systè-
mes invités créés sous des systèmes concurrents, mais cela entraîne souvent des problèmes.
Des efforts ont été déployés pour définir un format unifié de systèmes invités, mais leur succès
n’est pas garanti.
La plupart des programmes de virtualisation permettent de déplacer un système invité
d’une machine à une autre. Avec VMware, on peut même passer un système invité d’un
hôte Windows à un hôte Linux (et inversement). Une installation de système invité peut
donc être utilisée sur tous les systèmes hôte compatibles.
Quel produit Le monde de la virtualisation est souvent déroutant pour les débutants ; même les profes-
dans quel but ?
sionnels ont parfois du mal à suivre le développement rapide de ces applications. Se décider
pour un produit revient à se poser les questions suivantes :
• Quel est votre but ? Voulez-vous exécuter Windows sous Linux ou Linux sous Win-
dows ? Désirez-vous tester divers systèmes d’exploitation sans redémarrer ? Visez-vous
une plus grande sécurité grâce à des environnements isolés ? Voulez-vous lancer plusieurs
serveurs Linux sur un ordinateur puissant ?
• Quelles sont vos conditions matérielles ? Votre processeur prend-il en charge la virtuali-
sation matérielle ?
• Qu’attendez-vous de l’administration du système virtuel ? Avez-vous besoin de fonc-
tions spéciales, comme la migration d’un système invité d’un hôte à un autre ? Ce type
de souhait mène presque nécessairement à des solutions commerciales.
Linux Livre Page 628 Mardi, 23. septembre 2008 1:05 13

628 LINUX

Les débutants peuvent faire leur première expérience avec VMware Workstation (il existe
une version d’évaluation pour un mois) ou VirtualBox. Ces deux programmes facilitent les
premiers pas grâce à leurs interfaces utilisateur confortables.
Le marché professionnel est actuellement dominé par Xen. Les distributions professionnelles
Red Hat et SUSE proposent, en plus de leurs produits de base, des outils d’administration.
Vous pouvez tester ces outils gratuitement dans openSUSE et Fedora.
La question de savoir quel système de virtualisation s’établira comme standard est une
question encore ouverte. KVM a de bonnes chances de son côté, car il est établi dans le
noyau officiel. Il nécessite cependant un processeur avec des fonctions de virtualisation
(Intel-VT ou AMD-V).

32.2 VMware Workstation, Player et Server


Peu d’entreprises sont actives depuis aussi longtemps sur le marché de la virtualisation
pour PC que VMware. Son rôle précurseur et le haut degré de maturité de ses produits lui
ont longtemps conféré une position dominante sur ce segment. VMware propose divers
produits de virtualisation, que nous ne pourrons pas tous traiter ; nous nous limiterons
donc à VMware Workstation, Player et Server. Vous trouverez plus d’informations, des ver-
sions de test et divers téléchargements à l’adresse http://www.vmware.com/. Notez que les
produits VMware, y compris ceux fournis gracieusement, ne sont pas des produits libres.
VMware VMware Workstation est probablement le plus connu. Il permet de lancer un autre système
Workstation
d’exploitation dans une fenêtre. Malgré son prix élevé et le nombre croissant d’alternatives
commerciales et gratuites, il reste pour de nombreux professionnels la solution pour permettre
à Windows et à Linux de cohabiter sur le même ordinateur.
Techniquement, VMware Workstation se base sur une virtualisation complète. Il est donc
compatible avec la plupart des systèmes d’exploitation, sans besoin matériel particulier −
Intel-VT et AMD-V ne sont pas nécessaires.
VMware Workstation 6 prend également en charge la paravirtualisation si les systèmes
Linux invités utilisent un noyau étendu avec les fonctions VMware VMI (Virtual Machine
Interface, interface de machine virtuelle). Cela améliore les performances de la virtualisation.
VMware Player VMware Player et VMware Server sont deux alternatives gratuites à VMware Workstation.
et Server
Les fonctionnalités de ces produits sont restreintes, mais dans le cas de VMware Server, elles
sont compensées par d’autres fonctions supplémentaires. Ces solutions gratuites doivent
être considérées comme une tentative de la part de VMware d’établir des parts de marché
plus importantes dans un marché où les offres libres (VirtualBox, Xen, KVM) ou gratuites
(Microsoft Virtual PC) sont de plus en plus nombreuses.
VMware Server est comparable à VMware Workstation, mais vise les serveurs où les systè-
mes virtualisés peuvent fonctionner sans interface graphique. Vous pouvez néanmoins l’uti-
liser pour faire tourner des systèmes bureautiques classiques.
VMware Player est une version restreinte de VMware Workstation. Il peut lancer des machi-
nes virtuelles, mais ne permet pas d’en créer de nouvelles, ni de modifier la configuration
d’une machine existante. L’interface utilisateur ressemble à celle de VMware Workstation.
Cependant, elle n’inclut pas les divers menus et boîtes de dialogue pour les fonctions spéci-
fiques de Workstation.
Linux Livre Page 629 Mardi, 23. septembre 2008 1:05 13

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM 629


Comparatif Le tableau suivant compare ces trois logiciels.

VMware Workstation VMware Server VMware Player

But vise le marché bureautique ; sa prin- vise le marché des serveurs permet de lancer des machines
cipale utilisation est l’exécution d’un virtuelles précédemment créées
système A sur un système B avec une interface simple
Licence propriétaire, payante propriétaire, gratuite propriétaire, gratuite
Création de machines oui oui non
virtuelles
Démarrage des non oui non
machines virtuelles à
l’amorçage
Répertoires partagés oui non non
Démarrage de oui oui non
plusieurs machines
simultanément
Avantage principal produit complet sans limitation produit raisonnablement gratuité et simplicité d’utilisation
complet et gratuit
Inconvénient prix complexité d’utilisation impossibilité de créer ou modi-
principal fier une machine virtuelle

32.3 VirtualBox
Depuis janvier 2007, VirtualBox (http://www.virtualbox.org) est une alternative intéres-
sante à VMware Workstation. Ce programme fournit les mêmes fonctions de base et une
version GPL est disponible. Il fonctionne sur des hôtes Windows, Linux, Macintosh et
OpenSolaris. Les systèmes invités pris en charge comptent, entre autres, Windows (2000, XP,
2003 Server, Vista), Linux, FreeBSD, OpenBSD, Solaris, OS/2 et DOS.
VirtualBox est moins mûr que VMware Workstation. De nombreuses fonctions avancées ne
sont pas disponibles. Mais pour les tâches de virtualisation de base, il suffit largement.
Il est également avantagé par rapport aux autres programmes de virtualisation libre par son
interface graphique et sa documentation. Cela facilite la vie des débutants.
Versions Sur le site web de VirtualBox, vous trouverez deux versions à télécharger :
• Version complète. Elle est gratuite pour les utilisateurs privés et universitaires, ainsi
que pour l’évaluation. L’utilisation commerciale de cette version nécessite cependant
l’achat de licences.
• Version Open Source Edition (OSE). Cette version contient le code source de VirtualBox
sous licence GPL. Son utilisation est gratuite dans le cadre de la GPL. Elle est un peu
limitée par rapport à la version binaire : vous ne pouvez pas accéder aux périphériques
USB et iSCSI depuis une machine virtuelle, ni utiliser RDP (Remote Display Protocole)
Linux Livre Page 630 Mardi, 23. septembre 2008 1:05 13

630 LINUX

entre les machines virtuelles. Par ailleurs, si votre distribution ne fournit pas de paquetage
pour VirtualBox, vous devez compiler vous-même le logiciel.
Cette section se base sur la version binaire VirtualBox 1.6.4, sur un système hôte
Ubuntu 8.0.4, ainsi que sur les systèmes invités openSUSE 10.2 et Windows XP.
Prérequis Pour installer VirtualBox, vous devez avoir installé les fichiers d’en-tête du noyau, ainsi que
tous les outils de développement de base. Ces éléments sont nécessaires pour compiler des
modules du noyau utilisés par VirtualBox.
Installation Si vous installez la version OSE de VirtualBox, celle-ci peut être déjà disponible dans la base
de l’hôte
de paquetages de votre distribution. Si ce n’est pas le cas ou si vous préférez utiliser la version
binaire de VirtualBox, vous devez la télécharger sur www.virtualbox.org.
Vous trouverez sur le site web de VirtualBox des paquetages prêts à l’installation (Debian,
Red Hat, SUSE, Ubuntu) ou un script universel d’installation, à lancer comme ceci :
root# chmod u+x VirtualBox_n.run install
root# ./VirtualBox_n.run install

Vous devez alors, dans le cas de la version binaire, accepter la licence. L’installation se déroule
ensuite sans question supplémentaire. Le groupe vboxusers est créé. Seuls les utilisateurs de ce
groupe peuvent accéder au périphérique /dev/vboxdrv nécessaire pour lancer des machines
virtuelles. La commande suivante ajoute l’utilisateur michael au groupe vboxusers :
root# usermod -a -G vboxusers michael

Lorsque vous lancez le système hôte, le script InitV /etc/init.d/vboxdrv est lancé. Il charge
le module noyau du même nom et s’assure que les conditions d’utilisation de VirtualBox
sont remplies.
Installer La commande VirtualBox lance l’interface utilisateur de VirtualBox. Un assistant permet de
des systèmes
invités créer de nouvelles machines virtuelles. Après le choix du type de système d’exploitation (par
exemple, Linux avec un noyau 2.6) et de la taille souhaitée de la mémoire vive, puis la création
d’un disque dur virtuel, VirtualBox affiche un résumé de tous les composants matériels. Vous
pouvez alors ajouter des paramètres supplémentaires : changer le type d’accès réseau ou indi-
quer un fichier ISO comme source de données pour le lecteur CD/DVD (voir Figure 32.1).
Par défaut, l’accès au réseau entre l’hôte et les invités fait appel à du NAT. Le système invité
peut donc accéder à Internet, mais pas échanger de données avec le réseau local.
Une fois le système installé, vous pouvez alors le lancer dans une fenêtre du système hôte
(voir Figure 32.2).
Additions Après l’installation du système, vous devez installer les Additions Client. Il s’agit d’un
Client
ensemble de pilotes supplémentaires qui améliorent l’interaction avec l’hôte (contrôle de la
souris plus élégant, résolution de l’écran plus importante, échange de données via les réper-
toires partagés, etc.). Cette installation n’est possible que lorsque le système invité dispose
d’outils de développement et des fichiers d’en-tête de son noyau.
Pour cela, éjectez le CD/DVD éventuellement présent et lancez Périphériques, Installer les
Additions Client... Exécutez le fichier VBoxLinuxAdditions.run depuis le CD virtuel qui est
alors monté dans le système invité. De manière atypique, vous devez alors redémarrer le
système invité, qui peut disposer d’une plus grande résolution. Vous pouvez avoir à modi-
fier la taille de la mémoire vidéo attribuée à l’invité ou la configuration de X de l’invité si la
résolution que vous souhaitez n’est pas accessible.
Linux Livre Page 631 Mardi, 23. septembre 2008 1:05 13

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM 631

La machine virtuelle capture automatiquement le clavier et la souris dès que vous tapez une
touche ou dès que vous cliquez. Par défaut, vous pouvez rendre le focus avec la touche Ctrl
droite. Ce paramètre est modifiable dans la fenêtre principale de VirtualBox dans Fichier,
Préférences.

Figure 32.1
Configuration
d’une machine virtuelle
dans VirtualBox.

Figure 32.2
openSUSE en tant
que système invité
dans une machine
virtuelle VirtualBox.
Linux Livre Page 632 Mardi, 23. septembre 2008 1:05 13

632 LINUX

Répertoires Une fois les Additions Client installés, vous pouvez partager un dossier sur l’hôte pour qu’un
partagés
invité puisse y accéder. Les répertoires partagés sont spécifiques à chaque système invité.
Pour cela, il suffit d’ajouter l’invité dans les préférences de la machine virtuelle dans l’onglet
Répertoires partagés. Le champ Chemin du répertoire est le répertoire de la machine hôte.
Le champ Nom du répertoire est le nom grâce auquel l’invité y accédera.
Sur le système invité, le répertoire n’est pas monté automatiquement, mais manuellement.
Si le répertoire est partagé sous le nom partage, il faut lancer la commande suivante, en
supposant que le répertoire partage-vbox est déjà créé :
root@invite# mount -t vboxsf partage /media/partage-vbox

Les répertoires partagés peuvent également être utilisés lorsque le système invité est Windows.
Le lecteur réseau à monter est \\vboxsev\partage.

32.4 QEMU et KVM


Fin 2006, l’extension du noyau KVM s’est fait connaître par son entrée dans le noyau officiel
2.6.20. KVM est en soi un module de noyau relativement petit, dont l’action principale s’exerce
avec le logiciel d’émulation QEMU. Il nécessite un processeur avec des fonctions matérielles de
virtualisation et constitue avec QEMU un système de virtualisation matériel. Son élégance pro-
vient du fait qu’il ne gère pas lui-même les tâches classiques d’un hyperviseur (par exemple, la
gestion de la mémoire et des processus), mais qu’il utilise pour cela les fonctions standard du
noyau Linux. Le module de noyau de KVM contient donc relativement peu de code.
QEMU Comme QEMU est à la base de KVM, cette section traite d’abord de QEMU, puis s’intéresse
à KVM. QEMU émule divers processeurs et composants matériels de base d’un ordinateur
typique (carte réseau, lecteur CD, etc.). Il peut également émuler des processeurs incompa-
tibles avec le processeur de l’hôte (ARM, Sparc, PowerPC, MIPS, etc.), ce qui se fait évidem-
ment au détriment des performances. Nous ne traiterons ici que de l’émulation des processeurs
compatibles x86. Vous trouverez une description détaillée des fonctions et des limites de
QEMU sur la page web du projet, http://bellard.org/qemu/.
Comparé aux programmes comme VMware ou VirtualBox, QEMU est plus spartiate. Au
lieu d’utiliser un assistant pour créer une nouvelle machine virtuelle, vous devez d’abord
créer un fichier d’image pour le disque dur virtuel et passer tous les autres paramètres du
matériel virtuel comme paramètres de la commande qemu. Il existe des interfaces graphiques
à QEMU, comme Qemu Launcher ou qemuctl, mais celles-ci ne font pas partie de QEMU.
La commande qemu-img crée le fichier image. Vous pouvez indiquer le format de fichier avec
l’option -f. qcow et qcow2 sont les formats standard de QEMU. Il en existe d’autres, comme
raw et vmdk (compatibles avec VMware Workstation 3 et 4). La taille du fichier est indiquée
en mégaoctets (nM) ou en gigaoctets (nG).
utilisateur$ qemu-img create -f qcow qemu.img 10G

L’émulateur lui-même est lancé avec la commande qemu ou qemu-xxx. qemu émule un proces-
seur compatible x86, qemu-system-x86_64 sa variante 64 bits, qemu-sparc un processeur
Sparc, etc. Toutes les commandes qemu ont la même syntaxe :
utilisateur$ qemu [options] fichier-image
Linux Livre Page 633 Mardi, 23. septembre 2008 1:05 13

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM 633

qemu peut prendre de nombreuses options. La commande qemu sans paramètre en donne un
résumé. Nous ne survolerons ici que les plus importantes :
• -boot a/c/d indique le support d’amorçage (lecteur de disquettes, disque dur ou lec-
teur CD/DVD). Les lettres correspondent aux lecteurs DOS/Windows. Par défaut,
QEMU démarre depuis le disque dur.
• -cdrom fichier-iso utilise l’ISO indiquée comme source de données pour le lecteur
CD/DVD virtuel.
• -k langue indique la disposition clavier à utiliser, comme fr (français) et en-us (anglais
US). Cette option n’est nécessaire que dans de rares cas, lorsque qemu n’interprète pas
correctement les codes clavier du système hôte.
• -localtime initialise l’heure CMOS virtuelle du système avec l’heure locale (plutôt que,
par défaut, avec l’heure UTC).
• -m n indique la taille de la mémoire de la machine virtuelle (en mégaoctets). Par défaut,
les machines virtuelles disposent de 128 Mo de RAM.
• -net options configure le matériel réseau virtuel. Cette option n’est nécessaire que lors-
que la configuration par défaut de QEMU (carte NE2000 et pile réseau en mode utilisateur)
n’est pas adaptée.
• -no-acpi désactive l’ACPI.
• -snapshot lance QEMU sans modifier de manière permanente le fichier image du disque
dur.
QEMU lance le système émulé dans une fenêtre simple sans menu, ni élément d’utilisation.
Pour contrôler diverses fonctions, il faut utiliser des raccourcis clavier. Les plus importants
sont recensés dans le tableau suivant.

Raccourcis clavier de QEMU


c+a rend le focus du clavier
c+a+F active/désactive le mode plein écran
c+a+1 affiche la sortie standard
c+a+2 affiche le moniteur de QEMU
c+a+3 affiche la console série
c+a+S enregistre les modifications sur le fichier image (uniquement en mode snapshot)
c+a+X termine le programme

Essayer QEMU Dans sa forme de base, QEMU ne permet de lancer des systèmes modernes graphiques avec
des performances décentes que sur du matériel puissant. Pour les premiers tests, il vaut
mieux tester une distribution Linux minimale. Les nostalgiques de DOS peuvent aussi effec-
tuer ces tests avec FreeDOS (voir Figure 32.3). Le fichier ISO de FreeDOS se trouve à
l’adresse http://freedos.org.
Linux Livre Page 634 Mardi, 23. septembre 2008 1:05 13

634 LINUX

Figure 32.3
FreeDOS sous QEMU.

Les deux commandes suivantes créent un fichier d’image pour le disque virtuel et démarrent
QEMU en utilisant l’image ISO de FreeDOS comme support d’amorçage.
utilisateur$ qemu-img create -f qcow qemu.img 500M
utilisateur$ qemu -m 16 -boot d -cdrom fdbasecd.iso qemu.img

Lorsque l’installation s’est bien déroulée, vous n’avez plus besoin de l’image du CD et vous
pouvez utiliser le disque dur virtuel pour démarrer le système :
utilisateur$ qemu -m 16 qemu.img

J’ai également installé, de la même manière, Ubuntu 8.04.1. Cela demande un peu plus de
patience (et davantage de mémoire vive attribuée à QEMU). Le système était globalement
utilisable, mais lancer des applications graphiques était plutôt pénible au vu des problèmes
de performances.
KQEMU Le cas le plus fréquent d’utilisation de QEMU est l’exécution de code x86 (invité) sur du
matériel x86 (hôte). Il n’est donc pas nécessaire d’émuler ce code ; on peut le lancer
directement. C’est à cela que sert le module noyau KQEMU. Il améliore de manière
significative les performances de QEMU, qui sont alors comparables à celles de
VMware, VirtualBox, etc. Vous trouverez plus d’informations sur KQEMU à l’adresse
http://bellard.org/qemu/kqemu-tech.html.
Vous pouvez avoir à installer les modules de noyau KQEMU manuellement, après les avoir
téléchargés ou avoir installé le paquetage de source de votre distribution :
utilisateur$ tar zxvf kqemu-x.y.z.tar.gz
utilisateur$ cd kqemu-x.y.z
utilisateur$ make
root# make install
root# modprobe kqemu

Il peut également être nécessaire de modifier les permissions du module /dev/kqemu.


Linux Livre Page 635 Mardi, 23. septembre 2008 1:05 13

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM 635


KVM Les fonctions de KVM sont réparties dans trois modules du noyau. Les fonctions de base se
trouvent dans le module kvm, les fonctions spécifiques à Intel-VT dans kvm-intel et les fonc-
tions spécifiques à AMD-V dans kvm-amd. Pour pouvoir utiliser KVM, vous devez charger le
module KVM qui correspond à votre matériel. kvm est automatiquement chargé.
Pour un processeur Intel, lancez :
root# modprobe kvm-intel

Pour un processeur AMD, lancez :


root# modprobe kvm-amd

Si cette commande renvoie une erreur, vérifiez que votre processeur prend bien en charge la
virtualisation matérielle. Si c’est le cas, elle peut être désactivée au niveau du Bios, ce qui est
donc également un point à vérifier.
L’utilisation des fonctions KVM nécessite d’accéder au périphérique /dev/kvm en lecture ou
en écriture. Dans de nombreuses distributions, cet accès n’est autorisé qu’à root. Il faut donc
modifier les droits d’accès de /dev/kvm pour autoriser d’autres utilisateurs à l’utiliser.
Du point de vue de l’utilisateur, KVM est une variante de QEMU qui accède aux modules
noyau KVM. Il n’est pas nécessaire d’installer QEMU ; le paquetage KVM en contient une
variante modifiée. Pour créer un nouveau fichier image, vous avez cependant besoin de la
commande qemu-img qui peut n’être disponible que dans le paquetage QEMU.
KVM est démarré, selon la distribution, avec kvm ou qemu-kvm. Il est nettement plus rapide
que QEMU dans sa version de base, mais la différence est négligeable par rapport à QEMU
utilisé en parallèle avec KQEMU. Vous trouverez d’autres informations sur KVM sur le site
http://kvm.qumranet.com/.
Linux Livre Page 636 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 637 Mardi, 23. septembre 2008 1:05 13

Xen
33
Ce chapitre est une introduction au système de virtualisation Xen. Il mérite qu’on y consacre
un chapitre entier, en raison de son importance croissante et de sa grande complexité. Nous
supposons cependant ici que les concepts sous-jacents de virtualisation, présentés dans les
chapitres précédents, vous sont familiers.

33.1 Introduction
Xen est une infrastructure de virtualisation qui prend en charge deux formes de virtuali-
sation et qui se différencie par quelques détails techniques des autres systèmes. Il est par-
ticulièrement adapté à la virtualisation de serveurs Linux.
Le développement de Xen a commencé en 2001 à l’université de Cambridge. En soi, Xen
est libre (sous licence GPL), mais il existe également diverses versions commerciales,
ainsi que des extensions et des outils de gestion.
Le noyau Linux doit être étendu par un correctif pour que Xen fonctionne. De nombreuses dis-
tributions fournissent par défaut des noyaux modifiés pour Xen.
Applications Xen est conçu principalement pour une utilisation serveur. Une utilisation bureautique
comme celle que permettent VMware ou VirtualBox est possible, mais avec quelques
limitations ; ce n’est donc pas la solution optimale.
Le plus courant est d’utiliser la même distribution pour le système de base (le serveur
Xen) et ses invités. Pour cela, vous installez par exemple SUSE Enterprise Server avec la
prise en charge de Xen comme système de base, puis vous utilisez Xen pour lancer diver-
ses instances virtualisées de cette distribution dans des environnements isolés. Les outils
de configuration des différentes distributions permettent généralement d’assister l’utili-
sateur lorsqu’il crée des systèmes invités. Ces outils sont également utiles, car la gestion
manuelle de Xen est relativement inconfortable : vous devez vous occuper des fichiers de
configuration, des périphériques réseau, etc.
Une autre utilisation courante est de configurer un serveur Xen qui n’effectue pas d’autre
tâche que l’administration de Xen et l’accès au matériel. Pour cela, il suffit d’installer une
minidistribution, sans système graphique, ni services réseau, comme Apache ou Samba.
Versions et J’ai testé Xen avec diverses distributions. Ce chapitre se base sur un système hôte
environne-
ment de test Ubuntu 8.04.1 (32 bits), Xen 3.2.0 et un noyau 2.6.24.
Tester Xen peut mener à certaines instabilités. Il est donc conseillé de sauvegarder votre
disque dur avant de vous lancer, ou d’utiliser une machine de tests.
Linux Livre Page 638 Mardi, 23. septembre 2008 1:05 13

638 LINUX

33.2 Détails techniques


À la base, la mise en œuvre de Xen n’est pas plus compliquée que celle de VMware Server, du
moins en ce qui concerne les aspects pertinents pour l’utilisateur et l’administrateur. Les chapi-
tres précédents n’abordaient pas les détails techniques des systèmes de virtualisation, mais il
vous faut certaines bases pour faire fonctionner Xen. Si vous ne comprenez pas comment il fonc-
tionne, vous ne parviendrez pas le configurer correctement − et aucun assistant n’est fourni.

Variantes de la virtualisation
Paravirtua- Xen est avant tout un système de paravirtualisation : les machines virtuelles utilisées néces-
lisation
sitent un noyau Linux modifié. Lorsque ces prérequis sont remplis, Xen est plus efficace que
VMware Workstation ou VMware Server.
Cependant, en tant qu’outil de paravirtualisation, Xen ne peut pas lancer de système
d’exploitation sans prise en charge de Xen et en particulier, Windows.
Virtualisation Depuis la version 3, Xen peut lancer des systèmes non modifiés dans des HVM (Hardware
matérielle
Virtual Machines, machines virtuelles matérielles). Cela nécessite néanmoins une prise en
charge matérielle (Intel VT ou AMD-V). Xen utilise pour cela une partie du code de QEMU ;
de nombreux avantages et particularités de Xen disparaissent alors. Lorsque vous lisez dans
la presse informatique que Xen peut maintenant exécuter Windows, la forme de virtualisa-
tion considérée n’apporte presque rien par rapport à KVM/QEMU.

Architecture et terminologie
Au contraire des solutions de virtualisation présentées précédemment, qui fonctionnent
comme des applications habituelles sur un système hôte normal, les fonctions de base de
Xen sont implémentées dans une couche du noyau. Xen ne s’occupe pas de démarrer les
invités : c’est également le travail de l’hôte. Du point de vue de Xen, le système d’exploita-
tion de base se comporte comme un invité avec des privilèges particuliers.

Figure 33.1
Virtualisation avec Xen.

dom0 et domU La terminologie est également différente. Au lieu de machines virtuelles, on parle sous Xen
de domaines. Lors du démarrage de l’ordinateur, Xen est d’abord démarré. Il démarre
ensuite le domaine 0. Dans ce dernier, le noyau modifié pour Xen et une distribution ayant
accès aux composants matériels (par exemple le système graphique) sont lancés et contrôlent
tous les autres domaines Xen.
Linux Livre Page 639 Mardi, 23. septembre 2008 1:05 13

XEN 639

Les désignations hôte et invité sont encore valables dans Xen, mais avec quelques limita-
tions. Pour être exact, Xen est lui-même l’hôte. Le système qui serait désigné comme hôte
sur un autre système de virtualisation est désigné par Xen comme domaine privilégié
(Domain 0, abrégé en dom0). Le dom0 est parfois également décrit comme serveur de machines
virtuelles ou serveur Xen.
Toutes les machines virtuelles supplémentaires (invités, dans la terminologie précédente)
fonctionnent dans des domaines non privilégiés (domU). La Figure 33.1 résume l’architec-
ture de Xen. Vous pouvez lancer dans les domU d’autres systèmes d’exploitation, soit de
manière paravirtualisée (lorsque le système prend en charge Xen), soit avec une virtualisation
matérielle. Nous nous limitons ici à Linux.

Restrictions
Comme tout autre système de virtualisation, Xen souffre également de limitations, dont
certaines sont liées au fait qu’il est optimisé pour une utilisation serveur.
• Xen et tous les domaines doivent concorder et utiliser la même architecture de processeur.
Il est impossible de lancer un dom0 en 64 bit et des domU en 32 bits.
Si vous utilisez une architecture 32 bits, une restriction similaire s’applique à PAE (Physical
Addressing Extensions, extensions d’adressage physique), qui permet d’adresser plus de 4 Go
de RAM sur un processeur 32 bits. Xen peut être compilé avec ou sans prise en charge de
PAE. Cependant, Xen et tous les noyaux (dom0 et domU) doivent s’accorder sur ce point.
Si ces règles ne sont pas suivies, Xen termine le démarrage d’un domU par le message
d’erreur error 22, invalid argument. Ces limitations ne s’appliquent que pour la paravir-
tualisation et non pour les machines virtuelles HVM.
• Xen est incompatible avec certains pilotes matériels binaires (utilisés, par exemple, pour
certaines cartes graphiques ou cartes Wi-Fi). Utilisez dans la mesure du possible les
pilotes libres. Il existe un correctif pour les pilotes NVIDIA. De manière générale, Xen
est, comme tous les systèmes de virtualisation actuels, peu adapté aux graphismes 3D.
• Xen ne fournit pas de fonctions audio aux domaines non privilégiés.
• La prise en charge d’ACPI et d’APM est très limitée. En particulier, les fonctions d’éco-
nomie d’énergie des ordinateurs portables sont largement inutilisées. Les processeurs
fonctionnent à pleine fréquence. Les cartes PCMCIA et CardBus ne peuvent pas être
utilisées.
• Le dom0 ne peut fonctionner que sur un Linux ou un NetBSD. Windows, Solaris et les
BSD ne peuvent être lancés que dans des domU et souffrent souvent de diverses limi-
tations ou ne fonctionnent qu’en virtualisation matérielle.
• Xen peut poser des problèmes de compatibilité avec les pare-feu et d’autres systèmes de
sécurité (SELinux, AppArmor, etc.).
• Dans un domaine Xen, il est impossible d’exécuter d’autres programmes de virtualisa-
tion. Xen et le second programme de virtualisation veulent tous les deux gérer la
mémoire, les processus, etc.
Linux Livre Page 640 Mardi, 23. septembre 2008 1:05 13

640 LINUX

Cependant, le cas inverse fonctionne : vous pouvez essayer Xen dans une machine
virtuelle VMware. N’en attendez cependant pas des foudres de performances...

Gestion du matériel
Xen fonctionne un niveau en dessous du noyau Linux et doit donc être démarré avant le
noyau du système dom0. C’est Xen, et non le noyau Linux, qui gère les ressources matériel-
les élémentaires (voir Figure 33.2). Il s’occupe en particulier de la gestion de la mémoire, de
l’utilisation du processeur, des accès au disque dur et du système réseau.
Les systèmes invités (domU) n’accèdent pas à ces ressources par le pilote Linux standard, mais
via des modules propres au matériel virtuel Xen. Ces pilotes sont une interface entre Xen et le
noyau. C’est pourquoi Xen ne peut être exécuté que sur des noyaux Linux modifiés.
La situation est encore plus délicate pour le dom0. Xen gère également dans ce cas la
mémoire vive et les processeurs. Le noyau du dom0 doit donc également être modifié pour
Xen. Les accès disque et l’utilisation de la carte réseau incombent cependant au noyau du
dom0 et fonctionnent comme d’habitude via les modules du noyau Linux avec les pilotes
correspondants. Les systèmes domU sont dépendants du bon fonctionnement des disques
durs et de l’accès au réseau du dom0.
Le système dom0 joue également un rôle privilégié pour l’accès aux autres composants
matériels. En général, ce système est le seul à accéder aux cartes graphiques, audio et PCI,
aux périphériques USB, etc. Il n’est pas prévu que les systèmes domU accèdent directement
à ces composants. Il est cependant possible de bloquer certains périphériques PCI du dom0
et de les réserver à une instance de domU. Cela nécessite une configuration spéciale, que
nous ne détaillerons pas ici.

Figure 33.2
Gestion du matériel
dans Xen.

Accès au réseau
La corrélation complexe entre le matériel, Xen, dom0 et domU se manifeste probablement le
mieux dans le cadre de l’accès au réseau. On pourrait écrire un chapitre complet sur les dif-
férentes possibilités de configuration réseau dans Xen. Nous nous limitons ici à la variante
Linux Livre Page 641 Mardi, 23. septembre 2008 1:05 13

XEN 641

la plus courante : le réseau ponté (Bridged Networking). Tous les clients Xen (dom0 et domU)
ont un accès direct à un serveur externe ou un routeur qui, idéalement, fait fonctionner un
serveur DHCP. La Figure 33.3 illustre les nombreuses interfaces réseau que vous pouvez
trouver dans une configuration Xen typique.
Démarrage de Pendant le démarrage de l’ordinateur, tout se passe normalement. Le noyau dom0 charge
l’ordinateur
les modules du matériel physique et initialise eth0, eth1, etc.
Initialisation À la fin du processus InitV du système dom0, le programme xend est démarré. Il initialise les
du réseau via
xend interfaces réseau spécifiques à Xen. eth0 est renommé en peth0 et un pont réseau virtuel
(xenbr0) est créé. Celui-ci établit la connexion aux interfaces virtuelles vifn.m (vif signifie
virtual interface). L’accès au réseau de dom0 se fait via la nouvelle interface eth0, câblée vir-
tuellement avec vif0.0. Une fois le réseau complètement initialisé, il ne s’est apparemment
rien passé pour dom0 : il accède au réseau, comme auparavant, avec eth0. Cette interface
n’est cependant plus associée directement au matériel, mais à Xen.
Les systèmes domU accèdent simplement au réseau via eth0. eth0 est alors associé au pilote
réseau Xen (module xennet) qui étend le trafic réseau vers le réseau local avec vifn.n et
xenbr0. n est le numéro d’identifiant de la machine virtuelle Xen. Les interfaces vifn.m sont
créées automatiquement au démarrage des domaines et supprimées lorsque les domaines
correspondants sont arrêtés.

Figure 33.3
Accès au réseau
pour les domaines Xen.

Ce système est modifiable à l’infini. Lorsque plusieurs cartes réseau sont présentes sur
l’ordinateur, plusieurs interfaces pethn et ethn sont créées dans le dom0. Lorsque les domU
utilisent plusieurs cartes réseau, plusieurs interfaces vifn.m sont définies dans le dom0. Il
est également possible d’ajouter des réseaux virtuels avec plusieurs ponts.
Le réseau virtuel Xen est configuré dans le fichier /etc/xen/xendconfig.sxp.
Linux Livre Page 642 Mardi, 23. septembre 2008 1:05 13

642 LINUX

ifconfig ifconfig affiche comme prévu une longue liste d’interfaces.


(dom0)
eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56
inet adr:10.0.2.15 Bcast:10.0.2.255 Masque:255.255.255.0
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
peth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56
inet adr:10.0.2.15 Bcast:10.0.2.255 Masque:255.255.255.0
vif0.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
BROADCAST MULTICAST MTU:1500 Metric:1
vif1.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
adr inet6: fe80::fcff:ffff:feff:ffff/64 Scope:Lien
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

Accès au disque dur


Le système dom0 accède tout à fait usuellement à son noyau sur le disque dur. Les systèmes
domU accèdent au disque dur grâce au module xenblk. Le noyau domU voit donc, par
exemple, la partition (virtuelle) /dev/sda1. Celle-ci correspond généralement à une partition
réelle sur le disque dur du dom0 ou à un fichier d’image qui se trouve dans le système de
fichiers du dom0. Le pilote xenblk connecte la partition virtuelle à la partition réelle.

L’accès direct du domU à une partition de disque dur est autorisé uniquement lorsque cette partition
n’est utilisée par aucun autre domaine (y compris dom0).
Lorsque plusieurs domaines ont accès en même temps à une partition, les conflits et la corruption du
système de fichiers sont inévitables.

Sortie graphique
Normalement, seul dom0 a accès à la carte graphique et à la sortie écran. Il existe des confi-
gurations spéciales qui permettent à un domU de communiquer directement avec la carte
graphique, mais nous ne rentrerons pas ici dans les détails de ce cas particulier.
Cela est suffisant dans le cadre d’une utilisation serveur. Pour communiquer avec la
machine virtuelle sur laquelle fonctionne le serveur web, une simple connexion réseau
suffit. On peut également administrer le domaine via ssh dans une fenêtre de console.
Jusqu’à ce qu’un domU fonctionne correctement, il est cependant intéressant de disposer
d’une interaction indépendante du réseau qui ne fonctionne éventuellement pas encore. Les
possibilités suivantes s’offrent à vous :
• Console (texte). Xen peut rediriger la première console texte du domU dans une fenêtre
de console locale. Vous pouvez suivre le démarrage du domU et vous connecter. Les
consoles peuvent être couplées dès le démarrage (xm create domaine -c) ou ultérieure-
ment (xm console domaine). Cependant, ce principe ne fonctionne que pour une seule
console, ce qui est en pratique très limité.
• SDL (graphique). SDL (Simple DirectMedia Layer, couche DirectMedia simple) est une
bibliothèque qui accède directement à différents éléments multimédias (framebuffer 2D,
Linux Livre Page 643 Mardi, 23. septembre 2008 1:05 13

XEN 643

OpenGL, clavier, souris et système audio). Xen utilise SDL pour afficher le système
graphique d’un domU dans une fenêtre du dom0.
• VNC (graphique). Vous pouvez, comme alternative à SDL, utiliser VNC pour afficher le
système graphique du domU. Xen démarre un petit serveur VNC en même temps que
le domU lorsqu’il est configuré pour cela.

33.3 Gestion des fichiers image


Comme nous l’avons vu à la section précédente, Xen permet d’enregistrer physiquement
des systèmes domU de plusieurs manières : dans un fichier image sur le système dom0
local ou un serveur NFS, ainsi que sur un disque dur ou une partition inutilisée. L’accès
direct à une partition est nettement plus efficace que l’utilisation de fichiers image. Cepen-
dant, ces derniers sont plus adaptés aux premières expérimentations : il est facile de les
créer, copier et supprimer. De plus, les besoins en place sont, du moins au début, nette-
ment plus faibles.
Xen prend en charge le format RAW et le format d’images de QEMU. Un fichier RAW
contient exactement les mêmes données qu’une partition de disque dur. Cette section offre
quelques astuces pour gérer ce type d’images. Ces informations sont indépendantes de Xen,
mais en pratique, vous aurez probablement à vous frotter à ce type de commandes lors de
vos tests.
Tous les exemples supposent que vous utilisez un système ext3 dans vos fichiers image.
Cela n’est évidemment pas nécessaire ; vous pouvez utiliser un autre système de fichiers.
Créer une Pour créer un nouveau fichier image correspondant à une partition de 5 Go, lancez la com-
image de
fichier vide mande dd suivante. Le fichier est créé, mais il n’est pas physiquement rempli de 0. ls -l
montre qu’il a une taille de 5 Go, mais du indique qu’il n’est pour l’instant composé que des
informations de gestion.
root# dd if=/dev/zero of=fichier.img bs=1 count=0 seek=5G
root# ls -l fichier.img
... 5368709120 ... fichier.img
root# du fichier.img
0 fichier.img
Créer le Pour créer un système de fichiers sur le fichier image, il faut lancer la commande mkfs.
système de
fichiers Celle-ci reconnaît qu’il ne s’agit pas d’un périphérique de bloc (comme ce serait le cas sur
une vraie partition) et demande, selon la version, confirmation. Le fichier est alors formaté.
du montre que le fichier prend plus de place en raison des informations de gestion du système
de fichiers.
root# mkfs.ext3 fichier.img
mke2fs 1.40.8 (13-Mar-2008)
fichier.img n’est pas un périphérique spécial en mode bloc.
Procéder malgré tout ? (o,n) o
root# du fichier.img
174372 fichier.img
Linux Livre Page 644 Mardi, 23. septembre 2008 1:05 13

644 LINUX

Créer un Vous pouvez aussi directement créer une image à partir d’une partition. Il n’est alors néces-
fichier image à
partir d’une saire ni de créer le fichier, ni de le formater :
partition
root# dd if=/dev/sda7 of=fichier.img

Attention, la partition source de la commande dd ne doit pas être active ! On ne peut pas clo-
ner la partition du système démarré. Il faut pour cela démarrer l’ordinateur avec une autre
distribution ou un système live.
Utiliser le Dès que Xen lance le système domU dont le système de fichiers se trouve dans le fichier
système de
fichiers d’un image, vous pouvez accéder au système de fichiers. Vous pouvez ouvrir une fenêtre Xen,
fichier image installer un nouveau paquetage, etc. Vous pouvez aussi échanger des fichiers via le réseau
entre le système dom0, domU et les ordinateurs du réseau local.
Vous pouvez cependant aussi utiliser le système de fichiers de l’image lorsque domU n’est
pas lancé. Pour cela, il suffit de le monter dans l’arborescence du système avec mount. Il faut
utiliser l’option -o loop pour monter l’image comme périphérique de bouclage.
root# mkdir /systeme-domu
root# mount -t ext3 -o loop fichier.img /systeme-domu

Vous pouvez alors utiliser le système de fichiers de l’image, monté dans le répertoire /sys-
teme-domu. L’accès est en lecture/écriture. Vous pouvez donc modifier le système de fichiers,
par exemple pour corriger /etc/fstab. Il est souvent intéressant de démarrer un nouvel
interpréteur de commandes avec chroot. Cet interpréteur utilise le système de fichiers de
l’image comme répertoire racine. exit permet de le quitter.
root# chroot /systeme-domu
root# ls
bin boot dev etc home lib lost+found media misc mnt net
opt proc root sbin selinux srv sys tmp usr var
root# jmacs /etc/fstab
root# ...
root# exit

N’oubliez pas de démonter l’image avant d’envisager de redémarrer le système domU.


Redimension- resize2fs permet de redimensionner un système de fichiers. Pour le rétrécir, le système doit
ner un système
de fichiers être inutilisé. Dans tous les cas, vous devez auparavant lancer e2fsck. resize2fs adapte
automatiquement la taille du fichier image.
root# e2fsck fichier.img
root# resize2fs -p fichier.img 3G
...
Le système de fichiers fichier.img a maintenant une taille de 786 432 blocs.
root# ls -l fichier.img
... 3221225472 ... fichier.img
Créer un Il est possible d’ajouter une partition virtuelle d’échange à un système domU. Il suffit de la
fichier image
d’échange formater avec mkswap :
root# dd if=/dev/zero of=swap.img bs=1 count=0 seek=100M
root# mkswap swap.img
Initialisation de la version de l’espace de swap 1, taille = 104853 kB
Linux Livre Page 645 Mardi, 23. septembre 2008 1:05 13

XEN 645

33.4 Mettre en place le système de base Xen (dom0)


Paquetages Un système de base Xen est souvent composé d’une installation Linux standard. Certaines
Xen
distributions savent également installer directement les paquetages Xen lors de l’installation
initiale.
Pour mettre en place un système de base Xen, la plupart des distributions proposent des
paquetages, même si ceux-ci ne font pas forcément partie des dépôts de paquetages officiels.
Vous avez besoin des éléments suivants :
• Xen (qui contient également xend et divers autres programmes) ;
• la bibliothèque Xen xenlib ;
• la bibliothèque de virtualisation virtlib ;
• un noyau modifié pour Xen, compatible avec la version de Xen (architecture CPU, PAE) ;
• un client VNC (qui se trouve généralement dans le paquetage vnc).
GRUB Pour démarrer Xen, puis le noyau dom0, il faut adapter le fichier de configuration de GRUB
/boot/grub/menu.lst (LILO ne sait pas démarrer Xen). Dans de nombreuses distributions,
le gestionnaire de paquetages s’occupe de la configuration de GRUB. Les lignes suivantes
montrent un exemple de menu pour Xen. N’oubliez pas d’adapter les périphériques et
noms de fichiers à votre propre système. Vous devez indiquer dans la ligne kernel le fichier
de démarrage de Xen et non le noyau Linux usuel. Les deux lignes module qui suivent four-
nissent le nom du noyau, les paramètres du noyau et le fichier initrd.
# /boot/grub/menu.lst
...
title Linux avec Xen
root (hd0,10)
kernel /boot/xen.gz-n
module /boot/vmlinuz-n ro root=/dev/sda11
module /boot/initrd-n.img

Si vous souhaitez limiter la mémoire du dom0, vous pouvez passer l’option dom0_mem=n à la
ligne kernel. n est la limite supérieure de la mémoire utilisable par le dom0 (en mégaoctets).
Au démarrage suivant, vous verrez divers messages s’afficher. Ceux-ci sont ensuite suivis des
messages usuels du noyau. Pour consulter les messages de Xen, utilisez la commande xm dmesg :
root# xm dmesg
__ __ _____ ____ _ _
\ \/ /___ _ __|___ / |___ \ / | _ __ ___/ | _ __ _ __ ___
\ // _ \ ’_ \ |_ \ __) | | |__| ’__/ __| |__| ’_ \| ’__/ _ \
/ \ __/ | | | ___) | / __/ _| |__| | | (__| |__| |_) | | | __/
/_/\_\___|_| |_|
|____(_)_____(_)_| |_| \___|_| | .__/|_| \___|
|_|
(XEN) Xen version 3.2.1-rc1-pre (buildd@buildd) (gcc version 4.2.3 (Ubuntu
4.2.3-2ubuntu7)) Fri Apr 11 01:12:53 UTC 2008
...
(XEN) Xen heap: 9MB (10124kB)
(XEN) Domain heap initialised: DMA width 32 bits
(XEN) PAE enabled, limit: 16 GB
Linux Livre Page 646 Mardi, 23. septembre 2008 1:05 13

646 LINUX

(XEN) Processor #0 6:2 APIC version 20


(XEN) IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-23
(XEN) Enabling APIC mode: Flat. Using 1 I/O APICs
...
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Xen kernel: 32-bit, PAE, lsb
(XEN) Dom0 kernel: 32-bit, PAE, lsb, paddr 0xc0100000 -> 0xc0503000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN) Dom0 alloc.: 000000003a000000->000000003c000000 (232753 pages to be
allocated)
(XEN) VIRTUAL MEMORY ARRANGEMENT:
...

xm list permet de voir que Xen exécute votre système Linux dans le domaine privilégié
dom0 :
root# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 950 2 r----- 736.1

xend Tandis que les fonctions de base de Xen sont démarrées avant le noyau Linux, diverses opé-
rations de Xen se déroulent tout à la fin. À la fin du processus InitV, le script xend est démarré.
Il lance le démon de contrôle de Xen du même nom et met en place le réseau virtuel Xen.
Configuration La configuration de base a lieu dans le fichier /etc/xen/xend-config.sxp. Celui-ci contient,
entre autres, tous les paramètres du réseau virtuel Xen. Dans la plupart des distributions,
vous pouvez laisser le script tel quel lors de vos premières expériences ; sous Ubuntu, vous
devez éventuellement rectifier le paramètre network-script.
# /etc/xen/xend-config.sxp
...
# utiliser un pont réseau
(network-script network-bridge)
(vif-script vif-bridge)
...
# limite inférieure de RAM pour dom0
(dom0-min-mem 256)

Le répertoire /etc/xen contient divers scripts supplémentaires que vous n’avez générale-
ment pas besoin de modifier, ainsi qu’un fichier de configuration pour chaque système
domU. La création de ces fichiers de configuration est couverte dans la section suivante.

33.5 Créer des systèmes invités (domU)


L’opération la plus difficile lors des premières expériences Xen est la création d’un domU.
Avant de détailler une installation, voici un résumé des impératifs d’un système domU fonc-
tionnel :
• Système de fichiers. Le système de fichiers complet du système domU doit se trouver
dans un fichier image ou une partition non utilisée.
• Noyau. Le système de fichiers du dom0 (et non celui du domU) doit contenir un noyau
compatible Xen et le fichier initrd correspondant. Ces deux fichiers sont nécessaires au
Linux Livre Page 647 Mardi, 23. septembre 2008 1:05 13

XEN 647

démarrage du domaine. Xen lit ces deux fichiers avant même que le système de fichiers
du domU ne soit activé.
Comme des fonctions Xen sont exécutées sous forme de modules (xenblk, xennet), les
modules doivent se trouver dans le fichier initrd. Vous ne pouvez omettre ce point que
lorsque les fonctions Xen sont directement compilées dans le noyau.
Le système de fichiers du domU doit contenir un répertoire de modules correspondant
au noyau (/lib/modules/version_noyau). Il était d’usage auparavant de mettre en place
des noyaux monolithiques pour les systèmes dom0 et domU. Cet usage n’est plus de
mise. La plupart des distributions fournissent maintenant un noyau Xen modulaire
utilisable pour le dom0 et les domU.
• Fichiers de configuration. Tous les paramètres, qu’ils concernent le matériel virtuel ou
d’autres éléments du domaine, sont enregistrés dans le fichier de configuration /etc/xen/
nom_de_domaine. Cette section présente quelques exemples pour ce fichier de configuration.
Plusieurs Le problème de l’installation des systèmes invités est que Xen ne peut lancer que des systè-
chemins
mènent à Xen mes dotés d’un noyau modifié pour Xen. Les distributions courantes n’utilisent pas de
noyau de ce type pendant l’installation. Il n’est donc pas possible d’effectuer une installation
habituelle depuis un CD ou un fichier ISO. Les possibilités suivantes s’offrent à vous :
• Vous pouvez utiliser une image Xen préinstallée. Vous pouvez la télécharger sur Internet,
par exemple sur http://www.jailtime.org. J’ai cependant eu de mauvaises expériences avec
ce type de solution. Les images sont rarement compatibles avec une version de Xen et une
architecture processeur données. Il manque souvent le noyau et le fichier initrd.
• Vous pouvez lancer une installation classique sur une partition de disque, puis installer un
noyau Xen et un fichier initrd pour Xen. Une fois ces étapes effectuées, quittez le système
et modifiez quelques éléments (par exemple, dans /etc/fstab). Si vous le désirez, vous
pouvez copier le système de fichiers dans un fichier image avec dd. Pour finir, démarrez
Xen et accédez au domU directement sur la partition ou par le biais d’un fichier image.
• Vous pouvez aussi lancer l’installation dans QEMU et utiliser l’image QEMU dans Xen.
L’avantage de cette méthode est que vous n’avez pas à quitter le système qui fonctionne.
L’installation dure cependant plus longtemps.
• Certaines distributions (Fedora, Red Hat et SUSE) fournissent des outils pour lancer
l’installation de manière paravirtualisée dans Xen. Le programme d’installation est
pour cela chargé depuis le réseau et lancé avec un noyau compatible avec Xen. Cette
procédure dépend néanmoins largement de la distribution et de la version.
• Les utilisateurs de Debian peuvent mettre en place un système Debian élémentaire avec
debootstrap dans une partition montée dans un répertoire. Après la configuration de
base, il suffit d’ajouter un noyau compatible avec Xen pour démarrer le système avec
Xen. Vous trouverez diverses documentations à ce sujet en cherchant xen debootstrap
dans un moteur de recherche.
• Si votre processeur sait utiliser les fonctions de virtualisation, vous pouvez lancer l’ins-
tallation dans un domaine HVM. Cette opération est comparable à l’installation d’une
version de Windows.
Linux Livre Page 648 Mardi, 23. septembre 2008 1:05 13

648 LINUX

Dans cette section, nous utiliserons la méthode d’installation de la distribution sur un partition
du disque.
Installation Ce premier exemple pratique montre comment installer Fedora 9 comme système invité
de Fedora
dans Xen. (Notez que Fedora 9 ne fonctionne pas en tant que système dom0, mais en tant
que domU. Fedora 10 devrait fonctionner en tant que dom0.) La plupart des étapes sont
valables pour l’ensemble des distributions ; certains détails sont spécifiques à la distribution
ou à la version. Dans ce qui suit, nous indiquons pour toutes les commandes sur quels sys-
tèmes elles doivent être lancées. @domU spécifie que les commandes sont lancées sur le système
invité (qu’il soit déjà lancé par Xen ou non), et @dom0 sur le système hôte.
Installation de Redémarrez tout d’abord l’ordinateur et créez une partition supplémentaire sur le disque
la distribution
dur. Si vous désirez transférer l’installation dans une image disque, la partition doit être la
plus petite possible (par exemple, 3 Go). Cela économise ensuite du temps lorsque vous
gérerez le fichier image.
Installez ensuite votre distribution normalement. Pensez à utiliser la même architecture que
votre système Xen dom0 ! L’installation dépend évidemment de la manière dont vous
comptez l’utiliser dans Xen. Cependant, plus l’installation est réduite, plus elle est rapide à
mettre en place. Il est peu probable que vous ayez besoin d’OpenOffice.org dans un système
Xen invité ; et si c’est le cas, il sera toujours temps de l’installer.
Lors de mes tests, j’ai désactivé le pare-feu et SELinux. Cela minimise les sources possibles
d’erreur si un problème survient.
De plus, il est souvent opportun de désinstaller tous les services qui ne sont pas nécessaires
dans un environnement Xen (avahi, smartd, gpm, etc.), ou du moins d’en supprimer le
démarrage automatique.
Noyau Xen Certaines distributions permettent, pendant l’installation, d’installer un noyau Xen en plus
du noyau habituel. Dans le cas contraire, démarrez le système Linux et ajoutez le noyau Xen
avec les outils de gestion de paquetages.
Fichier initrd Pour pouvoir démarrer la distribution à partir de Xen, vous avez besoin d’un fichier initrd.
Or, celui créé lors de l’installation du noyau Xen de Fedora ne contient pas les modules xen-
blk et xennet. Il faut donc le régénérer :
root@domU# cd /boot
root@domU# mkinitrd --preload=xenblk --with=xennet \initrd-xen-fedora9
2.6.25-3.2.fc9.i686.xen
Redémarrage L’installation de l’invité Fedora est alors terminée. Redémarrez votre ordinateur et lancez le
du dom0
système Xen (dom0). Si vous le désirez, vous pouvez maintenant créer une image de l’instal-
lation avec dd et travailler avec cette image par la suite :
root@dom0# mkdir /domu-filesys
root@dom0# dd if=/dev/sda7 of=fedora.img

Vous pouvez aussi accéder directement à la partition de l’installation de Fedora. Nous sup-
posons ici que Fedora est installé dans la partition /dev/sda7. Dans tous les cas, il faut mon-
ter le système invité dans l’arborescence courante avec, selon le cas, l’une des deux
commandes suivantes :
root@dom0# mount -t ext3 -o loop fedora.img /domu-filesys
root@dom0# mount -t ext3 /dev/sda7 /domu-filesys
Linux Livre Page 649 Mardi, 23. septembre 2008 1:05 13

XEN 649
Copier le Pour que Xen puisse lancer le système invité, il faut copier le noyau et le fichier initrd de
noyau et le
fichier initrd Fedora vers le système dom0. Si vous envisagez d’utiliser plusieurs invités Xen, il est préfé-
rable de créer un sous-répertoire de boot pour chaque noyau :
root@dom0# mkdir /boot/fedora
root@dom0# cd /boot/fedora
root@dom0# cp /domu-filesys/boot/vmlinuz-2.6.25-3.2.fc9.i686.xen .
root@dom0# cp /domu-filesys/boot/initrd-xen-fedora9 .
/etc/fstab Lorsque Fedora sera lancé par le biais de Xen, ses périphériques de disques recevront de
nouveaux noms qui correspondent au fichier de configuration de Xen. Il faut donc adapter
le fichier /etc/fstab :
root@dom0# jmacs /domu-filesys/etc/fstab

Le plus simple est d’utiliser pour la partition racine l’UUID de la partition comme identifiant
de montage. Pour obtenir cet UUID, il faut lancer la commande vol_id, suivie du nom du péri-
phérique ou du fichier. Cette commande peut être lancée quel que soit le système auquel est
attaché le périphérique : l’UUID ne change pas selon le système auquel il est attaché.
Les premières expériences peuvent être lancées sans partition d’échange. Il faut donc géné-
ralement modifier /etc/fstab selon ce schéma :
# /etc/fstab dans le système domU
UUID=XXXX / ext3 defaults 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
Fichier de Pour finir la préparation, il faut créer un fichier de configuration pour le nouveau domU dans le
configuration
de Xen répertoire /etc/xen. L’exemple suivant indique comment le nouveau domaine Xen doit s’appe-
ler, où se trouvent le noyau et le fichier initrd (dans le système dom0), quels paramètres il faut
passer au noyau du domU et combien de RAM est attribuée au domaine (en mégaoctets).
La ligne root indique l’emplacement du fichier racine. Pour simplifier l’amorçage, utilisez
ici aussi l’UUID de la partition ou du fichier.
La ligne disk indique l’emplacement du fichier image et le nom des périphériques pour
domU. À la place de xen-images, indiquez le répertoire dans lequel se trouve le fichier
image. Dans de nombreux exemples Xen, vous verrez à la place de tap:aio le mot clé file:.
Cette variante fonctionne également, mais elle est plus lente.
Le mot clé vif s’assure que le système invité peut accéder au réseau. Si l’ordinateur local fait
fonctionner un serveur DHCP, le domU y récupère une IP. Sinon, vous devez configurer
l’interface eth0 du domU avec ses propres outils de configuration.
sdl=1 permet d’afficher une fenêtre au démarrage du système invité, qui affiche le contenu
de son système graphique (framebuffer). Pour les premières tentatives, vous pouvez vous en
dispenser.
# /etc/xen/fedora dans le système de fichiers du dom0
name = ’fedora’
kernel = ’/boot/fedora/vmlinuz-2.6.25-3.2.fc9.i686.xen’
Linux Livre Page 650 Mardi, 23. septembre 2008 1:05 13

650 LINUX

ramdisk = ’/boot/fedora/initrd-xen-fedora9’
root = ’UUID=XXXX-XXXX ro’
memory = 400
disk = [’tap:aio:/xen-images/fedora.img,sda1,w’]
vif = [ ’’ ]
sdl = 1

Lorsque vous démarrez le système domU directement depuis la partition /dev/sda7, modifiez
la ligne disk comme suit :
# /etc/xen/fedora
...
disk = [’phy:sda7,sda1,w’]

Premier Avant de démarrer votre nouveau système domU, vous devez démonter son système de
démarrage
fichiers de l’arborescence du dom0 :
root@Dom0# cd
root@Dom0# umount /domu-filesys

Pour finir, lancez dans une console xm create fedora -c. Cela lance le domaine fedora et lie
le terminal Xen avec la console courante. Toutes les tâches du domU (messages du noyau,
etc.) s’affichent dans la console locale. Lorsque tout se passe bien, vous pouvez vous connecter.
Cet exemple est largement élagué pour des raisons de place.
root@dom0# xm create fedora -c
Using config file "/etc/xen/fedora".
Started domain fedora
...
Linux version 2.6.25.3-2.fc9.i686.xen (mockbuild@) (gcc version 4.3.0 20080428
(Red Hat 4.3.0-8) (GCC) ) #1 SMP Thu May 29 12:48:20 EDT 2008
ACPI in unprivileged domain disabled
BIOS-provided physical RAM map:
Xen: 0000000000000000 - 0000000019800000 (usable)
0MB HIGHMEM available.
408MB LOWMEM available.
...
Detected 1196.929 MHz processor.
...
input: Macintosh mouse button emulation as /devices/virtual/input/input0
...
XENBUS: Device with no driver: device/vbd/2049
XENBUS: Device with no driver: device/vif/0
...
SCSI subsystem initialized
register_blkdev: cannot get major 8 for sd
...
Fedora release 9 (Sulphur)
Kernel 2.6.25.3-2.fc9.i686.xen on an i686 (/dev/hvc0)
localhost.localdomain login: kofler
Password: ******
Last login: Thu Apr 5 19:59:41 on hvc0
[kofler@localhost ~]$
Linux Livre Page 651 Mardi, 23. septembre 2008 1:05 13

XEN 651

Pour connaître l’état de tous les domaines Xen, vous pouvez lancer la commande xm list.
L’état b signifie blocked et indique que le système n’a rien à faire et qu’il attend des tâches.
root@Dom0# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1213 2 r----- 357.2
fedora 10 399 1 -b---- 19.0

Problèmes J’ai bien dû lancer vingt fois xm create name -c avant que mon premier domaine domU ne
se lance. Les sources d’erreur les plus fréquentes sont les suivantes :
• Le noyau du domU est incompatible avec Xen (mauvaise architecture de processeur,
prise en charge de PAE, message d’erreur error 22, invalid argument).
• Ni le noyau du domU, ni le fichier initrd ne contiennent le pilote xenblk. Alors, le
noyau du domU ne peut pas accéder à la partition racine, ce qui renvoie l’erreur kernel
panic - not syncing.
• Le noyau lancé par Xen ne correspond pas au répertoire de modules /lib/modules/n du
système domU. Le noyau domU ne peut donc pas charger de modules. Dans ce cas, le
démarrage du système commence normalement, mais les problèmes surviennent pendant
le processus InitV.
Heure Le système domU utilise automatiquement l’heure du dom0. Il ne sert donc à rien d’exécuter
un serveur ntpd sur le domU. Si vous désirez régler l’heure de ce système indépendamment de
l’heure du dom0, vous devez ajouter la commande suivante dans le processus InitV :
root# echo 1 > /proc/sys/xend/independent_wallclock

Cloner un Lorsque le système fonctionne, vous pouvez le cloner sans problème. Arrêtez le domU,
domU
copiez l’image et le fichier de configuration, puis modifiez la ligne disk du nouveau fichier
de configuration. C’est tout ! Vous pouvez alors démarrer deux systèmes domU indépen-
damment l’un de l’autre.

Installation de Windows (HVM)


Vous pouvez aussi lancer Windows XP sous Xen si votre processeur prend en charge la virtua-
lisation matérielle.
L’installation de Xen en mode HVM est plus simple que celle de Linux en paravirtualisation.
Vous avez d’abord besoin d’un fichier image pour le disque dur virtuel. De plus, il vaut
mieux utiliser une image ISO du CD, plutôt que le CD lui-même lors de l’installation.
root@dom0# cd xen-images
root@dom0# dd if=/dev/zero of=winxp.img bs=1 count=0 seek=4G
root@dom0# cd iso-images
root@dom0# dd if=/dev/scd0 of=winxp.iso

Le fichier de configuration de Xen doit suivre le schéma suivant. Les paramètres builder,
kernel et device_model s’assurent que Xen lance le mode HVM et non la paravirtualisation.
device_model doit contenir, selon l’architecture du processeur du dom0, lib ou lib64.
Linux Livre Page 652 Mardi, 23. septembre 2008 1:05 13

652 LINUX

Le paramètre disk définit cette fois deux paramètres : un fichier image pour le disque vir-
tuel et un fichier ISO pour le lecteur CD. Windows voit ces deux lecteurs comme maîtres
des deux canaux IDE. Attention, le mode HVM de Xen ne prend pas encore en charge
l’accès aux données via tap:aio:. Vous devez donc utiliser l’écriture classique file:.
boot demande à Xen de démarrer depuis le CD-ROM (lecteur D: dans la nomenclature
Windows).
# /etc/xen/winxp dans le système dom0
name = ’winxp’
builder = ’hvm’
kernel = ’/usr/lib/xen/boot/hvmloader’
device_model = ’/usr/lib/xen/bin/qemu-dm’
# ’/usr/lib64/xen/bin/qemu-dm’ (bei 64-Bit-Xen)
memory = 256
disk = [ ’file:/\zsi{xen-images}/winxp.img,ioemu:hda,w’,
’file:/\zsi{iso-images}/winxp_pro_with_sp2.iso,hdc:cdrom,r’]
boot = ’d’
vif = [ ’type=ioemu’ ]
sdl = 1

xm create démarre l’installation. Une fenêtre HVMXEN s’ouvre automatiquement ; elle


représente le système graphique du domU. Cette fenêtre se comporte comme QEMU :
Ctrl+Alt rend le focus de la souris et du clavier, et Ctrl+Alt+F passe du mode fenêtre au
mode plein écran (ce qui, dans mon environnement de test, mène à un plantage systémati-
que de l’ordinateur). Attention, lorsque vous fermez la fenêtre, le système domU s’éteint
brutalement (comme lors d’une coupure de courant).
root@dom0# xm create winxp

L’installation elle-même se déroule comme sur un ordinateur réel, mais plus lentement.
Lorsque l’installation s’est bien déroulée, modifiez les paramètres disk et boot du fichier de
configuration. Vous pourrez ainsi démarrer directement Windows depuis le disque dur
virtuel C: et accéder au lecteur CD physique du dom0.
# /etc/xen/winxp dans le système de fichiers dom0
...
disk = [ ’file:/\zsi{xen-images}/winxp.img,ioemu:hda,w’,
’phy:scd0,hdc:cdrom,r’]
boot = ’c’

33.6 Interaction avec le système domU démarré (SDL, VNC)


Lorsque le système domU fonctionne avec une connexion réseau, l’échange de données et le
contrôle peuvent s’effectuer via le réseau (par exemple, avec ssh). Avant que cela ne soit
fonctionnel, il faut utiliser les consoles Xen comme SDL ou VNC. Cette section propose
quelques astuces pour gérer ces outils.
Linux Livre Page 653 Mardi, 23. septembre 2008 1:05 13

XEN 653

Si, pour une raison ou une autre, vous ne pouvez plus accéder au domU, vous pouvez
toujours l’arrêter avec xm. L’identifiant du domaine s’obtient avec xm list.
root@dom0# xm shutdown identifiant

Console Xen
La forme la plus simple d’interaction avec le système domU est la console Xen. Si vous
avez oublié l’option -c en lançant votre domaine, vous pouvez vous connecter à la console
ultérieurement :
root@dom0# xm console nom_domaine

Cette commande donne souvent l’impression qu’elle a été ignorée. En fait, elle a bel et bien
fonctionné. Appuyez sur Entrée ; l’invite de connexion du système domU apparaît alors
dans la console.
Pour sortir de la console, tapez la combinaison de touches Ctrl+] – soit, sur un clavier fran-
çais, Ctrl+AltGr+). Le système domU continue à fonctionner, mais vous ne pouvez plus voir
ce qu’il se passe dans la console.

SDL
Lorsque la configuration de Xen contient la ligne sdl=1, une fenêtre doit s’afficher immédia-
tement après le démarrage avec le contenu de l’écran (framebuffer). Lorsque le domU
démarre X, la fenêtre affiche le système graphique du système. Pour que cela fonctionne,
le fichier de configuration de X du système domU doit contenir les paramètres suivants. Les
paramètres Identifier sont arbitraires, mais doivent correspondre à ceux indiqués dans
les sections Screen et ServerLayout.
# /etc/X11/xorg.conf dans le système de fichiers du domU
Section "Device"
Identifier "<nom_périphérique>"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
EndSection
Section "InputDevice"
Identifier "<nom_souris>"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/input/mouse0"
EndSection
...

Fermer et Lorsqu’on ferme une fenêtre SDL, les domaines paravirtualisés continuent à tourner, tandis
rouvrir la
fenêtre SDL que les domaines HVM s’arrêtent immédiatement. Lorsqu’un domaine paravirtualisé
fonctionne, vous pouvez rétablir la connexion SDL en lançant manuellement xen-sdlfb.
L’identifiant du domaine s’obtient avec xm list.
root@dom0# /usr/lib/xen/bin/xen-sdlfb --domid 10
Linux Livre Page 654 Mardi, 23. septembre 2008 1:05 13

654 LINUX

VNC
Xen possède un petit serveur VNC. Vous pouvez donc aussi afficher le contenu de l’écran
via VNC. Pour cela, le fichier de configuration de Xen doit contenir la ligne vnc=1. Par
défaut, le serveur VNC de Xen utilise l’adresse IP 127.0.0.1, les ports 5900, 5901, 5902, etc. et
aucun mot de passe. Tous les paramètres de VNC peuvent être modifiés globalement
dans /etc/xen/xen-config.sxp ou individuellement pour chaque domaine. Attention, le
paramètre utilisé dans de nombreux exemples, vnclisten = ’0.0.0.0’, donne accès aux
machines virtuelles pour tout le réseau local, ce qui peut représenter un risque de sécurité.
# /etc/xen/domainname dans dom0
...
vnc = 1
vnclisten = "127.0.0.1"
vncpasswd = "xxx"

L’option vncunused=0 permet d’utiliser le numéro de port 5900+n, où n est l’identifiant du


domaine. Vous pouvez, en plus de vncunused=0, indiquer le numéro de port avec vncdis-
play=n (où n est ajouté à 5900). Si vous ne savez pas sur quels ports fonctionne le serveur
VNC, utilisez netstat :
root@Dom0# netstat -lpn | grep xen
tcp 0 0 127.0.0.1:5906 0.0.0.0:* LISTEN 6005/xen-vncfb
tcp 0 0 127.0.0.1:5907 0.0.0.0:* LISTEN 6104/xen-vncfb
...

Dans le domU, il faut utiliser la même configuration de X que pour SDL (voir ci-dessus).
Lorsque le domU est démarré, lancez vncviewer ainsi :
root@dom0# vncviewer localhost:5906

33.7 Syntaxe du fichier de configuration du domU


Cette section résume les paramètres importants du fichier de configuration d’un domU (/etc/
xen/nom).
• builder = ’linux’ / ’hvm’ indique le type de domaine. linux est le paramètre par
défaut et représente un domaine paravirtualisé.
• device_model = ’fichier’ doit contenir, pour les domaines HVM, /usr/lib[64]/xen/
bin/qemu-dm.
• disk = [’chaîne1’,’chaîne2’...] décrit un ou plusieurs supports de données. La syntaxe
de la chaîne est type:périphérique_réel,périphérique_virtuel,mode.
type peut avoir la valeur phy (périphérique physique), tap:aio (accès à un fichier image
via l’interface tap) ou file (accès à un fichier image pour les domaines HVM). Les péri-
phériques sont décrits par leur nom sans /dev/. Les modes possibles sont r (lecture
seule) et w (lecture/écriture). L’exemple suivant définit trois supports de données : une
image pour la partition système et une pour la partition d’échange, ainsi que le lecteur
CD de l’hôte pour le lecteur CD :
Linux Livre Page 655 Mardi, 23. septembre 2008 1:05 13

XEN 655

disk = [’tap:aio:/repertoire/root.img,sda1,w’,
’tap:aio:/repertoire/swap.img,sda2,w’,
’phy:scd0,scd0,r’]

• extra = ’paramètre’ ajoute des paramètres optionnels au noyau Linux.


• kernel = ’fichier’ est le nom du fichier du noyau Linux ou celui du chargeur HVM
(souvent /usr/lib/xen/boot/hvmloader).
• memory = n indique la taille de la mémoire réservée pour le domaine en mégaoctets.
• name = ’nom’ est le nom du domaine. Ce nom est utilisé pour la gestion dans le dom0.
• ramdisk = ’fichier’ est le nom du fichier initrd pour le noyau Linux.
• root = ’périphérique’ est la partition système de Linux. Il est intéressant de passer ce
paramètre via son UUID.
• sdl = 1 représente le système graphique du domaine dans une fenêtre SDL.
• vcpus = n indique le nombre de processeurs virtuels. Par défaut, le domaine est associé
à un seul processeur.
• vif = [’chaîne1’,’chaine2’...] décrit une ou plusieurs interfaces réseau. Les chaînes
peuvent, dans le cas le plus simple, rester vides (interface par défaut, DHCP). Les para-
mètres possibles sont type, mac, bridge et ip. Pour les interfaces HVM, il faut utiliser
type=ioemu, comme dans l’exemple suivant :
vif = [ ’type=ioemu, mac=01:23:45:67:89:ab, bridge=xenbr0’ ]

• vnc = 1 démarre un serveur VNC avec le domaine. Les paramètres vnclisten et vnc-
passwd permettent de contrôler sur quelle adresse le serveur peut être contacté et par
quel mot de passe il est protégé.

33.8 Administration de Xen


xm La commande au cœur de l’administration des domaines Xen est xm. Elle sert à démarrer et
à arrêter des domaines, à modifier le matériel virtuel, etc. La liste suivante résume les prin-
cipales commandes xm. man xm en fournit une description plus détaillée.
• block-attach id réel virtuel mode associe au domaine indiqué le support de données
réel sous le nom virtuel indiqué dans le mode souhaité (ro ou rw).
• block-detach id-domaine id-périphérique supprime le support de données du
domaine.
• block-list id affiche une liste des périphériques attachés à un domaine avec leurs
identifiants de périphérique.
• console id connecte la console actuelle avec la console Xen du domaine déjà démarré,
dont le numéro d’identifiant est indiqué.
• create [-c] fichier démarre le domaine indiqué par le fichier de configuration du
répertoire /etc/xen. L’option -c associe la console Xen du domaine directement à la
console courante.
Linux Livre Page 656 Mardi, 23. septembre 2008 1:05 13

656 LINUX

• destroy id éteint le domaine immédiatement (comme lors d’une coupure de courant).


• dmesg affiche les messages de Xen et du noyau.
• info affiche des informations sur le système Xen (numéro de version, processeurs, utili-
sation de la mémoire, etc.).
• list affiche une liste de tous les domaines lancés. Pour chacun d’eux, un état est indiqué :
– r : running (démarré, fonctionne)
– b : blocked (bloqué, attend une entrée ou une sortie)
– p : paused (en pause)
– s : shutdown (en cours d’extinction)
– c : crashed (planté)
– d : dying (mourant)
• network-attach id paramètre associe une nouvelle interface réseau au domaine. Cette
interface est décrite par les paramètres ip, mac, bridge et backend.
• network-detach id-domaine id-interface supprime l’interface du domaine.
• network-list id affiche les interfaces du domaine et les identifiants associés.
• pause id met en pause le domaine indiqué. Il consomme toujours de la mémoire, mais
ne demande plus de ressources processeur.
• shutdown [-w] id lance l’arrêt du domaine. L’option -w s’assure que xm attend la fin de
l’arrêt.
• unpause id relance, après une pause, un domaine.
xentop xentop est une variante de la commande top habituelle. Elle montre l’utilisation mémoire,
l’occupation processeur et divers autres paramètres de tous les domaines lancés (y compris
dom0). L’affichage est régulièrement actualisé jusqu’à ce que vous terminiez le programme
avec Q.
Démarrer Le script InitV /etc/init.d/xendomain enregistre, lors de l’arrêt de l’ordinateur, l’état de
et arrêter
automati- tous les domaines lancés (xm save) et les réactive lors du redémarrage de l’ordinateur.
quement des Pour activer certains domaines chaque fois que l’ordinateur est démarré (indépendamment
domaines
de leur état lors de l’arrêt de l’ordinateur), créez des liens vers ces domaines dans /etc/xen/
auto :
root# cd /etc/xen/auto
root# ln -s ../fichier_config .

Outils Il existe diverses interfaces d’administration pour Xen, comme par exemple Xenman (voir
d’adminis-
tration http://xenman.sourceforge.net). SUSE et Red Hat ont des outils spécifiques aux distributions :
graphiques le module YaST Système, Virtualisation (paquetage yast-vm) et virt-manager.
Linux Livre Page 657 Mardi, 23. septembre 2008 1:05 13

ANNEXES

Références thématiques
A
Ce chapitre offre un rapide descriptif des principales commandes sous Linux.
Pour une référence complète des commandes en question, utilisez man commande
ou info commande (ou help commande s’il s’agit d’une commande intégrée à
l’interpréteur). Il se peut que certaines des commandes décrites ici doivent être
installées séparément.

Gestion des fichiers


cat affiche un fichier sur la sortie standard ; est aussi utilisé pour
grouper plusieurs fichiers en un
cd change de répertoire
chgrp modifie l’appartenance d’un fichier à un groupe
chmod modifie les bits d’accès d’un fichier
chown modifie le propriétaire d’un fichier
cp copie un fichier
file tente de déterminer le type d’un fichier
ln crée des liens durs et symboliques
ls affiche le contenu d’un répertoire
mkdir crée un nouveau répertoire
mv déplace un fichier ou le renomme
rm supprime un fichier
rmdir supprime un répertoire vide
rsync synchronise des répertoires
tee duplique la sortie standard

ACL (listes de contrôle d’accès) et EA (attributs étendus)


attr gère les attributs étendus d’un fichier
chacl gère les ACL d’un fichier
getfacl évalue les ACL d’un fichier
getfattr évalue les attributs étendus d’un fichier
setfacl modifie les ACL d’un fichier
setfattr modifie les attributs étendus d’un fichier
Linux Livre Page 658 Mardi, 23. septembre 2008 1:05 13

658 LINUX

Recherche de fichiers
beagle-query cherche des fichiers d’après leur contenu
find cherche des fichiers d’après leur nom, taille, date, etc.
grep cherche du texte dans un fichier texte
locate cherche des fichiers dans une base de données préétablie
updatedb actualise la base de données de locate
whereis cherche des fichiers dans des répertoires prédéfinis
which parcourt les répertoires de PATH à la recherche de commandes

Traitement de fichiers texte


cat affiche un fichier sur la sortie standard ; est aussi utilisé pour grouper plu-
sieurs fichiers en un
csplit découpe un fichier en sections grâce à un séparateur
cut extrait des colonnes de toutes les lignes d’un texte
diff compare deux textes
expand remplace les tabulations par des espaces
fold met en forme un fichier à une largeur donnée
grep cherche du texte dans un fichier
head affiche les premières lignes d’un fichier
iconv modifie le jeu de caractères d’un fichier
less affiche un fichier page par page (avec retour arrière)
more affiche un fichier page par page (sans retour arrière)
paste réunit plusieurs fichiers texte ligne à ligne
patch modifie un fichier selon un fichier généré par diff
recode convertit un fichier entre différents jeux de caractères
sed édite les flux (éditeur programmable)
sort trie un fichier
split sépare un fichier en morceaux d’une taille donnée
strings affiche les chaînes de caractères d’un fichier binaire
tac affiche un fichier dans l’ordre inverse (dernière ligne au début)
tail affiche les dernières lignes d’un fichier
tr remplace les caractères indiqués par d’autres caractères
uniq supprime les doublons d’un fichier
zcat affiche un fichier compressé
zless affiche un fichier compressé page par page (avec retour arrière)
zmore affiche un fichier compressé page par page (sans retour arrière)
Linux Livre Page 659 Mardi, 23. septembre 2008 1:05 13

RÉFÉRENCES THÉMATIQUES 659

Compresser et archiver des fichiers


bunzip2 décompresse des fichiers compressés avec bzip2
bzip2 compresse des fichiers ; plus performant que gzip
cpio archive des fichiers indépendamment du système de fichiers
compress compresse des fichiers
gunzip décompresse des fichiers compressés avec gzip
gzip compresse des fichiers ; plus performant que compress
mt contrôle le fonctionnement d’un disque magnétique (avance, recul de
bande, etc.)
tar groupe plusieurs fichiers et répertoires dans un seul fichier
uncompress décompresse des fichiers compressés avec compress
unzip décompresse une archive Zip
zip crée une archive Zip (compatible avec Windows)
zipinfo affiche le contenu d’une archive Zip

Graver des CD/DVD


cdrdao grave un CD en mode Disk-at-Once
cdrecord grave un CD ou un DVD
dvd+rw-format formate un DVD+RW ou un DVD-RW
dvd+rw-mediainfo affiche des informations sur un support de données optique
genisoimage crée une image ISO (variante à mkisofs)
growisofs grave un DVD ou un disque Blue-Ray
mkisofs crée une image ISO
mkudffs crée un système de fichiers UDF (par exemple, sur un DVD-RAM)
wodim grave un CD ou un DVD (variante à cdrecord)

Convertisseurs
a2ps convertit un fichier texte en format PostScript
convert convertit un fichier graphique vers différents formats
convmv modifie le jeu de caractères d’un nom de fichier
enscript convertit un fichier texte en format PostScript
epstopdf convertit un fichier EPS en fichier PDF
gs convertit des fichiers PostScript et PDF en format bitmap
inconv modifie le jeu de caractères d’un fichier texte
mogrify modifie les paramètres d’un fichier image
mpage convertit un fichier texte en format PostScript
Linux Livre Page 660 Mardi, 23. septembre 2008 1:05 13

660 LINUX

pdf2ps convertit un fichier PDF en fichier PostScript


pdftk manipule des fichiers PDF
pdftops alternative à psd2ps
pdftotext transforme un document PDF en texte brut
ps2pdf convertit un fichier PS en fichier PDF
recode modifie le jeu de caractères d’un fichier texte

Gestion des programmes et des processus


bg passe un processus en arrière-plan (tâche de fond)
chroot démarre un interpréteur de commandes avec un répertoire racine différent
fg passe un processus en avant-plan
fuser détermine le programme qui accède à un fichier
halt termine Linux et éteint l’ordinateur
kill envoie des signaux (généralement pour terminer un processus)
killall comparable à kill, mais s’applique à des noms de processus
ldconfig actualise le fichier de cache de la recherche de bibliothèques
lsof affiche une liste de tous les fichiers ouverts et des processus associés
nice démarre un programme avec une priorité modifiée
nohup démarre un processus "indestructible"
pidof affiche le numéro de processus d’un programme démarré
ps affiche la liste des processus courants
pstree comparable à ps, mais affiche les résultats sous forme arborescente
reboot termine Linux et redémarre l’ordinateur
renice modifie la priorité d’un processus en cours d’exécution
sudo lance un programme en tant que root
top affiche une liste actualisée régulièrement de tous les processus

Gestion des utilisateurs et des groupes


adduser crée un nouvel utilisateur (Debian)
addgroup crée un nouveau groupe (Debian)
chgrp modifie l’appartenance d’un fichier à un groupe
chown modifie le propriétaire d’un fichier
chsh modifie l’interpréteur de commandes par défaut d’un utilisateur
delgroup supprime un groupe (Debian)
deluser supprime un utilisateur (Debian)
groupadd crée un nouveau groupe
groupdel supprime un groupe
groupmod modifie les propriétés d’un groupe
groups affiche les groupes de l’utilisateur courant
Linux Livre Page 661 Mardi, 23. septembre 2008 1:05 13

RÉFÉRENCES THÉMATIQUES 661

id affiche les identifiants d’utilisateur et de groupe de l’utilisateur courant


newgrp modifie le groupe courant d’un utilisateur
newusers crée plusieurs utilisateurs
passwd modifie le mot de passe d’un utilisateur
useradd ajoute un utilisateur
userdel supprime un utilisateur
usermod modifie les propriétés d’un utilisateur

Administration du système de fichiers


badblocks teste si le support de données contient des secteurs défectueux
dd copie des blocs de données entre des périphériques (bas niveau)
df affiche l’espace libre d’un disque dur
du détermine la place nécessaire à un répertoire
dumpe2fs affiche des informations internes sur un système de fichiers ext
eject éjecte un CD ou une disquette
fdformat formate une disquette
fdisk partitionne un disque dur
fsck répare un système de fichiers
fsck.type répare un système de fichiers du type indiqué
hdparm modifie les paramètres du disque dur
mdadm gère les partitions RAID
mkfifo crée un fichier FIFO (tube nommé)
mkfs crée un système de fichiers
mkfs.type crée un système de fichiers du type indiqué
mknod crée un fichier de périphérique
mkswap crée un fichier ou une partition d’échange
mount monte un système de fichiers dans l’arborescence de répertoires
ntfsmount monte un système de fichiers NTFS dans l’arborescence de répertoires
(variante 1)
ntfs-3g monte un système de fichiers NTFS dans l’arborescence de répertoires
(variante 2)
pmount monte un support de données externe dans l’arborescence de répertoires
pumount démonte un support de données externe de l’arborescence de répertoires
smartctl contrôle les fonctions SMART du disque dur
swapoff désactive un fichier ou une partition d’échange
swapon active un fichier ou une partition d’échange
sync effectue toutes les opérations d’écriture du tampon
tune2fs modifie les paramètres système d’un système de fichiers ext
Linux Livre Page 662 Mardi, 23. septembre 2008 1:05 13

662 LINUX

umount démonte un système de fichiers de l’arborescence de répertoires


vol_id affiche l’UUID, le nom et d’autres données d’une partition
volname affiche le nom de volume d’un CD

Gestion de paquetages
alien convertit des paquetages entre différents formats
alternatives ajuste les liens de /etc/alternatives (Fedora, Red Hat)
apt-cache affiche des informations sur les paquetages installés et disponibles
apt-cdrom ajoute un CD/DVD comme dépôt de paquetages pour APT
apt-get permet de gérer des paquetages DEB
apt-key récupère la clé d’un dépôt de paquetages APT
aptitude permet de gérer des paquetages DEB
dpkg (dés)installe ou actualise les paquetages DEB
rpm (dés)installe ou actualise les paquetages RPM
update-alternatives ajuste les liens de /etc/alternatives
yum permet de gérer des paquetages RPM
zypper permet de gérer des paquetages RPM (spécifique à SUSE)

Fonctions réseau
ftp transfère des fichiers interactivement via FTP
host résout les adresses IP et noms réseau
hostname affiche et modifie le nom de l’ordinateur local
ifconfig configure les interfaces réseau et affiche leur état
ifdown désactive une interface réseau
ifup active une interface réseau
iptables configure le filtre de paquets (pare-feu) de Linux
iwconfig configure les interfaces réseau sans fil et affiche leur état
iwlist affiche des informations sur le contrôleur et le réseau Wi-Fi
netstat affiche des informations sur l’activité réseau de l’ordinateur local
nmap affiche des informations sur l’activité réseau d’un ordinateur distant
ping teste la connexion réseau vers un autre ordinateur
route modifie et affiche les tables de routage IP
rsync synchronise des répertoires réseau
scp transfère des fichiers de manière chiffrée via SSH
sftp transfère des fichiers de manière chiffrée via SFTP
smbclient transfère des fichiers vers/depuis des partages Windows
ssh permet de se connecter à d’autres ordinateurs du réseau
traceroute affiche les étapes vers une adresse réseau
wget télécharge des fichiers ou des répertoires via FTP/HTTP
Linux Livre Page 663 Mardi, 23. septembre 2008 1:05 13

RÉFÉRENCES THÉMATIQUES 663

Administration de l’imprimante
lpadmin ajoute ou supprime une imprimante (CUPS)
lpinfo affiche des informations sur les périphériques et pilotes d’impression dis-
ponibles (CUPS)
lpoptions affiche les options d’une imprimante et les modifie (CUPS)
lpq affiche le contenu d’une file d’impression
lpr imprime un fichier
lprm supprime une tâche d’impression de la file
lpstat affiche des informations sur les imprimantes, les tâches d’impression, etc.
(CUPS)

Gestion du matériel
acpi affiche des informations sur l’état de la batterie
free affiche l’espace libre de la mémoire (mémoire vive et espace d’échange)
lshal affiche des informations sur la couche d’abstraction matérielle HAL
lspci affiche des informations sur les composants PCI
lsscsi affiche des informations sur les périphériques SCSI connectés
lsusb affiche des informations sur les périphériques USB connectés
pccardctl contrôle les cartes PCMCIA

Noyau et modules
depmod actualise le fichier de dépendances des modules modules.dep
insmod charge un module dans le noyau
lsmod affiche la liste de tous les modules chargés
modinfo affiche des informations sur un module
modprobe charge un module et tous les modules dont il dépend dans le noyau
rmmod supprime un module du noyau
sysctl modifie les paramètres du noyau

Démarrage et arrêt du système


chkconfig crée des liens InitV (Red Hat, Fedora)
grub lance l’interpréteur de commandes GRUB (par exemple, pour installer le
chargeur d’amorçage)
invoke.rc lance un script InitV (Debian, Ubuntu)
lilo installe le gestionnaire d’amorçage LILO
Linux Livre Page 664 Mardi, 23. septembre 2008 1:05 13

664 LINUX

init passe dans un autre niveau d’exécution


insserv crée des liens InitV (SUSE)
mkinitramfs crée un fichier initrd pour le gestionnaire d’amorçage (Ubuntu)
mkinitrd crée un fichier initrd pour le gestionnaire d’amorçage
service lance un script InitV (Red Hat, Fedora)
shutdown termine Linux
update-rc.d crée des liens InitV (Debian, Ubuntu)

Terminal et console texte


echo affiche une ligne de texte
printf permet de mettre en forme une sortie comme en C
reset nettoie le terminal
setfont modifie la fonte du terminal
setterm modifie divers paramètres du terminal

Aide en ligne
apropos affiche les commandes relatives à un thème
help affiche la description d’une commande de l’interpréteur de commandes
info démarre le système info
man affiche la description d’une commande
whatis affiche une courte description d’une commande

Divers
basename détermine le nom de fichier d’un chemin
cksum calcule la somme de contrôle CRC d’un fichier
date affiche la date et l’heure
dirname détermine le répertoire d’un chemin
dmesg affiche les messages du noyau, en particulier pendant le démarrage
expr exécute des calculs et des comparaisons
ldd affiche les bibliothèques nécessaires d’un programme
md5sum calcule une somme de calcul d’un fichier
rdev modifie quelques bits dans le noyau
sleep attend une durée déterminée
sum calcule la somme de contrôle d’un fichier
tty affiche le nom du périphérique du terminal courant
uname affiche le nom et le numéro de version du système d’exploitation
xargs transmet la sortie standard comme argument d’une autre commande
Linux Livre Page 665 Mardi, 23. septembre 2008 1:05 13

RÉFÉRENCES THÉMATIQUES 665

bash – Gestion des variables


alias définit un alias/raccourci
declare définit une variable d’environnement
export définit une variable d’environnement
local définit une variable locale à une fonction
printenv n’affiche que les variables d’environnement
read lit une variable
readonly affiche toutes les variables protégées en écriture
set affiche toutes les variables connues de l’interpréteur
shift décale la liste de paramètres
unalias supprime un alias
unset supprime une variable

bash – Programmation
break termine une boucle prématurément
case introduit une différenciation de cas
continue fait l’impasse sur le reste du corps de la boucle
exit termine le programme shell
for introduit une boucle
function définit une nouvelle fonction
if introduit une condition
local définit une variable locale à une fonction
return termine une fonction
source lance le fichier shell indiqué
test évalue une condition
until introduit une boucle
while introduit une boucle

bash – Commandes
dirs affiche la liste des répertoires enregistrés
eval évalue la commande indiquée
popd passe dans le dernier répertoire enregistré
pushd enregistre le répertoire courant et passe dans un nouveau répertoire
trap lance une commande à l’arrivée d’un signal
ulimit contrôle les ressources réclamées par le shell
wait attend la fin d’un processus en tâche de fond
Linux Livre Page 666 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 667 Mardi, 23. septembre 2008 1:05 13

Sources d'information
B
Ce chapitre recense divers sites web utiles pour l'installation et la configuration des distribu-
tions Linux mentionnées dans cet ouvrage. Celles-ci sont énumérées dans l'ordre alphabétique.

Debian
Site web de Debian http://www.debian.org/
Communauté francophone http://forum.debian-fr.org/
Wiki Debian http://wiki.debian.org/
Manuel d'installation http://www.debian.org/releases/stable/installmanual

Fedora
Site web de Fedora http://www.fedoraproject.org/
Communauté francophone http://www.fedora-fr.org/
Wiki Fedora https://fedoraproject.org/wiki/
Wiki Fedora francophone http://doc.fedora-fr.org/wiki/
Manuel d'installation http://doc.fedora-fr.org/wiki/Guide_d'installation_de_Fedora_en
_images

Mandriva
Site web de Mandriva http://www.mandriva.com/
Communauté francophone http://www.mandriva.com/fr/communaute/bienvenue
Wiki Mandriva http://wiki.mandriva.com/
Manuel d'installation http://wiki.mandriva.com/fr/Installer_Mandriva_Linux

openSUSE
Site web d'openSUSE http://www.opensuse.org/
Communauté francophone http://fr.opensuse.org/
Manuel d'installation http://fr.opensuse.org/Documentation_utilisateurs/Installation
Linux Livre Page 668 Mardi, 23. septembre 2008 1:05 13

668 LINUX

Red Hat
Site web de Red Hat http://www.redhat.com
Red Hat France http://www.redhat.fr/
Manuel d'installation http://www.redhat.com/docs/manuals/linux/ (en anglais)

SUSE
Site web de SUSE http://www.novell.com/linux/

Ubuntu et ses variantes


Site web d'Ubuntu http://www.ubuntu.com/
Site web de Kubuntu http://www.kubuntu.org/
Site web de Xubuntu http://www.xubuntu.org/
Site web d'Edubuntu http://edubuntu.org/
Communauté francophone http://www.ubuntu-fr.org/
Manuel d'installation http://doc.ubuntu-fr.org/installation

Informations généralistes
Divers articles d'aide http://www.lea-linux.org
Comparatif de distributions http://www.distrowatch.com
Articles divers http://www.unixgarden.com

Autour du logiciel libre


Actualité du logiciel libre http://www.linuxfr.org
AFUL http://www.aful.org
APRIL http://www.april.org
FSF France http://www.fsffrance.org/
GNU http://www.gnu.org/home.fr.html
Linux Livre Page 669 Mardi, 23. septembre 2008 1:05 13

Index
SMBFS 449 /etc/sysconfig/network 508, 509,
Symboles syntaxe 423 512
$DISPLAY 220 système de fichiers 424 /etc/sysconfig/network/
$PATH 214 UUID 423, 446 config 526
$PS1 285 vérification du système de /etc/sysconfig/network-
. 182 fichiers 425 scripts 511
.. 182 VFAT 437 /etc/syslog.conf 334
/ 181 xfs 435 /etc/timezone 307
/bin 209 /etc/group 312 /home 182, 209
/boot 209 /etc/gshadow 316 /lib 209
/dev 209 /etc/host.conf 506 /lib/firmware 519
/dev/null 211 /etc/hostname 509 /lost+found 209
/dev/zero 211 /etc/hosts 505 /media 209
/etc 209 /etc/iftab 510 /mnt 209
/etc/adduser.conf 310 /etc/init.d 476 /opt 209
/etc/aliases 99 /etc/init.d/ 225 /proc 209
/etc/default 303 reload 226 /proc/acpi 326
/etc/default/console-setup 306 restart 226 /proc/apm 327
/etc/default/rcS 307 start 225 /proc/asound 331
/etc/deluser.conf 310 stop 226 /proc/net/wireless 523
/etc/exports 601 /etc/init.d/network 511, 512 /root 182, 209
/etc/fstab 423 /etc/init.d/networking 510 /sbin 210
CD 442 /etc/localtime 308 /sbin/setsysfont 305
CIFS 449 /etc/login.defs 314 /share 210
clé USB 446 /etc/logrotate.conf 335 /srv 210
disque dur externe 446 /etc/logrotate.d/* 335 /sys 210
DVD 442 /etc/network/interfaces 510, 524 /tmp 210
exemple 423 /etc/pam.d 317 /usr 210
ext3 429 /etc/passwd 310 sous-répertoires 210
LABEL 423 /etc/rc.d 476 /var 210
NFS 448 /etc/resolv.conf 503, 506 /var/adm/log 334
NTFS /etc/security 317 /var/log 334
ntfs-3g 440 /etc/services 562
/etc/shadow 313
ntfsmount 439
pilote ntfs 438 /etc/skel 311
Numériques
option users 446 /etc/sysconfig 303 32 et 64 bits 26
options 425 /etc/sysconfig/clock 307 3D 387
partition d’échange 450 /etc/sysconfig/console 306 bureau 389
reiser4 433 /etc/sysconfig/i18n 305 tester 388
reiserfs 433 /etc/sysconfig/keyboard 305 802.11x (standards) 513
Linux Livre Page 670 Mardi, 23. septembre 2008 1:05 13

670 LINUX

man 49, 178 aptitude, ligne de


A paquetages 49 commande 354
AAC 161 wikis 49 arborescence 181, 209, 403
abiword 134 AIGLX 391, 392 /bin 209
AC-3 161 comparaison avec XGL 392 /boot 209
ACL configuration 392 /dev 209
ACL standard 208 prise en charge des pilotes /etc 209
commandes, référence 657 graphiques 391 /home 209
getfacl 207 alacarte 54 /lib 209
masques 208 alias 288 /lost+found 209
prérequis 206 alien 355 /media 209
setfacl 207 alsactl 331 /mnt 209
ACPI 326, 473 alsamixer 331 /opt 209
acpid 326 Amarok 164 /proc 209
addgroup 309 Amorçage /root 209
adduser 309 journalisation 335 /sbin 210
Administation 301 options du noyau 472 /share 210
Adobe Flash Player 90 aplay 331 /srv 210
Adobe Reader 89 APM 327, 473 /sys 210
Adresse Appareils photo /tmp 210
IP 495, 496 numériques 136 /usr 210
MAC 495 photo PTP 136 /var 210
ADSL 531 AppArmor 39 ajouter un système de
box 544 Applet, Java 92 fichiers 403
ip-down-local 576 APT 349 déplacement dans 182
ip-up.local 576 affichage d’informations 351 racine 181
PPP 533 apt-cache 351 Architectures 325
pppd 537 apt-get 349 32 et 64 bits 26
pppeoconf 533,534 aptitude 354 Archive 194
PPPoA 537 configuration 350 Ark 76
PPPoE 537 dépôts 350 commandes, référence 659
PPTP 538 sur CD 350 file-roller 63
pptpconfig 538 installation de tar 195
protocole 537 paquetages 351 unzip 196
routeur 544 mise à jour 351 zip 195
type de modem 533 automatique 352 arecord 331
Aide 41, 178 paquetages de code Ark 76
applications 48 source 351 Arrêt 47
commandes, référence 664 suppression 351 du système, commandes,
documentation 48 Synaptic 352 référence 663
en français 50 apt-cache 351 aRts 332
forums 49 apt-get 349 aRtsd 332
groupes de discussion 41, 49 installation 351 ASCII 319
help 178 mise à jour 351 ATA 404
info 49, 178, 179 paquetages de code ATAPI 404
Linux Documentation source 351 Atheros 519
Project 49 suppression 351 athn (interface) 521
Linux Livre Page 671 Mardi, 23. septembre 2008 1:05 13

INDEX 671

ATSC A/52 161 Voir Redirection


Attribut étendu 206 substitution de
C
getfattr 208 commandes 294 Cache web 577
prérequis 206 succession de Calc (OpenOffice) 126
setfattr 208 commandes 292 Captive 440
Audio 157 tâche de fond 291 Caractère
lecteurs 157 tee 290 accentué, nom de fichier 181
audiofile 234 ulimit 217 étranger
aufs 420 variables 297 gucharmap 395
autofs 419 kcharselect 395
commandes, référence 665
autofs4 419 saisie 48, 380, 395
importantes 299 joker 185
Avahi 528 locales et globales 298 problème 186
Batterie (portable) 326 CardBus (PCMCIA) 329
B Beagle 192 Carte graphique, pilotes 360
beagle-query 193 CD
Banshee 165 expressions de recherche 193 /etc/fstab 442
baobab 63, 185 gnome-beagle-search 193 audio 443
Base (OpenOffice) 130 éjection 442
kerry 193
bash 283 erreur 442
ligne de commande 193
$HOME 299 ISO 9660 441
beagle-query 193
$MAIL 299 lecteur
bg 214
$PATH 214, 299 nom de périphérique 441
$PS1 285, 299 BitTorrent 248
magicdev 445
$PWD 299 clients 248
montage 442
alias 288 Bluetooth 330 supermount 445
bash_completion 287 BMP (format) 151 UDF 441
calcul arithmétique 294 bogofilter 95 cd 182
caractère joker 185, 293 bootloader 459 CD audio 162
commandes, référence 665 Brasero 63 extraction 163, 233
complètement 286 Brevet logiciel 21 gravure avec Serpentine 63
avancé 287 bunzip2 195 lecture 162
automatique 175 Bureau CD et DVD
configuration du clavier 284 Gnome 52 gravure
construction de chaînes avec KDE 68 Voir Gravure
{} 294 cdcd 164
Bureau 3D 358, 389
invite de commande 285 cdda2wav 233
AIGLX 391, 392
mécanismes de CDDB 162
Compiz Fusion 393
substitution 293 cdparanoia 233
résumé 296 fonctions 389 cdrdao 199
programmation, prérequis 391 cdrecord 199
commandes, référence 665 raccourcis clavier 390 Cedega 622
raccourcis clavier 174, 287 XGL 391 Changement d’utilisateur 46
redirections Bureau virtuel 358 Gnome 52
résumé 291 bzip2 195 KDE 68
Linux Livre Page 672 Mardi, 23. septembre 2008 1:05 13

672 LINUX

Character set 319 monter 445 mot de passe 314


Chargeur d’amorçage 459 performances 444 police 305
démarrage du noyau 460 pmount 446 réseau 493
installation 40 super-floppy 445 souris 306
chat 536 udev 444 Configuration d’un client
chgrp 203 Client réseau réseau 493
Chiffrement (e-mails) 100 configuration 544, 553 Configuration des langues 318
chkconfig 227, 478 Debian 553 Connexion
chmod 202, 204 dhcpcd 553 automatique 46, 63, 77
valeurs octales 204 Fedora 553 bureau 45
chroot 644 network-admin 553 en mode texte 46
CIFS 418, 448, 606 Red Hat 553
Gnome 52
mount 448 SUSE 553
KDE 68
utilisateur sans privilèges 449 system-config-
network 553 langue 45
Clavier root 45
Ubuntu 553
Compose 380 redémarrage 554 Connexion automatique
exemples 381 coda 418 Gnome 63
configuration 305 KDE 77
Codec 158
console texte 305 Console 173
CodeWeavers 621
disposition 379 déconnexion 173
CrossOver 621
Gnome 65
Commande, en tâche de fenêtre 174
gnome-keyboard-
fond 175 Voir Terminal
properties 381 lancer des commandes 175
Compiz Fusion 393
modèle 378 paquetage 306
configuration 393
nodeadkeys 305 passage en root 175
gtk-window-decorator 393
nombre de touches 28
kde-window-decorator 393 raccourcis 174
problème 42, 43
Compression 194 souris 175
QWERTY 42
Ark 76 Console texte 173
raccourcis 47
bunzip2 195 clavier 305
touches
bzip2 195 commandes, référence 664
de contrôle 381
commandes, référence 659 configuration 304
spéciales 379
VerrMaj 380 file-roller 63 connexion 173
VerrNum 379 gunzip 194 déconnexion 173
xmodmap 380 gzip 194 gpm 175
Clé 101 unzip 196 nombre 173
privée 101 zip 195 passage entre les consoles 173
publique 101 Compte police 305
Clé USB 443 courrier électronique 96 raccourcis clavier 174
etc/fstab 446 e-mail 96 souris 306
branchement à chaud 444 cone 95, 99 console.apps 317
configuration 444 Configuration 301 console.perms 317
D-BUS 444 clavier (console texte) 305 consolehelper 220
démonter 446 console texte 304 Contrôle parental 577
GRUB 470 créer un utilisateur 308 DansGuardian 582
hald 444 fuseau horaire 307 Contrôleur Ethernet
ivman 444 LAN 493 configuration 500
Linux Livre Page 673 Mardi, 23. septembre 2008 1:05 13

INDEX 673

Convertisseur 231 MIME 97 lpc 594


audio et vidéo 232 signature 97, 100 lpinfo 594
audiofile 234 Thunderbird 103 lpoptions 594
CD audio 233 cp 184 lpq 593
cdda2wav 233 CPU 325 lpr 588, 593
cdparanoia 233 cpufreq 325 lprm 593
commandes, référence 659 cramfs 419 lpstat 594
convmv 235 cron 227 PPD 596
documents 235 /etc/crontab 227 redémarrer 590
données EXIF 232 /var/spool/cron 227 supprimer une
dos2unix 234 configuration 227 imprimante 594
EMF 232 TCP Wrapper 592
modification de la
ffmpeg 234 URI 600
configuration 228
FLAC 234 cupsd.conf 589
crontab 227
graphique 231 administration web 592
syntaxe 228
iconv 234 contrôle d'accès 590
CrossOver 621
Image Magick 231 paremètres de base 590
cxinstallwizard 622
lame 233 cxinstallwizard 622
installation 622
librsvg 232
libtiff 232 de programmes 622
libwmf 232
CrossOver Office 134 D
MP3 233 CSS (Content Scrambling
Damn Small Linux 14
Netpbm 232 System) 159
DansGuardian 582
noms de fichiers 235 CUPS 587
configuration 583
OGG 233 administration 593 de Squid 585
oggenc 233 web 592 dansguardian.conf 583
PDF 235 cupsd.conf 592 dansguardianf1.conf 583
PostScript 235 ajouter une imprimante 594 filtre transparent 585
RAW 232 configuration 589 installation 583
recode 234 d'une imprimante 595 personnalisation des
SVG 232 contrôle d'accès 590 règles 584
texte 234 cupsd.conf 589 Date 307
TIFF 232 cupsomatic 596 D-BUS 444
unix2dos 234 environnement interactif 594 dbus-daemon 330
WMF 232 fichiers PPD 596 dd 199
convmv 235 gestion de la file 593 DDC 359
Cookies 83 HPLIP 594 Debian 11, 667
Copier-coller 48 imprimante réseau Firefox 80
Courrier électronique 95 client 598 Décodeur 158
chiffrement 100 serveur 597 Déconnexion 46
compte 96 imprimer 593 Gnome 52
Evolution 110 informations 594 KDE 68
Kontact 115 IPP 599 mode texte 47
local 98 lpadmin 594 delgroup 309
Linux Livre Page 674 Mardi, 23. septembre 2008 1:05 13

674 LINUX

deluser 309 fonctionnement interne 549 occupation avec baobab 63


Démarrage 45 nom d’hôte des clients 549 occupation avec KDE 73
automatique 64 dhcpcd 504, 554 optimiser 455
KDE 78 dhcpd 554 paramètres 455
bureau 45 adresses statiques 555 partitionnement
connexion automatique 46 arrêt 554 Voir Partitionnement
langue 45 configuration 555 PATA 404
mode texte 46 minimale 555 performances 455
Démarrage du système 459 démarrage 554 pilote 404
commandes, référence 663 dhcpd.conf 555 IDE 404
initrd 461 journalisation 556 libata 404
InitV 474 noms d’hôtes 555 SCSI 404
mode redémarrage 554 SATA 404
graphique 475 dhcpd.conf 555 SCSI 404
texte 475 digiKam 143 SMART 456
modules du noyau 460 disque dur 402 surveillance 456
noyau 460 ATA 404 Disquette 443
options d’amorçage du cache d’écriture 455 d’amorçage 469
noyau 472 économies d’énergie 456 formatage 443
processus 474 espace 184 GRUB 469
Démon 223 externe 443 magicdev 445
arrêt manuel 226 /etc/fstab 446 mtools 443
arrêter 477, 478 branchement à chaud 444 supermount 445
cron 227 configuration 444 Distribution 8
démarrage D-BUS 444 64 bits 26
démonter 446 commerciale 10
automatique 226
fonctionnement critères de choix 8, 11
manuel 225
manuel 445
démarrer 477, 478 disponibilité des mises à
GRUB 471
rechargement 226 hald 444 jour 9
redémarrage 226 ivman 444 histoire 21
suppression du démarrage monter 445 minimale 14
automatique 227 nom de périphérique 445 dmesg 334, 335, 502
depmod 485 performances 444 DMZ 566
devices.map 464 pmount 446 DNS 496, 541, 549
Devil Linux 14 subfs 445 configuration des clients 506,
devpts 418 submount 445 544, 553
df 184, 421 super-floppy 445
dnsmasq 550, 551
udev 444
dhcdbd 553 serveur local avec
UUID 446
dhclient 504, 553 hdparm 455 dnsmasq 551
dhclient.conf 553 IDE 404 dnsmasq 550
DHCP 496, 504, 541, 548, 554 pilote 404 /etc/hosts 550
adresse MAC 549 MBR 459 adresses statiques 552
avantages 548 nomenclature 405 arrêter 551
configuration des clients 544, libata 405 configuration des clients 553
553 pilote SCSI 405 configuration minimale 551
dhcpd 554 nomenclature dans démarrer 551
dnsmasq 550 GRUB 464 DNS 551
Linux Livre Page 675 Mardi, 23. septembre 2008 1:05 13

INDEX 675

DNS pour l’ordinateur spéciaux 203


local 552 chgrp 203
E
dnsmasq.conf 550 chmod 202, 204 e2label 431
journalisation 553 erreur dans les bits EA
noms d’hôtes 552 spéciaux 204 commandes, référence 657
redémarrer 551 groupe 202 Voir Attribut étendu
serveur de noms 551 Konqueror 73 eBox 302
Documentation 48 lire 202 Économie d’énergie 326
applications 48 ls 202
Écran
en français 50 modification 202, 204
Voir Moniteur
forums 49 du groupe 203
Écran virtuel 357
Nautilus 58
groupes de discussion 49 Éditeur de texte 176
NTFS 436
info 49 Elvis 176
prédéfinition 205
Linux Documentation Emacs 176, 263
propriétaire 202
Project 49 gedit 63
sticky bit 204
man 49 Jed 176
sur périphérique 203
paquetages 49 Jmacs 176
sur répertoire 203
wikis 49 Joe 177
umask 205
Dolphin 71
du 185 Jove 176
barres complémentaires 72
DVB 170 Kate 77
répertoire réseau 72
dvb-apps 170 KEdit 77
supports de données 72
dvbscan 170 KWrite 77
vues 71
dvb-util 170 nano 177
dos2unix 234 DVD par défaut 178
dpkg 348 /etc/fstab 442 pico 177
APT 348 chiffrement 22 Vi 176, 251
installation 349 éjection 442 Vim 176, 251
suppression 349 erreur 442 Edubuntu 668
syntaxe 349 formatage 201
efs 417
DRI 387 informations 201
Ekiga 79
droits d’accès 388 ISO 9660 441
El-Torito 441
DRM 22, 159 lecteur
Emacs 263
Droit d’accès 202, 308 nom de périphérique 441
magicdev 445 abréviations 273
ACL 206
Voir ACL montage 442 caractères spéciaux 281
affichage 183 supermount 445 casse 270
attributs étendus UDF 441 chargement de fichier 264
Voir Attribut étendu vidéo 443 conventions du clavier 267
bits lecture 163 copies de sauvegarde 265
d’accès 202 dvd+rw-format 201 correction des fautes de
setgid 204 dvd+rw-mediainfo 201 frappe 270
setuid 203 dvd+rw-tools 200 démarrage 264
Linux Livre Page 676 Mardi, 23. septembre 2008 1:05 13

676 LINUX

Emacs (suite) Émulation 624


déplacement du curseur 265, Encapsulated PostScript 152
F
268 Encodeur 158 faillog 315
écrasement de texte 270 env 323 fast-user-switch-applet 52
enregistrement 264 esd 332 FAT 435
de la position du EsounD 332 fdisk 410, 445
curseur 268 Espace disponible 421 augmentation de la taille
espaces et tabulations 270 ethtool 502 d’une partition 411
fenêtre 276 evince 63, 588 création d’une nouvelle
indentation 271 Evolution 110 partition 410
dans du texte continu 272 synchronisation avec un enregistrement des
insertion de texte 270 PDA 114 modifications 410
marquage de texte 269 EXIF 141, 144 exemple d’utilisation 411
mise en évidence de la exim 95 identifiant de partition 410
syntaxe 278 Explore2fs 432 nom des périphériques 445
mode exportfs 602 raccourcis clavier 413
d’édition 266, 277 exports 601
exemples 278 Fedora 11, 667
ext 416, 428
de saisie 281 disponibilité des mises à
ext2 35, 428
info 266 jour 9
conversion vers ext3 430
majeur 277 droits d’accès PAM 317
mineur 277 ext2online 432
Fenêtre de console 174
texte 273 ext3 35, 428
Voir Terminal
quitter 264 /etc/fstab 429
fetchmail 95
recherche de texte 273 accès depuis Windows 432
ffmpeg 234
expressions conversion depuis ext2 430
fg 214
rationnelles 274 création d’un système de
incrémentale 273 fichiers 429 Fichier
recherche et remplacement e2label 431 accès d’un processus 216
de texte 275 Explore2fs 432 affichage des droits
souris 267 ext2online 432 d’accès 183
suppression de texte 269 fragmentation 432 arborescence 181
système d’aide 266 fsck.ext3 431 archive 194
taille des tabulations 271 journalisation 429 bits
tampon 276 méthodes 429 setgid 204
texte continu 272 mke2fs 429 setuid 203
Unicode 278 nom de la partition 431 spéciaux 203
sous Gnu EMACS 279 paramètres avancés 431 caché 181
sous Xemacs 279 pilote ext sous Windows 433 caractères
E-mail 95 redimensionnement 431 accentués 181
chiffrement 100 resize2fs 431 joker pour les noms 185
compte 96 tune2fs 431 casse 181
Evolution 110 UUID 431 chgrp 203
Kontact 115 vérification du système de chmod 202, 204
local 98 fichiers 430 compression 194
MIME 97 intervalle 431 copie 184
signature 97, 100 ext4 35, 428 déplacement 183
Thunderbird 103 Extracteur de CD audio 163 droits d’accès 202
Linux Livre Page 677 Mardi, 23. septembre 2008 1:05 13

INDEX 677

espaces 181 création 643 freedb 162


exécutable 213 échanges 644 Fréquence d’horloge 325
fuser 216 monter 644 fsck.ext3 431
gestion 182 QEMU 643 fsck.reiser4 434
Voir Gestion des fichiers et RAW 643 fsck.reiserfs 434
répertoires redimensionner 644 F-Spot 145
groupe 202 swap 644 fstab
lien 188 système de fichiers 643 Voir /etc/fstab
dur 188 Fichier ISO fsview 73
limite du nombre de dd 199 FTP 243
caractères dans le nom 181 génération 198 accès avec Nautilus 60
liste 183 mkisofs 198 clients 245
modification
montage 199 commandes 245
des droits d’accès 204
Nautilus 60 ftp 244
du groupe 203
test 199 exemple de session 244
périphérique 211
Fichier texte Konqueror 74
propriétaire 202
affichage 176 FUSE 419
recherche 189
avec Nautilus 58 commandes, référence 658 ntfsmount 438
renommage 183, 187 éditer 176 Fuseau horaire 39, 307
avec KRename 77 file-roller 63 glibc 308
avec sed 187 Filtrage web fuser 216
suppression 184 DansGuardian 582
avec Konqueror 73 Squid 577
avec Nautilus 59 Filtre de paquets 560
G
transfert find 191 gaim 79
avec BitTottent 248 combiner avec grep 192 gconf-editor 64
avec FTP 243 exemples 191 gdmsetup 64
avec scp 241 Firefox 79 gedit 63
par rsync 247
MIME 84 Gentoo 12
par SFTP 246
plugins 88 Gestion de bases de données
par wget 246
type 183 XPI 85 (Base) 130
Fichier caché 181, 187 xulrunner 85 Gestion de l’énergie 326
affichage Firewire 328 Gestion des fichiers
dans Gnome 58 flac 234 commande, référence 657
dans Konqueror 73 FlashBlock 92 Gestion des fichiers et
Fichier, commandes, Fluendo 159 répertoires 182
référence 657 Fonctions d’économie archive
Fichier d’échange 450 d’énergie 326 Voir Archive
création 451 Font 321 cd 182
Fichier journaux 334 Format maildir 100 compression
Fichier image 643 Format mbox 99 Voir Compression
à partir d’une partition 644 Formatage 30 copie
accès au système de framebuffer 377 de fichier 184
fichier 644 free 326 de répertoire 184
Linux Livre Page 678 Mardi, 23. septembre 2008 1:05 13

678 LINUX

Gestion des fichiers et ggv 588 evince 63, 588


répertoires (suite) GhostScript 589 fast-user-switch-applet 52
cp 184 filtre 589 file-roller 63
création d’un répertoire 183 ghostview 588 gconf-editor 64
déplacement GID 311 gdmsetup 64
d’un fichier 183 GIF (format) 151 gedit 63
d’un répertoire 183 Gimp 149 gestionnaire de fichiers 56
dans l’arborescence 182 EPS 152 GnomeBaker 63
df 184 impression 154 gnome-beagle-search 193
du 185 PostScript 152 gnome-control-center 62
espace disque 184 Gimp-Print 589 gnome-cups-manager 595
lien 188 GimpShop 150 gnome-help 178, 179
liste des fichiers 183 gksu 220 gnome-keybindings-
ln 188 gksudo 221 properties 65
ls 183 glibc gnome-keyboard-
mkdir 183 fuseau horaire 308 properties 65, 381
mv 183 GLX 387 gnome-search-tool 58
recherche de fichiers glxgears 389 gnome-terminal 62
Voir Recherche de fichiers glxinfo 388 gnome-volume-
renommage GMT (Greenwich Mean properties 444
d’un fichier 183 Time) 307 gparted 415
d’un répertoire 183 gnash 92 gtk-window-decorator 393
rm 184 Gnome 51 gucharmap 48, 395
rmdir 183 alacarte 54 impression 595
sauvegarde 196 applet 54 info 179
suppression liste des fenêtres 55 installation de polices 398
d’un répertoire 183 menu 54 liste des fenêtres 55
de fichier 184 zone de notification 55 man 178
de répertoire 184 baobab 63 menu 54
Gestion des processus Brasero 63 Nautilus
commandes, référence 660 bureau 52 Voir Nautilus
Gestion des utilisateurs et applet 54 programmes par défaut 64
groupes espace de travail 55 raccourcis clavier 48, 65
commandes, référence 660 liste des fenêtres 55
recherche de fichier 58
Gestionnaire d’amorçage menu 54
tableau de bord 53 seahorse 63
xfs 434 Serpentine 63
zone de notification 55
Gestionnaire de bureau 51, 358 zone de travail 53 surveillance du système 65
Gestionnaire de fenêtres 358 changement d’utilisateur 52 tableau de bord 53
KWin 70 clavier 65 terminal 62
Gestionnaire de fichiers client Samba 606 zone de notification 55
Dolphin 71 comparaison avec KDE 51 zone de travail 53
Gnome 56 configuration 62, 64 Gnome Office 134
Konqueror 72 connexion 52 GnomeBaker 63
Nautilus 56 automatique 63 gnome-beagle-search 193
getfacl 207 déconnexion 52 gnome-cd 162
getfattr 208 démarrage automatique 64 gnome-control-center 62
GFS 419 espace de travail 55 gnome-cups-manager 595
Linux Livre Page 679 Mardi, 23. septembre 2008 1:05 13

INDEX 679

gnome-help 178, 179 extension RockRidge 198 fallback 465


gnome-keybindings- génération d’un fichier fichiers de configuration 463
properties 65 ISO 198 gfxmenu 465
gnome-keyboard- GnomeBaker 63 grub.conf 463
properties 65 growisofs 200 hiddenmenu 465
gnome-language-selector 321 identifiant SCSI du image de démarrage 465
gnome-photo-printer 136 graveur 197 installation 468
gnome-pilot 114 K3b 77 sur un disque USB 470
gnome-ppp 531 sur une disquette 469
mkisofs 198 ligne de commande 462
gnome-search-tool 58
Nautilus 60 menu
gnome-system-monitor 215
nom du périphérique 197 dysfonctionnement 471
gnome-system-tools 309
Serpentine 63 modifier 462
gnome-terminal 62, 174
wodim 199 pas d’affichage 471
gnome-volume-manager 330
grep 192 menu.lst 462, 463, 464
gnome-volume-properties 444
combiner avec find 192 mot de passe 465
GNU 20 nomenclature des disques et
GNU Emacs groupadd 310
partitions 464
Voir Emacs 263 Groupes 312
nouveau noyau 490
gnumeric 134 administration 309
options du noyau 462, 467
Google Desktop 193 affichage 205 paramètres du noyau 460
gparted 415 changement 205 password 465
GParted Live 408 commandes, référence 660 plantage 471
gpasswd 316 groups 205 problèmes 471
GPG 102 mot de passe 316 réinstallation 468
Kgpg 77 newgrp 205 splashimage 465
gphoto2 136 groups 205 stage1 460
GPL 18, 20 stage1_5 460
growisofs 200
versions 18 stage2 460
GRUB 459
gpm 175, 306 structure 460
actualisation automatique de
Graphismes 3D 387 test 468
la configuration 463
bureau 389 timeout 465
aide 462
tester 388 update-grub 463
Gravure 197 color 465
USB 470
Brasero 63 commandes interactives 462
utilisation 461
CD 199 complétement versions 459
cdrdao 199 automatique 462 Xen 645
cdrecord 199 configuration 461, 463 xfs 434
commandes, référence 659 tester 468 grub.conf 463
dd 199 couleur 465 GStreamer 332
DVD 200 default 465 gThumb 139
dvd+rw-format 201 démarrer gtk-window-decorator 393
dvd+rw-mediainfo 201 Linux 466 gucharmap 48, 395
dvd+rw-tools 200 Windows 467 gunzip 194
extension Joliet 198 devices.map 464 Gutenprint 589
Linux Livre Page 680 Mardi, 23. septembre 2008 1:05 13

680 LINUX

gv 588 Image Magick 231 kprinter 75


gvim convert 231 lpadmin 594
Voir vim identify 232 lpc 594
gzip 194 mogrify 231 lpinfo 594
IMAP 97 lpoptions 594
Impress (OpenOffice) 127 lpq 593
H Impression lpr 588, 593
hald 329, 444 chaîne 589 lprm 593
hal-device-manager 325 compatibilité 597 lpstat 594
hdparm 455 HP LaserJet 597 périphérique 588
configuration pilote 595, 597
Helix Player 166
d'une imprimante 595
help 178 Samba 615
manuelle 596
Heure 307 PostScript 588
CUPS 587
HFS 417 Samba 615
détection automatique 596
HFS+ 417 system-config-printer 595
fichier
Hibernate 326 système d'impression 588
PostScript 588
hostname 508 PPD 596 TurboPrint 595
hosts.allow 563 filtre 589 Imprimante, commandes,
NFS 602 de documents 589 référence 663
hosts.deny 563 gestion de la file 593 Inbox 98
NFS 602 GhostScript 589 info 178, 179
Gimp-Print 589 Emacs 179
Hotplug 329
gnome-cups-manager 595 Gnome 179
HPFS 417
Gutenprint 589 KDE 179
HPLIP 594
HPLIP 594 raccourcis clavier 179
hp-toolbox 594
hp-toolbox 594 init 474
hwbrowser 325
imprimante /etc/init.d 477
hwclock 307 à jet d'encre 595 /etc/rc.d 477
GDI 595 chkconfig 478
I laser 595
compatibilité HP 597
Debian 477
locale 596 Fedora 478
i.Link 328
PCL 595 gestion 478, 479
i18n 319
photo 595 inittab 474
Iceweasel 80
PostScript 595 insserv 479
ICMP 494, 560
réseau 597, 598 invoke-rc.d 477
iconv 234 AppSocket 598 niveau d’exécution 474
ID3 160 cupsd.conf 597 Red Hat 478
IDE 404 IPP 598, 599
script rc
lecteur de bandes 333 Linux/Unix 598
LPD 599 arrêter 477, 478
pilote 404 démarrer 477, 478
IEEE 1394 328 Novell 598
SMB 599 nomenclature 477
ifcfg 511 paramètres 477
socket 598, 599
ifconfig 237, 501 Windows 598 scripts rc 477
ifrenew 512 Windows 595 service 478
iftab 510 informations 594 SUSE 478
ifup 512 KDE 75 update-rc.d 478
Linux Livre Page 681 Mardi, 23. septembre 2008 1:05 13

INDEX 681

initrd 461, 484, 490 clavier 28 Internet 531


contenu 491 configuration ADSL 531
créer un fichier 490 d’un réseau Wi-Fi 38 bases 493
mkinitramfs 491 de base 37 iptables 576
mkinitrd 491 de l’accès à Internet 39 modem 531
inittab 474, 475 du mode graphique 39 passerelle 543
bootwait 476 du réseau 38 RNIS 531
ctrlatltdel 476 création des utilisateurs 37 sécurité 557
initdefault 476 démarrage 27 Internet Explorer 620
once 476 émulation du 3e bouton 28 ies4linux 620
respawn 476 fuseau horaire 39 sous Wine 620
sysinit 476 Gnome et KDE 37 invoke.rc 225
wait 476 langue 39 reload 226
InitV 474 LVM 35 restart 226
/etc/init.d 477 messages du noyau 28 start 225
/etc/rc.d 477 mises à jour 39 stop 226
chkconfig 478 mot de passe root 37 invoke-rc.d 477
Debian 477 outils de développement 37 IP 559
Fedora 478 paquetages 36 adresse 495, 496, 559
gestion 478, 479 par le réseau 41 conflit d’adresse 545
inittab 475 pare-feu 39 filtre de paquets 560
insserv 479 partition ICMP 560
invoke-rc.d 477 d’amorçage 33 ports 559
iptables 576 d’échanges 34, 35 dangereux 574
journalisation 337 de données 34 privée 545
niveau d’exécution 474 système 33 protocole 560
partitionnement 31 TCP 560
Red Hat 478
nombre de partitions 33 UDP 560
scripts 476
premiers paramètres 27
rc 477 valide sur le réseau
arrêter 477, 478 prérequis 25
mondial 545
démarrer 477, 478 problème 41
iptables 567
nomenclature 477 RAID 35
blocage de ports
paramètres 477 réduction de la partition
dangereux 574
service 478 Windows 32
bloquer les connexions
SUSE 478 SELinux 39 externes 571
update-rc.d 478 services réseau 37 chaîne 569
Xen 656 souris 28 forward 569
Inkscape 150 sur un disque dur externe 40 input 569
insmod 482 système de fichiers 30, 35 output 569
insserv 227, 479 taille des partitions 35 postrouting 569
Installation 25 Interface 495 prerouting 569
AppArmor 39 réseau 495 DHCP 572
chargeur d’amorçage 40 ifconfig 237 exceptions pour Squid 581
choix des systèmes de liste 237 fonctionnement 569
fichiers 35 Internationalisation 318 InitV 576
Linux Livre Page 682 Mardi, 23. septembre 2008 1:05 13

682 LINUX

iptables (suite) Journalisation 334,558 KEdit 77


Internet 576 amorçage 335 kerry 193
journalisation 575 iptables 575 kghostview 588
mascarade 546 système de fichiers 426 Kgpg 77
noyau 547 JPEG (format) 151 khelpcenter 178, 179
ordre des règles 570 Klipper 77
kmenuedit 78
passerelle Internet 573 K Konqueror
PPP 576
K3b 77 Voir Konqueror
PPTP 572
kacpid 326 konsole 76
remise à zéro 569
kapmd 327 KPDF 588
sécuriser un client sans- kprinter 75
Kate 77
fil 571 KRename 77
KAudioCreator 165
sécuriser un client VPN 572 KWalletManager 76
KCharMap 48
serveur mandataire KWin 70
kcharselect 395
transparent 581 KWrite 77
kcmshell 75, 77
services 573 liste des tâches 70
KDE 67
table 568 administration distante 78 man 178
filter 569 Ark 76 menu 69
mangle 569 boîte à miniatures 71 Okular 77, 588
NAT 569 bureau 68 Plasma 69
IPv6 499 plasmoïdes 69
changement d’utilisateur 68
IRC 79 client Samba 606 programmes par défaut 78
ISO 9600 441 comparaison avec Gnome 51 qtparted 415
ISO 9660 417 configuration 75, 78 raccourcis clavier 48, 78
El-Torito 441 connexion 68 renommage de fichiers 77
Joliet 441 automatique 77 souris 67
Rockridge 441 déconnexion 68 supports de données 71
ISO-10646 (jeu de démarrage automatique 78 systemsettings 75
caractères) 319 Dolphin tableau de bord 69
ISO-8859, jeu de caractères 319 Voir Dolphin terminal 76
Istanbul 162 espaces de travail 70 version 4.0 67
ivman 444 fsview 73 zone de travail 69
gestionnaire kdesu 220
iwlist 524
de fenêtres 70 kde-window-decorator 393
de fichiers 71 KEdit 77
J gravure 77 kerry 193
icône de connexion 78 kghostview 588
Java, plugins 92
impression 75, 595 Kgpg 77
Jeu info 179 khelpcenter 178, 179
Cedega 622 installation de polices 398 kill 217
de caractères 318, 319 K3b 77 killall 217
jffs 419 Kate 77 KimDaBa 146
jfs 417 KCharMap 48 kioslave 330
Joe 177 kcharselect 395 KIPI 144, 146
raccourcis clavier 177 kcmshell 75, 77 Klipper 77
Joliet 198, 441 kde-window-decorator 393 klogd 334
Linux Livre Page 683 Mardi, 23. septembre 2008 1:05 13

INDEX 683

KMail 115 LAN 493 Lien 188


kmenuedit 78 LANG 322 différence entre lien
kmod 481 Langue 39 symbolique et lien dur 188
Knoppix 12 problème 44 dur 188
KOffice 134 LC_ALL 322 exemple 188
kolourpaint 150 symbolique 188
LC_COLLATE 322
Konqueror 72, 86 LILO 461
LC_CTYPE 322
adresses spéciales 74 xfs 434
LC_MESSAGES 322
afficher les fichiers cachés 73 Linux
droits d’accès 73 LC_MONETARY 322
LC_NUMERIC 322 adaptation au multimedia 16
extensions 87
LC_PAPER 322 arrêt 47
FTP 74
complexité 16
gestionnaire de fichiers 72 LC_TIME 322
configuration 301
images d’aperçu 73 Lecteur CD/DVD
Java 87 coût 16
ATAPI 404
navigateur web 74 démarrage 45, 459
éjection 442
occupation du disque dur 73 distributions 8
erreur 442
partage Windows 74 histoire 20
nom de périphérique 441
SSH 74 installation 25
nomenclature 406
suppression de fichier 73 noyau 6
virtualisation 625
vues 72 prise en charge du matériel 7
Lecteurs de bandes 333
konsole 76, 174 programmes Windows 17
Lecture de CD audio 162
Kontact 115 rapidité 14
Konversation 79 Lecture de DVD vidéo 163
ressources nécessaires 15
Kopete 79 less 176 sécurité 15
KPDF 588 raccourcis clavier 176 stabilité 16
KPhotoAlbum 146 LGPL 18 versions 6
kppp 532 libata 404 Liste de contrôle d’accès
kprinter 75 nomenclature des disques Voir ACL
KQEMU 634 durs 405 ln 188
KRename 77 libdbus 329 loadkeys 305
krita 150 libmad 164 locale 323
ksysguard 215 libogg 164 localhost 494, 505
Kubuntu 668
librsvg 232 Localisation 318
KVM 632, 635
libtiff 232 locate 190
modules noyau 635
libvorbis 164 base de données 190
KWalletManager 76
KWin 70 libwmf 232 updatedb 190
KWrite 77 Licence 17 Logiciel
autres licences libres 19 libre 668
conflit avec les logiciels mises à jour 558
L propriétaires 19 logrotate 335
l10n 319 GPL 18 loop 419
lame 160, 233 LGPL 18 loopback (interface) 495, 498
Linux Livre Page 684 Mardi, 23. septembre 2008 1:05 13

684 LINUX

lpadmin 594 pvcreate 453 Matériel


lpc 594 redimensionnement 454 commandes, référence 663
lpinfo 594 versions 452 prise en charge 7
lpoptions 594 VG 452 mbox, format 99
lpq 593 création 453 MBR 40, 459
lpr 588, 593 vgchange 454 chargeur d’amorçage 459
lprm 593 vgcreate 453 Windows 460
lpstat 594 volume logique 452 Mémoire d’échange 450
ls 183 création 454 taille 450
bits spéciaux 204 volume physique 452 Memtest86 326
droits d’accès 183 création 453 Menu
lvreduce 455 Gnome 54
résultats 183
lynx 88 KDE 69
lshal 325
menu.lst 462, 463, 464
lshw 325
lsmod 483 M color 465
default 465
lsof 560
M3U 161 fallback 465
lspci 328 MAC 549 gfxmenu 465
lsusb 328 MAC (adresse) 495 hiddenmenu 465
lvcreate 454 Machine virtuelle 624 password 465
lvextend 454 Macromedia Flash 90 splashimage 465
LVM 451 madplayer 164 timeout 465
arrêt 454 MadWifi 519 Message du noyau
avantages 451 magicdev 445 pendant l’installation 28
configuration 453 mail 99 Messagerie instantanée 79
création d’un système de maildir, format 100 Microsoft, polices 398
fichiers 454 man 178 MIME, Firefox 84
extension physique 453 contextes 178 Mise en veille 326
groupe de volumes 452 Gnome 178 mkdir 183
création 453 KDE 178 mkdosfs 436
identifiant de partition 453 Konqueror 179 mke2fs 429
inconvénients 451 Manchot 21 mkfs.ext2 429
initialisation 453 Mandriva 12, 667 mkfs.ext3 429
LV 452 Mascarade 541, 545 fichier image 643
création 454 activation automatique 547 mkfs.reiser4 433
lvcreate 454 désactivation mkfs.reiserfs 433
lvextend 454 automatique 547 mkfs.xfs 435
lvreduce 455 désactiver 547 mkinitramfs 491
mise en place 453 FTP 548, 574 mkinitrd 491
partition système 452 iptables 546 mkisofs 198
PD 453 principes 545 exemples 198
PE 453 problèmes 547 mknod 211
périphérique physique 453 Masque de sous-réseau 495 mkntfs 436
PV 452 Master Boot Record mode texte 46
création 453 Voir MBR modeline 371
Linux Livre Page 685 Mardi, 23. septembre 2008 1:05 13

INDEX 685

Modem 531 gestion 482 groupe 316


arrêter 537 initrd 484, 490 oublié 315
authentification 536 insmod 482 root 314
chat 536 iptables 547 mount 421, 445
démarrer 537 kmod 481 exemples 422
externe 532 KVM 635 fichier image 644
Fedora 537 liste 483 options 425
gnome-ppp 531 lsmod 483 syntaxe 422
interne 532 modinfo 483 MP3 160
kppp 532 modprobe 482 décodeur 164
network-admin 531 modprobe.conf 485 lecteur 164
pppd 535 modprobe.conf.dist 485 MPEG-4 161
Red Hat 537 modprobe.conf.local 485 mpg123 164
scanModem 534
modprobe.d 485 mpg321 164
USB 532
modules.dep 485 MPlayer 165
winmodem 534
non GPL 484 MTA (Mail Transfer Agent) 95
Modes VGA 377
Red Hat 485 mtools 443
modinfo 483
rmmod 483 MTP 159
modprobe 482, 501
SUSE 485 MUA (Mail User Agent) 95
modprobe.conf 485
Ubuntu 485 mutt 95, 99
alias 485
blacklist 486 version 482 mv 183
exemple 486 versionnage 482
include 486 modules.dep 485 N
install 486 modutils 485
options 486 Moniteur 358 Namesys 433
remove 486 balayage nano 177
syntaxe 485 horizontal 358 raccourcis clavier 177
modprobe.conf.dist 485 vertical 359 NAT 541, 545
modprobe.conf.local 485 comparaison cathodique/ principes 545
modprobe.d 485 LCD 359 Nautilus 56
Module 481 DDC 359 adresses spéciales 59
binaire 484 débit vidéo 359 affichage de fichiers
chargement automatique 481 fréquence 359 cachés 58
commandes, référence 663 de pixels 359 barre
compiler 487 horizontale 359 d’adresse 57
outils de verticale 359 latérale 57
développement 487 HSync 358 connexion permanente à un
configuration 483 VSync 359 répertoire réseau 61
Debian 485 Mot de passe 313 copie
dépendances 484 changer 314 de CD 60
depmod 485 gestion avec de fichiers 57
Fedora 485 KWalletManager 76 démarrage 56
fichier .map 485 gestion avec seahorse 63 déplacement de fichier 57
Linux Livre Page 686 Mardi, 23. septembre 2008 1:05 13

686 LINUX

Nautilus (suite) root 602 modulaire 489


droits d’accès 58 rpc.mountd 601 modules 460, 481
gestion de fichiers ISO 60 utilisateurs 602 gestion 482
gravure de CD/DVD 60 nfsd 601 versionnage 482
mode spatial 57 nfsd4 601 versions 482
NIC 495 monolithique 489
navigation 57
nice 218 options d’amorçage 467, 472
ouverture d’un fichier 57
niveau d’exécution 474 ACPI 473
partages Windows 60 APM 473
recherche de fichier 58 inittab 474
emergency 472
par défaut 475
répertoire init 472
nmap 560
FTP 60 initrd 472
nmap-frontend 560 lapic 473
réseau 60
supports externes 59 Noatun 166 maxcpus 473
nodeadkeys 305 noapic 473
suppression de fichier 59
Nom noht 473
Navigateur, Konqueror 74
d’hôte 494, 508 noinitrd 472
Navigateur Internet 79
d’utilisateur 311 nolapic 473
Firefox 79 noresume 474
de domaine 494
Konqueror 86 nosmp 473
Novell 12
lynx 88 pci 472
disponibilité des mises à
NBNS 603 quiet 473
jour 9
NCPFS 418 reboot 473
Noyau 6, 481
NDIS 519 resume 474
caractéristiques 6 ro 472
NetBIOS 603 code source 488 root 472
NBNS 603 commandes, référence 663 single 472
Netpbm 232 compilation 487, 490 SMP 473
netstat 560 outils de syntaxe 472
options 560 développement 488 outils de configuration 489
network-admin 531, 533, 553 compiler un module 487 paquet IP 567
NetworkManager 526 composants 489 paramètres d’amorçage 460
newaliases 99 configuration 487, 489 serveur mandataire
News Usenet 108 existante 489 transparent 580
démarrage 460 threads 224
NFS 418, 447, 600
fichier d’en-tête 487 transfert d’IP 546, 580
/etc/exports 601
histoire 20 version 482
/etc/fstab 448
initrd 490 versionnage des modules 482
configuration 601
installation 490 Xen 648
démarrage 602 iptables 547 NTFS 417, 436
exportfs 602 kmod 481 /etc/fstab
hosts.allow 602 KVM 632, 635 ntfs-3g 440
hosts.deny 602 make config 489 pilote ntfs 438
installation 601 make gconfig 489 pilote ntfsmount 439
mount 448 make menuconfig 489 Captive 440
NFS4 602 make oldconfig 489 droits d’accès 436
nfsd 601 make xconfig 489 flux 440
nfsd4 601 mascarade 546 formatage 436
portmap 601 messages 335 mkntfs 436
Linux Livre Page 687 Mardi, 23. septembre 2008 1:05 13

INDEX 687

ntfs-3g 439 macros 132 Paragon 440


ntfsmount 438 numérotation des titres 124 Paravirtualisation 624
ntfsprogs 438 polices 125 prise en charge matérielle 624
outils 438 styles 122, 129 Xen 638
Paragon 440 table des matières 125 Pare-feu 564
pilotes 437 tableau 123 blocage de ports
Captive 440 vérification dangereux 574
ntfs 437 orthographique 124 bloquer les connexions
ntfs-3g 439 vue des sources de externes 571
ntfsmount 438 données 132 DHCP 572
Paragon 440 Writer 122 distribution 565
streams 440
OpenPGP 102 DMZ 566
ntfs-3g 440
openSUSE 13, 667 iptables 567
flux 440
disponibilité des mises à mandataire cache 575
streams 440
jour 9 mascarade 574
streams_interface 440
OpenXML 120 ordinateur
ntfsmount 438
OSS 331 local 566
ntfsprogs 438
Outlook Express 100 personnel 564
Numérisation 137
passerelle Internet 573

O P PPTP 572
remise à zéro 569
PAM 316 réseau local 565
OASIS 120
droits d’accès 317 sécuriser un client
OCR 148
Paquetages 339 sans fil 571
OFS 419
administration VPN 572
Ogg Vorbis 161
centralisée 340 services 573
ogg123 164
alien 355 Squid 575
oggenc 233
APT Partage Windows
Okular 77, 588
Voir APT accès avec Nautilus 60
OpenDocument 120 choix à l’installation 36
OpenGL 387 Konqueror 74
commandes, référence 662 parted 413
OpenOffice 119 conversion 355
alternatives 133 création d’une partition 414
DEB 348
Base 130 démarrage 413
APT
Calc 126 exemple d’utilisation 414
Voir APT
champ 124 interfaces graphiques 415
documentation 49
coupure des mots 124 LVM 453
dpkg
export PDF 125, 129 Voir dpkg mkpart 414
formats de fichiers 120 formats 339 rm 414
image 124 groupes préconfigurés 36 Parted Magic 408
Impress 127 système Partition 28, 403
impression 125, 127, 129 de gestion 339 /etc/fstab 423
index lexical 125 RPM amorçage 33
Java 119 Voir RPM augmentation de taille 411
Linux Livre Page 688 Mardi, 23. septembre 2008 1:05 13

688 LINUX

Partition (suite) Partitionnement 28, 408 création d’un fichier 211


création 410, 414 augmentation de la taille droits d’accès 203
d’échanges 34 d’une partition 411 fichier 211
df 421 compatibilité des mknod 211
données 34 programmes 409 nom du graveur 197
échange 450 création d’une nouvelle numéro
espace disponible 421 partition 410 majeur 211
fdisk 410 mineur 211
formatage 30
GParted Live 408 numéros 211
identifiant 410
identifiant d’une type d’accès 211
monter udev 211
partition 410
/etc/fstab 423 nombre maximal de PGP 102
manuellement 422 partitions 29 Phonon 333
mount 421 Photo numérique 136
Parted Magic 408
nom 30 réduction de la partition pico 177
nombre maximal 29, 405 Windows 32 raccourcis clavier 177
nomenclature règles de base 408 Pidgin 79
dans GRUB 464 système de fichiers 35 pidof 216
identifiants 407 SystemRescueCD 408 Pilote
par chemin 407 taille des partitions 35 ati 372
par libellé 407 utilitaire 29 ATI/AMD 360, 372
par UUID 407 Windows Vista 408 atimisc 372
numérotation 406 Passerelle 496, 543 carte graphique 360
par chemin 407 comparaison avec un routeur IDE 405
par identifiant 407 matériel 544 Intel 360, 374
par libellé 407 configuration des clients 503, non libre 360
par UUID 407 508, 548 nv 375
parted 413 installation 543 NVIDIA 360, 375
schéma de nommage MSS clamping 546 nvidia 375
hd-* 31 pare-feu 573 noyau 376
sd-* 30 sécurité 546 nvidia-xconfig 375
swap 450 PATA 404 TwinView 376
système 33, 403 Pavé tactile 383 r128 372
pccardctl 329 radeon 372, 373
de fichiers 30, 35
taille 35 PC-Cards (PCMCIA) 329 radeonhd 372, 374
PCI 328 VIA 360
test de cohérence 403
PCM (volume) 332 pine 95, 99
type 29
PCMCIA 329 ping 238
Partition d’amorçage 33
PDA 114 Pluggable Authentication
Partition d’échange 34, 450 Modules 316
PDF
/etc/fstab 450 Plugins 88
Adobe Reader 89
création 451 Adobe Reader 89
evince 63
formatage 35 Okular 77 Flash 90
limite de taille 34 Périphérique Java 92
système de fichiers 35 accès RealPlayer 166
Partition système 33, 403 bloc 211 pmount 446
LVM 452 caractère 211 PNG (format) 152
Linux Livre Page 689 Mardi, 23. septembre 2008 1:05 13

INDEX 689

Polices 321 PPP Processus 213


anti-aliasing 399 ip-down.local 576 accès à un fichier 216
anti-crénelage 399 iptables 576 bg 214
configuration 399 ip-up.local 576 commandes, référence 660
bitmap 394, 396 pppd 537 consolehelper 220
configuration arrêter 537, 538, 539 crontab 227
sans serveur de fontes 397 authentification 536 d’arrière fond 214
console texte 305 chat 536 d’avant-plan 214
fc-list 394 démarrer 537, 538, 539 démarrer
freetype 394 Fedora 537 automatiquement 227
installation 398 modem 535 démon 223
GNOME 398 options 536
KDE 398 fg 214
Red Hat 537 fuser 216
manuelle 398
polices Microsoft 398 pppoe 533, 537 gksudo 221
Microsoft 398 carte réseau 537 gnome-system-monitor 215
nomenclature 395 pppd 537 hiérarchie 216
OpenType 396 pppoeconf 534 identifiant 216
répertoires 394 PPTP 538 kill 217
Speedo 396 carte réseau 538 killall 217
TrueType 396 pppd 538 ksysguard 215
Type1 394, 396 pptpconfig 538
limite de taille 217
Unicode 396 pptpconfig 538
liste 214
URW 396 Prérequis d’installation
nice 218
vectorielles 394 espace disque 25
PID 216
X 394 matériel 25
pidof 216
xslfonts 394 mémoire vive 25
priorités 218
POP 97 processeur 25
ps 214
Portable, batterie 326 Présentations (Impression) 127
pstree 216
portmap 601 Presse-papiers, Klipper 77
redirections 218
Ports (TCP/IP) 494 Problème
renice 218
postfix 95 clavier 42, 43
sous une autre identité 219
PostScript 588 démarrage
Evince 588 de l’ordinateur 43 su 219
evince 63 de X 43 sudo 220
ggv 588 langue 44 tâche de fond 214
ghostview 588 Linux ne démarre pas 43 terminer 217
gv 588 matériel 42 threads du noyau 224
kghostview 588 plantage 42 top 215, 217
KPDE 588 unable to mount root fs 42 tubes 218
Okular 77, 588 Windows ne démarre pas 43 ulimit 217
ps2pdf 588 proc 418 xkill 217
PPD 596 Processeur 325 procmail 95
cupsomatic 596 32 et 64 bits 26 Programmation de macros
ppds.dat 596 virtualisation 625 (OpenOffice) 132
Linux Livre Page 690 Mardi, 23. septembre 2008 1:05 13

690 LINUX

Programme racine 181 fsck.reiserfs 434


commandes, référence 660 rc label 434
démarrer 213 reload 226 mkfs.reiserfs 433
par défaut restart 226 redimensionnement 434
Gnome 64 start 226 resize_reiserfs 434
KDE 78 stop 226 UUID 434
Proxy 83 Real Audio 161 vérification du système de
ps 214 RealPlayer 166 fichiers 434
PS (format) 152 Recherche de fichiers 189 reiserfstune 434
ps2pdf 588 Beagle 192 renice 218
PSD (format) 151 commandes, référence 658 Répertoire
pstree 216 find 191 . 182
PTP (appareils photo) 136 find et grep 192 .. 182
pumount 446 Google Desktop 193 arborescence 209
pump 504 grep 192 bit setgid 204
pvcreate 453 locate 190 changement de répertoire
Nautilus 58 courant 182
Q Tracker 193 chgrp 203
whereis 189 chmod 202
QEMU 632 which 189 copie 184
clavier 633 recode 234 courant 182
fichier image 632 Reconnaissance de texte 148 création 183
format 632 Red Hat 12, 668 déplacement 183
KQEMU 634 droits d’accès PAM 317 droits d’accès 203
KVM 632 Red Hat Enterprise Linux FTP, accès avec Nautilus 60
lecteur CD/DVD disponibilité des mises à gestion
fichier ISO 633 jour 9 Voir Gestion des fichiers et
mémoire vive 633 Redirection 218, 289 répertoires
périphérique d’amorçage 633 entrée standard 289 parent 182
options 633 erreur standard 289 personnel 182, 310, 311
qemu-img 632 sortie standard 289 renommage 183
raccourcis clavier 633 tee 290 réseau
réseau 633 tubes 290 connexion permanente
test 633 nommés 290 avec Nautilus 61
qemu-img 632 mkfifo 290 Dolphin 72
QEMY reiser4 416, 433 sticky bit 204
KVM 635 /etc/fstab 433 suppression 183, 184
qmail 95 création d’un système de umask 205
Qt 67 fichiers 433 Réseau
qtparted 415 fsck.reiser4 434 /etc/services 562
mkfs.reiser4 433 accessibilité de localhost 238
vérification du système de accessiblité du réseau
R fichiers 434 local 238
Raccourci clavier 47 reiserfs 416, 433 adresse IP 559
bureau 3D 390 /etc/fstab 433 analyse 559
Gnome 65 création d’un système de bases 493
KDE 78 fichiers 433 BitTorrent 248
Linux Livre Page 691 Mardi, 23. septembre 2008 1:05 13

INDEX 691

cache web 577 sécurité 557 installation d’un


clients 544 serveur mandataire 577 programme 342
commandes, référence 662 SFTP 246 mise à jour de
configuration SHFS 242 programmes 342
à l’installation 38 Squid 577 nommage des
du contrôleur Ethernet 500 ssh 240 paquetages 340
contrôle parental 577 TCP Wrapper 563 problèmes 341
DansGuardian 582 dépendances 344
test
destinée d'un paquet IP 568 rpm 340
de l’accès à Internet 238
diagnostic 237 Yum
de la passerelle 238
disponibilité du serveur de traceroute 239 Voir Yum
noms 238 traitement local 568 Yumex 347
DMZ 566 rpm 340
UDP 560
état 237 exemples 342
virtualisation 626
filtrage informations sur les
wget 246
des entrées 568 paquetages 342
xinetd 561
des sorties 568 installation d’un
des transferts 568 Réseau local 493
programme 342
web 577 configuration 493
mise à jour de
filtre Réseau sans fil 512
programmes 342
de paquets 560 sécurité 575
problèmes de
web 582 resize_reiserfs 434
FTP 243 dépendances 344
resize2fs 431
ICMP 560 syntaxe 342
Rhythmbox 167 rsync 196, 247
ifconfig 237 rm 184
IP 559 exemples 248
rmdir 183
iptables 567 rmmod 483
liste des interfaces 237
RNIS 531 S
lsof 560
network-admin 533 S/MIME 102
netstat 560
RockRidge 198, 441 Samba 603
NFS 600
root 45, 175, 219, 315 CIFS 418, 606
nmap 560
mot de passe 37 client 606
parcours dans le noyau 567
Route 239 configuration minimale 607
pare-feu 564, 573
ping 238 commande 503 démarrage 608
ports 559 Routeur matériel droits d'accès 604
actifs 560 comparaison avec une état 609
dangereux 574 passerelle 544 exploration du réseau 604
postroutage NAT 568 rpc.mountd 601 fonctionnalités 605
protocole IP 560 RPM 340 Gnome 606
routage 567 architecture des impression 615
route 239 paquetages 340 pilote 615
rsync 247 capacités 343 imprimante partagée 615
Samba 603 informations sur les KDE 606
scp 241 paquetages 342 NBNS 603
Linux Livre Page 692 Mardi, 23. septembre 2008 1:05 13

692 LINUX

Samba (suite) Sécurité 557 SFTP 246


NetBIOS 603 client sans-fil 571 clients 246
NBNS 603 DMZ 566 shell 283
nmbd 608 filtre de paquets 560 changement 284
NTLMv2 611 hosts.allow 563 définition du shell par
partage hosts.deny 563 défaut 284
mot de passe 611 iptables 567 SHFS 242
sans mot de passe 610 journalisation 558 Shockwave for Director 92
sécurité 604, 610 mises à jour 558 siga 325
protocoles 603 netstat 560 Signature (e-mails) 100
sécurité 604 nmap 560 Skype 79
partage 604, 610 pare-feu 564 Slackware 13
utilisateurs 605 passerelle 573 SMART 456
services 603 ports surveillance automatique 457
smb.conf 607 actifs 560 test 457
vérification 609 dangereux 574 smartd 457
smbclient 606 réseau sans-fil 575 smb.conf 607
smbd 608 risques 565 vérification 609
SMBFS 418 services réseau 561 smbclient 606
smbpasswd 611 Squid 577 SMBFS 418, 448
smbstatus 609 TCP Wrapper 563 mount 448
test 608 xinetd 561, 563 smbpasswd 611
testparm 609 sed 187 smbstatus 609
username.map 612 renommage de fichier 187 SMP 473
utilisateurs 605, 612 SELinux 39
SMTP 97
version 4 605 sendmail 95
Software suspend 326
Serpentine 63
Windows Vista 611 Son, ALSA 331
Serveur
WINS 604 Sound Juicer 168
de noms 496
SANE 137 Souris 48, 382
de noms 549
sane-find-scanner 138 console 175
mandataire 577
SATA 404 copier-coller 48
X 357
Sauvegarde émulation du 3e bouton 382
Service 478
automatisation 196 molette 382
arrêter 477, 478
rsync 196 pavé tactile 383
démarrer 477, 478
stratégie 196 ZAxisMapping 382
reload 226
Scan 170 spamassassin 95
restart 226
scanimage 138 Squid 577
sécuriser 561
scanModem 534 arrêt 580
start 226
Scanner 137 configuration 580
stop 226
SCO 23 DansGuardian 585
xinetd 562
procès 23 clients 580
setfacl 207 minimale 577
scp 241 setfattr 208 transparente 580
Scribus 134 setfont 305 iptables 581
SCSI 404 setgid 204 noyau 580
lecteur de bandes 333 setuid 203 squid.conf 580
seahorse 63 setupcon 306 transfert IP 580
Linux Livre Page 693 Mardi, 23. septembre 2008 1:05 13

INDEX 693

contrôle d'accès 582 Sun StarOffice 133 coda 418


démarrage 580 super-floppy 445 commandes, référence 661
exceptions 581 supermount 445 cramfs 419
squid.conf 578 Support de données déterminer les systèmes
test 580 Dolphin 72 disponibles 420
squid.conf 578 gestion sous Gnome 59 devpts 418
acl 578, 582 gestion sous KDE 71 df 421
cache_dir 578 Nautilus 59 efs 417
cache_mem 578 Surveillance du système ext 416, 428
cache_peer 579 Gnome 65 ext2 35, 428
configuration SUSE 12, 668 ext3 35, 428
transparente 580 SUSE Enterprise Server ext4 35, 428
http_access 578 disponibilité des mises à FAT 435
ssh 220, 240 jour 9 fichier image 643
clé publique du serveur 240 Suspend 326 fragmentation 432
démarrage de Suspend to disk 326 FUSE 419
commandes 240 Suspend2 (TuxOnIce) 327 GFS 419
identification par clés 242 swap 450 HFS 417
Konqueror 74 taille 450 HFS+ 417
session typique 240 swfdec 92 HPFS 417
ssh-agent 243 Synaptic 352, 383 ISO9660 417
tunnel 242 dépôts 353 jffs 419
X 241 installation de jfs 417
ssh-agent 243 paquetages 352 journalisation 426
StarOffice 133 problèmes 353 limite de taille 428
start 226 sysfs 418 loop 419
startx 363 syslogd 334 LVM 451, 454
sticky bit 204 system-config-date 307 magicdev 445
Streaming 160 system-config-language 321 monter
su 175, 219 system-config-network 553 /etc/fstab 423
gksu 220 system-config-printer 595 manuellement 422
kdesu 220 system-config-users 309 mount 421
mode graphique 220 Système administation 301 NCPFS 418
subfs 445 Système, démarrage 459 NFS 418, 447
submount 445 Système d’exploitation 5 none 420
sudo 220 Système de fichiers 35, 421 NTFS 417, 436
/etc/sudoers 221 /etc/fstab 423, 424 OFS 419
configuration 221 ajouter à l’arborescence 403 proc 418
gksudo 221 aufs 420 reiser4 416
sous SUSE 222 auto 419 reiserfs 416
sous Ubuntu 222 autofs 419 réseau 447
Sun autofs4 419 SHFS 242
Java 92 chiffré 420 SMBFS 418, 448
StarOffice 133 CIFS 418, 448 subfs 445
Linux Livre Page 694 Mardi, 23. septembre 2008 1:05 13

694 LINUX

Système de fichiers (suite) xterm 174 console 306


supermount 445 testparm 609 polices 396
sysfs 418 Theora 162 Unicode Transfer Format 320
sysv 417 Thunderbird 103 unionfs 420
test de cohérence 403 import depuis Windows 109 Unix 5, 6
tmpfs 418 MIME 105 unix2dos 234
type 403, 416 news Usenet 108 unzip 196
UDF 418 synchronisation avec updatedb 190
UFS 417 Windows 109 update-grub 463
unionfs 420 TIFF (format) 152 update-rc.d 227, 478
usbfs 419 time-admin 307 Upstart
vérification automatique 427 tmpfs 418 arrêt 226
vérification dans /etc/ top 215 démarrage 226
fstab 425 arrêter un processus 217 USB 328
vérification manuelle 427 modification de la usbfs 419
VFAT 417, 435 prioirité 218 useradd 310
virtuel 447 Totem 168 username.map 612
xfs 416, 434 touch 205 usernetctl 511
Système son (ALSA) 331 touchpad 383 users-admin 309
SystemRescueCD 408 traceroute 239 UTC (Universal Time,
systemsettings 75 Tracker 193 Coordinated) 307
sysv 417 tracker-search-tool 193 UTF-16 320
Traitement de texte UTF-8 320
(OpenOffice) 122 Utilisateurs 310
T TransGaming 622 administration 308, 309
Table de routage 495 Cedega 622 changement d’identité 219
Tableur (OpenOffice) 126 tube 218 changement de groupe 205
Tâche tune2fs 431 commandes, référence 660
Voir Processus Tux 21 consolehelper 220
Tâche de fond 175 TuxOnIce (Suspend2) 327 créer 308
tar 195 TwinView 376 gksudo 221
tcd 164 groupes 205
TCP 560 groups 205
TCP Wrapper 563
U newgrp 205
CUPS 592 Ubuntu 13, 668 root 45, 219
prise en charge 564 disponibilité des mises à sudo 220
TCP/IP 493 jour 9 UUID 407, 423, 435, 446
tee 290 udev 211, 444, 509 ext3 431
Terminal 173 UDF 418, 441 reiserfs 434
commandes, référence 664 UDP 494, 560 vol_id 446
déconnexion 173 UFS 417 xfs 435
gnome-terminal 62, 174 UID 311
konsole 76, 174 ulimit 217
lancer des commandes 175 umask 205
V
passage en root 175 umount 446 Variable d’environnement
raccourcis 174 uname 482 $DISPLAY 220
souris 175 Unicode 319, 396 $PATH 214
Linux Livre Page 695 Mardi, 23. septembre 2008 1:05 13

INDEX 695

$PS1 285 numéros de ligne 260 heure 626


VerrMaj 380 onglet 259 hôte 624
VerrNum 379 quitter 253 Intel VT 624
VESA 376 recherche de texte 258 invité 624
VFAT 417, 435 caractères spéciaux 258 KVM 632
/etc/fstab 437 recherche lecteur CD/DVD 625
formatage 436 incrémentale 258 fichier ISO 625
mkdosfs 436 recherche et remplacement machine virtuelle 624
VGA, modes 377 de texte 258 mémoire vive 625
vgcreate 453 saisie efficace des paravirtualisation 624
vi commandes 260 prise en charge
Voir vim sauvegardes 261 matérielle 624
Vidéo 157 périphériques externes 626
souris 261
lecteurs 157 presse-papiers 627
suppression de texte 253, 255
Vidéoprojecteur 383 processeur 625
tampon 259
configuration minimale 384 QEMU 632
texte continu 257 réseau 626
configuration multi-
trucs et astuces 260 carte réseau virtuelle 626
écrans 385
VirtualBox 629 NAT 626
vim 251
Additions Clients 630 réseau interne 626
changement de mode 253
hôte 630 son 626
commandes Linux 261
installation 630 techniques 624
complètement
invités 630 USB 626
automatique 257
prérequis 630 VirtualBox 629
copie de texte 256
répertoires partagés 632 VMware 628
correction des fautes de
Xen 637
frappe 255 versions 629
VMware 134, 628
déplacement du curseur 254 complète 629
comparatif 629
édition de plusieurs Open Source Edition 629
Player 628
fichiers 259 Virtualisation 623
Server 628
enregistrement 253 32 et 64 bits 625
Workstation 628
de la position du AMD-V 624
VoIP 79
curseur 255 applications 623
espaces et tabulations 261 vol_id 446
au niveau du système
fenêtre 259 Vorbis 161
d’exploitation 624
indentation 257 vorbiscomment 164
carte graphique 626 vorbis-tools 164
insertion multiple de comparaison 627
texte 255
compatibilité des machines
macros 261
virtuelles 627 W
marquage de texte 256
complète 624 WAV 160
mode
disques durs 625 Webmin 302
graphique 251
insertion 252 échange de données entre wget 246
normal 252 l’hôte et les invités 627 exemples 246
visuel 256 émulation 624 whereis 189
nouveau fichier 259 gestion du matériel 625 which 49, 189
Linux Livre Page 696 Mardi, 23. septembre 2008 1:05 13

696 LINUX

Wi-Fi 512 Internet Explorer 620 configuration 364


adaptateur 514 lancer un programme minimale 365
canal 515 Windows 618 multi-écrans 385
configuration 524 presse-papiers 620 xorg.conf 365
ESSID 515 transferts de données 620 connexion automatique 63
firmware 518 winecfg 618 copier-coller 48
Managed Key 517 winecfg 618 démarrage automatique 43,
mode ad-hoc 515 winmodem 534 362
mode géré 515 détecter 534 démarrer manuellement 363
mode infrastructure 515 scanModem 534 désactivation du démarrage
mode maître 515 WINS 604 automatique 362
NWID 515 WLAN 512 DRI 387
pilote 518 wlann (interface) 521 droits d’accès 388
WMA 161 écran virtuel 357
point d’accès 514
WMV 162 émulation du 3e bouton de la
pont 514
wodim 199 souris 382
PSK (Pre-Shared Key) 517
workbone 164 framebuffer 377
routeur 514
wpa_supplicant 521 gestionnaire de bureau 358
sécurité 516, 575
Writer (OpenOffice) 122 gestionnaire de fenêtre 358
SSID 515
GLX 387
WEP 516
glxgears 389
Wireless-Tools 518 X glxinfo 388
WPA 516, 521
X 357, 385 graphismes 3D 387
WPA2 516, 521
3D 387 tester 388
Windows journalisation 363
accès à une partition ext3 432 tester 388
AIGLX 392 libGL 387
chargeur d’amorçage 460 modes graphiques 371
anti-crénelage des polices
démarrer avec GRUB 467 modules d’extension 357
configuration 399
MBR 460 OpenGL 387
arrêt 362
pilote ext 433 pavé tactile 382, 383
bureau 3D 358, 389
problème de démarrage 43 AIGLX 392 Synaptics 383
programmes sous Linux 617 virtuel 358 pilotes 360
problèmes 618 caractère étranger, saisie 380 ATI/AMD 372
Wine 618 clavier 377 ati 372
réduction de la partition 32 configuration 377 atimisc 372
Samba 603 disposition 379 r128 372
Windows Vista gnome-keyboard- radeon 372, 373
NTLMv2 611 properties 381 radeonhd 372, 374
partitionnement 408 modèle 378 framebuffer 377
Samba 611 touche Intel 374
Windows XP, Xen 651 Compose 380 configuration 374
spéciales 379 résolution de l’écran 374
Wine 618
VerrMaj 380 NVIDIA 375
Cedega 622 nv 375
VerrNum 379
configuration 618 Xkb 377 nvidia 375
CrossOver 621 Xmodmap 377, 380 non libres 360
dérivés commerciaux 621 xorg.conf 378 VGA 377
ies4linux 620 Compiz Fusion 393 VESA 376
Linux Livre Page 697 Mardi, 23. septembre 2008 1:05 13

INDEX 697

polices 394 /etc/fstab 649 paravirtualisation 638


raccourci clavier 47 administration 655 problèmes fréquents 651
redémarrage 362 administration graphique 656 réseau 640
résolution 368 applications 637 restrictions 639
pilote Intel 374 architecture 638 SDL 653
saisie de caractères carte graphique 642 virtualisation matérielle 638
étrangers 380 configuration 646, 654 VNC 654
serveur 357 console 653 Windows XP 651
souris 48, 382 démarrage automatique 656 xenblk 642
3e bouton 382 disque dur 642 xend 641, 646
molette 382 dom0 638 xend-config.sxp 646
pavé tactile 383 configuration 646 xenman 656
Synaptics 383 initrd du domU 649 xentop 656
touchpad 383 interfaces réseau 642 xm 650, 655
ZAxisMapping 382 noyau du domU 649 xend 641
startx 363 domaines 638 réseau 641
Synaptics 383 domU 639 xend-config.sxp 646
terminer 217 cloner 651 xenman 656
touche Compose 380 configuration 649, 654 xentop 656
exemples 381 console 653
touchpad 383 xev 400
console texte 642
TwinView 376 xfs 416, 434
création 646
version 364 démarrage 650 /etc/fstab 435
VESA 376 automatique 656 création d’un système de
vidéoprojecteur 383 exemple d’installation 648 fichiers 435
configuration Fedora 648 label 435
minimale 384 heure 651 mkfs.xfs 435
configuration multi- image préinstallée 647 redimensionnement 435
écrans 385 initrd 648 réparation du système de
xev 400 installation de la fichiers 435
Xinerama 358, 369 distribution 648 vérification du système de
xkill 400 installation du fichiers 435
système 647
xlsfonts 400 xfs_admin 435
interaction 652
xmodmap 400 noyau 648 xfs_check 435
xorg.conf 365 SDL 642, 653 xfs_growfs 435
xrandr 400 VNC 643, 654 xfs_admin 435
xset 400 Windows XP 651 xfs_check 435
xterm 400 fichier image 643 xfs_growfs 435
ZAxisMapping 382 formats 643 xfs_repair 435
Xandros 13 gestion du matériel 640 xfs_xfs_repair 435
XCF (format) 151 GRUB 645 XGL 391
XChat 79 HVM 638, 651 comparaison avec AIGLX 392
XEmacs InitV 656 prise en charge des pilotes
Voir Emacs installation 645 graphiques 391
Xen 637 noyau 648 xine 169
Linux Livre Page 698 Mardi, 23. septembre 2008 1:05 13

698 LINUX

xine-check 169 configuration minimale 365 XWindow 357


Xinerama 358, 369, 385 écran 366 système 357
xinetd 561 modes graphiques 371
/etc/services 562 moniteur 366
arrêt 562 nombre de couleurs 368
Y
configuration 562 pilote 367 Yum 344
démarrage 562 résolution 368 /etc/yum.conf 345
sections 365
sécurisation 563 configuration 345
Device 367
service 562 conflits de verrous 345
Files 370, 397
xinetd.conf 562 Input Device 378 dépôt de paquetage 346
xinetd.d 562 Module 370 exemples 346
syntaxe des fichiers 562 Monitor 366 mise à jour de la
xinetd.conf 562 Screen 368 distribution 346
xinetd.d 562 Display 368 mises à jour
syntaxe des fichiers 562 ServerFlags 371 automatiques 347
ServerLayout 369
Xkb 377 paquetages de code
Xinerama 369
xkill 217, 400 source 347
XPI 85
xlsfonts 400 xrandr 400 yumdownloader 347
xm 650, 655 XSane 148 Yumex 347
xmms 169 xset 400
Xmodmap 377, 380, 400
xorg.conf
xterm 174, 400 Z
Xubuntu 668
carte graphique 367 XV 163 Zeroconf 528
clavier 378 XviD 161 zip 195
Le Campus Table des matières


Qu’est-ce que Linux ?
Installation
• Premiers pas sous Linux
8e édition • Gnome
• KDE

Linux
• Navigateurs Internet (Firefox, Konqueror)
• E-mail (Thunderbird, Evolution, Kontact)
• OpenOffice
• Appareils photo numériques, numérisation,
gestion des photos
• Gimp
• Audio et vidéo
• La console
• Gestion des fichiers
Installation, configuration •

Gestion des processus
Convertisseurs graphiques, audio et texte
• Outils réseau
et applications • Vim
• Emacs et Xemacs
• Bash
La bible de l’utilisateur Linux enfin traduite ! • Configuration de base
• Gestion des logiciels et des paquetages
Véritable outil de référence depuis plus de dix ans, cet ouvrage • Système XWindow
exceptionnel vous accompagnera au quotidien dans la découverte • Administration du système de fichiers
et la maîtrise de Linux. Que vous soyez débutant ou confirmé, • Démarrage du système
• Noyau et modules
vous y trouverez tout ce que vous avez besoin de savoir : ins- • Configurer l’accès réseau (réseau local, Wi-Fi)
tallation, distributions, configuration du système et des réseaux, • Accès à Internet
outils et applications disponibles, mais également commandes • Passerelle Internet (mascarade et DHCP)
shell, gestion des paquetages, systèmes de fichiers, noyau, outils • Sécurité du réseau
• Serveur de réseau local (CUPS, NFS et Samba)
d’administration, virtualisation, etc. • Lancer des programmes Windows (Wine,
Il couvre les distributions les plus répandues, la majeure partie de CrossOver)
leurs usages domestiques et les dernières nouveautés du monde • Virtualisation avec VMware, VirtualBox, QEMU
Linux : bureaux 3D, KDE4, Xen. Une référence thématique des et KVM
• Xen
commandes est fournie en fin d’ouvrage. • Références thématiques
Ce guide, complet et accessible, vous donnera toutes les clés pour • Sources d’informations
utiliser et surtout comprendre Linux, et fera de vous un incondi-
tionnel de ce système d’exploitation libre et sûr.

À propos de l’auteur
Niveau : Tous niveaux
Michael Kofler a déjà aidé plusieurs générations d’utilisateurs à faire leurs pre-
miers pas sous Linux. Ses ouvrages sur Linux, sur PHP 5 et sur MySQL font partie Catégorie : Système d’exploitation
des livres les plus lus dans le domaine du logiciel libre. Configuration : PC

Pearson Education France ISBN : 978-2-7440-4088-7


47 bis, rue des Vinaigriers
75010 Paris
Tél. : 01 72 74 90 00
Fax : 01 42 05 22 17
www.pearson.fr

Vous aimerez peut-être aussi