You are on page 1of 722

Le Campus

8e dition

Linux
Installation, configuration et applications
Michael Kofler

Linux
Installation, configuration et administration des systmes Linux

Pearson Education France a apport le plus grand soin la ralisation de ce livre an de vous fournir une information complte et able. Cependant, Pearson Education France nassume de responsabilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation. Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour illustrer les descriptions thoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle. Pearson Education France ne pourra en aucun cas tre tenu pour responsable des prjudices ou dommages de quelque nature que ce soit pouvant rsulter de lutilisation de ces exemples ou programmes. Tous les noms de produits ou autres marques cits dans ce livre sont des marques dposes par leurs propritaires respectifs. Publi par Pearson Education France 47 bis, rue des Vinaigriers 75010 PARIS Tl. : 01 72 74 90 00 www.pearson.fr Titre original : Linux - Installation, Konguration, Anwendung Traduit et adapt de lallemand par Isabelle Hurbain-Palatin et Sandrine Burriel ISBN original : 978-3-8273-2478-8 Copyright 2007 by Addison-Wesley Verlag All rights reserved

Mise en pages : TyPAO


ISBN : 978-2-7440-4088-7 Copyright 2009 Pearson Education France Tous droits rservs

Addison-Wesley Verlag Pearson Education Deutschland GmvH Martin-kollar-Strae 10-12, D-81829 Mnchen/Germany

Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a) du code de la proprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France ou, le cas chant, sans le respect des modalits prvues larticle 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
Installation, configuration et administration des systmes Linux

Michael Kofler

Table des matires

Prface ......................................................................................................................
Conception ..................................................................................................... Ce que vous ne trouverez pas dans cet ouvrage.............................................

1 2 3 3

Styles utiliss dans ce livre ............................................................................

PARTIE 1 PREMIERS PAS ET INSTALLATION


1 Quest-ce que Linux ? ...........................................................................................
1.1 Introduction....................................................................................................

Noyau ............................................................................................................ Caractristiques du noyau.............................................................................. Prise en charge du matriel............................................................................


1.2 Distributions ................................................................................................... Quelques distributions Linux courantes ........................................................

5 5 6 6 7 8 11 14 14 14 17 19 20 21 21 22 23 25 25 26 27 28 30 30

Distributions minimales................................................................................. Problme du choix .........................................................................................


1.3 1.4 1.5 1.6 Fantasmes et ralit ........................................................................................ Licences libres ................................................................................................ Conits de licences entre les logiciels libres et propritaires ........................ Histoire de Linux ............................................................................................ Brevets logiciels et autres sujets dnervement................................................. Brevets logiciels ............................................................................................

Multimdia et DRM ...................................................................................... Procs SCO....................................................................................................

2 Installation ..............................................................................................................
2.1 2.2 2.3 Prrequis ........................................................................................................

32 ou 64 bits ? ...............................................................................................
Dmarrage de linstallation de Linux .............................................................. Bases du partitionnement du disque................................................................ Systmes de chiers ......................................................................................

Nom des partitions.........................................................................................

VI

LINUX

2.4

Partitionnement du disque dur........................................................................

Rduction de la partition Windows ............................................................... Nombre et taille des partitions....................................................................... Quel systme de chiers utiliser ? .................................................................
2.5 2.6 2.7 2.8 2.9 Choix des paquetages......................................................................................

Recommandations pour linstallation ............................................................


Conguration de base ..................................................................................... Installation du chargeur damorage............................................................... Installations non standard............................................................................... Problmes lors de linstallation ....................................................................... Problmes de matriel ................................................................................... Problmes lis au clavier ............................................................................... Problmes aprs linstallation ......................................................................... Lordinateur ne dmarre plus......................................................................... Le systme graphique ne dmarre pas ........................................................... Le clavier ne fonctionne pas .......................................................................... Les menus sont dans la mauvaise langue ......................................................

2.10

31 32 33 35 36 37 37 40 40 41 41 42 42 42 43 43 44 45 45 46 47 47 47 48 48 51 52 56 60 60 62 63 67 68 71 72 72 74 74 75 77

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


3.1 Dmarrer et arrter Linux .............................................................................. Dconnexion ..................................................................................................

teindre Linux ...............................................................................................


3.2 Clavier, souris et presse-papiers ......................................................................

Raccourcis clavier importants ....................................................................... Utilisation de la souris ...................................................................................


3.3 Documentation sous Linux..............................................................................

4 Gnome ......................................................................................................................
4.1 4.2 Conception du bureau..................................................................................... Nautilus .......................................................................................................... Graver des CD et des DVD ...........................................................................

Accder aux rpertoires rseau......................................................................


4.3 4.4 Programmes Gnome ....................................................................................... Trucs et astuces...............................................................................................

5 KDE ...........................................................................................................................
5.1 5.2 5.3 Conception du bureau..................................................................................... Dolphin........................................................................................................... Konqueror ...................................................................................................... Utilisation en tant que gestionnaire de chiers .............................................

Accs aux rpertoires rseau ......................................................................... Adresses spciales .........................................................................................


5.4 5.5 Applications KDE ........................................................................................... Trucs et astuces...............................................................................................

TABLE DES MATIRES

VII

PARTIE 2 LA BUREAUTIQUE SOUS LINUX


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

Fonctionnalits de base.................................................................................. Conguration ................................................................................................. Extensions (chiers XPI)...............................................................................


6.2 6.3 6.4 Konqueror ...................................................................................................... Navigateurs en mode texte............................................................................... Plugins (Adobe Reader, Flash, Java)................................................................ Adobe Reader ................................................................................................

79 79 80 83 85 86 87 88 89 90 92 95 95 98 98 99 100 103 103 104 107 109 110 111 111 114 115 119 119 121 122 126 127

Adobe/Macromedia Flash ............................................................................. Sun Java .........................................................................................................

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


7.1 Bases .............................................................................................................. Rouages internes de la gestion des e-mails ...................................................

Courrier local ................................................................................................. Formats de botes aux lettres et conversion ................................................... Signature et chiffrement de-mails ................................................................
7.2 Thunderbird................................................................................................... Conguration dun compte ............................................................................

Fonctionnalits de base.................................................................................. Extensions et fonctionnalits additionnelles ................................................. Importer ou synchroniser des e-mails Windows............................................
7.3 Evolution ........................................................................................................ Conguration dun compte ............................................................................

Fonctionnalits de base.................................................................................. Fonctionnalits supplmentaires ...................................................................


7.4 Kontact...........................................................................................................

8 OpenOffice ..............................................................................................................
8.1 8.2 8.3 8.4 Introduction....................................................................................................

OpenOfce face Microsoft Ofce ..............................................................


Traitement de texte (OpenOfce Writer) ......................................................... Tableur (OpenOfce Calc) .............................................................................. Prsentation (OpenOfce Impress)..................................................................

VIII

LINUX

8.5 8.6 8.7

Bases de donnes (OpenOfce Base)................................................................ Programmation de macros .............................................................................. Alternatives OpenOfce ...............................................................................

130 132 133 135 136 137 139 143 145 146 148 149 151 152 154 155 157 158 158 160 162 163 163 164 164 164 165 165 165 166 166 167 168 168 169 169 170

9 Appareils photo numriques, numrisation, gestion des photos ..........


9.1 9.2 9.3 9.4 9.5 9.6 9.7 Appareils photo numriques ........................................................................... Numrisation .................................................................................................. gThumb.......................................................................................................... digiKam.......................................................................................................... F-Spot............................................................................................................. KPhotoAlbum................................................................................................. XSane .............................................................................................................

10 Gimp .........................................................................................................................
10.1 10.2 10.3 Formats de chiers.......................................................................................... Premiers pas ................................................................................................... Impression ..................................................................................................... Rgles de survie ..............................................................................................

11 Audio et vido .......................................................................................................


11.1 Bases ..............................................................................................................

Glossaire ....................................................................................................... Formats audio et vido .................................................................................. Lire des CD audio.......................................................................................... Lecture de DVD vido ................................................................................... Situation juridique, paquets complmentaires...............................................
11.2 Lecteurs audio et vido ...................................................................................

Lecteurs en ligne de commande .................................................................... Amarok (lecteur audio) ................................................................................. Banshee (lecteur audio) ................................................................................. KAudioCreator (extracteur de CD) ............................................................... MPlayer (lecteur audio, vido et tlvision) ................................................. Noatun (lecteur audio et vido) ..................................................................... RealPlayer et Helix Player (lecteur audio et vido) ...................................... Rhythmbox (lecteur audio) ............................................................................ Sound Juicer (lecteur et extracteur de CD).................................................... Totem (lecteur audio et vido) ....................................................................... xine (lecteur audio, vido et TV) ................................................................... xmms .............................................................................................................
11.3 Regarder la tlvision avec DVB-T ..................................................................

TABLE DES MATIRES

IX

PARTIE 3 OUTILS UNIX ET LINUX


12 La console ...............................................................................................................
12.1 12.2 12.3 Consoles texte et fentres de console................................................................ Afcher et modier des chiers texte............................................................... diteurs de texte ............................................................................................ Aide du systme ..............................................................................................

173 173 176 176 178 181 181 181 182 184 185 186 187 188 189 189 190 190 192 193 193 194 194 196 197 198 199 200 202 203 204 205 206 207 208 209 211

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


13.1 Interaction avec des chiers et des rpertoires ................................................. Rpertoires.....................................................................................................

Commandes lmentaires de gestion des chiers et des rpertoires ............. Dterminer lespace ncessaire aux chiers et rpertoires ............................ Caractres joker ............................................................................................. Problmes lis lutilisation des caractres joker ......................................... Fichiers cachs ..............................................................................................
13.2 13.3 Liens............................................................................................................... Chercher des chiers....................................................................................... which et whereis ............................................................................................

locate ............................................................................................................. nd et grep ..................................................................................................... Beagle ............................................................................................................ Tracker ........................................................................................................... Google Desktop .............................................................................................
13.4 Archiver et scuriser des donnes....................................................................

Compresser et archiver des donnes (gzip, tar, zip) ...................................... Sauvegardes (rsync) .......................................................................................
13.5 Graver des CD et des DVD..............................................................................

Crer et tester des images ISO ...................................................................... Graver des CD ............................................................................................... Graver des DVD ............................................................................................
13.6 Droits daccs, utilisateurs et groupes propritaires.........................................

Bits spciaux.................................................................................................. Changer les droits daccs dun chier ou dun rpertoire............................
13.7 13.8 Propritaire, groupe et bits daccs de nouveaux chiers ................................. Listes de contrle daccs et attributs tendus ................................................. Listes de contrle daccs.............................................................................. Attributs tendus ............................................................................................ Structure des rpertoires sous Linux ............................................................... Fichiers de priphriques................................................................................

13.9 13.10

LINUX

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


14.1 Dmarrer, grer et arrter des processus ......................................................... Dmarrer des programmes ............................................................................

Processus en avant-plan et en arrire-fond .................................................... Liste de tous les processus courants (ps, top) ................................................ Hirarchie des processus ............................................................................... Forcer la n dun processus (kill, xkill) ......................................................... Partage du temps de calcul (nice, renice) ...................................................... Redirections et tubes .....................................................................................
14.2 14.3 Lancer des processus sous une autre identit (su) ............................................ Lancer des processus sous une autre identit (sudo)......................................... sudo sous Ubuntu ..........................................................................................

sudo sous SUSE.............................................................................................


14.4 Processus du systme (dmons) .......................................................................

Threads du noyau .......................................................................................... Dmarrer et arrter des dmons.....................................................................


14.6 Dmarrer automatiquement des processus (crontab)........................................

Modier la conguration ...............................................................................

213 213 213 214 214 216 217 218 218 219 220 222 222 223 224 225 227 228 231 231 232 234 235 235 237 237 240 242 243 243 246 246 247 248 251 252 253 254 255

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


15.1 15.2 15.3 15.4 15.5 Convertisseurs graphiques .............................................................................. Conversion audio et vido ............................................................................... Conversion de texte......................................................................................... Conversion de noms de chiers ....................................................................... Conversion de documents................................................................................

16 Outils rseau ..........................................................................................................


16.1 16.2 16.3 Connatre ltat du rseau............................................................................... Travailler sur un autre ordinateur................................................................... Utiliser SSH sans mot de passe ..................................................................... Transfrer des chiers..................................................................................... FTP ................................................................................................................ SFTP (Secure FTP) ....................................................................................... wget................................................................................................................ rsync .............................................................................................................. BitTorrent ......................................................................................................

17 Vim ............................................................................................................................
17.1 17.2 17.3 Rapide introduction ........................................................................................ Aide ............................................................................................................... Dplacement du curseur.................................................................................. Modier du texte ............................................................................................

TABLE DES MATIRES

XI
17.4 17.5 17.6 Chercher et remplacer .................................................................................... diter plusieurs chiers en mme temps.......................................................... Trucs et astuces...............................................................................................

258 259 260 263 263 264 265 266 266 268 269 270 270 271 272 273 274 275 276 277 278 279 279 281 283 283 284 284 284 285 286 287 288 289 290 290 291

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


18.1 Rapide introduction ........................................................................................ Charger et enregistrer des chiers, quitter le programme .............................

Commandes lmentaires .............................................................................. Systme daide ..............................................................................................


18.2 18.3 18.4 18.5 Bases .............................................................................................................. Dplacement du curseur.................................................................................. Marquer, supprimer et coller du texte ............................................................. diter du texte ................................................................................................ Tabulations.....................................................................................................

Indenter manuellement du texte ....................................................................


18.6 18.7 Texte continu .................................................................................................. Chercher et remplacer .................................................................................... Recherche avec des expressions rationnelles ................................................

Chercher et remplacer ...................................................................................


18.8 18.9 18.10 Tampon et fentre ........................................................................................... Modes ddition spciques............................................................................. Unicode .......................................................................................................... GNU Emacs et Unicode ................................................................................

XEmacs et Unicode ....................................................................................... Saisie de caractres spciaux trangers .........................................................

19 bash ...........................................................................................................................
19.1 Quest-ce quun shell ?....................................................................................

Passer un autre shell.................................................................................... Changer de shell par dfaut ...........................................................................


19.2 19.3 Conguration de base ..................................................................................... Saisie de commandes....................................................................................... Compltement des commandes et noms de chiers ......................................

Raccourcis clavier importants ....................................................................... Alias...............................................................................................................


19.4 Redirections....................................................................................................

Tubes ............................................................................................................. Multiplication des sorties avec tee................................................................. Rsum de la syntaxe ....................................................................................

XII

LINUX

19.5 19.6 19.7

Lancer des commandes ................................................................................... Mcanismes de substitution............................................................................. Variables......................................................................................................... Variables locales et globales (variables denvironnement) ............................

Variables importantes ....................................................................................


19.8 Programmation shell.......................................................................................

291 293 297 298 299 300

PARTIE 4 CONFIGURATION ET ADMINISTRATION DU SYSTME


20 Configuration de base .........................................................................................
20.1 20.2 Introduction.................................................................................................... Conguration de la console en mode texte ....................................................... Conguration de kbd (clavier, police) ...........................................................

Conguration de la console (clavier, police) ................................................. Conguration de gpm (souris) .......................................................................


20.3 20.4 Date et heure................................................................................................... Utilisateurs et groupes, mots de passe.............................................................. Administration des utilisateurs ......................................................................

Administration des groupes ........................................................................... Mots de passe ................................................................................................ Collaboration entre chiers de conguration ................................................ PAM (Pluggable Authentication Modules ou modules dauthentication enchables) .................................................................................................... Administration des utilisateurs sur un rseau ................................................
20.5 Conguration des langues, internationalisation, Unicode................................. Bases sur les jeux de caractres .....................................................................

301 301 304 305 306 306 307 308 310 312 313 316 316 318 318 319 321 324 325 326 327 329 330 331 331 333 334 334 334

Congurer la localisation et le jeu de caractres ...........................................


20.6 Rfrence relative au matriel .........................................................................

Processeur et mmoire................................................................................... Gestion de lnergie (ACPI, APM)................................................................ Interfaces et bus systme ............................................................................... Systme Hotplug (udev, D-Bus et HAL) ....................................................... Interfaces rseau ............................................................................................ Interface graphique (X) ................................................................................. Systme audio (ALSA) ................................................................................. Supports de donnes (disques durs, CD-ROM, DVD, etc.) .......................... Clavier et souris ............................................................................................. Imprimante, appareil photo numrique, scanner ...........................................
20.7 Fichiers journaux et messages du noyau..........................................................

TABLE DES MATIRES

XIII
339 340 340 342 344 345 346 347 347 348 348 349 350 351 352 352 353 354 355 357 357 358 360 362 363 364 364 365 366 367 368 369 370 370 371 371 372

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


21.1 Gestionnaire de paquetages RPM.................................................................... Notions de base .............................................................................................

Syntaxe et exemples ......................................................................................


21.2 Yum (gestion de paquetages RPM) ..................................................................

Conguration ................................................................................................. Exemples ....................................................................................................... Tlchargements et mises jour automatiques .............................................


21.3 21.4 21.5 Yum Extender (Yumex)................................................................................... Gestion de paquetages sous Debian (dpkg)....................................................... Syntaxe et exemples ...................................................................................... APT................................................................................................................

Conguration ................................................................................................. Exemples ....................................................................................................... Tlchargements et mises jour automatiques .............................................


21.6 22.7 21.8 Synaptic..........................................................................................................

Problmes ......................................................................................................
Aptitude.......................................................................................................... Conversion entre deux formats de paquetages .................................................

22 Systme XWindow ................................................................................................


22.1 22.2 22.3 Glossaire.........................................................................................................

Glossaire matriel ..........................................................................................


Problme des pilotes........................................................................................ Dmarrer et arrter X..................................................................................... Fichiers de journalisation de X ......................................................................

Dterminer la version de X............................................................................


22.4 Conguration de base ..................................................................................... Construction du chier de conguration xorg.conf .......................................

Section Monitor (cran)................................................................................. Section Device (carte graphique)................................................................... Section Screen (rsolution, nombre de couleurs) .......................................... Section ServerLayout .................................................................................... Section Files .................................................................................................. Section Module .............................................................................................. Section ServerFlags....................................................................................... Dnir ses propres modes graphiques ........................................................... XVideo...........................................................................................................

XIV

LINUX

22.5

Pilotes ATI/AMD............................................................................................. Pilote radeon .................................................................................................

Pilote fglrx ..................................................................................................... Pilote radeonhd .............................................................................................


22.6 22.7 Pilotes Intel..................................................................................................... Pilotes NVIDIA............................................................................................... Pilote nv .........................................................................................................

Pilote nvidia ...................................................................................................


22.8 22.9 Pilotes VESA, Framebuffer et VGA................................................................. Clavier............................................................................................................ Conguration de base ....................................................................................

VerrNum et VerrMaj ...................................................................................... Saisie de caractres trangers ........................................................................


22.10 22.11 22.12 22.13 Souris et pav tactile .......................................................................................

Pav tactile.....................................................................................................
Portable et vidoprojecteur ............................................................................. Graphismes 3D ............................................................................................... Bureau 3D ...................................................................................................... AIGLX...........................................................................................................

Compiz Fusion ..............................................................................................


22.14 Polices............................................................................................................. Conguration sans serveur de fontes .............................................................

Installation de polices TrueType et Type1 supplmentaires .......................... Anticrnelage.................................................................................................


22.15 Outils X ..........................................................................................................

372 373 373 374 374 375 375 375 376 377 377 379 380 382 383 383 387 389 392 393 394 397 398 399 400 401 402 404 408 408 409 410 413 415 416 420 421 422

23 Administration du systme de fichiers ...........................................................


23.1 23.2 23.3 Fonctionnement gnral.................................................................................. Noms de priphriques pour les disques durs et les autres supports de donnes .................................................................... Partitionnement du disque dur........................................................................ Rgles de base ...............................................................................................

Problmes de compatibilit ........................................................................... fdisk ............................................................................................................... parted............................................................................................................. Interfaces graphiques (gparted et qtparted) ..................................................
23.4 23.5 Types de systmes de chiers........................................................................... Gestion du systme de chiers (mount et /etc/fstab) ............................................. Dterminer ltat courant dun systme de chiers .......................................

Monter et dmonter des systmes de chiers manuellement ........................

TABLE DES MATIRES

XV
Monter automatiquement des systmes de chiers ....................................... Syntaxe de /etc/fstab ......................................................................................
23.6 Les systmes de chiers Linux.........................................................................

Gnralits ..................................................................................................... Systmes de chiers ext (ext2, ext3 et ext4) .................................................. Systme de chiers reiserfs ........................................................................... Systme de chiers xfs ..................................................................................
23.7 Systmes de chiers Windows .........................................................................

Systme de chiers VFAT ............................................................................. Systme de chier NTFS (pilote ntfs) ........................................................... Systme de chiers NTFS (ntfsmount) .......................................................... Systme de chiers NTFS (ntfs-3g) .............................................................. Systmes de chiers NTFS (Captive, Paragon).............................................
23.8 CD, DVD et disquettes ....................................................................................

CD et DVD de donnes ................................................................................. CD audio et DVD vido ................................................................................ Disquettes ......................................................................................................


23.9 23.10 Supports de donnes externes (USB, Firewire, etc.) ......................................... Systmes de chiers rseau et virtuels ............................................................. Systmes de chiers rseau Unix (NFS) .......................................................

Rpertoires rseau Windows (cifs, smbfs) .....................................................


23.11 23.12 Partitions et chiers dchange........................................................................ LVM ............................................................................................................... Glossaire ........................................................................................................

Mettre en place un systme LVM simple ...................................................... Redimensionner un systme de chiers ........................................................
23.13 Optimiser les paramtres du disque dur..........................................................

hdparm........................................................................................................... SMART .........................................................................................................

423 423 426 426 428 433 434 435 437 437 438 439 440 441 441 443 443 443 447 447 448 450 451 452 453 454 455 455 456 459 459 459 461 463 464 464 466 468

24 Dmarrage du systme .......................................................................................


24.1 24.2 24.3 GRUB............................................................................................................. Dtails du dmarrage du systme .................................................................. GRUB Utilisation ......................................................................................... GRUB Conguration.................................................................................... Descriptions des disques durs et partitions....................................................

Paramtres globaux de menu.lst .................................................................... lments du menu dans menu.lst .................................................................. Tester la conguration de GRUB ..................................................................

XVI

LINUX

24.4

GRUB Installation........................................................................................

Rinstallation de GRUB ................................................................................ Installation sur une disquette ......................................................................... Installation sur un support USB ....................................................................
24.5 24.6 GRUB Rsolution de problmes ................................................................... Options damorage du noyau......................................................................... Options damorage importantes...................................................................

Options SMP ................................................................................................. Options APM et ACPI ...................................................................................


24.7 InitV...............................................................................................................

Aperu dInitV .............................................................................................. Niveau dexcution ........................................................................................ Modier le niveau dexcution ...................................................................... inittab............................................................................................................. Initialisation du systme ................................................................................ Scripts InitV .................................................................................................. Processus InitV sous Debian ......................................................................... Processus InitV sous Red Hat et Fedora ....................................................... Processus InitV sous SUSE ...........................................................................

468 468 469 470 471 472 472 473 473 474 474 474 475 475 476 476 477 478 478 481 481 482 483 484 485 485 487 487 488 489 490 490

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


25.1 Modules du noyau...........................................................................................

Commandes de gestion des modules ............................................................. Conguration des modules ............................................................................ Dpendances entre modules (modules.dep, modules*.map) ......................... Paramtres des modules et ordre des priphriques ...................................... Syntaxe de modprobe.conf............................................................................. Compiler un module supplmentaire ............................................................
25.2 Congurer et compiler son propre noyau ........................................................ Installer les paquetages ncessaires ............................................................... Congurer le noyau ....................................................................................... Compiler et installer le noyau........................................................................ Crer un chier initrd .....................................................................................

25.3

PARTIE 5 CONFIGURATION RSEAU ET SERVEUR


26 Configurer laccs rseau (rseau local, Wi-Fi) .............................................
26.1 Bases rseau....................................................................................................

Glossaire ........................................................................................................ Adresses IP .................................................................................................... IPv6 ...............................................................................................................

493 493 493 496 499

TABLE DES MATIRES

XVII
26.2 26.3 Activer manuellement un contrleur LAN....................................................... Fichiers de conguration du rseau local......................................................... Conguration de base ....................................................................................

Correspondance entre contrleur et interface rseau..................................... Conguration et initialisation des interfaces rseau (Debian et Ubuntu) ...... Conguration et initialisation des interfaces rseau (Red Hat, Fedora) ........ Conguration et initialisation des interfaces rseau (SUSE) ........................
26.4 Bases sur le Wi-Fi ...........................................................................................

Standards, glossaire ....................................................................................... Paramtres de connexion Wi-Fi ..................................................................... Scurit dun rseau Wi-Fi ............................................................................ Prise en charge du Wi-Fi par Linux ...............................................................
26.5 26.6 26.7 26.8 Activer manuellement le contrleur Wi-Fi....................................................... Fichiers de conguration Wi-Fi ....................................................................... NetworkManager............................................................................................ Zeroconf et Avahi ............................................................................................

500 505 505 509 510 511 512 512 513 515 516 518 520 524 526 528 531 531 531 533 533 534 534 535 537 537 538 541 541 542 543 544 545 545 546 547 547 548

27 Accs Internet .....................................................................................................


27.1 Outils de conguration.................................................................................... Conguration dun modle analogique .........................................................

Conguration RNIS ....................................................................................... Conguration ADSL......................................................................................


27.2 Conguration manuelle dun modem .............................................................. Winmodems ...................................................................................................

27.3

Conguration manuelle de pppd ................................................................... Conguration matrielle de lADSL ................................................................ Conguration manuelle de PPPoE ................................................................ Conguration manuelle de PPTP ..................................................................

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


28.1 Introduction.................................................................................................... Topologie du rseau utilis comme exemple .................................................

Installation dune passerelle Internet ............................................................. Comparaison entre un routeur matriel et une passerelle Linux ...................
28.2 Mascarade (NAT)............................................................................................

Notions de base ............................................................................................. Mascarade avec iptables ................................................................................ Activation et dsactivation automatique de la mascarade ............................. Problmes ...................................................................................................... Conguration des clients ...............................................................................

XVIII

LINUX

28.3

Serveur DHCP et serveur de noms intgr (dnsmasq) ......................................... Introduction DHCP .....................................................................................

Paramtrage du serveur de noms ................................................................... Conguration de dnsmasq ............................................................................. Conguration des clients ...............................................................................
28.4 Serveur DHCP (dhcpcd) ..................................................................................

548 548 549 550 553 554 557 557 559 561 561 563 564 564 565 567 567 568 569 570 571 572 573 575 576 577 577 580 582 582 587 587 588 589 592 593 594

29 Scurit du rseau ................................................................................................


29.1 29.2 29.3 Types de scurit............................................................................................. Bases de lanalyse rseau................................................................................. Scuriser les services rseau ............................................................................ Bases de xinetd ..............................................................................................

hosts.allow et hosts.deny ...............................................................................


29.4 Introduction aux pare-feu ...............................................................................

Pare-feu pour un ordinateur personnel .......................................................... Pare-feu pour le rseau local .........................................................................
29.5 Pare-feu avec iptables ......................................................................................

Introduction ................................................................................................... Tables et chanes de rgles iptables ............................................................... Remettre zro le pare-feu............................................................................ Scuriser laccs Internet ............................................................................ Scuriser un client sans-l sans VPN ............................................................ Scuriser un client sans-l avec PPTP-VPN ................................................. Scuriser une passerelle Internet ................................................................... Journalisation................................................................................................. Excuter automatiquement les rgles du ltre ..............................................
29.6 Filtrage web (Squid) .......................................................................................

Conguration et dmarrage ........................................................................... Conguration en tant que serveur mandataire-cache transparent...................... Rgles de contrle daccs ............................................................................ Filtre web avec DansGuardian ......................................................................

30 Serveur de rseau local (CUPS, NFS et Samba) ............................................


30.1 CUPS Les fondamentaux..............................................................................

Processus dimpression ................................................................................. Conguration de base de CUPS .................................................................... Administration de CUPS dans un navigateur web ........................................ Commandes dadministration de CUPS ........................................................ HP Linux Imaging and Printing (HPLIP)......................................................

TABLE DES MATIRES

XIX
30.2 CUPS Conguration dune imprimante........................................................

Conguration dune imprimante locale ......................................................... Conguration dune imprimante rseau (ct serveur) ................................. Conguration dune imprimante rseau (ct client) ....................................
30.3 NFS ................................................................................................................

Installation et conguration ........................................................................... NFS4 ..............................................................................................................


30.4 Samba Les fondamentaux ............................................................................

Protocole et services ...................................................................................... Droits daccs et systmes de scurit...........................................................


30.5 30.6 30.7 Client Samba .................................................................................................. Samba Conguration de base et mise en service............................................ Samba Partager des rpertoires.................................................................... Scurit au niveau des partages .....................................................................

Scurit au niveau utilisateur .........................................................................


30.8 Samba Imprimantes rseau ..........................................................................

595 596 597 598 600 601 602 603 603 604 606 607 610 610 612 614

PARTIE 6 UTILISATION DE PLUSIEURS SYSTMES SIMULTANMENT


31 Lancer des programmes Windows (Wine, CrossOver) ..............................
31.1 31.2 Wine............................................................................................................... Drivs commerciaux de Wine ........................................................................ CrossOver ......................................................................................................

Cedega ...........................................................................................................

617 618 621 621 622 623 624 628 629 632 637 637 638 638 638 639 640 640

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


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

33 Xen ............................................................................................................................
33.1 33.2 Introduction.................................................................................................... Dtails techniques ........................................................................................... Variantes de la virtualisation .........................................................................

Architecture et terminologie .......................................................................... Restrictions .................................................................................................... Gestion du matriel ....................................................................................... Accs au rseau .............................................................................................

XX

LINUX

Accs au disque dur ....................................................................................... Sortie graphique ............................................................................................


33.3 33.4 33.5 33.6 Gestion des chiers image ............................................................................... Mettre en place le systme de base Xen (dom0)................................................ Crer des systmes invits (domU) .................................................................. Installation de Windows (HVM) ................................................................... Interaction avec le systme domU dmarr (SDL, VNC)......................................

Console Xen .................................................................................................. SDL ............................................................................................................... VNC...............................................................................................................


33.7 33.8 Syntaxe du chier de conguration du domU .................................................. Administration de Xen....................................................................................

642 642 643 645 646 651 652 653 653 654 654 655

Annexes
A Rfrences thmatiques ...................................................................................... Gestion des chiers ....................................................................................... ACL (listes de contrle daccs) et EA (attributs tendus) ................................ Recherche de chiers..................................................................................... Traitement de chiers texte ........................................................................... Compresser et archiver des chiers ............................................................... Graver des CD/DVD...................................................................................... Convertisseurs ............................................................................................... Gestion des programmes et des processus .................................................... Gestion des utilisateurs et des groupes .......................................................... Administration du systme de chiers .......................................................... Gestion de paquetages ................................................................................... Fonctions rseau ............................................................................................ Administration de limprimante .................................................................... Gestion du matriel ....................................................................................... Noyau et modules .......................................................................................... Dmarrage et arrt du systme ...................................................................... Terminal et console texte ............................................................................... Aide en ligne ................................................................................................. Divers............................................................................................................. bash Gestion des variables.......................................................................... bash Programmation ................................................................................... bash Commandes ........................................................................................ 657 657 657 658 658 659 659 659 660 660 661 662 662 663 663 663 663 664 664 664 665 665 665

TABLE DES MATIRES

XXI
667 667 667 667 667 668 668 668 668 668 669

B Sources d'information .......................................................................................... Debian ........................................................................................................... Fedora ............................................................................................................ Mandriva ........................................................................................................ openSUSE ..................................................................................................... Red Hat .......................................................................................................... SUSE ............................................................................................................. Ubuntu et ses variantes .................................................................................. Informations gnralistes .............................................................................. Autour du logiciel libre ................................................................................. INDEX .......................................................................................................................

Prface

Linux fait aujourdhui partie, avec Microsoft Windows et Apple Mac OS X, des trois systmes dexploitation les plus populaires et les plus importants sur le march des ordinateurs personnels. Il a pu conqurir une part considrable du march des serveurs, gagne lentement mais srement en popularit sur le march des ordinateurs de bureau et fait fonctionner de nombreux systmes embarqus (des appareils complets ne ressemblant pas des ordinateurs). Votre routeur ADSL ou Wi-Fi est probablement bas sur Linux. Le prjug selon lequel Linux serait difcile utiliser est aujourdhui dpass. Son utilisation est videmment diffrente de celle de Windows, mais le saut conceptuel nest pas plus important quentre Windows XP et Windows Vista, par exemple. De plus, la plupart des distributions Linux sont gratuites et prouves plus sres que Windows. Vous naurez ainsi aucun problme 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 dinnombrables fonctionnalits et applications supplmentaires, depuis lautomatisation des tches quotidiennes la conguration de serveurs rseau. Les concepts de navigation web, de courrier lectronique et de suite bureautique vous sont sans doute familiers, mais ces thmes plus complexes demandent un traitement plus fouill. Il nexiste pas un Linux, mais plusieurs distributions Linux. Pour simplier, une distribution 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 inconvnient majeur : certains dtails dpendent de la distribution. Ce livre essaie de suivre une approche aussi indpendante de la distribution que possible. Il est cependant impossible dviter de traiter de temps autre des diffrentes variantes : ce qui fonctionne dune manire sous SUSE peut fonctionner diffremment sous Debian. Pour nir, mon but est que vous utilisiez Linux, mais surtout que vous le compreniez. Cet ouvrage peut sembler difcile daccs : vous ny trouverez pas de captures dcran lgendes "Cliquez ici". Lobjectif est plutt dexpliquer les fondations de Linux et de vous rapprocher de la philosophie Unix/Linux. Si vous navez pas encore essay Linux, il est temps de procder cette premire exprience.

LINUX

Si vous le connaissez dj, cet ouvrage rpondra de nombreuses questions et vous fera voluer vers le statut dutilisateur avanc. Lorsque vous laurez lu, vous saurez crer des rgles de pare-feu avec iptables et mettre en place des machines virtuelles avec Xen. Vous serez laise avec Linux au point de pouvoir lire et comprendre nimporte quel ouvrage professionnel sur Linux ou Unix, quil sagisse dun livre sur la conguration dun serveur de courrier lectronique ou sur ladministration de rseaux htrognes. En rsum, ce livre vous offre les fondations de vos connaissances sur Linux. Jutilise moi-mme Linux depuis environ 15 ans et je ne lai jamais regrett. Permettez-moi de vous transmettre mon enthousiasme pour Linux ! Michael Koer, juillet 2007
Remerciements

Je tiens remercier : Linus Torvalds, qui a apport sa pierre (son noyau ?) ldice ; les milliers de dveloppeurs qui ont fait de Linux un systme complet formidable ; Margot Neuschmied, pour sa trs belle image de couverture de ldition allemande ; lditeur Addison-Wesley, qui ma donn le temps dont javais besoin pour crire ce livre ; ainsi quHeidi, Sebastian et Matthias, qui ce livre est ddi.

Conception
Ce livre se dcoupe en 6 parties, compltes de deux annexes : La Partie 1 (Chapitres 1 5) sert dintroduction et vous accompagne dans vos premiers pas sous Linux, depuis linstallation jusqu lutilisation des systmes graphiques Gnome et KDE. La Partie 2 (Chapitres 6 11) dcrit les applications du systme Linux. Vous trouverez des trucs et astuces associs la navigation web, aux clients de courrier lectronique, au travail bureautique avec OpenOfce.org, au tri des photos ou encore la retouche photo avec Gimp. La Partie 3 (Chapitres 12 19) sintresse aux fondations de Linux et ses outils. Le livre devient alors plus technique. Vous dcouvrirez comment parcourir le systme de chiers, convertir les documents et les images dans un autre format, et utiliser efcacement linterprteur de commandes bash. La Partie 4 (Chapitres 20 25) traite de la conguration. Que vous ayez des problmes avec votre matriel ou des besoins trs spciques, vous apprendrez administrer votre systme de chiers, congurer votre systme graphique (y compris les graphismes 3D et le bureau 3D), installer et actualiser des paquets, modier le dmarrage de votre systme, ainsi quajuster et compiler le noyau et ses modules. La Partie 5 (Chapitres 26 30) explique la conguration du rseau, depuis le client (rseau local, rseau sans l, modem, RNIS, ADSL) jusquau serveur (passerelle Internet, DNS, NFS, Samba, etc.). Nous parlerons aussi de la scurit et en particulier des parefeu qui empchent toute intrusion dans votre rseau depuis lextrieur.

PRFACE

3
La Partie 6 (Chapitres 31 33) voque le thme de la virtualisation. Elle montre comment lancer des programmes Windows grce Wine et mettre en place des machines virtuelles qui peuvent accueillir des systmes Linux ou Windows, grce VirtualBox et Xen. Les Annexes A et B fournissent des pointeurs vers les diffrentes distributions et les documentations associes, ainsi quune brve rfrence thmatique des commandes.

Ce que vous ne trouverez pas dans cet ouvrage


Linux est trop vaste pour tre dcrit entirement dans un livre. notre grand regret, voici les lments non traits dans cet ouvrage : Matriel. Ce livre dcrit uniquement le matriel que jai pu tester moi-mme. Il est impossible daborder toutes les variantes de matriel. Si vous dsirez mettre en service du matriel moderne sous Linux, explorez Internet. Programmation. Ce livre ne traite pas vraiment de programmation. Nous ne parlerons ni de langages de programmation, ni des lments internes du noyau. Nous expliquerons en revanche comment recompiler un noyau, mais des connaissances en programmation ne sont pas ncessaires. Administration rseau et systme. Nous nous limiterons aux besoins dun utilisateur priv qui connecte son propre ordinateur Internet et qui administre un petit rseau local. Si vous dsirez utiliser Linux sur un serveur dans un gros rseau et adopter la scurit et les considrations de performances correspondantes, vous devrez vous pencher sur des ouvrages plus avancs. Applications multimdias. Ce livre ne traite que des lments de base en ce qui concerne le multimdia (lecture audio et vido, gravure de CD et DVD). Programmes commerciaux. quelques exceptions prs (CrossOver, VMware), cet ouvrage fait limpasse sur les programmes commerciaux.

Styles utiliss dans ce livre


Ce livre fournit souvent des commandes. Les parties effectivement saisies sont donc distingues par du gras. Le reste des listings se compose de linvite de commande (qui dpend du systme) et des sorties des commandes. Dans lexemple suivant, seul ls *.jpg est saisi et permet dafcher la liste de tous les chiers .jpg du rpertoire.
utilisateur$ ls *.jpg dscf2532.jpg dscf2533.jpg dscf2534.jpg ...
root

Certaines commandes ne peuvent tre lances que par ladministrateur du systme, root. La reprsentation de ces commandes commence alors par root# :
root# /etc/init.d/nfs restart

4
sudo

LINUX

Dans certaines distributions (par exemple, Ubuntu), le compte root est dsactiv. Dans ce cas, les commandes systme sont lances laide de sudo. Vous devez alors donner votre mot de passe, ce qui ne sera pas indiqu systmatiquement dans le livre. Vous trouverez plus dinformations sur sudo au Chapitre 14.
utilisateur$ sudo /etc/init.d/nfs restart Password: *********

Commandes sur plusieurs lignes

Si certaines commandes sont trop longues pour tenir sur une seule ligne, elles sont crites sur plusieurs lignes, qui sont spares par le caractre \. Vous pouvez dans ce cas taper la commande en une ligne sans les caractres \ ou la sparer en plusieurs lignes comme dans le livre. \ peut aussi tre utilis sous Linux comme caractre permettant dexcuter une commande de plusieurs lignes.

PARTIE 1 PREMIERS PAS ET INSTALLATION

Quest-ce que Linux ?


Quest-ce que Linux ? Pour rpondre cette premire question, nous allons expliquer quelques concepts utiliss tout au long de cet ouvrage : le systme dexploitation, Unix, les distributions, le noyau, etc. Un aperu rapide des caractristiques de Linux et des applications disponibles rend vidente la richesse des utilisations de ce systme. Ce chapitre est un court survol de lhistoire encore jeune de Linux. Vous dcouvrirez comment Linux a t dvelopp et sur quels composants il est bas. La GPL (General Public License) est bien sr un point majeur de cette histoire : elle dnit sous quelles conditions Linux peut tre redistribu. Elle fait de Linux un systme libre, o "libre" signie bien plus que simplement "gratuit".

1.1

Introduction

Linux est un systme dexploitation comparable Unix. La diffrence majeure tient au fait que Linux peut tre copi avec lintgralit de son code source (pour plus de dtails sur les conditions sous lesquelles Linux et les programmes quil contient peuvent tre redistribus, voir section 1.4).
Systme dexploitation

Un systme dexploitation est un ensemble de programmes prenant en charge les fonctions les plus basiques dun ordinateur : linterface entre lutilisateur et la machine (gestion du clavier, de lcran, etc.), ainsi que la gestion des ressources du systme (capacit mmoire, disque dur, etc.). Un systme dexploitation est ncessaire pour lancer des applications et enregistrer des donnes dans un chier. Au cours de lhistoire de linformatique, diffrents systmes dexploitation ont t dvelopps. Jusquici, vous avez probablement t en contact avec lun des nombreux systmes dexploitation Windows (3.1, 95, 98, SE, ME, NT, 2000, XP, 2003, Vista), voire avec leur prdcesseur, MS-DOS. On peut citer dautres systmes dexploitation, comme ceux des ordinateurs Apple et des ordinateurs dj oublis, Commodore Amiga et Atari ST. Bien avant tous ces systmes dexploitation, il y avait Unix. Dun point de vue historique, ce dernier est considr comme un systme dexploitation trs ancien. Pourtant, il sagit dun systme moderne, quip ds le dpart de fonctionnalits qui ne sont apparues sous une forme comparable chez Microsoft que bien plus tard (avec Windows NT). Unix fournissait dj un environnement multitche, une sparation des processus (et donc une plus grande stabilit), des droits daccs clairs pour les chiers (et donc davantage de scurit dans le cadre dun systme multi-utilisateur), des fonctions rseau sophistiques, etc. Mais Unix noffrait, il y a encore une ou deux dcennies, quune interface

Unix

LINUX

utilisateur spartiate et avait des besoins matriels importants. Cest pourquoi Microsoft ou Apple, malgr des systmes dexploitation moins spectaculaires, ont eu nettement plus de succs quUnix, qui est rest cantonn aux stations de travail coteuses en environnement scientique ou technique.
Linux

Linux nest en thorie quune nouvelle variante dUnix. On compte au nombre de ses particularits la mise disposition gratuite de son code source et la prise en charge de matriels trs divers. La large diffusion de Linux ces dernires annes, ainsi que lexplosion dInternet et des besoins associs en serveurs stables, extensibles et performants ont offert une nouvelle jeunesse au monde dUnix, que lon avait probablement enterr prmaturment.
Unix est ici utilis comme un terme gnrique qui regroupe divers systmes dexploitation drivant dUnix. Leur nom se termine parfois en -ix (Irix, Xenix, etc.), mais ce nest pas une rgle absolue (HPUX, Solaris, etc.). Ces noms sont gnralement des marques dposes par leurs dtenteurs respectifs. Unix est lui-mme une marque dpose. Les droits associs ont chang plusieurs fois de propritaire ces dernires annes. Vous pouvez installer plusieurs systmes dexploitation en parallle sur votre ordinateur. Le menu de dmarrage vous offre alors le choix de dmarrer lun de ces systmes, quil sagisse de Windows, de Linux ou dun autre systme dexploitation. Vous pouvez de plus accder votre systme de fichiers Windows sous Linux.

Noyau
Le terme Linux ne recouvre, strictement parlant, que le noyau. Il sagit de la partie la plus interne dun systme dexploitation, qui contient les fonctions les plus lmentaires comme la gestion du disque, la gestion des processus et le contrle du matriel. Les informations contenues dans ce livre se basent sur le noyau 2.6. Comme Linux est toujours activement dvelopp, de nouvelles versions du noyau voient constamment le jour. Mais nayez crainte : lorsque le noyau Linux fonctionne de manire stable sur votre ordinateur, il est rare de devoir le modier. La plupart des distributions soccupent des mises jour de scurit ncessaires. Nous parlerons plus en dtail du noyau et de ses caractristiques au Chapitre 25. Nous dcrirons galement comment compiler votre propre noyau. Attention ne pas confondre les diffrents numros de version de Linux : le noyau en possde un, tout comme les bibliothques, les compilateurs, les programmes, les distributions, etc. Tous ces numros de version sont indpendants les uns des autres. La meilleure description de votre systme Linux est le nom et le numro de version de votre distribution, par exemple Ubuntu 8.04.

Caractristiques du noyau
Linux est un systme multitche (plusieurs processus peuvent fonctionner en mme temps), multi-utilisateur (plusieurs utilisateurs peuvent lutiliser en mme temps), qui prend en charge la pagination (le transfert de donnes de la mmoire au disque dur

QUEST-CE QUE LINUX ?

lorsquil ny a plus assez de RAM disposition), les bibliothques partages (celles qui contiennent les fonctions du systme ne sont charges quune seule fois, mme lorsque plusieurs processus les utilisent), la communication interprocessus et le multitraitement (souvent appel SMP pour Symmetric Multi Processing, qui recouvre lutilisation de plusieurs processeurs ou curs de processeurs). Linux permet dexploiter pratiquement toute la gamme de matriel PC. En dehors des plateformes de type Intel, il existe galement des versions pour dinnombrables architectures. Linux fonctionne aussi sur des stations de travail Sun, des ordinateurs Apple, etc. Linux devient galement de plus en plus populaires sur les systmes embarqus, qui ne sont pas proprement parler des PC. Si vous possdez par exemple un routeur Wi-Fi, il est possible quil tourne sous Linux ! Linux permet dutiliser de nombreux systmes de chiers. Le systme ext3 est un des plus frquents. Les fonctions de journalisation sassurent que le systme peut tre redmarr trs rapidement aprs un arrt inopin (comme lors dun orage). Les pertes de donnes sont mme dans ce cas improbables. Linux fournit galement une large palette de protocoles rseau (TCP/IP, y compris IPv6, IPsec, PPP, etc.).

Prise en charge du matriel


Linux prend en charge presque tout le matriel PC. Il existe cependant quelques exceptions : Les cartes graphiques trs rcentes ne sont souvent pas prises en charge, ou partiellement. Les fabricants de matriel (ATI, NVIDIA) fournissent des pilotes pour quelques cartes, mais leur intgration Linux peut tre difcile. Les ordinateurs portables rcents incluent souvent du matriel que Linux ne peut pas utiliser, ou partiellement. Les ordinateurs portables ont presque toujours une carte Wi-Fi. De nombreux modles standard sont facilement pris en charge, mais les modles rcents ou exotiques posent souvent problme. Les priphriques spciques Windows, comme les imprimantes GDI, les Winmodems et certains scanners, sont une autre source de problmes. La particularit de ces priphriques est quils nutilisent pas de standards ouverts, mais fonctionnent avec des pilotes dvelopps uniquement pour Windows. Le dveloppement de pilotes pour Linux choue souvent du fait que les fabricants ne fournissent aucune spcication ou interdisent lutilisation de ces spcications dans du code libre. Pour toutes ces raisons, avant de vous dcider pour lachat dun nouvel ordinateur ou dune extension matrielle, vriez que tous les composants sont pris en charge sous Linux. Les pages web suivantes contiennent des informations utiles. Un bon point de dpart est le Hardware-HOWTO (attention, sa traduction franaise nest pas toujours jour). Vous trouverez ces liens, sous leur forme actualise, sur ma page web http://www.koer.cc.

LINUX

Pages web sur le thme du matriel sous Linux Aperu : 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/Matriel 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 navons pas encore rpondu compltement la question initiale : "Quest-ce que Linux ?". La plupart des utilisateurs sintressent peu au noyau, tant quil fonctionne et quil prend en charge le matriel prsent. Pour eux, le terme Linux regroupe un ensemble de programmes, gnralement fournis par la distribution. Cest sous cette acception quest gnralement reconnu Linux : un noyau, auquel sont ajouts de nombreux petits outils, les environnements de bureau KDE et Gnome, diffrents paquetages de bureautique, le programme graphique Gimp, dinnombrables langages de programmation et au moins autant de programmes serveur (serveur web, serveur de courrier lectronique, serveur de chiers, serveur dimpression, etc.). Cette unit compose du noyau et de ses programmes complmentaires est appele distribution. Elle permet dinstaller Linux rapidement et confortablement. Les distributions sont pour la plupart disponibles lachat sous forme de CD ou de DVD et peuvent gnralement tre tlcharges sur Internet. En raison de la taille des donnes (souvent plusieurs gigaoctets), la copie dune distribution ou son installation directement sur le rseau demande une excellente connexion Internet. Les distributions se diffrencient principalement sur ces points : tendue et actualit. Le nombre, le choix et lactualit des programmes et des bibliothques fournis diffrent selon les distributions. Certaines se rengorgent du nombre de CD fournis.

QUEST-CE QUE LINUX ?

Pour viter aux utilisateurs de devoir changer trop souvent de CD lors de linstallation ou des mises jour ultrieures, certaines distributions fournissent galement des DVD. Outils dinstallation et de conguration. Les programmes dinstallation, de conguration et de maintenance du systme aident modier les centaines de chiers de conguration du systme de manire simple. Des outils fonctionnels pour linstallation et la conguration reprsentent dnormes conomies de temps. Conguration du bureau (KDE, Gnome). La plupart des distributions offrent le choix lutilisateur entre KDE, Gnome et dventuels autres gestionnaires de fentres. Certaines diffrences existent galement dans la conguration de dtail de KDE ou de Gnome, touchant laspect extrieur, lordre des menus, etc. Reconnaissance et conguration du matriel. Linux gre la majorit du matriel PC. Il est donc agrable que les distributions dtectent automatiquement le matriel et permettent de lutiliser immdiatement. Si cela ne fonctionne pas, il faut bien souvent en passer par une conguration manuelle, ce que la plupart des utilisateurs de Linux redoutent. Systmes de paquetages. On administre les applications grce aux paquetages. Le systme de paquetages inue sur la facilit dinstallation de programmes supplmentaires et de mise jour des programmes. Il existe principalement trois systmes 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 scurit. Linux est un systme trs dynamique. Mme aprs la sortie dune distribution, de nombreuses nouveauts importantes apparaissent : des failles de scurit sont souvent dcouvertes dans divers programmes. Une bonne distribution se diffrencie par le fait quil existe un systme de mises jour semiou entirement automatique pour les installer sans effort. La priode pendant laquelle les mises jour de scurit sont disponibles prend une importance croissante. La rgle de base est gnralement celle-ci : plus la distribution est chre, plus cette priode est longue. Voici quelques exemples : pour Fedora, cette priode est denviron 13 mois (un mois aprs 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 donnes taient valables en 2007. Chercher la priode de disponibilit des mises jour sur le site web des distributions est nanmoins fastidieux. En dehors des produits entreprise les plus chers, aucune distribution ne veut apparemment indiquer la dure de la priode dassistance. Mais en principe, vous ne pouvez utiliser une distribution de manire sre que pendant le laps de temps au cours duquel vous pouvez obtenir des mises jour. Aprs cette priode, vous devez passer une version plus rcente pour des raisons de scurit. Disponibilit des sources de paquetages. quoi bon bncier du meilleur systme de paquetages et des mises jour les plus actuelles si le dpt de paquetages sur Internet nest disponible que la moiti du temps ou sil est horriblement lent ? Il est malheureusement difcile dobtenir des rfrences sur ce point. Les dpts de paquetages de petites distributions moins rpandues sont souvent plus facilement accessibles que ceux des grosses distributions, qui distribuent des mises jour des milliers dutilisateurs

10

LINUX

Distributions commerciales

Distributions gratuites

quotidiennement. Mais si la distribution devient soudainement populaire, la situation peut trs vite sinverser... De plus, les grosses distributions ont plus de chances davoir un ou plusieurs miroirs distribuant leurs mises jour. Existence dun systme "live". Quelques distributions permettent dutiliser Linux directement depuis un CD-ROM. Cette utilisation est certes lente et peu souple, mais permet dessayer Linux trs simplement. De plus, un live CD est une solution idale pour rparer un systme Linux prsent sur le disque dur, mais endommag. Plateformes cibles (architecture du processeur). De nombreuses distributions ne fonctionnent que sur les processeurs compatibles Intel ou AMD, et fournissent en gnral une variante 32 bits et 64 bits. Il existe galement des distributions pour dautres plateformes, par exemple Sparc (Sun) ou PowerPC. Documentation. Il existe de grandes diffrences dans la qualit et la quantit des documentations disponibles. Assistance. Quelques distributions fournissent une assistance gratuite pour linstallation (par courrier lectronique ou tlphone). Prsence 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 gratuitement sur Internet. Certaines posent cependant quelques limites. Les distributions dentreprise de Red Hat et de Novell noffrent un accs au systme de mises jour qu leurs clients enregistrs. 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 sapplique principalement lutilisation des marques dposes. Les restrictions de redistribution sappliquent galement lorsque la distribution fournit des logiciels commerciaux. Lallgation de gratuit de Linux est en contradiction avec le prix de certaines distributions, pour la plupart penses pour les entreprises. On peut cependant en comprendre facilement la raison : mme si Linux et la plupart des applications sont effectivement disponibles gratuitement sur Internet, lassemblage des composants demande du temps et du savoir-faire. Un bon programme dinstallation vaut souvent le prix de la distribution ! Il permet dconomiser du temps dinstallation et de conguration aux nouveaux venus Linux. La production dun ou de plusieurs CD, tout comme limpression dun manuel cotent galement de largent. Un bon service de mises jour est tout aussi important : il propose de nouvelles versions des programmes impacts par une faille de scurit. Pour nir, il ne faut pas ngliger lassistance personnelle propose par certaines distributions pour rgler les problmes dinstallation. Une distribution est dautant plus chre quelle fournit de nombreux programmes commerciaux. En dautres mots, dans une distribution commerciale, vous ne payez pas le logiciel en soi, mais les services associs. Malgr la commercialisation grandissante du march Linux, il existe encore de nombreuses distributions entirement gratuites. Les acteurs populaires sont actuellement Debian, Fedora, SUSE et Ubuntu. Dans le cas de ces distributions, vous tlchargez les chiers ISO sur Internet et les gravez vous-mme en CD ou DVD dinstallation. Si votre accs Internet est trop lent, des entreprises proposent ces CD et DVD bas prix (par exemple, en France, http://www.ikarios.com/).

QUEST-CE QUE LINUX ?

11

Quelle distribution pour quel but ?

Dterminer la meilleure distribution et laquelle conseiller qui tient souvent de la guerre de religions. Lorsquon a choisi une distribution et que lon sest habitu ses particularits, il est difcile den changer. Cela nest faisable quen rinstallant lensemble du systme, ce qui peut savrer fastidieux. Les critres de choix dune distribution sont lactualit de ses composants (version du noyau et des programmes importants, comme le compilateur C ou les environnements de bureau), la qualit des outils dinstallation et de conguration, lassistance fournie, la prsence dun manuel, etc.
La concurrence des distributions pour leur dveloppement est stimulante ; installer des programmes non fournis par la distribution (en particulier, les programmes commerciaux) peut savrer dlicat. Une bibliothque manquante ou trop ancienne est souvent la raison pour laquelle un programme ne se lance pas. liminer ce type de problmes est presque impossible, en particulier pour les dbutants. Aujourdhui, certaines entreprises nassurent lassistance sur leurs produits que lorsquils sont utiliss avec une distribution donne (et la distribution choisie diffre bien videmment dune entreprise lautre). Pour viter ce genre de problmes, le projet Linux Standard Base a t cr. La spcification LSB dfinit des rgles qui sont un dnominateur 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 lordre alphabtique et non exhaustive) offre une premire orientation. Notez cependant que le paysage des distributions Linux se transforme rapidement. De nouvelles distributions apparaissent et gagnent vite en popularit (effet de mode important), tandis que dautres perdent rapidement leur importance ou sont mme abandonnes. Cette section nest quun instantan, en aucun cas objectif, de la situation du march en 2008.
Debian www.debian. org

Debian est la plus ancienne des distributions totalement gratuites. Elle a t compose par des dveloppeurs Linux engags, qui mettent en avant sa grande stabilit et le respect des rgles du jeu du logiciel libre. Linterprtation stricte de cette philosophie a entran plusieurs reprises des retards dans lachvement de nouvelles versions. Mais certaines ides de Debian (par exemple, le gestionnaire de paquetages trs professionnel) ont t dcisives pour dautres distributions. Debian contient des versions de programmes plutt anciennes. En raison des aides limites la conguration, elle nest pas conseille aux dbutants sous Linux. Il existe cependant de nombreuses distributions drives de Debian (par exemple, Ubuntu et Xandros), plus adaptes ces derniers.

Fedora www.fedora project.org

Fedora (anciennement Fedora Core) est la branche de dveloppement gratuite de Red Hat Linux. Son dveloppement est gr et assist par Red Hat. La communaut open-source est invite apporter son aide, mais a peu dinuence sur les dcisions stratgiques.

12

LINUX

Une nouvelle version de Fedora sort environ tous les six mois. Les mises jour sont fournies jusqu un mois aprs la sortie des deux versions suivantes. La dure de vie dune version est donc denviron 13 mois, ce qui est plutt court. Red Hat fait clairement remarquer que Fedora ne vise pas une utilisation commerciale. Au cours des dernires annes, elle sest tablie comme une distribution moderne et incroyablement robuste, dont la courte dure de mises jour est le principal dfaut. Pour Red Hat, Fedora est une manire de tester les nouvelles fonctionnalits sans mettre en pril la stabilit des versions entreprise. Les programmes qui font leurs preuves sont plus tard intgrs ces dernires. Pour les fans de Linux, lintrt de Fedora rside dans le fait quelle joue un rle de prcurseur dans le dveloppement technique de Linux. Les nouvelles fonctionnalits de Linux se trouvent bien souvent dabord dans Fedora, avant dtre reprises dans les autres distributions.
Gentoo www.gentoo. org

Gentoo vise les dveloppeurs et les utilisateurs qui dsirent une exibilit et un contrle optimal de leur distribution. Sa particularit est que chaque paquetage de programme peut tre compil et ainsi optimis pour le matriel sur lequel il fonctionne. Les professionnels de Linux peuvent bien sr compiler leurs propres programmes sur nimporte quelle distribution, mais Gentoo les assiste trs bien grce des outils de conguration adapts. La spcicit de Knoppix est quelle ne doit pas ncessairement tre installe sur le disque dur. Elle fonctionne directement depuis le live CD. Knoppix drive de Debian. Paralllement au systme original assembl par Klaus Knopper, il existe dinnombrables variantes, qui diffrent de par les programmes (par exemple, pour des applications scientiques) ou les langues proposes (espagnol, japonais, etc.). La version la plus connue de Knoppix en franais, compose par le groupe Linux Azur, se nomme Kaella. Il existe de nombreux autres systmes "live", tels que Kantonix, Slax, Ubuntu, Mandriva One, etc. Cest cependant Klaus Knopper qui a aid rpandre ces systmes.

Knoppix www.knoppix. net

Mandriva www.mandri va.com

Mandriva provient de la fusion entre Mandrake Linux (France) et Connectiva (Brsil). Mandrake Linux tait lune des plus grandes distributions aux cts de Red Hat et de SUSE. Aujourdhui, sa popularit tend dcrotre en dehors des pays dorigine (Mandriva reste nanmoins trs prsente en France). Novell, qui a achet en novembre 2003 lentreprise allemande SUSE, est actuellement le numro 2 du march commercial de Linux. Tout comme Red Hat, Novell suit deux chemins. Dune part, diverses distributions destination des entreprises sont commercialises sous les noms Novell et SUSE. Dautre part, la distribution openSUSE est gratuite et vise les utilisateurs privs et les dveloppeurs de Linux (voir ci-aprs). Au printemps 2006, Novell a tabli un accord avec Microsoft qui la protge des procs lis aux brevets de Microsoft. Ce qui semble premire vue un grand pas en avant pour Linux est en fait considr dun il critique par de nombreux dveloppeurs de logiciels libres : laccord Novell/ Microsoft est-il le pralable des procs sur les brevets envers dautres entreprises Linux ?

Novell www.novell. com/linux

Red Hat www.redhat. com

Red Hat est lentreprise Linux la plus rpute sur le plan international. Ses distributions dominent le march amricain. Le systme de paquetages bas sur le format RPM (dvelopp par Red Hat) a t repris par de nombreuses distributions. Red Hat est particulirement connue des entreprises. Les versions entreprise (RHEL ou Red Hat Enterprise Linux) sont comparativement plus chres, mais offrent une grande stabilit et

QUEST-CE QUE LINUX ?

13

une politique de mises jour valable cinq ans. Les dveloppeurs et les utilisateurs enthousiastes qui cherchent un systme Red Hat gratuit peuvent se tourner vers Fedora (voir ci-dessus).
Slackware www.slackware.com

Lance en 1994, Slackware est lune des plus anciennes distributions Linux. lpoque, les CD nexistaient pas et taient remplacs par des douzaines de disquettes. Aujourdhui, Slackware ne parvient plus concurrencer les autres distributions en ce qui concerne la maintenance et linstallation. Elle conserve malgr tout de nombreux fans, qui prfrent la continuit et la stabilit de jolis outils dinstallation et de conguration. SUSE tait, jusqu son rachat par Novell, lentreprise dominante du march Linux europen, en particulier dans les pays germanophones. Cette marque dpose est utilise pour diverses distributions commerciales de Novell. Il existe galement la distribution gratuite openSUSE, qui vise les utilisateurs privs et les dveloppeurs de Linux. Comme Fedora, openSUSE sert de laboratoire de dveloppement et de test pour les versions entreprise. Le processus de dveloppement a t rorganis en 2005. Depuis cette date, les bta-tests, les listes de discussion et la base de donnes de bogues, ainsi que la distribution termine sont accessibles gratuitement. Contrairement Fedora, openSUSE est toujours disponible en tant que bote contenant un manuel dutilisation et une assistance. La priode de mises jour de deux ans se dmarque galement de celle de Fedora, plus minimaliste.

SUSE/ openSUSE www.opensu se.org

Ubuntu

Ubuntu est une distribution rcente trs intressante. Lance en octobre 2004, elle est aujourdhui la distribution Linux la plus populaire. Une nouvelle version sort tous les six mois et peut tre utilise pendant au moins 18 mois. Base sur Debian, Ubuntu est plus simple dutilisation. Le mdia dinstallation est particulirement petit : un seul CD suft. Au besoin, dinnombrables paquetages peuvent tre installs depuis Internet. Ubuntu, ainsi que ses mises jour, sont disponibles gratuitement. Elle est commercialement prise en charge par lentreprise Canonical (fonde par le sudafricain Mark Shuttleworth et dont le sige se situe sur lle de Man). Ubuntu est base sur Gnome, mais prsente de nombreuses variantes comme Kubuntu (avec KDE), Xubuntu (avec XFCE comme gestionnaire de fentres), Edubuntu (pour les coles) et Ubuntu Server (spcialis dans les applications serveur).

Xandros

Xandros est une distribution commerciale base sur Corel (Corel a tent dentrer dans le march Linux en 1999, mais a chou ; Xandros a rachet Corel Linux). Grce une utilisation simplie, elle vise surtout les dbutants et les personnes venant de Windows. De nombreux tests lont dcrite comme la distribution la plus accessible aux utilisateurs. Certaines versions contiennent CrossOver Ofce, qui permet linstallation et lutilisation de Microsoft Ofce sous Linux. Xandros a rcemment fait beaucoup parler delle, du fait de son installation par dfaut sur les PC ultraportables EEE dAsus.
Vous trouverez sur les pages suivantes un aperu des distributions les plus populaires du moment, quelles soient commerciales ou non : http://www.distrowatch.com/ ; http://lwn.net/Distributions/ ; http:/ /www.linuxhq.com/dist.html

14

LINUX

Distributions minimales
En plus des "grosses" distributions prsentes dans la section prcdente, il existe sur Internet dinnombrables assemblages de systmes miniatures (pouvant mme tenir sur une disquette !). Ces distributions se basent pour la plupart sur des versions du noyau plus anciennes et plus petites. Elles sont conues avant tout pour des tches spcialises, quil sagisse de maintenance (systme de secours) ou de systmes 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 paramtres de conguration sont enregistrs sur une disquette ou sur une cl USB (le disque dur est donc accessoire !). Les besoins matriels sont galement trs restreints : un processeur compatible avec un Intel 486 et 32 Mo de RAM sufsent. Damn Small Linux est une autre distribution minimale populaire. Elle tient sur un mini-CD (environ 50 Mo), mais fournit toutes les fonctions de base dune distribution de bureau.

Damn Small Linux

Problme du choix
lissue des travaux ncessaires cet ouvrage et aprs avoir install de nombreuses distributions Linux, mon rve dassembler tous les avantages dune distribution sans payer le prix de leurs inconvnients reste inassouvi. Par consquent, il est difcile de recommander une distribution donne. Les dbutants sous Linux peuvent nanmoins dabord utiliser une distribution trs rpandue, comme Fedora, openSUSE, Ubuntu ou Mandriva, car ils nauront aucun problme trouver des informations sur Internet, dans des livres ou dans la presse. Il est donc plus simple dobtenir de laide en cas de problme. Les distributions prouves sont galement un bon choix en ce qui concerne les aides linstallation ou la conguration de matriels inhabituels ou non standard. Pour nir, elles facilitent largement la recherche de paquetages complmentaires ou de mises jour. Les utilisateurs de distributions commerciales doivent dcider sils sont prts payer pour une assistance professionnelle. Dans ce cas, leur choix peut sorienter 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, Scientic Linux ou encore White Box Linux).

1.3

Fantasmes et ralit

Cette section regroupe quelques prjugs contre Linux. Mon but est de prsenter une image non biaise de Linux, sans les exagrations des fans enthousiastes, ni le sombre tableau dpeint par ses adversaires, qui le rendent bien pire quil nest par crainte de voir leur propre entreprise en danger.
Linux est plus rapide que Windows

Cette phrase nest ni correcte, ni incorrecte. Il existe, en effet, des programmes qui fonctionnent plus vite sous Linux ou sous Windows. Mais on ne peut en tirer aucune conclusion

QUEST-CE QUE LINUX ?

15

Linux utilise moins de ressources que Windows

gnrale valide. Le rsultat dpend du systme pour lequel le programme a t optimis, des versions de Windows et de Linux, du matriel utilis, etc. Il est vrai que Linux peut fonctionner sur un PC 486 avec quelques mgaoctets de RAM. Mais dans cette conguration, il ne fonctionne quen mode texte, avec tout de mme plus de fonctionnalits quune version de Windows tournant sur le mme ordinateur. Les choses sont nanmoins diffrentes lorsquon compare une distribution rcente de Linux avec Windows XP. Pour travailler confortablement dans un environnement graphique, tous deux ont des besoins matriels relativement similaires. Linux tient cependant la comparaison par rapport Windows Vista, qui ncessite pour son interface graphique complte une conguration matrielle norme. Les effets 3D du bureau fonctionnent sous Linux sur des ordinateurs plus anciens. On peut certes sinterroger sur la ncessit 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 dmod dans deux trois ans. Tous les systmes dexploitation souffrent de problmes de scurit. En gnral, Linux sen sort plutt bien, mais on trouve encore des failles de scurit prsentes depuis plusieurs annes sous Linux et dautres Unix, y compris dans les programmes rseau. La sret de Linux dpend galement de son utilisation : Dans le cadre dune utilisation bureautique, Linux est linverse de Windows pratiquement exempt de virus. Il ny a eu jusquici aucun virus notable, alors que sous Windows, ils paralysent rgulirement des entreprises entires. La raison principale est que ladministration des droits sous Linux empche les applications courantes dendommager gravement le systme. la diffrence de Windows, il est galement dconseill sous Linux de lancer des programmes avec des droits dadministrateur systme lorsque ceux-ci ne sont pas strictement ncessaires. Lorsque Linux est utilis comme serveur rseau ou Internet, la scurit dpend largement de la maintenance du systme. Ces dernires annes, presque tous les problmes de scurit ont t corrigs avant que le risque de scurit ne soit connu et puisse tre utilis par des pirates. Si vous actualisez rgulirement les logiciels de votre ordinateur, les intrus ont peu de chances de pouvoir pntrer dans votre systme. La plupart des distributions fournissent des outils qui facilitent de telles mises jour. Les grosses distributions Linux offrent en gnral un systme de mises jour pour plusieurs annes. Vous actualisez ainsi les programmes dj installs ds quil existe une version plus rcente ou plus sre. Le systme de mises jour fonctionne souvent trs bien, mais ncessite une bonne connexion Internet : pour la plupart des distributions, il faut prvoir des douzaines de tlchargements, parfois de plus dune centaine de mgaoctets. Les produits Microsoft disposent dun systme comparable de mises jour depuis Windows XP SP2. La scurit des systmes Linux dpend galement de ltendue de vos propres comptences. Si un dbutant se prcipite, congure un serveur Internet et le connecte au rseau, il ne faut pas sattendre ce que ce serveur soit scuris de manire optimale. La littrature ce propos ne manque pas.

Linux est plus sr que Windows

16
Linux est plus stable que Windows

LINUX

Lorsque Linux est devenu populaire, Windows 95 commenait son avance triomphale. Lassertion "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 afrmations quant la stabilit de Linux rclament une diffrentiation importante : Le noyau est en soi extraordinairement stable. Je travaille depuis de nombreuses annes sous Linux et jai rarement expriment un plantage complet du systme dexploitation (il sagissait en gnral dun problme de matriel dfectueux ou mal congur). Les utilisateurs qui se servent de Linux comme dun serveur rseau parlent souvent de temps de fonctionnement (uptime) de plusieurs mois. Cela signie que le systme peut tourner pendant plus dun an sans interruption et fournir ses services sans protester. Les redmarrages font souvent suite des mises jour du noyau. La stabilit du systme ne fait donc aucun doute. En revanche, si on parle de Linux en tant que systme complet avec les applications associes (et donc dune distribution complte, avec X, KDE ou Gnome, etc.), la stabilit apparat alors beaucoup moins bonne. En particulier, les grosses applications comme OpenOfce.org ne sont pas labri dun plantage sous Linux. Les programmes serveur fonctionnent cependant pour la plupart sans souci. La stabilit de Linux dpend galement de la manire dont il est utilis. Les meilleurs rsultats sont gnralement obtenus dans un contexte de serveur rseau ou de station de travail ddie au travail scientique ou la programmation. Plus les programmes sapprochent dune utilisation bureautique, plus vous risquez de connatre de mauvaises performances en termes de stabilit.

Linux est moins cher que Windows

Cette afrmation est facile argumenter : Linux est disponible gratuitement. Elle est cependant conteste chez Microsoft, qui indique quil faut aussi prendre en compte les cots de formation et autres (ce qui prsuppose que la connaissance de Windows est inne, mais pas celle de Linux). De plus, toutes les distributions Linux ne sont pas gratuites. De nombreuses entreprises optent pour les offres plus chres de Red Hat ou de Novell, qui fournissent une meilleure assistance, des mises jour plus longues, de la maintenance, etc. Mme si lon tient compte de ces lments, largument conomique de Linux nest pas nier. Lorsquon achte un PC, Windows est gnralement dj prinstall. Linstallation de Linux est donc une complication supplmentaire. Mais elle nest pas plus complique que celle de Windows (mais qui installe Windows soi-mme de nos jours ?). La prise en charge des matriels rcents est cependant problmatique ; elle est en gnral meilleure sous Windows, car chaque fabricant de composants fournit un pilote Windows pour ses priphriques. Les pilotes sous Linux doivent souvent tre dvelopps par la communaut, ce qui peut prendre du temps.

Linux est compliqu installer

Linux est complexe utiliser

Ce prjug est ancien, mais il nest plus vrai, ou alors dans une trs faible mesure. Lutilisation de Linux est diffrente de celle de Windows, tout comme celle de Mac OS. La prise en main de Linux nest vraiment pas complique, mais la perte des habitudes prises sous Windows peut parfois tre difcile. Cette afrmation dpend de ce que lon entend par "applications multimdias". Linux peut lire ou coder les chiers audio. Il peut aussi tre utilis comme enregistreur numrique de vido, graveur de CD et de DVD, etc. Rcuprer, modier et imprimer des images numriques ne pose galement aucun problme.

Linux nest pas adapt aux applications multimdias

QUEST-CE QUE LINUX ?

17

Pour linstant, Linux ne possde pas de systme de DRM (Digital Rights Management, gestion des droits numriques), ncessaire pour exploiter les tlchargements lgaux audio et vido. La plupart des distributions Linux ne fournissent pas non plus par dfaut de lecteur DVD. Il existe des programmes sur Internet prvus pour cela, mais leur lgalit dpend des pays. De plus, lutilisation des fonctions 3D des cartes graphiques les plus rcentes peut tre difcile. Le matriel multimdia rcent pose galement souvent problme sous Linux. La tendance actuelle de lindustrie des mdias est malheureusement de supprimer de plus en plus de droits aux consommateurs et dempcher lutilisation de Linux comme plateforme multimdia. Les brevets et les algorithmes de chiffrement empchent les implmentations par des logiciels libres. Cest pourquoi Linux nest pas adapt aux applications multimdias.
Les programmes Windows ne fonctionnent pas sous Linux

De nombreux programmes, comme Microsoft Ofce ou Adobe Photoshop, ne sont actuellement disponibles que pour Windows et Mac OS. Ce problme peut cependant tre contourn : Il existe pour de nombreux programmes des quivalents sous Linux, comme OpenOfce.org ou le programme graphique Gimp. Certains programmes peuvent tre lancs sous Linux grce lmulateur gratuit Wine. Ce dernier est cependant peu intuitif et donc rserv aux utilisateurs chevronns. CrossOver, bas sur Wine, augmente cette compatibilit. Il facilite linstallation et lexcution de la plupart des composants Ofce, ainsi que de quelques autres programmes. Les outils de virtualisation tels que VMware ou Xen vont mme plus loin : ils mulent un ordinateur complet. Vous pouvez y installer Windows et ainsi le lancer dans une fentre. Cela fonctionne trs bien, mais ncessite du matriel puissant (en particulier, beaucoup de RAM) et il sagit dune solution relativement chre : vous avez besoin dune licence Windows, laquelle sajoute 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 diffrentes licences existantes. Lide de base du logiciel libre est que le code source est disponible librement et quil peut tre tendu ou modi par quiconque. Une restriction peut nanmoins sappliquer : quiconque distribue des produits dvelopps partir de code libre doit luimme distribuer librement son code. Le concept de logiciel libre nempche nullement la vente de produits libres. Cela peut sembler premire vue contradictoire. Mais cette libert sapplique plus au code quau produit ni. Cette libre disponibilit rglemente aussi la tarication des produits libres : quiconque vend la compilation dun logiciel libre doit proposer dautres services (manuel, assistance,

18

LINUX

GPL (General Public License)

etc.) pour survivre. Si le tarif nest pas li des services, dautres entreprises trouveront le moyen doffrir la mme chose moins cher. Le but dun dveloppeur de logiciels libres est de parvenir un systme dont le code est librement accessible et quil le reste. Pour viter les abus, de nombreux logiciels libres sont sous licence GNU General Public License (GPL). La GPL sappuie sur la Free Software Foundation (FSF). Cette organisation, cre par Richard Stallman (souvent appel RMS et auteur entre autres de lditeur Emacs), a pour but de mettre disposition du public des logiciels libres de qualit. Le principe de base de la GPL est que nimporte qui peut modier le code et mme vendre le programme rsultant, mais doit alors garantir aux utilisateurs/consommateurs les mmes droits : avoir le code source disposition, pouvoir le modier et le redistribuer gratuitement. Tous les programmes GNU doivent tre distribus avec le texte de la GPL. Cette dernire ne doit pas tre confondue avec le domaine public, o il nexiste aucune licence. La GPL empche donc que quelquun dveloppe partir dun programme GPL et vende cette nouvelle version sans fournir les modications sous forme de code source. Chaque modication prote donc lensemble des utilisateurs.
Le texte de la GPL se trouve ici : http://www.gnu.org/licenses/gpl.html Une version en franais, mais non valide lgalement, est consultable ladresse suivante : http://www.linux-france.org/article/these/gpl.html Lide de base de la GPL est facile comprendre, mais certains dtails soulvent quelques questions, dont les rponses figurent sur cette page : http://www.gnu.org/licenses/gpl-faq.html

Versions de la GPL

Les versions les plus utilises de la GPL sont actuellement la GPL 1 (1985) et la GPL 2 (1991). Sortie en juin 2007, la GPL 3 ne concerne pour linstant que quelques projets. Les principales nouveauts sont les suivantes : Linternationalisation. La GPL 3 devrait tre compatible avec la lgislation de davantage de pays. Les brevets logiciels. Lorsquun logiciel est dvelopp et distribu sous GPL 3, ses utilisateurs ne peuvent pas intenter de procs sur la base de brevets logiciels. Les DRM. La GPL 3 prend position contre les DRM et indique que celles-ci sont fondamentalement incompatibles avec lide de la GPL. Ladoption de la GPL 3 reste voir. Par exemple, de nombreux dveloppeurs du noyau, y compris Linus Torvalds, sopposent au passage du noyau sous GPL 3. Cela semble galement difcile en pratique : tous les dveloppeurs ayant particip au noyau doivent saccorder. De plus, certains dveloppeurs de logiciels libres sont trs critiques vis--vis des nouveauts de la GPL 3, en particulier en ce qui concerne les brevets et les DRM. Vous trouverez plus dinformations sur la GPL 3 ladresse http://gplv3.fsf.org/. La LGPL (GNU Lesser GPL) est une variante de la GPL. La diffrence majeure est quune bibliothque sous licence LGPL peut tre utilise par des produits commerciaux, dont le code nest pas disponible gratuitement. Sans la LGPL, les bibliothques sous GPL ne pourraient tre utilises que dans des programmes GPL, ce qui serait bien souvent une restriction non dsire pour les programmes commerciaux.

LGPL (Lesser General Public License)

QUEST-CE QUE LINUX ?

19

Autres licences libres

Toutes les parties dune distribution ne rpondent pas aux mmes licences. Le noyau et de nombreux outils dpendent de la GPL, mais certains composants et logiciels ont dautres licences : Le systme XWindow a sa propre licence. Il a t au dpart dvelopp par luniversit amricaine MIT. La licence est drive dune ancienne licence MIT. Certains outils rseau sont sous licence BSD. BSD est, comme Linux, un systme Unix libre. Cette licence est moins contraignante que la GPL, car elle permet lutilisation commerciale du code sans rediffusion des modications. Elle est donc intressante pour les dveloppeurs 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 dveloppement dun produit commercial bas sur MySQL et sa vente (sans mettre disposition le code) imposent lutilisation de la licence commerciale. La diffusion de MySQL cote alors de largent. Dautres programmes sont des programmes propritaires, mais utilisables gratuitement. Un exemple connu est Adobe Reader, qui permet de lire des documents PDF. Il peut tre utilis librement sous Linux, mais son code source nest pas disponible. Certaines distributions distinguent les produits en fonction des droits lis leur utilisation ou leur redistribution. Sous Debian, les programmes pouvant poser problme se trouvent dans le rpertoire non-free.
Le maquis des licences gratuites plus ou moins libres est dlicat apprhender. La marge de concepts est large entre linterprtation parfois extrmiste de "libre" au sens de la GPL et les clauses limitatives de certaines entreprises qui dsirent appeler leur logiciel "libre" (puisque cest moderne), mais qui veulent en ralit garder tout contrle sur leur code. Pour plus dinformations sur les licences libres et open-source, reportez-vous ladresse http://www.opensource.org.

Conflits de licences entre les logiciels libres et propritaires


Licences libres pour les dveloppeurs de logiciels

Si vous souhaitez dvelopper des logiciels et les vendre avec Linux, ou combins des logiciels ou des bibliothques libres, vous devrez sans doute vous dbattre dans la problmatique parfois complexe des diffrentes 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 dune licence libre. Il existe cependant des exceptions qui facilitent lutilisation commerciale de composants libres. Cest par exemple le cas pour Apache et PHP, qui peuvent tre redistribus gratuitement en combinaison avec un programme ferm. En ce qui concerne le serveur de bases de donnes MySQL, si un client dsire vendre un programme bas sur ce serveur sans en fournir 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 diffrentes, plus la redistribution est complique.

20

LINUX

Le respect des rgles de la GPL peut parfois tre port devant la justice. Divers cas dentreprises ayant utilis des bibliothques libres sans mettre disposition leur code sont documents sur le site web http://gpl-violations.org. En gnral, un accord peut tre atteint sans procs.
Problme des pilotes

Un problme se pose pour certains composants matriels (en particulier, les cartes graphiques dATI ou de NVIDIA) : leurs pilotes se composent dun petit module de noyau (libre) et de divers programmes ou bibliothques dont le code source nest pas disponible (propritaire). Le module du noyau na pour but que de fournir une interface entre le noyau et le pilote propritaire. Pour la plupart des utilisateurs de Linux, ces pilotes sont une bonne chose : ils sont gratuits et permettent dutiliser du matriel pour lequel il nexiste aucun pilote complet. La raison est que les fabricants de matriel refusent de fournir les informations ncessaires au dveloppement de pilotes, puisquelles sont la proprit de lentreprise, qui ne dsire 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 dveloppeurs ne les acceptent qu contrecur. Une redistribution directe de ces pilotes avec des produits GPL nest pas possible ; lutilisateur doit donc gnralement les tlcharger et les installer lui-mme. Il existe mme des efforts visant modier le noyau pour que ce type de pilotes ne fonctionne plus. Reste savoir si cette conception des rgles de la GPL prote ou nuit lide du logiciel libre. Les optimistes pensent quinterdire ces pilotes obligerait les entreprises dvelopper des pilotes libres ou fournir les spcications ncessaires ce dveloppement. Les pessimistes craignent que le matriel concern ne soit plus facilement utilisable. Lissue de ce conit nest pour linstant pas en vue.

1.5
1982 : GNU

Histoire de Linux

Lhistoire de Linux pourrait dbuter avec celle dUnix, mais la place manque. Cette rtrospective commence donc avec la fondation du projet GNU par Richard Stallman. GNU signie GNU is Not Unix, GNU nest pas Unix. Ce projet a dvelopp ds 1982 des outils libres pour les Unix propritaires. Ces outils ont t utiliss comme version de remplacement des composants originaux sur de nombreux systmes, quil sagisse du compilateur C GNU GCC, de lditeur Emacs ou de divers utilitaires comme find et grep. Il tait temps, sept ans aprs le dbut du projet GNU, de crer la premire version de la GPL. Cette licence sassure que le code reste libre. La premire version du noyau Linux (version 0.01) a t dveloppe par Linus Torvalds Helsinki. Le code du programme a t distribu en septembre 1991 sur Internet. Trs vite, des programmeurs du monde entier se sont intresss cette ide et ont dvelopp des extensions : un meilleur systme de gestion de chiers, des pilotes pour divers composants matriels, des programmes supplmentaires comme un mulateur DOS, etc. Tous ces composants ont t mis disposition gratuitement et le systme complet a grandi une vitesse hallucinante. Le dveloppement de ce nouveau systme dexploitation naurait pas t possible sans la communication entre les programmeurs du monde entier via Internet.

1989 : la GPL

1991 : le noyau Linux version 0.01

QUEST-CE QUE LINUX ?

21

Ds que le noyau Linux a t sufsamment dvelopp pour que le compilateur C GNU fonctionne, la palette des outils GNU est soudain devenue disponible pour Linux. Un systme complet tait n du noyau brut, ce qui faisait de Linux un environnement de dveloppement bien plus attractif. Les facteurs qui ont fait de Linux un environnement de dveloppement plus attractif ont t le systme de chiers de Minix, des logiciels rseau provenant des Unix BSD, le systme XWindow du MIT et le portage de XFree86, ainsi que de nombreux logiciels libres comme LaTeX. Linus Torvalds nest donc pas la seule personne lorigine de Linux (mme si, sans lui, il nexisterait probablement pas sous sa forme actuelle). Ce systme a t dvelopp par de nombreuses personnes engages qui ont produit du code libre pendant des annes, que ce soit sur leur temps libre, dans le cadre de leurs tudes dinformatique ou dun emploi dans des entreprises comme IBM ou HP. Le noyau Linux reprsente lui seul plusieurs millions de lignes de code !
1994 : les premires distributions

Les tudiants passionns dinformatique pouvaient tlcharger, compiler et installer euxmmes Linux et ses composants. Son utilisation sest nanmoins largement dveloppe grce aux premires distributions, qui empaquetaient des logiciels sur des disquettes ou des CD-ROM et fournissaient un programme dinstallation. Quatre distributions de cette poque subsistent encore : Debian, Red Hat, Slackware et SUSE. En 1996, le manchot Tux devient le logo de Linux. Ils sont depuis insparables. Avec la dferlante Internet, Linux simpose largement sur les serveurs. Une certaine reconnaissance de Linux vient avec la phrase de Steve Ballmer : "Microsoft is worried about free software..." ("Microsoft est inquiet face au logiciel libre"). Un an plus tard, Red Hat fait une entre spectaculaire en bourse. Aprs lachat de StarOfce par Sun et louverture de son code source, OpenOfce.org 1.0 voit le jour en 2002. Il sagit dune suite bureautique complte, avec une interface confortable (KDE ou Gnome). Elle rend Linux utilisable dans les bureaux et auprs du grand public. Linux sort alors du march des informaticiens et des serveurs, une tape que de nombreux Unix propritaires nont pas franchie. En 2003, la ville de Munich dcide de remplacer Windows NT par Linux sur ses postes.

1996 : le manchot 1998 : Microsoft dclare la guerre Linux

2002 : Linux pour le bureau

1.6

Brevets logiciels et autres sujets dnervement

De nombreux signes montrent que Linux aura lavenir une diffusion et une importance plus grande : le dveloppement progresse sur tous les niveaux (noyau, programmes serveur, applications) et de plus en plus dentreprises et dadministrations reconnaissent les avantages de Linux. Mais certaines embches peuvent se prsenter sur le chemin.

Brevets logiciels
Les brevets logiciels protgent, aux tats-Unis comme dans de nombreux pays, les ides, concepts et algorithmes de logiciels. Des brevets sont dposs pour tout ce qui est imaginable,

22

LINUX

y compris des lments triviaux comme lafchage dune barre de progression ou la clbre commande en un clic (Amazon). Leur abus et labsurdit des dures de protection en comparaison de la vitesse dvolution de linformatique contribuent alimenter la rsistance contre les brevets logiciels. Ainsi, un programme dpassant quelques lignes de code, quel quil 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 rciproques (une sorte dquilibre de la terreur), mais la communaut libre et certains dveloppeurs se sentent menacs par les brevets logiciels. Ils les considrent comme nuisibles pour le progrs et la concurrence. Les brevets logiciels pourraient tre une arme puissante pour Microsoft contre Linux Microsoft na cependant jusquici entrepris aucune action en ce sens et doit lui-mme lutter contre de nombreux procs lis aux brevets. La dcision de lOfce europen des brevets contre lintroduction des brevets logiciels en Europe lt 2005 a t lune des rares lueurs despoir. Mais, comme Linux est galement employ en dehors de lEurope, les brevets logiciels limitent le champ daction de beaucoup de distributions : nombre dentre elles, par exemple, ne fournissent pas de bibliothques pour lire des MP3 par peur des procs, car des algorithmes sont protgs par des brevets. Chaque utilisateur doit donc installer lui-mme les bibliothques ou programmes correspondants. Ce qui nest que gnant dans le cas des chiers MP3 pourrait dans le cadre dautres fonctions mener de lourdes limitations des distributions Linux.
Ensemble de brevets de la communaut libre

Mais la situation nest pas sans espoir. En particulier, quelques entreprises pro-Linux comme IBM disposent dimportants portefeuilles de brevets. Certaines entreprises Linux ont ellesmmes commenc collecter des brevets, en partie "offerts" par des entreprises pour des usages libres. La situation est absurde : un droit des brevets mal conu oblige la communaut libre crer des brevets pour pouvoir se protger contre des ventuels procs. Vous trouverez des dtails sur les outils de la communaut lencontre des brevets aux adresses suivantes : http://www.patent-commons.org/ ; http://www.openinventionnetwork.com/

Multimdia et DRM
Chiffrement des DVD

Le march du multimdia est un autre problme. Par exemple, vous ne pouvez pas lire actuellement vos DVD achets en toute lgalit sous Linux. La limitation est juridique et non technique. La plupart des DVD sont protgs par un algorithme de chiffrage plutt primitif. Cette protection pourrait tre facilement leve, mais dans de nombreux pays, la loi interdit la distribution de la bibliothque ncessaire et la description de son installation. Les nouveaux disques HD-DVD et Blue-Ray, dj prts pour le march, sont mieux protgs. La protection sapplique toute la chane des composants matriels (carte graphique, moniteur, etc.). Les DVD haute rsolution ne sont donc pas non plus lisibles sous Linux.

DRM (Digital Rights Management) ou gestion des droits numriques

La situation nest pas meilleure pour les donnes (audio, vido et texte) protges par des DRM. Ces dernires englobent tout dispositif visant rduire lutilisation des donnes, par exemple une priode de temps ou un ordinateur donn. Cela a pour effet de les limiter certains matriels (par exemple, liPod) ou systmes dexploitation (Windows ou Mac OS). Les opposants aux DRM dclinent ce sigle en Digital Restriction Management gestion des restrictions numriques.

QUEST-CE QUE LINUX ?

23

Dvelopper des DRM dans le cadre de logiciels libres nest pas simple : si le code dun programme pour dchiffrer des donnes protges par DRM est accessible, il peut tre modi pour supprimer la restriction des DRM. Le dveloppement de DRM libres nen est donc qu ses dbuts. Rien ne permet de dire que ces programmes pourront un jour tre utiliss. lheure actuelle, lutilisation de contenus protgs par DRM est difcile sous Linux. Si vous ne voulez pas utiliser de logiciels illgaux pour supprimer les protections, vous devez attendre des programmes propritaires provenant des fournisseurs des DRM. Il nexiste pour linstant aucun programme de ce type sous Linux. Pour iTunes, la solution est dutiliser CrossOver et la version Windows diTunes sous Linux.

Procs SCO
Le procs SCO est un vritable roman. Le 7 mars 2003, lentreprise SCO a intent un procs IBM. Elle laccusait, entre autres, davoir inclus dans le noyau Linux du code dUnix sous copyright de SCO. Selon elle, toute utilisation de Linux partir du noyau 2.4 tait donc illgale. Pour rgulariser la situation, elle a demand aux utilisateurs de Linux de payer une licence spciale, au prix fort. En dehors de Microsoft, SCO a trouv peu de clients, de sorte que loffre de licence nexiste plus sur son site web. IBM a ragi par un contre-procs, et Red Hat sest joint la bataille en intentant galement un procs SCO. De nombreux commentateurs voient dans ce mouvement une guerre par procuration, dans laquelle Microsoft serait derrire SCO. Dautres pensent que cette dernire ne cherchait qu augmenter sa valeur boursire. Les dveloppeurs de la communaut, y compris Linus Torvalds, ont adopt le point de vue selon lequel les considrations de SCO ne sappliquaient pas. SCO avait elle-mme vendu une distribution Linux et accept la GPL. Dune manire gnrale, le fait quelle nindiquait pas prcisment les lignes de code sujettes copyright a t largement critiqu. Cette critique a t renforce par la dclaration lt 2006 du juge charg de laffaire, selon lequel les deux tiers des points du procs taient considrs comme nuls et non avenus.

Installation
Ce chapitre est un aperu de linstallation dun systme Linux sur un PC dot dun processeur compatible Intel Pentium. Il ne sattache pas une distribution spcique, mais parle des tapes importantes de linstallation, comme le partitionnement du disque. Pour plus dinformations, reportez-vous lAnnexe B qui offre des liens vers la documentation des processus dinstallation de nombreuses distributions. Linstallation de Linux sest grandement simplie ces dernires annes. Dans le cas idal (matriel standard et espace disponible sur le disque dur), 30 minutes devraient sufre pour obtenir un systme fonctionnel. Linstallation se complique nanmoins lorsque, comme souvent, lordinateur dispose dj dun systme dexploitation Windows, qui doit tre prserv. Des problmes lis au matriel peuvent galement surgir lorsque celui-ci est trs vieux, trs rcent, ou dans le cas de certains ordinateurs portables.

2.1

Prrequis

Pour pouvoir installer Linux, quelques conditions sont ncessaires : Vous avez besoin dun ordinateur avec un processeur compatible Intel Pentium. Tous les processeurs 32 et 64 bits dIntel et AMD (depuis le Pentium et le K6) appartiennent cette catgorie. Il existe galement des distributions pour dautres architectures de processeurs, comme lIBM PowerPC. Il faut sufsamment de mmoire vive. Pour utiliser les gestionnaires de bureau KDE et Gnome confortablement, 256 Mo sont un minimum. Disposer de plus de mmoire est videmment un avantage. Une partition libre avec assez de place sur votre disque dur est galement ncessaire. La quantit despace disponible dpend de la distribution et des programmes installer. lheure actuelle, 5 8 Go sont une bonne valeur indicative. Votre matriel doit tre reconnu et pris en charge par Linux. Cest aujourdhui le cas de la majorit du matriel standard. Les cartes graphiques les plus rcentes, certaines cartes Wi-Fi, ainsi que certains ordinateurs portables peuvent poser problme. La plupart des imprimantes GDI et des Winmodems ne sont pas non plus reconnus (voir section 1.1 pour des liens propos du matriel). 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 troisime en appuyant sur les deux boutons simultanment, ce qui est la longue pnible.
Comme nous lavons vu au chapitre prcdent, il existe des distributions minimales qui fonctionnent avec des besoins matriels plus rduits. Dans ce chapitre, nous considrons cependant que vous installez une distribution "normale", comme Fedora, Debian, Kubuntu, Mandriva, Red Hat, SUSE ou Ubuntu.

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 linstallation, mais diminue les fonctionnalits (accs limit au matriel, vitesse dexcution rduite, etc.).

32 ou 64 bits ?
Avantages et inconvnients

De plus en plus dordinateurs portables ou de bureau contiennent un processeur 64 bits. La principale diffrence avec les processeurs 32 bits est que ces derniers ne peuvent adresser directement que 2 Go de mmoire. Cest donc un avantage lorsque vous avez plus de 2 Go de RAM et que vous dsirez faire fonctionner des programmes ayant de gros besoins en mmoire et si vous utilisez une distribution 64 bits. En pratique, ces conditions sont runies sur les ordinateurs qui fonctionnent en tant que serveur rseau ou serveur de base de donnes, ou faisant fonctionner plusieurs systmes Linux en parallle grce la virtualisation. Pour une utilisation bureautique standard, larchitecture 64 bits offre peu davantages et aucune amlioration sensible des performances (bien que lon prtende souvent linverse). Larchitecture 64 bits prsente galement certains inconvnients : La quantit de RAM et la place ncessaire sur le disque dur sont plus importantes. Certains programmes ne fonctionnent quen mode 32 bits. Pour les faire tourner sur un systme 64 bits, il faut installer dinnombrables bibliothques en double (en version 32 bits et 64 bits). Les distributions soccupent du fonctionnement interne, mais la solution nest pas trs lgante. Le troisime problme disparat heureusement avec la monte en popularit des architectures 64 bits : pour certains composants matriels, il nexiste pas de pilote libre. Pour utiliser ces composants, il faut installer les pilotes propritaires du fabricant. Si celui-ci ne fournit que des pilotes 32 bits, ils ne fonctionneront pas avec un systme 64 bits. Vous aurez alors le choix de ne pas faire fonctionner cet lment ou de rinstaller une distribution 32 bits. Les avantages des architectures 64 bits napparaissent, pour des raisons techniques, que lorsque toute la distribution, ou au moins la majorit des programmes et des bibliothques est en 64 bits. Une distribution universelle 32/64 bits est donc impossible. Il existe, en revanche, pour la plupart des distributions deux versions : une version 32 bits (souvent nomme 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 sagit tout de mme de deux versions diffrentes de la mme distribution. Les processeurs 64 bits courants sont rtrocompatibles avec les processeurs 32 bits. Il est donc possible dinstaller au choix sur une architecture 64 bits une distribution 32 ou 64 bits. Cette dcision est dnitive : changer de modle de distribution ne peut ensuite se faire quen rinstallant le systme. Les ordinateurs et systmes dexploitation 64 bits seront probablement la norme dans quelques annes. Il sera alors rare de se demander sil faut installer une version 32 ou 64 bits. lheure actuelle, largumentation se rsume ainsi : une distribution 64 bits ne prsente pour un utilisateur normal ni avantage, ni inconvnient majeur mais, comme 64 bits sonne mieux que 32 bits, la version 64 bits est souvent installe.

Distributions 64 bits

INSTALLATION

27
Dmarrage de linstallation de Linux

2.2

Premiers paramtres

Pour lancer linstallation, placez le CD ou le DVD de Linux dans votre lecteur et redmarrez votre machine. la place du dmarrage de votre systme dj install, le programme dinstallation devrait dmarrer depuis le CD. Si ce nest pas le cas, il est possible que le BIOS de votre ordinateur ne permette pas lamorage depuis le CD. Pour vrier cela, vous devez entrer dans le BIOS de votre ordinateur, grce une touche spciale juste aprs le dmarrage de lordinateur (souvent Suppr ou F1). Les ventuelles modications dpendent du modle de votre carte mre et ne sont donc pas dcrites ici (reportez-vous au manuel de votre carte mre). Presque toutes les distributions lancent un programme dinstallation graphique. Pour que celui-ci puisse dmarrer, une carte graphique compatible VGA et sufsamment de RAM sont ncessaires. Ces conditions sont remplies sur les ordinateurs rcents. Selon le matriel, il se peut que la carte graphique ne soit pas reconnue ds le dpart ou que le moniteur devienne noir aprs le dmarrage du programme dinstallation. Ce problme survient surtout sur les crans plats connects la carte graphique via un cble DVI, si la carte passe en mode analogique. Dans ce cas, de nombreuses distributions peuvent galement tre installes en mode texte. Le passage dune installation graphique une installation en mode texte dpend de la distribution. Sur certaines distributions, vous pouvez choisir des paramtres, comme la langue ou la disposition du clavier, avant mme le dmarrage du systme (voir Figure 2.1). Dautres distributions vous le proposent quelques secondes aprs le dmarrage.

Figure 2.1
Choix de la langue au dbut dune installation de SUSE.

28
Choix du clavier

LINUX

Certains programmes de conguration utilisent le nombre de touches comme signe distinctif des claviers. Voici quelques valeurs utiles pour dterminer le vtre : Clavier anglais sans touche Windows Clavier international sans touche Windows Clavier anglais avec touches Windows Clavier international avec touches Windows 101 touches 102 touches 104 touches 105 touches

Vous pouvez aussi activer ou dsactiver les touches mortes. Il sagit, par exemple, des touches ` ou ~. Cette option nactive 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 dun espace. La dsactivation des touches mortes complique la saisie des caractres trangers, mais savre sense si vous ne tapez pas de caractres spciaux dans dautres langues et correspond aux usages sous Windows.
Configuration de la souris

En gnral, les souris et les pointeurs de portables sont automatiquement reconnus. Si votre souris ne possde pas de molette, cochez loption Emulate 3 Buttons (mulation du troisime bouton). Ainsi, vous pourrez simuler le clic sur le troisime bouton en cliquant simultanment sur les deux autres. La plupart des distributions afchent des messages du noyau lors du dmarrage, mais vous pouvez les ignorer. Ils ne sont utiles que si le programme dinstallation plante au dmarrage. Les programmes dinstallation fonctionnent eux-mmes sous Linux. Par consquent, un noyau minimal est charg ds lamorage du support dinstallation, ainsi que certains modules matriels (disques durs, carte rseau, lecteur CD ou DVD). Si le programme narrive pas charger les bons modules, vous devez fournir les informations correspondantes.

Messages du noyau

Fonctionneme nt interne

2.3

Bases du partitionnement du disque

Aprs le dmarrage du programme dinstallation et divers paramtrages lmentaires, le partitionnement du disque dur est la premire tape importante de linstallation. De nombreux programmes dinstallation proposent de le faire automatiquement, mais attention : le rsultat correspondra rarement vos souhaits.
Quest-ce quune partition ?

Les partitions sont des sections sur le disque dur. Sous Windows, elles sont reprsentes par une lettre (par exemple, C: ou D:) et se comportent comme des disques durs en soi. Dans le cas le plus simple, il nexiste quune seule partition pour tout le disque. Lorsque vous achetez un PC avec le systme Windows prinstall, cest souvent le cas.

Pourquoi crer plus de partitions ?

Vous avez besoin de plusieurs partitions ds lors que vous dsirez faire fonctionner plusieurs systmes dexploitation sur votre ordinateur. Cela est d au fait que les diffrents systmes dexploitation ont en gnral des systmes de chiers diffrents. Mme si plusieurs systmes peuvent utiliser le mme systme de chiers, il est souvent indispensable de les

INSTALLATION

29

installer dans des partitions diffrentes, an dviter les doublons et les conits dans les noms de rpertoires et de chiers. De plus, sous Linux, il est souvent utile de crer plusieurs partitions : par exemple, une pour le systme dexploitation, une pour les donnes des utilisateurs et une autre appele partition dchanges (quivalent au chier dchange sous Windows).
Types de partitions

Il en existe trois types : les partitions primaires, les partitions tendues et les partitions logiques. Un disque dur ne peut contenir que quatre partitions primaires. On peut cependant dnir lune dentre elles comme une partition tendue. Dans cette dernire, on peut crer plusieurs partitions logiques. Tout cela provient de la limite historique de quatre partitions primaires. Notez que certains outils de partitionnement ne font pas la diffrence au niveau de linterface utilisateur entre les diffrents types de partitions et soccupent eux-mmes de leur rpartition en interne. Une partition tendue nest quun conteneur pour des partitions logiques. On ne peut enregistrer des donnes 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 systme pour lequel elle est cre (par exemple, Windows, Linux, Novell Netware, BSD, etc.) ou le rle qui lui est attribu.

Nombre maximal de partitions

Le nombre de partitions dpend du type de disque dur (IDE, SATA, SCSI) et de la version de Linux. Ce dernier peut en effet crer au maximum 16 partitions sur un disque, dont 12 partitions logiques. Les disques IDE sont une exception : avec le pilote correspondant sous Linux, on peut crer 64 partitions (dont 60 logiques). Le pilote IDE est cependant de plus en plus rarement utilis au prot du pilote SCSI. Chaque systme dexploitation a son propre outil pour modier la gomtrie dun disque. Sous Windows 9x/ME, le programme DOS FDISK est encore utilis. Depuis Windows NT, il existe un outil confortable avec une interface utilisateur graphique. Laccs cet outil dpend de la version de Windows. Sous Windows Vista, il faut lancer Panneau de conguration, Systme et maintenance, Outils dadministration, Gestion de lordinateur, Gestion des disques. Sous Linux, il existe plusieurs programmes daide au partitionnement. Si ceux-ci posent problme, les utilisateurs avancs peuvent utiliser les commandes fdisk ou parted.
Il est trs difficile de modifier rtrospectivement le partitionnement dun disque. En gnral, le contenu dune partition est perdu lorsque sa taille est modifie. Le dplacement de partitions nest pas non plus prvu. Il existe des programmes spciaux, commerciaux ou gratuits, qui permettent deffectuer cette tche, mais avec beaucoup de limitations. Il est donc conseill de bien rflchir au schma de partitions ds le dpart. Les utilisateurs avancs de Linux savent dpasser ces limitations en utilisant le systme LVM. Il sagit dune couche intermdiaire entre les partitions et les systmes de fichiers. Comme ladministration de LVM est relativement complique, cette option nest pas propose aux dbutants.

Aide au partitionnement

30

LINUX

Systmes de fichiers
Le partitionnement permet de rserver de la place sur un disque. Avant de pouvoir enregistrer des donnes sur une partition, il faut crer un systme de chiers. Celui-ci contient les chiers et les informations de gestion associes. Windows et Linux proposent diffrents systmes : Sous Windows, on peut utiliser le systme VFAT (Windows 9x et Windows ME) ou NTFS, plus moderne (Windows NT/2000/XP/Vista). Sous Linux, le systme ext3 est dominant. Les alternatives actuelles sont xfs et reiserfs (voir section 23.6 pour plus dinformations). La cration dun systme de chiers sur une partition sappelle le formatage. Sous Windows, on peut effectuer cette opration via un menu contextuel dans lExplorateur ou avec le programme FORMAT. Sous Linux, le programme dinstallation soccupe du formatage et appelle en arrire-plan des commandes telles que mkfs.ext3 ou mkfs.xfs. Formater une partition supprime toutes les donnes qui sy trouvent.
Le partitionnement et le formatage de disques effacent, en gnral, les partitions concernes. Il existe quelques exceptions et des outils spciaux pour redimensionner les partitions sans perte.

Nom des partitions


Sous Windows

Sous Windows, les partitions utilisables par le systme sont indiques par les lettres des lecteurs. A: et B: sont rserves aux lecteurs de disquettes. Les lettres suivantes dsignent les partitions primaires et logiques du disque (la partition tendue na pas de lettre et nest donc pas accessible). Les partitions des systmes de chiers trangers (y compris les partitions Linux) nont pas de lettre de lecteur et sont inaccessibles la plupart des programmes. Les partitions ne sont montres que dans les programmes de partitionnement. Sous Linux, on accde aux disques et aux partitions via les chiers de priphriques. Il existe deux schmas de nommage de ces chiers. Le schma utilis dpend de deux facteurs : le systme de bus des disques durs (IDE, SATA ou SCSI) et, pour les disques IDE, du pilote de disques durs. Nous allons dcrire ci-aprs ces deux schmas (voir Chapitre 25 pour plus dinformations). Le schma sd-* est le schma 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 dpend de la distribution). Les disques sont alors accessibles par les noms /dev/sda, /dev/sdb, /dev/ sdc, etc. Pour accder une partition et non lintgralit du disque, on ajoute le numro de la partition au nom du disque. Les chiffres 1 4 dsignent les partitions primaires et tendues. Les partitions logiques commencent 5, mme lorsquil y a moins de quatre partitions primaires et tendues.

Sous Linux

Schma sd-*

INSTALLATION

31

Schma hd-*

Le schma hd-* nest utilis que pour les disques durs IDE, lorsque Linux utilise lancien pilote IDE. Le cblage physique des disques dcide de leur nom. /dev/hda dsigne le premier priphrique (matre) du premier canal IDE. /dev/hdb dsigne le second priphrique (esclave) du premier canal IDE. /dev/hdc et /dev/hdd dsignent respectivement le matre et lesclave du second canal IDE. La numrotation des partitions est identique celle du schma sd-*. Cette dsignation trs technique des partitions ne vous servira normalement que lors de linstallation et de ladministration. Au quotidien, les partitions actives sont disponibles comme des rpertoires. linverse de Windows, il ny a pas de lettre de lecteur.

2.4

Partitionnement du disque dur

La cration de nouvelles partitions est lune des tapes les plus importantes de linstallation de Linux. Tous les programmes dinstallation actuels contiennent un assistant de partitionnement simple utiliser. La Figure 2.2 montre un exemple dditeur de partitions, celui de Fedora. Les dtails de lutilisation de cet diteur dpendent de la distribution.

Figure 2.2
diteur de partitions de Fedora.

Se pose alors une question fondamentale : combien de partitions devez-vous crer, et de quelle taille ? Quels effets cela a-t-il sur la vitesse dexcution, la maintenance et une ventuelle rinstallation ?

32

LINUX

Rduction de la partition Windows


On se trouve souvent dans la situation dun systme Windows dj install sur une seule partition qui remplit tout le disque. Mme si cette dernire contient des douzaines de gigaoctets libres, cela ne change rien : Linux a besoin pour son installation dune ou de plusieurs partitions. Et avant de les crer, vous devez rduire la partition Windows, si possible sans perdre de donnes. La solution la plus radicale et la plus simple consiste la supprimer. Mais la plupart des dbutants sous Linux dsirent garder Windows comme systme dexploitation alternatif, que ce soit pour jouer ou lancer des programmes qui nexistent pas sous Linux. Nous supposerons donc que Windows est dj install et quil sera utilis de nouveau aprs linstallation de Linux.
Redimensionnement pendant linstallation

Pour la plupart des distributions (Debian, Mandriva, SUSE, Ubuntu), le programme dinstallation est capable de rduire une partition Windows trop grosse et le systme de chiers qui sy trouve. Vous pouvez alors modier la taille de la partition dans loutil de partitionnement ou appeler la fonction de redimensionnement de la partition via un menu. Cette opration fonctionne pour les systmes de chiers VFAT et NTFS.
Dbut 2007, le redimensionnement des partitions Windows Vista avec des programmes Linux posait encore dnormes problmes. 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 sr de redimensionner la partition avant linstallation, grce aux outils fournis par Windows Vista.

Redimensionnement avant linstallation

Si ce redimensionnement est impossible ou ne fonctionne pas, vous pouvez effectuer cette opration avec dautres outils : Directement sous Windows. Windows Vista propose un outil de rduction des partitions. Lancez Panneau de conguration > Outils dadministration > Gestion de lordinateur > Gestion des disques. Cliquez du bouton droit sur la partition et lancez Rduire le volume. Les versions prcdentes de Windows ne permettent pas de redimensionnement. Vous pouvez supprimer et recrer la partition, mais cela en supprime tout le contenu. Avec un systme Linux "live". Les systmes live, tels que Knoppix, GParted ou SystemRescueCD, contiennent diffrents programmes pour rduire les partitions Windows. Lutilisation de ces outils est cependant complexe. Loutil le plus convivial est gparted (voir Chapitre 23). Avec des programmes commerciaux. Vous pouvez aussi utiliser des outils commerciaux, plus confortables mais coteux. Le plus connu est PartitionMagic de Norton/Symantec : http://www.symantec.com/norton/products/overview.jsp?pcid =sp&pvid=pm80. Si votre ordinateur ne possde aucun systme dexploitation et si vous dsirez installer Windows et Linux, commencez par Windows. Son installation propose galement de partitionner le disque dur. Dans ce cas, indiquez uniquement lespace dont vous avez besoin (par exemple 50 Go), et non lensemble du disque. Dans le doute, choisissez une valeur plus petite : il est plus simple dagrandir une partition que de la rduire.

Rinstaller Linux et Windows

INSTALLATION

33

Achat dun nouvel ordinateur

Certains revendeurs, chez qui vous pouvez acheter un ordinateur sans Windows, peuvent galement partitionner le disque. Cela nest gure possible si vous achetez votre machine dans une grande chane Windows sera alors prinstall.

Nombre et taille des partitions


On me pose souvent la question suivante : si on considre un disque de n Go, quel est le meilleur partitionnement ? Il nexiste malheureusement pas de rponse universelle. Cette section propose cependant quelques rgles de base sur le nombre et la taille des partitions. Il est probable que le concept mme de partitions multiples vous tonne. Puisquune seule partition suft pour Windows, il devrait en tre de mme pour Linux. Ce dernier peut fonctionner sur une seule partition, mais cest loin dtre optimal. Il est plus courant de partitionner le disque, comme nous allons le dcrire.
Partition systme

La partition systme est la seule dont vous ayez vraiment besoin. Elle contient le systme Linux et tous ses programmes. Cette partition sappelle toujours /. Il sagit du point du systme de chiers auquel est lie la partition (point de montage). / dsigne aussi la racine, cest--dire le dbut de larborescence de chiers. Cest pourquoi la partition systme est parfois aussi appele partition racine ou partition root. La taille raisonnable pour installer et utiliser une distribution complte varie entre cinq et dix gigaoctets. Il faut bien sr ajouter lespace ncessaire vos propres donnes (vous pouvez les enregistrer dans une partition spare). Vous pouvez installer plusieurs distributions sur un mme ordinateur (comme sur mon ordinateur de test). Pour cela, vous aurez besoin pour chacune delles dune partition systme diffrente. Les autres partitions peuvent tre partages entre les systmes. Lorsque le systme est bien congur, vous pouvez choisir au dmarrage entre Windows et toutes les distributions Linux installes.

Partition damorage

Selon les cas, il peut tre conseill de crer une partition damorage nomme /boot. Elle contient les donnes ncessaires la premire phase du dmarrage de lordinateur. Il sagit en particulier du chier du noyau, vmlinuz*, du chier de disque virtuel, initrd*, et des petits chiers ncessaires au gestionnaire damorage. La partition /boot ne contient donc que quelques mgaoctets de donnes. La partition damorage peut rgler certains problmes de dmarrage. Vous devez envisager de lutiliser dans les cas suivants : Le BIOS de votre carte mre date davant 1998. Vous rencontrerez alors probablement la limite des 1 024 cylindres. Cela signie que les donnes ncessaires lamorage de lordinateur doivent se trouver dans les 1 024 premiers cylindres du disque dur, soit en gnral les 7,9 premiers gigaoctets. Pour satisfaire cette limite, la partition damorage donc tre place avant les autres partitions. Lordre des partitions suivantes na pas dimportance. Vous utilisez pour la partition systme un systme de chiers particulier ou chiffr, LVM ou RAID. Dans ce cas, le chargeur damorage ne peut pas lire les donnes de la partition

34

LINUX

systme. Les donnes utilises par le processus damorage doivent tre enregistres sur une partition avec un systme de chiers standard, typiquement ext2 ou ext3. Dans le doute, la cration dune partition damorage ne peut pas nuire. Toutefois, si vous envisagez dinstaller plusieurs distributions en parallle sur votre disque, la sparation des diffrentes partitions systme et partitions damorage associes cre une fragmentation souvent peu claire du disque dur. Une partition de donnes permet de sparer les donnes systme de vos propres donnes. Cela prsente un avantage important : vous pourrez par la suite rinstaller une autre distribution ou rinstaller votre systme dans la partition systme sans mettre en danger la partition de donnes spare. On utilise gnralement /home comme point de montage pour cette partition de donnes. Je ne peux pas conseiller de taille pour cette partition, car elle dpend largement de lutilisation de votre systme Linux. On peut encore diviser le disque en partitions supplmentaires. Si vous utilisez Linux en tant que serveur rseau ou serveur de bases de donnes, vous pouvez modier les partitions du systme pour sparer les donnes correspondantes. Tant quil existe de lespace non partitionn sur votre disque, augmenter le nombre et la taille des partitions dun systme existant ne pose aucun problme. Si vous ne savez pas comment rpartir votre espace, vous pouvez toujours laisser une partie du disque vide. La partition dchanges ou de swap est le pendant du chier dchanges sous Windows. Lorsque Linux na pas assez de mmoire, il place dans cette partition le contenu de la RAM qui nest pas utilise cet instant. Utiliser une partition complte (et non un chier comme sous Windows) amliore les performances en termes de rapidit dexcution. Linux peut tre congur pour utiliser un chier dchanges au lieu dune partition, mais ce fonctionnement nest ni courant, ni rapide. linverse des autres partitions, la partition dchanges na pas de nom (pas de point de montage). Elle est en effet utilise directement et non via un systme de chiers. Si vous avez beaucoup de RAM, il peut tre tentant de se passer dune partition dchanges, mais ce nest pas conseill. Lorsque Linux ne trouve plus de RAM, des processus en cours dexcution (programmes) doivent tre arrts, sans que lon puisse prvoir lesquels, ce qui peut avoir des consquences imprvues (voire provoquer un plantage). Sil existe une partition dchanges, Linux ralentira beaucoup en raison du manque de mmoire, ce qui est certes dsagrable, mais vous laissera une chance de ragir et de rgler le problme en terminant le programme fautif vous-mme. La partition dchanges ne sert donc pas tant de rserve de mmoire que davertissement durgence. La bonne taille dune partition dchanges se situe entre une et deux fois la taille de votre mmoire vive si vous avez beaucoup de RAM, une taille quivalente suft. Si vous utilisez la fonction Suspend to Disk de lordinateur, cette partition doit avoir au moins la taille de votre RAM. Sur les systmes 32 bits, sa taille est limite 2 Go. Si vous avez besoin de plus despace, vous devez crer plusieurs partitions dchanges. Cela est cependant rarement utile : si vos applications ncessitent autant despace, Linux passe sans cesse les donnes entre les partitions dchanges et la RAM, et nest en pratique plus utilisable. Dans ce cas, il ne faut pas ajouter de lespace, mais de la RAM.

Partition de donnes

Partitions supplmentaires

Partition dchanges

INSTALLATION

35

Rsum

Taille des partitions pour un usage priv partition dchanges (une deux fois la taille de la RAM) / /home partition systme (5 10 Go ; prvoir plus pour les dveloppeurs) partition de donnes ( adapter selon vos besoins)

Quel systme de fichiers utiliser ?


Linux prend en charge de nombreux systmes de chiers, parmi lesquels ext2, ext3, ext4, reiserfs, reiser4 et xfs (voir Chapitre 23). Tous ces systmes lexception dext2 sont journaliss, ce qui permet de scuriser les donnes dans le cas dun arrt inopin du systme (par exemple, lors dun orage). Toutes les distributions ne fournissent pas tous les systmes de chiers pendant linstallation. Je conseille donc aux dbutants dutiliser si possible ext3. Ce systme est mr, stable et presque considr comme le standard sous Linux. Mme Novell et SUSE, qui ont longtemps prfr reiserfs, favorisent maintenant ext3 comme systme par dfaut. lt 2006, le systme de chiers ext4 est n ; il est cens remplacer ext3. Mais jusqu ce quil soit considr comme sufsamment abouti, mieux vaut lviter. Bien quancien, ext2 a encore une raison dtre. Il est compatible avec ext3, mais na pas de fonction de journalisation. Il est donc plus rapide lors des oprations dcriture. Certaines distributions permettent de mettre en place un systme LVM ou RAID lors de linstallation. LVM (Logical Volume Manager ou gestionnaire de volumes logiques) permet de crer des partitions virtuelles et de les redimensionner alors que lordinateur 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 systme plus rapide ou plus sr. LVM et RAID ont linconvnient de rendre ladministration plus difcile. Ils ne sont pas conseills aux utilisateurs inexpriments. Notez que certaines distributions, comme Red Hat ou Fedora, font de LVM un standard. Si ce nest pas ce que vous voulez, vous devrez partitionner le disque manuellement. La partition dchanges na pas de vrai systme de chiers. Elle doit tre formate avec loutil mkswap avant sa premire utilisation. Toutes les distributions Linux sen chargent pendant linstallation.
Systmes de fichiers pour un usage priv [swap] /boot / /home pas de systme de fichiers ext2 ext3 ext3

ext2, ext3, ext4

LVM, RAID

Partition dchanges

Rsum

36
2.5

LINUX

Choix des paquetages

Vous pouvez, dans de nombreuses distributions, choisir lors de linstallation les composants, programmes et paquetages installer. Il est rarement justi de tout installer, pour les raisons suivantes : Le nombre important de logiciels dpasse souvent les utilisateurs inexpriments. Il est plus clair de procder une installation de base et dajouter au fur et mesure les programmes ncessaires, ce qui se fait sans problme. 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 lordinateur en tant que serveur, les risques de scurit augmentent avec le nombre de services ouverts sur la machine. Les paquetages de fonctions rseau que vous nutilisez pas ne doivent pas tre installs. Les paquetages sont souvent choisis grce des groupes prcongurs (voir Figure 2.3). Dans le cas de certaines distributions, comme Ubuntu, vous navez aucune inuence sur les paquets installs. Seul le systme de base sera install ; les programmes suivants le seront lorsque le besoin sen fera sentir.

Figure 2.3
Choix des paquetages lors dune installation de Fedora.

Les versions actuelles de Red Hat et de Fedora nutilisent le CD/DVD comme source que pendant linstallation. Si vous avez besoin ensuite dun autre programme, vous devez le tlcharger depuis Internet. Cela fonctionne sans problme et garantit que vous disposez de la version la plus rcente. En revanche, une bonne connexion Internet est ncessaire. Si ce nest pas le cas, il vaut mieux installer ds le dbut tous les paquetages dont vous tes susceptibles davoir besoin.

INSTALLATION

37

Recommandations pour linstallation


Gnome ou KDE

Services rseau

Outils de dveloppement et en-ttes du noyau

Certaines distributions proposent de choisir entre les systmes de bureau KDE et Gnome vous pouvez aussi installer les deux systmes en parallle. Il sagit de deux interfaces utilisateur diffrentes pour Linux. En rsum, Gnome est plus simple utiliser, mais KDE propose davantage de fonctionnalits et de possibilits de conguration. Si vous installez les deux, vous aurez une souplesse maximale et vous pourrez choisir lors de chaque connexion de lancer KDE ou Gnome. Nous dcrirons les deux environnements aux Chapitres 4 et 5. Pour une utilisation bureautique de Linux, vous navez pas besoin de serveur (que ce soit un serveur web, NFS ou de courrier lectronique). Il existe cependant trois exceptions : Pour pouvoir utiliser votre imprimante, vous avez besoin dun serveur dimpression, en gnral CUPS. Ce dernier est gnralement install par dfaut. Pour accder votre ordinateur depuis un poste distant, vous devez installer le serveur SSH sshd. Si vous dsirez partager des dossiers avec des ordinateurs sous Windows, vous devez installer Samba. Mme si les utilisateurs dbutants de Linux ont rarement lambition de recompiler leur noyau, je conseille gnralement linstallation des outils de dveloppement lmentaires, tels que gcc et make, ainsi que des chiers den-tte du noyau (souvent installs automatiquement). 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 nest cependant pas ncessaire dinstaller tout le code du noyau.

2.6

Configuration de base

Mot de passe root

Gestion des utilisateurs

Cette section pose quelques bases pour la conguration de linstallation, qui peut varier selon la distribution. En effet, certaines distributions rduisent la conguration au minimum. Cette dernire se fait alors dans le systme dj lanc. De manire gnrale, tous les paramtres de linstallation peuvent tre modis par la suite. Vous pouvez donc reporter la conguration des lments facultatifs plus tard. Sous Linux, lutilisateur root est responsable de ladministrateur du systme. Il possde des droits illimits au systme, ce qui implique un potentiel de dommages non ngligeable. Il est donc vivement conseill de protger laccs root par un mot de passe. Certaines distributions, dont Ubuntu, dsactivent compltement le compte root. Il nest donc pas ncessaire de le protger par un mot de passe. Les tches administratives sont effectues par des utilisateurs prdtermins, qui doivent chacun fournir leur propre mot de passe. Il est peu courant, sous Linux, de travailler avec lutilisateur root en dehors des tches administratives. Pour crire une lettre, compiler un programme ou surfer sur Internet, on se connecte en tant quutilisateur standard. Pendant linstallation, vous pouvez crer un ou

38

LINUX

plusieurs utilisateurs, dots chacun dun mot de passe, et par la suite, en crer de nouveaux, modier les mots de passe, etc. Les noms des utilisateurs doivent se composer dun maximum de huit lettres ou chiffres. vitez les caractres accentus ou spciaux cela ne fonctionne pas toujours. Il est courant dutiliser uniquement des lettres minuscules, mais ce nest pas une obligation. Les mots de passe doivent contenir entre six et huit signes. Ils sont idalement composs de lettres majuscules, minuscules, chiffres et caractres spciaux, comme +-*/_.,;:()[]. vitez les caractres accentus et ceux qui ne sont pas dnis dans la table de caractres ASCII.
Dans de nombreuses distributions, il nest pas possible de tester le clavier avant de taper les diffrents mots de passe, en particulier root. Si vous narrivez pas vous connecter votre ordinateur aprs linstallation, il peut sagir dun problme de clavier, par exemple toujours en QWERTY au moment de la saisie du mot de passe.
Configuration rseau

Pour connecter votre ordinateur un rseau local, il faut tablir une conguration rseau. Celle-ci peut tre automatique sil existe un serveur DHCP (serveur qui envoie aux ordinateurs du rseau leur conguration rseau). Dans ce cas, elle se rduit souvent un clic sur la bonne case et ventuellement la saisie dun nom dordinateur. Lorsque vous congurez votre rseau manuellement, on vous demande les paramtres suivants (pour plus dinformations, voir Chapitre 26) : Nom dhte et de domaine. Ils correspondent sous Windows au nom de lordinateur et du groupe de travail. Dans un rseau local, le nom de domaine est gnralement fourni. Celui de lhte doit tre unique. Nutilisez pas localhost, qui a une signication particulire. Adresse IP de lordinateur. Il sagit dune chane de caractres sous la forme a.b.c.d (par exemple 192.168.27.35) qui identie lordinateur sur le rseau local. Les deux ou trois premiers chiffres de ladresse sont gnralement xs lavance ; les suivants doivent tre uniques sur le rseau. Masque de sous-rseau, adresse du rseau et de broadcast. Un rseau local est dcrit par deux ou trois masques. Par exemple, si le rseau stend sur tous les numros 192.168.27.x, le masque de sous-rseau est 255.255.255.0 (ce qui est gnralement le cas pour les petits rseaux locaux). Ladresse du rseau est alors 192.168.27.0 et celle de broadcast 192.168.27.255. Adresse de la passerelle. Lorsquun ordinateur du rseau local fournit laccs Internet tous les autres ordinateurs du rseau, vous devez indiquer cette adresse. Adresse du serveur de noms. Le serveur de noms, ou DNS (Domain Name Server), sert rsoudre les noms rseau en adresses IP. Il permet donc de taper dans un navigateur http://www.yahoo.com et datteindre automatiquement lordinateur dont lIP correspond ce nom. Il peut galement servir atteindre un ordinateur du rseau local sil permet la rsolution des noms locaux. Lorsque les adresses du serveur de noms et de la passerelle sont correctes, vous pouvez accder Internet. Congurer une carte Wi-Fi pendant linstallation nest utile que si vous dsirez utiliser laccs au rseau sans-l pendant linstallation. En plus des paramtres prcdents, vous

Wi-Fi

INSTALLATION

39

Accs Internet par modem, RNIS ou ADSL

Pare-feu

SELinux, AppArmor

Mises jour

Mode graphique

Imprimante, scanner, carte son

Fuseau horaire

Langue

devez alors indiquer lidentiant du rseau (SSID ou ESSID), le mode de chiffrement (WEP, WPA ou WPA2) et le mot de passe. Lorsque le systme fonctionne, le logiciel NetworkManager est plus confortable utiliser. Si votre ordinateur ne fait pas partie dun rseau local, vous accdez probablement Internet via un modem, une carte RNIS ou un modem ADSL. Ceux-ci ne fonctionnent demble que dans les cas simples. Il peut donc tre sage de repousser la conguration dInternet plus tard (voir Chapitre 27). La plupart des distributions protgent laccs au rseau ou Internet grce un pare-feu. Ce dernier laisse passer les connexions inities par le poste, mais bloque les requtes de connexions entrantes, ce qui augmente signicativement la scurit. Si vous envisagez de proposer des services rseau sur votre ordinateur (comme un serveur SSH ou web), vous pouvez dnir des exceptions pour ces services et permettre un accs depuis lextrieur. Nous parlerons de la mise en place dun pare-feu au Chapitre 29. Certaines distributions ajoutent au pare-feu des systmes de protection supplmentaires, qui protgent les programmes importants contre dventuels dysfonctionnements. Red Hat et Fedora fournissent SELinux, et SUSE, le systme AppArmor. Si vous nutilisez que les programmes de votre distribution, SELinux et AppArmor fonctionnent sans problme. La scurit effective de ces systmes est controverse, car ils sont encore neufs et peu utiliss en pratique. Si vous envisagez dinstaller des programmes rseau compils par vos soins ou si vos besoins de conguration sloignent de ceux prvus par la distribution, SELinux et AppArmor peuvent poser problme. La solution est alors de les dsactiver. De nombreuses distributions proposent deffectuer une mise jour du systme avant mme le premier dmarrage, an dactualiser les programmes critiques concernant la scurit de lordinateur. Cela dpend bien sr de la conguration de votre accs Internet. La plupart des programmes dinstallation congurent eux-mmes XWindow pour toutes les sorties graphiques. Les lments critiques de cette conguration sont la reconnaissance de la carte graphique et la saisie des paramtres du moniteur (rsolution, frquence), sils ne sont pas reconnus. Certaines distributions permettent de congurer une imprimante, une carte son et dautres priphriques matriels. Si tout fonctionne bien, rien ne sy oppose. Mais en cas de problme, il vaut mieux reporter la conguration plus tard (voir Chapitre 9 pour les scanners, Chapitre 20 pour les cartes son et Chapitre 30 pour les imprimantes). An de paramtrer correctement lheure, le programme dinstallation doit savoir si lhorloge interne (CMOS, au niveau matriel) de lordinateur est rgle lheure locale ou en UTC (Universal Coordinated Time), et dans quel fuseau horaire vous vous trouvez. Si votre ordinateur dispose dun accs permanent Internet, de nombreuses distributions peuvent tre congures pour synchroniser lheure avec un serveur de date (serveur NTP) sur Internet. En gnral, Linux sinstalle dans la langue utilise pendant linstallation pour la plupart des lecteurs de cet ouvrage, il sagit donc du franais. Il est conseill dinstaller galement les chiers de langue anglaise (ce dont la plupart des distributions soccupent par dfaut). Ainsi, vous tes assur davoir au moins le texte anglais sil nexiste pas de traduction franaise.

40

LINUX

Si certaines personnes veulent utiliser votre ordinateur dans une autre langue que celle par dfaut, vous devez installer les paquetages de localisation correspondants. Vous pourrez alors choisir la langue dsire lors de la connexion au systme.

2.7

Installation du chargeur damorage

Problmes

Dmarrage de lordinateur

Cette section sintresse la manire dont Linux doit tre dmarr. La plupart des distributions installent cet effet le logiciel GRUB. Il peut aussi sagir du programme dj ancien LILO, mais cest de plus en plus rare. Le premier secteur du disque dur est appel MBR (Master Boot Record ou enregistrement damorage matre), o la plupart des programmes dinstallation placent GRUB et LILO. Par consquent, le secteur damorage, souvent pralablement occup par Windows, est cras. GRUB ne sert donc pas seulement amorcer Linux, mais il pointe aussi vers le chargeur damorage de Windows. Au dmarrage de lordinateur, un petit menu safche. Vous pouvez alors choisir de dmarrer Linux ou Windows. Si vous optez pour ce dernier, GRUB active le chargeur damorage de Windows qui se trouve dans le premier secteur de la partition de Windows. Installer le chargeur damorage fonctionne dsormais dans presque toutes les congurations matrielles et logicielles. Cependant, dans certains cas rares, un problme survient. Vous ne pouvez alors lancer ni Windows, ni Linux. Nous parlerons de cette situation la section 2.10. Si tout se passe bien, vous devriez obtenir lors du dmarrage de lordinateur un menu dans lequel vous pouvez choisir le systme dexploitation que vous dsirez dmarrer. Laspect de ce menu dpend du programme dinstallation. Vous pouvez enn faire vos premiers pas sous Linux (voir Chapitre 3).

2.8
Installation sur un disque dur externe

Installations non standard

Cette section voque deux formes dinstallation moins frquentes dans la pratique. Les dtails dpendent videmment de la distribution choisie. On peut installer Linux sur un disque dur externe en USB ou en Firewire. Cette variante peut sembler sduisante, en particulier sur les portables dont le disque dur intgr est plein. Le problme est le dmarrage du systme Linux. On peut alors procder de deux manires : Installer le chargeur damorage sur le premier secteur du disque dur externe. Il faut alors congurer le BIOS pour quil utilise celui-ci comme premier priphrique damorage. En dautres termes, si le disque dur externe est branch, Linux dmarre ; sinon, ce sera Windows install sur le disque interne. Installer le chargeur damorage sur le premier secteur du disque interne. Dans ce cas, le processus ne fonctionne que si le chargeur damorage et Linux reconnaissent immdiatement le disque externe (sans avoir charger de pilote). Il nexiste pas de solution universelle, car tout dpend de la manire dont le BIOS gre les disques externes pendant lamorage.

INSTALLATION

41

On peut aussi installer Linux sur une grosse cl USB, qui est alors reconnue comme disque dur externe.
Installation rseau

Lors dune installation rseau, les chiers ne sont pas lus sur un CD ou un DVD, mais sur le rseau. Il existe alors deux variantes qui se diffrencient par la manire dont linstallation commence : Dmarrage de linstallation avec un CD contenant le programme dinstallation. Il congure la connexion au rseau et rcupre ensuite toutes les donnes sur le rseau ou sur Internet via FTP, HTTP, NFS ou SMB. Cette mthode est pratique pour les grosses distributions disponibles gratuitement sur Internet, comme Debian ou openSUSE. Il nest alors pas ncessaire de tlcharger des ISO volumineuses et de graver plusieurs CD ou DVD ; il suft de tlcharger une ISO de CD de dmarrage, ne dpassant gnralement pas les 50 Mo. Installation rseau. La "vraie" installation rseau implique que votre ordinateur puisse lire ses donnes damorage sur le rseau. Cest possible sur la plupart des cartes mres, mais il faut le congurer dans le BIOS et mettre en place un serveur permettant ce type dutilisation. Dans les deux cas, il faut prvoir une bonne connexion au rseau ou Internet.

2.9

Problmes lors de linstallation

Cette section traite des problmes typiques que vous pouvez rencontrer pendant linstallation, et des solutions possibles. Comme nous ne pouvons pas aborder lintgralit de lunivers de Linux, vous devez apprendre vous aider vous-mme, et le plus tt sera le mieux.
Saider soi-mme

Que faire lorsque vous avez un problme dinstallation, que lordinateur ne rpond pas ou que le matriel nest pas reconnu ? Le premier rexe est vident : avant de dmarrer linstallation, lisez le chier README et les notes de version (Release Notes) qui se trouvent sur Internet ou sur le CD-ROM. Le site web de la distribution concerne est galement un bon point de dpart. Il contient souvent des pages et des forums ddis la rsolution des problmes les plus frquents. Les groupes de discussion sur Linux sont aussi une source intressante et gnralement jour. Allez ladresse http://groups.google.fr. Si vous saisissez par exemple "linux" et le nom dun priphrique, vous trouverez sans doute de nombreuses discussions relatives ce dernier, et avec un peu de chance et de patience, une rponse votre problme.

Problmes de matriel
Si des composants matriels importants ne sont pas reconnus lors de linstallation, ou si leur dtection plante, il peut tre utile de passer des paramtres au noyau (voir Chapitre 24).

42

LINUX

Problmes lis au clavier


Dans les premires phases de linstallation, il se peut que le clavier franais ne soit pas encore install et que vous disposiez dun clavier amricain. Cest galement souvent le cas pendant le dmarrage du chargeur damorage. Le clavier QWERTY US est reprsent ladresse http://fr.wikipedia.org/wiki/QWERTY ; cette illustration peut tre pratique pour retrouver des correspondances avec un clavier AZERTY franais.

2.10 Problmes aprs linstallation


Il arrive que linstallation se passe sans soucis et que les problmes commencent aprs le redmarrage de lordinateur.

Lordinateur ne dmarre plus


Le pire aprs une installation de Linux est que lordinateur ne dmarre plus ou que lun des systmes dexploitation ne soit plus accessible. Il peut sagir dune des situations suivantes : Linux plante (problme de matriel). Aprs le redmarrage, lordinateur afche quelques messages puis plante, avec ou sans message derreur. Cause probable : il sagit dun problme matriel. Rsolution : vous pouvez aider Linux dtecter certains composants matriels grce des options passes au noyau lors de lamorage (voir Chapitre 24). Mais cela ne fonctionne quavec ceux directement accessibles par le noyau, sans module intermdiaire. On peut passer des options damorage directement au noyau. Dans GRUB, passez du mode graphique au mode texte grce chap. Choisissez avec les touches de direction la distribution Linux dmarrer et tapez E. Vous accderez alors lditeur de GRUB, qui afche 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 (commenant par kernel) et appuyez nouveau sur E pour lditer. La touche Entre valide les modications et chap revient au menu damorage do vous pourrez redmarrer Linux. La modication des paramtres ne fonctionne que pour ce dmarrage et nest pas enregistre pour les suivants. Linux plante (unable to mount root fs). Le noyau a dmarr, mais Linux na pas pu trouver sa partition systme. Cause probable : la conguration de GRUB a chou. Cela peut arriver lorsque le cblage des disques durs a t modi. Rsolution : indiquez la bonne partition lors du dmarrage sous la forme root=/dev/ hdb8. Lorsque cela fonctionne, vous pouvez recongurer GRUB et recrer une disquette damorage. Si le nom de la partition a t modi (par exemple, si le disque a t recbl), il faut aussi modier le chier /etc/fstab (voir Chapitre 23).

INSTALLATION

43

Linux ne dmarre pas. Lorsque lordinateur redmarre, il lance Windows sans poser de question. Il ne semble pas y avoir trace de Linux. Cause probable : linstallation de GRUB na pas fonctionn pour une raison ou une autre. Rsolution : dmarrez un systme de maintenance ou un live CD et rinstallez GRUB (voir Chapitre 24). Windows ne dmarre pas. Aprs le dmarrage, Linux se lance automatiquement. Il ne semble pas y avoir trace de Windows. Cause probable : linstallation de GRUB a fonctionn, mais Linux se lance automatiquement ou Windows napparat pas dans le menu. Il est possible que le menu napparaisse que lorsque lutilisateur appuie sur chap. Rsolution : si un menu safche, choisissez windows avec les touches de direction et appuyez sur Entre. Dans le cas contraire, dmarrez Linux et explorez la conguration de GRUB pour y ajouter un lment de menu pour Windows (voir Chapitre 24). Ni Linux, ni Windows ne dmarrent. GRUB est excut, mais afche rapidement une liste sans n de messages derreur. Cause probable : linstallation de GRUB est endommage. Rsolution : dmarrez un systme de maintenance ou un live CD, et rinstallez GRUB (voir Chapitre 24).

Le systme graphique ne dmarre pas


Il arrive que le systme dmarre, mais seulement en mode texte. XWindow, la base des systmes de bureau KDE ou Gnome, ne fonctionne pas.
Dmarrage automatique de X

La premire tape consiste vrier si le systme nest pas congur pour dmarrer en mode texte. Pour dmarrer X manuellement, connectez-vous en mode texte (indiquez votre nom dutilisateur et votre mot de passe) et lancez la commande startx. Si cela fonctionne, le systme graphique fonctionne. Il faut alors congurer le systme pour quil lance le systme graphique au dmarrage. Selon la distribution, il faut modier /etc/inittab ou sassurer quun script dmarre le gestionnaire dafchage (voir Chapitre 24). Si startx ne fonctionne pas, le problme provient sans doute dune conguration incomplte ou errone. Vous trouverez des informations sur la cration dune conguration X correcte au Chapitre 22.

Reconfigurer X

Le clavier ne fonctionne pas


Les problmes de clavier sont souvent lis la disposition du clavier : Linux pense que vous tapez avec un clavier US, alors que vous utilisez un modle franais. Cette conguration est diffrente pour le mode texte et le mode graphique (voir Chapitres 20 et 22).

44

LINUX

Les menus sont dans la mauvaise langue


Tous les programmes afchent par dfaut les messages derreur ou les menus en anglais. De nombreux programmes (en particulier, Gnome et KDE) peuvent aussi les afcher dans plusieurs langues (voir Chapitre 20). En gnral, il faut installer les paquetages correspondant votre langue, qui assurent la traduction des menus et des autres textes.

Premiers pas sous Linux


Ce chapitre vise vous aider lors de vos premiers pas sous Linux : comment vous connecter, lancer des programmes, vous dconnecter ou redmarrer lordinateur. Il vous indique aussi o trouver de la documentation, que ce soit sur le systme install ou sur Internet. La difcult est que sous Linux, on peut congurer chaque petit dtail. Ainsi, le menu de dmarrage du bureau est lgrement diffrent dans chaque distribution. Une combinaison de touches sous Red Hat peut avoir un effet diffrent sous SUSE. Cest pourquoi nous emploierons de nombreuses formulations de type "gnralement" ou "la plupart" dans ce chapitre. La seule alternative serait de dtailler le fonctionnement de chaque distribution, que vous trouverez dans la documentation correspondante.

3.1

Dmarrer et arrter Linux

Langue, bureau

Pour dmarrer Linux, vous devez redmarrer votre ordinateur. Vous ne pouvez pas le dmarrer depuis Windows, moins de le lancer dans un programme comme VMware et de le faire fonctionner dans un environnement virtuel. Au dmarrage, indiquez dans le menu que vous dsirez lancer Linux et non Windows. Le processus de dmarrage dure environ deux minutes, mais varie en fonction de la distribution et du matriel. De nombreuses distributions afchent une barre de progression pendant le dmarrage. Dautres montrent les innombrables dtails du dmarrage du systme. Ces informations ne sont nanmoins utiles quen cas de dysfonctionnement. Normalement, le processus damorage se termine par lafchage dun cran de connexion graphique. Vous pouvez vous connecter avec votre nom dutilisateur et votre mot de passe. Pour nir, lenvironnement de travail par dfaut de votre distribution, gnralement Gnome ou KDE, safche. Vous trouverez une description plus dtaille de ces deux environnements aux Chapitres 4 et 5. Ne vous connectez pas en tant que root ; utilisez un identiant de connexion sans privilge. Lutilisateur root a des droits illimits. Il nest pas courant de travailler en root sous Linux. Seules quelques tches administratives et certains programmes demandent les droits root auxquels vous pouvez accder en indiquant le mot de passe root ou, sous Ubuntu, votre propre mot de passe. Nous expliquerons au Chapitre 20 comment modier le mot de passe root et crer de nouveaux utilisateurs. Si vous avez install plusieurs jeux de chiers de localisation (pour plusieurs langues) ou plusieurs systmes de bureau (par exemple, Gnome et KDE), vous pouvez choisir la langue et le bureau que vous dsirez lancer lors de la connexion. Les paramtres dpendent de la distribution, mais prennent souvent la forme dune liste droulante dans la bote de connexion ou dun menu spar (voir Figure 3.1).

46
Figure 3.1
cran de connexion sous Ubuntu.

LINUX

Connexion automatique

Connexion en mode texte

On peut congurer Gnome et KDE pour quils dmarrent automatiquement une session. Cela est plus confortable, mais nest pas optimal du point de vue de la scurit (voir Chapitres 4 et 5). On peut galement accder de nombreuses fonctionnalits de Linux en mode texte. Une installation serveur supprimera souvent le systme XWindow et son dmarrage automatique sera dsactiv. Vous devrez donc vous connecter en mode texte (voir Chapitre 12). Lorsque le systme XWindow est install, vous pouvez le dmarrer depuis une console avec la commande startx. Si cette dernire afche des erreurs, X nest pas bien congur. Nous expliquerons comment rgler ce problme au Chapitre 22.

Dconnexion
Les menus KDE et Gnome proposent tous deux une commande pour se dconnecter. La dnomination exacte varie selon les distributions et lenvironnement. Elle termine tous les programmes qui fonctionnent dans lenvironnement graphique (enregistrez au pralable tous vos chiers) et ramne lutilisateur la bote de connexion, partir de laquelle il peut se reconnecter ou teindre lordinateur. Pour changer dutilisateur, il faut thoriquement se dconnecter et se reconnecter sous un autre nom. Gnome et KDE permettent cependant de le faire sans dconnexion. Pour cela, le systme graphique est dmarr une seconde fois (deux systmes sont lancs en mme temps), ce qui ncessite plus de ressources. On peut alors changer dutilisateur rapidement avec un raccourci clavier.

Changement dutilisateur sans dconnexion

PREMIERS PAS SOUS LINUX

47

Dconnexion du mode texte

Si vous travaillez en mode texte, utilisez la combinaison de touches Ctrl+D ou la commande exit pour vous dconnecter.

teindre Linux
Les utilisateurs dinterface graphique ont une commande dans le menu pour teindre lordinateur ou une option dans la fentre de connexion. En mode texte, il faut utiliser la commande shutdown -h now. Elle ne peut tre excute que par root.

3.2

Clavier, souris et presse-papiers

Raccourcis clavier importants


Les raccourcis clavier dpendent du mode dans lequel vous travaillez : graphique ou texte. Cette section prsuppose que vous avez ouvert une session graphique. Les raccourcis sont dnis selon trois niveaux de programmes : Le systme XWindow, pour les fonctions lmentaires du systme graphique, dnit peu de raccourcis clavier. Les environnements Gnome et KDE sont construits au-dessus de X. Ils dnissent galement peu de raccourcis. Ceux-ci ont t harmoniss ces dernires annes pour quils soient identiques sous Gnome et KDE, au moins pour les fonctions les plus importantes. Prcisons que les raccourcis concerns sont en fait grs par le gestionnaire de fentre, et non par le gestionnaire de bureau (voir Chapitre 22). Les raccourcis clavier restants proviennent naturellement des diffrents programmes. Ils dpendent donc de ce que vous tes en train de faire : surfer sur le web avec Firefox, crire une lettre avec OpenOfce.org ou modier du code avec lditeur Emacs. Il existe une multitude de raccourcis que nous ne pouvons pas dcrire ici. Cependant, de nombreuses applications graphiques utilisent les mmes 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 chier avec Ctrl+S. Nous ne pouvons malheureusement pas garantir que les raccourcis suivants fonctionnent pour toutes les distributions. Certaines sloignent des conventions, mais ils peuvent tous tre recongurs.
Raccourcis clavier sous X c+a+B c+a+1 6 a+7 a+c+7 8 etc. arrte le systme X en entier passe du mode graphique aux consoles texte 1 6 passe du mode texte au mode graphique passe dun mode graphique un autre, si par exemple plusieurs utilisateurs sont connects

48

LINUX

Raccourcis clavier importants du bureau (Gnome, KDE) a+t a+1 a+2 a+3 a+4 change la fentre courante affiche le menu du bureau dmarre un programme affiche le menu de la fentre courante ferme la fentre et termine le programme

Saisie de caractres trangers

Si vous devez saisir des caractres dans une langue trangre, il se peut que vous ne disposiez pas de la touche correspondante sur votre clavier. Gnome et KDE fournissent tous deux des outils de table de caractres : gucharmap sous Gnome, KCharMap sous KDE. OpenOfce.org a galement une fentre qui permet la saisie de tels caractres.

Utilisation de la souris
Linux tend de plus en plus sorienter vers les conventions dutilisation de Windows ou de Mac OS. Il existe cependant certaines particularits relatives au bureau qui sont regroupes dans cette section.
Clic simple ou clic double

Sous Gnome, il faut pour de nombreuses oprations (y compris louverture dun chier) double-cliquer sur llment concern. Sous KDE, il est en revanche plus courant dutiliser le simple clic. Dans presque tous les programmes Linux, vous pouvez copier et coller du texte la souris. Pour marquer le texte copier, slectionnez-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 lendroit o le curseur se trouve, dans la mme application ou dans une application diffrente. Attention, lorsque vous serez habitu ce fonctionnement, il sera difcile de vous en passer en particulier sous Windows.

Copier et coller du texte la souris

3.3

Documentation sous Linux

La documentation sous Linux est impressionnante. Elle est en partie fournie avec le systme et disponible sur Internet. Les experts peuvent galement jeter un il au code source, qui est souvent bien document. Cette section prsente un aperu des principales sources dinformation. Plus la documentation est volumineuse, plus il est difcile de trouver la rponse un problme. Lastuce qui rgle tout est souvent perdue au milieu dinformations primes, de cas spciques une version ou une distribution, et de discussions sans n. Notez cependant que la comprhension de langlais est un avantage. Quil sagisse de laide dun programme ou de la description dun service, les traductions en franais sont, pour autant quelles existent, souvent incompltes ou obsoltes.
Aide des applications

Presque tous les programmes graphiques fournissent une aide lie lapplication lorsquon appuie sur F1. Si cela ne fonctionne pas, assurez-vous que les donnes daide sont installes.

PREMIERS PAS SOUS LINUX

49

Dans certaines grosses applications, comme Gimp ou OpenOfce.org, laide peut se trouver dans un paquetage part qui nest pas install par dfaut.
man et info

Pour de nombreuses commandes en mode texte, man nom ou info nom fournissent une description de la commande et une rfrence de la syntaxe. Nous en parlerons plus en dtail au Chapitre 12. Sous Linux, les programmes sont installs sous forme de paquetages. Un paquetage contient tous les chiers ncessaires une application et, bien souvent, des chiers de documentation. Celle-ci se trouve, selon la distribution, dans /usr/share/doc/nom_du_paquetage (sous Debian, Fedora, Red Hat et Ubuntu) ou /usr/share/doc/packages/ nom_du_paquetage (sous SUSE). Que faire lorsque vous cherchez la documentation dune commande sans savoir quel paquetage elle appartient ? La premire tape est de trouver le nom exact de la commande. Lancez pour cela la commande which -a commande :
utilisateur$ which -a cp /bin/cp

Documentation des paquetages

Il faut ensuite dterminer quel paquetage appartient le chier. Cette opration dpend 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 utilise dans les distributions Fedora, Red Hat, SUSE ou Mandriva, et dpkg sous Debian et Ubuntu.
Forums et wikis sur Internet

Il existe dinnombrables forums, wikis et pages web sur Linux, maintenus par les acteurs du march et les utilisateurs enthousiastes. Une numration serait ici inutile : une simple recherche des termes "fedora forum" ou "ubuntu wiki" propose de nombreuses pages. En ce qui concerne les questions spciques une distribution, vous aurez plus de chances de trouver votre bonheur si votre distribution est populaire. Les groupes de discussion sont principalement utiliss par des utilisateurs expriments de Linux. Vous ny trouverez peut-tre pas de discussions courantes faciles suivre, mais vous pourrez chercher des informations dans les archives. En particulier, les problmes de conguration ou de matriel ont probablement t rencontrs par quelquun dautre. Le moteur de recherche le plus utilis pour les groupes de discussion est Google : http://groups.google.com. Le Linux Documentation Project (projet de documentation de Linux) a pour but de rassembler la documentation autour de Linux. Vous trouverez plus dinformations son sujet sur la page du projet : http://www.tldp.org/. La documentation se divise principalement en trois types : les HOWTO ou guides pratiques, les FAQ (Foires aux Questions) et les guides (sous forme de livres). Mais de nombreux

Groupes de discussion

Linux Documentation Project

50

LINUX

Documentations en franais

textes du LDP ne sont plus maintenus et sont obsoltes. De plus en plus de projets de documentation utilisent un wiki, que tous les utilisateurs peuvent le cas chant corriger. Une partie de la documentation du LDP est traduite en franais par le projet http://www.traduc.org. Les mmes rserves quant lactualit des documentations sappliquent, dautant plus quune traduction peut ne pas tre jour par rapport la version originale. Notons pour terminer deux sites utiles en franais. Le premier, La Linux (http://www.lea-linux.org), est un site de documentation en franais. On y trouve normment dinformations utiles, en particulier en ce qui concerne le matriel. Tous les publics (du dbutant au professionnel) sont viss par les diffrents articles du site. Le second, Unix Garden (http://www.unixgarden.com), est un site gr par les ditions Diamond qui ditent entre autres les magazines GNU/Linux Magazine France et Linux Pratique. Unix Garden reprend, quelques mois aprs leur publication sous forme papier, les articles de ces magazines. On peut donc y trouver des articles pratiques intressants, mme sil ne sagit pas proprement parler dun site dentraide ou de documentation.

Gnome
Lorsque vous travaillez sous Windows ou Mac OS, il nexiste quune seule interface utilisateur qui fait partie du systme dexploitation. La situation est diffrente sous Linux. Le systme dexploitation ne sert quaux oprations de base. Linterface utilisateur est un programme situ un niveau au-dessus. Il existe de nombreux systmes de bureau. Les plus populaires sont actuellement Gnome et KDE (voir Chapitre 5). Quil sagisse de Gnome ou de KDE, les fonctions de base dun gestionnaire de bureau sont les mmes et regroupent : la gestion du bureau, compos dune ou deux barres (ou panneaux) contenant le menu de dmarrage, le gestionnaire de tches et dautres mini-applications ; un gestionnaire de fentres servant rgler le comportement des fentres (comment changer de fentre active, comment les dplacer, etc.) ; de nombreuses applications et programmes de conguration. Ce chapitre se consacre aux fonctions basiques de Gnome. Mais attention : deux installations de Gnome se ressemblent rarement. Dune part, une nouvelle version sort tous les six douze mois mais les changements visibles pour les utilisateurs ont t plutt modestes au cours des dernires annes. Dautre part, chaque distribution modie Gnome sa discrtion : la construction du menu de dmarrage, les effets graphiques du bureau et le choix des programmes et logiciels de conguration peuvent varier fortement. Ce chapitre se base sur la version 2.22 de Gnome, telle que congure dans Ubuntu 8.04. De nombreux programmes ajoutant des fonctionnalits et des lments graphiques au bureau sont installs avec Gnome.

Gnome contre KDE

Pour des raisons historiques, il existe deux environnements de bureau concurrents sous Linux. Le projet KDE se basait sur la bibliothque Qt de lentreprise TrollTech. Les premires versions de Qt taient considres comme restrictives par rapport la GPL (elle est depuis compltement 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 aujourdhui les esprits. Les deux bureaux sont tout fait adapts une utilisation bureautique standard. Gnome est plus accessible et plus simple apprendre, mais KDE fournit aux utilisateurs avancs davantage de possibilits de conguration et de personnalisation. Ces derniers ont donc une prfrence pour KDE, tandis que Gnome joue un grand rle dans lenvironnement commercial de Linux (Red Hat et Novell sont plutt orients vers Gnome). De nombreuses distributions laissent leurs utilisateurs le choix entre les bureaux et proposent des paquetages pour les deux environnements. Il est donc possible dinstaller les systmes en parallle et de choisir un bureau lors de la connexion.

52

LINUX

Plus important encore : vous pouvez parfaitement utiliser ces deux programmes en parallle. Par exemple, si vous utilisez Gnome comme environnement de bureau, rien ne vous empche dutiliser KDE K3b pour graver vos CD et DVD. Ils sont dailleurs compatibles entre eux au point que mme les commandes de glisser-dposer fonctionnent sans problme.
Travailler sans environnement de bureau

Gnome et KDE fournissent certes de nombreuses fonctionnalits, mais ils demandent des capacits assez importantes en termes de mmoire vive et de processeur. Sur les ordinateurs limits en ressources, il est prfrable de se passer dun environnement de bureau. Si vous dsirez une interface graphique, utilisez pour la gestion de vos fentres un gestionnaire de fentres, comme XFCE. Il existe des distributions, comme Xubuntu, qui sont optimises pour ce choix de paquetages. Vous pouvez aussi choisir de fonctionner en mode texte. Cest largement sufsant pour les serveurs rseau ou les pare-feu.

4.1
Connexion et dconnexion

Conception du bureau

Avant de pouvoir travailler sous Gnome, vous devez vous connecter avec votre nom dutilisateur et votre mot de passe. Sur lcran de connexion, il existe un menu Options (gnralement en bas gauche), dans lequel vous pouvez choisir la langue et lenvironnement de bureau que vous souhaitez lancer lorsquil en existe plusieurs. Pour vous dconnecter ou redmarrer lordinateur, choisissez llment correspondant du menu Systme (qui peut, selon les distributions, sappeler Quitter, Terminer, Se dconnecter, etc.). Selon le matriel, vous pouvez aussi lancer le mode dhibernation ou dconomie dnergie de lordinateur. Gnome permet de changer dutilisateur sans que lutilisateur courant ait se dconnecter. Le plus lgant est dutiliser le programme fast-user-switch-applet prsent depuis la version 2.20. Cette application safche normalement droite du tableau de bord et indique par dfaut le nom de lutilisateur connect. Un clic de souris afche une liste de tous les utilisateurs et dsigne ceux qui sont dj connects avec une coche. Choisir un lment dans ce menu afche, pour des raisons de scurit, une nouvelle bote de dialogue de connexion. En interne, un nouveau systme graphique (nouveau serveur X) est dmarr pour chaque utilisateur, ce qui ncessite beaucoup de ressources. Lutilisation par plusieurs utilisateurs en parallle ne fonctionne donc correctement que sous les ordinateurs rapides. Pour changer dutilisateur, on utilise les combinaisons de touches suivantes : Ctrl+Alt+F7 Ctrl+Alt+F8 Ctrl+Alt+F9 premier utilisateur deuxime utilisateur troisime utilisateur

Changement dutilisateur

Certaines distributions rservent le F8 un cran de journalisation et les utilisateurs sont donc dcals (F7 pour le premier, F9 pour le deuxime, F10 pour le troisime, etc.). Si lapplication de changement dutilisateur nest pas sur le tableau de bord, on peut la lancer manuellement en cliquant du bouton droit sur le tableau de bord et en choisissant Ajouter au tableau de bord... puis, dans la fentre qui safche, Outil de changement dutilisateur.
Bureau

Aprs la connexion, vous vous trouvez sur le bureau Gnome. Son apparence dpend beaucoup des distributions. La Figure 4.1 illustre Gnome sous Ubuntu.

GNOME

53

Figure 4.1
Le bureau Gnome.

Zone de travail

Tableaux de bord

Le bureau se compose habituellement des lments suivants : deux "barres" ou tableaux de bord, en haut et en bas de lcran ; le menu Gnome dans le tableau de bord du haut ; la liste des tches dans le tableau de bord du bas ; des icnes et diverses applications daide (applets) dans les deux tableaux de bord ; la zone de travail effective entre les deux tableaux de bord. Les lments du bureau sont congurables presque sans limite. Vous pouvez, par exemple, placer les deux tableaux de bord dun seul ct, supprimer des lments des tableaux de bord, en ajouter dautres, en modier les proprits, etc. Vous pouvez accder aux botes de conguration correspondantes avec le bouton droit. Au dpart, la zone de travail est presque vide, lexception de quelques icnes pour les lecteurs externes. Selon la conguration, on peut aussi trouver des icnes supplmentaires pour la corbeille, le rpertoire personnel, etc. On peut crer des chiers et des rpertoires sur la zone de bureau. Ceux-ci sont alors reprsents par des icnes. Il sagit physiquement des chiers crs dans le rpertoire ~/Desktop. La reprsentation et la gestion des icnes (aspect, emplacement, etc.) sont gres par le gestionnaire de chiers de Gnome, Nautilus. Leurs proprits sont enregistres dans le rpertoire ~/.nautilus/metafiles/*. Un tableau de bord est une zone rectangulaire situe sur lun des cts de lcran (habituellement, en haut ou en bas). Il na en soi aucune fonction ; il nest quun conteneur pour dautres lments du bureau (les applets, comme le menu et la liste des tches).

54

LINUX

On peut dplacer facilement les tableaux de bord la souris. La plupart des applications sont prvues pour des tableaux de bord horizontaux. Si ces derniers sont placs sur le ct droit ou gauche de lcran, cela peut mener des rsultats non optimaux. Il est galement possible de runir les lments des deux tableaux de bord par dfaut dans un seul. Les distributions de SUSE et de Novell sont congures ainsi.
Applets

Les applets sont des programmes excuts dans les tableaux de bord. En plus de celles prsentes par dfaut, il en existe dinnombrables dont les plus importantes sont prsentes ciaprs. 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 modier certaines proprits des applets dans le menu contextuel qui souvre avec le bouton droit. Lapplet la plus importante est sans doute le menu Gnome (voir Figure 4.1). Il se compose de trois groupes : Applications pour dmarrer les programmes, Raccourcis pour ouvrir des rpertoires ou dmarrer le gestionnaire de chiers Nautilus, et Systme pour congurer, administrer et quitter le systme. La clart de ce menu dpend largement de la conguration. Ubuntu est exemplaire, car le menu ne contient que les programmes les plus utiliss. linverse, la conguration de base de Debian est systmatique et exhaustive, redondante, et souvent droutante pour les dbutants.
Vous pouvez glisser-dposer un programme souvent utilis dans un endroit vide du tableau de bord. Licne qui apparat vous permet de dmarrer rapidement lapplication en question. Vous pouvez aussi modifier vous-mme le menu. Pour cela, utilisez lditeur de menu alacarte qui se trouve sous Ubuntu dans Systme > Prfrences > Menu principal. Il contient de nombreuses lignes que vous pouvez activer ou dsactiver. Vous pouvez aussi dfinir de nouveaux lments de menu ou les grouper diffremment.

GNOME

55
Novell, mcontent du menu Gnome, a dvelopp son propre menu. Il facilite laccs aux programmes les plus utiliss, et aux documents et rpertoires rcemment ouverts (voir Figure 4.3).

Figure 4.3
Variante du menu Gnome fournie par openSUSE 10.3.

Liste des fentres

Lapplet Liste des fentres afche une icne qui correspond la barre des tches de Windows. Dans la bote de dialogue de conguration, vous pouvez choisir si les fentres dun programme (par exemple, celles de Gimp ou les documents OpenOfce.org ouverts) doivent tre groupes par programme. Cela amliore la vue densemble lorsque beaucoup de fentres sont ouvertes, mais augmente le nombre de clics ncessaires pour changer de fentre. Certains comportements des fentres, comme le dplacement, lagrandissement ou la minimisation, dpendent du gestionnaire de fentre. Gnome en fournit plusieurs ; cest gnralement le programme metacity qui est utilis par dfaut.

Espaces de travail

Les espaces de travail permettent de partager les fentres de programmes sur plusieurs bureaux virtuels et de passer dun bureau lautre. Cela facilite le travail et amliore la vue densemble lorsque plusieurs fentres sont ouvertes simultanment. Vous pouvez, par exemple, lancer le programme graphique Gimp sur son propre espace de travail. Ainsi, toutes ses fentres seront sur un seul et mme espace, tandis que les autres fentres seront sur un second espace de travail. Lapplet Slecteur despaces de travail gre des espaces de travail. Dans Prfrences, vous pouvez choisir le nombre despaces souhait. Il est possible de congurer une fentre donne an quelle soit visible sur tous les espaces de travail. Ouvrez le menu de la fentre avec le bouton droit ou Alt+Espace, puis activez loption Toujours sur lespace de travail visible.

Zone de notification

Lorsque le tableau de bord afche la zone de notication, les programmes en tche de fond peuvent y laisser des notications, par exemple lorsque de nouvelles mises jour

56

LINUX

sont disponibles ou lorsquun nouveau courrier lectronique est arriv. Cette zone na en soi aucune fonction ; il sagit plutt dun conteneur pour les icnes des autres programmes.

4.2

Nautilus

Le programme Nautilus est le gestionnaire de chiers de lenvironnement de bureau Gnome. Il permet daccder aux chiers et rpertoires de lordinateur, ainsi quaux lecteurs externes et aux rpertoires rseau, de graver des CD et des DVD, etc. Nautilus est un programme plutt universel (voir Figure 4.4).

Figure 4.4
Nautilus.

Cette section traite de lutilisation de Nautilus, mais ne rentre pas dans les dtails de la gestion des fichiers sous Linux. Ce thme fait lobjet dun chapitre complet, le Chapitre 13.
Dmarrage

On dmarre gnralement Nautilus depuis le menu Gnome en choisissant Raccourcis > Dossier personnel. Le menu Raccourcis contient galement des autres lments qui facilitent laccs dautres rpertoires. Le gestionnaire de chiers afche par dfaut le contenu du rpertoire choisi sous forme de symboles. Chaque chier est reprsent par une icne qui, pour certains, donne un aperu du contenu. Cet aperu ne fonctionne par dfaut que pour les chiers locaux (et non pour les rpertoires rseau) et ceux relativement petits. Vous pouvez modier ce comportement dans dition > Prfrences > Aperu. Pour ne pas avoir regnrer sans cesse les aperus, Nautilus enregistre les images dans le rpertoire ~/.thumbnails. La plupart des programmes Gnome utilisent ce rpertoire.

GNOME

57
Cliquez sur Afchage > Zoom avant et Afchage > Zoom arrire pour modier la taille des icnes. Pour afcher les informations dtailles des chiers, choisissez Afchage > Voir en tant que liste dans le menu.

Barre latrale

Le panneau gauche de la fentre contient normalement une barre latrale, qui permet de passer rapidement dans plusieurs rpertoires importants (il sagit de raccourcis). Vous pouvez cependant y afcher dautres choses, comme larborescence des rpertoires, des informations sur le rpertoire courant ou une liste des derniers rpertoires visits (Historique). F9 masque ou afche cette barre latrale. Sous les diverses icnes, se trouvent des boutons qui permettent de changer rapidement de rpertoire. Ils indiquent le chemin du rpertoire courant (par exemple, en bas gauche de la Figure 4.4, le chemin est /usr/bin). Nautilus peut aussi afcher un chemin complet en tant que barre dadresse, ce qui facilite la saisie rapide dun autre rpertoire. Il est possible de passer dun mode lautre en cliquant sur le bouton Bascule entre le mode texte et boutons de la barre demplacement ( gauche de la barre en question).
Certaines distributions configurent Nautilus en mode spatial. Cela signifie que lorsquon change de rpertoire, une nouvelle fentre souvre. Certains dveloppeurs de Gnome trouvent ce mode plus intuitif, mais tous les utilisateurs ne sont pas de cet avis. Pour modifier ce comportement, activez loption Toujours ouvrir dans des fentres de navigation dans dition > Prfrences > Comportement.

Changer de rpertoire

Ouvrir des fichiers

La plupart des chiers souvrent avec un double-clic. Le gestionnaire de chiers ouvre automatiquement le programme correspondant. Si le type de chier nest pas connu, cliquez dessus du bouton droit et lancez Ouvrir avec une autre application. Souvre alors une bote de dialogue dans laquelle vous pouvez choisir la plupart des programmes installs sur lordinateur. Certains chiers peuvent tre ouverts avec plusieurs programmes. Par exemple, on peut ouvrir les images avec un outil de visualisation, lditeur graphique Gimp ou Firefox. Lun de ces programmes est dni par dfaut. Pour le modier, cliquez du bouton droit sur le chier, choisissez Proprits > Ouvrir avec et indiquez le programme de votre choix. Cette proprit sappliquera tous les chiers du mme type, comme par exemple tous les chiers PNG.

Dplacer et copier des fichiers

Les chiers slectionns sont copis avec Ctrl+C, coups avec Ctrl+X (et supprims de leur endroit dorigine) et colls avec Ctrl+V. Il est nanmoins plus simple de dplacer les chiers la souris, et non au clavier, en les passant dune fentre du gestionnaire de chiers lautre grce un glisser-dposer. Ils sont alors normalement dplacs et non copis. Mais il existe des exceptions cette rgle, lorsque par exemple lopration de glisser-dposer part dun CD ou dun lecteur rseau. Dans ce cas, le curseur de la souris est agrment dun symbole plus (+), pour que la signication de lopration soit claire. Si vous dsirez copier plutt que dplacer des chiers, appuyez pendant le glisser-dposer sur la touche Ctrl. Si vous souhaitez que le navigateur vous demande quoi faire, commencez

58

LINUX

Chercher des fichiers

le glisser-dposer, puis appuyez sur Alt avant de dposer le chier. Lorsque vous relchez la souris, un menu apparat : vous pouvez alors copier ou dplacer le chier, ou encore crer un raccourci (lien). La commande Aller > Recherche des chiers offre une vue peu intuitive pour chercher des chiers. Nautilus fait la liste de tous les chiers dont le nom correspond au terme saisi dans le champ de recherche. Il nest pas possible deffectuer une recherche sur le texte des chiers. Une limitation des rsultats sur un type de documents donn est normalement prvue, mais mes tests sous Ubuntu 8.04 nont pas t concluants ce sujet. Notez que, par dfaut, le rpertoire racine est parcouru (et non le rpertoire courant). Vous pouvez aussi utiliser la commande Raccourcis > Rechercher des chiers dans le menu Gnome. Cela lance le programme gnome-search-tool. Ce dernier permet dutiliser davantage de critres de recherche, mais il est relativement lent. Les outils de recherche tels que Beagle ou Tracker sont bien plus efcaces (voir Chapitre 13). Sous Linux, tous les chiers et dossiers dont le nom commence par un point sont considrs comme cachs. Cela signie quils ne sont pas afchs par le gestionnaire de chiers, ni par les botes de dialogue de choix de chier. Ils contiennent souvent des paramtres de conguration ou dautres chiers qui ne doivent pas tre modis directement. Laccs direct ces chiers nest, en gnral, appropri que dans des cas exceptionnels (par exemple, lorsque vous dsirez faire une copie de sauvegarde de votre rpertoire de courrier lectronique ~/.mozillathunderbird). Pour les afcher dans le gestionnaire de chiers, cliquez dans le menu sur Afchage > Afcher les chiers cachs. Un utilisateur ne peut pas lire ou modier tous les dossiers ou rpertoires. Linux enregistre donc pour chaque chier et rpertoire le propritaire et les droits daccs. Les concepts sousjacents seront expliqus au Chapitre 13. Pour modier ces droits, cliquez du bouton droit sur le chier ou le rpertoire, puis allez dans Proprits, Permissions (voir Figure 4.5).

Fichiers cachs

Droits daccs

Figure 4.5
Permissions dun fichier.

GNOME

59
Lorsque vous supprimez un chier, il atterrit dabord dans la corbeille. Vous pouvez voir le contenu de cette dernire dans le gestionnaire de chiers grce la commande Aller > Corbeille, ou en cliquant directement sur son icne. Les chiers ne sont supprims que lorsque vous les slectionnez et appuyez sur Suppr. Par dfaut, le gestionnaire de chiers ne permet pas de supprimer directement des chiers. Si cest ce que vous souhaitez, dans la fentre dition, Prfrences, Comportement, activez loption Inclure une commande supprimer qui ignore la corbeille. Si vous insrez un CD ou un DVD, ou si vous branchez un lecteur USB, Firewire ou eSATA, une nouvelle fentre Nautilus souvre automatiquement pour prsenter le contenu de ce nouveau support. Depuis Gnome 2.22, Nautilus se lance lui-mme ou soccupe de lancer un programme adapt. Les paramtres associs sont dnis dans la bote de dialogue dition, Prfrences, Supports.
Noubliez pas de dconnecter explicitement les disques durs externes et les cls USB avant de les dbrancher de lordinateur. Pour cela, cliquez du bouton droit sur licne du support et choisissez Dmonter.

Supprimer un fichier

Supports externes

Adresses spciales de Nautilus

On peut indiquer des adresses spciales dans le champ dadresse de Nautilus ou dans Aller > Emplacement. Cest souvent le moyen le plus rapide douvrir des rpertoires rseau dans Nautilus. Le tableau suivant rsume les adresses et protocoles importants :
Adresses spciales de Nautilus computer: fonts: ftp://nomdhte network: sftp://nomdhte smb: smb://nomdhte themes: trash: liste de tous les supports de donnes liste de toutes les polices disponibles (ne fonctionne pas sous Gnome 2.22) accs un serveur FTP utilisation comme navigateur rseau accs un serveur SFTP (protocole SSH) utilisation comme navigateur rseau Windows accs un rpertoire rseau dun ordinateur sous Windows liste de tous les thmes du bureau Gnome (ne fonctionne pas sous Gnome 2.22) corbeille (fichiers supprims sous Nautilus)

La version 2.22 de Gnome peut avoir des problmes sur les accs FTP et Samba qui ne fonctionnent plus comme avant. Laffichage des polices et des thmes ne fonctionne plus non plus. Esprons que les mises jour et la version 2.24 rgleront ces problmes.

60

LINUX

Graver des CD et des DVD


CD et DVD de donnes

Copier des CD et des DVD

Fichiers ISO

Rien de plus simple que de graver quelques chiers ou un rpertoire sur un CD ou un DVD. La fentre Crateur de CD/DVD apparat automatiquement lorsquon place un CD ou un DVD dans le lecteur. Si ce nest pas le cas, dmarrez le programme avec Raccourcis > Crateur de CD/DVD. Dplacez ensuite vos chiers ou rpertoires sauvegarder par glisserdposer depuis une autre fentre. Pour nir, lancez Fichier > Graver un disque, puis congurez si ncessaire la vitesse de gravure et quelques options, et cest parti ! Il nexiste malheureusement pas de fonction de vrication pour sassurer que le CD ou le DVD grav na pas derreur. Pour copier un CD ou un DVD, placez-le dans le lecteur et lancez dans le menu Systme Raccourcis > Poste de travail. Cliquez du bouton droit sur licne du CD, puis lancez Copier le disque. Les chiers ISO sont pour la plupart de gros chiers qui regroupent lensemble du contenu dun CD ou dun DVD dans un format spcial. Pour graver un tel chier, cliquez dessus du bouton droit et choisissez Graver un disque. Vous pouvez auparavant visualiser le contenu du chier ISO. Double-cliquez dessus pour ouvrir le gestionnaire darchives qui gre le chier ISO exactement comme un chier Zip. En revanche, vous ne pouvez pas modier son contenu. Vous pouvez aussi crer vous-mme une ISO de CD ou de DVD. Dans le crateur de CD/DVD, il suft de choisir Image de chier dans la commande Graver un disque.

Accder aux rpertoires rseau


Partages Windows

La commande Raccourcis, Rseaux lance une fentre Nautilus qui afche aprs quelques secondes des icnes pour tous les rseaux reconnus. En pratique, il sagit souvent dune seule icne. Lorsquon double-clique dessus, cela afche tous les rseaux Windows reconnus. Un double-clic supplmentaire permet daccder tous les ordinateurs sur un rseau donn. Si lon double-clique sur lun de ces ordinateurs, on peut voir les ressources quil met disposition (ce quon appelle les partages Windows). Un dernier double-clic permet douvrir le rpertoire en question (voir Figure 4.6). Si le rpertoire est protg par un mot de passe, il faut fournir lidentiant de connexion et le mot de passe. Il est alors possible denregistrer ces donnes dans une base de donnes de mots de passe protge par un mot de passe matre. 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 ladresse smb://<nom du serveur>. Notez que, sil est gnralement simple daccder un rpertoire rseau, travailler directement depuis celui-ci ne lest pas forcment. Par exemple, de nombreux programmes, dont Gimp, ne savent pas ouvrir un chier sur un lecteur rseau et renvoient souvent des erreurs. Le contournement de ce problme est de copier les chiers sur un systme local. Nautilus peut galement fonctionner comme client FTP. Indiquez dans la barre dadresse le chemin du rpertoire FTP (par exemple ftp://serveur.com/repertoire). Une fois la connexion tablie, une bote de dialogue apparat, dans laquelle vous pouvez vous connecter de manire

Rpertoires FTP

GNOME

61

Figure 4.6
On accde un partage Windows en cinq tapes.

Connexion permanente un rpertoire rseau

anonyme ou via un identiant et un mot de passe. Si vous le dsirez, Nautilus peut enregistrer les donnes de connexion pour accder plus rapidement un rpertoire donn. Pour faciliter laccs un rpertoire rseau, vous pouvez aussi connecter le lecteur rseau de manire permanente. Pour cela, lancez Raccourcis > Se connecter un serveur..., puis choisissez le protocole rseau (partage Windows, FTP, WebDAV ou SSH par exemple) et indiquez les informations de connexion correspondantes (voir Figure 4.7). Gnome enregistre ces informations, augmente le menu Raccourcis dune nouvelle ligne et place une icne sur le bureau. Il suft alors dun clic pour ouvrir le rpertoire correspondant.

Figure 4.7
Connecter un partage Windows de manire permanente.

62

LINUX

Selon mes tests sous Ubuntu 8.04 et Fedora 9, tenter de connecter un rpertoire rseau Windows gnre un message derreur. Deux icnes identiques apparaissent sur le bureau, mais disparaissent la connexion suivante. Esprons que ce problme sera bientt rgl par une mise jour de Gnome. Les connexions rseau permanentes ne peuvent pas tre modifies. Pour les supprimer, cliquez du bouton droit sur licne et lancez Dmonter le volume.

4.3
Outils de configuration

Programmes Gnome

Gnome propose des outils pour la conguration de linterface graphique et divers aspects de ladministration de lordinateur. Ces programmes se trouvent dans les menus Systme > Paramtres et Systme > 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 dj fourni par la plupart des distributions, au moins en tant que paquetage optionnel.

Figure 4.8
Le centre de contrle de Gnome.

Console : gnometerminal

Le programme gnome-terminal est la variante Gnome de la fentre de shell (interprteur de commandes) xterm. Ce programme se distingue par quelques particularits : Les adresses web sont soulignes automatiquement lorsque la souris passe dessus. Le bouton droit permet de dmarrer un navigateur web pour afcher la page. Si vous glissez-dposez un chier ou un rpertoire depuis Nautilus dans la fentre de la console, le nom complet du chier est insr. Ctrl++ et Ctrl+ permettent de modier la taille de la police. On peut ouvrir un second terminal dans la mme fentre laide de Ctrl+Maj+T ou Fichier, Ouvrir un onglet. On peut naviguer entre les onglets grce Ctrl+PgPrc et Ctrl+PgSuiv. Le menu dition, Prols permet de dnir certaines options et comportements. Chaque terminal peut se voir associer un prol propre.

GNOME

63
Lditeur de texte par dfaut de Gnome est gedit. Ce programme est facile prendre en main et trs pratique pour les tches simples. Lorsquon double-clique sur un chier PDF ou PS, le programme Evince dmarre et afche le document. Vous pouvez le parcourir, imprimer des pages, etc. Les PDF plus complexes safcheront mieux sous Adobe Reader (en particulier, les PDF comportant des champs remplir), qui est gratuit, mais pas libre. Pour envoyer plusieurs chiers par courrier lectronique ou faire des copies de sauvegarde, il est souvent pratique de compresser plusieurs chiers ou le contenu dun rpertoire. Pour cela, on utilise le gestionnaire darchives file-roller. Ce dernier permet galement de visualiser et de dcompresser des archives. Pour connatre les lments les plus coteux en termes de place sur votre disque dur, lancez Applications, Accessoires, Analyseur dutilisation des disques. Ce programme, appel Baobab, afche sous une forme graphique les rpertoires et sous-rpertoires qui contiennent beaucoup de chiers. Les diffrents boutons de la barre permettent diffrentes analyses ; notez quune analyse dun systme complet peut tre assez longue. Divers programmes Gnome ncessitent la saisie didentiants utilisateur et de mots de passe. Pour que ces programmes naient pas grer eux-mmes les mots de passe, leur gestion est centralise dans Gnome. Elle est utilise entre autres dans Nautilus, Evolution et NetworkManager. La base de mots de passe est scurise par un mot de passe matre, demand lors de la premire utilisation du programme. Les accs suivants la base sont autoriss sans nouvelle saisie de ce mot de passe. Pour supprimer un lment de cette base de donnes, lancez le programme seahorse via le menu Systme, Prfrences, Chiffrement et trousseaux. seahorse peut aussi tre utilis pour grer les cls GPG et SSH. Pour graver un CD audio, lancez Applications > Sons et vidos > Serpentine Audio CD Creator. Serpentine ne fait pas partie de linstallation de base dUbuntu 8.04. Vous devrez donc probablement linstaller vous-mme grce au gestionnaire de paquetages. Le fonctionnement du programme est simple : ajoutez les chiers audio par glisser-dposer, puis cliquez sur Graver sur le disque. La gravure de CD intgre Nautilus est simple utiliser, mais fournit peu de fonctions, par exemple pour graver des CD multisessions. Il faut pour cela utiliser des programmes plus avancs, tels que GnomeBaker ou Brasero.

diteur de texte : gedit Afficher des fichiers PDF ou PostScript : evince

Archiver des fichiers : file-roller

Occupation du disque dur : baobab

Gestion des mots de passe et des cls : seahorse

Gravure de CD audio : Serpentine

Gravure de CD de donnes : GnomeBaker et Brasero

4.4
Connexion automatique

Trucs et astuces

Lorsque vous dmarrez votre ordinateur, vous devez vous connecter avant de pouvoir commencer travailler. Si vous tes le seul utilisateur et quaucune autre personne ne peut y accder, vous pouvez automatiser la premire connexion lors du dmarrage.

64

LINUX

Pour cela, lancez le programme gdmsetup dans Systme, Administration, Fentre de connexion. Dans longlet Scurit, cochez loption Activer la connexion automatique, puis choisissez votre identiant dans la liste droulante (qui ne contient gnralement que votre nom).
Si Gnome et KDE sont installs en parallle sur votre ordinateur, il est probable que la connexion soit gre 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 indpendante du gestionnaire de bureau. Elle est enregistre 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 annules la premire occasion.
Dmarrage automatique

Lorsque vous vous dconnectez, les programmes sont arrts. Si vous dsirez les redmarrer lors de votre prochaine connexion, lancez Systme > Prfrences > Sessions, puis activez loption Se souvenir automatiquement des applications en cours dexcution lors de la dconnexion. Lorsque vous vous reconnecterez, tous les programmes en cours redmarreront. Certains rechargent mme les documents ouverts mais cela ne fonctionne que pour les programmes Gnome. Gnome enregistre les programmes dmarrer automatiquement dans des chiers .desktop situs dans le rpertoire ~/.configu/autostart. Les chiers suivants sont pris en compte : ~/.config/autostart/*.desktop /usr/share/gnome/autostart/*.desktop /etc/xdg/autostart/*.desktop conguration personnelle conguration globale de Gnome conguration globale pour tous les bureaux, y compris Gnome et KDE

diteur de configuration gconf-editor

La bote de dialogue de conguration des programmes Gnome (en gnral ditions > Prfrences) ne contient que les options les plus importantes. Pour la plupart des utilisateurs, ces options sufsent et les botes de conguration sont ainsi plus simples utiliser. Les utilisateurs avancs qui dsirent accder aux options supplmentaires peuvent lancer lditeur de conguration gconf-editor, depuis un terminal ou loutil dexcution auquel on accde grce Alt+F2. La Figure 4.9 montre un exemple de lditeur de conguration. Si vous dsirez que le graveur de CD de Nautilus utilise la fonction burnproof de votre graveur, activez loption apps/ nautilus-cd-burner/burnproof. Par dfaut, Gnome utilise Firefox comme navigateur web, Evolution comme programme de courrier lectronique et gnome-terminal comme programme de console. Si vous dsirez changer ces applications, allez dans Systme > Prfrences > Applications prfres, ou dans le programme gnome-default-application-properties. Les applications associes aux divers supports amovibles sont dnies dans gnome-volume-properties (ou dans Systmes > Prfrences > Priphriques et mdias amovibles).

Dfinir les programmes par dfaut

GNOME

65

Figure 4.9
gconf-editor.

Surveillance du systme

Raccourcis clavier

Configuration du clavier

En gnral, jaime savoir comment se porte mon systme. Jai donc plac sur mon tableau de bord les deux applets Moniteur systme et Moniteur de changements de frquence du processeur. La premire montre la charge processeur courante et, selon la conguration, lutilisation de la mmoire, lactivit rseau, etc. La seconde indique la frquence du processeur, ce qui est pratique pour les processeurs dont la frquence sadapte leur utilisation. Si vous avez un ordinateur multiprocesseurs ou multicurs, utilisez une applet par cur de processeur. Certaines oprations courantes peuvent tre effectues plus rapidement au clavier qu la souris. Le programme gnome-keybindings-properties rsume les diffrents raccourcis clavier et permet den dnir de nouveaux. On y accde grce Systmes > Prfrences > Raccourcis clavier. Le clavier est congur via le systme graphique X, mais les utilisateurs de Gnome peuvent surcharger cette conguration grce Systme > Prfrences > Clavier qui lance le programme gnome-keyboard-properties. Les personnes travaillant en plusieurs langues souhaitent souvent changer facilement de clavier. Pour cela, le plus simple est dutiliser lapplet Indicateur de claviers.

KDE
KDE est une alternative populaire lenvironnement de bureau Gnome, prsent au chapitre prcdent. Il rpond en principe aux mmes besoins, mais se diffrencie par son aspect et utilise en interne des bibliothques et des protocoles diffrents. Lacronyme KDE, qui signiait au dpart Kool Desktop Environment, sest plus tard dclin en K Desktop Environment. KDE fournit, comparativement Gnome, plus de fonctionnalits et de possibilits de conguration qui sadressent plutt aux utilisateurs expriments de Linux. Son utilisation est un peu plus complique, ce qui explique pourquoi de nombreuses distributions se basent par dfaut sur Gnome. KDE est alors fourni en option. Mais ne vous laissez pas impressionner. Si votre distribution fournit les paquetages appropris, rien ne soppose une installation de KDE et de Gnome en parallle. Vous pourrez alors choisir lenvironnement que vous dsirez lancer lors de la connexion. KDE se base sur Qt, une bibliothque commerciale de lentreprise TrollTech. Qt est sous licence GPL dans le cadre de projets libres. Son utilisation commerciale nest ncessaire que lorsquelle est la base dun logiciel dvelopp sous licence propritaire. Comme Gnome, KDE diffre largement dune distribution une autre, que ce soit au niveau de lcran de connexion, des lments du menu de dmarrage, du comportement du bureau et du choix des programmes. Dans ce chapitre, nous nous baserons sur la version 4.0.3 de KDE dopenSUSE 11. openSUSE 11 est, lheure o nous crivons ces lignes, la distribution qui offre les meilleurs paquetages de KDE 4.

KDE 4.0

Ces dernires annes, les dveloppeurs 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 dceptions. En effet, elle ne proposait que les bases du futur systme de bureau : diverses bibliothques et interfaces, dont Phonon (une API multimdia) et Solid (interactions avec le matriel). Vous trouverez plus dinformations ce sujet aux adresses http://phonon.kde.org et http://solid.kde.org. Malheureusement, de nombreuses applications de KDE 4.0 nutilisent pas encore ces bibliothques et font toujours appel celles de KDE 3. De plus, les "vraies" applications KDE 4 laissent encore dsirer en termes de stabilit. En rsum, lutilisation de KDE 4.0 nest conseille quaux dveloppeurs de KDE et aux passionns. Elle ne fonctionnera probablement 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 souris

Lune des diffrences les plus frappantes entre KDE et les autres interfaces utilisateur est le comportement de la souris. Sous KDE, un seul clic (et non un double-clic) suft pour ouvrir des chiers, ainsi que pour les oprations similaires. Cela peut tre droutant au dpart, mais permet de travailler de manire plus efcace et confortable. De plus, si vous ne vous habituez pas au simple clic, vous pouvez recongurer KDE dans ce sens. Pour cela, lancez le programme Conguration du systme, puis choisissez le module Clavier & Souris, ouvrez longlet Souris et activez loption Utiliser le double-clic pour ouvrir les dossiers et les chiers.

68
5.1
Connexion et dconnexion

LINUX

Conception du bureau

Changement dutilisateur

Bureau

Avant de pouvoir travailler avec KDE, vous devez saisir votre identiant utilisateur et votre mot de passe. Lcran de connexion dispose dun menu Type de session (gnralement, en bas gauche). Si vous avez install un autre environnement de bureau ou gestionnaire de fentre, vous pouvez choisir le programme lancer. Pour vous dconnecter ou redmarrer lordinateur, choisissez llment correspondant du menu KDE (selon la distribution, Terminer, teindre, Quitter, Se dconnecter, etc.). Si le matriel le permet, vous pouvez aussi mettre lordinateur en veille ou en hibernation. Dans le menu KDE, la commande Quitter > Changer dutilisateur permet de se connecter avec un second nom dutilisateur sans que lutilisateur courant ait fermer ses programmes. En interne, un nouveau systme graphique (nouveau serveur X) est dmarr pour chaque utilisateur, ce qui ncessite beaucoup de ressources. Lutilisation par plusieurs utilisateurs en parallle ne fonctionne donc correctement que sur les ordinateurs rapides. Pour changer dutilisateur, on utilise les combinaisons de touches suivantes : Ctrl+Alt+F7 premier utilisateur Ctrl+Alt+F8 deuxime utilisateur Ctrl+Alt+F9 troisime utilisateur Laspect du bureau dpend largement de la distribution. La Figure 5.1 prsente le bureau dopenSUSE 11. Il se compose par dfaut dun tableau de bord en bas de lcran et dun espace de travail. Le tableau de bord contient le menu KDE, quelques icnes pour dmarrer rapidement certaines applications, une liste des tches avec les icnes de toutes les fentres ouvertes et divers programmes daide (applets).

Figure 5.1
Le bureau KDE.

KDE

69
La nouveaut graphique la plus visible de KDE 4 est Plasma. Ce composant permet de placer des objets interactifs sur le bureau ou le tableau de bord, et de les utiliser. Cette fonctionnalit est comparable celle de Dashboard dApple. De plus, Plasma est responsable de lafchage des icnes sur le bureau et le tableau de bord. La zone de travail est au dpart plutt vide, en dehors de quelques icnes pour la corbeille, des programmes importants et les supports de donnes externes. Vous pouvez crer dautres chiers et rpertoires sur le bureau ils seront reprsents sous la forme dicnes. Dans KDE 4, on peut lancer des petits programmes, appels plasmodes, directement sur le bureau. Vous pouvez les ajouter en quelques clics partir de licne Plasma en haut droite de lcran. Le choix est encore limit, mais cela voluera probablement avec les prochaines versions de KDE. Lhorloge en haut droite de la Figure 5.1 sur le bureau en est un exemple. Si vous utilisez des icnes et des plasmodes sur votre bureau, le raccourci Ctrl+F12 peut tre utile : il minimise toutes les fentres et nafche que les lments du bureau. Si vous saisissez nouveau ce raccourci, les fentres reviennent leur position initiale. La position et la taille des icnes et des plasmodes est enregistre dans le chier ~/.kde4/ share/config/plasma-appletrc. Lorsque vous crez des chiers et des dossiers sur le bureau, ils sont en ralit enregistrs dans ~/Desktop.

Plasma

Zone de travail

Tableaux de bord

Un tableau de bord est une zone rectangulaire situe sur lun des cts de lcran (habituellement, en bas). Il na en soi aucune fonction ; il nest quun conteneur de plasmodes. Certains lments de base comme le menu et la barre des tches sont, sous KDE 4, des plasmodes. On peut donc, mme si ce nest pas courant, placer le menu, la liste des tches et dautres contenus habituels du tableau de bord directement sur le bureau. Lavantage principal du tableau de bord est quil nest pas recouvert par les fentres. Le menu contextuel Options pour tableau de bord > Paramtres du panneau permet den modier la taille et la position. Il est cependant dconseill de le placer droite ou gauche, car il nest pas optimis pour une reprsentation verticale.

Menu KDE

Le plasmode le plus important est sans doute le menu KDE (voir Figure 5.2). Compltement refondu depuis KDE 3, il se divise en cinq catgories : Favoris contient les principaux programmes de lutilisateur. La liste nest pas actualise automatiquement (en se basant, par exemple, sur la frquence laquelle les programmes sont utiliss). Il faut indiquer explicitement dans longlet Applications ceux qui doivent sy trouver laide du menu contextuel. Applications contient une liste hirarchise de tous les programmes. La navigation est diffrente de celle dun menu habituel et demande un peu dhabitude. Poste de travail permet de lancer divers programmes dadministration et douvrir certains rpertoires importants : le rpertoire personnel, le rpertoire racine, la corbeille, divers supports de donnes externes, etc. Utilis rcemment contient une liste des programmes, chiers et rpertoires utiliss rcemment. Quitter contient les commandes pour se dconnecter, changer dutilisateur et redmarrer lordinateur.

70
Figure 5.2
Le menu KDE.

LINUX

Indpendamment de ces catgories, le menu KDE contient une fonction de recherche. Elle est particulirement utile pour lancer des programmes rapidement sans avoir naviguer dans le menu Applications.
Selon la distribution, vous pouvez aussi utiliser lancienne 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 tches

Espaces de travail

Le plasmode Liste des tches afche une icne pour chaque fentre et correspond la barre des tches de Windows. Malheureusement, il ne permet que des modications de conguration limites, contrairement celui sous KDE 3. Cest le gestionnaire de fentres qui gre le comportement des fentres : dplacement, agrandissement, minimisation, etc. Sous KDE, cest le rle du programme KWin. Le module Comportement des fentres de la Conguration du systme permet de modier de nombreuses proprits : ce que font les boutons de la souris lorsquon les utilise dans la barre de titre dune fentre, sous quels critres une nouvelle fentre est place, le verrouillage ventuel des fentres contre le dplacement, etc. On peut aussi effectuer de nombreuses oprations sur les fentres au clavier. Les raccourcis correspondants se trouvent dans le menu Clavier & Souris de loutil de conguration du systme. Les espaces de travail permettent de partager les fentres de programmes sur plusieurs bureaux virtuels et de passer dun bureau un autre. Cela facilite le travail et amliore la vue densemble lorsque plusieurs fentres sont ouvertes simultanment. La gestion de ces espaces est dlgue au plasmode Bip (Congurer les mini-bureaux). La bote de conguration permet dindiquer le nombre de bureaux souhaits, ainsi que dautres options. Pour les fentres importantes, on peut dnir si elles doivent se trouver sur tous les bureaux (et non sur un seul). Pour cela, activez loption Vers le bureau, Tous les bureaux dans le menu de la fentre.

KDE

71
Lorsque le panneau contient une bote miniatures, les programmes en tche de fond peuvent afcher une notication dans le tableau de bord (par exemple, lorsquune mise jour est disponible ou quun courrier lectronique vient darriver). Cette bote se trouve gnralement droite ou en bas du panneau. Elle na en soi aucune fonction : il sagit dun conteneur o les autres programmes peuvent reprsenter une icne. Le plasmode Notication de nouveaux priphriques indique quun nouveau support de donnes est connect et permet douvrir le systme de chiers ou de dmonter larborescence correspondante.

Bote miniatures

Notification de nouveaux priphriques

5.2
Vues

Dolphin

Sous KDE, Dolphin est le gestionnaire de chiers par dfaut. En gnral, vous pouvez lancer Dolphin via le menu KDE dans Poste de travail, Dossier personnel. Au centre de la fentre safchent les chiers pour lesquels il existe trois modes de reprsentation (voir Figure 5.3) : Icnes, Dtails et Colonnes. Le mode Colonnes afche chaque sous-rpertoire dans une nouvelle colonne.

Figure 5.3
Les trois modes de reprsentation de Dolphin.

Le bouton Aperu active, quel que soit le mode dafchage, un aperu des documents. La taille de cet aperu peut tre modie dans Conguration > Congurer Dolphin > Modes de vue > Icnes. Pour les oprations de copie et de dplacement, on peut scinder la fentre horizontalement ou verticalement, grce au bouton Scinder.

72

LINUX

Barres complmentaires

Accs aux supports de donnes

Accs aux rpertoires rseau

Le rpertoire courant safche 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 rapidement de rpertoire, ou sous forme de texte, ce qui permet de saisir rapidement un nouveau chemin. Indpendamment du mode de cette barre, F6 permet de saisir un nouveau chemin. gauche, droite et en bas du contenu de la fentre, vous pouvez afcher, partir du menu Afcher, Barre ou grce aux touches F4, F7, F9 et F11, un terminal, la hirarchie des rpertoires, une liste des emplacements les plus souvent utiliss ou encore des informations sur un chier donn. Le menu KDE afche dans le groupe Poste de travail, Stockage amovible, toutes les partitions montes, ainsi que les supports externes (CD, DVD, etc.). Lorsque vous connectez un lecteur USB ou Firewire, le tableau de bord afche linformation correspondante. Un clic permet douvrir le gestionnaire de chiers et dafcher le contenu du support. Avant de dbrancher le lecteur, vous devez lancer la commande jecter du menu contextuel ou Retirer en toute scurit dans la barre Emplacements de Dolphin. Cest la seule manire de sassurer que tous les chiers sont ferms et quaucune perte de donnes ne surviendra. La barre Emplacement de Dolphin permet aussi daccder au rseau local. Mes tests nont pas t concluants quant au parcours du rseau. En revanche, le fait dindiquer directement une adresse sous la forme smb://nom_du_serveur/rpertoire fonctionne.

5.3

Konqueror

Le programme Konqueror est un gestionnaire de chiers pour les utilisateurs avancs, un navigateur web, un client rseau (FTP, SCP, rpertoires Windows, etc.) et une visionneuse de documents (images, chiers daide, etc.). En raison des nombreuses fonctions de Konqueror, son menu est malheureusement surcharg et peu clair. De plus, mes tests ont mis en vidence une grande instabilit de Konqueror de nombreuses oprations qui fonctionnaient sans problme sous KDE 3 sont actuellement plus dlicates sous KDE 4.

Utilisation en tant que gestionnaire de fichiers


Pour utiliser Konqueror en tant que gestionnaire de chiers (voir Figure 5.4), cliquez sur le bouton Dbut ou saisissez ~/ dans la barre dadresse. Dans le menu Afchage, vous pouvez choisir, comme dans Dolphin, entre trois modes de reprsentation. La quatrime vue, Afcheur de taille de chiers, permet de visualiser la place ncessaire aux diffrents dossiers et rpertoires. F9 permet dafcher ou de masquer la barre de navigation sur le ct droit. On y trouve, entre autres, des signets, diffrents services, une arborescence de rpertoires et un explorateur rseau. Lutilisation du simple clic pour ouvrir des chiers induit une particularit quant la slection des chiers. Il faut, pour ne pas ouvrir le chier considr, appuyer en mme temps sur Ctrl ou Maj. Lorsque vous cliquez sur un chier Zip ou Tar (se terminant par .tar, .tar.gz, .tgz, .zip, etc.), le contenu de larchive safche dans un nouveau rpertoire.

KDE

73

Figure 5.4
Konqueror en tant que gestionnaire de fichiers.

Pour copier ou dplacer des fichiers, vous utiliserez souvent deux fentres de Konqueror. Il existe une alternative : vous pouvez aussi scinder une fentre en deux grce Fentre, Scinder la vue gauche/droite ou Fentre, Scinder la vue haut/bas.
Images daperu

Fichiers cachs Droits daccs

Supprimer des fichiers

Utilisation du disque dur

Konqueror peut afcher des images daperu pour tous les formats de chiers quil connat (choisir Afchage, Aperu dans le menu). On peut modier la taille des icnes daperu grce Ctrl++ et Ctrl+. Pour des raisons defcacit, les images daperu ne safchent que pour les chiers dont la taille est infrieure une taille donne, limite que lon peut modier dans Conguration > Congurer Konqueror > Aperus & Mta-informations. Les images sont mises en cache dans le rpertoire ~/.thumbnails. Pour afcher les chiers cachs (dont le nom commence par un point), lancez Afchage > Afcher les chiers cachs. Un utilisateur ne peut pas lire ou modier tous les dossiers ou rpertoires. Linux enregistre donc pour chaque chier et rpertoire le propritaire et les droits daccs. Les concepts sousjacents seront expliqus au Chapitre 13. Pour modier ces droits, cliquez du bouton droit sur le chier ou le rpertoire, puis allez dans Proprits > Droits daccs (voir Figure 5.5). Lorsque vous supprimez des chiers et des dossiers, ceux-ci arrivent dabord dans la corbeille. Vous pouvez en voir le contenu dans le gestionnaire de chiers grce Aller > Corbeille. Pour les supprimer dnitivement, slectionnez-les dans la corbeille et appuyez sur Suppr. Pour les supprimer sans quils passent par la corbeille, appuyez sur Maj+Suppr. Si vous dsirez savoir dans quels rpertoires se trouvent les plus grosses quantits de donnes, vous pouvez utiliser le mode Afchage de la taille de chiers. Konqueror afche un graphique qui se compose de rectangles, dont la surface reprsente la taille des chiers. Ce graphique peut aussi safcher sans les lments spciques Konqueror, grce la commande fsview.

74
Figure 5.5

LINUX

Droits daccs un fichier.

Accs aux rpertoires rseau


Navigateur web FTP

SSH

Partages Windows

Pour utiliser Konqueror en tant que navigateur web, saisissez simplement une adresse web dans la barre dadresse. Nous parlerons de Konqueror en tant que navigateur web au Chapitre 6. Lorsque ladresse commence par ftp://, Konqueror passe automatiquement en mode FTP. Linterface et lutilisation sont alors comparables lutilisation du programme en tant que gestionnaire de chiers. Si vous dsirez vous connecter au serveur FTP avec un nom dutilisateur particulier, vous devez crire ladresse sous la forme ftp://nom@adresse. Une fois la connexion tablie, une bote de dialogue safche pour la saisie du mot de passe. Konqueror permet aussi de communiquer avec un ordinateur via le protocole SSH et de copier des chiers. Pour cela, indiquez ladresse fish://nom@ordinateur. Konqueror montre alors tous les chiers de lordinateur distant. Konqueror permet dexplorer des serveurs Windows ou Samba sur le rseau local. Pour cela, il suft de taper smb:/ dans la barre dadresse. Pour accder directement un partage, utilisez la syntaxe smb://nom_du_serveur/nom_du_partage. Celle-ci est particulirement importante lorsque le parcours du rseau nest pas possible, quil sagisse dun problme de pare-feu ou de conguration rseau.

Adresses spciales
La liste suivante indique les adresses spciales les plus importantes de Konqueror.
Adresses spciales de Konqueror
Fichiers locaux

file:/etc/fstab tar:/fichierarchive zip:/fichierarchive audiocd:/ trash:/

fichier local accs un fichier Tar accs un fichier Zip accs un CD audio corbeille

KDE

75
Rseau

http://www.pearson.fr ftp://utilisateur@mars/rpertoire sftp://utilisateur@mars/rpertoire fish://utilisateur@mars/rpertoire smb://mars/partage


Aide

adresse web serveur FTP sur lordinateur mars serveur SFTP sur lordinateur mars accs SSH lordinateur mars partage Windows

man:ls info:emacs help:kmail


Autres

page de manuel de la commande ls page info du programme emacs aide KDE du programme kmail

applications:/ fonts:/ remote:/ settings:/

liste de tous les programmes liste de toutes les polices navigateur rseau module de configuration du centre de contrle

5.4

Applications KDE

Configuration de KDE

kprinter

Cette section prsente quelques programmes KDE frquemment utiliss. Notez quil sagit encore pour la plupart de la version KDE 3. Leur portage sous KDE 4 nest attendu que pour KDE 4.1 au plus tt. Les divers modules de conguration de KDE 4 sont regroups dans un nouveau programme de conguration systme (systemsettings, voir Figure 5.6). Comme il nest pas toujours facile de trouver tout de suite le bon module, il existe une fonction de recherche dans laquelle vous pouvez saisir des mots cls. Si vous tes dj dans un module, vous pouvez revenir la liste des modules grce 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 modications sont enregistres ds que vous cliquez sur le bouton Appliquer. KDE contient, comme Gnome, des modules de conguration qui ne sappliquent pas au bureau, mais au systme (rseau, imprimantes, etc.). Ils sont trs utiles sur les distributions qui ne fournissent pas leurs propres outils. Cependant, sils existent, utilisez de prfrence les programmes de conguration de votre distribution. Dans tous les programmes KDE, loption Fichier > Imprimer afche une bote de dialogue confortable, dans laquelle vous pouvez choisir votre imprimante. Vous pouvez aussi imprimer vers un chier PostScript ou PDF.

76
Figure 5.6

LINUX

Le centre de contrle de KDE.

La commande kprinter peut galement remplacer lpr. Elle imprime le chier ou les donnes qui lui sont passes via un redirecteur pipe, |. La bote de dialogue KDE dimpression safche alors.
utilisateur$ kprinter fichier utilisateur$ ls -l | kprinter
Archiver des fichiers : Ark

Konqueror permet de visualiser et dextraire les chiers qui se terminent par *.tar.gz, *.tgz et *.zip. Cependant, vous ne pouvez pas crer de nouvelle archive ou en modier une existante par ce biais. Pour cela, il faut utiliser Ark, qui fonctionne dune manire tout fait comparable WinZip. konsole permet de lancer un ou plusieurs interprteurs de commandes dans une console texte. Vous pouvez passer dun terminal un autre avec Maj et les ches de direction. Ctrl+Maj et les ches de direction permettent de changer lordre des onglets. Pour crer un nouvel onglet, double-cliquez dans la barre. Notez la possibilit, fort pratique, de copier des noms de chiers par glisser-dplacer depuis Konqueror. Lorsque vous remplissez un formulaire de connexion pour la premire fois (par exemple, lorsque vous utilisez un outil web de courrier lectronique comme IMP), un assistant de conguration du gestionnaire de portefeuilles apparat. Le programme KWalletManager aide scuriser les donnes. Lors dune utilisation ultrieure de la mme 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. Laccs ces donnes, chiffres dans KWalletManager, est scuris grce un mot de passe matre. Lors dune session KDE, il suft de saisir une seule fois le mot de passe matre. Lors de la premire utilisation de KWalletManager, un assistant vous aide la conguration de base du programme. Celle-ci se limite valider lutilisation de KWalletManager comme

Application de terminal : Konsole

Gestion des mots de passe : KWalletManager

KDE

77
gestionnaire de mots de passe et saisir un mot de passe matre. Pour des raisons de scurit, ce dernier doit tre diffrent du mot de passe associ au compte. Lorsque vous cliquez sur un chier *.pdf ou *.ps, le programme Okular se lance et afche le document. Vous pouvez alors le parcourir, imprimer des pages, etc. Si vous utilisez des cls GPG pour chiffrer ou signer vos courriers lectroniques, ou dans dautres programmes, il est utile de disposer dun outil central de gestion des cls. Sous KDE, cest le programme Kgpg qui sen charge. Selon la distribution, trois diteurs de texte peuvent tre installs avec KDE : KEdit, KWrite 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 avancs. Vous pouvez regrouper plusieurs chiers ouverts dans une session, replier des parties de code (fonctions, classes), etc. Le programme Klipper est normalement lanc sous KDE. Son fonctionnement de base est de mmoriser le dernier lment insr dans le presse-papiers. Le contenu de cet lment est analys et peut dclencher des actions. Par exemple, un lment commenant par http:// peut entraner louverture dune fentre qui permet douvrir ladresse web dans un navigateur. KRename permet de renommer efcacement des chiers, de les numroter ou encore de modier des informations, telles que la date. On peut utiliser cette n les expressions rationnelles. Avant toute opration, KRename afche un rsum des anciens et des nouveaux noms de chiers. K3b est le programme de gravure le plus polyvalent sous Linux. Sa multitude de fonctions attire mme 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 nest pas encore port compltement sous KDE 4 et utilise des bibliothques KDE 3. Le grand nombre doptions et de botes de dialogue disponibles peut paratre effrayant premire vue, mais les choix par dfaut sont gnralement senss.

PDF et PostScript : Okular Gestion des cls GPG : Kgpg diteurs de texte : KEdit, KWrite, Kate

Pressepapiers : Klipper

Renommage de fichiers : KRename

Gravure de CD et de DVD : K3b

5.5
Connexion automatique

Trucs et astuces

Lorsque vous dmarrez votre ordinateur, vous devez vous connecter avant de pouvoir commencer travailler. Si vous tes le seul utilisateur de lordinateur et quaucune autre personne ne peut y accder, vous pouvez automatiser la premire connexion lors du dmarrage. La fonction de connexion automatique est congure dans le module Avanc > Gestionnaire de connexion > Commodits des paramtres systme, quil faut lancer avec des privilges root. Cochez loption Activer la connexion automatique, puis choisissez lutilisateur dsir pour la connexion automatique.
Si Gnome et KDE sont installs en parallle sur votre ordinateur, il est probable que la connexion soit gre 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

78

LINUX

Dans les distributions SUSE et Novell, la configuration de cette fonctionnalit est indpendante du gestionnaire de bureau. Elle est enregistre 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 annules la premire occasion.
Dmarrage automatique

Lorsque vous vous dconnectez, les programmes sont arrts. la connexion suivante, KDE tente de les redmarrer et de rtablir la session. Pour les programmes KDE, cela fonctionne relativement bien. Pour dautres, cela fonctionne avec certaines limitations (par exemple, le document ouvert nest pas recharg), voire pas du tout. Les dtails de ce comportement se rglent dans le module Avanc > Gestionnaire de session. Indpendamment de la session, vous pouvez enregistrer les programmes dmarrer automatiquement dans le rpertoire ~/.kde[4]. KDE sattend trouver dans ce dossier des chiers *.desktop qui dnissent le programme lancer. Il arrive quun programme soit alors lanc en double : une fois pour le rtablissement de la session et une fois par le dmarrage automatique. KDE utilise plusieurs rpertoires pour connatre les applications lancer : ~/.kde[4]/Autostart/ /usr/share/autostart/ /etc/xdg/autostart/ conguration personnelle conguration globale de KDE conguration globale pour tous les bureaux, y compris Gnome et KDE

Administration distante

Lorsque vous avez un problme avec votre ordinateur, par exemple lorsquun programme ne fonctionne pas correctement, un ami peut vous aider grce ladministration distance. Il peut ainsi voir dans une fentre de son ordinateur le contenu de votre cran et utiliser tous les programmes avec la souris et le clavier. La plupart des programmes KDE enregistrent leurs options dans des chiers du rpertoire ~/.kde/ ou ~/.kde4/. Plusieurs sous-rpertoires sont crs, et en particulier les rpertoires suivants : ~/.kde[4]/Autostart/ ~/.kde[4]/share/config/ ~/.kde[4]/share/apps/ conguration personnelle du dmarrage automatique paramtres de conguration chiers spciques aux programmes

Rpertoires de configuration

Icne de connexion

Lcran de connexion peut associer une petite image chaque utilisateur. Pour la modier, lancez la commande kcmshell kcm_useraccount. Vous pouvez changer votre mot de passe, licne de connexion, ainsi que dautres paramtres personnels. Licne de connexion est enregistre au format PNG dans le chier ~/.face.icon. Par dfaut, KDE utilise Konqueror comme navigateur web, Kontact comme programme de courrier lectronique et Konsole comme programme de console. Si vous dsirez changer ces applications, allez dans le module Applications par dfaut de la Conguration du systme. Certaines oprations courantes peuvent tre effectues plus rapidement au clavier qu la souris. Des raccourcis peuvent safcher et tre modis dans le module Clavier & Souris > Raccourcis clavier. Vous pouvez aussi dnir des raccourcis pour dmarrer des programmes. Utilisez pour cela kmenuedit et associez un raccourci clavier un lment du menu KDE.

Dfinir les programmes par dfaut Raccourcis clavier

PARTIE 2 LA BUREAUTIQUE SOUS LINUX

6
E-mail, FTP, SSH

Navigateurs Internet (Firefox, Konqueror)


Ce chapitre se focalise essentiellement sur les deux navigateurs Internet les plus populaires sous Linux, Firefox et Konqueror. Si je naborderai que brivement leur utilisation (vous savez dj comment naviguer sur le Web), vous trouverez en revanche ici des astuces de conguration, dinstallation de greffons (Adobe Reader, Flash, Java), etc. Les clients de lecture et de composition de-mails seront prsents au prochain chapitre. Vous trouverez au Chapitre 16 les astuces concernant le tlchargement de chiers par FTP, wget et Torrent, et celles traitant de la manipulation de SSH et scp. Les services Internet IRC (Internet Relay Chat) et IM (messagerie instantane ou Instant Messaging) ne seront pas traits dans le cadre de cet ouvrage : dans les deux cas, il sagit de formes de communication dynamiques impliquant un contact direct entre les interlocuteurs (cest--dire que les deux personnes doivent tre en ligne simultanment). 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.pidgin.im/) (sous Gnome et anciennement connu sous le nom gaim) sont quant eux des clients universels qui prennent en charge divers protocoles de messagerie instantane en plus dIRC (par exemple AIM, ICQ, MSN et Yahoo!) [http://lwn.net/ Articles/216456/ (article en anglais)]. Un autre point que nous laisserons de ct dans cet ouvrage est le sujet de la Voix sur IP (abrg en VoIP) et de la tlphonie 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 obsolte compare son homologue Windows. Ekiga (http://ekiga.org/) est, par exemple, une alternative open-source intressante Skype.

Messagerie instantane, VoIP

6.1
Histoire et nom

Firefox

Firefox peut se rjouir dune adoption croissante sous Windows, mais il est galement et de trs loin le navigateur Internet le plus populaire sous Linux. Voici, rapidement, quelques mots prsentant lorigine du logiciel : en 1998, la socit Netscape a "libr" 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 applicative Mozilla, qui comprenait un navigateur web, un client de courrier lectronique et de news, ainsi quun diteur HTML, le tout en une seule application. En 2002, parce que le code tait devenu illisible, les dveloppeurs ont dcid

80

LINUX

den sparer les diffrents composants. Depuis lors, le nouveau logiciel Mozilla Firefox ne contient que les fonctionnalits de navigation web, tandis que le logiciel Mozilla Thunderbird (que nous prsentons au chapitre suivant) gre les fonctionnalits de courrier lectronique et de news. Dautres rejetons de ce projet, que nous ne prsentons pas dans cet ouvrage, sont lditeur HTML Nvu et lagenda Mozilla Sunbird. Certains dveloppeurs du projet Mozilla, sceptiques quant la sparation des fonctionnalits, ont fond un nouveau projet dnomm Seamonkey et destin unier de nouveau toutes ces fonctions dans un mme logiciel. AOL a par ailleurs un temps propos sa propre version personnalise, fonde sur le code de Mozilla. Ce chapitre ne sintressera toutefois qu la version 3.0 de loutil Mozilla Firefox en tant que tel.
Firefox et Debian

Par le pass, les termes de licence plutt drastiques du projet Firefox ont caus des remous chez bien des dveloppeurs Linux : bien quil sagisse de code open-source, un programme ne peut sappeler Firefox que sil contient du code source "ofciel" produit par les dveloppeurs Firefox. Ce qui a en particulier conduit des problmes frquents lors des mises jour : de nombreuses distributions Linux proposaient une version de Firefox intgre la distribution et lui ajoutaient toutes les mises jour de scurit au fur et mesure, plutt que systmatiquement contraindre leurs utilisateurs mettre niveau leur installation vers la dernire version de Firefox. De telles mises jour de scurit ne rpondaient toutefois pas aux conditions dutilisation de la licence Firefox. Mme si, sur ce point, les camps de Linux et Firefox sont parvenus un compromis grce Mark Shuttleworth (Ubuntu), Debian a choisi dintgrer le navigateur Web Firefox et le client de courrier lectronique Thunderbird sa distribution sous des noms qui lui sont propres. Ainsi, sous Debian, Firefox sappelle Iceweasel et Thunderbird sappelle Icedope. Ceci permet Debian de proposer des modications du code ou des icnes propres sans avoir se proccuper de Firefox.

Fonctionnalits de base
Lutilisation du navigateur ne prsente rien de nouveau par rapport ce quoi vous tes habitu avec nimporte quel autre navigateur : vous cliquez sur des liens, enregistrez des signets pour les pages importantes, etc. Je ne reviendrai pas ici sur ces fonctionnalits lmentaires, je pense que vous les matrisez dj. Comme tous les navigateurs Internet modernes, Firefox peut ouvrir plusieurs pages au sein dune mme fentre, laide des onglets. Pour ouvrir une nouvelle sous-fentre, 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 apparat. Les combinaisons de touche Ctrl+PgPrc ou Ctrl+PgSuiv permettent de passer dun onglet lautre. Ctrl+W permet de fermer longlet courant.
Fentres pop-up

De nombreux sites web utilisent JavaScript pour ouvrir des fentres "pop-up" de publicit. Firefox lempche dans la plupart des cas et afche un avertissement sous la barre dadresse. Si vous le souhaitez, vous pouvez, en cliquant sur cet avertissement, autoriser louverture de la fentre pop-up qui a t bloque ou autoriser systmatiquement les fentres pop-up pour le site web concern. Par exemple, le systme de gestion des comptes en ligne de ma banque ne fonctionne que par fentre pop-up. Jai donc exclu le site de ma banque de la protection contre les fentres pop-up.

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR)

81

Figure 6.1
Le navigateur web Firefox.

Affichage des caractres trangers

Recherche de texte

Recherche web

Marque-pages (Bookmarks)

Pour congurer la gestion des fentres pop-up ainsi que la liste des sites autoriss, passez par la bote de dialogue dition > Prfrences > Contenu. Firefox tente de reconnatre automatiquement le jeu de caractres des pages web, ce qui fonctionne gnralement bien. Dans certains cas rares, toutefois, le navigateur choue et afche alors mal les caractres trangers (y compris les caractres accentus franais, par exemple). Dans de tels cas, vous devez participer la reconnaissance du jeu de caractres. Essayez par exemple de choisir Afchage > Encodage des caractres > Unicode (UTF-8) ou > Occidental (ISO-8859-1). dition > Rechercher ou la combinaison de touches Ctrl+F permettent douvrir une bote de dialogue de recherche. Plus rapide encore, toutefois, la combinaison / A B C permet de localiser le texte abc. Ctrl+G ritre la recherche. Utiliser A B C constitue une variante qui permet de rechercher des liens contenant le texte abc. Pour effectuer une recherche Google, plutt 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 gurant droite de la barre de navigation. Outre Google, dautres moteurs de recherche y sont galement prcongurs. Le menu de slection vous permet galement de dnir un nouveau moteur de recherche. Lentre de menu Ajouter des moteurs de recherche vous conduit une page du site Firefox grce laquelle vous intgrerez 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 proposs. Vous pouvez consulter les marque-pages dans Firefox dans trois endroits diffrents : par le biais du menu Marque-pages, dans une barre doutils (Afchage > Barre doutils) ou dans le panneau latral, que vous pouvez activer ou dsactiver par la combinaison de touches Ctrl+B. Pour enregistrer un nouveau signet, vous utiliserez au choix la combinaison de touches Ctrl+D ou un glisser-dposer de ladresse courante dans la barre de signets ou dans le panneau latral. Lorsque vous souhaitez rorganiser vos signets, passez par Marque-pages > Grer les marque-pages. Une mme bote de dialogue vous permet deffacer, de dplacer, de renommer, de trier, dexporter ou dimporter tous vos marque-pages. En interne Firefox, les marquepages sont stocks dans une base de donnes SQLite correspondant au chier :
~/.mozilla/firefox/nnnn.default/places.sqlite

82
Marque-pages intelligents Flux RSS

LINUX

Les marque-pages intelligents sont une nouveaut de Firefox 3 : ils vous donnent un accs rapide aux dix signets les plus utiliss et aux dix derniers marque-pages enregistrs. De nombreux sites web prsentent rgulirement des nouveauts et proposent galement des liens vers les articles sous la forme de ux RSS. Il sagit l de chiers XML spcialement mis en forme qui, chaque nouveaut, proposent une description succincte ainsi quun lien. Firefox peut prsenter un ux 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 ux RSS, Firefox prsente au ct droit de la barre dadresse un symbole orange ("Sabonner cette page..."). Cliquez sur ce symbole et conrmez ensuite la bote de dialogue de conguration. Le marque-page dynamique apparat maintenant comme un groupe de marque-pages renvoyant aux entres effectives du ux.

Historique

Firefox conserve pour quelques jours le nom et ladresse de chaque site web consult. Cet historique de navigation peut tre afch dans le panneau latral par le biais de la combinaison de touches Ctrl+H, o vous pouvez galement effectuer des recherches. Vous modierez la dure de stockage des pages visites, qui est en standard congure 90 jours, dans dition > Prfrences > Vie prive. Pour tlcharger un chier sur votre ordinateur, il suft dans la plupart des cas de cliquer sur le lien correspondant. Firefox vous demande alors si vous souhaitez ouvrir le chier laide dun programme externe ou lenregistrer sur le disque dur. Si cela ne fonctionne pas, effectuez un clic droit sur le lien et choisissez Enregistrer la cible sous. Pour les tlchargements dont la dure dpasse quelques secondes, une bote de dialogue dtat apparat automatiquement. Par dfaut, les tlchargements Firefox sont enregistrs dans le dossier ~/Desktop. Si vous souhaitez indiquer manuellement lemplacement chaque tlchargement, ouvrez dition > Prfrences > Gnral et activez loption Me demander o enregistrer chaque chier.

Tlchargements

Mots de passe

Lorsque vous remplissez des formulaires de connexion (par exemple pour utiliser un service de webmail), une bote de dialogue apparat qui vous demande si les informations de connexion doivent tre enregistres. Cela vous pargne le fait de devoir saisir nouveau toutes les informations la visite suivante. Ce confort possde naturellement un prix : lorsquune personne trangre a accs votre ordinateur, Firefox lui donne galement accs tous les sites web scuriss par un mot de passe. Par consquent, vous pouvez protger tous les mots de passe enregistrs par le biais dun mot de passe dit principal. Celui-ci sert protger lensemble des autres mots de passe. Par la suite, vous devrez saisir le mot de passe principal chaque session lorsque Firefox accde pour la premire fois la base de donnes des mots de passe. Pour dnir ce mot de passe, ouvrez dition > Prfrences > Scurit et activez loption Utiliser un mot de passe principal.

Impressions

Avant de lancer limpression, vous pouvez choisir par le biais de Fichier > Mise en page la taille du papier ainsi que lorientation du document (portrait ou paysage). Fichier > Aperu avant impression vous permet davoir une ide de la mise en forme avant limpression effective. Fichier > Imprimer lance limpression de la page et vous permet de choisir limprimante souhaite ainsi que lchelle appliquer ou encore diverses options pour limpression des cadres.
Dans de nombreuses distributions, Firefox utilise le format de papier amricain US Letter, ce qui peut (suivant limprimante) conduire des problmes en Europe. Pour fixer le format standard au format A4, ouvrez

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR)

83

dans Firefox la page about:config, recherchez loption print.postscript.paper_size et modifiez-en la valeur par un double-clic sur A4. La nouvelle configuration est prise en compte ds que vous relancez Firefox.
Mises jour de Firefox

Vous tes peut-tre familiaris avec les mises jour automatiques de Firefox disponibles dans la version Windows. Sous Linux, ce type de mise jour nest pas possible. Ici, cest loutil de gestion centralise des paquetages qui gre lensemble des mises jour. La plupart des distributions Linux proposent un paquetage Firefox mis jour chaque fois quune mise jour Firefox est publie.

Configuration
Fichiers de configuration

Proxy (serveur mandataire)

Taille des caractres

Java et JavaScript

Cookies

Firefox gnre son premier lancement le rpertoire ~/.mozilla/firefox/profil.default, o profil est une chane de caractres alatoire. Dans ce rpertoire, Firefox enregistre tous les paramtres, les marque-pages, le cache, etc. Si votre ordinateur est connect Internet ou un rseau local mais que vous ne parveniez pas naviguer sur le Web, il est possible que votre rseau local utilise un serveur proxy, ou serveur mandataire. Cest un ordinateur plac entre votre PC et Internet. Il sert de stockage intermdiaire et acclre ainsi laccs des pages frquemment consultes. Le proxy peut galement servir bloquer laccs certaines pages donnes ou journaliser tous les accs web. Nous verrons au Chapitre 29 comment mettre en place un serveur proxy sous Linux. Pour utiliser un serveur mandataire avec Firefox, ouvrez la bote de dialogue dition > Prfrences > Avanc, onglet Rseau puis bouton Paramtres, et renseignez ladresse obligatoire du ou des serveurs proxy. En rgle gnrale, il suft de remplir les champs correspondant aux serveurs proxy HTTP et FTP. Le numro de port appropri est le 8080. Si vous ne connaissez pas ladresse de votre proxy, contactez votre administrateur systme. Si la taille des caractres dune page donne est trop grande ou trop petite votre got, vous pouvez jouer sur le facteur dagrandissement 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 modier de faon permanente la taille par dfaut des caractres, ouvrez la bote de dialogue dition > Prfrences > Contenu et congurez-y la police par dfaut et sa taille dafchage. Le bouton Avanc vous permet aussi de paramtrer une taille minimale pour les polices. Par dfaut, Java et JavaScript sont activs. Vous trouverez les options correspondantes dans la bote de dialogue dition > Prfrences > Contenu. Toutefois, Java ne fonctionnera que si un environnement Java est install conjointement un greffon Mozilla (voir un peu plus loin dans ce chapitre). Les cookies sont de minuscules chiers stocks sur votre ordinateur. Ils permettent un site web de vous reconnatre lors dune visite ultrieure et denregistrer des informations contextuelles. Par ailleurs, les cookies sont frquemment ncessaires dans le cadre de transactions commerciales (identication, panier dachats). Les cookies ne sont pas dangereux et amliorent dans bien des cas le confort de navigation. Par consquent, Firefox accepte par dfaut les cookies de la majorit des sites web. Lusage des cookies peut toutefois, dans une certaine mesure, tre dtourn pour garder une trace des

84

LINUX

Cache local

about:config

sites web que vous consultez. Pour cette raison, la bote de dialogue dition > Prfrences > Vie prive permet de refuser la totalit ou une partie des cookies. Firefox gre un cache local dans lequel sont enregistres les dernires pages web, images, etc. consultes. Si vous ouvrez ultrieurement la mme page web et quelle nait pas chang entre-temps, cette page peut alors tre charge directement depuis le cache local, ce qui est naturellement beaucoup plus rapide. Par dfaut, 50 Mo despace disque sont rservs pour le cache. Vous pouvez augmenter ou diminuer ce volume par le biais de loption dition > Prfrences > Avanc > Rseau > Stockage hors connexion ; et galement y vider le contenu du cache. Dans la fentre principale, ladresse about:cache vous renvoie la liste de tous les chiers actuellement stocks dans le cache. Vous pouvez modier les paramtres de conguration essentiels grce au confort des botes de dialogue proposes par dition > Prfrences. Il existe par ailleurs dinnombrables options supplmentaires, plus rarement utilises. Lorsque vous saisissez ladresse about:cong dans la barre dadresse de Firefox, puis que vous appuyez sur la touche Entre (voir Figure 6.2), vous obtenez une liste alphabtique de ces options ainsi que leurs valeurs courantes. Le champ de texte Filtre vous permet de limiter la liste des options afches celles correspondant au texte fourni. Pour modier la valeur dune option, effectuez un double-clic sur celle-ci.

Figure 6.2
Configuration de Firefox.

Bouton central de la souris

MIME

Firefox propose une fonctionnalit particulirement utile vous permettant douvrir rapidement des URL fournies sous la forme de texte (et non de liens). Pour ce faire, slectionnez ladresse en question laide de la souris. Il vous suft alors de cliquer sur le bouton central de la souris pour ouvrir directement ladresse, entre-temps enregistre dans le presse-papiers. Sur certaines distributions, en particulier Ubuntu, cette fonctionnalit est malheureusement dsactive. Pour lactiver, saisissez dans la barre dURL ladresse about:cong et recherchez ensuite loption middlemouse.content-LoadURL. Un double-clic sur cette option vous permet alors de la faire basculer de la valeur false la valeur true. Lacronyme MIME signie Multipurpose Internet Mail Extensions. MIME sert indiquer au navigateur web quel programme celui-ci doit lancer lorsque vous cliquez sur le lien correspondant un chier MP3 ou PDF. Firefox prend en compte les paramtres MIME gnraux de Linux ainsi que les informations MIME de tous les greffons installs (voir un peu plus loin dans ce chapitre). Le chier XML ~/.mozilla/firefox/profil/mimeTypes.rdf (difcile lire) contient des paramtres supplmentaires pour la gestion des types MIME. La bote de dialogue Ouvrir (qui apparat systmatiquement lorsque Firefox reconnat un type MIME mais ne parvient pas identier le programme associ) est la mthode la plus simple pour enregistrer de nouveaux paramtres MIME ou modier des paramtres existants. Vous pouvez alors choisir un programme parmi la liste propose ou fournir le chemin

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR)

85

complet dun autre programme (sous Linux, la plupart des programmes sont situs dans le rpertoire /usr/bin). La bote de dialogue dition > Prfrences > Applications vous donne une vue densemble de tous les paramtres MIME spciques Firefox. Vous pouvez galement y modier ou supprimer des paramtres existants, mais non y ajouter de nouvelles entres (voir Figure 6.3).

Figure 6.3
Paramtres MIME de Firefox.

Xulrunner

La plupart des distributions installent des paquets distincts pour Firefox (linterface utilisateur) et xulrunner (lexcutable de rendu). Les chiers xulrunner sont responsables de la prsentation effective des pages web, cest--dire de leur rendu. XUL est lacronyme de XML User Interfaces Language et comprend, outre lexcutable de rendu proprement parler (qui se trouve dans la bibliothque Gecko), divers composants supplmentaires. La sparation entre Firefox et xulrunner prsente lavantage de permettre dautres programmes devant galement assurer le rendu de pages HTML (par exemple le client e-mail Thunderbird) daccder au paquetage commun xulrunner. Par le pass, chaque programme devait installer son propre excutable de rendu. Ceci conduisait donc des redondances et des problmes de maintenance.

Extensions (fichiers XPI)


Les chiers XPI (cross platform installation) contiennent des extensions Firefox dont les chiers dinstallation sont empaquets dans une archive conjointement du code dinstallation JavaScript. Lventail des extensions disponibles est trs large et couvre aussi bien des utilitaires de blocage de la publicit (par le biais dextensions de linterface utilisateur) ou daide au tlchargement que des outils de dveloppement HTML (par exemple pour tester les chiers CSS).

86

LINUX

La bote de dialogue Outils > Modules complmentaires > Catalogue propose quelquesunes des extensions les plus populaires en tlchargement direct. Vous trouverez par ailleurs des extensions supplmentaires en cliquant sur le lien Parcourir tous les modules complmentaires, qui conduit la page suivante : https://addons.mozilla.org/fr/refox Pour installer des extensions, il vous suft alors de cliquer sur le lien du chier XPI correspondant. De nombreuses extensions ne prennent effet que lorsque vous relancez Firefox. Outils > Modules complmentaires > Extensions vous donne un aperu de toutes les extensions dj installes et vous permet galement de les dsinstaller.
Ubuntu propose certaines des extensions les plus populaires dans des paquetages propres. Ceci prsente lavantage de pouvoir installer et mettre jour ces extensions dans le cadre de la gestion des paquetages dUbuntu (lien Obtenir les extensions Ubuntu dans la bote de dialogue Outils > Modules complmentaires > Catalogue). Avant lexcution du code dinstallation XPI, Firefox vous adresse un avertissement : les fichiers XPI peuvent galement contenir du code malveillant. Prenez cet avertissement trs au srieux. Les risques potentiels poss par les extensions Firefox sont comparables ceux des fichiers ActiveX de Microsoft Internet Explorer ! Ninstallez pas une extension si vous ntes pas convaincu de sa ncessit et de sa scurit. Par dfaut, Firefox autorise linstallation de fichiers XPI provenant uniquement des sites web addons.mozilla.org et update.mozilla.org. Si vous souhaitez accepter dautres sites web ou dautres sources de fichiers XPI, vous devrez modifier dans la bote de dialogue dition > Prfrences > Scurit le paramtrage correspondant loption Prvenir lorsque les sites essaient dinstaller des modules complmentaires.

6.2

Konqueror

Le programme Konqueror, dj prsent au chapitre relatif KDE, est un navigateur universel. Il permet de prsenter des chiers locaux, des pages web, des rpertoires FTP, des images, etc. Nous nallons toutefois dcrire ici que quelques particularits relatives son utilisation en tant que navigateur web.
Configuration

Il nexiste probablement aucun autre navigateur sur lequel vous puissiez modier autant de paramtres de conguration. La bote de dialogue accessible par Conguration > Congurer Konqueror prsente 18 modules, chacun comprenant lui-mme plusieurs pages de paramtres ! Outre les recherches web traditionnelles, que vous pouvez effectuer de la mme manire que sur tout autre navigateur dans un champ de texte, vous pouvez aussi rechercher un terme directement depuis la barre dadresse. Des raccourcis spciaux sont dnis cet effet. Si, par exemple, vous saisissez dans la barre dadresse gg:abc, une recherche sur le terme abc est effectue dans http://www.google.com. Vous pouvez complter la liste des raccourcis existants avec vos propres entres par le biais du module de conguration Raccourcis Web. Konqueror enregistre les mots de passe et les informations de connexion dans le systme de gestion des mots de passe Kwallet de KDE (voir Chapitre 5).

Recherche rapide

Mots de passe

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR)

87

Figure 6.4
Konqueror en tant que navigateur web.

Extensions

Java

Konqueror utilise en rgle gnrale les mmes extensions que Mozilla (mais on parle dans le cadre de Konqueror de "modules externes"). Lorsque celles-ci ne fonctionnent pas, jetez un coup dil au module de conguration Modules externes : vous pourrez y vrier quelles extensions Konqueror a identies et congurer dans quels rpertoires rechercher des extensions. Le bouton Rechercher de nouveaux modules externes vous permet dimporter dans la liste des extensions disponibles pour Konqueror celles que vous venez dinstaller et qui ny apparaissent pas encore. Lorsque Konqueror identie certaines extensions Firefox et dautres non, la cause probable en est que Konqueror ignore le nouveau rpertoire dextensions xulrunner. Vous devez alors ajouter (suivant votre distribution) le rpertoire /usr/lib/xulrunner/plugins ou /usr/lib/ xulrunner-addons/plugins. Outre les extensions Firefox, Konqueror propose galement des extensions propres, spciques KDE. Parmi les fonctionnalits les plus populaires, on trouve la traduction des pages web, une fonctionnalit de rafrachissement automatique (Auto-refresh) des pages web aprs un temps donn, ainsi quun afcheur DOM permettant de visualiser la structure HTML dune page web. Ces extensions doivent, bien souvent, tre installes sparment. Sur Fedora, elles sont par exemple regroupes dans le paquetage konq-plugins. Konqueror nutilise pas directement lextension Java mais fait appel KJAS (KDE Java applet server, chier kjavaappletviewer.so). KJAS lance lui-mme linterprteur Java et donc le programme java. Si Konqueror rencontre des difcults pour trouver ce chier, vous pouvez en obtenir le chemin complet par le biais de la commande which java, puis copier le rsultat de cette commande dans le module de conguration de Konqueror intitul Java et JavaScript.

6.3

Navigateurs en mode texte

Vous vous demandez probablement quel intrt peut avoir un navigateur web en mode texte. De fait, il nest pas rare de travailler dans la console texte sous Linux et davoir besoin de consulter rapidement une page web ou une documentation HTML, ce que permettent

88

LINUX

Lynx

justement les programmes elinks, lynx et w3m. Par ailleurs, vous pouvez galement utiliser ces programmes pour convertir des documents HTML en texte simple. Lutilisation de ces trois programmes est similaire. Les pages de manuel ainsi que le systme daide intgr documentent leurs nombreuses options ainsi que leurs raccourcis clavier. Pour des raisons de place, je ne prsenterai donc ici titre dexemple que le programme le plus connu, Lynx. Lutilisation de Lynx est simple : vous lancez en gnral ce programme avec, en paramtre, lURL dun site web ou le chemin dun chier HTML. Lynx charge le document et prsente la premire page, o les titres et liens sont identis par des couleurs diffrentes. Lorsque vous lancez Lynx avec loption -use_mouse, vous pouvez galement faire appel la souris : un clic gauche vous permet de suivre un lien, le bouton central afche un menu contextuel, tandis que le bouton droit vous permet de revenir la page prcdente. Par dfaut, Lynx utilise pour lafchage le jeu de caractres Latin-1. Pour reprsenter correctement les caractres spciaux dans une console Unicode, saisissez galement loption -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)

Synthse des plugins

Les plugins sont des programmes dextension permettant dajouter des fonctionnalits au navigateur web. Il est plutt rjouissant de constater que Firefox et Konqueror utilisent le mme systme de Plugins Mozilla pour grer ces plugins. Une fois installs, ils fonctionnent aussi bien pour lun que pour lautre de ces programmes. Dans la suite de ce chapitre, je supposerai toutefois que vous travaillez avec Firefox. Ces extensions ne peuvent tre utilises avec un navigateur en mode texte. Lorsque Firefox rencontre une page dont le contenu rclame un plugin non encore install, il prsente un avertissement adapt ainsi quun bouton dinstallation. Toutefois, linstallation dun plugin depuis Firefox et sous Linux ne fonctionne fondamentalement pas ! De nombreux plugins ne sont disponibles que pour Windows et non pour Linux. Et, mme lorsquil existe des versions pour Linux, linstallation se fait obligatoirement manuellement, comme vous allez le voir plus en dtail 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 linstallation sera dcrite au Chapitre 11. Il nest pas ncessaire, pour ces plugins, de congurer le type MIME. Les chiers du plugin contiennent tous les paramtres requis. Vous pouvez obtenir un aperu de tous les plugins actuellement installs, ainsi que des formats de chiers grs par ceux-ci, lorsque vous saisissez dans la barre dadresse de votre navigateur about:plugins avant dappuyer sur Entre. La bote de dialogue Outils > Extensions complmentaires > Plugins (une nouveaut de Firefox 3) vous indique galement la liste de tous les plugins. Vous pouvez y dsactiver des plugins individuels mais cela na pas systmatiquement fonctionn correctement lors de mes tests.

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR)

89

Rpertoires

Suivant la distribution Linux et la version de Firefox que vous utilisez, vous trouverez les chiers de plugins dans lun ou lautre des emplacements suivants : dans le rpertoire /usr/lib[64]/xulrunner/plugins ; dans le rpertoire /usr/lib[64]/xulrunner-addons/plugins ; dans le rpertoire /usr/lib[64]/firefox/plugins ; dans le rpertoire /usr/lib[64]/mozilla/plugins ; dans le rpertoire ~/.mozilla/plugins ; dans tous les rpertoires que renvoie la variable denvironnement MOZ_PLUGIN_PATH. La multiplicit des rpertoires possibles conduit ce que, sur de nombreux ordinateurs, les plugins ne soient pas installs un seul emplacement commun pour tous mais quils soient disperss sur lensemble du disque dur. Pour des raisons de compatibilit, xulrunner tient galement compte des rpertoires spciques de Mozilla et Firefox. Certaines versions anciennes des plugins dcrits ci-aprs ncessitent la bibliothque libstdc++.so.5. Assurez-vous pralablement quun tel chier est bien prsent dans le rpertoire /usr/lib ; dans le cas contraire, installez le paquetage contenant ce chier. Sous Fedora, ce paquetage porte le nom compat-libstdc++-33, car cette bibliothque est compatible avec le compilateur GCC 3.3. Pour divers plugins commerciaux, comme Adobe Reader ou Adobe Flash, il nexiste malheureusement quune version compile 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/

libstdc++

Plugins 64 bits

Adobe Reader
Adobe Reader est un programme qui permet de consulter des documents PDF. Il existe cet effet divers autres programmes Linux (Evince dans lenvironnement Gnome, KPDF et Okular dans KDE, ghostscript, etc.), mais Adobe Reader prsente plusieurs avantages : meilleure qualit de rendu ; fonctionnalit dimpression sophistique ; confort dutilisation ; diverses fonctionnalits supplmentaires (saisie de formulaires PDF, possibilit de raliser des modications simples sur certains chiers PDF spciaux). Le lecteur Adobe Reader est certes disponible gratuitement sur Internet mais, pour des raisons de licence, la plupart des distributions ne sont pas en mesure dintgrer des paquetages Adobe Reader ofciels leur produit. Pour cette raison, vous devrez dans la trs grande majorit des cas tlcharger directement le programme depuis le site web dAdobe et linstaller manuellement.
Installation manuelle

Vous trouverez ladresse suivante une version 32 bits du lecteur Adobe Reader sous la forme dun paquetage Debian, dun paquetage RPM ou dune archive tar : http://www.adobe.com/products/acrobat/readstep2_allversions.html

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, procdez comme laccoutume avec la commande dpkg -i ou rpm -i. Pour installer larchive TAR, excutez dans une console la srie de commandes ci-aprs :
root# tar xzf Desktop/AdobeReader_n.n.tar.gz root# cd AdobeReader root# ./INSTALL

Utilisation en tant que plugin Firefox

Durant linstallation, conrmez le rpertoire dinstallation /usr/local/Adobe/Acrobatn ainsi que linstallation automatique du plugin Mozilla en appuyant sur la touche Entre. Les commandes de lancement pour les menus Gnome et KDE sont galement ajoutes lors de linstallation. Le lecteur Adobe Reader de Firefox peut tre utilis de deux manires diffrentes : soit en tant que plugin, soit en tant que programme externe. De nombreux utilisateurs sont habitus la premire variante car cest le fonctionnement par dfaut une fois Acrobat install. Toutefois, titre personnel, je prfre la seconde utilisation et utiliser les fonctionnalits dAdobe Reader dans une fentre propre. Pour ouvrir les documents PDF dans une fentre distincte, ouvrez la bote de dialogue dition > Prfrences > Applications et, dans le menu droulant correspondant lentre "Document PDF", choisissez Autre... et saisissez alors le chemin /usr/bin/acroread (ou, si loption est disponible, choisissez Utiliser Adobe Reader (par dfaut), qui diffre de loption Utiliser Adobe Reader (dans Firefox), en ouvrant le document dans une fentre Adobe Reader propre).
Adobe Reader prend en charge JavaScript. Ce langage de script peut tre utilis pour de nombreuses fonctionnalits utiles, mais il prsente galement un risque de scurit potentiel et peut servir envoyer des informations la lecture dun document PDF Ceci constitue une invasion de votre vie prive. Vous . pouvez consulter sur ce site (en anglais) des informations supplmentaires ce propos : http://lwn.net/Articles/129729/ Pour dsactiver JavaScript au sein dAdobe Reader, ouvrez la bote de dialogue dition > Prfrences > JavaScript et dcochez loption correspondante.

Adobe/Macromedia Flash
Le lecteur Adobe Flash Player (autrefois dnomm Macromedia Flash) permet de jouer des animations Flash. Ce programme est conu comme un plugin, cest--dire que les animations apparaissent directement dans le navigateur web (souvent lintrieur mme dune page dont les autres lments 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 vidos, utiliser des cartes interactives, etc. De nombreux sites web (mal conus) ne peuvent par ailleurs tre consults quavec Flash. Le plugin Adobe Flash est, comme Adobe Reader, disponible gratuitement, mais pour le moment uniquement en version 32 bits. Malheureusement, ses termes de licence empchent 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 rgle.

Installation

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR)

91

Certaines distributions proposent un petit paquetage contenant un script dinstallation qui se charge de tlcharger et dinstaller le plugin Flash dans sa version courante. Par exemple, le paquetage flashplugin-nonfree dUbuntu (source multiverse) joue ce rle dinstallateur de Flash. Lorsque vous souhaitez ultrieurement mettre jour le plugin Flash, vous pouvez excuter la commande update-flashplugin. Lorsquil nexiste pour votre distribution ni paquetage Flash ni script dinstallation, vous devez installer vous-mme Flash. La page suivante vous propose de tlcharger Flash soit sous la forme dun paquetage RPM, soit sous forme darchive TAR : http://www.adobe.com/fr/products/ashplayer/ Sur les distributions comprenant un systme de gestion des paquetages RPM, il vous suft dexcuter la commande rpm -i nom_du_paquetage pour installer le plugin. Sur toute autre distribution, excutez la srie de commandes prsente ci-aprs. Flash est alors install dans le rpertoire de plugins de votre dossier personnel. Si vous souhaitez installer Flash pour lensemble de votre systme, vous devez excuter le programme dinstallation en tant quutilisateur root.
utilisateur$ tar xzf Desktop/install_flash_player_9_linux.tar.gz utilisateur$ cd install_flash_player_9_linux/ utilisateur$ ./flashplayer-installer

Tester Flash

Lorsque vous voulez supprimer Flash, il vous suft deffacer le chier libflashplayer.so des rpertoires /usr/lib/mozilla/plugins et ~/.mozilla/plugins. Si vous utilisez la version 64 bits de Fedora 9, le plugin Flash 32 bits ne fonctionnera quaprs linstallation de quelques paquetages supplmentaires, ainsi que la dclaration explicite du plugin auprs de nspluginwrapper. Aprs avoir redmarr Firefox, ouvrez la page suivante pour tester votre installation : http://www.adobe.com/shockwave/welcome/

Figure 6.5
Tester Flash.

92

LINUX

Cette page de test contient deux animations (voir Figure 6.5) : la premire est base sur Shockwave for Director (ou, plus simplement, Shockwave), la seconde, sur Shockwave Flash (ou, plus simplement, Flash). Comme vous navez install que le plugin Flash, seul le second lment de cette page de test fonctionne. Il nexiste malheureusement aucun plugin Shockwave pour Linux.
FlashBlock

Aussi sympathiques que soient les animations Flash, leur omniprsence pour la publicit devient particulirement pesante. Cest ici quintervient lextension Firefox FlashBlock. Tous les objets Flash dune page web apparaissent alors sous la forme de boutons "f" : lanimation se lance uniquement lorsque vous cliquez sur lun de ces boutons (voir Figure 6.6). Vous trouverez cette extension Firefox particulirement utile en saisissant ashblock dans le champ de recherche de la bote de dialogue Outils > Modules complmentaires > Catalogue. Vous pourrez alors installer lextension en cliquant sur le bouton Ajouter Firefox... Pour que linstallation prenne effet, vous devrez relancer Firefox.

Figure 6.6
FlashBlock en pratique.

gnash et swfdec

Les composants logiciels importants qui ne sont pas distribus sous licence libre sont une pine dans le pied de la communaut open-source. Il nest donc pas surprenant quil existe galement des alternatives open-source Flash, savoir Gnu ash movie player (abrg en gnash), ainsi que la bibliothque swfdec. Ces deux projets comptent galement un plugin pour navigateur web. Ils ne sauraient toutefois constituer un substitut part entire du plugin Flash dorigine, dans la mesure o ils prsentent encore des limitations non ngligeables en termes de compatibilit et de qualit de rendu. Vous trouverez davantage dinformations sur ces deux projets aux adresses : http://www.gnu.org/software/gnash/ ; http://swfdec.freedesktop.org/wiki/

Sun Java
Pour tre en mesure dutiliser des applets Java dans votre navigateur web, vous aurez besoin dun plugin Java. Suivant votre distribution, vous aurez le choix entre, dune part, la version dorigine de Sun (qui nest toutefois disponible quen version 32 bits et ne peut collaborer avec loutil nspluginwrapper) et, dautre part, deux implmentations open-source fondes sur IcedTea ou OpenJDK. Bien que la qualit de ces deux solutions open-source soit devenue, avec le temps, satisfaisante et quOpenJDK couvre environ 99 % des fonctionnalits de Sun Java, les utilisateurs de distributions 32 bits prfrent gnralement utiliser la

NAVIGATEURS INTERNET (FIREFOX, KONQUEROR)

93

version de Sun. Pour lutilisateur dune distribution 64 bits souhaitant bncier de Java dans son navigateur web, OpenJDK est la solution privilgier. Depuis 2006/2007, Sun a non seulement pass la majeure partie du code de Java sous licence GPL, mais galement facilit de manire substantielle la redistribution de loutil Sun Java dorigine. Certaines distributions peuvent donc proposer des paquetages Sun Java que vous pouvez installer sans difcult avec votre gestionnaire de paquetages (par exemple openSUSE ou Ubuntu).
Installation

Sil nexiste aucun paquetage Sun Java pour votre distribution, vous devrez mettre la main la pte. Vous trouverez sur le site web ci-aprs les chiers dinstallation pour les systmes 32 et 64 bits, au choix sous la forme dun paquetage RPM ou dune archive auto-extractible : http://www.java.com/fr/download/manual.jsp Pour les distributions proposant un systme de gestion des paquetages RPM, il vous suft alors dexcuter la commande rpmi -i nom_du_paquetage pour mener bien linstallation. Sur toute autre distribution, vous devrez excuter la srie de commandes prsente ci-aprs :
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 linstallation, un accord de licence vous sera prsent. Pour en interrompre lafchage, appuyez sur la touche Q ; pour conrmer votre accord, saisissez yes puis appuyez sur la touche Entre. Linstallation se poursuit alors sans ncessiter dintervention supplmentaire de votre part. Toutefois, le chier de plugin Java nest pas install dans le rpertoire de plugins Mozilla. Vous devez donc mettre en place vous-mme 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 dun paquetage RPM, les chiers Java se trouvent alors dans le rpertoire /usr/java. La commande ln correspondante a alors lallure suivante :
root# cd /usr/lib/mozilla/plugins/ root# ln -s /usr/java/jre1.6.0_06/plugin/i386/ns7/libjavaplugin_oji.so .
Test

Pour conrmer que tout fonctionne correctement, ouvrez la page web suivante dans votre navigateur. Une applet avec le petit bonhomme dansant doit normalement apparatre. Cette applet vous renseigne galement sur la version de Java installe (voir Figure 6.7). http://www.java.com/fr/download/help/testvm.xml
Il est possible dinstaller en parallle plusieurs environnements Java. Il ne doit toutefois y avoir quun 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 dsinstaller le paquetage de plugin correspondant (par exemple sur Fedora, java-1.6.0-openjdk-plugin ).

94
Figure 6.7
Page de test pour le plugin Java.

LINUX

E-mail (Thunderbird, Evolution, Kontact)


Ce chapitre prsente lutilisation des trois clients de courrier lectronique les plus populaires sous Linux : Thunderbird est dj bien connu de nombreux utilisateurs provenant du monde Windows. Il sagit du composant e-mail correspondant Firefox. Le client e-mail possde une prsentation fonctionnelle et nest pas surcharg de fonctionnalits accessoires. Evolution est le client e-mail par dfaut de lenvironnement de bureau Gnome. Ce programme a t conu, ds le dbut, comme une alternative Outlook. Par consquent, il prsente de nombreuses fonctionnalits auxiliaires : outre les e-mails, il vous permet galement de grer vos rendez-vous et votre carnet dadresses, de synchroniser ces donnes avec un PDA, etc. Evolution peut galement tre utilis avec un serveur Microsoft Exchange ou avec Groupwise. Kontact est lhomologue dEvolution pour KDE. Kontact propose une interface unie pour plusieurs composants individuels de KDE permettant de grer les e-mails, le carnet dadresses, les rendez-vous, etc. Si vous recherchez uniquement une fonctionnalit de courrier lectronique, utilisez KMail plutt que Kontact. De nombreux afcionados de Linux et dUnix prfrent lire et composer leurs e-mails dans une console. cet effet, on dispose dun large ventail de programmes, par exemple cone, mutt et pine. Les amateurs dEmacs nont pas besoin de quitter leur diteur favori, grce au mode e-mail quil propose. Pour qui souhaite automatiser lenvoi de courriers par le biais dun script, un coup dil la commande mail devrait se rvler protable. Dans ce chapitre, je ne dcrirai toutefois que les trois clients graphiques dj cits et prsenterai trs rapidement lutilisation de mutt. Un autre sujet que nous ne pourrons aborder dans ce livre faute de place est la mise en place de votre propre serveur de courrier. Il existe pour cela aussi toute une palette de programmes, par exemple sendmail, postfix, qmail ou encore exim. Dans la nomenclature Unix, on parle pour ce type doutil de MTA (Mail Transfer Agent), tandis que lon dsigne les clients e-mails comme Thunderbird par le terme de MUA (Mail User Agent). Entre les MUA et MTA, de nombreux outils peuvent intervenir dans la chane de transmission du courrier, pour ltrer les spam ou les virus (bogofilter, spamassassin), traiter automatiquement les e-mails ou automatiser les rponses (procmail), rcuprer les courriers depuis un serveur POP par le biais dune commande (fetchmail), etc. Toutefois, je ne peux ici que mentionner ces quelques commandes sans les dtailler, sous peine de transformer ce chapitre en un livre lui seul.

E-mail en mode texte

Serveur de courrier lectronique

Outils pour le courrier lectronique

7.1

Bases

Du point de vue de lutilisateur, il est trivial denvoyer et de recevoir des e-mails. Cest toutefois loin dtre le cas de tous les mcanismes intervenant en coulisse. Cette section vise

96

LINUX

Compte

donc fournir quelques informations de base sur le fonctionnement du courrier lectronique. Si vous tes uniquement la recherche dun client e-mail facile utiliser, vous pouvez tout simplement sauter cette section. Lorsque votre fournisseur daccs Internet ou votre socit vous met disposition une adresse e-mail, on dsigne galement ce service par le terme de compte. Comme il est courant aujourdhui, pour un utilisateur, de possder plusieurs adresses lectroniques, la majorit des clients de courrier peut grer 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 dinformations qui sont gnralement comparables celles du tableau ci-dessous.
Informations relatives au compte e-mail illustres par des exemples Adresse e-mail Adresse du serveur entrant (POP ou IMAP) Nom dutilisateur/Identifiant de connexion la bote aux lettres Mot de passe pour la bote aux lettres Adresse du serveur sortant (SMTP) Nom dutilisateur/Identifiant de connexion au serveur SMTP Mot de passe pour le serveur SMTP catherine.hofer@societe.fr ou catherine.hofer@fai.fr imap.societe.fr ou pop.fai.fr chofer ou 12345678 xxxxxxxx smtp.societe.fr ou mail.fai.fr chofer ou 12345678 xxxxxxxx

Lignes dentte

Bien souvent, on utilise ladresse e-mail en guise didentiant de connexion la bote aux lettres. Dans de nombreux cas, lidentiant de connexion au serveur SMTP et le mot de passe sont les mmes que ceux de la bote aux lettres. Il nest pas rare non plus quaucune authentication ne soit ncessaire au niveau du serveur SMTP ou que lauthentication auprs du serveur de courrier entrant sufse pour se connecter au serveur sortant. Les comptes e-mails conus pour tre lus dans un navigateur web (webmail) requirent souvent de modier pralablement certaines options de scurit pour permettre une utilisation en mode POP ou IMAP. Au dbut de chaque e-mail gurent un certain nombre de lignes den-tte comprenant les adresses de lmetteur et du destinataire, lobjet, ainsi que diverses autres informations.
Lignes den-tte dun e-mail Subject: objet From: adresse To: adresse Reply-To: adresse CC: adresse Bcc: adresse description succincte du contenu (une ligne) adresse e-mail de lexpditeur adresse e-mail du destinataire en cas de rponse, envoyer le-mail non pas ladresse From: mais ladresse fournie ici envoyer une copie de le-mail ladresse Cc: (carbon copy) similaire Cc:, mais les destinataires To: et Cc: du courrier ne peuvent voir les destinataires Bcc: (blind carbon copy)

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

97

MIME

La notion de MIME (Multipurpose Internet Mail Extensions) est utilise de deux manires diffrentes au niveau des clients de courrier. Dune part, une conguration approprie des types MIME permet au client e-mail de grer correctement les pices jointes et, par exemple, de bien ouvrir un chier MP3 envoy par e-mail avec un lecteur de MP3. Nous donnerons plus dinformations sur la conguration des types MIME au chapitre 13. Dautre part, MIME peut galement intervenir au niveau du codage du texte de le-mail. lorigine, le systme de courrier lectronique na t conu que pour les caractres ASCII cods sur 7 bits. Les courriers comprenant des caractres spciaux (et tout caractre dont le code est suprieur 127) prsentent donc des difcults. Pour contourner ces problmes, diffrents types MIME ont t dnis pour lencodage des e-mails.

Signature

Trs souvent, vous devrez conclure tous vos e-mails de la mme manire, savoir une ou plusieurs lignes contenant le nom de votre socit, une adresse, etc. Pour ne pas avoir saisir systmatiquement les mmes lignes chaque nouveau courrier, vous pouvez dnir dans la plupart des clients de courrier lectronique ce que lon appelle une signature. Les clients utilisent automatiquement cet effet le chier ~/.signature. Les trois abrviations POP, SMTP et IMAP dsignent diffrents protocoles de transport des e-mails entre votre ordinateur et le fournisseur de services grant votre courrier : POP. Pour le transport des e-mails depuis le serveur jusqu votre ordinateur, cest gnralement le protocole POP (Post Ofce Protocol) qui est utilis. Pour que le client de courrier puisse communiquer avec le prestataire, il a besoin de trois informations : ladresse du serveur POP, le nom dutilisateur et le mot de passe du compte sur le serveur POP. IMAP. Le protocole IMAP (Internet Message Access Protocol) constitue une alternative POP. La diffrence principale avec POP rside dans le fait que les courriers sont gnralement stocks 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 grer votre courrier depuis diffrents ordinateurs sans pour autant devoir subir les inconvnients dun systme par webmail. IMAP est principalement utilis dans les grandes entreprises. En revanche, assez peu de prestataires de-mails proposent des services IMAP. En effet, lIMAP impose des exigences assez fortes au niveau des ressources. Tous les clients prsents dans ce chapitre prennent en charge lIMAP mais, faute de prestataire proposant ce protocole, je nai pas pu le tester moi-mme. SMTP. Enn, pour lenvoi des e-mails, cest le protocole SMTP (Simple Mail Transfer Protocol) qui intervient. Pour communiquer avec le serveur SMTP du prestataire, le client de courrier na besoin que de ladresse de ce serveur. Cest le prestataire qui dnit si lauthentication sur ce serveur est obligatoire ou non. Avec certains fournisseurs, une authentication POP pralablement russie suft pour accder automatiquement au serveur SMTP. Dautres fournisseurs exigent une authentication SMTP distincte.
Lors de la configuration de votre compte, vous pouvez pour de nombreux clients e-mails configurer le numro de port associ POP IMAP et SMTP Ce nest toutefois que rarement ncessaire car ce sont gn, . ralement les valeurs standard qui sont utilises (POP = 110, IMAP = 143, SMTP = 25). Vous trouverez au chapitre 29 une explication sur les ports et leur utilisation.

Protocoles

98

LINUX

Rouages internes de la gestion des e-mails


Il existe diffrentes manires de grer vos e-mails : Logiciel autonome local. Cest le cas le plus courant, qui consiste grer vos e-mails sur votre ordinateur local laide dun client de courrier (MUA) comme Thunderbird. Ce logiciel soccupe de tous les aspects de la gestion des e-mails, depuis la rception jusqu lmission en passant par la rdaction ou le stockage. Cest ainsi que fonctionnent les trois clients prsents dans ce chapitre. Partage local des tches. Cette seconde variante correspond la mthodologie Unix usuelle, qui consiste rpartir des tches individuelles entre diffrents programmes : dans ce cas, vous utilisez un serveur de-mail local (MTA) pour lenvoi des courriers, fetchmail pour la rcupration de nouveaux e-mails sur le serveur POP de votre fournisseur et, enn, un client de courrier de votre choix qui fait appel ces deux autres outils. Cette conception tait autrefois trs rpandue sous Unix/Linux mais elle se fait maintenant de plus en plus rare cause du surcrot de travail de conguration quelle occasionne. Elle est toutefois obligatoire lorsque vous utilisez des clients de courrier en mode texte. Ces programmes ne sont en effet pas en mesure de rcuprer ou denvoyer des e-mails par eux-mmes. Webmail. Une dernire alternative consiste aussi utiliser lun des nombreux systmes de webmail votre disposition (par exemple Yahoo!, Gmail, etc.). Pour cela, vous avez besoin non pas dun logiciel ddi au traitement du courrier mais uniquement dun navigateur web. Dans ce cas, ce chapitre ne vous est daucune utilit.

Courrier local
Traditionnellement, Unix et Linux utilisent les e-mails comme un moyen de communication locale. De nombreux services rseau consignent ainsi les erreurs survenues non seulement dans un chier journal mais galement par envoi de-mails lutilisateur root. Du fait que de nombreux utilisateurs de Linux ne remarquent jamais lexistence de tels e-mails, le courrier local devient de plus en plus pass de mode. De nombreuses distributions utilisent toutefois encore ce systme pour mettre divers avertissements (par exemple Red Hat et Fedora). Pour tre en mesure de lire ces e-mails, vous devez connatre le mcanisme qui les sous-tend. Lmission de courrier local intervient entirement indpendamment de votre client de courrier et fonctionne uniquement parce que, sur de nombreuses distributions Linux, un logiciel denvoi de-mails (ou, a minima, dmission locale) tel que sendmail est install par dfaut.
Inbox

"mission locale" signie que le courrier est ajout la n du chier /var/spool/mail/ nom_d_utilisateur. Ce chier, au format mbox, contient pour chaque utilisateur tous les nouveaux courriers (cest--dire tous ceux qui nont pas encore t consults). On dsigne donc plus simplement ce chier par lappellation Inbox. Par ailleurs, le logiciel fetchmail mentionn ci-dessus ajoute cet Inbox les courriers rcuprs depuis un serveur POP externe. Le risque que vous ne soyez jamais amen voir ces e-mails est grand, et ce pour deux raisons : tout dabord, la majorit des clients de courrier graphiques ignorent /var/spool/ mail/nom_d_utilisateur ; par ailleurs, les e-mails systme sont majoritairement adresss lutilisateur root, tandis que vous travaillez gnralement en tant quutilisateur normal.

Lire des courriers locaux

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

99

La solution au premier problme consiste utiliser, pour lire le courrier local, un programme qui prend en considration /var/spool/mail/nom_d_utilisateur. Cest 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 mthodes : soit vous vous identiez en tant quutilisateur root (su -l ou sudo -s) avant de lancer un logiciel de courrier en mode texte, soit vous ajoutez au chier /etc/aliases une ligne redirigeant tous les e-mails adresss root vers votre propre bote aux lettres locale.
mutt

Pour lire les e-mails locaux, vous disposez du client en mode texte mutt, install par dfaut sur Red Hat et Fedora et disponible pour lensemble des autres distributions. Dans une console, commencez par excuter la commande su -l pour vous identier en tant quutilisateur root, puis lancez le programme avec la commande mutt. Les titres de tous les e-mails apparaissent alors sur la page principale : laide des ches du clavier, vous pouvez vous dplacer dans la bote aux lettres. La touche Entre afche le texte complet de le-mail slectionn. La touche Espace vous permet de parcourir le contenu du courrier. La touche J vous permet de passer le-mail suivant, tandis que la touche I vous ramne la bote aux lettres. La touche ? afche un texte daide prsentant les principaux raccourcis clavier. La touche Q permet de quitter le programme. Il est naturellement bien plus lgant de rediriger tous les e-mails adresss lutilisateur root vers la bote aux lettres de lutilisateur normalement responsable de ladministration de la machine. Lorsque sendmail est install comme MTA, il vous suft pour cela dajouter la n du chier /etc/aliases une ligne construite sur le modle suivant. lavenir, lutilisateur kofler recevra tous les e-mails adresss root.
# la fin de /etc/aliases ... root: kofler

/etc/aliases

Cette modication prendra effet seulement aprs que vous aurez excut 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 bote aux lettres locale. Outre les outils en mode texte tels que mutt, Evolution et Kontact entrent galement dans cette catgorie (cela ncessite toutefois de congurer un compte supplmentaire en consquence). Malheureusement, ce nest plus le cas de Thunderbird depuis sa version 2.

Formats de botes aux lettres et conversion


Format mbox

Tous les logiciels de courrier offrent la possibilit denregistrer les courriers que vous avez reus et envoys dans des rpertoires de votre ordinateur. Cest ici quintervient frquemment le format mbox : tous les e-mails dun rpertoire (dossier) sont simplement concatns dans un chier unique qui peut devenir trs volumineux. Les lignes commenant par From marquent la sparation entre deux e-mails.

100

LINUX

Format maildir

Autres formats

Si vous avez install le programme mutt, vous pourrez obtenir avec la commande man mbox davantage dinformations 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 gnrent, outre les chiers mbox, des chiers supplmentaires de gestion indexant les chiers de botes aux lettres. Ces chiers permettent un accs plus rapide aux e-mails individuels, mais ils sont incompatibles dun client lautre. La prise en charge (quand elle existe) des hirarchies de rpertoires de courrier et sa mise en uvre dpendent galement du client de courrier. Il nexiste pas de standard commun sur ce point. Le format mbox facilite le passage dun client e-mails un autre. En rgle gnrale, il vous suft pour cela de copier les chiers mbox (sans les chiers de gestion) dans le rpertoire o le nouveau client e-mail sattend les trouver. 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 chier propre. Une bote aux lettres est donc alors constitue de tous les chiers dun mme rpertoire. Lavantage vident de ce format est quil permet deffacer plus facilement des courriers individuels. Sous Windows, il nest 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 dentre eux reposent sur leur propre format denregistrement. Si vous souhaitez importer vos e-mails depuis un ordinateur Windows vers un systme Linux, vous devrez les convertir au format mbox. Par chance, plusieurs clients de courrier disposent doutils daide la conversion justement pour ces cas de gure (cest par exemple le cas de Thunderbird et de Kontact). En outre, il existe divers programmes de conversion spcialiss (il vous suft par exemple de rechercher sur Internet les termes mbox conversion outlook eudora). En rgle gnrale, il est judicieux, avant de lancer une quelconque conversion, de compresser les rpertoires de courrier. Tous les e-mails effacs seront alors effectivement supprims des chiers de bote aux lettres.
Pour un utilisateur dOutlook Express sous Windows souhaitant passer Thunderbird sous Linux, il faut passer par une tape intermdiaire et installer tout dabord la version Windows de Thunderbird. De cette manire, les e-mails peuvent tre imports depuis Outlook Express. Il suffit ensuite de copier le rpertoire de courrier rsultant vers Linux.

Signature et chiffrement de-mails


Si le courrier lectronique est bien plus rapide que le systme postal usuel, sa scurit est en revanche beaucoup plus relative : pour toute personne ayant quelques connaissances techniques, il nest pas difcile dmettre des e-mails en falsiant ladresse de lexpditeur, de lire ou mme de modier les courriers que vous adressez dautres personnes. Pour cette raison, vous ne devriez jamais envoyer de donnes personnelles importantes (par exemple un numro de carte bancaire) dans un e-mail qui nest pas chiffr. La signature et le chiffrement permettent de scuriser notablement vos communications lectroniques. Tous les clients de courrier que nous prsentons dans ce livre sont en mesure

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

101

Cl Cl publique et cl prive

Signer

Chiffrement

de signer et de chiffrer les e-mails et peuvent naturellement aussi grer la rception des e-mails signs et chiffrs. Malgr les avantages indniables que reprsentent la signature et le chiffrement des e-mails, en pratique vous ne rencontrerez que rarement de tels courriers. La perte de confort occasionne, la gestion relativement complexe du chiffrement ainsi que lincompatibilit entre les deux standards utiliss (PGP et S/MIME) constituent des obstacles notoires au dveloppement de ces pratiques. Pour la signature et le chiffrement, on utilise une cl. Une cl lectronique est tout simplement un code numrique trs long. Pour la signature et le chiffrement des e-mails, on procde de manire dite asymtrique. Chaque cl est donc constitue de deux parties : dune part la cl prive, qui nest normalement enregistre que sur le disque dur de son propritaire, dautre part la cl publique, qui est par exemple publie sur Internet. La particularit de ce fonctionnement asymtrique rside dans le fait quune partie de la cl est utilise pour la signature ou le chiffrement, tandis que lautre partie de la cl sert contrler la signature ou dchiffrer. Signer un e-mail signie quune somme de contrle est calcule avant lenvoi du courrier. Cette somme de contrle est chiffre et, partir de celle-ci, le destinataire peut vrier que le-mail provient effectivement de lexpditeur annonc et quil na pas t manipul depuis son envoi. Lorsque vous signez un e-mail, votre client de courrier utilise votre cl prive. Pour le contrle de la signature, la cl publique est toutefois sufsante. Cela signie que vous seul pouvez signer vos e-mails (car vous tes lunique propritaire de votre cl prive). Nimporte qui peut en revanche contrler lauthenticit des e-mails que vous avez signs, car nimporte qui peut accder votre cl publique sur Internet. Nimporte qui peut lire les e-mails que vous avez signs, mme si le destinataire de votre e-mail ne connat pas votre cl publique ou sil utilise un client de courrier sans fonctionnalit de signature (par exemple une interface webmail). Dans de tels cas, le code de signature gure en n du courrier. Ce code nempche pas la lecture du contenu effectif de le-mail. Un destinataire ne pouvant pas grer les signatures ne peut toutefois vrier que vous tes bien lauteur de le-mail. Le chiffrement dun e-mail signie que le courrier est envoy non pas en texte clair mais sous forme chiffre. Personne ne peut lire le contenu de ce courrier moins de connatre la cl permettant de le dchiffrer. Pour le chiffrement, on utilise la cl publique du destinataire du courrier. Par consquent, si vous souhaitez envoyer un e-mail Alice, vous devez pralablement connatre la cl publique dAlice. Le courrier ainsi chiffr ne peut alors tre dchiffr qu laide de la cl prive du destinataire. Alice tant le seul dtenteur de cette cl prive, elle est la seule pouvoir le lire : mme si vous tes lauteur du message, vous ne pouvez plus le lire ! Votre e-mail chiffr ne peut tre lu que par son destinataire, qui possde la partie prive de la cl dont la partie publique a servi au chiffrement. Lorsque le destinataire perd ou efface accidentellement sa cl prive ou lorsquil utilise un client de courrier sans fonctionnalits de chiffrement, il ne voit apparatre quune longue liste de chiffres et de codes. Le courrier na donc aucun sens.

102
PGP et S/MIME

LINUX

Il serait bien trop simple de navoir quune seule mthode pour la signature, le chiffrement et la gestion des cls ! Il existe deux mthodes tablies, aussi sres lune que lautre : PGP, GPG, OpenPGP. lorigine se trouvait le projet logiciel PGP (Pretty Good Privacy). PGP tant devenu un produit commercial, la communaut open-source a lanc sa propre implmentation compatible avec PGP, GPG (GNU Privacy Guard). Enn, OpenPGP est un standard Internet public correspondant aussi bien PGP qu GPG. Par dfaut, PGP ne permet de signer ou de chiffrer que le courrier lui-mme. Si vous souhaitez galement signer ou chiffrer les pices jointes, vous devez utiliser sa variante PGP/MIME. Laspect le plus remarquable de PGP, dun point de vue utilisateur, est probablement la facilit avec laquelle il permet de gnrer soi-mme les cls. Pour cette raison, PGP est adapt pour lutilisation aussi bien dans de grandes entreprises que dans des PME. Mme au sein du monde Linux et open-source, PGP domine le march. Gnome aussi bien que KDE proposent des outils arrivs maturit technique pour la gestion des cls. Malheureusement, de nombreux clients de courrier sous Windows ne prennent pas en charge PGP ou, pour certains, seulement aprs linstallation de greffons ou dextensions. S/MIME. S/MIME (Secure Multipurpose Internet Mail Extension) se fonde sur dautres algorithmes de chiffrement. En guise de cl S/MIME, on doit utiliser ce que lon dsigne par le terme de certicat X.509. Des documents signs ou chiffrs par S/MIME ont, vis--vis de certaines organisations publiques, la mme valeur quun document papier sign. Ceci vaut toutefois uniquement lorsque le certicat X.509 utilis a t mis par une autorit de conance autorise (CA ou Certicate Authority) aprs contrle de donnes didentication personnelles (par exemple le passeport). De tels certicats sont par consquent trs coteux, du fait de limportant travail administratif requis, mais ils sont beaucoup plus ables que les certicats crs manuellement. S/MIME est trs rpandu dans le monde Windows et il est galement pris en charge par les trois clients de courrier prsents dans ce chapitre (mme sil est en partie moins bien gr que PGP). Lobstacle principal pour les utilisateurs privs rside probablement dans la difcult gnrer 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 grent les deux mcanismes de chiffrement, mais dans ce cas vous aurez besoin dune cl diffrente pour chaque mcanisme. De surcrot, un courrier ne peut tre chiffr que par une seule mthode, pas les deux la fois. Pour faire simple et court : en ltat actuel, PGP offre tout le ncessaire pour communiquer de faon sre et sans surcot. Lavantage de S/MIME est la valeur juridique que confre lutilisation des certicats X.509 qualis.

Gestion des cls

La plupart des clients de courrier peuvent grer eux-mmes les cls ncessaires lenvoi et la rception de courrier, voire gnrer au besoin une nouvelle cl. Toutefois, comme les cls peuvent galement servir dans dautres contextes, il est pratique de sparer la gestion des cls du client de courrier. cet effet, Gnome propose le programme Seahorse, tandis que KDE propose KGpg et Kleopatra (pour S/MIME). La tche principale en terme de gestion des cls consiste rassembler les cls publiques de tous vos interlocuteurs au sein dun "porte-cls". limport dune nouvelle cl, vous devez

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

103

la "signer". Cela signie que vous tes convaincu que la cl importe provient effectivement de la bonne personne. Si vous travaillez avec des cls PGP, vous trouverez tous les chiers de gestion dans le rpertoire ~/.gnupg.

7.2

Thunderbird

Le client de courrier Thunderbird mane, comme Firefox, du projet Mozilla. Mme sil est intgr la quasi-totalit des distributions, il nest que rarement install. En effet, aussi bien Gnome que KDE possdent leur propre programme quils tablissent comme client de courrier par dfaut (voir les deux sections suivantes). Personnellement, je prfre 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 grer leur archive de courrier dans un format compatible Windows. Le ltre antispam fonctionne bien et est facile utiliser. Cette section prsente la version 2.0 de Thunderbird.
Installation

Sur de nombreuses distributions, Thunderbird est partag en plusieurs paquets. Lun deux contient les fonctionnalits de base, tandis que les autres paquets contiennent les textes des menus et botes de dialogue dans diffrentes langues. Noubliez donc pas dinstaller aussi le paquetage francophone ! Dans Gnome et KDE, vous devrez ensuite tablir Thunderbird en tant que client de courrier par dfaut (voir les chapitres 4 et 5 sur les environnements de bureau).

Configuration dun compte


Au premier lancement de Thunderbird, lassistant de cration de compte apparat automatiquement pour vous aider dans la conguration. Vous pouvez galement lancer lassistant, au besoin, par le biais des menus ditions > Paramtres des comptes puis du bouton Ajouter un compte. Dans lassistant, commencez par choisir le type Compte courrier lectronique et renseignez votre nom ainsi que votre adresse e-mail. Dans la bote de dialogue suivante, choisissez entre les protocoles POP et IMAP pour la rcupration du courrier depuis votre bote aux lettres. Renseignez galement ladresse du serveur POP ou IMAP correspondant (bote aux lettres pour le courrier entrant) ainsi que le serveur SMTP (courrier sortant). la bote de dialogue suivante, lassistant sattend recevoir les identiants employer pour la rcupration des e-mails entrants et pour lenvoi des courriers. Bien souvent, ces deux noms dutilisateur sont identiques ; il est galement possible quaucun identiant ne soit demand pour lenvoi des courriers. ce stade, vous ne pouvez pas encore fournir de mot de passe : Thunderbird vous le demandera la premire tentative de rcupration ou denvoi dun e-mail. Enn, vous devez donner au compte un nom : cest sous ce nom que le compte apparatra dans Thunderbird. Le nom facilite lorientation lorsque vous possdez plusieurs comptes de courrier. Thunderbird afche enn une synthse de la conguration : normalement, aucune

104

LINUX

modication supplmentaire nest ncessaire et vous pouvez donc conclure le processus de conguration par le biais du bouton Terminer. Au besoin, vous pouvez congurer de nombreuses options supplmentaires par le biais des menus dition > Paramtres des comptes (voir Figure 7.1). Lors des premiers tests, il est intressant de proter de loption Paramtres serveur > Laisser les messages sur le serveur : de cette manire, Thunderbird nefface pas les courriers sur le serveur aprs les avoir rcuprs. Si vous souhaitez ultrieurement changer de client de courrier, vous pourrez nouveau tlcharger ces e-mails.

Figure 7.1
Configuration dun compte dans Thunderbird.

Fonctionnalits de base
Une fois la conguration termine apparat la fentre de courrier Thunderbird. Lorsque vous cliquez pour la premire fois sur le bouton Relever ou que vous utilisez la combinaison de touches Maj+Alt+T pour rcuprer vos nouveaux e-mails, vous devrez fournir le mot de passe de votre bote aux lettres. Thunderbird enregistre votre mot de passe, aprs un avertissement de scurit, dans un chier de conguration. Tout comme pour Firefox, il est fortement conseill de protger les mots de passe par le biais dun mot de passe principal que vous pourrez congurer en passant par les menus dition > Prfrences > Condentialit > Mots de passe. Les nouveaux e-mails sont dposs dans le dossier Courrier entrant (voir Figure 7.2). Dun double-clic sur lun des lments de la liste afche, vous ouvrez une nouvelle fentre pour consulter le-mail correspondant. Ceci vous permet de lire plus confortablement les e-mails plus volumineux. Les chiers et images contenus dans les e-mails HTML ne sont pas chargs, par scurit : au besoin, utilisez le bouton Tlcharger les images.

Lire des e-mails

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

105

Figure 7.2
Gestion des e-mails.

Afficher les fils de discussion

Lorsque plusieurs courriers provenant de la mme discussion (par exemple le courrier dorigine ainsi que diverses rponses et ractions dautres personnes) gurent dans un mme dossier, il est possible de les afcher suivant une structure arborescente par le biais des menus Afchage > Trier par > Discussions groupes. Le ux de courriers est ainsi afch de manire plus synthtique (et lon voit donc plus facilement qui a rpondu quel courrier et quelle date). Souvent, les e-mails contiennent des pices jointes, cest--dire des chiers distincts du courrier proprement parler. Ils sont indiqus dans la liste des e-mails par un petit trombone. Dans le courrier, vous pouvez ouvrir les pices jointes par un double-clic ou faire appel au menu contextuel pour enregistrer les chiers localement, les supprimer de le-mail ou encore les dtacher. "Dtacher" signie ici que le chier est dabord enregistr en local puis effac du message. Cest donc une solution pratique lorsque vous ne souhaitez conserver que le texte dun e-mail mais pas les pices jointes, parfois extrmement volumineuses. Thunderbird sait, grce la conguration MIME, quel programme il doit utiliser pour ouvrir un chier dun type donn. MIME est lacronyme de Multipurpose Internet Mail Extensions. Thunderbird tient compte des paramtres MIME gnraux de Linux (voir le Chapitre 13 sur ce point) ainsi que des paramtres qui lui sont propres, enregistrs dans le chier XML ~/.thunderbird/xxxxxxxx.default/mimeTypes.rdf. Il nest toutefois pas possible dajouter de nouveaux types de donnes Thunderbird. Lorsque celui-ci ne reconnat pas un type de chier, vous devez enregistrer la pice jointe en tant que chier puis ouvrir celuici par le biais du gestionnaire de chiers de votre environnement de bureau.

Pices jointes

Rdiger un e-mail

Dans la fentre de rdaction dun e-mail, vous trouverez un grand nombre de boutons de mise en forme et dinsertion dobjets divers. Les menus Insrer et Format proposent encore davantage de possibilits. Attention, toutefois, un point : les e-mails construits de cette manire sont envoys au format HTML. De nombreux utilisateurs refusent tout simplement de tels e-mails ou considrent quils prsentent un risque de scurit. Thunderbird

106

LINUX

demande par consquent lenvoi (Ctrl+Entre) si vous souhaitez envoyer le courrier au format texte, HTML ou dans les deux formats. Si vous envisagez de rdiger un e-mail en texte simple uniquement, choisissez Options > Format > Texte seulement dans la fentre crire ou appuyez sur la touche Maj lorsque vous cliquez sur le bouton crire ou Rpondre. Si, comme beaucoup dutilisateurs avancs, vous souhaitez rdiger vos courriers uniquement au format texte simple, vous pouvez dsactiver entirement les fonctionnalits de rdaction au format HTML : pour cela, ouvrez la bote de dialogue de conguration dition > Paramtres des comptes > Rdaction et adressage et dcochez loption Rdiger les messages en HTML. Au premier envoi de courrier, Thunderbird vous demande de fournir le mot de passe pour le serveur SMTP devant grer les courriers sortants. Si le serveur sortant de votre socit ou de votre fournisseur daccs ne ncessite aucune authentication, ouvrez la fentre dition > Paramtres des comptes > Serveur sortant (SMTP), cliquez sur le bouton Modier pour ouvrir une bote de dialogue de conguration et dsactivez-y loption Utiliser un nom dutilisateur et un mot de passe. Vous rpondez un e-mail soit avec la combinaison de touches Ctrl+R (rpondre lauteur), soit avec Ctrl+Maj+R (rpondre tous). Pour rpondre 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 des e-mails, dossiers virtuels

Dans le champ de recherche gurant droite de la barre doutils courrier, vous pouvez saisir un mot-cl qui sera recherch soit dans ladresse de lexpditeur, soit dans le sujet, soit dans le contenu du courrier. Thunderbird afche alors uniquement les e-mails rpondant ce critre. Le menu dition > Chercher > Rechercher... (ou, plus rapidement, Ctrl+F) offre des possibilits de recherche supplmentaires. En particulier, vous pouvez par ce biais effectuer une recherche simultane dans plusieurs dossiers. Vous pouvez enregistrer vos paramtres de recherche en tant que "dossiers virtuels" : les dossiers virtuels se prsentent de la mme faon que les dossiers de courrier habituels, mais ils contiennent des rsultats de recherche. Vous pouvez par exemple dnir un nouveau dossier virtuel pour les courriers rpondant au critre "statut nest pas lu". Ce dossier prsentera alors lensemble des e-mails non encore lus, indpendamment du dossier dans lequel ces courriers sont effectivement enregistrs.

Carnet dadresses

Dans la fentre de carnet dadresses, vous pouvez grer diffrentes listes dadresses. Par dfaut, deux listes sont prvues : Adresses personnelles et Adresses collectes. la cration dun nouveau courrier, Thunderbird enregistre automatiquement ladresse utilise dans les Adresses personnelles. Si vous ne voulez pas de ce fonctionnement ou si les adresses en question doivent tre enregistres dans une autre liste, vous trouverez les paramtres correspondants dans la bote de dialogue dition > Prfrences > Rdaction > Adressage. Vous pouvez galement enregistrer manuellement les adresses e-mail par le menu contextuel. Pour grer les adresses, ouvrez le carnet dadresses par le biais du menu Outils. Vous pouvez alors y rechercher des adresses, exporter et importer des adresses dans diffrents formats, etc.

Filtre antispam

Thunderbird intgre un ltre antispam. Vous pouvez lactiver par le biais de la bote de dialogue dition > Prfrences > Condentialit > Indsirables (voir Figure 7.3). Du fait que la reconnaissance du spam ne fonctionne pas parfaitement au dbut, il est conseill de ne pas activer immdiatement loption Les dplacer dans le dossier "indsirables". De cette

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

107

manire, les e-mails souponns dtre du spam seront conservs dans le dossier "Courrier entrant" mais seront identis par une icne "spam".

Figure 7.3
Configurer le filtre antispam.

Pour faire progresser la reconnaissance du spam, vous devez passer quelques jours "entraner" votre ltre. Pendant cette priode, pour chaque e-mail que Thunderbird naura pas correctement identi comme spam, cliquez sur le bouton Indsirable. Il est encore plus efcace pour cela dutiliser 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 "indsirable" sur un courrier acceptable. Le ltrage antispam ne fonctionne que pour les e-mails reus aprs activation du ltre. Pour traiter les courriers gurant dj dans le dossier courant, passez par le menu Outils > Traquer les indsirables dans le dossier. Indpendamment du ltrage antispam, vous pouvez dnir des rgles de ltrage supplmentaires par le biais du menu Outils > Filtres de messages... De cette manire, vous pouvez automatiquement marquer ou dplacer vers un rpertoire donn tous les e-mails entrants rpondant un critre donn. Cest une fonctionnalit particulirement pratique pour traiter automatiquement les e-mails provenant de listes de diffusion.

Extensions et fonctionnalits additionnelles


Modules complmentaires

Comme Firefox, Thunderbird permet lajout de fonctionnalits additionnelles sous la forme de modules complmentaires. La bote de dialogue Outils > Modules complmentaires donne un aperu de tous les modules complmentaires dj installs : http://addons.mozilla.org/fr/thunderbird Les extensions de Thunderbird se prsentent, comme celles de Firefox, sous la forme de chiers XPI. Pour les installer, vous devez tlcharger le chier XPI et lenregistrer dans un rpertoire local. Utilisez ensuite le bouton Installer de la bote de dialogue Outils > Modules complmentaires et slectionnez le chier installer. Une installation directe par un clic de souris dans Firefox nest pas possible, car Firefox nest pas en mesure de distinguer les

108

LINUX

extensions conues pour lui de celles prvues pour Thunderbird. Les extensions ne sont effectivement utilisables quaprs avoir relanc Thunderbird.
Signer/chiffrer des e-mails

Les fonctionnalits de chiffrement pour S/MIME sont intgres par dfaut dans Thunderbird. Vous trouverez tous les lments de conguration ncessaires dans la bote de dialogue dition > Paramtres des comptes > Scurit. Le bouton Afcher les certicats vous conduit une bote de dialogue de gestion des certicats X.509, jouant le rle de cls dans le cadre de S/MIME. Pour pouvoir lire ou rdiger dans Thunderbird des e-mails chiffrs ou signs par PGP, vous devez ajouter le module complmentaire Enigmail. Vous trouverez le chier XPI correspondant sur le site web dAdd-ons mentionn ci-dessus. Ce module ncessite toutefois que gnupg soit pralablement install sur lordinateur. Cest le cas pour la majorit des distributions. Toutes les fonctionnalits de chiffrement sont alors accessibles depuis le menu OpenPGP dans la fentre principale ainsi que dans la fentre crire.

Lire/rdiger des news

Avec Thunderbird, vous pouvez galement lire et rdiger des messages des groupes de news Usenet. Pour ce faire, congurez un nouveau Compte forums de discussion par le biais des menus dition > Paramtres des comptes > Ajouter un compte. Vous devrez alors fournir ladresse dun serveur de news auquel vous avez accs. La plupart des fournisseurs daccs Internet vous mettent disposition un tel serveur. Vous pourrez ensuite accder ce compte dans la fentre principale de Thunderbird et vous abonner des groupes de discussion. Vous pourrez alors lire et rdiger les messages exactement comme des e-mails.
Si vous souhaitez uniquement lire les messages et y effectuer des recherches, il est prfrable dutiliser pour cela Google. Lavantage de Google est quil vous permet galement daccder des messages anciens. Sur les serveurs de news, les messages ne sont conservs que quelques semaines, pour des raisons de place. http://groups.google.com

Icne du tableau de bord pour signaler un nouvel e-mail

Thunderbird vous informe de larrive dun nouveau courrier par un bip sonore et en faisant apparatre en surimpression quelques informations synthtiques sur le courrier en question. Les options correspondant cette fonctionnalit se trouvent dans la bote de dialogue dition > Prfrences > Gnral. Personnellement, toutefois, je prfrerais que Thunderbird fasse apparatre une petite icne dans le tableau de bord Gnome ou KDE ds quun nouvel e-mail est disponible. Thunderbird nen est tonnamment pas capable. Il existe toutefois un module complmentaire assurant cette fonctionnalit : http://moztraybiff.mozdev.org/ la rdaction dun e-mail, Thunderbird souligne les mots quil suppose tre errons. Cette fonctionnalit ainsi que la langue par dfaut sont actives par le biais des menus dition > Prfrences > Rdaction > Orthographe. Les langues disponibles sont toutefois limites celles pour lesquelles un dictionnaire a t install. Certaines distributions sont livres avec les chiers de dictionnaires ncessaires pour les principales langues ou, a minima, mettent la disposition des utilisateurs les paquetages correspondants. Si ce nest pas le cas de votre distribution, vous pouvez galement installer manuellement le dictionnaire ncessaire. Pour ce faire, tlchargez le chier XPI correspondant depuis le site web suivant et installezle exactement comme un module complmentaire : https://addons.mozilla.org/fr/thunderbird/browse/type:3

Dictionnaires

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

109

Importer ou synchroniser des e-mails Windows


Import

Synchronisation des e-mails

Si vous aviez jusqu prsent utilis un autre client de courrier lectronique (sous Windows), vous souhaiterez peut-tre importer vos anciens e-mails. La version Linux de Thunderbird nest toutefois pas dune grande aide sur ce point : Outils > Importer... ouvre certes un assistant dimport, mais celui-ci ne prend en charge quun unique format, celui des anciennes versions de Netscape. La version Windows de Thunderbird est toutefois bien plus utile. Son assistant dimport est livr avec les formats de courrier utiliss par Microsoft Outlook, Outlook Express et Eudora. Une fois les courriers convertis sous Windows, il ne vous reste alors plus qu recopier les emails depuis le rpertoire Windows vers le bon rpertoire Linux. Ces rpertoires peuvent toutefois tre un peu fastidieux localiser : Sous Windows, le rpertoire contenant les e-mails Thunderbird correspond au chemin suivant : C:\Documents and Settings\nom_d_utilisateur\Application Data\Thunderbird\Profiles\Default\xxxxxx.xxx\Mail\Local Folders\ Depuis Linux, vous pourrez en rgle gnrale accder ce rpertoire par le chemin /media/sdan, o sdan correspond au nom de priphrique de la partition Windows. Vous devrez remplacer tous les caractres \ par des barres obliques /. Lorsque votre distribution ne monte pas par dfaut les partitions Windows dans votre arborescence de rpertoires, vous devrez procder manuellement (voir ce sujet le Chapitre 23). xxxxxx.xxx est un nom de rpertoire gnr par Thunderbird et constitu de caractres alatoires. Sous Linux, le rpertoire vers lequel copier les chiers possde 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 chiers de-mail dun rpertoire vers lautre, noubliez pas de fermer Thunderbird ! Si vous travaillez aussi bien sous Windows que sous Linux, vous avez la possibilit de synchroniser le rpertoire de-mails dans son ensemble. Une condition pralable essentielle au bon fonctionnement de ce systme est davoir install la mme version de Thunderbird sur les deux systmes dexploitation.
Ce passage sadresse aux utilisateurs de Linux ayant dj une certaine exprience derrire eux et sapplique Thunderbird 2.0. On ne peut pas encore prdire si et comment une synchronisation des rpertoires de-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 passe avec succs de la version 1.5 la version 2.0. Cette mthode nest toutefois pas exempte de problmes. Thunderbird est toujours persuad quil doit rindexer les e-mails de chaque dossier ; il oublie frquemment le dernier ordre de classement dfini ; etc. Une certaine prudence est par ailleurs de rigueur. Une sauvegarde rgulire du rpertoire complet, mme sans synchronisation avec Windows, devrait aller de soi. Lorsque vous ralisez votre sauvegarde, noubliez pas de fermer Thunderbird !

110

LINUX

Dans ce qui suit, je pars du principe que vous avez jusqu prsent gr vos e-mails avec Thunderbird sous Windows. Vous souhaitez maintenant accder aux courriers avec Thunderbird sous Linux. Du moment que vous avez accs en criture, depuis Linux, sur votre partition Windows comprenant les e-mails, vous navez pas besoin de modier quoi que ce soit dans Windows. Cest le cas si vous utilisez un systme de chiers VFAT sous Windows ou si vous avez mis en place le pilote ntfs-3g sous Linux (qui vous permet dcrire sur un systme de chiers NTFS, voir le Chapitre 25 sur ce sujet). Lancez Thunderbird sous Linux et congurez un nouveau compte pour votre service de courrier. Avant de tlcharger le moindre e-mail, ouvrez la bote de dialogue dition > Paramtres des comptes > Paramtres du serveur et modiez le Rpertoire local. Renseignez-y le chemin du rpertoire dans lequel sont enregistrs les e-mails sous Windows. Procdez exactement de la mme manire pour le rpertoire du pseudo-compte Dossiers locaux (les "Dossiers locaux" dnissent lendroit o sont enregistrs tous les courriers entrants ainsi que tous les dossiers de courrier que vous avez crs). Et cest ni ! Si vous navez pas accs en criture, depuis Linux, au dossier de-mails de Windows, vous devrez copier le rpertoire de-mails en question vers un nouveau rpertoire hberg sur une partition VFAT (opration raliser sous Windows). Ensuite, ouvrez Thunderbird sous Windows et modiez les paramtres du serveur de manire que Thunderbird lise et enregistre tous les e-mails depuis ce nouvel emplacement.
Synchroniser le carnet dadresses

Pour synchroniser galement le carnet dadresses, fermez Thunderbird sous Linux et passez dans le rpertoire ~/.thunderbird/xxxxxx.xxx.default. Commencez par y faire une copie de sauvegarde du chier abook.mab et crez ensuite un lien vers le chier quivalent sous Windows (ce qui suppose l encore que vous ayez accs en criture au systme de chiers Windows). Vous trouverez davantage dastuces sur ce point ladresse suivante : http://kb.mozillazine.org/Sharing_address_books Lorsque vous accdez plusieurs comptes e-mail depuis Thunderbird, il est particulirement fastidieux de recongurer chaque compte lors dun passage de Windows Linux. Le module complmentaire Accountex facilite quelque peu cette tche. Vous trouverez Accountex sur le site web des extensions Thunderbird que nous avons dj mentionnes : https://addons.mozilla.org/fr/thunderbird

Configuration dun compte

7.3

Evolution

Le logiciel Evolution, dvelopp par la socit Ximian (qui a depuis t intgre la socit Novell), a t conu comme une alternative Microsoft Outlook. Non seulement Evolution peut tre utilis pour la lecture et la rdaction de-mails, mais il propose galement des fonctionnalits de gestion des adresses et rendez-vous, la synchronisation de ces donnes avec un PDA compatible Palm ainsi quavec un serveur Microsoft Exchange, le chiffrement des emails avec PGP ou S/MIME, etc. Evolution runit toutes ces fonctionnalits sous une mme interface utilisateur : le client de courrier par dfaut de lenvironnement de bureau Gnome. Il nest donc pas tonnant que son adoption ait connu un fort dveloppement.

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

111

Les utilisateurs avancs de Linux restent nanmoins quelque peu sceptiques vis--vis de ce logiciel. Ceci est en particulier d au fait quEvolution a, par le pass, toujours connu des problmes de stabilit et de rapidit, ce qui a nui son image.

Configuration dun compte


Au premier lancement dEvolution apparat un assistant de conguration dun compte e-mail. Cet assistant doit tre parcouru intgralement avant de pouvoir utiliser Evolution. La conguration commence par la saisie de vos nom et adresse e-mail. la bote de dialogue suivante, vous fournissez les paramtres du serveur de courrier hbergeant votre bote aux lettres : vous indiquez ici le type de serveur (par exemple POP ou IMAP), son adresse ainsi que votre nom dutilisateur. Cest lors de votre premire tentative de connexion au serveur que le mot de passe vous sera demand. De nombreux hbergeurs de courrier vous permettent de transfrer les donnes par le biais dune connexion chiffre par SSL, ce qui en amliore la scurit. Dans la bote de dialogue suivante, vous pouvez congurer diverses options, par exemple la vrication automatique de nouveaux courriers intervalles rguliers. ltape suivante, vous congurez le serveur de courrier sortant (SMTP) vers lequel vous envoyez les e-mails. Vous devez non seulement fournir le nom de cette machine mais galement congurer les options dauthentication. Dans la plupart des cas, le type dauthentication choisir est "connexion". Le nom dutilisateur correspond lidentiant de connexion au serveur SMTP. Le mot de passe vous est demand lorsque vous tentez pour la premire fois denvoyer un e-mail. De nombreux prestataires de courrier exigent une authentication de type "POP avant SMTP". Dans ce cas, aucun mot de passe SMTP nest ncessaire. Enn, vous devez fournir un nom au compte que vous venez de congurer (par dfaut, cest votre adresse e-mail qui est utilise) et renseigner votre fuseau horaire pour quEvolution puisse correctement congurer lheure dmission des e-mails. Si vous souhaitez ultrieurement modier la conguration ou mettre en place des paramtres supplmentaires, vous accderez par le biais des menus dition > Prfrences > Comptes de messagerie la bote de dialogue correspondante (voir Figure 7.4).
Signature

Lorsque vos courriers doivent systmatiquement se conclure par le mme texte (par exemple "Cordialement, un_nom"), vous pouvez crer une signature dans la bote de dialogue dition > Prfrences > Prfrences de lditeur > Signatures. Dans la fentre de rdaction dun e-mail, vous pourrez alors insrer la signature au moyen dun bouton. Evolution nest toutefois pas en mesure dinsrer automatiquement une signature par dfaut.

Fonctionnalits de base
Lire des e-mails

Lorsque vous cliquez pour la premire fois sur le bouton Envoyer/Recevoir ou que vous appuyez sur la touche F9 pour tlcharger les nouveaux e-mails, vous devez fournir le mot de passe pour votre bote aux lettres.

112
Figure 7.4

LINUX

Configuration dun compte dans Evolution.

Les nouveaux e-mails sont rassembls dans le dossier local intitul Bote de rception (voir Figure 7.5). La liste des courriers apparat dans la partie suprieure de la fentre, tandis que le texte du courrier slectionn est afch dans la partie infrieure. Dun double-clic sur un lment de la liste, vous pouvez ouvrir un courrier dans une fentre distincte, ce qui en facilite la lecture.

Figure 7.5
Gestion des e-mails dans Evolution.

Envoyer des e-mails

Lorsque plusieurs courriers provenant de la mme discussion gurent dans un mme dossier, il est possible de les afcher suivant une structure arborescente par le biais des menus Afchage > Grouper par ls de discussion. Avec cette vue, vous pouvez immdiatement identier qui a rpondu quel courrier et quelle date. Vous pouvez rdiger un nouveau courrier avec la combinaison de touches Ctrl+N et lenvoyer avec Ctrl+Entre. Au premier envoi, Evolution vous demande le mot de passe

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

113

daccs au serveur SMTP devant grer lenvoi du courrier. Vous pouvez rpondre des e-mails dj reus grce la combinaison de touches Ctrl+R (rpondre lauteur) ou Ctrl+Maj+R (rpondre tous). Ctrl+F vous permet de faire suivre un courrier un autre destinataire. Le-mail dorigine est alors ajout en tant que pice jointe.
Courriers au format HTML

Il existe fondamentalement deux types de-mails : les courriers au format texte simple, sans mise en forme, et les messages HTML avec toutes les possibilits de mise en forme que propose le HTML (diffrentes tailles, couleurs, etc. de polices). Les courriers au format HTML ont toutefois, par le pass, conduit des problmes de scurit avec de nombreux logiciels de courrier (particulirement avec Microsoft Outlook). De nombreux utilisateurs refusent donc tout simplement de tels e-mails ou considrent quils prsentent un risque de scurit. Pour des raisons de scurit, Evolution ne charge aucun des chiers (donc aucune image) utiliss dans un e-mail au format HTML. Vous pouvez modier ce comportement par le biais de la bote de dialogue dition > Prfrences > Prfrences du courriel > Courriel HTML. Par dfaut, vous ne pouvez rdiger dans Evolution que des e-mails au format texte simple. Pour crire des courriers au format HTML, choisissez Format > HTML dans la fentre de rdaction. Divers boutons et menus de mise en forme et dinsertion vous permettront alors dappliquer toutes les modications que vous souhaitez. Si vous souhaitez rdiger systmatiquement vos e-mails au format HTML, passez par les menus dition > Prfrences et, dans la bote de dialogue Prfrences de lditeur > Gnral, cochez loption Formater les messages en HTML.

Rechercher des e-mails

Evolution prsente, directement sous la barre doutils, un champ permettant deffectuer des recherches rapides parmi les e-mails. Si vous utilisez rgulirement les mmes critres de recherche, il peut tre intressant de crer un dossier de recherche (ou "dossier virtuel"). Pour ce faire, passez par dition > Dossiers de recherche ou Recherche > Crer un dossier de recherche partir dune recherche... Evolution utilise automatiquement spamassassin pour lidentication des e-mails indsirables, condition que ce logiciel soit install. Pour appliquer le ltrage antispam sur les courriers existant dj dans un dossier, slectionnez lensemble des e-mails avec Ctrl+A puis excutez Message > Filtrer le pourriel. Cette opration peut prendre un temps important sur les dossiers comprenant beaucoup de courriers. Les courriers identis comme spam sont dplacs dans le dossier Pourriels. Le ltre antispam est initialement assez prudent pour viter de classer indment comme pourriel des e-mails qui ne le sont pas. Pour cette raison, il est souvent ncessaire, durant les premires semaines, dindiquer manuellement pour chaque courrier sil sagit dun spam. Pour ce faire, slectionnez le-mail en question et cliquez sur le bouton Pourriel ou utilisez la combinaison de touches Ctrl+J. Le ltre antispam tente de dcouvrir dans le courrier ainsi marqu un motif qui pourra laider, par la suite, correctement trier les e-mails. Ainsi, le ltrage antispam samliore continuellement.
loccasion, il arrive malheureusement quun courrier soit indment class comme spam. Vous devez par consquent jeter un coup dil rgulier au dossier Pourriel afin de vrifier sil sy trouve de tels e-mails.

Filtrage antispam

114

LINUX

Pour viter que cette identification errone ne se reproduise, cliquez sur le bouton Non pourriel pour le courrier concern. Daprs mon exprience, le filtrage antispam dEvolution 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 dapprentissage.
Filtres

Outre le ltrage antispam, Evolution peut, grce des rgles de ltrage, dplacer automatiquement des e-mails vers certains dossiers ou mme effacer des courriers. Cest pratique lorsque vous avez un grand nombre de-mails traiter et que vous souhaitez organiser ceux-ci suivant un motif particulier (par exemple la prsence dun mot donn dans le sujet). Cest typiquement le cas lorsque vous tes abonn plusieurs listes de diffusion. La mthode la plus simple pour dnir une nouvelle rgle de ltrage consiste slectionner le courriel puis excuter Message > Crer une rgle > Filtrer sur la liste de diffusion. Lorsque Evolution ne parvient pas reconnatre correctement la rgle de ltrage, vous pouvez la modier ou lui ajouter des critres.

Fonctionnalits supplmentaires
Gestion des adresses et contacts

Calendrier et gestion des rendez-vous

Liste de tches Synchronisation avec un PDA

Le carnet dadresses dEvolution est, en ralit, un vritable systme de gestion des contacts dans lequel vous pouvez enregistrer un grand nombre dinformations en plus du nom et de ladresse e-mail. Vous pouvez accder au carnet dadresses soit par le biais des menus Afchage > Fentre > Contacts, soit plus rapidement par la combinaison de touches Ctrl+F2. Fichier > Importer > Importer un seul chier vous permet dimporter des chiers de carnet dadresses au format LDIF (Lightweight Directory Interchange Format). Malheureusement, cest le seul format pris en charge. Le module Calendriers vous permet de grer vos rendez-vous. Les rendez-vous peuvent tre prsents dans diverses vues : tous les rendez-vous dune journe, dune semaine ouvre, dune semaine complte ou dun mois. Vous pouvez personnaliser de nombreux dtails de prsentation (par exemple les horaires de travail habituels ou les couleurs des polices) par le biais ddition > Prfrences > Calendriers et tches. Pour crer un nouveau rendez-vous, passez par les menus Fichier > Nouveau > Rendezvous ou double-cliquez sur lemplacement correspondant au rendez-vous dans le calendrier. Pour les rendez-vous devant se rpter intervalles rguliers (chaque semaine, mois, anne, etc.), renseignez lintervalle dans la bote de dialogue laide du bouton Rcurrence, et prcisez au besoin une date de n pour cette rptition. Evolution compte galement un module de gestion de tches (une sorte de to do-list). Vous pouvez afcher les tches soit dans une vue propre, soit comme partie intgrante du calendrier. Pour tout possesseur de PDA, il est naturellement intressant de pouvoir synchroniser ses donnes avec Evolution. Cette possibilit existe de fait pour les PDA compatibles Palm. Avant la premire synchronisation, vous devez congurer le priphrique par le biais ddition > Options de synchronisation. En coulisse, cest le programme gnome-pilot qui est charg de la conguration et du transfert des donnes. Mon exprience montre toutefois que la synchronisation ne fonctionne pas de manire trs able, ce qui rend cet outil plus adapt aux exprimentateurs qu ceux qui souhaitent lutiliser quotidiennement.

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

115

7.4

Kontact

Kontact est un programme universel de gestion des e-mails, contacts, rendez-vous, tches, notications ainsi que pour lafchage de ux RSS. Kontact propose, comme Evolution, une synchronisation des donnes avec un PDA. De fait, Kontact nest quune interface utilisateur unie pour diffrents programmes KDE fonctionnant en coulisse. Cette section se focalise sur le composant e-mail derrire 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 ntes intress que par les fonctionnalits de-mail, vous pouvez galement lancer KMail en tant que programme autonome. Des trois logiciels de courrier prsents dans ce chapitre, Kontact (et Kmail) est celui dont lorientation technique est la plus forte. Ce programme prsente dinnombrables fonctionnalits et permet aux utilisateurs avancs de Linux de travailler trs efcacement. Son utilisation nest toutefois pas toujours trs intuitive. Par consquent, ce logiciel nest pas forcment le plus conseill pour les dbutants sous Linux. Conguration > Congurer KMail vous conduit une bote de dialogue de conguration. Par dfaut, le systme a congur une "identit par dfaut". Le bouton Modier vous permet ici de congurer vos nom et adresse e-mail effectifs ainsi que, au besoin, dautres options. La conguration effective du compte a lieu dans le module Comptes. Vous devez y congurer au moins un compte de rception et un compte denvoi. Pour commencer, en gnral, vous utiliserez le bouton Ajouter pour congurer la bote aux lettres entrante de votre serveur POP ou IMAP. Pour le courrier sortant est prvu le programme sendmail, mais il nest en rgle gnrale congur que pour lmission de courrier local. Par consquent, vous devez congurer une bote aux lettres SMTP supplmentaire (voir Figure 7.6), que vous pouvez slectionner comme bote aux lettres par dfaut.

Configuration dun compte

Figure 7.6
Configuration dun compte dans Kontact.

Ds que vous quittez la bote de dialogue de conguration, Kontact enregistre les mots de passe dans une base de donnes centrale par le biais de KDEWallet. Par consquent, vous devez fournir le mot de passe matre pour KDEWallet (voir Chapitre 5).

116
Lire des e-mails

LINUX

Les nouveaux e-mails sont rassembls dans le dossier Bote de rception. La liste des courriers apparat dans la partie suprieure de la fentre, tandis que le contenu de le-mail slectionn est afch dans la partie infrieure. Au besoin, vous pouvez ouvrir un courrier dans une fentre spare en double-cliquant dessus dans la liste. Les e-mails HTML ont, par le pass, conduit des problmes de scurit avec de nombreux clients de courrier. Par consquent, pour de tels e-mails, KMail ne prsente par dfaut quune version texte ou le code source HTML. Si vous souhaitez consulter le-mail avec sa mise en forme HTML complte, vous devez cliquer sur le lien correspondant. Si vous souhaitez afcher systmatiquement les e-mails HTML en tant que tels, passez par Dossier > Prfrer le HTML au texte brut. Ce paramtrage ne vaut toutefois que pour le dossier en cours. KMail prsente ct de chaque message une barre verticale qui, suivant le type de-mail, indique "Message HTML" ou "Message non HTML". Si cette barre vous drange, vous pouvez la dsactiver par le biais de la bote de dialogue Conguration > Congurer KMail > Apparence > Fentre des messages (dcochez loption Afcher la barre dtat pour les messages HTML). La partie infrieure de la zone dafchage du courrier indique les parties constitutives de le-mail. Si ces informations ne vous intressent pas, choisissez loption Ne jamais afcher pour llment Conguration > Congurer KMail > Apparence > Disposition > Afchage de la structure du message.

Figure 7.7
Grer les e-mails avec Kontact.

Rdiger un e-mail

Un nouvel e-mail est, par dfaut, rdig en texte brut. Si vous souhaitez appliquer une mise en forme HTML, passez par Options > Formatage (HTML). Une fois le courrier rdig, vous pouvez lenvoyer avec la combinaison de touches Ctrl+Entre. Pour rpondre un courrier, vous pouvez utiliser les touches R (rpondre lauteur) et A (rpondre tous). Le texte complet de le-mail est automatiquement insr en citation dans

E-MAIL (THUNDERBIRD, EVOLUTION, KONTACT)

117

Spam

la rponse (chaque ligne est donc prcde du caractre >). Si vous ne souhaitez rappeler dans votre rponse quune partie du message dorigine, slectionnez la partie correspondante dans le-mail avant de faire appel une commande Rpondre. KMail excute automatiquement une vrication orthographique et colore tous les mots non reconnus en rouge. Afchage > Dictionnaire vous permet de choisir le dictionnaire appropri parmi plusieurs (anglais, franais, etc.). KMail nintgre aucun outil didentication du spam mais peut dlguer cette tche dautres programmes. Un assistant auquel vous pouvez accder par Outils > Assistant de gestion des messages non sollicits vous aide congurer un ltre antispam. Vous navez qu choisir un des programmes de gestion du spam install sur votre ordinateur et lassistant gre tout le reste. Les courriers identis comme indsirables seront ds lors envoys directement vers la Corbeille. Comme avec les autres logiciels de courrier, lefcacit du ltrage augmente lorsque vous corrigez les erreurs didentication en marquant manuellement un courrier comme indsirable ou non.

OpenOffice
OpenOfce 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 Ofce jusqu sa version 2003 ; cela concerne aussi bien lutilisation de la suite que limport et lexport de chiers. Une prise en charge des systmes dexploitation Linux, Windows, Mac OS et Sun Solaris ; cela permet ainsi dchanger sans difcult des documents dans des environnements htrognes ; il nexiste pas encore de version OpenOfce ofcielle pour Mac OS, mais les utilisateurs de Mac peuvent toutefois installer le portage gratuit NeoOfce. Des fonctionnalits trs larges, y compris pour des tches avances (par exemple la rdaction dune thse). Sa stabilit, sa sret et sa maturit. Ce chapitre dcrit tout dabord quelques particularits dOpenOfce 2n, puis prsentera rapidement chacun des composants Writer, Calc, Impress et Base. De faon gnrale, je pars dans ce chapitre du principe que vous matrisez les fonctionnalits de base dOfce. 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 entirement ddi OpenOfce ou StarOfce, ce que vous pourrez trouver dans nimporte quelle librairie. OpenOfce est disponible pour la quasi-totalit des distributions et peut tre install simplement laide du gestionnaire de paquetages. Si ce nest pas le cas ou si vous souhaitez installer une version plus rcente, vous devrez rcuprer les chiers dinstallation depuis le site ofciel : http://www.openofce.org OpenOfce nest en aucun cas lunique paquetage bureautique pour Linux. Les principales alternatives seront rapidement prsentes dans la dernire section de ce chapitre.

8.1
Java

Introduction

Avant de prsenter chacun des composants OpenOfce dans les sections suivantes de ce chapitre, nous donnons ici quelques informations gnrales sur le paquetage OpenOfce. Quelques fonctionnalits dOpenOfce requirent la prsence de Java. Pour cette raison, vous devez installer avant OpenOfce une version rcente de Java. De nombreuses distributions proposent par dfaut des paquetages Java. Si ce nest pas le cas de la vtre, vous pouvez tlcharger gratuitement la dernire version de lenvironnement dexcution Java de Sun (J2SE JRE) depuis le site web suivant : http://java.sun.com/j2se/downloads.html OpenOfce reconnat automatiquement lenvironnement Java disponible lors de linstallation. Si vous mettez en place Java aprs avoir install OpenOfce, vous devrez paramtrer Java manuellement par le biais de la bote de dialogue Outils > Options > OpenOfce > Java.

120
Lancement du programme

LINUX

Si vous travaillez sous KDE ou Gnome, le menu de dmarrage correspondant devrait comprendre les icnes OpenOfce ds linstallation termine. Si ces icnes manquent, vous pouvez naturellement aussi lancer les composants dOpenOfce par la ligne de commande :
ooffice, oowriter, oocalc, ooimpress, oobase

Les noms des commandes varient sur certaines distributions. Quoi quil en soit, chacune de ces commandes lance un seul et mme programme qui contient lensemble des composants de traitement de texte, tableur, prsentation, etc. Pour cette raison, le lancement initial peut sembler un peu long. Si vous avez ouvert plusieurs composants OpenOfce simultanment, il ny a en ralit quun seul programme qui sexcute en coulisse. Vous navez donc pas besoin de vous inquiter : chacune des fentres OpenOfce ouvertes ne requiert pas une quantit de RAM abusive.
Formats de fichiers OpenOffice

Avec OpenOfce, vous pouvez ouvrir et enregistrer vos documents dans plusieurs formats de chiers diffrents. Les trois formats principaux sont les suivants : Format OpenDocument ou OASIS (*.odt pour les chiers de texte, *.ods pour les feuilles de calcul, *.odp pour les prsentations). Ce format a t introduit avec OpenOfce 2.0. Cest le format par dfaut et qui devrait tre utilis autant que possible. Il faut toutefois veiller, lors de lchange de documents, ce que le destinataire du chier dispose au moins dOpenOfce 1.1.5 ou de StarOfce 9 sil doit travailler sur ces chiers. OASIS est lacronyme dOrganization for the Advancement of Structured Information Standards. Format OpenOfce 1.n (*.sxw, *.sxc, *.sxi). Ce format tait le format par dfaut pour OpenOfce 1.0 et 1.1, ainsi que pour StarOfce 7 et 8. Format Microsoft Ofce (*.doc, *.xls, *.ppt). Ce format est adapt pour lchange de chiers avec des utilisateurs de Microsoft Ofce. Depuis sa version 2.3, OpenOfce peut galement ouvrir des chiers Ofce 2007 (format 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 Ofce pass. La section suivante prsentera quelques remarques supplmentaires sur la compatibilit avec MS-Ofce. Vous devriez autant que possible utiliser le format OpenDocument. Cest le seul format qui permet de garantir labsence de changements louverture ou lenregistrement. Si vous choisissez denregistrer votre document sous un autre format, une demande de conrmation de scurit apparat automatiquement.

Intgration lenvironnement de bureau

Par dfaut, OpenOfce utilise ses propres botes de dialogue pour le chargement et lenregistrement de chiers. Pour faire en sorte quOpenOfce utilise plutt les lments de dialogue standard de votre environnement de bureau et quil sintgre ainsi plus harmonieusement KDE ou Gnome, vous pouvez dsactiver loption Utiliser les botes de dialogue OpenOfce.org dans la fentre de conguration Outils > Options > OpenOfce > Gnral. Cette option nest toutefois disponible que si OpenOfce peut effectivement utiliser les botes de dialogue de lenvironnement de bureau courant. Les versions rcentes dOpenOfce vous permettent de travailler directement sur des chiers provenant de rpertoires rseau Windows et Samba (vous pouvez donc les ouvrir

Dossiers rseau Windows

OPENOFFICE

121

par double-clic dans votre gestionnaire de chiers et enregistrer ultrieurement les modications apportes). Ceci ne fonctionne toutefois pas sur les anciennes versions dOpenOfce. Pour modier des documents Ofce hbergs sur un rseau Windows, vous avez deux possibilits : copier pralablement le chier vers un rpertoire local, utiliser cette copie pour la modier puis recopier le chier rsultant dans le rpertoire rseau laide du gestionnaire de chiers ; monter le rpertoire rseau Windows dans le systme de chiers Linux laide de mount (voir Chapitre 23) ; ceci ncessite toutefois de possder les droits root.

OpenOffice face Microsoft Office


OpenOfce peut-il totalement se substituer MS-Ofce ou non ? Cette question appelle en fait plusieurs rponses. Pour lutilisateur de base, OpenOfce propose certainement plus quassez de fonctionnalits. Mme la migration depuis Microsoft Ofce, jusqu sa version 2003, ne devrait pas poser de problme : les menus sont structurs de manire trs semblable. Si, toutefois, vous appartenez au groupe des utilisateurs avancs, vous devrez tre conscient de certaines limitations : MS-Ofce 2007. OpenOfce prsente une compatibilit trs leve avec les anciennes versions de Microsoft Ofce. Cela ne vaut toutefois pas pour MS-Ofce 2007. Jai par ailleurs dj mentionn que le nouveau format de chier OpenXML nest pas encore pris en charge. Novell travaille des convertisseurs OpenXML qui seront probablement intgrs ofciellement OpenOfce lavenir. Import/Export. Les fonctionnalits dimport et dexport pour les formats Microsoft Ofce (*.doc, *.xls, *.ppt) sont plutt bonnes mais ne sufsent pas pour garantir labsence totale de problme lchange de documents. Lorsque deux personnes travaillent alternativement sur un texte ou une feuille de calcul avec MS-Ofce et OpenOfce, quelques surprises peu agrables sont prvoir : problmes de mise en forme, prsentation errone des caractres spciaux cause des polices, sauts de pages et de colonnes manquants, gestion errone des lignes den-tte et de pied de page, prsentation incorrecte des diagrammes, couleurs errones, liaisons manquantes vers des chiers externes (images), etc. OpenOfce nest pas capable douvrir des chiers MS-Ofce protgs par un mot de passe. Vous devrez pralablement ouvrir de tels chiers dans MS-Ofce puis les y enregistrer, cette fois sans protection. Rapidit. Certaines fonctionnalits OpenOfce sont notoirement plus lentes que leurs homologues MS-Ofce. Cest en particulier le cas de louverture et de lenregistrement de documents volumineux. De surcrot, MS-Ofce peut pendant ce temps excuter en tche de fond diverses oprations consommatrices de temps, tandis quOpenOfce est totalement bloqu.

122

LINUX

Raccourcis clavier. De nombreux raccourcis clavier possdent une signication diffrente dans OpenOfce et MS-Ofce. Il est nanmoins toujours possible de modier les raccourcis existants et de dnir des raccourcis personnaliss. Access et Base. Le composant de base de donnes dOpenOfce Base nest pas comparable Access. Vous pouvez certes utiliser Base pour accder des bases de donnes externes ou crer vos propres bases, mais le spectre de fonctionnalits dAccess nest que trs partiellement couvert par Base. Programmation/VBA. OpenOfce utilise un langage de programmation de macros relativement mal document et, par consquent, employ presque uniquement par les utilisateurs avancs dOpenOfce. VBA, langage de programmation de macros intgr Microsoft Ofce, nest ofciellement pas pris en charge. Toutefois, il existe une extension dveloppe par la socit Novell spcialement pour OpenOfce Calc qui permet dexcuter des macros VBA simples. Daprs mon exprience, la compatibilit dOpenOfce 2.2 avec Microsoft Excel est encore malheureusement trs insufsante. Lexcution de macros VBA occasionne des erreurs, voire des plantages. Cette liste ne devrait toutefois pas vous empcher de migrer vers OpenOfce, dautant plus que celui-ci propose dautres fonctionnalits absentes de MS-Ofce. titre personnel, jutilise depuis plusieurs annes dj OpenOfce pour mes documents personnels. Si je signale ici les problmes potentiels, cest avant tout pour viter les dceptions face ce produit.

8.2

Traitement de texte (OpenOffice Writer)

Writer est le composant OpenOfce essentiel pour la majorit des utilisateurs. Toutefois, la place nous manque ici pour dcrire en profondeur lensemble de ses fonctionnalits. Nous devrons donc nous contenter ici de donner les grandes lignes de son fonctionnement, sans nous attarder sur des considrations de base (comment passer le texte en gras ou en italique) que vous matrisez dj.
Styles

Comme de nombreux autres logiciels de traitement de texte, OpenOfce gre ce que lon appelle les styles, qui permettent de mettre en forme de manire cohrente sur lensemble dun document des caractres, paragraphes, etc. Modier un style impactera lapparence du document dans son ensemble car tous les lments mis en forme avec ce style changeront dallure. Lutilisation des styles prsente de trs nombreux avantages par rapport la mise en forme manuelle (prsentation unie dun document et cohrence entre documents utilisant les mmes styles, facilit pour modier un style sur lensemble dun document). Lutilisation des styles est particulirement recommande pour la cration dun document volumineux. OpenOfce propose un outil dnomm Styles et mise en forme pour la gestion des styles (voir Figure 8.1). Il sagit dune fentre complmentaire que vous pouvez ouvrir ou fermer laide de la touche F11. Vous pouvez galement lamarrer la fentre principale en le faisant glisser avec la souris. Les styles sappliquent plusieurs niveaux : paragraphes, caractres, cadres, pages et listes, chacun de ces niveaux correspondant un onglet distinct dans Styles et mise en forme.

OPENOFFICE

123

Figure 8.1
La fentre OpenOffice standard avec Styles et mise en forme.

Pour appliquer un style un lment de texte donn, slectionnez le texte puis doublecliquez, dans Styles et mise en forme, sur le style choisi. Vous pouvez aussi modier un style par le biais du menu contextuel, dun clic droit sur son intitul dans Styles et mise en forme. Vous pouvez enn dnir vos propres styles en slectionnant llment de texte dont la mise en forme doit tre enregistre, puis en cliquant dans Styles et mise en forme sur le bouton Nouveau style partir de la slection. Attention, toutefois, au fait que les modications apportes aux styles ne peuvent tre annules (contrairement beaucoup dautres oprations) par le biais des touches Ctrl+Z. Vous devez donc les enregistrer rgulirement.
Tabulations et tableaux

OpenOfce prvoit par dfaut des intervalles de 1,25 cm pour les tabulations. Vous pouvez toutefois modier ce comportement par le biais de longlet Tabulations dans la bote de dialogue Format > Paragraphe. La touche Tab insre une tabulation dans la ligne en cours, ce qui suft pour les tableaux trs simples. Pour les tableaux plus complexes, vous devrez utiliser le menu Insertion > Tableau. Vous pouvez modier diverses proprits du tableau par le biais du menu Proprits du tableau (dans la fentre de gestion des tableaux ou dans le menu contextuel). Pour insrer des cellules depuis Calc dans Writer, copiez les cellules concernes dans Calc laide des touches Ctrl+C. Pour les insrer dans Writer en tant que tableau, utilisez le menu dition > Collage spcial puis Texte non format. Les donnes 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 bote de dialogue de conversion, la tabulation comme caractre sparateur). Si vous cherchez insrer directement les cellules dans Writer,

124

LINUX

vous produirez non pas un tableau classique mais un objet OLE dont les donnes sont lies au chier dorigine : ce type de liaison nest que rarement utilis.
Titres numrots

Si votre document est structur en chapitres et sections, les titres doivent tre mis en forme laide des styles Titre 1 Titre 10 (ce qui facilite par ailleurs la gnration dune table des matires). Ces titres ne comprennent toutefois pas de numrotation : pour insrer des numros, utilisez le menu Outils > Numrotation des chapitres. La bote de dialogue qui apparat vous permet de congurer la numrotation pour chacun des niveaux envisags. OpenOfce nintgre pas directement de dictionnaire pour la vrication orthographique. Il existe toutefois de nombreux dictionnaires disponibles sur Internet (voire livrs avec votre distribution) que vous pouvez installer. Le menu Fichier > Assistants > Installer de nouveaux dictionnaires peut galement vous aider dans cette tche. Veillez congurer correctement la langue du texte pour assurer un bon fonctionnement de la vrication orthographique. La langue standard est congure par le biais dOutils > Options > Paramtres linguistiques > Langue. Pour les textes multilingues, Format > Caractres permet de dnir la langue avec une granularit plus ne. OpenOfce permet de couper les mots soit manuellement, soit automatiquement. Pour lancer la coupure manuelle, passez par le menu Outils > Langue > Coupure des mots. OpenOfce ajoute alors les tirets soit lensemble du texte situ aprs le curseur, soit sur une partie du texte pralablement slectionne (vous pouvez aussi utiliser les touches Ctrl+"moins" pour insrer une coupure manuelle). Chaque coupure doit tre conrme mais vous pouvez dsactiver ce fonctionnement dans Outils > Options > Paramtres linguistiques > Linguistique. La coupure automatique est nettement plus pratique utiliser. Toutefois, seuls les paragraphes pour lesquels loption de coupure automatique (Format > Paragraphe > Enchanements) a t active seront traits par ce biais. Pour insrer une image dans un document, utilisez les menus Insertion > Image > partir dun chier. Dans la bote de dialogue de slection du chier, vous pouvez basculer entre deux modes diffrents grce la discrte option Lien : Insrer limage dans le texte. Lorsque Lien nest pas coche, le chier graphique est intgr au chier OpenOfce lenregistrement. Cela signie que la taille du chier augmente avec le volume de chaque image et le nombre total de celles-ci. La transmission de tels documents ne pose toutefois aucun problme puisque toutes les images sont intgres au chier. Insrer un lien vers le chier. Lorsque Lien est coche, OpenOfce nenregistre effectivement dans le chier que le chemin vers limage. Cette mthode est recommande pour les documents comprenant beaucoup dimages. Attention, toutefois, au fait quelle ncessite de ractualiser tous les liens si lemplacement du document ou des images change. Les champs sont des formules ou des variables qui peuvent tre insres dans le texte. limpression, cest la valeur correspondante qui apparat dans le texte. Les champs vous permettent de numroter automatiquement des gures, dafcher automatiquement la date dimpression en en-tte, de crer des sries de lettres standard avec quelques lments personnaliss, etc. Vous pouvez utiliser Insertion > Champ pour quelques-uns des champs les plus couramment utiliss (numros de page, date, etc.). Pour disposer dautres champs, passez par le sous-menu Autres (Ctrl+F2). OpenOfce peut afcher le nom ou la valeur des champs :

Vrification orthographique

Coupure des mots

Insrer des images

Champs

OPENOFFICE

125

pour basculer dun mode lautre, utilisez les menus Afchage > Noms de champs ou, plus rapidement, la combinaison de touches Ctrl+F9 (si vous ne travaillez pas sous KDE).
Table des matires

Lorsque vous souhaitez ajouter une table des matires votre document, utilisez les styles de titres Titre 1 Titre 10. De cette manire, vous pouvez construire la table des matires avec un minimum de travail : il vous suft alors de passer par les menus Insertion > Index > Index puis de slectionner le type Table des matires. Prcisez que la table des matires doit tre fonde 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. Longlet Entres vous permet de dnir plus prcisment la mise en forme de chaque ligne. Pour mettre jour la table des matires aprs avoir modi le document, effectuez un clic droit dessus et, dans le menu contextuel, slectionnez Actualiser lindex. La premire tape de la cration dun index consiste dnir les mots indexer. Le plus simple est pour cela de slectionner les mots concerns, puis de passer par les menus Insertion > Index > Entre. Une bote de dialogue souvre alors avec, dans le champ Entre, le texte slectionn. Cliquez sur Insrer pour conrmer la nouvelle entre. Pour dnir dautres entres, gardez cette bote de dialogue ouverte et marquez les mots mesure que vous avancez : ds que vous revenez la bote de dialogue, le champ Entre contient le mot que vous venez de slectionner. Si vous souhaitez modier lintitul exact de lentre, saisissez le nouveau texte dans le champ. Les mots pour lesquels une entre dindex a t dnie apparaissent dsormais en gris. Le texte de lentre apparat lorsque vous passez la souris sur le surlignement gris. Une fois que toutes les entres sont dnies, la cration de lindex effectif est alors trs simple : passez par les menus Insertion > Index > Index et choisissez dans la bote de dialogue le type Index lexical. Et cest termin ! Comme pour la table des matires, vous pouvez modier ou actualiser lindex par le biais du menu contextuel.

Index lexical

Impression

Limpression par Fichier > Imprimer (Ctrl+P) ne pose en gnral pas de problme. La bote de dialogue vous permet au besoin de prciser quelles pages imprimer ou quelle imprimante utiliser, et le bouton Options vous donne accs plus de possibilits. Pour imprimer au format paysage, vous devez passer par le format de page : Format > Page > Page pour activer loption Orientation paysage. Attention au fait quun tel paramtre est prvu dans la bote de dialogue dimpression, mais quil est gnralement ignor !

Export PDF

Depuis la version 1.1, OpenOfce permet dexporter des chiers directement au format PDF grce Fichier > Exporter au format PDF. Toutes les polices (sauf les polices standard PostScript) sont insres directement dans le chier PDF : plus vous utilisez de polices, plus le document devient donc volumineux. Il nest pas possible de congurer les paramtres de lexport PDF. Depuis sa version 2.0, OpenOfce est en mesure dutiliser sans conguration particulire lensemble des polices disponibles sur votre ordinateur. Pour les polices PostScript, il existe toutefois une limitation : OpenOfce ne peut les utiliser correctement que si les chiers de mtrique *.afm des polices sont galement installs dans le mme chier que les chiers *.pfa ou *.pfb.

Gestion des polices

126

LINUX

Il nest pas possible de garantir un rendu exactement identique dun mme document sur deux ordinateurs diffrents. Suivant les polices installes, la mise en page peut tre trs lgrement modifie : lorsque la prsentation doit absolument tre identique quel que soit le lecteur, vous devez transmettre vos documents au format PDF .

8.3
Saisie de formule

Tableur (OpenOffice Calc)

Pour la saisie de formules complexes, vous pouvez vous faire aider dun assistant par le biais du menu Insertion > Fonction. Pour lutilisateur plus avanc, Insertion > Liste des fonctions peut se rvler encore plus protable : ce menu ouvre une fentre donnant lensemble des formules et fonctions, parmi lesquelles vous pouvez choisir dun double-clic pour les insrer dans la cellule ou formule en cours. Les formules prsentent des emplacements rservs pour indiquer les paramtres. Comme dans tout tableur, vous pouvez renseigner les rfrences des cellules soit de faon relative (en fournissant les indications de "dplacement" par rapport la cellule en cours), soit de faon absolue (en donnant les coordonnes de la cellule cible de manire xe, ce qui maintient leur valeur mme par copier-coller). Pour basculer du mode relatif au mode absolu, utilisez la combinaison de touches Maj+F4.

Format de cellule

Comme dans Writer, Calc vous propose laide de Styles et mise en forme pour assurer la mise en forme des cellules. Pour appeler ou fermer la fentre Styles et mise en forme, utilisez la touche F11. Vous pouvez galement prciser le format dune cellule par le biais du menu Format > Cellule, en particulier pour grer la prsentation des donnes numriques de diffrents types. OpenOfce propose une longue liste de fonctions permettant danalyser de grands volumes de donnes. La condition pralable remplir pour cela, gnralement vrie, est que les donnes doivent gurer dans un tableau dun seul tenant. Si ce nest pas le cas (par exemple cause de lignes ou de colonnes vides), vous pouvez utiliser avec prot le menu Donnes > Dnir la plage. Donnes > Trier vous permet de trier les donnes. Il est intressant de noter que vous pouvez fournir plusieurs critres de tri (le second critre tant utilis en cas dgalit sur le premier critre). Donnes > Filtre > AutoFiltre vous permet de rduire les lignes visibles dans le tableau celles rpondant un critre donn. Donnes > Sous-totaux vous permet de partager le tableau en groupes suivant trois critres au maximum et, pour chaque groupe, de calculer les sous-totaux correspondants. Ceci entrane lafchage en marge (ligne ou colonne) dicnes + ou permettant de dplier ou de replier les groupes ainsi constitus. Pour ne plus afcher les sous-totaux, cliquez sur le bouton Supprimer de la bote de dialogue Sous-totaux. Donnes > 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 dplier ou de replier les groupes correspondants. La diffrence avec les Sous-totaux est toutefois que le plan est gnr manuellement et quaucun sous-total nest calcul.

Fonctions danalyse de donnes

OPENOFFICE

127

Format de page

Impression

Donnes > Pilote de donnes est une fonctionnalit avance. Lide sous-jacente est dutiliser au moins deux critres pour classer les donnes et de calculer des sous-totaux intermdiaires. Calc connat deux formes de prsentation de page : Afchage > Normal correspond lafchage habituel dans lequel une seule page est visible. Afchage > Aperu des sauts de page propose toutefois une vue plus synthtique : lensemble du tableau est prsent et les limites de page sont clairement indiques. De surcrot, le numro de chaque page apparat en gris en surimpression. Pour basculer entre les orientations Portrait et Paysage, ainsi que pour congurer de nombreuses autres options, vous devrez passer par le menu Format > Page. Ce paramtrage vaut pour lensemble du chier (donc pour toutes les feuilles de calcul). Si vous souhaitez une mise en page spcique pour certaines feuilles de calcul, vous devrez faire appel Styles et mise en forme pour crer des styles de page particuliers correspondant votre besoin. Par dfaut, toutes les feuilles de calcul non vides sont imprimes. Si vous ne souhaitez imprimer que la feuille de calcul active ou les feuilles de calcul slectionnes, activez loption Imprimer uniquement les feuilles slectionnes dans la bote de dialogue Outils > Options > Calc > Impression. Si vous ne souhaitez pas imprimer la totalit de la feuille de calcul, vous pouvez dterminer par le biais de Format > Zones dimpression la section imprimer. La zone dimpression dnie couramment apparat alors en couleur dans le mode dafchage Aperu des sauts de page. Pour limpression dun document sur plusieurs pages, il est souhaitable de rpter sur chaque page les cellules de titres pour les lignes et colonnes. Pour ce faire, congurez en consquence les champs Ligne rpter et Colonne rpter dans la bote de dialogue Format > Zones dimpression > diter.

8.4

Prsentation (OpenOffice Impress)

Premiers pas

Impress est le composant du paquetage OpenOfce qui permet de crer des prsentations. Parmi les points forts de ce programme, citons par exemple les nombreux formats dexport, qui facilitent grandement lchange de prsentations. Toutefois, les dbuts avec Impress peuvent se rvler peu intuitifs. Lorsque vous lancez Impress, un assistant vient votre aide pour la cration de nouvelles prsentations. Pour faire ses premiers pas dans Impress, cet assistant est plutt pratique. Choisissez la premire tape Prsentation vierge, slectionnez la seconde larrire-plan qui vous convient et concluez le processus en cliquant sur le bouton Crer. Si lassistant, la longue, vous parat pesant, vous pouvez dsactiver son afchage automatique dans la bote de dialogue Outils > Options > Impress > Gnral. Le travail de cration dune nouvelle prsentation consiste en fait structurer les pages (diapositives) de la prsentation et y insrer texte et images. Pour crer une nouvelle diapositive, choisissez Insertion > Diapo ou cliquez sur le bouton correspondant dans la barre doutils.

128

LINUX

Pour choisir la mise en page de la diapo, il vous suft de cliquer sur licne correspondante dans le panneau Mise en page qui se trouve droite de la fentre (voir Figure 8.2). Cette mise en page dtermine la structure globale de la page. Le panneau de droite de la fentre (panneau des tches) vous permet non seulement de dnir la mise en page de la diapositive en cours, mais galement de grer des transitions et animations ou de dnir des pages matresses.

Figure 8.2
La fentre Impress standard.

Les mises en page prdnies sont en fait des variations de structures constitues de quatre lments de base : titre, sous-titre, texte (ou plan) et objets insrer (images, tableaux Calc, etc.). Avant de pouvoir saisir un texte dans un cadre, vous devez cliquer sur ce cadre. Pour les listes puces, il existe une particularit : si vous placez le curseur en dbut de ligne ou que vous slectionniez plusieurs lignes, vous pouvez modier le niveau dindentation 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 modies en consquence. Pour saisir un texte sans puce, cliquez sur le bouton (Ds)activer les puces dans la barre doutils. Le panneau de gauche de la fentre vous permet de naviguer rapidement dune diapositive lautre. Vous pouvez par ailleurs y dnir pour chaque page un intitul plus parlant : pour ce faire, cliquez sur la diapositive concerne du bouton droit de la souris et choisissez Renommer la diapo.
Visionner le diaporama

Pour dmarrer la prsentation, il vous suft dappuyer sur la touche F5. Ds que la prsentation est lance, vous pouvez la parcourir laide des touches Entre, Espace ou des ches du clavier. Un simple clic de souris vous amne la page suivante, le bouton droit de la souris, la page prcdente. Echap met n la prsentation en cours. La combinaison de touches Maj+Ctrl+F5 permet dafcher la fentre de navigation en cours de prsentation, ce qui est utile si vous souhaitez passer une diapositive ultrieure sans devoir parcourir toutes les pages intermdiaires. Normalement, le changement de page ncessite un clic de souris ou une touche du clavier. Pour automatiser le passage la diapositive suivante, choisissez la vue Trieuse de diapositives. Dans le panneau des tches, choisissez alors le domaine Transition et activez-y loption

OPENOFFICE

129

Mise en forme

Pages matresses

Arrire-plan

Animations

Impression

Export PDF

Automatiquement aprs : vous pouvez alors dnir la dure dafchage de la diapositive pour chaque page. Si cette dure doit tre identique pour toutes les diapositives, cliquez sur le bouton Appliquer toutes les diapos. La mise en forme des textes et la gestion de larrire-plan pour lensemble des diapositives suivent des rgles diffrentes de celles de Calc et de Writer. Vous devez en particulier vous familiariser avec lutilisation des styles prdnis. Ceux-ci sont fortement lis 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 diffrents niveaux de puces : pour en changer lapparence, placez-vous en dbut de ligne et utilisez la touche Tab. Les pages matresses dterminent lapparence commune toutes les diapositives dune prsentation : arrire-plan, taille et couleur des polices, etc. Vous pouvez dnir ces paramtres pour chaque diapositive mais il est plus efcace de les tablir pour lensemble de la prsentation par le biais des pages matresses. Pour slectionner la page matresse utiliser, il vous suft de cliquer dessus. Pour modier la prsentation de la page matresse, passez en mode ddition grce Afchage > Arrire-plan > Masque des diapositives (autre terme pour dsigner les pages matresses). Ce masque prsente lensemble des styles utiliss dans la prsentation, et chaque modication apporte ici sera rpercute sur lensemble du document. Larrire-plan est normalement commun toutes les diapositives dune prsentation. Pour choisir un arrire-plan, le plus simple est de passer par la bote de dialogue Format > Page > Arrire-plan, et ce pour une diapositive individuelle ou pour lensemble de la prsentation grce la page matresse. La bote de dialogue vous donne le choix entre une couleur simple, un dgrad, des hachures ou une image Bitmap. Impress vous permet de mettre en place des effets danimation sur deux niveaux : dune part pour la transition entre deux diapositives, dautre part pour lafchage dobjets au sein dune page. Pour congurer les transitions entre diapositives, utilisez la section Transitions du panneau des tches ; pour ajouter des animations dans une diapositive, passez par la section Animation personnalise. Limpression des prsentations est plutt 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 dimpression : Contenu dnit ce qui doit tre imprim. Dessin inclut les diapositives de la prsentation. Notes permet dimprimer les notes associes aux diapositives, Brochure, de prsenter plusieurs pages par feuille (par dfaut, 4). Enn, Plan permet dafcher la vue Plan du diaporama. Qualit dnit la qualit dimpression de diapositives couleur sur une imprimante noir et blanc. Loption Noir et blanc imprime, indpendamment de tout autre paramtrage, le texte en noir sur fond blanc. Options de la page permet doptimiser lchelle des diapositives (Adapter au format de la page) ou limpression de brochures plier (Prospectus). Pour lancer lexport PDF, passez par les menus Fichier > Exporter au format PDF ou, plus rapidement, par le bouton PDF qui gure dans la barre doutils. Impress gnre alors un chier PDF comprenant sur chaque page une diapositive de la prsentation.

130
8.5

LINUX

Bases de donnes (OpenOffice Base)

Le composant Base est une nouveaut dOpenOfce 2. Cest aussi la raison pour laquelle ce composant est loin davoir atteint la maturit des autres composants dOpenOfce. Sur certaines distributions, Base doit mme tre install comme paquetage complmentaire distinct pour que les fonctionnalits de base de donnes soient effectivement disponibles. Quoi quil en soit, Java doit tre pralablement install, car de nombreuses fonctionnalits daccs aux bases de donnes reposent sur lui.

Figure 8.3
Le composant de gestion de bases de donnes Base.

Assistant de base de donnes

Tables

Base vous permet aussi bien de crer une nouvelle base de donnes dans le format propre OpenOfce que dtablir une connexion une base de donnes existante (en particulier des bases MySQL). Pour ouvrir un nouveau projet de base de donnes, passez par les menus Fichier > Nouveau > Base de donnes. La premire bote de dialogue vous propose soit de crer une nouvelle base, soit douvrir un chier existant, soit daccder une base existante. Les botes de dialogue suivantes dpendent du choix effectu ici et vous permettent au besoin de tester la conguration de votre ordinateur (un pilote spcial est par exemple ncessaire pour se connecter une base de donnes MySQL : lassistant peut vous servir vrier que ce pilote est bien install). Ce nest quune fois toutes les tapes de lassistant parcourues que la fentre de Base apparat. Elle intgre les quatre modules Tables, Requtes, Formulaires et Rapports dans la fentre principale. Si vous avez ouvert un chier existant ou accd une base de donnes existante, les tables correspondantes apparaissent galement sur cette page. Vous devrez en revanche crer vous-mme les requtes et autres objets de bases de donnes. Vous pouvez afcher le contenu de la table courante en slectionnant Document dans la liste droulante qui apparat en bas droite de la fentre. Le module Tables fournit une liste de toutes les tables et vues disponibles. Diverses possibilits ddition 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, insrer, modier ou effacer des donnes. Et galement slectionner

OPENOFFICE

131

Requtes

Formulaires, rapports et fonctionnalits additionnelles

des lignes dans la table laide des touches Ctrl ou Maj pour les copier dans le pressepapiers ou les insrer par glisser-dposer dans dautres documents OpenOfce. Crer une nouvelle table. Vous pouvez crer une nouvelle table, au choix, laide dun diteur simple (mode bauche) ou laide dun assistant. Lassistant vous permet de choisir parmi diffrentes congurations de tables prdnies, ce qui peut vous conomiser un temps certain. Personnaliser une table. Le menu contextuel Modier vous permet daccder la vue dune table en mode bauche. Vous pouvez alors y insrer des colonnes, en modier ou en supprimer, etc. Copier des donnes dans le presse-papiers. Lentre de menu contextuel Copier copie lensemble des donnes de la table courante dans le presse-papiers. Il est alors possible dinsrer ces donnes dans dautres documents OpenOfce. Crer une nouvelle vue. Ce point conduit un diteur de requtes pour crer une nouvelle requte. Une nouvelle vue sera alors cre partir de cette requte et stocke dans la base de donnes. Supprimer une table ou une vue. Le menu contextuel vous permet aussi deffacer des objets. Attention au fait que, si vous avez tabli une connexion sur une base de donnes existante et que vous en effaciez une table, celle-ci est irrmdiablement dtruite : lopration seffectue bien dans la base et non sur une copie locale des donnes ! Le module Requtes est llment le plus intressant de Base : il vous permet de crer de nouvelles requtes laide dun assistant ou en mode bauche. Lassistant nest toutefois adapt que pour construire des requtes traitant des donnes qui proviennent dune unique table. Le mode bauche est donc en gnral plus adapt. Dans la fentre de cration de requte, vous pouvez insrer par double-clic toutes les tables dont les donnes doivent tre utilises dans la requte. Ltape suivante consiste transfrer par glisser-dposer tous les champs de jointure entre les tables. Les modules Formulaires et Rapports, ainsi que le menu Outils, vous donnent accs de nombreuses fonctionnalits supplmentaires que nous ne pouvons quefeurer ici. Le problme est que ces fonctionnalits sont relativement nouvelles et manquent donc de maturit, ce qui peut conduire des difcults mme dans des situations trs simples. Le module Formulaires vous permet de crer des formulaires de saisie et ddition. De tels formulaires facilitent la saisie et ldition des donnes de la base, plutt que travailler directement dans les tables. Pour la cration de formulaires, Base vous offre le choix entre le mode bauche et un assistant (recommand pour les utilisateurs dbutants). Le module Rapports vous permet de dnir un rapport de base de donnes laide dun assistant. Grce aux rapports, vous prsenterez de manire plus agrable une table, une vue ou une requte. Les rapports ne peuvent travailler que sur les donnes provenant dun mme objet de base de donnes. Si vous souhaitez gnrer un rapport sur des donnes provenant de plusieurs tables, vous devez tout dabord crer une requte approprie puis en extraire un rapport. Il nest pas possible de modier ultrieurement un rapport : le menu contextuel Modier ouvre certes le rapport dans Writer, mais vous ne pouvez y apporter que des modications mineures de mise en page.

132

LINUX

Vue des sources de donnes

Outils > Relations devrait vous conduire un diteur dans lequel vous pouvez paramtrer les jointures entre les tables dune base de donnes si jamais Base ne les reconnat pas par lui-mme. Ce menu conduit toutefois dans divers cas une erreur du type "La base de donnes ne supporte pas les relations !". Outils > Gestion des utilisateurs afche une bote de dialogue pour la gestion des utilisateurs dans MySQL, mais dont les informations sont gnralement errones. Mon exprience a montr que cette bote de dialogue cause plus de mal que de bien : tenez-vous-en donc lcart ! Indpendamment du composant Base, il existe dans OpenOfce une vue des sources de donnes. Vous pouvez faire apparatre ou disparatre cette vue laide de la touche F4 ou du menu Afchage > Sources de donnes et ainsi insrer des informations depuis des bases de donnes externes dans Calc, Writer, etc. Cette vue prsente toutes les sources de donnes connues de Base. Pour dnir une nouvelle source de donnes, passez par le menu Fichier > Nouveau > Base de donnes. Vous pourrez au besoin dnir la correspondance entre le nom de la source de donnes et le chier Base grce la bote de dialogue Outils > Options > Base > Bases de donnes. Dans cette vue des sources de donnes, vous pouvez slectionner une table ou une requte et travailler par double-clic. Vous insrerez la table complte ou certaines lignes seulement (pralablement slectionnes avec la souris et les touches Ctrl ou Maj) dans une feuille de calcul ou un document texte.

8.6

Programmation de macros

Gestion du code VBA

Protection contre les virus

OpenOfce est dot depuis longtemps dun langage de programmation comparable Basic (autrefois nomm StarBasic). Vous pouvez intgrer du code en langage Basic nimporte quel chier OpenOfce. Le dialecte Basic dOpenOfce nest toutefois pas compatible avec le clbre VBA de MS-Ofce. Laccs aux divers objets dOpenOfce (documents, paragraphes, feuilles de calcul, cellules, etc.) intervient par le biais de lAPI (Application Programming Interface) StarOfce. LAPI peut tre utilise aussi bien avec du code Basic quavec divers autres langages de programmation (par exemple Java ou C++). Cette section se contente de dresser les grandes lignes de la programmation Basic pour OpenOfce. Vous trouverez plus dinformations sur la programmation de macros en Basic dans le manuel en ligne ainsi que sur les sites web suivants : http://scripting.openofce.org/ ; http://api.openofce.org/ ; http://udk.openofce.org/ ; http://www.pitonyak.org/oo.php/ OpenOfce introduit normalement dans le code VBA, limport de documents MS-Ofce, des commentaires de manire rendre le code inoprant. lexport, ces commentaires sont supprims de manire permettre nouveau lutilisation du code VBA sous MS-Ofce. Calc constitue toutefois une exception : grce une extension dveloppe par Novell, les versions actuelles de Calc peuvent excuter directement du code VBA (ce qui nest toutefois pas exempt de problmes). On ne sait pas encore si dautres composants OpenOfce deviendront compatibles avec VBA lavenir. Les macros offrent des possibilits dutilisation trs intressantes mais peuvent galement servir programmer des virus ou tre employes pour dautres buts peu louables (les macros ayant accs au systme de chiers dans les limites autorises par les droits daccs,

OPENOFFICE

133

Enregistrer une macro

Excuter des macros Raccourcis clavier Modifier une macro

cela reprsente par exemple un danger potentiel : nexcutez jamais une macro dorigine inconnue si vous utilisez OpenOfce en tant quutilisateur root !). louverture dun document contenant du code Basic, OpenOfce demande systmatiquement si le code doit tre excut. Vous pouvez dailleurs indiquer si le rpertoire do provient le chier est considr comme sr, ce qui conduit ne plus afcher lavertissement pour tout chier de ce rpertoire. Il est possible de modier tous ces paramtres (et dautres) par le biais de la bote de dialogue Outils > Options > OpenOfce > Scurit. Lavertissement apparat galement limport de chiers MS-Ofce, mme sil na gure de sens vu que le code VBA dans son ensemble est automatiquement comment. Le menu Outils > Macros > Enregistrer une macro vous permet de consigner dans une nouvelle macro toutes les oprations conduites partir de ce moment. Lenregistrement dmarre automatiquement et se termine lorsque vous cliquez sur le bouton Terminer lenregistrement. Vous devez ensuite indiquer dans quel chier (parmi tous ceux ouverts) la macro doit tre enregistre. Dans le chier concern, choisissez la bibliothque de votre choix (il peut en exister plusieurs mais Standard est toujours prsente) puis renseignez le nom choisi pour le module. La structuration en bibliothques et modules permet de faciliter lorganisation dun code volumineux. Vous pouvez galement enregistrer les macros dans Mes macros plutt que dans les chiers : celles-ci sont alors toujours disponibles, indpendamment du chier OpenOfce actuellement ouvert. En interne, ces macros sont enregistres sous la forme dun chier de texte dans ~/.openoffice/user/basic/Standard. Outils > Macros > Excuter la macro vous conduit une bote de dialogue o vous pouvez slectionner la macro de votre choix parmi toutes celles disponibles et lancer son excution. La bote de dialogue Outils > Personnaliser > Clavier vous permet dassocier chaque macro un raccourci clavier. Mes macros y sont classes dans User. Si vous souhaitez consulter ou modier le code dune macro, choisissez la macro dans Outils > Macros > Grer les macros et cliquez ensuite sur le bouton diter. Vous tes alors conduit lenvironnement de dveloppement Basic, o vous pouvez choisir la bibliothque et le chier souhaits. Vous y crerez galement vos propres macros.

8.7
Sun StarOffice

Alternatives OpenOffice

OpenOfce est un rejeton de StarOfce. Ce dernier est une suite bureautique dveloppe il y a dj plusieurs annes par la socit Star Division, en Allemagne. En 1999, Sun a rachet StarOfce et a, par la suite, rendu librement disponible le code source de StarOfce. Depuis, aussi bien des employs de Sun que dinnombrables programmeurs bnvoles travaillent son dveloppement. Il existe lheure actuelle plusieurs versions de la suite bureautique : les deux plus populaires sont la variante Open Source prsente dans ce chapitre, OpenOfce (sous licence LGPL), et son homologue commerciale Sun StarOfce. Ces deux versions sont de trs loin les plus compatibles lune avec lautre, StarOfce intgre toutefois des composants supplmentaires (entre autres une meilleure correction orthographique, des fontes supplmentaires, des cliparts, etc.). De surcrot, une assistance traditionnelle est disponible avec StarOfce, suivant le

134

LINUX

KOffice

Gnome Office

CrossOver Office et VMware

Scribus

souhait de nombreuses socits. Avec OpenOfce, lorsque vous rencontrez un problme, Internet est a priori votre seule source daide. Ces bonus ne sont naturellement pas gratuits. Il existe toutefois toujours une version dvaluation gratuite tlcharger sur le site de StarOfce : http://wwws.sun.com/software/star/starofce KOfce est la suite bureautique de lenvironnement KDE. Les composants essentiels (kword, kspread et kpresenter) ont atteint une certaine maturit. Il existe de nombreux autres composants (par exemple pour concevoir des diagrammes ou grer des bases de donnes) qui nen sont encore qu leurs balbutiements. De faon gnrale, la compatibilit avec Microsoft Ofce est moindre que celle dOpenOfce. Cela ne concerne pas uniquement limport et lexport de chiers, mais galement le paradigme global dutilisation. On remarque, avec la conception KOfce, quil sagit dun dveloppement entirement nouveau (ce qui va de pair avec de nombreux avantages). La version actuelle de KOfce prend en charge, outre un format de chier propre, le format OpenDocument dOpenOfce / StarOfce. La force de KOfce rside dans son intgration impeccable lenvironnement KDE. La collaboration entre composants est galement remarquable et se fait particulirement sentir lintgration de diffrents types de documents dans un autre. En comparaison avec OpenOfce, les composants KOfce reposent sur des programmes notoirement plus petits, qui se lancent plus rapidement et qui sont moins exigeants vis--vis des ressources matrielles. http://www.kofce.org/ Au contraire de ceux dOpenOfce et de KOfce, les composants de Gnome Ofce sont des programmes individuels qui nont que peu voir entre eux. Il nexiste ni format de chier uni ni un paradigme dutilisation commun. Le tableur gnumeric est extrmement avanc, il se distingue par une grande compatibilit avec Microsoft Excel et propose de trs nombreuses fonctionnalits auxiliaires pour les mathmatiques nancires. Le programme de traitement de texte abiword est galement trs utilisable. http://www.gnome.org/gnome-ofce/ Malgr les nombreux paquetages bureautiques Linux, il existe des utilisateurs qui ne peuvent ou ne veulent renoncer la suite Microsoft Ofce dorigine. La solution qui semble tre la plus confortable dans ce cas est propose par la socit CodeWeaver sous la forme du produit commercial CrossOver. Il sagit non pas dune suite bureautique proprement parler mais dune version spciale de lmulateur Windows WINE amliore au point que la plupart des composants de Microsoft Ofce 97, 2000, XP et 2003 peuvent tre installs et utiliss sans problme. Une autre alternative consiste congurer une machine virtuelle sous Linux laide de KVM, Xen, VirtualBox ou VMware et dy installer Windows. Cette solution propose une bien meilleure compatibilit mais elle est plus coteuse. Vous aurez besoin de licences pour Microsoft Windows, Microsoft Ofce, sans oublier VMware. Vous trouverez partir du Chapitre 31 des astuces concrtes pour les logiciels de virtualisation cits ici. Scribus est, lheure actuelle, le logiciel de publication le plus abouti de Linux. Si vous souhaitez concevoir une brochure, un dossier, un journal simple, vous devriez jeter un coup dil ce programme. Il est livr avec la majorit des distributions Linux. Vous en trouverez la dernire version ainsi que la documentation ladresse suivante : http://www.scribus.net/

Appareils photo numriques, numrisation, gestion des photos


Ce chapitre dcrit comment, sous Linux, transfrer des images depuis un appareil photo numrique ou un scanner et comment grer vos photographies. Pour ces trois tches et, en particulier, pour la gestion des photos, il existe de trs nombreux programmes. Aprs quelques informations introductives sur les appareils photo numriques et la numrisation, je prsenterai un peu plus en dtail les logiciels suivants : gThumb, import de photos et gestion dimages pour Gnome ; digiKam, import de photos et gestion dimages pour KDE ; F-Spot, gestion dimages base sur la bibliothque MONO ; KPhotoAlbum, gestion dimages pour KDE ; XSane, interface de numrisation indpendante de lenvironnement de bureau. Pour le choix du programme, ne vous limitez pas aux outils par dfaut proposs par votre environnement de bureau ! Rien ninterdit, par exemple, dinstaller sous Gnome un programme KDE pour numriser des images ou de mettre en place sous KDE le programme F-Spot prvu pour lunivers Gnome.

Programmes supplmentaires

La place manque ici pour voquer tous les logiciels de gestion et de traitement de photos. Le tableau suivant vous donne un aperu rapide de quelques programmes disponibles.
Nom eog Feh GnomeScan Gqview Gwenview Kooka Kuickshow Picasa xv Site web http://www.gnome.org/projects/eog/ http://linuxbrit.co.uk/feh/ http://live.gnome.org/GnomeScan http://gqview.sourceforge.net/ http://gwenview.sourceforge.net/ http://kooka.kde.org http://kuickshow.sourceforge.net/ http://picasa.google.fr/ http://www.trilon.com/xv/ Description afficheur de photos Gnome, peu de fonctionnalits afficheur de photos orient ligne de commande interface de numrisation pour Gnome, pas encore arrive maturit afficheur de photos Gnome afficheur de photos KDE interface de numrisation pour KDE afficheur de photos KDE, plus maintenu gestionnaire dimages de Google, gratuit mais non open-source afficheur de photos antdiluvien, non open-source

Pour grer vos photos, vous pouvez naturellement aussi faire appel votre gestionnaire de chiers (Nautilus, Konqueror). Toutefois, ces programmes proposent lheure actuelle moins de fonctionnalits de traitement et doptions de prsentation. Si vous souhaitez approfondir le sujet de la gestion des images et aller au-del de loptimisation du contraste ou dun redimensionnement de vos photos, vous devriez jeter un coup

136

LINUX

dil au prochain chapitre. Nous y prsenterons trs rapidement Gimp, le programme de traitement dimages le plus avanc sous Linux. Il propose des fonctionnalits trs comparables celles dAdobe Photoshop ! Si vous cherchez automatiser la conversion ou certains traitements sur de grands volumes dimages, le Chapitre 15 devrait vous tre protable. La quasi-totalit des programmes prsents ici comptent des fonctionnalits dimpression, dont les limitations sont toutefois rapidement atteintes : en particulier, limpression sans bord sur du papier photo ou limpression de plusieurs photos sur une mme page posent frquemment des problmes. Le logiciel gnome-photo-printer (malheureusement pas encore totalement arriv maturit) peut vous aider sur ce point.

9.1

Appareils photo numriques

Cette section traite non pas de lutilisation des appareils photo numriques, mais du transfert des images depuis lappareil vers lordinateur Linux. La plupart des appareils photo utilisent pour cela un cble USB. Le protocole de transfert des donnes est toutefois loin dtre standard parmi les fabricants dappareils photo. Ainsi, on peut rencontrer : Une connexion USB de type lecteur. Cest le cas le plus simple pour le transfert de donnes. Linux considre alors lappareil photo comme un disque dur ou une cl USB. Le protocole PTP. De nombreux appareils photo prennent galement en charge le protocole PTP (Picture Transfer Protocol). Celui-ci propose non seulement des commandes pour le transfert des photos, mais galement des fonctionnalits de pilotage (par exemple pour dclencher une photographie depuis lordinateur). Un protocole propritaire. Il existe enn certains modles dappareils photo utilisant uniquement un protocole propritaire. Parmi ces appareils, bon nombre de modles populaires sont pris en charge sous Linux, mais ce nest pas le cas de tous. Mme si votre appareil photo nest pas gr par Linux, le transfert des images reste possible. Vous aurez pour cela besoin dun lecteur de cartes externe qui pourra alors tre vu par Linux comme un disque dur externe. Cette mthode a par ailleurs lavantage de ne pas solliciter la batterie de votre appareil photo. Pour le transfert des images, vous aurez le choix entre diffrents programmes Linux suivant le protocole utilis. Pour les appareils de la premire catgorie, nimporte quel gestionnaire de chiers peut faire laffaire : lappareil doit toutefois pralablement tre mont dans le systme de chiers. Dans de nombreuses distributions, une fentre du gestionnaire de chiers apparat automatiquement au branchement de lappareil photo ou du lecteur de cartes, ainsi quune icne de raccourci sur le bureau. Si ce nest pas le cas, vous devrez monter manuellement lappareil photo dans larborescence des rpertoires en tant que lecteur USB (voir le Chapitre 23). Le navigateur universel de KDE, Konqueror, est galement en mesure dinterprter directement le protocole PTP. Il vous suft pour cela de donner ladresse camera:/.
gphoto2

Pour communiquer avec les appareils photo PTP ou avec ceux utilisant un protocole propritaire, la bibliothque gphoto2 met disposition toutes les fonctionnalits requises. Vous pouvez utiliser cette bibliothque directement par le biais de la commande ponyme.

APPAREILS PHOTO NUMRIQUES, NUMRISATION, GESTION DES PHOTOS

137

Images RAW

Par exemple, la commande gphoto2 --auto-detect tente de reconnatre lappareil photo branch et afche les informations correspondantes. gphoto2 --get-all-thumbnails transmet vers le rpertoire local des aperus de taille rduite de toutes les images stockes dans lappareil photo. Il est intressant de noter quavec de nombreux appareils photo gphoto2 -capture-image permet galement de prendre une photographie en ligne de commande, de sorte que lappareil photo peut tre utilis en tant que webcam ou pour effectuer une surveillance. Vous trouverez davantage dinformations relatives gphoto2 sur le site web suivant : http://gphoto.sourceforge.net/ En pratique, il nest toutefois pas courant dutiliser directement les fonctions de gphoto. gThumb et digiKam constituent des interfaces graphiques confortables pour Gnome et KDE et facilitent grandement limport des images. Ces deux programmes seront rapidement prsents dans la suite. La plupart des appareils photo numriques enregistrent les images au format JPEG, qui reprsente un bon compromis entre qualit de limage et taille du chier. Certains appareils permettent galement denregistrer les images dans un format dit RAW. Il sagit de formats propritaires garantissant quaucune information relative limage ne sera perdue. Toutefois, les chiers RAW sont gnralement trs volumineux et ne peuvent tre ouverts quavec des logiciels spciaux. Assez peu de logiciels Linux dafchage ou de gestion des photographies parviennent grer correctement les chiers RAW. La commande dcraw issue du paquetage ponyme vous permet de convertir manuellement les chiers RAW vers dautres formats. Si vous travaillez avec Gimp, le paquetage complmentaire gimp-dcraw fournit un confort supplmentaire. Gimp peut alors charger directement les chiers RAW de la majorit des fabricants dappareils photo. Vous trouverez davantage dinformations sur dcraw la page suivante : http://www.cybercom.net/~dcofn/dcraw/

9.2

Numrisation

Configuration de SANE

Les scanners existant lheure actuelle sont, pour la plupart, connects par une interface USB ; les anciens modles utilisaient galement les ports parallle ou SCSI. Fondamentalement, Linux peut prendre en charge ces trois types de connexions, mais cest le modle de scanner qui dtermine sil pourra tre gr correctement par Linux ou non. Renseignez-vous imprativement au moment de lachat pour savoir si lappareil est compatible avec Linux : http://www.sane-project.org/sane-supported-devices.html Cest le paquetage SANE (Scanner Access Now Easy) qui assure laccs au scanner. Dans de nombreux cas, votre scanner sera reconnu ds le branchement par le programme de numrisation (XSane ou Kooka, par exemple). Si ce nest pas le cas, vous devrez pralablement congurer SANE. Sur certaines distributions, vous disposez doutils de conguration pour vous aider dans cette tche (par exemple, sur SUSE, le module YaST Matriel > Scanner).

138

LINUX

Si aucun outil de conguration de ce type nest disponible, vous devrez modier manuellement le chier de conguration situ dans le rpertoire /etc/sane.d/*. Ce rpertoire contient un chier pour chaque fabricant de scanners, dans lesquels vous ne devriez normalement trouver que quelques entres chaque fois. Les quelques lignes suivantes montrent par exemple le contenu du chier epson.conf. Elles sufsent pour reconnatre tous les scanners USB et SCSI de la marque Epson pris en charge par le systme.
# /etc/sane.d/epson.conf usb scsi EPSON scsi "EPSON SC"

Les appareils trs rcents peuvent poser des problmes si leur numro didentiant ne gure pas encore dans la base de donnes USB de la base de matriel pour Linux. Dans de tels cas, vous devrez dterminer le numro didentiant laide de la commande lsusb puis, comme dans lexemple qui suit, ajouter une ligne dans le chier de conguration 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 ... # Complment 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 dsormais reconnatre 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 backends manpage. user$ scanimage -L device `epson:libusb:002:002 is a Epson Perfection1240 flatbed scanner

Sane ne prend en considration que les fichiers de fabricants figurant dans /etc/sane.d/dll.conf . Lorsque SANE ne reconnat pas votre scanner alors quil doit en principe le prendre en charge (vrifiez bien ce point), vous devriez jeter un coup dil dll.conf et y vrifier si le nom du fabricant de votre scanner nest pas comment.
Numriser avec SANE

Normalement, vous ne communiquerez pas directement avec la bibliothque SANE pour numriser 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 numrisation par un script, vous trouverez la commande scanimage dans le paquetage sane-utils.

APPAREILS PHOTO NUMRIQUES, NUMRISATION, GESTION DES PHOTOS

139

9.3

gThumb

Import de photographies

Le programme gThumb tait, jusqu la version 2.20 de Gnome, loutil par dfaut pour le transfert de photos depuis des appareils numriques ainsi que pour la gestion des images. Les forces de ce logiciel rsident dans la gestion systmatique des images quil propose : vous pouvez commenter, classer et insrer dans des catalogues toutes les images. Ces informations complmentaires peuvent par ailleurs faire lobjet de recherches. Lorsque lenvironnement de bureau Gnome est correctement congur et que votre appareil est reconnu, une bote de dialogue apparat automatiquement lorsque vous branchez lappareil photo pour vous demander si vous souhaitez importer les images. Choisir Importer des photos lance alors le programme gThumb. Suivant le type dappareil apparat alors soit une bote de dialogue, soit un aperu des images disponibles (dont la gnration peut prendre un certain temps). Pour transfrer les images depuis laperu vers le disque dur local, passez par le menu Fichier > Importer des photos. Dans la bote de dialogue dimport, slectionnez les photos importer laide de la souris ou de la combinaison de touches Ctrl+A (voir Figure 9.1). Par dfaut, gThumb enregistre les photos importes dans un nouveau rpertoire de votre dossier personnel, dont le nom est constitu partir de la date et de lheure courantes. En revanche, si vous renseignez une valeur dans le champ Film, les images seront enregistres dans le dossier photos/ nom_du_film au lieu de cet emplacement par dfaut. Vous pouvez ensuite affecter les photos importes une ou plusieurs catgories.

Figure 9.1
Importer des photos avec gThumb.

140

LINUX

En option, vous pouvez indiquer si les images doivent tre effaces de lappareil aprs leur transfert et si les noms de chiers originaux doivent tre conservs. Normalement, gThumb attribue aux chiers 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 camra steigne (par mesure dconomie dnergie) au cours du transfert. Sensuivent des messages derreur, des fichiers dimages dfectueux ou vides. Une solution : effacez les fichiers problmatiques de votre ordinateur, rallumez lappareil photo et importez nouveau les images dont le transfert a t interrompu. Avec de nombreux appareils photo, vous pouvez contourner le mode dconomie dnergie en appuyant de temps autre sur un des boutons de lappareil durant le transfert. Si la bote de dialogue napparat pas automatiquement lorsque vous branchez un appareil photo (noubliez pas dallumer lappareil !), lancez le programme gThumb la main et passez par le menu Fichier > Importer des photos ; cliquez alors sur licne en forme dappareil photo et slectionnez vous-mme le modle de votre appareil. Si vous ne trouvez ni votre appareil ni un modle qui lui soit compatible dans la longue liste propose, essayez loption USB PTP Class Camera. Si cela ne donne aucun rsultat, cest que gThumb ne peut pas communiquer avec votre appareil. Dans ce cas, vous devrez lire directement le contenu de la carte mmoire laide dun lecteur de cartes.
Gestion des images

gThumb connat trois modes dafchage, parmi lesquels vous pourrez basculer laide des boutons correspondants, du menu Afchage ou des touches Alt+1 Alt+3 : Lafchage par dossiers. gThumb vous permet de slectionner, dans le panneau de gauche, un rpertoire du disque dur et afche dans la partie droite un aperu de toutes les photos quil contient (voir Figure 9.2). Lafchage par catalogue. gThumb prsente dans le panneau de gauche tous les catalogues et bibliothques dnis (dont nous parlerons davantage un peu plus loin) et, dans la partie droite, un aperu de toutes les photos sy trouvant. Lafchage par image. gThumb prsente une image en taille maximale. Les boutons Prcdent et Suivant ou les touches Page prcdente et Page suivante vous permettent de passer dune photo lautre. Vous pouvez appliquer des traitements (correction des couleurs, redimensionnement, etc.) limage courante grce aux commandes du menu Image.

Figure 9.2
Affichage par dossier avec la sous-fentre dinformations dtailles.

APPAREILS PHOTO NUMRIQUES, NUMRISATION, GESTION DES PHOTOS

141

Lafchage par dossier et par catalogue est adapt pour slectionner et copier/dplacer/modier plusieurs images. Ces vues fournissent galement un bon aperu lorsquil y a beaucoup dimages. Afchage > Afcher/Cacher > Aperu de limage vous permet douvrir une sousfentre supplmentaire prsentant au choix ( laide des icnes gurant ct du nom du chier) un aperu de plus grande taille pour limage slectionne, les proprits EXIF du chier (donnes de luminosit, contraste, etc.) ou encore un commentaire optionnel (voir Figure 9.2).
Orienter correctement les photographies

La premire tape dans le traitement dun grand nombre de photos consiste gnralement corriger, le cas chant, lorientation des images. Suivant le niveau de sophistication de votre appareil photo, cela peut aller trs vite ou ncessiter un certain travail manuel : Tourner automatiquement les images. De nombreux appareils photo enregistrent, en mme temps que la photo, la position dans laquelle celle-ci a t prise. Si cest le cas de votre appareil, slectionnez lensemble des images du dossier courant avec les touches Ctrl+A puis excutez lopration 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 ltape prcdente na aucun effet, vous devrez intervenir manuellement et avez pour cela le choix entre deux manires de procder. La mthode la plus simple consiste slectionner nouveau lensemble des photos par le biais de Ctrl+A, puis dexcuter Outils > Pivoter les images. Vous pouvez alors corriger lorientation de limage courante et enregistrer la modication laide du bouton Appliquer. Limage suivante apparat alors dans la bote de dialogue. Pour les images qui nont pas besoin dtre corriges, cliquez sur Appliquer sans pivoter pralablement limage. De cette manire, vous parcourez lensemble des images et corrigez celles qui le ncessitent. Il est toutefois plus efcace de slectionner pralablement toutes les images devant subir une rotation identique (par exemple 90 droite). Appelez nouveau Outils > Pivoter les images et corrigez la premire image. Avant de cliquer sur le bouton Appliquer, activez loption Apply to all images (qui devrait, de fait, sintituler Appliquer toutes les images slectionnes). La rotation des images au format JPEG seffectue sans la moindre perte de qualit. Normalement, toute modication une image JPEG implique une lgre dgradation, car les images doivent tre compresses chaque enregistrement. Cette rgle nest toutefois pas valable pour les rotations dun facteur multiple de 90, grce un algorithme intelligent.

Catgories, commentaires, catalogues et bibliothques

Il est fondamentalement judicieux denregistrer les images correspondant des thmes diffrents dans des rpertoires ou sous-rpertoires ddis (par exemple photos/2007/Nol ou photos/2008/Vacances_au_Japon). Ce systme de regroupement simple ne suft toutefois plus pour retrouver rapidement une photo lorsque le nombre total de celles-ci atteint des proportions importantes. gThumb propose par consquent dautres solutions pour identier les images. Cela implique naturellement des efforts supplmentaires de votre part, mais pour lesquels vous serez rcompens ds que vous utiliserez pour la premire fois dition > Search. Catgories. Chaque image peut tre affecte une ou plusieurs catgories. Pour ce faire, slectionnez les images concernes, excutez dition > Catgories et choisissez la

142

LINUX

ou les catgories concernant les images. gThumb connat un certain nombre de catgories standard (anniversaire, famille, vacances, etc.) que vous complterez par vos propres catgories. Commentaires. dition > Comment vous permet denregistrer un texte court relatif aux images slectionnes. Catalogues. Un catalogue fonctionne comme une liste dimages qui, en ralit, peuvent tre enregistres dans des rpertoires diffrents. Pour dnir un nouveau catalogue, activez la vue Catalogue et ouvrez ensuite Fichier > Nouveau catalogue. Revenez ensuite la vue par dossiers, slectionnez quelques images et excutez dition > Ajouter au catalogue. Les catalogues peuvent sembler identiques des rpertoires, mais ils se comportent diffremment. Les images ne sont pas copies lors de linsertion un catalogue. Au lieu de cela, le chemin des images slectionnes est ajout la liste dlments du catalogue. Les catalogues offrent donc une mthode de regroupement dimages respectueuse de lespace disque. Laide en ligne compare un catalogue gThumb une liste de lecture pour un lecteur audio. Bibliothques. Lorsque vous avez dni plusieurs catalogues, vous pouvez les rassembler au sein de bibliothques. Pour ce faire, excutez Fichier > Nouvelle bibliothque en vue par dossiers. Cliquez ensuite du bouton droit de la souris sur un catalogue et slectionnez Dplacer, pour laffecter une bibliothque.
Les informations relatives aux catgories, commentaires, catalogues et bibliothques sont enregistres non pas dans les fichiers dimage directement mais dans des fichiers complmentaires. Par consquent, ces donnes ne peuvent tre utilises que par gThumb et pas par dautres programmes. La correspondance entre images et informations complmentaires est perdue lorsque les images sont renommes ou dplaces vers dautres rpertoires !
Traitement dimages

En vue image, gThumb peut galement raliser des oprations simples de traitement des images (redimensionner limage, optimiser la luminosit, supprimer les yeux rouges, etc.). Toutes les commandes correspondantes se trouvent dans le menu Image. gThumb propose encore diverses fonctionnalits que nous ne pouvons que mentionner ici faute de place : Le bouton Diaporama lance une prsentation automatique de lensemble des photos contenues dans le rpertoire courant. Le programme passe donc en mode plein cran. dition > Prfrences > Diaporama vous permet de xer la dure de prsentation des images, dactiver un mode alatoire, etc. La touche Echap met n au diaporama. Outils > Utiliser limage comme papier peint dnit limage en cours comme fond dcran. Outils > Convert Format gnre des copies des images slectionnes vers un autre format (JPEG, PNG, TGA ou TIFF). Outils > Change Date tablit la date de cration des images slectionnes une date particulire ou ramne cette valeur la date de cration originelle.

Fonctionnalits additionnelles

APPAREILS PHOTO NUMRIQUES, NUMRISATION, GESTION DES PHOTOS

143

Outils > Create Index Image gnre des images dindex pour les photos slectionnes. Le bouton Style vous permet de paramtrer diverses caractristiques des images dindex, par exemple le nombre dimages rduites par page (par dfaut, trois lignes et quatre colonnes), la taille des images rduites (par dfaut 128 128 pixels), etc. dition > Renommer permet de donner de nouveaux noms aux images slectionnes (par exemple suivant un format particulier tel que 001.jpg, 002.jpg, etc.). Fichier > Write To CD grave les images slectionnes ou la totalit du rpertoire courant sur un CD ou un DVD. La commande se contente de transmettre les images au gestionnaire de chiers.

9.4

digiKam

Import de photographies

Gestion des images

digiKam est un programme KDE aux multiples facettes et qui permet dimporter des photos depuis un appareil numrique, de grer les images et de raliser certains traitements de base. Comme gThumb, ce programme offre plusieurs moyens de classer les images. digiKam peut tre tendu au moyen dun systme de greffons. Grce ceux-ci, il peut travailler directement sur les chiers RAW, grer des prols de couleurs, appliquer divers ltres sur les images, etc. Au premier lancement du programme, vous devez dnir un rpertoire de base pour vos images (par dfaut, ~/Pictures. Au besoin, vous pouvez modier ultrieurement ce rpertoire par le biais de Conguration > Congurer digiKam > Albums. Avant de tenter le premier transfert de photos, vous devez procder une tape de conguration. Dans la plupart des cas, il suft de cliquer sur le bouton Dtecter automatiquement de la bote de dialogue Conguration > Congurer digiKam > Appareils photo. Lappareil apparat alors dans le menu intitul Appareil photo. Lorsque vous excutez Appareil photo > Nom_de_l_appareil ou Appareil photo > Nom_de_la_carte_mmoire, digiKam gnre un aperu de toutes les images. Le bouton Transfrer vous permet dimporter lensemble ou une slection des images dans le sous-rpertoire Nom_d_album du rpertoire de base. digiKam ne vous permet de grer que les images qui se trouvent dans le rpertoire de base. Vous devrez donc y copier toutes les images qui auraient t jusqu prsent stockes ailleurs (Album > Importer). digiKam dsigne chaque rpertoire du rpertoire de base comme un album. Alternativement, vous pouvez aussi rechercher des images en vue par date (voir Figure 9.3). Un clic de souris sur une image slectionne permet de lagrandir, un second clic vous ramne la vue par album. Les lments du menu Image vous permettent de modier ou dajouter divers commentaires, caractristiques et mots-cls supplmentaires pour limage. Ces donnes supplmentaires, qui seront trs utiles ultrieurement lors des recherches dimages, sont enregistres non pas directement dans les images mais dans le chier digikam3.db qui se trouve dans le rpertoire de base. Le panneau droit de la fentre principale vous permet de ltrer les images par tiquette.

144
Figure 9.3
Gestion des images avec digiKam.

LINUX

Pivoter les images

Traitement dimages

Fonctionnalits supplmentaires

Tant que lappareil enregistre lorientation des images dans les chiers EXIF, Image > Corriger lorientation EXIF devrait vous permettre de corriger lorientation pour toutes les images du rpertoire courant qui en auraient besoin. Si cela ne fonctionne pas, les combinaisons de touches Ctrl+Maj+Flche gauche ou Ctrl+Maj+Flche droite permettent de pivoter les images slectionnes de 90 vers la gauche ou vers la droite. En vue par dossiers, vous ne pouvez raliser que des oprations lmentaires (par exemple pivoter les images). Le menu contextuel dition vous offre toutefois des possibilits plus avances. digiKam afche alors limage dans une nouvelle fentre, o vous pouvez lencadrer, lui donner un titre, en optimiser les couleurs et la luminosit, y supprimer les yeux rouges, la redimensionner, etc. Les modications sont normalement enregistres directement dans le chier. Si vous ne souhaitez pas en perdre la version originelle, enregistrez la version corrige par le biais de Menu > Enregistrer sous. La plupart des fonctionnalits supplmentaires sont accessibles depuis le menu Outils. Vous pouvez y convertir ou modier par lot toutes les images slectionnes, lancer un afcheur en mode pleine page, exporter des images vers un iPod, etc. Le menu Album > Export prsente galement des fonctions supplmentaires. Vous y trouverez des commandes pour graver un CD de photos, transfrer des images vers ou depuis un serveur Flickr, gnrer une galerie HTML, etc. De trs nombreuses fonctionnalits de digiKam sont conues sous la forme de greffons KIPI (KDE Image Plugin Interface). Lorsque vous ne trouvez pas certaines fonctionnalits individuelles dans digiKam, vriez si les greffons sont installs et activs dans les botes de dialogue Conguration > Congurer digiKam > Modules externes KIPI et > diteur dimages.

APPAREILS PHOTO NUMRIQUES, NUMRISATION, GESTION DES PHOTOS

145

9.5

F-Spot

Le programme F-Spot (voir Figure 9.4) est le nouveau programme par dfaut pour la gestion des images depuis la version 2.22 de Gnome. Mes impressions quant ce programme taient plutt partages. Dun ct, F-Spot possde une interface bien adapte et quelques ides intressantes : par exemple, toute modication sur des images nest jamais enregistre directement dans le chier dorigine mais lest dans des "versions". Vous pouvez ainsi basculer tout moment entre la version dorigine et la version modie dune image et navez pas vous inquiter denregistrer par erreur des modications irrversibles dans loriginal. Lorganisation des images suivant un axe temporel est galement une particularit intressante, surtout lorsque le nombre dimages augmente.

Figure 9.4
Gestion dimages avec F-Spot.

Mais, dun autre ct, ce programme se distingue aussi par quelques lourdeurs : F-Spot ne peut grer que les images quil a pralablement "importes". Normalement, les images sont copies limport vers le rpertoire ~/Photos, o est cr un sous-rpertoire pour chaque date de cration de photos. Si vous avez dj organis vos images sur votre disque dur, vous pouvez renoncer toute copie physique lors de limport : dans ce cas, F-Spot enregistre diverses informations dans sa propre base de donnes (chier ~/.gnome2/f-spot/photos.db). On constate que F-Spot nest pas encore tout fait arriv maturit. Son utilisation peut se rvler irritante : il nexiste par exemple aucune fonction Annuler directe pour le traitement des images, non plus quune information claire indiquant sil existe plusieurs versions dune mme image. Les changements dafchage font constamment perdre de vue limage en cours. De surcrot, cest un programme exigeant en matire de ressources. Tant quil sexcute, la charge CPU est toujours proche de 100 % alors quil est parfois difcile de comprendre ce que fait vraiment le programme (certaines critiques rendent la dpendance du programme la bibliothque Mono responsable de cette gourmandise).

146

LINUX

Utilisation

Pour faire court, certains utilisateurs disposant dun ordinateur rapide apprcieront cet outil pour ses fonctionnalits innovantes. Les autres, insatisfaits par les concepts peu habituels et limplmentation encore problmatique de cet outil, devront revenir gThumb ou trouver un autre programme utiliser. F-Spot se comporte diffremment suivant la faon dont il a t lanc. Lune des variantes consiste ouvrir une image depuis le gestionnaire de chiers par le menu contextuel Ouvrir avec > F-Spot. Dans ce cas, linterface utilisateur de F-Spot est trs limite. Vous pouvez afcher et pivoter limage, mais aucun autre traitement nest disponible. Fichier > Ouvrir le dossier conduit aux autres images du rpertoire courant. Pour pouvoir utiliser F-Spot avec lensemble de ses fonctionnalits, 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 grer. F-Spot afche alors un aperu des images. Vous pouvez modier la taille de laperu par le biais de la rgle en bas droite. Un double-clic sur une image conduit au mode ddition. Les modications apportes une image sont enregistres dans un nouveau chier qui se trouve dans le mme rpertoire que loriginal. Au nom dorigine est ajout un complment indiquant la version. Cest la liste droulante Version, en bas gauche, qui indique quelles versions dune image sont disponibles. Fichier > Version vous permet de basculer dune version lautre. Pour revenir une version antrieure, slectionnez la version annuler et effacez-la par le menu Fichier > Supprimer la version. Pour mieux organiser vos images, vous pouvez leur attribuer par glisser-dposer des tiquettes. F-Spot prvoit par dfaut cinq tiquettes (Favoris, Masqu, Lieu, Personnes, vnements). Vous pouvez dnir les tiquettes de votre choix, affecter plusieurs tiquettes une mme image, etc. Un double-clic sur une de ces tiquettes restreint lafchage aux images portant effectivement cette tiquette. Pour afcher nouveau toutes les photos, vous devez supprimer le ltre Rechercher.

9.6

KPhotoAlbum

KPhotoAlbum (anciennement KimDaBa) est un autre programme de gestion des images et vidos. Ses points forts sont ses fonctionnalits puissantes de recherche et dorganisation. Pour lenregistrement des donnes relatives aux images, KPhotoAlbum utilise une base de donnes SQLite. KPhotoAlbum est, par divers aspects, lhomologue de F-Spot pour KDE. Toutefois, il nest pas tout fait aussi fonctionnel. KPhotoAlbum prsuppose que tous les chiers images et vidos se trouvent dans un rpertoire de base (par dfaut ~/Images). Ce rpertoire est mis en place au premier lancement sil nexiste pas encore. Vous devrez y copier manuellement des images existantes (KPhotoAlbum ne prvoit tonnamment pas de fonctionnalit dimport de photos). Chaque fois que le contenu de ce rpertoire est modi, KPhotoAlbum doit resynchroniser sa base de donnes : pour ce faire, excutez Maintenance > Rescan for images. KPhotoAlbum accde aux mmes modules KIPI que digiKam. Vriez donc pralablement que ces plugins sont installs (en gnral, il sagit du paquetage kipi-plugins). Lutilisation de KPhotoAlbum nest intressante que si vous vous donnez la peine de fournir pour toutes les images (ou, a minima, pour un grand nombre dentre elles) des informations contextuelles. Qui ou quoi gure sur cette image ? O a-t-elle t prise ? quelle catgorie

Donner des informations contextuelles

APPAREILS PHOTO NUMRIQUES, NUMRISATION, GESTION DES PHOTOS

147

appartient-elle ? Pour fournir ces informations, commencez par slectionner une ou plusieurs images puis, par le menu contextuel, excutez Set properties for individual images ou Set properties for multiple images at a time. Vous arrivez alors la bote de dialogue prsente la Figure 9.5. Saisissez-y les informations de votre choix. Lutilisation de cette bote de dialogue est tonnamment efcace et la procdure pour chaque image ne dure que quelques secondes. Le classement dune base de donnes dimages complte peut toutefois prendre un certain temps.

Figure 9.5
Classer des images dans KPhotoAlbum.

Rechercher des images

Une fois que les informations contextuelles sont disponibles pour toutes les images, il est possible de rechercher des images dans la fentre principale de KPhotoAlbum en quelques clics de souris, toujours suivant le modle : "me montrer uniquement les images sur lesquelles on peut voir un jardin et qui ont t prises au Japon". La recherche parmi les aperus est de surcrot facilite par une chelle de temps.

Figure 9.6
Aperu des images dans KPhotoAlbum.

148
9.7

LINUX

XSane

XSane est un programme aussi confortable que riche en fonctionnalits pour scanner des images. Avant de scanner la premire image, basculez du mode Noir et blanc soit vers Niveaux de gris, soit vers Couleurs, puis choisissez la rsolution souhaite. Par dfaut, XSane utilise la valeur 72 DPI, ce qui est une rsolution trs faible. Le bouton Acquisition de laperu de la fentre Aperu vous permet dexcuter une premire numrisation. Grce au bouton Slectionne laire visible, vous pouvez limiter le domaine scann la taille de votre choix. Si vous souhaitez excuter une balance des blancs, slectionnez avec la pipette Choisissez un point blanc sur un point blanc et Choisissez un point noir sur un point noir. Les pros de la numrisation pourront entreprendre des corrections de couleurs plus pousses laide de lhistogramme (Fentre > Montrer lhistogramme). Le bouton Numriser de la fentre principale vous permet de raliser le scan effectif dans la rsolution choisie. XSane prsente le rsultat du scan dans une nouvelle fentre o vous pouvez pivoter limage, ladoucir et en modier lchelle. Filtres > Dparasiter limage tente de supprimer les erreurs de numrisation et les parasites que peut prsenter limage. Pour les images volumineuses, ce processus risque de prendre un temps relativement long et naboutit que rarement une amlioration notoire de la qualit de limage. Enn, vous pouvez enregistrer votre image laide de Fichier > Enregistrer.
Produire des images de haute qualit est un art en soi. Laide de XSane renvoie vers quelques sites web prsentant des astuces ce sujet. Il est encore plus dlicat de raliser ultrieurement des impressions de qualit des images scannes. La plupart du temps, limage numrise doit pralablement tre optimise par le biais dun logiciel de traitement dimages tel que Gimp. Si vous rencontrez des difficults avec les motifs de type moir, essayez le filtre Flou > Flou gaussien ou Amlioration > Antiparasites.
Reconnaissance de texte

Si le programme gocr (du paquetage ponyme) est install, vous pouvez excuter une reconnaissance de texte sur limage scanne. Le texte reconnu est enregistr dans un chier propre (en gnral out.txt). Mes expriences avec cette fonctionnalit ont toutefois t dcevantes.

10

Gimp
Derrire l'acronyme Gimp (Gnu Image Manipulation Program) se cache un logiciel de traitement qui prsente de nombreuses fonctionnalits comparables celles du logiciel commercial Adobe Photoshop. Il existe toutefois une diffrence notable entre les deux : Gimp est un logiciel libre sous licence GPL. Gimp vous permet, entre autres : d'ouvrir et d'enregistrer des chiers bitmap dans diffrents formats (parmi lesquels GIF, JPEG, PNG ou TIFF) ; d'importer des chiers PostScript (EPS/PS) et Photoshop (PSD) ; de retravailler des photographies et images numrises (modier la luminosit, le contraste, les couleurs, etc.) ; d'appliquer divers ltres (par exemple pour amliorer l'image, crer des effets d'optique, etc.) ; de slectionner une partie d'une image, de la dcouper, de la traiter sparment et de la coller dans d'autres images (montage photo) ; d'insrer de nouveaux lments graphiques dans une image (lignes, motifs de remplissage, texte, etc.) ; d'automatiser des oprations Gimp ; de raliser des traitements par lots sur un grand volume de chiers ; d'imprimer et d'enregistrer les images rsultantes (en tant que chiers bitmap, PostScript ou encore dans le format propre de Gimp, XCF, qui enregistre non seulement l'image, mais aussi des informations sur les modications apportes : masques, calques, etc.). Ce chapitre est une introduction trs rapide Gimp, sur la base de sa version 2.4. Certaines distributions proposent encore la version 2.2, qui ne diffre que trs peu de la version 2.4 : ce chapitre devrait donc, quelques rares exceptions prs (certains raccourcis clavier ont t entre-temps modis), s'appliquer aussi Gimp 2.2. Vous devez toutefois veiller, si vous travaillez avec Gimp 2.4, enregistrer rgulirement vos documents : cette nouvelle version n'est pas encore aussi robuste que la 2.2. Comme il ne nous est pas possible de dcrire en dtail toutes les fonctionnalits de Gimp, ce chapitre ne vous prsente qu'un survol des fonctionnalits essentielles. Pour vous documenter de faon plus approfondie sur le sujet, vous pourrez trouver de nombreux ouvrages sur Gimp ainsi que des sites trs complets, par exemple : http://www.gimp.org/ ; http:// www.gimp.org/docs/ ; http://gimp-savvy.com/ ; http://manuel.gimp.org/ Assimiler les fonctionnalits de Gimp n'est toutefois que la premire tape. Il est galement essentiel de comprendre comment mettre en pratique ces fonctions de manire approprie. Avant de pouvoir faire imprimer vos travaux en format poster, vous devrez aussi vous proccuper de calibrer votre cran et votre imprimante : un ouvrage sur les bases du graphisme pourra donc galement se rvler un investissement judicieux pour tout utilisateur de Gimp.

150
Rve et ralit

LINUX

Gimp est un logiciel polyvalent et trs puissant. Toutefois, il existe un risque non ngligeable que vos premires expriences soient dcevantes et vous conduisent l'effacer rapidement 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 manire efcace ; d'autre part, Gimp est gourmand en ressources matrielles. Pour travailler confortablement, vous aurez besoin de sufsamment de mmoire, d'un processeur rapide et d'un cran large. Gimp est frquemment dcrit comme une alternative gratuite, diffrente mais aux fonctionnalits quivalentes Photoshop, ce qui contribue forger des espoirs ultrieurement dus. Cette description est un peu trop supercielle : L'utilisation de Gimp diffre sur certaines parties trs notoirement de celle de Photoshop. Les vrais fans de Gimp afrmeront naturellement que leur logiciel favori est plus intuitif et plus efcace. C'est vrai pour certaines fonctionnalits, mais d'autres donnent la nette impression que le logiciel a t conu par des techniciens, pour des techniciens. De surcrot, il est souvent difcile pour les utilisateurs de Photoshop migrant vers Gimp de localiser les fonctions recherches dans l'imbrication des menus. Il est plus difcile de gnrer des chiers (PostScript) pour une impression professionnelle avec Gimp qu'avec d'autres logiciels. La gnration d'images comprenant des tons directs ou couleurs d'accompagnement (format d'image en couleurs directes) est en thorie possible, mais les fonctions associes offrent peu de confort. Il manque une prise en charge directe des couleurs Pantone, mais ce point devrait tre rsolu l'avenir par la mise disposition de greffons commerciaux.

Alternatives Gimp

Si Gimp vous parat trop complexe, les logiciels de gestion d'images prsents au Chapitre 9 vous proposent galement quelques fonctions lmentaires de traitement graphique. Si vous n'avez besoin que d'optimiser rapidement le contraste d'une image, ces outils vous sufront largement. Si vous recherchez un logiciel simple de dessin du type Microsoft Paint, un coup d'il au programme KDE kolourpaint devrait se rvler intressant. En termes de complexit et de fonctionnalits, krita se situe mi-chemin entre Gimp et kolourpaint. Ce programme fait partie de la suite bureautique KDE. Elle conjugue une utilisation relativement simple avec des fonctionnalits avances (y compris la gestion des calques et de trs nombreux ltres). Si vous ne souhaitez pas renoncer aux fonctionnalits 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 diffrents formats seront prsentes au Chapitre 15. Gimp et toutes les alternatives que nous venons de prsenter sont des logiciels de traitement d'images bitmap (travaillant sur des pixels). Il existe galement sous Linux divers programmes de dessin vectoriel : le composant OpenOfce Draw, le logiciel Inkscape ou encore krita.

GIMP

151
10.1 Formats de fichiers
Gimp prend en charge de nombreux formats graphiques pour l'ouverture et l'enregistrement des chiers. Cette section donne un aperu 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 surcrot compress. Ceci n'a toutefois de sens que pour les formats de fichiers non comprims par ailleurs. Les fichiers portant cette extension seront automatiquement dcompresss l'ouverture. bzip2 compresse un peu mieux que gzip, mais il est notoirement plus lent.

XCF et PSD

XCF est le format de chier propre Gimp. C'est le seul format pour lequel toutes les informations de travail et de construction de l'image (calques, masques, slection en cours, etc.) sont effectivement enregistres. Lorsque vous travaillez sur une image, XCF est le seul format rellement adapt pour les copies de travail. Le format PSD est l'homologue du format XCF pour Photoshop. Les formats bitmap ne permettent d'enregistrer qu'un seul calque. Si votre image est constitue de plusieurs calques, ceux-ci doivent tre fusionns l'enregistrement. Si vous rouvrez ultrieurement ce chier, seul cet unique calque fusionn sera disponible : vous aurez perdu toute possibilit de modier l'image. Pour cette raison, un avertissement est afch avant l'enregistrement effectif du chier et vous devez conrmer la fusion en cliquant sur le bouton Exporter. Vous devez obligatoirement enregistrer aussi votre travail au format Gimp XCF si vous souhaitez pouvoir le modier ultrieurement sans contrainte ! BMP. Ce format sert uniquement pour l'change de chiers avec le monde Microsoft Windows. GIF. Le format GIF est adapt pour l'enregistrement de petites images et animations lorsque l'on cherche conomiser l'espace disque. Les bitmaps sont comprims de manire efcace et sans perte, mais ils sont limits 256 couleurs. Ce format gre la transparence. Pour enregistrer des images Gimp en tant que GIF, vous devez pralablement les passer en mode 256 couleurs l'aide du menu Image > Mode > Couleurs indexes. JPEG. Ce format se distingue par un algorithme de compression trs efcace particulirement 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 diffrent des originaux. Ces diffrences ne sont en gnral pas visibles l'il nu lorsque le facteur de qualit choisi l'enregistrement est sufsamment lev. La valeur par dfaut (75 %) est gnralement raisonnable. Pour les images trs dtailles ou avec des contours trs marqus, 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 occasionnes par la compression sont, la premire application de l'algorithme,

Formats bitmap

152

LINUX

peine visibles l'il nu, les modifications s'accumulent ensuite de faon peu esthtique. 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 !

PostScript (PS, EPS)

PNG. Ce format a t conu comme un successeur de GIF et il lui est tout point de vue suprieur : pas de limitation 256 couleurs, malgr une compression de meilleure qualit et sans perte, etc. De plus, la majorit des navigateurs web utiliss aujourd'hui peut grer sans problme les images PNG. TIFF. Ce format est apprci des graphistes professionnels. Les images sont enregistres sans perte. Grce l'algorithme de compression LZW, la taille des chiers pour les captures d'cran ou les dessins techniques devient trs faible. Toutefois, Microsoft Word rencontre des problmes pour l'afchage et l'impression de chiers compresss en tant que TIFF. Il existe de nombreuses variantes du format TIFF, ce qui occasionne des problmes l'change de chiers TIFF entre programmes diffrents. Normalement, vous ne devez enregistrer des images au format PostScript que lorsque vous souhaitez utiliser le chier rsultant dans un autre logiciel (par exemple un logiciel de traitement de texte). Vous disposez alors de deux options intressantes : EPS (Encapsulated PostScript) signie qu'un commentaire est enregistr au dbut du chier PostScript pour fournir les dimensions exactes de l'image. Cette information est obligatoire pour pouvoir insrer correctement l'illustration dans un autre programme. Les chiers PostScript conus pour tre ultrieurement utiliss dans d'autres logiciels (et non simplement pour l'impression) reoivent en gnral l'extension de chier *.eps (et non simplement *.ps). Aperu signie qu'en plus des commandes PostScript un bitmap est enregistr. Cela permet galement de gnrer un aperu dans les programmes n'ayant pas accs un interprteur PostScript. Le bitmap d'aperu augmente notablement la taille du chier sans pour autant ajouter d'informations utiles pour l'impression. N'activez donc cette option que si vous souhaitez utiliser les chiers PostScript sur un ordinateur Windows (qui ne possde aucune capacit d'aperu des PostScript). Gimp peut galement importer les chiers PostScript et PDF. Il fait appel pour cela l'interprteur PostScript Ghostscript (voir aussi le Chapitre 15 ce sujet). Pour une bonne qualit graphique, les lments dcisifs sont une rsolution adapte (donc sufsamment leve) et l'option de lissage.

10.2 Premiers pas


Vous pouvez lancer Gimp soit depuis le menu Dmarrer de votre environnement de bureau, soit par le biais de la commande gimp. Au premier lancement apparat une bote de dialogue pour effectuer la conguration de base de l'outil. Il vous suft, pour chaque cran, de cliquer sur le bouton Suivant : les paramtres par dfaut ne requirent en gnral aucune modication. Contrairement Adobe Photoshop, dont l'ensemble des outils est intgr au sein d'une seule grande fentre, plusieurs petites fentres sont afches au lancement de Gimp, chacune tant ddie un groupe de fonctionnalits. Il existe de surcrot d'autres fentres

GIMP

153
d'outils apparaissant suivant les besoins (voir aussi le menu Fichier > Dialogues). Ceci conduit frquemment avoir cinq ou six fentres Gimp ouvertes simultanment, parfois mme davantage (voir Figure 10.1). Si vous avez lanc d'autres programmes en plus de Gimp, la fentre peut rapidement devenir surcharge et donc inutilisable.

Figure 10.1
gauche, la fentre principale de Gimp ; au centre, deux fentres d'outils ; droite, une fentre d'image.

La solution optimale ce problme consiste utiliser des bureaux virtuels et en ddier un l'utilisation de Gimp (si vous utilisez votre navigateur web, client de courrier, OpenOfce, etc. dans le bureau virtuel numro 1, passez au bureau virtuel numro 2 avant de lancer Gimp). Vous pouvez slectionner le bureau virtuel de votre choix en cliquant sur le numro correspondant, dans la section du tableau de bord correspondant aux bureaux virtuels.
Utilisation des menus

Ouvrir et enregistrer des images

Gimp est quip de deux menus : Le menu Gimp se trouve dans la fentre principale. Il ne prsente que quelques commandes lmentaires valables pour Gimp dans son ensemble (par exemple Fichier > Ouvrir ou Fichier > Fermer). Chaque fentre d'image est par ailleurs quipe du menu idoine. Celui-ci compte d'innombrables commandes, toutes ddies au traitement de l'image courante. Le menu peut galement tre appel n'importe o dans la fentre en tant que menu contextuel (bouton droit de la souris). Toutes les commandes illustres dans ce chapitre, moins d'tre explicitement indiques comme faisant partie du menu Gimp, sont des commandes tires de ce menu. Fichier > Ouvrir vous conduit une bote de dialogue de slection de chier. Cette bote de dialogue comprend un aperu de l'image slectionne. Si cet aperu n'est pas afch automatiquement, vous devrez cliquer sur le bouton Preview. Aprs ouverture, le chier est afch dans une nouvelle fentre d'image. l'enregistrement, vous avez le choix entre les diffrents formats de chiers que nous avons prsents la section prcdente. Pour rsumer : si vous souhaitez ultrieurement pouvoir retravailler sur une image, vous devriez l'enregistrer au format fichier.xfc.gz : Gimp utilise ainsi son propre format XFC conservant les informations de composition de l'image (par exemple les calques) ; l'extension supplmentaire .gz garantit la compression du chier.

154

LINUX

Il est relativement frquent de voir apparatre l'enregistrement un avertissement indiquant que l'image doit tre modie avant de pouvoir tre enregistre : lorsque le format ne prend pas en charge la transparence, les parties transparentes de l'image sont remplies en blanc ; lorsque le format de chier ne gre pas les calques (ce qui est le cas sur tous les formats bitmap), ceux-ci doivent tre fusionns. De telles modications ne concernent toutefois que le chier enregistr et non les donnes actuellement utilises par Gimp : vous pouvez donc sans crainte cliquer sur Exporter, mais n'oubliez pas d'enregistrer ultrieurement votre image au format XCF.
Commandes de base

Lorsque la fentre d'image est active, vous pouvez agrandir l'image avec la touche + (plus) et la rduire 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 afch sur un pixel de l'cran). Afchage > Ajuster la fentre l'image (ou la combinaison de touches Ctrl+E) permet d'adapter la taille de la fentre l'image actuellement afche. Si vous avez d rduire le facteur d'agrandissement pour afcher une image trs haute rsolution, cette commande rduit la taille de la fentre. Si l'image courante est plus grande que la fentre avec le facteur d'agrandissement actuellement utilis, seule une partie de l'image peut tre afche. Vous pouvez alors dplacer la section afche l'aide des ascenseurs de la fentre. Alternativement, vous pouvez aussi tout simplement dplacer l'image dans la fentre 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 bote de dialogue quelque peu difcile lire (voir Figure 10.2). Si cette commande n'est pas disponible, vous devrez installer (suivant votre distribution) le paquetage gimp-print ou gutenprint-plugin. Si la bote de dialogue apparat en langue anglaise, vous devrez en outre installer le paquetage de localisation correspondant (par exemple, sur Ubuntu, language-pack-fr). La traduction peut toutefois se rvler incomplte.

Figure 10.2
La bote de dialogue d'impression de Gimp.

Dans de nombreux cas, un avertissement apparat avant la bote de dialogue d'impression : c'est le mme que celui afch lors d'un export vers un format bitmap. Conrmez simplement

GIMP

155
l'avertissement en cliquant sur le bouton Exporter. L'impression du chier ne modie en rien les donnes de travail du chier dans Gimp ! Contrairement la quasi-totalit des autres programmes Linux, la bote de dialogue d'impression de Gimp ignore la conguration d'impression du systme. Dans la conguration de base, Gimp envoie les donnes PostScript l'imprimante par dfaut. Si vous souhaitez utiliser une autre imprimante, vous devez renseigner ses paramtres directement dans la bote de dialogue d'impression de Gimp ! La raison de ce comportement particulier est que l'impression d'images pose bien souvent des contraintes diffrentes de celles associes l'impression d'un document classique. Il est ainsi possible de mettre en place des paramtres d'impression spcialement optimiss pour Gimp. La rgle chelle vous permet d'adapter la taille de l'image. Lorsque l'image mise l'chelle possde une taille infrieure au format de papier utilis, vous pouvez alors en dplacer l'aperu avec la souris pour le positionner, ou tout simplement cliquer sur un des trois boutons Centrer. L'onglet Sortie vous permet de slectionner le type de sortie souhait (Couleur ou Niveaux de gris). Le bouton Rglages ns vous conduit une bote de dialogue supplmentaire dans laquelle vous pouvez modier le contraste, la luminosit, l'algorithme de tramage ainsi que divers autres paramtres. Les modications ne s'imposent ici qu' titre exceptionnel. Pour ne pas avoir saisir les paramtres chaque nouvelle impression, vous pouvez les enregistrer.

10.3 Rgles de survie


Cette section rassemble quelques astuces et rgles de survie pour travailler efcacement avec Gimp. Elle conclura ce court chapitre sur Gimp : elle devrait faciliter vos premiers pas avec cet outil. Vous pouvez appeler et utiliser pratiquement toutes les fonctionnalits de Gimp l'aide du clavier. Le problme le plus frquent est toutefois que les commandes clavier concernent non pas la fentre d'image mais la dernire bote de dialogue utilise (o d'autres raccourcis clavier ont cours). Lorsque vous activez l'option Use dynamic keyboard shortcuts dans la bote de dialogue Fichier > Prfrences > Interface, vous pouvez trs simplement modier les raccourcis clavier des commandes : choisissez la succession de menus suivre avec la souris puis, pour la commande modier, saisissez le raccourci de votre choix. N'oubliez pas d'enregistrer les raccourcis ds maintenant : les nouvelles valeurs sont enregistres dans le chier ~/.gimp-n.n/menurc. Lorsque vous souhaitez interrompre une action de souris en cours, gardez le bouton gauche de la souris enfonc et appuyez sur le bouton droit. Relchez tout d'abord le bouton gauche, puis le bouton droit. Il est souvent difcile de positionner prcisment 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 gnrer un guide, cliquez sur l'un des bords de l'image et faites glisser le pointeur vers l'image : le guide apparat alors. Pour dplacer un guide existant, commencez par activer le bouton Dplacer de la bote outils (l'icne

Utilisation du clavier

Interrompre une action la souris Grille et guides

156

LINUX

Bote outils

Dialogues

Dtacher des menus

Couleurs

Annuler et refaire

Paramtres configurs par rgles Vues

quatre ches en forme de croix). Vous pouvez utiliser autant de guides que vous le souhaitez et galement les combiner la grille magntique (Afchage > Aligner sur la grille). La fentre principale de Gimp hberge toujours la bote outils. Il s'agit d'une palette d'icnes reprsentant les outils de Gimp. Tous les outils peuvent galement tre activs par le biais du clavier. Les raccourcis clavier sont donns dans le menu Outils de la fentre d'image. Pour chaque outil, il existe une bote de dialogue de paramtrage. Cette bote de dialogue est normalement afche comme un lment de la fentre principale de Gimp, mais elle peut galement en tre dtache. Si le dialogue de paramtrage n'apparat pas, ouvrez-le en double-cliquant sur l'icne de l'outil correspondant. De nombreuses fonctionnalits de base sont affectes par les paramtres des dialogues Pinceau (crayon et pinceau) et Remplissage (motif de remplissage). Ces botes de dialogue sont accessibles par la commande Dialogues du menu contextuel. Tous les dialogues (mais pas la fentre d'image) peuvent tre dplacs et amarrs les uns aux autres par glisser-dposer. Vous pouvez ainsi garder une vue d'ensemble des fentres lorsque celles-ci sont nombreuses. Lorsque vous utilisez frquemment un sous-menu particulier (par exemple Image > Transformer), vous pouvez tout simplement lui attribuer son propre dialogue. Pour cela, ouvrez le menu dans la fentre d'image par le biais du menu contextuel. Ce n'est que l (et non dans le menu principal) qu'apparat en haut du menu une ligne pointille. Ds que vous cliquez dessus, le menu se voit affecter sa propre fentre. Toutes les commandes de peinture et de dessin utilisent les couleurs de premier plan et d'arrire-plan dnies dans la bote outils. Vous pouvez ouvrir le dialogue permettant de modier ces couleurs d'un double-clic sur le champ de couleur correspondant. La petite icne en bas gauche rtablit les couleurs par dfaut noir et blanc ; la double che intervertit couleur de premier plan et couleur d'arrire-plan. Ctrl+Z vous permet d'annuler les cinq dernires oprations, Ctrl+Y permet de les rtablir. La bote de dialogue de conguration dition > Prfrences > Environnement vous permet de xer le nombre d'annulations autorises (attention au fait que l'espace mmoire requis peut rapidement goner !). La bote de dialogue dition > Historique d'annulation vous donne un accs facile aux dernires oprations effectues. La fentre prsente chacune des tapes ralises avec un aperu de l'image rsultant de l'opration correspondante. Un clic de souris vous permet de revenir un tat antrieur. De nombreux effets et paramtres sont pilots par une rgle. Ces rgles sont toutefois difciles utiliser prcisment avec la souris. Utilisez plutt les ches du clavier ! Il est souvent pratique de disposer, en plus d'un agrandi ou d'une rduction d'une image, d'une seconde vue l'chelle 1:1. Pour ce faire, il vous suft d'ouvrir avec Afchage > Nouvelle vue une seconde fentre prsentant l'image en cours. Vous pouvez alors y congurer l'agrandissement indpendamment de la premire fentre, afcher la slection (Ctrl+T) ainsi que les guides (Maj+Ctrl+T). Vous aurez alors une bonne ide du rsultat nal de votre travail. Avec de nombreuses distributions, le systme d'aide de Gimp n'est pas install par dfaut 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.

Systme d'aide

11

Audio et vido
Ce chapitre explique comment, sous Linux et dans le respect de la lgalit, vous pouvez couter des CD et chiers audio, lire des DVD et chiers vido et regarder la tlvision avec DVB-T. Je suppose ici que le systme audio et vido de votre distribution fonctionne (voir le Chapitre 22). Cest en gnral le cas avec la majorit des distributions si vous utilisez du matriel standard. Aprs une prsentation rapide des principaux lecteurs de CD, je mintresserai aux codecs audio et vido, ainsi quau cryptage des DVD. Les codecs constituent le fondement du stockage et de la lecture de chiers audio et vido sous forme compresse. Le cryptage des DVD est le principal obstacle qua plac lindustrie des mdias sur le chemin des utilisateurs souhaitant lire leurs DVD sous Linux. Une dernire section traitera de la tlvision numrique (DVB). Aprs cette introduction quelque peu thorique, je vous prsenterai les principaux lecteurs audio et vido pour Linux. De nombreux programmes sont conus pour tre universels et ils remplissent donc plusieurs rles, bien au-del du simple "lecteur de MP3". Ils permettent de modier les informations relatives des chiers, ux, lecteurs de donnes ou cartes TV, extraire ("ripper") des CD audio, etc. Amarok, lecteur audio de KDE ; Banshee, lecteur audio de Gnome (repose sur la bibliothque Mono) ; KAudioCreator, logiciel dextraction de CD de KDE ; MPlayer, lecteur audio et vido ; Noatun, lecteur audio de KDE ; RealPlayer/Helix Player, lecteur audio et vido ; Rhythmbox, lecteur audio de Gnome ; Sound Juicer, logiciel dextraction de CD pour Gnome ; Totem, lecteur par dfaut de lenvironnement Gnome ; XMMS, lecteur audio simple ; Xine, lecteur audio et vido. Lorsque vous congurez Gnome ou KDE comme environnement de bureau, vous pouvez dterminer vous-mme quel est le programme de lecture par dfaut pour un format donn (voir les Chapitres 4 et 5 ce sujet). Un conseil supplmentaire : si vous recherchez avant tout un lecteur simple pour couter des chiers locaux, tenez-vous le plus loin possible des programmes surchargs de fonctionnalits. Personnellement, mon lecteur favori est XMMS lorsque je souhaite couter lensemble des chiers MP3 ou OGG dun mme rpertoire. Cela ne ncessite quune courte commande saisir dans la console et je nai pas besoin de me compliquer la vie avec des listes de lecture ni avec limportation de chiers audio ou une demi-douzaine de botes de dialogue de conguration remplir...

158
Multimdia pour utilisateurs avancs

LINUX

On pourrait crire bien davantage encore sur le sujet du multimdia sous Linux : parmi les sujets importants voquer, on trouverait la synchronisation avec un iPod, la capture audio, la rception de tlvision analogique, la programmation denregistrements vido, le son multicanaux, le montage audio ou vido, Midi, lutilisation dun ordinateur sous Linux comme serveur audio et vido, etc. Comme je ne suis toutefois pas un expert en matire de multimdia et que je ne suis pas convaincu que Linux soit la meilleure plate-forme pour cet usage, je prfre vous renvoyer aux sites web thmatiques suivants : http://audacity.sourceforge.net/ logiciel de montage son http://sound.condorow.net/ logiciels audio et MIDI pour Linux http://lwn.net/Articles/182954/ prsentation dAudio-Stream-Grabber http://www.linuxtv.org/ regarder la tlvision avec DVB http://www.exploits.org/v4l/ collection de liens Video for Linux http://www.pierrox.net/dvr/ magntoscope numrique http://www.mythtv.org/ Linux comme ordinateur pour regarder la tlvision http://freevo.sourceforge.net/ Linux comme station multimdia personnelle http://64studio.com/ distribution multimdia 64 bits

11.1 Bases
Glossaire
Encodeur

Un encodeur transforme un chier audio ou vido non compress en un format compress (par exemple MP3, OGG ou MPEG-4). La tche de lencodeur est de parvenir un compromis entre taille du chier compress et qualit du rsultat, ce qui demande beaucoup de calculs et peut donc tre trs lent. Le dcodeur est responsable de lopration inverse, savoir la dcompression du chier vers un format non compress (voir Chapitre 15) ou vers un format que la carte audio ou vido peut rendre. Chaque lecteur audio ou vido doit donc faire appel un dcodeur spcialis pour le format de chier lire. Le fonctionnement par encodeur/dcodeur est gnralement dcrit par le terme de codec. Dans le langage courant, toutefois, ce mot dsigne plus simplement la bibliothque ou le module/greffon de codage/dcodage dun format audio ou vido particulier. Il existe un vaste ventail de codecs, dont le dcodeur est gnralement disponible gratuitement pour Windows et Mac OS. La situation est un peu plus complique sous Linux. Vous pourrez trouver, pour beaucoup de codecs populaires, une version open-source du dcodeur et mme parfois de lencodeur, mais le statut juridique de ces programmes ou bibliothques est problmatique lorsque les codecs sont protgs par des licences et des brevets. Pour les ordinateurs de type i386, il est galement possible dutiliser sous Linux les codecs prvus pour Windows (un wrapper permet de rendre utilisables sous Linux les fonctions prvues pour Windows). La situation juridique nest ici gure plus claire, dans la mesure o ces codecs gratuitement disponibles pour Windows ne prvoient pas de termes de redistribution, encore moins dutilisation sous Linux.

Dcodeur

Codec

AUDIO ET VIDO

159

Cette situation juridique complexe (qui, de surcrot, dpend du pays) conduit ce que la plupart des distributions ne soient livres quavec relativement peu de codecs. Vous pourrez toutefois trouver en tlchargement sur Internet, pour la plupart des distributions, les implmentations open-source des principaux codecs, ainsi quune collection des codecs Windows essentiels (w32codecs ou win32codecs). Une autre solution possible ce dilemme juridique consiste se procurer des codecs sous licence ofcielle comme en propose la socit Fluendo (naturellement contre rmunration). Ces paquetages ne sont toutefois disponibles que pour le systme audio GStreamer et sont donc incompatibles avec la majorit des programmes prsents dans ce chapitre.
Cryptage, CSS

Lindustrie multimdia a voulu viter dans le domaine vido un dsastre comparable celui caus par la diffusion massive de chiers MP3 sur les systmes dchange. Par consquent, une majorit des DVD vido sont crypts par lalgorithme CSS (Content Scrambling System). La protection rsultante sest toutefois montre trs limite. Le cryptage est trs simple et a t rapidement contourn. Bien plus dnergie a en revanche t dpense pour criminaliser toutes les techniques open-source de dcryptage. Pour cette raison, lutilisation de la bibliothque de dcryptage est illgale dans de nombreux pays. En mai 2007, une cour de justice nlandaise a jug en premire instance que CSS tait "inefcace" et a par consquent autoris le contournement de CSS. Nous en sommes hlas encore loin : en France, le dcryptage de DVD reste interdit et je ne peux donc ici fournir dinformations ou de liens relatifs la bibliothque permettant de le faire. Mettons toutefois les choses au point : il ne sagit pas ici de copie illgale ! Je nai tout simplement pas le droit dexpliquer comment vous pouvez lire sous Linux vos DVD achets lgalement, ce qui est par ailleurs une vidence sous Windows. CSS ne reprsentait toutefois que la premire tape : les DVD HD et Bluray prsentent un mcanisme de protection plus fort et partiellement implment au niveau du matriel (par exemple sur la carte graphique). Mme si ces mesures de protection ont t ou seront contournes, cest devenu de plus en plus difcile. De faon gnrale, lindustrie des mdias fait lheure actuelle tout ce qui est en son pouvoir pour compliquer la lecture de supports vido 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 vidos sous Linux pose donc des problmes moins techniques que juridiques. Une majorit des habitus de Linux parviendront nanmoins congurer leur systme de faon satisfaisante laide de Google. Mais, pour le dbutant, il est plus pratique de brancher un lecteur de DVD bon march sur la tlvision ou sur un cran dordinateur ddi. DRM est lacronyme de Digital Rights Management, traduit en franais par MTP ou mesures techniques de protection. Elles permettent de lier un matriel donn la lecture dun chier audio ou vido. Le chier peut tre copi, mais non lu, sur un autre ordinateur. Les MTP sont pour le moment principalement mises en uvre sur les chiers audio (par exemple sur les chiers tlchargs depuis la boutique iTunes dApple) mais elles devraient jouer un rle croissant lavenir dans le cadre des tlchargements vido, des livres lectroniques, etc. Les utilisateurs de Linux sont quasiment compltement exclus de lutilisation lgale des

DRM (MTP)

160

LINUX

Streaming

chiers protgs par MTP, et aucune amlioration ne se prole lhorizon. Essayez, autant que possible, de nacheter que des chiers de musique et de vido libres de MTP ! Pour couter la radio en direct depuis Internet, de nombreuses stations de radio proposent un ux continu. Ainsi, la restitution peut dmarrer ds le dbut de la transmission. Le tlchargement nest pas prvu dans ce cadre, souvent pour des raisons de licences. De nombreux lecteurs audio permettent toutefois denregistrer dans un chier le ux audio en cours de lecture.

Formats audio et vido


Il existe de trs nombreux formats audio et vido. Cette section vise non pas une description complte et dtaille de chacun de ces formats, mais plutt fournir certaines informations spciques Linux sur des formats frquemment utiliss. Larticle Wikipedia suivant donne une bonne synthse des codecs audio et vido populaires : http://fr.wikipedia.org/wiki/Codec Tous les formats dcrits dans ce qui suit sont pris en charge dune manire ou dune autre sous Linux. Il existe toutefois des problmes juridiques empchant leur intgration ofcielle dans une distribution. La section relative au format MP3 vous donnera quelques dtails sur ce sujet, transposables dautres formats. WAV est un format audio trs simple dni par Microsoft et sans compression. Il ny a aucune perte de qualit dans les chiers rsultants mais ceux-ci sont malheureusement normes. Aucun problme de licence ou de brevet ne vient empcher la lecture ou la gnration de chiers WAV sous Linux. MP3 est une abrviation de MPEG-1, audio layer 3, o MPEG est lacronyme de Moving Pictures Experts Group. Cest le format de chier de trs loin le plus connu pour la compression des chiers audio. Il existe diffrents dcodeurs MP3 pour Linux, sous la forme de commandes individuelles ou de programmes (mpg123), aussi bien que de bibliothques. Le choix est plus restreint en matire dencodage ; en pratique, seul lame est vritablement utilis. Bien que lalgorithme de compression MP3 ait t majoritairement dvelopp par lInstitut Fraunhofer, plusieurs socits (Alcatel, Sisvel, Thomson, entre autres) dtiennent des brevets relatifs au MP3. Cela signie que les encodeurs MP3 sont soumis une licence, mme si vous les distribuez gratuitement. Pour cette raison, on ne trouve pas de distribution Linux proposant directement un encodeur MP3. Mme sur Internet, les encodeurs MP3 ne sont gnralement mis disposition que depuis des pays o les brevets MP3 nont pas cours. La situation des dcodeurs MP3 (lecteurs MP3) est lgrement meilleure : mme si cette technique est galement soumise brevet, lInstitut Fraunhofer et la socit Thomson ont pour le moment donn leur accord pour que les lecteurs open-source puissent tre utiliss sans licence (http://mp3licensing.com). Les chiers MP3 contiennent galement (en n de chier) des informations sur le titre, linterprte, etc. Ces informations sont appeles ID3-Tags. Dautres formats audio permettent galement denregistrer les informations correspondantes. Les balises ID3-Tags sont des informations complmentaires enregistres au sein du chier MP3. Vous pouvez entre autres y renseigner le titre, linterprte, le nom de lalbum, le compositeur, une image de la couverture du CD, etc. Deux standards ont cours pour

WAV

MP3

ID3-Tags

AUDIO ET VIDO

161

M3U

lenregistrement des informations ID3 : ID3v1 et ID3v2, comprenant de nombreux champs textes supplmentaires et des possibilits dextension. Tous les lecteurs audio analysent les balises ID3 et la majorit des lecteurs est compatible avec les deux standards. Les informations ID3 sont gnralement cres et enregistres au moment de lextraction des pistes audio et de la conversion au format MP3. Il existe par ailleurs de nombreux outils pour modier ultrieurement ces informations, voire pour passer dun standard lautre (ce que permettent, par exemple, loutil Gnome easytag ou le lecteur Amarok). M3U est non pas un format audio ou vido mais un format populaire pour les listes de lecture. Le format des chiers *.m3u est trs simple : chaque ligne contient le chemin ou ladresse Internet dun chier audio. Initialement prvu uniquement pour les chiers MP3, ce format a depuis t utilis pour dautres types de chiers audio. La plupart des lecteurs permettent dimporter des rpertoires entiers de chiers audio et de les insrer des listes M3U. Il peut galement tre intressant de gnrer soi-mme les fichiers M3U. La commande suivante gnre un chier M3U contenant lensemble des chiers MP3 dun rpertoire :
utilisateur$ find repertoire_audio -name *.mp3 > tous.m3u

Ogg Vorbis

WMA

AAC

ATSC A/52 et AC-3 Real Audio

MPEG-1, -2 et -4

Ogg Vorbis est lalternative open-source au format MP3. Ogg Vorbis comprend, outre un nouveau type de donnes audio (extension de chiers .ogg), un logiciel dencodage et de dcodage. Il a t dvelopp en raction aux problmes de brevets et de licences associs au format MP3. Vous trouverez plus dinformations son sujet sur le site suivant : http://www.vorbis.com/ Windows Media Audio est un autre codec audio dvelopp par Microsoft, avec prise en charge des MTP. Ce codec est standardis sous lappellation VC-1 et il en existe une implmentation open-source (par exemple pour MPlayer ou dans le paquetage ffmpeg/ !!libavcodec0d). Advanced Audio Coding est un autre dveloppement issu de lalgorithme MP3, dni dans le standard MPEG-2 et prenant en charge les MTP. AAC est trs rpandu et utilis, entre autres, sur la quasi-totalit des chiers audio diTunes. Il existe des encodeurs et dcodeurs AAC pour Linux (faac/faad et libfaac/libfaad) qui ne permettent toutefois de lire et de modier que des chiers sans MTP. ATSC A/52 ou, en abrg, AC-3 est un format audio multicanaux dvelopp par Dolby Digital, utilis par exemple dans la plupart des DVD. liba52 en constitue un dcodeur open-source. La socit RealNetworks a dvelopp un grand nombre de formats audio et vido commerciaux concurrents des formats Windows Media. Si vous ne devriez, en pratique, rencontrer que rarement des chiers Real Video, les formats Real Audio sont relativement populaires, particulirement pour la diffusion radio. Vous pouvez lire les chiers et ux Real Audio avec, au choix, le lecteur RealPlayer gratuit (voir un peu plus loin) ou avec les lecteurs opensource Totem, MPlayer et xine. MPEG-1, -2 et -4 dnissent plusieurs formats de compression de donnes audio et vido. Certaines parties importantes de MPEG-4 sont implmentes de faon similaire dans diffrents codecs, tous compatibles MPEG-4 (par exemple XviD, DivX ou Apple QuickTime).

162
WMV

LINUX

Microsoft a galement dvelopp ses propres codecs Vido sous le nom Windows Media Video. Les versions 1 3 de WMV prsentent des caractristiques comparables MPEG-4 mais prennent en charge les MTP. Theora est lhomologue dOgg Vorbis pour la vido. Le codec Theora prsente galement des caractristiques comparables MPEG-4, mais il est bas uniquement sur du code opensource et est donc librement disponible, ladresse suivante : http://www.theora.org/ Pour gnrer vous-mme des vidos Theora (par exemple pour documenter des procdures informatiques) vous pouvez utiliser le logiciel Gnome Istanbul : http://live.gnome.org/Istanbul

Theora

Lire des CD audio


La lecture directe de CD audio est un cas particulier, dans la mesure o le lecteur na que des tches relativement triviales accomplir : analyser le contenu dun CD audio et en lire les pistes. Cest en fait le lecteur matriel qui accomplit lessentiel du travail.
Prrequis

Pour que cela fonctionne, la carte son doit tre correctement congure (voir Chapitre 20). Le volume global et celui du canal CD doivent tre non nuls. Enn, si vous utilisez autre chose quun ordinateur aux enceintes intgres, vous devez naturellement brancher votre installation sur la sortie audio de votre ordinateur. Les donnes audio sont transmises la carte son de deux manires possibles : soit directement (sil existe un cble audio reliant le lecteur la carte son), soit (sans ce cble ou avec un lecteur externe) par transmission des donnes analogiques au systme audio. Contrairement aux CD de donnes, les CD audio ne sont pas monts dans le systme de chiers. Laccs un chier seffectue normalement par le biais du priphrique. De nombreux lecteurs partent du principe que /dev/cdrom pointe vers le bon priphrique (par exemple /dev/scd0 ou /dev/hdc). Si votre ordinateur contient plusieurs lecteurs, vous devez congurer le lecteur dans le programme mme ou modier le lien symbolique.

Fonctionnement interne

Lecteurs

La plupart des lecteurs prsents dans la suite peuvent galement grer des CD. Les lecteurs ddis aux CD sont devenus lexception (on trouve nanmoins encore gnome-cd ainsi que divers lecteurs en mode texte tels que cdcd, tcd et workbone). Certains lecteurs de CD prsentent la particularit de contacter un serveur CDDB (CD Database) lorsque lordinateur est connect Internet. En gnral, il sagit de http:// www.freedb.org. Ce serveur hberge une norme base de donnes contenant pour chaque CD enregistr le titre, linterprte, etc. Si votre CD est enregistr auprs de cette base, le lecteur ne se contente pas de prsenter le numro de la piste lue mais, par exemple, "Led Zeppelin: Dazed and Confused". La reconnaissance du CD est fonde sur un identiant calcul partir de la longueur des pistes du CD. Pour que CDDB fonctionne, vous devez lactiver dans la bote de dialogue de conguration du lecteur de CD (si ce nest pas le cas par dfaut) et y renseigner ladresse du serveur utiliser pour les requtes : Adresse : freedb.freedb.org, IP-Port : 8880 (cddbp). freedb.freedb.org transmet automatiquement les requtes vers lun des nombreux miroirs existants. Vous pouvez galement choisir un serveur situ dans votre rgion (pour rduire les temps daccs) parmi la liste disponible sur www.freedb.org.

CDDB et freedb

AUDIO ET VIDO

163

Extracteur

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 Les programmes dextraction lisent les pistes dun CD audio sous forme numrique, ce qui est plus complexe quil ny parat au premier abord. Mme si les pistes du CD sont galement sous forme numrique, celle-ci diffre du format utilis pour un CD de donnes. Toute erreur de lecture est quasiment impossible corriger car le lecteur matriel ne peut localiser lemplacement exact o reprendre. La vitesse dextraction ainsi que la qualit des chiers rsultants (au format WAV) dpendent fortement de la qualit du lecteur de CD/DVD utilis. Pour faciliter lextraction de CD audio et la conversion des chiers WAV vers dautres formats plus appropris (MP3, OGG), on utilisera en gnral une interface graphique. La section suivante vous en prsentera 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 dun script, les outils en ligne de commande cdda2wav/icedax et cdparanoia deviendront vos compagnons (voir Chapitre 15).

Lecture de DVD vido


Pour pouvoir lire des DVD vido sous Linux, quelques conditions pralables doivent tre remplies : Vous aurez besoin dun lecteur logiciel de DVD (Amarok, MPlayer, Totem ou xine). Les codecs ncessaires doivent tre installs, en particulier pour AC-3 (son) et MPEG-2 (image). Pour la plupart des DVD commerciaux crypts par CSS, vous aurez besoin dune bibliothque supplmentaire ( installer) pour contourner cette protection. La vitesse de transmission depuis le lecteur vers lordinateur doit tre sufsante (cest le cas de tous les lecteurs SATA et SCSI modernes, mais les ordinateurs plus anciens peuvent ncessiter dactiver le mode DMA). Enn, le pilote de votre carte graphique doit prendre en charge lextension XVideo (XV, voir Chapitre 22) ; il est possible de sen passer mais cela ncessite un processeur trs rapide.

Situation juridique, paquets complmentaires


La situation juridique et lapplication des brevets variant dun pays lautre, la distribution de codecs et de logiciels de dcryptage nest pas possible en standard. Il existe toutefois pour de nombreuses distributions des sources de paquetages non ofcielles hbergeant ces paquetages. Vous pouvez congurer ces sources dans votre systme et tlcharger vousmme les paquetages correspondants. Les sites de ces sources comprennent gnralement un avertissement indiquant que lutilisation de ces logiciels est illgale dans certains pays. Vous trouverez des informations supplmentaires sur les sites suivants : http://fedoraproject.org/wiki/Multimedia ; http://en.opensuse.org/Restricted_Formats ; https://help.ubuntu.com/community/RestrictedFormats

164

LINUX

11.2 Lecteurs audio et vido


Cette section prsente les principaux lecteurs audio et vido pour Linux, y compris les extracteurs de CD KAudioCreator et SoundJuicer. Un avertissement, toutefois : de nombreux programmes prsents ici ncessitent des bibliothques de codecs pour fonctionner. Pour les programmes Gnome (gnralement fonds sur le systme audio GStreamer), les paquetages ncessaires sont relativement simples trouver : leur nom commence par gstreamer. Pour les autres, la recherche pourra ncessiter plus de travail. Si le lecteur de votre choix ne parvient pas lire tel ou tel format, cest bien souvent quil manque le paquetage correspondant.

Lecteurs en ligne de commande


Aucun des outils en ligne de commande suivants ne propose dinterface graphique. Ils permettent de piloter le lecteur de CD et de lire les chiers audio (fournis en paramtres) et transmettent ensuite les informations un priphrique audio. Malgr le peu de confort quelles offrent, ces commandes sont importantes car de nombreux programmes y accdent plutt que mettre en uvre leurs propres outils de dcodage audio. mpg123 est la commande classique de lecture de chiers MP3. mpg123 -w sortie.wav entree.mp3 vous permet galement de convertir des chiers MP3 en chiers WAV. madplayer est une alternative mpg123, bas sur la bibliothque libmad. Il peut convertir des chiers MP3 vers de nombreux autres formats. mad et libmad sont distribus sous licence GPL, ce qui nest pas le cas de mpg123. mpg321 est une autre alternative mpg123 reposant, comme madplay, sur libmad. ogg123 permet de lire des chiers OGG. Cette commande fait partie du paquetage doutils vorbis-tools et utilise les bibliothques libogg et libvorbis. vorbiscomment vous permet de lire et de modier les commentaires (Meta-tags) des chiers 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 chiers audio le plus populaire et le plus abouti. Au premier lancement, il vous demande de prciser o se trouvent vos chiers audio et gnre une bibliothque de tous les titres disponibles. Longlet Collection vous permet de parcourir les albums et les titres et de les ajouter la liste de lecture dun clic de souris. Outre ces fonctionnalits de base, vous pouvez galement opter pour une lecture alatoire, gnrer des listes, transfrer des chiers depuis/vers un lecteur de MP3, etc. Sur la plupart des distributions, Amarok utilise la bibliothque xine pour le rendu des chiers audio mais, suivant la compilation, il peut galement faire appel Helix (Real Player) ou NMM (http://www.networkmultimedia.org).

AUDIO ET VIDO

165

Figure 11.1
Amarok.

Banshee (lecteur audio)


Banshee est un lecteur audio pour lenvironnement Gnome. Ce projet relativement rcent est fond sur la bibliothque Mono. Tout comme pour Rhythmbox, vous devez pralablement importer les chiers audio grer (ils ne sont toutefois pas copis mais leurs proprits sont enregistres dans une base de donnes : ~/.gnome2/banshee/banshee.db). Vous pouvez ensuite slectionner les titres suivant divers critres, les organiser en listes, etc.
Helix Banshee

Helix Banshee est une variante de Banshee utilisant les codecs des lecteurs Helix et RealPlayer. Si vous souhaitez tirer parti des fonctionnalits dorganisation 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 dun CD et les enregistre sous la forme de chiers MP3, Ogg-Vorbis ou tout autre format de votre choix. Pour la gnration des chiers, ce programme fait appel des programmes externes (oggenc pour les chiers OGG, lame pour les chiers MP3, etc.), ce qui ncessite bien sr davoir install les paquetages correspondants. Un assistant vous aide congurer les chemins des nouveaux chiers (dont les informations de titre, dinterprte, etc. sont lues partir de la base de donnes CDDB).

MPlayer (lecteur audio, vido et tlvision)


MPlayer est un lecteur audio et vido universel, dont les points forts se situent essentiellement au niveau de la vido. Il est livr avec une impressionnante palette de formats audio et vido. En revanche, un inconvnient est quil ne peut pas afcher de menu de navigation de DVD (le choix des langues, des sous-titres, etc. doit donc seffectuer par menu contextuel). Une fois le lecteur install, deux variantes de ce programme sont votre disposition :

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 possde son propre paquet intitul mplayer-gui. Si votre carte graphique nest pas compatible XVideo, vous devez fournir au lancement loption -vo x11 (ce qui demande toutefois beaucoup plus de calculs).

Figure 11.2
MPlayer (lecteur audio, vido et TV).

Le programme propose divers raccourcis clavier dnis dans le chier /etc/mplayer/ input.conf et documents dans man mplayer (qui fournit galement lensemble des options que vous pouvez choisir au lancement). Les plus importants sont P (pour pause) et Q (pour quitter). Les ches vous permettent davancer ou de reculer dans le lm. Il existe un greffon mplayer pour Mozilla (paquetage mozilla-mplayer) qui vous permet par exemple dcouter directement dans Firefox ou Konqueror des chiers audio. Ce greffon se congure par le chier /etc/mplayerplug-in.conf ou ~/.mplayer/mplayerplug-in.conf.

Noatun (lecteur audio et vido)


Le programme KDE Noatun est un lecteur audio et vido relativement simple. Sa popularit a dcru depuis quAmarok est devenu le lecteur par dfaut dans KDE.

RealPlayer et Helix Player (lecteur audio et vido)


La socit RealNetworks a dvelopp une srie de formats audio et vido commerciaux concurrents de Windows Media. Pour lire les chiers 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 dfaut, peut-tre parce que RealPlayer constitue une solution lgale 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 diffrent non seulement par leur

AUDIO ET VIDO

167

Installation

licence de distribution, mais galement par les codecs fournis : Helix Player ne grant que les formats libres, RealPlayer se rvle donc plus intressant. Pour la plupart des distributions, il nexiste pas de paquetage RealPlayer. Vous devez donc installer le programme manuellement, ce qui nest toutefois pas difcile. Vous pouvez tlcharger le paquetage RPM ou le chier *.bin de la version 11 sur le site suivant : http://www.real.com/linux Pour installer le paquetage RPM, procdez comme laccoutume avec rpm -i. Dans les autres cas, tlchargez le chier *.bin et excutez les commandes suivantes, en rpondant toutes les questions par la touche Entre :
root# chmod u+x RealPlayer10GOLD.bin root# ./RealPlayer10GOLD.bin

Version 64 bits

Problme avec Totem

Problme de compatibilit avec le systme audio

RealPlayer nest lheure actuelle disponible quen version 32 bits. Sur une distribution 64 bits, vous devrez faire appel une version 64 bits de test non ofcielle, qui cause rgulirement des problmes. Vous trouverez cette version 64 bits ladresse suivante : http://forms.helixcommunity.org/helix/builds/?category=realplay-current Il est toutefois plus simple, dans ce cas, de renoncer RealPlayer et dutiliser plutt un lecteur open-source compatible Real (MPlayer et le greffon Mozilla correspondant sont une bonne alternative). Lorsque le plugin Firefox du lecteur Totem est install, celui-ci cherche systmatiquement (et sans succs) lire tout chier Real, mme si RealPlayer est install : pour rsoudre ce problme, dsinstallez le paquetage totem-mozplugin ou totem-mozilla. Sur certaines distributions, RealPlayer est malheureusement incompatible avec le systme audio. Il ne peut jouer de musique que si aucun autre programme ne mobilise le systme audio (linverse est galement vri).

Rhythmbox (lecteur audio)


Rhythmbox est un programme Gnome de gestion et de lecture de chiers audio (gnralement aux formats MP3 ou Ogg-Vorbis). Les points forts de ce programme rsident dans ses fonctionnalits de gestion, trs pratiques pour des bibliothques importantes. Au premier lancement apparat un assistant dans lequel vous renseignez lemplacement de votre rpertoire audio. Rhythmbox parcourt ce rpertoire et gnre une base de donnes musicale interne, ce qui peut prendre un certain temps suivant la taille de la collection. Vous pouvez au besoin ajouter dautres chiers la bibliothque par le biais de Musique > Importer un dossier ( utiliser galement si vous avez insr de nouveaux chiers dans un dossier dj import). Pour supprimer des titres dont vous avez effac les chiers, passez par le menu dition > Supprimer (Rhythmbox nest pas capable de remarquer ce genre de modication ; si vous changez en profondeur le contenu de votre dossier audio, il est prfrable de slectionner lensemble des titres dans Rhythmbox, de les supprimer et dimporter nouveau le dossier. Attention, toutefois, ne pas utiliser dition > Dplacer dans la corbeille, qui envoie sans autre forme de procs vos chiers MP3 vers la corbeille !).

168

LINUX

Rhythmbox est simple utiliser : vous pouvez choisir un genre, un interprte et/ou un album, puis lancer la lecture en cliquant sur le bouton Lire (voir Figure 11.3). Rhythmbox lit alors lensemble 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 den extraire les pistes pour les compresser dans un format de votre choix (MP3, Ogg, etc.). Pour la gnration des chiers audio, Sound Juicer fait appel des programmes externes par le biais du systme GStreamer (par exemple oggenc pour lencodage des chiers OGG, lame pour les MP3, etc.). Par dfaut, Sound Juicer gnre des chiers OGG dont le nom suit le modle :
~/Musique/Groupe/Nom-CD/nn - Titre-piste.ogg

Vous pouvez congurer la hirarchie de rpertoires et le format audio laide du menu dition > Prfrences. Si le format de votre choix nest pas disponible, vous devez congurer un nouveau prol. La commande gurant dans le champ Pipeline GStreamer est la plus importante. Lexemple suivant permet de gnrer des chiers MP3 avec lame et peut vous servir de modle :
audio/x-raw-int,rate=44100,channels=2! lame name=enc mode=0 vbr-quality=6! id3v2mux

Totem (lecteur audio et vido)


Totem est un lecteur audio et vido universel et cest le lecteur par dfaut pour les versions actuelles de Gnome. Certaines distributions lutilisent mme pour la lecture de CD, mme sil nest pas optimal dans ce cadre. Il en existe galement un greffon Mozilla permettant de lire des vidos directement dans le navigateur. Deux variantes existent, lune fonde sur le systme audio Gnome GStreamer, lautre sur xine, et qui ne peuvent tre installes simultanment. Totem a pour principaux avantages sa bonne intgration lenvironnement de bureau Gnome et linterface correspondante. Mon exprience na toutefois pas t concluante sur la

AUDIO ET VIDO

169

lecture des DVD : Totem a rencontr des problmes avec lafchage des menus du DVD, le choix des langues, la navigation, etc.

xine (lecteur audio, vido et TV)


xine est probablement le lecteur vido le plus puissant et le plus rpandu sous Linux. Il peut galement tre utilis pour lire des chiers audio et pour regarder la tlvision. Ses points forts sont la prise en charge de trs nombreux formats audio et vido, ainsi que sa bonne gestion des menus de DVD. On ne peut toutefois faire de compliments pousss sur son interface, qui vieillit et nuit au confort dutilisation. Toutefois, il permet aprs un temps dadaptation une utilisation trs efcace (particulirement par le clavier). Linterface de xine tant totalement dcouple de la bibliothque sous-jacente, cela permet dautres logiciels (par exemple Amarok, Totem ou Kaffeine) de faire appel cette mme bibliothque.
Lancement

Pour lancer le lecteur, il vous suft dexcuter la commande xine. Si celle-ci nest pas disponible, vous navez probablement install que la bibliothque mais pas linterface utilisateur : installez donc cet effet le paquetage xine-ui. Les fonctionnalits de base de xine apparaissent dans une fentre de contrle. Si celle-ci nest pas visible, ouvrez-la dun clic droit de la souris sur la fentre de sortie vido et, dans le menu contextuel, choisissez Afche les contrles (ou, plus simplement, utilisez la touche de clavier G). Pour lancer la lecture dun DVD, vous disposez dun bouton ponyme dans cette interface ou vous pouvez taper directement la commande xine dvd://.

Configuration

Il est peu probable que xine soit demble capable de lire des DVD. En rgle gnrale, toutes les bibliothques complmentaires dont vous avez besoin (codecs, dcryptage DVD, etc.) sont absentes du paquetage de base et vous devrez les installer manuellement. La bote de dialogue accessible depuis Rglages > Conguration (ou Alt+S) est complexe et offre davantage de possibilits que vous ne limaginez (en particulier si vous passez du niveau dexprience dbutant au mode avanc ou expert, dans longlet gui). Pour quune modication soit prise en compte, vous devrez quitter xine et le relancer. En cas de problmes de conguration ou de vitesse, la commande xine-check peut vous tre utile : elle vrie si les conditions sont remplies pour une utilisation optimale de xine. Dans le cas contraire, la commande vous renvoie quelques indications pour rsoudre ces problmes (qui ne sont toutefois pas toujours ables, comme mon exprience me la montr). Le site suivant vous donnera toutes les informations souhaites et astuces de conguration dont vous pouvez avoir besoin pour xine : http://xinehq.de/

xmms
xmms est un lecteur quelque peu ancien. Mme sil nest plus maintenu, il est encore trs rpandu. Il est possible de modier son apparence laide dhabillages ou "skins" (en particulier les habillages compatibles Winamp). xmms fait galement montre dune grande

170

LINUX

souplesse au niveau de ses fonctionnalits, qui peuvent tre tendues laide de greffons. Si xmms ne parvient pas grer un format audio particulier, vriez dans votre gestionnaire de paquetages si le greffon xmms correspondant est bien install. Les lments dinterface sont trs petits, ce qui demande de bons yeux et une grande prcision la souris. Il est toutefois plus simple de doubler la taille de la fentre laide des touches Ctrl+D. La conguration seffectue par menu contextuel (bouton droit de la souris). Si xmms narrive pas prsenter correctement les titres au format Unicode, activez loption Utiliser les jeux de polices dans Options > Prfrences > Polices. xmms est compatible avec de nombreux systmes audio de Linux. Sil afche un message derreur indiquant que la sortie audio nest pas disponible, choisissez un autre greffon de sortie dans Option > Prfrences (Ctrl+P).

11.3 Regarder la tlvision avec DVB-T


DVB, qui est lacronyme de Digital Video Broadcasting, dcrit une mthode relativemement rcente de diffusion numrique de programmes tlviss. Il en existe trois variantes : DVBT pour la diffusion terrestre habituelle (TNT ou tlvision numrique terrestre), DVB-S pour la diffusion par satellite et enn DVB-C pour la diffusion par le cble. Cette section se focalise sur DVB-T mais, dun 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 lmission analogique en Europe. Pour pouvoir regarder la tlvision sur votre ordinateur, vous aurez besoin dune carte DVB-T ou dun petit appareil USB. Le matriel est bon march et la prise en charge de Linux, tonnamment bonne. Toutefois, tous les matriels DVB ne fonctionnent pas ncessairement correctement sous Linux : renseignez-vous donc avant lachat ! Le site suivant est une source dinformations utile sur ce sujet : http://www.linuxtv.org/wiki/index.php/ Main_Page ; http://www.linuxtv.org/wiki/index.php/DVB_USB Le matriel DVB comprend un microprocesseur dont le code (rmware) doit tre dans la plupart des cas transmis linitialisation. Vous pourrez trouver le chier ncessaire sur le site suivant : http://www.linuxtv.org/downloads/rmware/ Vous devrez copier le chier requis par votre priphrique dans le rpertoire /lib/firmware/version_noyau/. Lorsque le systme hotplug de Linux reconnat votre appareil, le module noyau correspondant est alors charg. Ce module lit le chier du rmware et le transmet au priphrique DVB. La commande dmesg vous permet de constater si cela fonctionne. Avant de pouvoir regarder la tlvision, vous devez effectuer une analyse des frquences pour gnrer une liste de lensemble 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 dun chier dcrivant les transpondeurs DVB proximit. Pour de nombreux transpondeurs, vous trouverez un tel chier dans le rpertoire :
/usr/share/doc/dvb-utils/examples/scan/dvb-t/

Firmware

Analyse des frquences

Si vous ne trouvez pas de chier correspondant votre localisation, vous devrez gnrer vous-mme le chier en question, ce qui ncessitera une recherche pour identier la

AUDIO ET VIDO

171

frquence du transpondeur le plus proche. La page suivante est une bonne source dinformations (mme si elles ne sont pas toujours actualises) : http://www.the-media-channel.com/dvb-t/ Gnrez alors un chier fond sur le modle suivant (en rgle gnrale, vous naurez besoin de modier que la frquence, 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

Excutez alors la commande scan fichier_transpondeur et renvoyez la sortie correspondante vers le chier 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 lecteur DVB

Ceci tant fait, vous navez plus qu copier channels.conf vers le rpertoire de conguration de votre lecteur DVB (par exemple MPlayer ou xine) :
utilisateur$ cp channels.conf .mplayer/ utilisateur$ cp channels.conf .xine/

Lancez enn le programme de votre choix. Vous pouvez slectionner directement la chane souhaite 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://

172
Figure 11.4

LINUX

Regarder la tlvision avec xine et DVB-T.

PARTIE 3 OUTILS UNIX ET LINUX

12

La console
Jusquici, nous vous avons prsent Linux comme un systme bureautique. Ses programmes diffrent certes de ceux que vous utilisez sous Windows ou Mac OS X, mais ils remplissent les mmes tches et lon sy habitue rapidement. Mais Linux ne sarrte pas l. Il existe encore tout un pan qui peut sembler effrayant premire vue : les utilisateurs avancs lancent des commandes dans une console texte et rcuprent les rsultats sous forme de texte. La souris ne joue quun rle accessoire et les interfaces utilisateur sont obsoltes. Quiconque ayant appris utiliser une console peut accomplir efcacement de nombreuses tches. Vous pouvez connecter des commandes les unes aux autres, lancer des tches en arrire-fond ou automatiquement, crer des scripts, etc. Toutes ces possibilits sont porte de main, que ce soit en local ou sur le rseau. Les utilisateurs qui exploitent principalement les applications bureautiques auront plus rarement loccasion dutiliser des programmes en console que les programmeurs ou les administrateurs systme. Mais, dans tous les cas, la console fait partie des outils de base que chaque utilisateur doit connatre. Vous en comprendrez la raison lorsque que votre systme graphique ne dmarrera pas cause dun problme de conguration ou lorsque vous voudrez administrer vos serveurs distants.

12.1 Consoles texte et fentres de console


Consoles texte

Microsoft Windows ne peut tre utilis quen mode graphique, tandis que Linux peut ltre galement dans des consoles texte. Par dfaut, six consoles sont disponibles. On passe de lune lautre avec Alt+F1 pour la premire, Alt+F2 pour la deuxime, etc. Lorsque lordinateur fonctionne en mode graphique, Ctrl+Alt+F1 permet daccder la premire console et Alt+F7 de revenir au mode graphique. Avant daccder une console texte, vous devez vous connecter. Lorsque vous voulez quitter cette console ou si vous dsirez changer dutilisateur, vous devez vous dconnecter. Le plus simple est alors dutiliser la combinaison de touches Ctrl+D.
Vous pouvez lancer une commande dans une console. Pendant que celle-ci tourne, vous pouvez faire autre chose dans une deuxime console. Vous pouvez aussi vous connecter en tant que root dans une console pour effectuer des tches administratives, tout en modifiant un fichier dans une autre console connecte avec votre identifiant sans privilge. Les consoles fonctionnent indpendamment les unes des autres.

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 prcdentes et suivantes s+F et fait dfiler vers le haut et vers le bas c+a+D teint ou ramorce Linux

Fentres de commande

Les combinaisons de touches Maj+PageSuiv et Maj+PgPrc permettent de faire dler page par page une console texte. Vous pouvez aussi voir les rsultats des programmes lancs mme lorsquils ne safchent plus lcran. Il nest pas ncessaire de passer du mode graphique une console texte pour lancer des commandes. Vous pouvez lancer une fentre de commande (voir Figure 12.1), aussi appele fentre de shell ou fentre de terminal. Il existe diffrentes fentres de console, selon la distribution et le systme de bureau : gnometerminal (Gnome), konsole (KDE) ou xterm. La commande de dmarrage dans le menu varie galement selon la distribution.

Figure 12.1
Une fentre de console.

Raccourcis clavier importants

Dans un terminal, vous pouvez travailler comme sur une console texte. La seule diffrence est quil est plus confortable de faire dler le texte. Dans une console texte ou un terminal, divers raccourcis clavier permettent de travailler plus confortablement. Le tableau suivant rsume les plus importants. Ils ne sont valables que si vous utilisez linterprteur de commandes Bash, ce qui est le cas dans la plupart des distributions.
Raccourcis clavier de linterprteur de commandes Bash c+A place le curseur au dbut 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 compltion des commandes et des noms de fichiers W et Z permet de naviguer dans les commandes prcdemment lances

LA CONSOLE

175

Souris

Lancer des commandes

Le compltementautomatique avec Tab est particulirement utile et permet dconomiser de la saisie. Il suft de taper les premires lettres dune commande ou dun chier, puis dappuyer sur Tab. Lorsque le nom du chier correspondant est reconnu, il est complt jusqu ce que plusieurs possibilits soffrent vous. En appuyant une deuxime fois sur Tab, on afche la liste de tous les chiers correspondant au dbut dj saisi. La souris ne joue quun rle accessoire dans une console texte ou une fentre de terminal. Elle ne peut pas tre utilise pour modier 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 dmarr. Pour lancer une commande, saisissez son nom dans la console ou la fentre de terminal, ventuellement avec un ou plusieurs paramtres, puis tapez sur Entre. Par exemple, la commande ls afche une liste des chiers et rpertoires du rpertoire courant :
utilisateur$ -rw------- 1 -rw------- 1 drwxrwxr-x 3 drwxr-xr-x 2 -rw-r--r-- 1 ls -l michael michael michael michael michael users 17708403 2008-04-29 13:56 20060519_DN.pdf users 506614 2008-05-01 17:13 subv.tgz users 4096 2007-05-28 13:35 Projets users 4096 2008-03-22 10:04 tmp users 10042 2007-10-30 16:15 zebre.png

Cet exemple illustre la manire dont les commandes et leurs rsultats sont reprsents. utilisateur$ indique que la commande est lance par un utilisateur normal. Si la ligne commence par root#, cest quelle doit tre lance par un administrateur systme. utilisateur$ et root# reprsentent linvite du systme et safchent automatiquement. Il ne faut pas saisir ces caractres (seuls les caractres en gras doivent tre saisis). Votre ordinateur afchera probablement une autre chane que utilisateur$ ou root#. Cette dernire peut par exemple contenir le nom du rpertoire courant ou celui de lordinateur. Il arrive que la place manque pour afcher une commande sur une seule ligne. Dans ce cas, la commande est dcoupe en plusieurs lignes spares par des caractres \. On crira par exemple :
root# mkinitrd --with=reiserfs /boot/initrd-2.6.16-1.2111_FC5.img \ 2.6.16-1.2111_FC5

Lancer des commandes en tche de fond

Travailler en tant que root

Vous pouvez saisir cette commande sur plusieurs lignes et les sparer, comme ici, par des caractres \. Vous pouvez aussi joindre les lignes ; dans ce cas, le caractre \ ne doit pas tre saisi. On peut aussi lancer des commandes en tche de fond. Cela signie que vous navez pas attendre que le programme se termine pour lancer de nouvelles commandes. Pour cela, saisissez la n de la ligne le caractre &. Cest particulirement utile si vous dsirez ouvrir un programme graphique partir dun terminal (par exemple, firefox &). Sous Linux, il nest pas courant de travailler en tant que root (cest--dire avec des droits dadministrateur systme). Lorsque vous tes connect en tant quutilisateur non privilgi, plusieurs mthodes vous permettent de lancer des commandes en tant que root. Dans de nombreuses distributions, il suft de taper dans une fentre de terminal la commande su -l (il

176

LINUX

faut bien sr connatre le mot de passe root). Vous pouvez alors lancer des commandes texte en tant que root. Exit ou Ctrl+D permettent de revenir lutilisateur dorigine (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 chiers texte directement dans le gestionnaire de chiers (Konqueror ou Nautilus). Avec le bouton droit, vous pouvez aussi les ouvrir dans un diteur confortable. Si vous travaillez dans une console texte ou un terminal, lutilitaire less permet de les afcher. Cette commande peut aussi tre associe dautres commandes pour lire tranquillement des rsultats plus longs :
utilisateur$ less fichier utilisateur$ ls -l | less

La premire commande afche le chier fichier page par page et la seconde, le contenu du rpertoire page par page.
Raccourcis clavier de less W /Z Pos1, j G s+G / motif e ? motif e N s+N Q H fait dfiler le texte vers le haut ou vers le bas affiche le dbut ou la fin du texte affiche le dbut ou la fin du texte recherche vers lavant recherche vers larrire rpte la recherche vers lavant rpte la rechercher vers larrire quitte less affiche laide contenant dautres raccourcis clavier

Lorsque vous affichez un fichier qui contient des donnes binaires avec less, il arrive que la console en soit drgle et que les caractres qui saffichent ne correspondent plus aux caractres rels. 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 utilisables : vous avez besoin dun diteur qui fonctionne entirement en mode texte. Cette section prsente les diteurs les plus populaires dans cette catgorie. Lditeur install par dfaut dpend de votre distribution. Ces diteurs sont des drivs dEmacs (voir Chapitre 18). Ces diteurs sont des drivs de Vi (voir Chapitre 17).

Emacs, Jove, Jed et Jmacs Vi, Vim et Elvis

LA CONSOLE

177

Joe

joe est un diteur trs simple. Les raccourcis clavier sont comparables ceux du programme Wordstar.
Raccourcis clavier de Joe c+K H c+K E c+K D c+Y c+s+c+C affiche ou masque la fentre daide charge un fichier enregistre le fichier (ventuellement sous un nouveau nom) supprime une ligne annule la suppression quitte joe (demande sil faut enregistrer)

nano et pico

man joe permet dafcher une description de toutes les commandes de joe. Ce programme peut aussi tre dmarr sous le nom jmacs ou jpico. Les raccourcis clavier sont alors compatibles, respectivement avec Emacs et Pico. Ces diteurs, bien que plus modestes en termes de fonctionnalits, sont simples utiliser. Les deux lignes en bas de lcran afchent les commandes disposition de lutilisateur (voir Figure 12.2).

Figure 12.2
Lditeur nano dans une fentre de console.

Raccourcis clavier de nano et pico c+A c+D c+E c+H c+^ c+K c+U c+R c+O c+X passe en dbut de ligne supprime des caractres passe en fin de ligne supprime le caractre prcdent place une marque supprime la ligne courante ou le texte marqu colle le texte supprim insre un fichier texte enregistre le fichier quitte lditeur

La plupart des distributions actuelles fournissent nano. pico nest plus distribu aussi largement quauparavant, car sa licence nest pas entirement libre. nano, qui lui na pas de problme de licence, est compatible avec pico.

178
Dfinir lditeur par dfaut

LINUX

Certains programmes lancent un diteur par dfaut. Il sagit le plus souvent de lditeur Vi. Si vous dsirez en changer, vous devez dnir les variables denvironnement EDITOR et VISUAL dans /etc/profile ou dans ~/.profile.
# insrer dans /etc/profile ou dans ~/.profile export EDITOR=/usr/bin/jmacs export VISUAL=$EDITOR

12.3 Aide du systme


Les commandes telles que ls, cp ou top, qui fonctionnent dans une fentre texte, ne ragissent pas F1 et nont pas de menu daide. Voici comment obtenir quelques informations : commande --help afche pour de nombreuses commandes une liste de toutes les options, assorties dune courte explication. man commande afche la page de manuel de la commande. On peut gnralement naviguer dans le texte grce aux touches de direction. Q permet de quitter. help commande ne fonctionne que pour les commandes de linterprteur, comme cd ou alias. info commande est une alternative man, notamment pour les textes daide trs longs. Lutilisation de man ou de info dpend du choix du programmeur de lapplication. man est cependant plus populaire. man afche la documentation de plusieurs commandes lmentaires, comme ls ou cp. On appelle man avec la syntaxe man commande pour afcher laide de la commande commande. On peut ventuellement fournir un contexte (man contexte commande) pour restreindre la recherche. Par exemple, man 3 printf afche la syntaxe de la fonction C printf. Cette restriction nest utile que lorsque plusieurs pages de manuel avec le mme nom coexistent dans plusieurs contextes diffrents. man afche sans autre prcision la premire page quil trouve. De nombreux livres sur Unix et Linux indiquent la commande avec le numro de leur contexte par exemple find(1). Ainsi, vous savez immdiatement comment appeler man. Les pages de manuel sont gnralement classes dans des contextes de 1 9, ainsi que n : 1. Commandes utilisateur 6. Jeux 2. Appels systme 7. Divers 3. Fonctions du langage C 8. Commandes dadministration systme 4. Formats de chiers, chiers de priphriques 9. Fonctions du noyau 5. Fichiers de conguration 10. Nouvelles commandes En interne, la reprsentation des chiers daide passe par less. Les touches de navigation expliques 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 laide dun navigateur daide ou dun navigateur web. Les exemples suivants montrent comment afficher la page de manuel de ls et la liste de toutes les pages disponibles :
utilisateur$ gnome-help man:ls utilisateur$ khelpcenter man:ls utilisateur$ khelpcenter man:(index)

LA CONSOLE

179

Le programme Konqueror peut galement, sous KDE, afficher des pages de manuel appeles grce #commande.
Pages info

Les pages de manuel ont linconvnient dtre difciles structurer. Le format info offre une alternative intressante, notamment pour les textes daide trs longs. On appelle info avec la commande info commande. Si on le lance sans paramtres, les diffrents thmes daide safchent. Sa structure plus claire prsente cependant un inconvnient : la navigation dans les pages info est peu pratique, car il nexiste aucun mcanisme de recherche.
Raccourcis clavier dinfo z R BE t e N P U L H ? c+0 Q fait dfiler le texte vers le bas fait dfiler le texte vers le haut passe au dbut ou la fin de lunit de page info dplace le curseur jusquau renvoi suivant suit le renvoi vers une autre unit info passe lunit info suivante dans la mme hirarchie passe lunit info prcdente dans la mme hirarchie remonte dun niveau dans la hirarchie retourne au texte affich prcdemment affiche laide cherche une commande ferme la fentre courante quitte lditeur

Vous pouvez aussi utiliser lditeur emacs ou xemacs pour lire les pages info. Les diffrentes sections sont alors accessibles par un clic. Une autre alternative est le programme pinfo. Sous KDE et Gnome, vous pouvez lire les pages info grce au systme daide intgr. Les exemples suivants montrent comment afficher respectivement la page info dEmacs et le sommaire de toutes les pages info :
utilisateur$ utilisateur$ utilisateur$ utilisateur$ gnome-help info:emacs gnome-help toc:info khelpcenter info:/emacs khelpcenter info:/dir

13

Gestion des fichiers


Ce chapitre dcrit comment interagir avec des chiers. Il couvre les thmes suivants : chiers, rpertoires et liens ; copie, dplacement et suppression des chiers et des rpertoires ; compression et archive des chiers ; recherche de chiers ; gravure des CD et des DVD ; droits daccs aux chiers ; structure des rpertoires Linux ; chiers de priphriques.

13.1 Interaction avec des fichiers et des rpertoires


Prsentons rapidement les faits importants propos des noms de chiers : Sous Linux, les noms de chiers sont limits 255 caractres. La casse est importante : Linux distingue les minuscules des majuscules. Les caractres internationaux (comme les lettres accentues) sont autoriss, mais peuvent poser problme lorsquun jeu de caractres diffrent est utilis (par exemple sur un rseau). Depuis quelque temps, presque toutes les distributions utilisent lUTF-8 comme jeu de caractres par dfaut. Les noms de chiers peuvent contenir plusieurs points. Par exemple, README.bootutils.gz est un nom tout fait commun. Il sagit dun chier README compress sur le thme des utilitaires damorage. Les chiers qui commencent par un point se comportent comme des chiers cachs. Ces derniers ne safchent pas par dfaut avec ls ou les divers gestionnaires de chiers. Les noms de chiers qui ne sont pas interprtables tels quels par les commandes (comme ceux avec des espaces) doivent tre encadrs par des guillemets (par exemple, "a b"). La taille des chiers est virtuellement illimite. Les anciennes distributions posaient une limite 2 Go. La limite se calcule actuellement plutt en traoctets. Selon la manire dont le noyau Linux est compil et le systme de chiers utilis, on peut avoir des chiers encore plus volumineux.

Rpertoires
Arborescence de rpertoires

Sous Linux, larborescence commence par le caractre /. Les lettres de lecteur comme C: nont plus de sens et ne sont dailleurs plus possibles. Dans cet ouvrage, nous considrons que tous les rpertoires suivants se situent en-dessous dans larborescence ; le rpertoire racine se trouve donc tout en haut. Certains ouvrages adoptent la convention inverse, ce qui

182

LINUX

Rpertoire personnel

Rpertoires . et ..

correspond mieux la structure darbre (la racine en bas, les ramications vers le haut), mais cest une terminologie peu courante. Comme nous lavons vu au Chapitre 3, une fois connect, vous accdez directement votre rpertoire personnel ou rpertoire home. Les chiers et rpertoires qui sy trouvent vous appartiennent. Les autres utilisateurs ( lexception de root) ne peuvent ni les modier, ni les supprimer. Le rpertoire personnel se trouve gnralement dans larborescence lemplacement /home/ identifiant_utilisateur ( lexception de root, pour lequel le rpertoire personnel est /root). Il serait certes pnible davoir saisir ce chemin systmatiquement ; cest pourquoi le rpertoire personnel est accessible grce au raccourci ~ (caractre tilde). Vous pouvez galement utiliser le raccourci ~identifiant pour accder aux comptes des autres utilisateurs. Dans chaque rpertoire, il existe deux sous-rpertoires particuliers qui servent grer la hirarchie des rpertoires. Le rpertoire nomm . est un lien vers le rpertoire courant et le rpertoire .. est un lien vers le rpertoire parent. Les deux commandes suivantes montrent comment utiliser ces rpertoires. La premire copie le chier /etc/fstab dans le rpertoire courant. Si celui-ci est /home/nom, le chemin du nouveau chier est /home/nom/fstab.
utilisateur$ cp /etc/fstab .

Dans le second exemple, nous commenons par nous dplacer dans le rpertoire ~/linux avec la commande cd. La commande cp cre une copie de sauvegarde du chier partie3.odt dans le rpertoire parent sous le nom partie3.odt.bak.
utilisateur$ cd ~/linux utilisateur$ cp partie3.odt ../partie3.odt.bak

Si le rpertoire personnel sappelle /home/nom, nous avons copi le chier /home/nom/linux/ partie3.odt dans le chier /home/nom/partie3.odt.bak.
Caractres spciaux pour les rpertoires ~ rpertoire personnel . rpertoire courant .. rpertoire parent du rpertoire courant

Commandes lmentaires de gestion des fichiers et des rpertoires


Mme si KDE et Gnome fournissent des gestionnaires de chiers, les utilisateurs avancs de Linux ont tendance utiliser des commandes en mode texte. Le tableau suivant rsume les commandes les plus importantes.
Gestion des fichiers et des rpertoires cd cp less modifie le rpertoire courant copie des fichiers affiche un fichier texte page par page

GESTION DES FICHIERS

183
affiche tous les fichiers dun rpertoire cre un nouveau rpertoire dplace des fichiers ou modifie leur nom supprime des fichiers supprime des rpertoires

ls mkdir mv rm rmdir
Liste des fichiers (ls)

ls afche une liste de tous les chiers du rpertoire courant. Si vous souhaitez aussi afcher les chiers cachs, utilisez loption -a. Si vous dsirez afcher dautres informations, telles que la taille du chier ou le propritaire, utilisez loption -l. Par dfaut, le rsultat de ls est tri alphabtiquement. Pour trier la liste par date de dernire modication, par taille ou par extension, utilisez respectivement les options -t, -S et -X. La commande suivante afche tous les chiers *.png dans le rpertoire figures, tris par taille (dans lordre dcroissant).
utilisateur$ -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 ... $ ls -l michael michael michael michael michael michael michael michael -S figures/*.png users 58865 2008-03-08 users 53417 2008-07-19 users 42516 2008-06-27 users 30792 2008-03-28 users 18984 2008-04-04 users 16834 2008-03-29 users 15341 2008-03-24 users 14177 2008-04-04 12:53 17:08 12:44 14:09 16:39 11:15 11:25 16:33 ./these-gantt.png ./schedule.png ./dct-vect.png ./interpol-luma.png ./filter-samples.png ./transform.png ./4ss.png ./filter-block.png

Une ligne typique du rsultat de ls -l ressemble ceci :


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

Il sagit du chier 4ss.png, modi la dernire fois le 24 mars 2008 11h25. Il a une taille de 15 341 octets et appartient un utilisateur dont lidentiant est michael dans le groupe users. Les dix caractres en dbit de ligne indiquent le type de chier et les droits daccs. Le chier peut tre de cinq types diffrents : - indique un chier normal, d un rpertoire (directory), b ou c un chier de priphrique (de type bloc ou caractre), l un lien symbolique. Les trois caractres suivants (rwx) prcisent si le propritaire peut lire, modier et excuter le chier. Les caractres suivants fournissent des informations similaires pour les membres du groupe et tous les autres utilisateurs du systme. Le chiffre situ aprs ce groupe de dix caractres indique le nombre de liens durs vers le chier. Nous parlerons plus tard des liens durs et des droits daccs. La plupart des distributions congurent ls pour quil afche les chiers et rpertoires dans diffrentes couleurs selon leur type. Si ce nest pas votre cas, vous pouvez activer ce comportement avec loption --color. ls nafche normalement que les chiers prsents dans le rpertoire courant. Si vous dsirez afcher ceux des sous-rpertoires, utilisez loption -R. Cette option, signiant "rcursif", sapplique de nombreuses commandes sous Linux. La commande suivante fait la liste de tous les chiers de tous les sous-rpertoires (y compris les rpertoires et chiers cachs).

184

LINUX

Cette liste est gnralement trs longue. Cest pour cette raison que lon transfre le rsultat de la commande vers less grce | less :
utilisateur$ ls -alR | less
Copier des fichiers

La commande cp nom1 nom2 copie le chier nom1 sous le nom nom2. Pour copier plusieurs chiers, appelez la commande cp nom1 nom2 ... rpertoire_cible. Les commandes suivantes passent dans le rpertoire linux, crent un rpertoire bak et y copient tous les chiers *.odt.
utilisateur$ cd linux utilisateur$ mkdir bak utilisateur$ cp *.odt bak/

Pour copier tout un rpertoire, ainsi que son contenu, utilisez cp -a. Dans lexemple suivant, cd sans argument permet daller dans le rpertoire personnel. La deuxime commande cre une copie complte du rpertoire linux sous le nom linux-bak.
utilisateur$ cd utilisateur$ cp -a linux linux-bak
Supprimer des fichiers et des dossiers

rm fichier supprime le chier indiqu irrvocablement. Par dfaut, rm ne peut tre utilis que pour les chiers, et non pour les rpertoires. Pour ces derniers, la commande rmdir rpertoire est prvue, mais elle ne fonctionne que lorsque le rpertoire est vide. En pratique, on utilise donc le plus souvent les options -rf de rm. Cette commande supprime tous les sous-rpertoires et chiers de manire rcursive et sans demander de conrmation. Par consquent, rm -rf est une commande trs dangereuse ! La commande suivante supprime la copie de sauvegarde cre au paragraphe prcdent :
utilisateur$ rm -rf linux-bak/

Dterminer lespace ncessaire aux fichiers et rpertoires


ls -l indique la taille dun chier. Il est nanmoins souvent utile de connatre la place prise par tous les chiers dun rpertoire, lespace restant sur le disque dur, etc. Les commandes df et du ont t prvues cet effet.
Dterminer la capacit dun disque dur

df afche pour toute partition et tout support de donnes mont dans le systme de chiers, sa taille totale et lespace libre restant. Dans lexemple suivant, df afche des rsultats pour quatre partitions et supports de donnes. Dans le rpertoire systme (premire ligne), il reste 620 Mo. La deuxime ligne indique la place quil reste dans le systme de chiers temporaire. Ce dernier na pas de signication dans un usage courant ; il permet des changes de donnes rapides entre deux programmes. La troisime ligne est une partition Windows et la quatrime, un rpertoire rseau.
utilisateur$ df Sys. de fich. /dev/hdc2 tmpfs /dev/sda2 mars:/data 1K-blocs 6940516 777764 4715772 97881408 Occup 5962076 0 2040692 77136160 Disponible 620192 777764 2675080 15773120 Capacit 91% 0% 44% 84% Mont sur / /dev/shm /vfat /data

GESTION DES FICHIERS

185

df permet galement de savoir sur quelle partition se trouve physiquement un rpertoire. Dans lexemple suivant, le rpertoire /home/michael se trouve sur la partition /dev/sda6, monte lemplacement /home dans larborescence :
utilisateur$ df /home/michael Sys. de fich. 1K-blocs Occup Disponible Capacit Mont sur /dev/sda6 9621848 4429352 4703720 49% /home
Dterminer la taille dun rpertoire

du permet de connatre la taille du rpertoire courant et de tous les sous-rpertoires. Il renvoie le rsultat en kilo-octets. La commande suivante montre que le rpertoire Photos/ mariage occupe 3,2 Go et afche la rpartition 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 rcentes de Gnome, est un outil confortable pour afficher la taille des fichiers et des rpertoires de manire graphique. Dans KDE, cette vue est intgre Konqueror.

Caractres joker
On souhaite souvent excuter des commandes sur un ensemble de chiers par exemple, tous les chiers se terminant par .odt. Pour cela, on utilise des caractres joker dans les paramtres des commandes Linux.
Caractres joker pour les noms de fichiers ? * [abc] [a-f] [!abc] [^abc] exactement un caractre arbitraire un nombre arbitraire (y compris 0) de caractres arbitraires exactement un des caractres entre crochets (a, b ou c) exactement un caractre dans lintervalle indiqu un caractre diffrent des caractres entre crochets idem

186
* et ?

LINUX

? reprsente un caractre arbitraire, et * un nombre arbitraire (y compris 0) de caractres arbitraires. * reprsente nimporte quel caractre, y compris les points, condition que le chier ne commence pas par un point. Si vous dsirez traiter tous les chiers, il faut utiliser le raccourci * et non pas, comme sous DOS, *.*. Vous pouvez sans problme utiliser plusieurs caractres joker. Ainsi, *graph* renverra tous les chiers dont le nom contient graph : par exemple, graphique.png, interfacegraphique et LISEZMOI.graph.

[] et [!]

Lorsque les caractres ? et * sont trop gnraux, vous pouvez appliquer des restrictions supplmentaires grce aux crochets. [abc] est joker pour lune des trois lettres a, b ou c. Lorsque deux lments sont spars par un tiret, il sagit de lintervalle entre ces deux lments. Par exemple, [a-f]* renverra tous les chiers dont le nom commence par une lettre entre a et f. *[_.-]* reprsente un chier dont le nom contient un tiret de soulignement, un point ou un tiret. On peut aussi exclure des caractres : [!a-z]* dsigne tous les chiers dont le nom ne commence pas par une minuscule, et *.[hc] tous ceux qui se terminent par .c ou .h. Les caractres joker peuvent galement tre utiliss pour les rpertoires. */*.odt reprsente tous les chiers *.odt dans un sous-rpertoire du rpertoire courant ( un seul niveau ; cela ne renvoie pas les chiers dans un sous-sous-rpertoire). /usr/*bin/* reprsente tous les chiers qui se trouvent dans les rpertoires /usr/bin et /usr/sbin. Lextension des caractres joker nest pas gre par les commandes appeles, mais par linterprteur qui appelle la commande. bash connat un certain nombre de caractres joker, en plus de ceux que nous venons de dcrire.

Problmes lis lutilisation des caractres joker


Lutilisation des caractres joker semble premire vue plus simple que ce quelle est rellement. Si vous rencontrez des problmes avec ces caractres, vous pouvez mener quelques expriences grce la commande echo chane. Elle afche tous les chiers concerns par une combinaison de caractres joker sans les modier. Un problme classique est que * ne reprsente pas seulement les chiers, mais aussi les rpertoires. Par consquent, ls * afche tous les chiers du rpertoire courant, mais aussi le contenu de tous les sous-rpertoires. Pour viter cela, on utilise ici loption -d ; ce nest cependant pas le cas des autres commandes.
Traiter les rpertoires avec */.

Lorsque vous souhaitez traiter tous les rpertoires (sans toucher aux chiers), vous pouvez utiliser la combinaison de caractres joker */.. Elle reprsente tous les "chiers" qui ont un lien vers eux-mmes dans leur sous-rpertoire, ce qui est uniquement le cas des rpertoires.
utilisateur$ echo */.

Extension gre par linterprteur de commandes

Le fait que lextension des caractres joker soit gre par linterprteur de commandes, et non directement par la commande, ne prsente pas que des avantages. Par exemple, ls -R *.odt ne renvoie pas tous les chiers *.odt des sous-rpertoires du rpertoire courant. La raison est simple : linterprteur de commandes tend le motif *.odt dans le rpertoire courant et passe ls la liste des chiers trouvs. Par consquent, si vous navez pas de rpertoire se terminant par .odt, ls a termin et loption -R ne peut rien y faire.

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 des fichiers

Renommer des fichiers avec sed

Il nest pas possible de renommer tous les chiers *.x en *.y avec la commande mv *.x *.y. La raison est la mme que dans le paragraphe prcdent. Le motif *.x est remplac par la liste de tous les chiers correspondants et il nexiste pas de chier correspondant *.y. La commande mv a donc pour paramtres une liste de chiers se terminant par *.x et lexpression *.y et elle ne sait pas comment traiter ces arguments. mv ne sait de toute faon traiter plusieurs arguments la fois que quand le dernier argument est un rpertoire. Les utilisateurs avancs dUnix ont videmment trouv une parade ces problmes : ils utilisent lditeur de ux sed. Comme il est complexe utiliser, les exemples ci-dessous sapparentent plutt de la programmation de linterprteur de commandes. Dans ce premier exemple, ls fournit la liste des chiers qui doivent tre renomms et la passe sed. Celui-ci construit une liste de commandes cp grce la commande s (recherche dexpressions rgulires et remplacement), puis transmet ces commandes un nouvel interprteur de commandes qui les lance. Tous les chiers *.xxx sont alors copis dans des chiers *.yyy.
utilisateur$ ls *.xxx | sed s/\(.*\)\.xxx$/cp & \1.yyy/ | sh

Une autre possibilit est de formuler cela sous la forme dune boucle nous supposons que linterprteur de commandes utilis est Bash. Cette commande copie tous les chiers *.txt dans des chiers *.txt~ (le caractre ~ en n de chier est souvent utilis pour les chiers de sauvegarde).
utilisateur$ for i in *.txt; do cp $i $i~; done

Fichiers cachs
Sous Linux, les chiers commenant par un point sont considrs comme des chiers cachs. * ne renvoie donc pas vraiment tous les chiers dun rpertoire : ceux qui dbutent par un point sont ignors. .* permet certes de rcuprer les chiers cachs, mais aussi les rpertoires . et .. (rpertoire courant et rpertoire parent). Selon la commande utilise, cette syntaxe peut tre fatale. On peut utiliser le motif .[!.]*. Celui-ci reprsente tous les noms de chiers dont le premier caractre est un point, dont le deuxime caractre existe et nest pas un point, et qui ont un nombre arbitraire de caractres arbitraires.
utilisateur$ echo .[!.]*

Mais la solution la plus universelle est dutiliser find :


utilisateur$ find . -name .*

188

LINUX

13.2 Liens
Les liens permettent daccder un mme chier depuis diffrents endroits du systme de chiers, sans que ce chier ne soit physiquement enregistr plusieurs fois. Ils permettent dviter la redondance. Ils sont particulirement courants dans les rpertoires /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 dun exemple. Supposons quun rpertoire test contienne le chier abc. La commande ln abc xyz semble crer un nouveau chier xyz. En ralit, abc et xyz sont deux liens vers le mme chier. Pour le vrier, utilisez la commande ls -l. La deuxime colonne indique le nombre de liens associs un chier donn (dans notre cas, deux). Si vous utilisez galement loption -i, vous pouvez voir que les deux chiers correspondent au mme inode (ce terme sera expliqu plus tard), ce qui prouve quil sagit bien du mme chier sur le systme de chiers.
utilisateur$ ls -li 13713417 -rw-r--r-utilisateur$ ln abc utilisateur$ ls -li 13713417 -rw-r--r-13713417 -rw-r--r-1 michael users 205 2008-06-26 15:34 abc xyz 2 michael users 205 2008-06-26 15:34 abc 2 michael users 205 2008-06-26 15:34 xyz

Lorsque vous modiez lun des deux chiers, lautre est automatiquement modi (puisquil ne sagit en fait que dun seul et mme chier). Si vous supprimez lun des deux, vous ne faites que rduire le nombre de liens.
Des rsultats tranges peuvent se produire lorsque vous modifiez avec un diteur de texte un fichier avec un lien dur : le lien pointe, aprs le premier enregistrement, sur le fichier de sauvegarde et, aprs le second enregistrement, dans le vide. La raison est la suivante : certains diteurs crent un fichier de sauvegarde lors de lenregistrement. Ce dernier 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 symboliques

Il existe deux types de liens. Lexemple ci-dessus a mis en place des liens durs, crs par dfaut par la commande ln. Si vous utilisez loption -s, vous crez un lien symbolique. Ces liens ont lavantage de pouvoir tre utiliss sur un disque physique diffrent de celui du chier et de pouvoir galement tre appliqus des rpertoires (ces deux possibilits ne sont pas offertes par des liens durs). ls afche le chier dorigine des liens symboliques. En revanche, il nexiste pas de compteur pour le nombre de liens associs au chier dorigine. La diffrence interne entre un lien symbolique et un lien dur est que le premier enregistre le chemin du chier li, tandis que le second enregistre linode du chier.
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

GESTION DES FICHIERS

189

Pour crer un lien symbolique, vous devez vous trouver dans le rpertoire qui contiendra le lien. Sinon, il arrive que le lien ne pointe pas vers lendroit souhait.

Les liens symboliques se comportent galement diffremment des liens durs. Supprimer le chier dorigine (en loccurrence abc) ne modie pas le lien vers ce chier (efg), mais celuici pointe alors vers un emplacement vide. Inversement, si le lien symbolique est supprim, cela na aucune inuence sur le chier dorigine. On peut aussi crer un lien symbolique vers un rpertoire. Cela peut cependant causer quelques confusions, car toute larborescence pointe par le lien symbolique semble recopie. En fait, le lien vers le rpertoire nest quun chemin daccs supplmentaire aux mmes chiers et sous-rpertoires. Essayez, autant que possible, de ne pas utiliser de chemins absolus, mais relatifs, lorsque vous crez un lien symbolique. Ainsi, vous viterez des problmes si le rpertoire est mont par NFS ou si vous dplacez des rpertoires. Les liens symboliques et les liens durs ont chacun leurs avantages. Les premiers sont plus simples grer, tandis que les seconds demandent moins de place disque et sont plus rapides.

13.3 Chercher des fichiers


Il existe plusieurs possibilits pour chercher des chiers sous Linux. Les plus importantes sont rsumes dans le tableau ci-aprs. La commande utiliser dpend du type de chier recherch et des informations connues (nom du chier, contenu, etc.).
Recherche de fichiers beagle-query grep find locate whereis which cherche des fichiers selon leur contenu cherche du texte dans un fichier texte cherche des fichiers selon leur nom, leur date, leur taille, etc. cherche des fichiers selon leur nom cherche des fichiers dans des rpertoires prdfinis cherche des programmes dans les rpertoires de la variable denvironnement PATH

which et whereis
which cherche la commande passe en argument. Il renvoie le nom complet de la commande lorsque son nom est indiqu sans information de chemin. Il parcourt les rpertoires de la variable denvironnement PATH et est donc extrmement rapide. Cette variable contient une liste de rpertoires dans lesquels on peut trouver des

190

LINUX

programmes. Notez quelle contient gnralement plus de rpertoires pour root que pour un utilisateur normal.
utilisateur$ which emacs /usr/bin/emacs

whereis parcourt tous les rpertoires usuels pour les chiers excutables, les chiers de conguration, les pages de manuel et le code source, an de trouver le nom de chier indiqu. Il couvre plus de rpertoires que which et ne se limite pas aux programmes. Cependant, il nindique que les chiers qui se trouvent dans les rpertoires prdnis 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 afche les chiers dont le nom complet (chemin + nom de chier) correspond au motif pass en argument. La recherche est trs rapide car locate, plutt que de parcourir le systme de chiers, accde une base de donnes qui contient tous les noms de chiers du systme. Certaines distributions nafchent que les chiers auxquels lutilisateur a effectivement accs. Lancez locate en tant que root lorsque vous cherchez des chiers systme.
Exemple

La commande suivante cherche le chier de conguration 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 caractres joker. Ainsi, locate *dvips ne renverra que les chiers dont le nom se termine par dvips.
updatedb

La qualit des rsultats de la recherche dpend largement de la qualit de la base de donnes 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 ncessite cependant des droits root.

find et grep
find est une commande la fois extrmement puissante et complexe pour chercher des chiers. Elle prend en argument diffrents critres de recherche (motif pour le nom du chier, date de cration ou de dernier accs, etc.). man find fournit une rfrence complte de toutes les options de find. Les exemples suivants vous permettront de faire vos premiers pas avec find. Notez quil est plutt long sexcuter, car il parcourt des pans entiers du systme de chiers, rpertoire aprs rpertoire.
find

La commande find, sans paramtre supplmentaire, afche une liste de tous les chiers dans le rpertoire courant et ses sous-rpertoires.

GESTION DES FICHIERS

191

La commande suivante cherche tous les chiers qui commencent par .e dans le rpertoire courant et ses sous-rpertoires :
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 rpertoire /usr/share/texmf tous les chiers *.tex prsents dans un rpertoire 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 ...

Lexemple suivant afche tous les rpertoires contenus dans /etc/. Les chiers rguliers ne sont pas montrs. La liste est trie alphabtiquement 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 afche tous les chiers des sous-rpertoires de /home qui appartiennent aux utilisateurs du groupe users et qui ont t modis au cours des cinq derniers jours. -ctime +5 afche les chiers modis il y a plus de cinq jours, et -ctime 5 ceux modis il y a exactement cinq jours.
root# find /home -group users -ctime -5 ...

Cette commande supprime tous les chiers de sauvegarde dans le rpertoire courant et ses sous-rpertoires. Une liste est construite avec les rsultats de find, puis elle est passe rm :
utilisateur$ rm $(find . -name *~)

Si find renvoie beaucoup de chiers, il se peut que la commande ci-dessus afche une erreur : la ligne de commande tendue est trop longue par rapport la taille maximale autorise. Dans ce cas, vous devez utiliser loption -exec de find, ou la commande xargs. Reportezvous aux pages de manuel man find et man xargs pour plus dinformations ce sujet.

192
grep

LINUX

La commande grep parcourt un chier texte la recherche dun motif de recherche. Selon les options, elle afche les lignes du chier correspondant ou le nombre de lignes concernes. Le motif de recherche est une expression rationnelle. La commande suivante cherche la chane de caractres "emacs" dans tous les chiers *.tex du rpertoire. Une liste de toutes les lignes correspondantes (prxes par le nom du chier) safche lcran.
utilisateur$ grep emacs *.tex

Cet exemple compte le nombre de fois que la fonction arctan est utilise dans les chiers *.c du rpertoire :
utilisateur$ grep -c arctan\(.*\) *.c

grep -v renvoie comme rsultat toutes les lignes qui ne contiennent pas le motif de recherche. Dans lexemple suivant, grep supprime toutes les lignes qui commencent par le caractre # dans le chier configfile. La commande cat supprime toutes les lignes vides. Le rsultat est enregistr dans le chier nocomments.
utilisateur$ grep -v ^# configfile | cat -s > nocomments
Combiner find et grep

Combiner find et grep permet de mener des recherches particulirement efcaces. Cet exemple afche tous les chiers *.tex qui contiennent la chane de caractres "emacs" :
utilisateur$ find -name *.tex -type f -exec grep -q emacs {} \; -print

La commande suivante afche tous les chiers du rpertoire courant, dont la taille est infrieure 10 Ko et dont le contenu correspond lexpression rationnelle case.*in. La liste des chiers trouvs est enregistre dans le chier resultat.
utilisateur$ find -name * -maxdepth 1 -size -10k \ > -exec grep -q case.*in {} \; -print > resultat

Beagle
Beagle est un outil de recherche relativement rcent, qui fournit certains avantages en plus de ceux des outils traits ci-dessus : La recherche est rapide ; elle sappuie comme locate sur un chier dindex. Lindex de recherche est actualis chaque modication de chiers ; il est donc toujours jour. La recherche inclut le contenu des chiers. Alors que la combinaison find/grep se limite aux chiers texte, Beagle permet de grer davantage de formats : documents OpenOfce.org, pages Web (y compris le cache de Konqueror), courriers lectroniques (KMail et Evolution), chiers PDF, etc. Beagle prsente nanmoins certains inconvnients. Il est dvelopp en C# et ncessite donc dinstaller Mono. Son chier dindex est trs volumineux. Il existe des formats que Beagle ne prend pas encore en compte, comme les courriers lectroniques de Thunderbird ou les chiers LaTeX. Les systmes de donnes NFS posent galement problme : ils peuvent tre parcourus, mais cela prend du temps et on ne peut pas actualiser automatiquement lindex.

GESTION DES FICHIERS

193

Beagle possde une interface graphique pour Gnome, nomme gnome-beagle-search et qui souvre avec F12, et une interface graphique pour KDE, nomme kerry. Beagle peut aussi tre intgr 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 mot1 OR mot2 mot1 -mot2 "mot1 mot2" ext:pdf .pdf recherche les documents contenant les deux termes de recherche recherche les documents contenant au moins un terme de recherche ; OR doit tre saisi en majuscules recherche les documents contenant mot1, mais pas mot2 recherche les documents contenant la phrase "mot1 mot2" restreint la recherche aux documents 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 programme est relativement rcent et donc moins mr que Beagle, mais il a dores et dj la rputation dtre plus efcace. Aprs linstallation, vous devez vous dconnecter, puis vous reconnecter. Une fois que vous avez laiss Tracker le temps dindexer votre systme de chiers, vous pouvez lancer une recherche avec tracker-search-tool. Si vous travaillez sous Gnome, vous pouvez aussi lutiliser directement dans Nautilus avec le bouton Rechercher. Tracker enregistre les donnes dindex dans le rpertoire ~/.cache/tracker. Par dfaut, seuls les chiers du rpertoire personnel sont indexs. Si cela ne vous convient pas, vous pouvez modier la conguration avec tracker-preferences. Lorsque jai test ce programme, il ne prenait pas encore en charge les donnes de Thunderbird. Il ignorait galement mes chiers LaTeX et PostScript.

Google Desktop
Google a galement lanc une version bta de son outil de recherche local dj bien tabli sous Windows. Son succs sous Linux reste cependant conrmer. Dune part, il ne sagit pas dun logiciel libre. Dautre part, la version Windows de Google Desktop a dj entran de nombreuses questions quant la condentialit des donnes et il est probable que cet lment proccupe galement les utilisateurs de la version Linux.

194
Installation

LINUX

Utilisation

Google fournit des paquetages RPM et DEB en tlchargement, ainsi quun dpt de paquetages qui permet dactualiser automatiquement les paquetages avec APT, YUM et autres (deuxime lien). http://desktop.google.com/linux/ ; http://www.google.com/linuxrepositories/ Google Desktop est activ lors de la connexion Gnome ou KDE. Il lance en tche de fond lindexation des donnes (programme gdl_inderxer). Par dfaut, seul le rpertoire personnel, ainsi que les rpertoires man et info sont parcourus. Lindexation de dpart fonctionne avec une priorit trs basse et interfre peu avec le fonctionnement de lordinateur, mais elle peut durer plusieurs heures. Lindex est enregistr dans ~/.google/desktop. La recherche et la modication des paramtres sont gres par une interface web pour laquelle Google Desktop lance un petit serveur web sur le port 33555.

13.4 Archiver et scuriser des donnes


Compresser et archiver des donnes (gzip, tar, zip)
Pour compresser des donnes, on utilise gnralement sous Windows WinZip ou un programme compatible. Il existe aussi plusieurs interfaces sous Linux, comme file-roller (sous Gnome) et ark (sous KDE). Cette section prsente quelques alternatives en ligne de commande, rsumes dans le tableau ci-dessous.
Compresser et archiver des donnes gzip gunzip bzip2 bunzip2 tar zip unzip zipinfo
gzip et gunzip

compresse un fichier dcompresse un fichier compresse un fichier (compression plus importante, mais plus lente) dcompresse un fichier cre et extrait des archives de fichiers cre une archive Zip compatible avec Windows extrait une archive Zip affiche des informations sur les archives Zip

gzip compresse le chier fourni en paramtre et le nomme nom.gz. gunzip effectue lopration inverse. Les deux commandes utilisent lalgorithme LZ77-Lempel-Ziv, qui est surtout efcace pour les chiers texte (et nettement moins pour les chiers audio ou vido). La compression est sans perte aprs la dcompression, le chier dorigine 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 bunzip2

bzip2 et bunzip2 sont une alternative gzip et gunzip. Ces commandes prsentent lavantage de mieux compresser les chiers, mais linconvnient de sexcuter plus lentement.

GESTION DES FICHIERS

195

Le chier compress reoit lextension .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 rfrence pour rassembler plusieurs chiers dans une archive, qui peut ensuite tre compresse laide de gzip ou bzip2. La commande suivante regroupe les chiers du rpertoire livre dans larchive compresse livre.tgz. En ce qui concerne les options, c indique tar quil doit crer une archive. z signie "zip" : le chier doit tre compress avec gzip. f signie "le" (chier) : cette option donne le nom du chier crer, gnralement avec lextension .tar.gz ou .tgz.
utilisateur$ tar -czf livre.tgz livre/

tar -tzf afche le contenu dune archive. Les chiers quelle contient sont dans un ordre alatoire. 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 dcompresse larchive et en extrait tous les chiers :


utilisateur$ tar -xzf livre.tgz

Si larchive est compresse avec bzip2 et non avec gzip, utilisez loption j la place de z.
zip

tar est le format de prdilection des archives sous Linux. Mais si vous dsirez communiquer avec des utilisateurs de Windows, le format Zip est probablement plus judicieux. La commande suivante compresse tous les chiers HTML du rpertoire dans le chier monarchive.zip :
utilisateur$ zip monarchive.zip *.html

Si vous souhaitez archiver un rpertoire complet, utilisez loption -r :


utilisateur$ zip -r monarchive.zip siteweb/

Vous pouvez afcher le contenu dun chier Zip avec zipinfo :


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

Pour dcompresser larchive, utilisez unzip :


utilisateur$ unzip monarchive.zip

196

LINUX

Sauvegardes (rsync)
Les disques durs ne vivent pas ternellement, les ordinateurs portables peuvent tre vols et un rm -rf malencontreux peut provoquer des dgts importants. Il est donc impossible de se passer de sauvegardes rgulires de vos donnes. Il existe un nombre virtuellement illimit de stratgies de sauvegarde. Je me limite donc prsenter la commande rsync, qui permet de synchroniser des arborescences de rpertoires, par exemple pour enregistrer des donnes sur un disque externe.
rsync

Au dpart, rsync a t conu pour synchroniser des rpertoires sur un rseau. Nous nous intressons ici la copie entre deux disques locaux. La commande suivante copie tous les chiers *.odt dun rpertoire vers un second rpertoire. Contrairement cp, les chiers dj prsents (par exemple, depuis la sauvegarde prcdente) et non modis ne sont pas recopis. Pour une petite sauvegarde, cela ne change pas grand-chose, mais lorsquil sagit darborescences de plusieurs gigaoctets, la diffrence se fait rapidement sentir.
utilisateur$ rsync rep1/*.odt rep2/

Pour synchroniser un rpertoire complet, ainsi que ses sous-rpertoires, utilisez loption -a qui est un raccourci pour une longue suite doptions (-rlptgoD). Elle traite rcursivement tous les sous-rpertoires et tente de prserver au mieux les informations relatives aux chiers (propritaire, groupe, date de la dernire modication, etc.). Si rep2 nexiste pas encore, le rpertoire est cr.
utilisateur$ rsync -a rep1/ rep2/

Par dfaut, rsync copie tous les nouveaux chiers et ceux modis, mais ne supprime rien. Si vous souhaitez que les chiers supprims dans rep1 le soient aussi dans rep2, passez loption --delete. Attention, cette option est dangereuse : si vous effacez accidentellement un rpertoire, il le sera galement sur le disque de sauvegarde la prochaine sauvegarde. Cependant, sur la dure, il est difcile dviter dutiliser loption --delete si on ne veut pas conserver de chiers inutiles pendant des annes. Si vous dsirez avoir un retour sur les chiers modis et sur la vitesse de transfert des donnes, utilisez loption -v.
Automatiser les sauvegardes

Plutt que de saisir chaque fois la commande rsync, il vaut mieux lencapsuler dans un petit script shell. On vite ainsi les fautes de frappe. Voici un exemple dutilisation de ce script :
#!/bin/sh mount /backup # monte le rpertoire NFS de sauvegarde rsync -av --delete /rep1/* /backup/machineX/rep1/ rsync -av --delete /rep2/* /backup/machineX/rep2/

Il suft ensuite de le lancer par une tche cron.


Voici ma stratgie personnelle de sauvegarde. Tous mes ordinateurs sont de temps en temps connects un serveur central. Je synchronise une fois par semaine mes rpertoires de donnes personnels avec le rpertoire correspondant sur le serveur grce rsync. Pour les fichiers importants sur lesquels je travaille, la sauvegarde

GESTION DES FICHIERS

197

est lance tous les jours. Les fichiers sauvegarder se trouvent donc sur deux disques durs indpendants lun de lautre. Une fois par mois, je synchronise toute la partition de donnes du serveur avec un disque dur USB. De plus, je cre des CD ou des DVD de sauvegarde par projet (par exemple, les fichiers dun livre ou les photos numriques de lanne). Ces dix dernires annes, jai dplor la perte de quelques disques durs suite des dfauts matriels, mais jamais de perte de donnes consquente.
Autres solutions de sauvegarde

Il existe bien sr dautres solutions pour effectuer des sauvegardes : Les commandes pour graver des CD et des DVD seront prsentes la section 13.5. La commande rdiff-backup est une alternative intressante rsync : http://www.nongnu.org/rdiff-backup/. Il existe aussi diverses interfaces graphiques de sauvegarde, mme si aucun standard de fait ne simpose actuellement. Voici deux exemples : sbackup (http://sbackup.sourceforge.net) et unison (http://www.cis.upenn.edu/~bcpierce/unison). En plus de ces programmes libres, il existe des solutions propritaires comme Arkeia, un systme client/serveur pens pour des rseaux complets.

13.5 Graver des CD et des DVD


Nous avons dj parl des interfaces graphiques de gravure de CD et de DVD aux Chapitres 4 et 5. Cette section prsente les commandes appeles en coulisses par ces programmes. Cela peut tre utile, par exemple, pour automatiser la cration dun CD de sauvegarde via un script.
Noms des priphriques

Avant de pouvoir utiliser les commandes dcrites, vous devez connatre le nom de priphrique de votre lecteur. Si ce dernier se trouve sur le bus IDE et que vous utilisez une distribution plutt ancienne, le nom du priphrique sera probablement /dev/hda, /dev/hdb, ou construit sur ce modle. Sur les distributions plus rcentes et pour les priphriques SATA, SCSI, USB et Firewire, ce sera sans doute /dev/scd0, /dev/scd1, /dev/sr0 ou /dev/sr1. Certaines commandes demandent le nom du priphrique sous la forme dun triplet de nombres (par exemple dev=3,0,0), qui se compose du numro de bus SCSI (souvent 0), de lidentiant SCSI du priphrique et de lunit 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 larborescence de rpertoires et ny accde pas. Selon la distribution, diffrents mcanismes de montage automatique des CD et des DVD interfrent avec la gravure. Daprs mon exprience, lutilisation de lecteurs externes (USB, Firewire) entrane des problmes plus frquents que celle dun lecteur interne. Cela est vrai pour Linux, mais aussi pour Windows. Si vous souhaitez absolument utiliser un lecteur externe, rduisez la vitesse de gravure.

198

LINUX

Crer et tester des images ISO


Avant de crer un CD ou un DVD de donnes, vous avez besoin dune image ISO. Ce chier contient les donnes graver. On utilise gnralement 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 chiers dun ou de plusieurs rpertoires dans un chier ISO. Le format ISO-9660 prvu pour les CD utilise un jeu de caractres trs limit, qui autorise peu de caractres non ASCII. Pour contourner cela, il existe plusieurs extensions du standard ISO prises en charge par mkisofs et genisoimage : Lextension Rockridge, prvalente sous les systmes Unix et Linux, permet denregistrer des noms de chiers plus longs sous la forme de chanes de caractres arbitraires termines par le caractre 0. De plus, elle permet denregistrer des droits daccs (UID, GID, bits daccs). Cependant, un CD Rockridge ne contient pas dinformation sur le jeu de caractres dans lequel lISO a t cre. Cela peut savrer problmatique si le support de donnes est ensuite utilis dans un ordinateur ayant un autre jeu de caractres. Il est nanmoins possible dindiquer le jeu de caractres souhait grce loption -output-charset. Lextension Joliet, prvalente sous les systmes Windows, permet denregistrer des noms de chiers plus longs, reprsents sous la forme dune chane de caractres Unicode (UTF-16). Il y a quelques annes, mkisofs/genisoimage supposait que le systme de chiers local tait en Latin-1 et convertissait les noms de chiers dans ce jeu de caractres. Loption -input-charset permet de spcier un autre jeu de caractres, mais elle ne prend pas en charge les jeux de caractres Unicode. Ce problme est gr dans les versions actuelles par le correctif non ofciel iconv. Ce dernier est absolument ncessaire si vous utilisez un jeu de caractres Unicode sous Linux et que vous dsirez graver un CD compatible avec Windows, sans quoi les caractres spciaux ne seront pas bien reprsents. La commande suivante crit tous les chiers du rpertoire /master dans le chier /tmp/master.iso. Le rpertoire master nest pas un rpertoire de limage ISO. Celle-ci utilise lextension Rockridge (-r) et Joliet (-J), et a pour nom Linux (option -V). Cette chane de caractres est le nom du CD une fois grav.
utilisateur$ mkisofs -o /tmp/master.iso -r -J -B Linux /master

Exemples

Le deuxime exemple est comparable au premier, mais il permet de crer un CD amorable :


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

Ce troisime exemple montre comment faire pour que le rpertoire master soit lui-mme un rpertoire de lISO (option -graft-point) :
utilisateur$ mkisofs -o /tmp/master.iso -r -graft-points /master=/master

GESTION DES FICHIERS

199

Si vous nutilisez pas loption -r, assurez-vous que tous les fichiers du rpertoire graver appartiennent root et quils sont lisibles par tous :
utilisateur$ chown -R root.root /master utilisateur$ chmod -R a+r /master
dd

Pour copier sans modication un CD ou un DVD de donnes (cela ne fonctionne pas pour un CD audio), une seule commande dd suft pour obtenir le chier ISO correspondant. /dev/cdrom reprsente le nom de priphrique de votre lecteur CD ou DVD, ce qui dpend de votre distribution.
utilisateur$ dd if=/dev/cdrom of=/usr/local/iso.ing bs=2048

Tester une image ISO

Le priphrique de bouclage (loopback device) du noyau Linux permet de considrer un chier comme un systme de chiers et de le monter dans larborescence avec mount. Cette fonctionnalit est gre par le module de noyau loop qui est fourni par toutes les distributions courantes. La commande suivante monte le chier master.iso dans le systme de chiers en mode lecture seule :
root# mkdir /iso-test root# mount -t iso9660 -o loop,ro /tmp/master.iso /isotest/

Graver des CD
cdrecord et wodim

cdrecord a longtemps t le programme de rfrence pour graver des CD. Dvelopp par Jrg Schilling, il faisait partie, jusquen 2006, de presque toutes les distributions. lt 2006, Jrg Schilling a utilis, pour certaines parties du paquetage, la licence CDDL, que de nombreux dveloppeurs de Linux considrent comme incompatible avec la GPL. La dernire version de cdrecord, entirement sous GPL, a donc t utilise comme base dune 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 dune image ISO, cre normalement avec mkisofs ou genisoimage. Les deux commandes suivantes simulent dabord la gravure (avec loption -dummy), puis leffectuent :
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 donnes sont sous la forme de chiers wav, qui sont traits dans lordre alphabtique. Si vous dsirez utiliser un ordre diffrent, vous devez indiquer explicitement la liste des chiers.
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 doptions pour lire et crire des CD audio. Pour crire un CD audio, cdrdao a besoin dun chier TOC. Ce dernier est une sorte de table des matires du CD indiquant quelles donnes sont enregistres dans quel format.

200

LINUX

En pratique, cdrdao est gnralement utilis pour copier des CD audio. La premire commande cre les chiers data.bin et data.toc (contenu du CD et table des matires) et la seconde crit ces donnes sur un CD. Les priphriques doivent tre indiqus par le biais dun triplet de chiffres, grce 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 quelle est sufsamment 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
Vrifier des CD de donnes

La commande suivante compare le contenu du CD-ROM et celui du rpertoire master, la fois chier par chier et octet par octet. Les diffrences sont rsumes dans le chier diff.log du rpertoire personnel. /media/cdrom reprsente le rpertoire 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 derniers ne fonctionnent pas, vous pouvez essayer dutiliser cdrecord ou wodim. Cette commande permet de graver des DVD-R et des DVD+R ; la syntaxe ne diffre pas de celle utilise pour la gravure de CD. cdrecord/wodim prsente cependant moins doptions pour graver les DVD+RW et DVD-RW. Toutes les commandes prsentes 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 limmense majorit des distributions actuelles. 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 donnes exactement comme les CD multisessions. Pour crire la premire session, on utilise growisofs -Z et pour les suivantes, growisofs -M. On ne peut pas supprimer un chier enregistr sur lun de ces supports, ni formater ces disques. Les DVD+RW et DVD-RW doivent tre formats avec dvd+rw-format avant la premire utilisation. Vous pouvez ensuite, comme sur un DVD-R ou DVD+R, crire les donnes en plusieurs sessions. Pour craser les donnes prcdentes, il suft de relancer un cycle de sessions grce growisofs -Z. Il nest pas ncessaire, linverse des CD-RW, de reformater le disque. La commande suivante enregistre le contenu du rpertoire donnees sur un DVD. Les options -r et -J indiquent les extensions Rockridge et Joliet, qui permettent dutiliser des noms de chiers plus longs sur le DVD. Selon la distribution, vous pouvez avoir changer le nom du priphrique /dev/srn en /dev/scdn.
utilisateur$ growisofs -r -J -Z /dev/sr0 donnees/

dvd+rw-tools

growisofs

Pour crer une deuxime session, utilisez loption -M la place de -Z :


utilisateur$ growisofs -r -J -M /dev/sr0 autresdonnees/

GESTION DES FICHIERS

201

Attention : il faut jecter et remettre le DVD dans& le lecteur avant de crer une nouvelle session. La lecture des DVD multisessions peut poser problme sur certains lecteurs. Pour les DVD-RW, il faut utiliser le mode restricted overwrite (voir dvd+rw-format). Certains lecteurs DVD ne grent pas les DVD+RW (quils soient mono- ou multisessions). Les commandes suivantes permettent parfois de contourner ce problme :
utilisateur$ dvd+rw-format -lead-out /dev/sr0 utilisateur$ dvd+rw-booktype -dvd-rom -media /dev/sr0

Si vous dsirez crire une image ISO dj existante, utilisez la syntaxe -Z priphrique=fichieriso :
utilisateur$ growisofs -Z /dev/sr0=donnees.iso
dvd+rwformat

Les DVD+RW et DVD-RW doivent tre formats avant la premire utilisation, ce que permet dvd+rw-format :
utilisateur$ dvd+rw-format /dev/sr0

Ce qui se passe en dtail dpend du type de support. Pour les DVD+RW, seul le dbut du disque est format. Par consquent, si le formatage sarrte 11,5 % (ou avant 100 %), il ne sagit pas dune erreur. Le formatage en de de cette zone est automatiquement effectu par le lecteur lorsquil faut crire sur cette zone du DVD. Les DVD-RW sont par dfaut formats en mode restricted overwrite. Ce dernier permet de rcrire sur une zone dj crite du disque. Il nest donc pas ncessaire de reformater un DVD-RW chaque criture. Vous pouvez aussi formater un DVD-RW en mode incremental sequential avec loption -blank. Les DVD-RW sortant dusine sont gnralement dj formats ainsi. Ce mode est particulirement adapt aux DVD vido et amliore la compatibilit avec de nombreux lecteurs. Cependant, growisofs ne sait pas rcrire de donnes dans ce mode. Il faut donc reformater le disque chaque utilisation, ce qui prend beaucoup de temps. En rsum, pour faciliter le travail growisofs, il faut formater les DVD-RW avec dvd+rwformat sans loption -blank.
Le formatage ne supprime pas les donnes physiquement. Si, pour des raisons de respect de la vie prive, vous dsirez les effacer, lancez growisofs -Z device=/dev/zero . Le support sera alors rcrit avec des 0.
dvd+rwmediainfo

Vous possdez un DVD, mais vous ne savez pas de quel type il sagit, si le disque est dj 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

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 daccs, utilisateurs et groupes propritaires


Linux est conu comme un systme multi-utilisateur : certains mcanismes dnissent qui peut accder quels chiers, qui peut les modier, etc. Depuis le noyau 2.6, il dispose galement dune gestion avance des droits grce aux ACL (Access Control Lists, listes de contrle daccs). Les ACL seront traits plus en dtail la section 13.8.
Donnes daccs par fichier

Chaque chier ou rpertoire est enregistr avec les informations suivantes : le propritaire du chier ; le groupe associ au chier ; les bits daccs (rwxrwxrwx pour lecture/criture/excution par le propritaire, les membres du groupe et le reste du monde) ; quelques bits supplmentaires pour certaines fonctions spciales. Le propritaire du chier est en gnral la personne qui a cr le groupe. Le groupe associ au chier est alors normalement le groupe principal du propritaire. Les informations daccs r, w et x dnissent qui peut lire, modier et excuter le chier. Elles sont spares en trois groupes pour le propritaire, les membres du groupe et les autres utilisateurs du systme. Cela permet de donner plus de droits au propritaire du chier qu dautres utilisateurs. Ces informations sappellent bits daccs, car elles sont enregistres en interne grce un codage en bits. Ce nest pas la notation rwxrwxrwx qui est utilise en interne, mais 9 bits daccs, ainsi que 3 bits spciaux, souvent reprsents galement sous forme octale. On peut connatre les bits daccs, le propritaire et le groupe dun chier grce la commande ls -l. Pour un chier texte standard, ls renvoie le rsultat suivant :
michael$ ls -l lisezmoi.txt -rw-r--r-- 1 michael users 7484 2008-02-19 12:45 lisezmoi.txt

En voici une brve explication. Le premier caractre indique le type de chier : - pour un chier rgulier, d pour un rpertoire, l pour un lien symbolique, etc. Ce chier peut tre lu et modi par son propritaire, michael. Comme il sagit dun chier texte, le premier bit x est dsactiv : le chier ne peut pas tre excut. Tous les autres utilisateurs, quils soient membres du groupe users ou non, peuvent le lire (mais pas le modier). Si Michael souhaite que seuls les membres du groupe users puissent lire le chier, il doit dsactiver 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

GESTION DES FICHIERS

203

Supposons prsent que laccs au chier soit restreint deux utilisateurs, michael et kate. Il faut pour cela crer un nouveau groupe auquel seuls Michael et Kate appartiennent, par exemple doc. Lappartenance du chier au groupe doit ensuite tre modie grce 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 daccs sur des rpertoires

Droits daccs sur des priphriques

Les 9 bits daccs sont galement valides pour les rpertoires, mais leur signication est diffrente. Le bit r permet aux utilisateurs de voir le contenu dun rpertoire avec ls. Le bit x leur permet daller dans ce rpertoire. Lorsque x et w sont actifs, de nouveaux chiers peuvent tre crs dans le rpertoire. Sous Linux, on accde divers composants matriels (lecteur de disquette, imprimante, modem, interface srie, lecteur de bandes, etc.) via les priphriques. Pour dnir, de manire cible, quel utilisateur a le droit daccder quels priphriques, ceux-ci sont rpartis en divers groupes dutilisateurs. Par exemple, les priphriques /dev/ ttyS* pour les ports srie 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 ladministrateur dsire que lutilisateur hubert puisse accder directement un modem via linterface srie, il peut ajouter hubert au groupe dialout avec la commande usermod -G. Dans certaines distributions, lorsquun utilisateur se connecte, les droits daccs des priphriques les plus courants sont congurs de sorte que lutilisateur actuel ait un accs illimit aux priphriques correspondants. Par consquent, les droits daccs sont souvent modis. Fedora utilise pour cela PAM ; SUSE met en uvre le dmon resmgrd.

Bits spciaux
Le sens des trois fois 3 bits rwxrwxrwx est simple comprendre. En plus de ces bits, certaines informations supplmentaires peuvent tre enregistres. La connaissance de ces bits spciaux nest gnralement ncessaire quaux administrateurs systme. Le bit setuid, ou bit suid, fait en sorte quun programme soit toujours lanc comme sil tait dmarr par son propritaire. Ce dernier est souvent root ; ainsi, le programme peut tre lanc comme sil ltait par root. Ce bit est utilis pour donner aux utilisateurs sans privilge des droits qui ne sappliquent qu lexcution dun programme donn. Cela peut nanmoins facilement reprsenter un risque de scurit, en particulier lorsque le programme excut dmarre dautres programmes. Cest pourquoi il vaut mieux viter autant que possible lutilisation des bits setuid. La commande mount peut constituer lune des rares exceptions cette rgle :
utilisateur$ ls -l /bin/mount -rwsr-xr-x 1 root root 81368 2008-04-29 13:57 /bin/mount

Bit setuid

ls -l afche, la place du bit x, la lettre s. La valeur octale du bit setuid est 4000.

204
Bit setgid

LINUX

Sticky bit

Le bit setgid a un comportement comparable au bit setuid, ceci prs quil sapplique aux groupes et non au propritaire de lexcutable. ls -l afche pour le programme correspondant la lettre s la place de la lettre x dans les bits daccs du groupe. La valeur octale du bit est 2000. Pour les rpertoires, le bit setgid fait en sorte que les chiers crs dans le rpertoire appartiennent au groupe du rpertoire (et non, comme souvent, au groupe de lutilisateur qui cre le chier). Le sticky bit sapplique aux rpertoires. Il fait en sorte que chaque utilisateur pouvant modier les chiers du rpertoire ne puisse supprimer que ses propres chiers (et non ceux des autres utilisateurs). Ce bit est par exemple activ sur le rpertoire /tmp. Tous les utilisateurs peuvent crer des chiers temporaires. Il faut, en revanche, viter que les utilisateurs puissent renommer ou supprimer des chiers qui ne leur appartiennent pas. ls -l afche pour le rpertoire correspondant la lettre t la place de la lettre x dans les bits daccs de lutilisateur. La valeur octale du bit est 1000. Attention : la signication du sticky bit est spcique Linux ; dautres variantes dUnix peuvent lui associer un sens diffrent.
utilisateur$ ls -ld /tmp/ drwxrwxrwt 20 root root 8192 2008-06-30 11:59 /tmp/

Bits spciaux dans ls

Lorsque vous lancez la commande ls -l, il arrive que les bits spciaux safchent sous la forme S ou T. Il ne sagit pas de bits spciaux supplmentaires, mais dune indication : les bits setuid, setgid ou sticky ont t mal utiliss. S signie que le bit setuid ou setgid est positionn, mais que le bit x ne lest pas (setuid et setgid nont alors pas de sens). T signie que le sticky bit est positionn, mais que le rpertoire na pas le bit daccs x pour le groupe "autres".

Changer les droits daccs dun fichier ou dun rpertoire


chmod

La commande chmod permet de changer les droits daccs dun chier ou dun rpertoire. Sa syntaxe est de la forme chmod ensemble+droits fichier ou chmod ensemble-droits fichier. ensemble reprsente les utilisateurs concerns : u pour lutilisateur propritaire du chier, g pour le groupe propritaire du chier, o pour les autres utilisateurs du systme et a pour tous les utilisateurs sans distinction. droits reprsente les droits concerns : r pour la lecture (read), w pour lcriture (write) et x pour lexcution (execute). Ainsi, pour permettre tous les utilisateurs de lire un chier, on utilisera :
utilisateur$ chmod a+r fichier

Pour restreindre la modication dun chier son propritaire, la syntaxe utilise sera :
utilisateur$ chmod og-w fichier

Valeurs octales

chmod permet galement dactiver les bits setuid (u+s), setgid (g+s) et sticky (+t). Loption -R offre la possibilit deffectuer un chmod rcursif (en parcourant des rpertoires). 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 laddition 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 correspond tous les accs sur un rpertoire pour tout le monde, mais avec le sticky bit.

GESTION DES FICHIERS

205

13.7 Propritaire, groupe et bits daccs de nouveaux fichiers


Cette section concerne les facteurs qui dnissent les informations daccs des nouveaux chiers. Pour tester cela facilement, utilisez la commande touch. Elle cre un nouveau chier vide si le chier en paramtre nexiste pas. Lutilisateur michael cre le nouveau chier monFichier1. Il nest pas surprenant que ce chier appartienne lutilisateur 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

Exemple

michael appartient de nombreux autres groupes (ce que lon peut voir avec la commande groups). Pour crer un chier sans quil appartienne au groupe primaire, il faut changer de groupe actif grce 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 daccs

La gestion des bits daccs est un peu plus complique. Par dfaut, les nouveaux chiers reoivent les bits daccs rw-rw-rw (soit, en octal, 666) et sont lisibles et modiables par tout le monde. Les nouveaux chiers excutables (crs par un compilateur) reoivent les bits rwxrwxrwx (soit, en octal, 777) et sont donc de plus excutables par tout le monde. Ces paramtres de base sont cependant gnralement trop libraux pour la plupart des utilisateurs. Cest pourquoi tous les interprteurs de commandes proposent un umask. Il sagit dune valeur numrique qui indique les bits qui doivent tre retirs des bits daccs par dfaut. Le plus souvent, le masque 022 (----w--w-) est utilis. Les nouveaux chiers reoivent donc les bits daccs 666-022 = 644 (rw-r--r--), et les nouveaux programmes le masque 777-022 = 755 (rwxr-wr-x). Vous pouvez connatre la valeur courante du masque grce la commande umask (qui permet galement de modier le masque) :
michael$ umask 0022

Le paramtrage par dfaut du masque se trouve dans le chier de conguration des interprteurs de commandes. Pour Bash, il sagit gnralement du chier /etc/profile ou /etc/ bashrc. Les valeurs qui y sont dnies peuvent tre rednies dans le chier ~/.bashrc de chaque utilisateur.

206

LINUX

13.8 Listes de contrle daccs et attributs tendus


ACL (listes de contrle daccs)

Le concept dutilisateurs et de groupes sous Unix est test et approuv depuis des dizaines dannes. Il est trs simple, mais dans certains cas, ce systme nest pas sufsant. Cest pourquoi un nouveau systme de gestion de droits, plus n, a t dvelopp, bas sur les ACL (Access Control Lists, listes de contrle daccs). Les ACL permettent, pour tout chier et rpertoire, de dnir qui peut y accder en lecture et en criture et qui ne le peut pas, ce que les droits daccs Unix standard ne permettent pas. Elles tendent les droits daccs et peuvent offrir de nouveaux droits ou dfaire certains droits existants. Les ACL sont fournies de manire standard par Linux depuis le noyau 2.6. Elles existaient auparavant sous la forme de correctifs. Pour certains systmes de chiers, comme jfs et xfs, les ACL sont toujours actives. Pour les systmes de chiers ext2, ext3 et reiserfs, il faut monter la partition avec loption acl pour les activer. Ce nest pas le cas pour la plupart des distributions actuelles.
Ce nest pas parce que les ACL fournissent davantage de possibilits quil faut se dbarrasser de la gestion de droits conventionnelle ! Pour les administrateurs avancs de rseaux tendus, elles amliorent la scurit ou, au minimum, facilitent la gestion. Mais pour la plupart des utilisateurs de Linux, la gestion habituelle des droits suffit amplement. Une utilisation incorrecte des ACL peut entraner des failles de scurit. Cest pourquoi elles sont rarement proposes par dfaut dans les distributions. De plus, de nombreuses commandes et programmes ne les grent pas correctement. Un fichier copi peut alors soudain perdre les informations ACL de loriginal. 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 rellement des ACL. Grce aux ACL, les droits daccs Windows peuvent tre reproduits sous Linux.

Attributs tendus

Les attributs tendus (EA, Extended Attributes) sont troitement lis aux ACL. Ils permettent denregistrer, pour chaque chier, des paires attribut/valeur. Vous pouvez, par exemple, associer un chier texte lattribut charset et la valeur utf8 pour enregistrer le jeu de caractres utilis par ce chier. Cela ne prsente un avantage que lorsquil existe des programmes capables dexploiter ces informations. Les attributs tendus doivent tre activs lors du montage des systmes de chiers ext2/3 avec loption user_xattr. Les attributs tendus sont, par exemple, utiliss par le programme de recherche Beagle. Vous trouverez plus de dtails 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 dinformations intressantes : http://www.unixgarden.com/index.php/administration-systeme/initiation-aux-listes-decontrole-dacces-acl-et-aux-attributs-etendus-ea-sous-linux ; http://www.suse.de/~agruen/ (en anglais) ; http://acl.bestbits.at/ (en anglais).

Prrequis

Dans lexemple suivant, on suppose que le paquetage attr et les commandes attr, getfattr et setfattr sont installs et que vous travaillez dans un systme o les ACL et les

GESTION DES FICHIERS

207

EA sont activs. Dans le cas dun systme de chiers ext3, le rsultat de mount doit ressembler ceci :
utilisateur$ mount ... /dev/hdc5 on /test type ext3 (rw,acl,user_xattr) ...

Si ce nest pas le cas, les exemples suivants rencontreront une erreur du type "Opration non supporte". Il faut alors modier les options de mount dans /etc/fstab et remonter le systme de chiers. Le Chapitre 23 sur ladministration des systmes de chiers traite de cette problmatique.

Listes de contrle daccs


getfacl

Sur un systme de chiers avec des ACL, les droits daccs standard sont galement valides. Ils sont souvent dcrits comme des ACL minimales. getfacl afche ces droits sous la forme dACL :
michael$ touch fichier1 michael$ getfacl fichier1 # file: fichier1 # owner: michael # group: users user::rwgroup::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 dnir des droits daccs supplmentaires. Les commandes suivantes donnent lutilisateur isa et au groupe doc des droits en lecture et en modication sur le chier, et suppriment tout accs lutilisateur pierre :
michael$ setfacl -m isa:rw fichier1 michael$ setfacl -m g:doc:rw fichier1 michael$ setfacl -m pierre:- fichier1

La liste de droits afche par getfacl est maintenant plus longue. ls afche les droits daccs du masque ACL dans la partie du groupe. Les lettres des bits daccs sont suivies du caractre + qui indique quil existe des rgles ACL.
michael$ getfacl fichier1 # file: fichier1 # owner: michael # group: users user::rwuser:isa:rw-

208

LINUX

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

Masques ACL

ACL standard

Les ACL sont typiquement utilises lorsque vous dsirez donner des droits un utilisateur sur vos chiers, sans pour autant les rendre accessibles dautres (par exemple un groupe). Normalement, vous devez pour cela demander un administrateur de crer un nouveau groupe pour vous-mme et lautre utilisateur. Les ACL permettent de se passer de cette tape. Les masques ACL limitent les droits qui peuvent tre donns par des rgles ACL. Par exemple, si vous dnissez le masque ACL r, aucune rgle ACL ne peut dnir de droits en criture ou en excution un utilisateur. Le masque ACL a donc priorit sur les rgles ACL. Il na cependant aucune incidence sur les droits daccs traditionnels de lutilisateur et du groupe sur le chier. Chaque modication dune rgle ACL entrane la mise jour du masque de manire que toutes les rgles ACL existantes soient comprises dans le masque. Celui-ci safche dans getfacl et ls -l. Vous pouvez dnir explicitement un masque grce la syntaxe setfacl -m m:rwx, an de limiter les droits des ACL. Mais attention, ce masque nest valable que jusqu la prochaine dnition dACL, qui renouvelle le masque. Pour les rpertoires, vous pouvez dnir un deuxime jeu de rgles : lACL standard. Celleci ne sapplique pas aux accs du rpertoire ; elle dnit le motif dACL pour les nouveaux chiers.

Attributs tendus
setfattr et getfattr

Les exemples suivants montrent comment enregistrer des attributs avec setfattr et les lire avec getfattr. Le nombre dattributs par chier dans un systme de chiers 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 nafche normalement que les attributs dont le nom commence par user. Si vous dsirez voir dautres attributs, vous devez indiquer leur nom avec loption -n ou un motif avec loption -m.
utilisateur$ getfattr -n security.selinux -d fichier2 # file: fichier2 security.selinux="user_u:object_r:user_home_t:s0^000"

GESTION DES FICHIERS

209

13.9 Structure des rpertoires sous Linux


Un systme Unix classique se compose de milliers de chiers. Certaines rgles concernant lemplacement des chiers se sont tablies au l du temps. Cette section donne un premier aperu de la structure des rpertoires sous Linux. Le systme de donnes commence par le rpertoire racine. En gnral, il ne contient pas de chiers, mais les rpertoires suivants : /bin contient les commandes lmentaires de Linux que tous les utilisateurs peuvent lancer. Vous trouverez dautres programmes dans /usr/bin. /boot contient les chiers ncessaires lamorage du systme (gnralement via GRUB ou LILO). La plupart des distributions y placent galement le noyau. /dev contient tous les chiers de priphriques. Ces derniers permettent daccder presque tous les composants matriels (par exemple, linterface srie ou une partition du disque dur). /etc contient les chiers de conguration du systme. Ils grent le dmarrage du systme, la disposition du clavier, les congurations de base pour divers composants et programmes (par exemple la conguration rseau). /etc contient quelques sous-rpertoires pour regrouper certains chiers de conguration, par exemple /etc/X11 pour les chiers relatifs X. /home contient le rpertoire personnel de chaque utilisateur du systme. Il sagit dun rpertoire particulier dans lequel lutilisateur se trouve automatiquement aprs stre connect. Ce dernier a un accs illimit aux chiers qui sy trouvent. /lib[64] contient les bibliothques partages ou des liens symboliques vers ces bibliothques. Ces chiers sont utiliss pour excuter des programmes. /lib/modules contient les modules du noyau qui peuvent tre activs ou dsactivs pendant lexcution du systme. Vous trouverez des bibliothques supplmentaires dans /usr/lib[64]. Le rpertoire /lib/firmware contient le microcode (rmware) de certains composants matriels (par exemple, une carte Wi-Fi). /lost+found est normalement vide. Sil contient des chiers, il sagit de fragments de chiers qui nont pas pu tre remis en ordre lors de la tentative de rparation du systme de chiers (fsck). /mnt et /media contiennent des sous-rpertoires, comme cdrom ou floppy, dans lesquels on peut monter des systmes de chiers externes. /opt est prvu pour les paquetages additionnels. Certaines distributions (par exemple SUSE) utilisent les rpertoires /opt/gnome ou /opt/kde pour enregistrer les paquetages et bibliothques spciques Gnome ou KDE. /proc contient les sous-rpertoires qui correspondent tous les processus courants. Il ne sagit pas de vrais chiers. /root contient les donnes de lutilisateur root. Elles ne se trouvent usuellement pas dans /home. /home est souvent une partition spare et, en cas de problme sur cette partition, root peut ainsi travailler dans son rpertoire, mme lorsque /home nest pas monte.

210

LINUX

/sbin contient les commandes dadministration systme. En gnral, les programmes ne pouvant tre lancs que par root y sont enregistrs. /share contient parfois des chiers indpendants de larchitecture. /usr/share est un endroit plus usuel pour cela. /srv contient, dans certaines distributions, les donnes pour les processus serveurs : par exemple /srv/www pour les documents servis par Apache, /srv/ftp pour les chiers FTP, etc. /sys contient le systme de chiers sysfs du noyau 2.6. Tout comme /proc, il contient des donnes sur ltat de lordinateur. /tmp contient des chiers temporaires. Ces derniers peuvent aussi se trouver dans le rpertoire /var/tmp. /usr contient toutes les applications, le systme X, le code source de Linux, etc. Idalement, on ne devrait y trouver que des chiers statiques (non modiables). Ainsi, on pourrait monter le rpertoire /usr dans sa propre partition en lecture seule. Cela aurait lavantage dune plus grande scurit, mais linconvnient dune maintenance trs pnible ; cest en pratique rarement le cas. /var contient les chiers variables. Les sous-rpertoires importants sont adm (chiers dadministration dpendant de la distribution), lock (chiers de verrous pour laccs aux priphriques), log (chiers de journalisation), mail (chiers du courrier lectronique, pouvant galement se trouver dans spool/mail) et spool (chiers tampon, comme les chiers imprimer, les messages, etc.). Le principe de la structure des rpertoires se situant directement sous la racine est relativement simple comprendre. Les problmes apparaissent avec la division de /usr et de /var en dinnombrables sous-rpertoires. En principe, de nombreux rpertoires sont nomms comme au niveau de la racine, par exemple bin pour les programmes excutables. Mais il existe plusieurs groupes de programmes excutables : les commandes texte, les programmes X, etc. Par consquent, il existe plusieurs possibilits pour ranger ces programmes. Pour des raisons historiques, plusieurs chemins sont gnralement maintenus par le biais de liens. Ainsi, /usr/bin/X11 correspond aux mmes programmes que /usr/X11R6/bin.
Le rpertoire /usr /usr/bin /usr/games /usr/include /usr/lib[64] /usr/local /usr/sbin /usr/share /usr/src /usr/tmp programmes excutables jeux et parfois un lien vers /usr/share/games fichiers "include" de C bibliothques, parmi lesquelles de nombreux sous-rpertoires pour le compilateur C, divers langages de programmation et de gros paquetages comme emacs ou LaTeX applications et donnes qui ne font pas partie de la distribution programmes excutables par root fichiers indpendants de larchitecture et documentation code source de Linux, voire dautres programmes lien vers /var/tmp (fichiers temporaires)

GESTION DES FICHIERS

211

13.10 Fichiers de priphriques


Le systme de chiers de Linux ne contient pas seulement des chiers et des rpertoires, mais aussi des priphriques. Il sagit de chiers spciaux, dans lesquels on ne peut pas enregistrer de donnes mais qui, pour la plupart, fournissent un lien vers le noyau. Les priphriques permettent daccder de nombreux composants matriels de lordinateur : disque dur, lecteur de disquette, ports srie et parallle, mmoire, etc. Ils sont dnis par trois informations : les numros de priphriques majeur et mineur (Major Device Number et Minor Device Number) et le type daccs (par bloc ou par caractre). Le numro majeur indique le pilote du noyau Linux qui gre le priphrique. Il existe de nombreux pilotes, lists dans /usr/src/linux/Documentation/devices.txt. Le numro mineur permet de distinguer plusieurs priphriques distincts qui partagent le mme pilote, par exemple deux partitions dun mme disque. Le type daccs indique si le priphrique a un tampon (ce qui est le cas pour tous les priphriques en mode bloc, tels que les disques durs), ou pas (par exemple, linterface srie ou parallle). Si vous explorez le contenu du rpertoire /dev avec ls -l, vous verrez, la place de la taille du chier, les numros de priphriques (majeur et mineur). Le premier caractre des droits daccs est b ou c, pour les priphriques bloc ou caractre.
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 ...
Fonctionnement interne

Numros de priphriques majeur et mineur

Systme udev

En interne, le rpertoire /dev ne contient que des inodes, qui sont les plus petites units gres par un systme de chiers, mais pas de rels chiers. On peut crer de nouveaux chiers de priphriques avec la commande mknod. Cela est cependant rarement ncessaire, car la gestion du matriel de Linux sen occupe en thorie automatiquement. Pour des raisons de scurit, seul root et les membres dun groupe donn peuvent accder certains priphriques. Pour que dautres utilisateurs puissent y accder, vous pouvez les ajouter au groupe auquel appartient le priphrique. Certains chiers de priphriques ont une fonction particulire. /dev/null est un "trou noir" : les donnes qui sont envoyes disparaissent pour toujours il est, par exemple, utilis pour les sorties de commandes qui ne doivent pas safcher. /dev/zero est une source sans n doctets 0, par exemple utilis pour remplir un chier dune taille donne de zros. Autrefois, les distributions craient un grand nombre de chiers de priphriques Red Hat 9 en crait, par exemple, presque 8000. Mais chaque ordinateur nen utilisait au mieux que quelques centaines. Pour corriger cela, le systme de chiers devfs du noyau 2.4 devait crer les chiers de priphriques dynamiquement la demande. Il na cependant jamais eu le succs escompt et a t depuis supprim du noyau. Le systme udev a pris la suite de devfs dans le noyau 2.6. Les chiers de priphriques sont galement crs dynamiquement ds que le noyau reconnat des composants matriels. On peut voir que le systme udev est actif lorsque le processus udevd existe. Ce dernier est

212

LINUX

dmarr au dbut du processus de dmarrage InitV. Sa conguration se trouve dans le rpertoire /etc/udev. Vous trouverez une description complte des priphriques dnis sous Linux, ainsi que des numros associs dans le chier /usr/src/linux/Documentation/devices.txt (le code source du noyau doit tre install).

14

Gestion des processus


Ce chapitre dcrit comment Linux gre les processus. Vous y apprendrez notamment : comment dmarrer et arrter des processus (ventuellement en urgence) ; comment dmarrer un programme en tant quutilisateur normal comme si vous tiez root ; ce que sont les dmons ; comment dmarrer automatiquement des programmes une heure donne.

14.1 Dmarrer, grer et arrter des processus


Programmes, commandes, processus et tches

Dans ce chapitre, nous parlerons de processus, mais vous pouvez remplacer ce mot par "programme", "commande" ou "tche" sous Linux, il ny a pas de diffrence entre un programme et une commande. En gnral, les programmes texte comme ls sont dcrits comme des commandes. Rigoureusement, un programme ou une commande est un chier excutable. Il se diffrencie des autres chiers par le fait que son bit x est activ (voir section 13.6). Dans lexemple suivant, serveur.txt est un chier de donnes, et sauvegarde un programme (et mme un script shell). Il sagit dans les deux cas de chiers texte, mais seul sauvegarde est excutable, car ses bits daccs x sont positionns :
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

Fichiers *.exe

Ce nest que lors du dmarrage dun chier de programme quun processus (ou une tche) est cr par le noyau Linux. Le titre de cette section devrait donc tre "Dmarrer des programmes et des commandes, grer et arrter des processus". Une question surgit de temps autre : o sont les chiers *.exe sous Linux ? La rponse est : il ny en a pas. Les programmes excutables sont identis par lexistence de leur bit daccs x. Lextension *.exe comme sous Windows serait donc redondante. Cette rponse nest plus tout fait vraie, car il existe maintenant quelques chiers *.exe isols sur de nombreux systmes Linux. Il sagit de programmes dvelopps dans le langage C# et excuts par les bibliothques Mono, qui sont une implmentation libre du framework .NET de Microsoft.

Dmarrer des programmes


Dmarrer des programmes sous X

Pour dmarrer des programmes sous X, on utilise gnralement le menu ou des icnes. KDE et Gnome permettent galement de saisir le nom du programme dans une bote de dialogue avec le raccourci Alt+F2.

214
Console texte, fentre de shell

LINUX

Vous pouvez aussi dmarrer un programme dans une fentre dinterprteur de commandes (par exemple xterm ou konsole) ou une console texte. Saisissez le nom du programme et appuyez sur Entre. Les utilisateurs avancs de Linux utilisent souvent cette mthode, car taper quelques lettres est souvent plus rapide que de chercher le programme dans le menu. Il suft normalement de taper le nom du programme. Linterprteur de commandes effectue alors une recherche dans tous les rpertoires lists dans la variable denvironnement PATH. Voici un exemple de cette variable :
utilisateur$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

Lorsque vous dsirez lancer un programme qui ne se trouve pas dans lun de ces rpertoires, vous devez indiquer le chemin complet du chier. Cest galement valable pour les programmes du rpertoire courant, pour lesquels il faut prxer le chemin dun point (par exemple ./monprogramme).

Processus en avant-plan et en arrire-fond


Lorsque vous dmarrez des programmes via le menu sous X, ils se lancent en tche de fond sans se gner les uns les autres. Vous pouvez aussi en dmarrer de nouveaux sans attendre la n dun programme lanc prcdemment. Le comportement est diffrent lorsque vous lancez un programme dans une fentre de terminal ou une console texte. Ce dernier est dmarr en tant que processus davant-plan. Avant de pouvoir saisir la commande suivante, vous devez attendre la n de ce programme. Mais vous pouvez aussi lancer des programmes en tche de fond en ajoutant la n de la commande le caractre & :
utilisateur$ xemacs &

Si vous avez oubli le &, vous pouvez passer le programme en tche de fond rtrospectivement. Pour cela, interrompez le programme avec Ctrl+Z et ractivez-le avec bg :
user$ xemacs Ctrl+Z [1]+ Stopped utilisateur$ bg [1]+ xemacs &

xemacs

Si vous tapez fg la place de bg, le processus est rtabli en tche davant-plan. Certaines commandes perturbent lexcution en tche 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 tche de fond :
root# fdformat /dev/fd0 > /dev/null &

Liste de tous les processus courants (ps, top)


ps

La commande ps permet dafcher une liste des processus courants. Sans option, elle nafche que ceux qui vous appartiennent et qui ont t lancs dans le terminal dans lequel vous excutez cette commande. Il existe de nombreuses options que vous pouvez voir dans man ps.

GESTION DES PROCESSUS

215

Lexemple suivant afche la liste de tous les processus, trs rduite pour des questions de place :
utilisateur$ ps ax PID TTY STAT 1 ? Ss 2 ? S< 3 ? S< 4 ? S< ... 31097 pts/7 S+ 31389 ? S< 32405 ? S 32406 pts/4 Ss
top

TIME 0:07 0:00 0:14 8:14 0:20 0:00 0:01 0:00

COMMAND /sbin/init [kthreadd] [migration/0] [ksoftirqd/0] gqview [kjournald] xterm -font -*-fixed-medium-r-*-*-18-*-*-*-*-*-*-* bash

top est une commande plus pratique que ps : elle trie les processus en fonction de leur occupation processeur et afche ceux qui sont actifs en premier. Ce programme donne aussi un aperu de loccupation de la mmoire. La liste des processus est actualise rgulirement jusqu ce que vous quittiez le programme avec Q. Les lignes suivantes montrent un systme 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 20026 michael 5164 root 22467 michael 27192 michael 1 root 2 root ... PR 20 20 20 20 20 15 NI 0 0 0 VIRT RES SHR S %CPU 6 4 1 0 0 0 %MEM 22.6 12.5 6.2 2.9 0.0 0.0 TIME+ 301:30.52 335:45.29 0:04.91 2:21.23 0:07.20 0:00.00 COMMAND firefox Xorg java_vm kpdf init kthreadd

582m 343m 33m R 453m 189m 7724 S 222m 94m 15m S 44m 12m S 528 480 S 0 0 S

0 83916 0 -5 2844 0

Alternatives graphiques top

La valeur dans la colonne PID indique le numro du processus. Ce numro permet darrter un processus qui chappe votre contrle ou qui tourne en arrire-plan. Les processus peuvent avoir plusieurs tats. Les plus courants sont R (running, en cours de fonctionnement) et S (sleeping, o le programme na rien faire et attend une entre). Les programmes peuvent aussi tre temporairement interrompus ; ils ont alors ltat 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). Il existe des alternatives graphiques la commande texte top, par exemple ksysguard sous KDE ou gnome-system-monitor sous Gnome.

216
tablir le numro dun processus

LINUX

Lorsque vous dsirez connatre le numro dun processus, utilisez pidof. Lorsquil existe plusieurs processus avec le mme nom, pidof afche une liste de numros :
utilisateur$ pidof xterm 32405 27972 26086 25931 17330 15169

Pour savoir quel programme accde un rpertoire ou un chier donn, lancez la commande fuser. Un rpertoire est aussi considr comme utilis lorsquun programme y est lanc. La commande suivante montre que bash utilise le rpertoire /media/dvd :
root# fuser -v /media/dvd USER PID ACCESS COMMAND /media/dvd michael 2183 ..c.. bash root Kernel mount /media/dvd

Fichiers PID

Laccs au chier ne safche que lorsque le programme accde rellement au chier. Cela peut ne pas tre le cas pour un diteur de texte qui charge tout le chier, puis le ferme. Il rouvre brivement le chier le temps de lenregistrer. Certaines tches de fond enregistrent dans le rpertoire /var/run un chier PID (par exemple /var/run/httpd.pid). La premire ligne de ce chier est le numro du processus ; les lignes suivantes peuvent contenir des informations dtat, comme les interfaces rseau utilises. Ces chiers permettent de terminer un processus cibl via un script InitV, y compris lorsque plusieurs processus du mme nom coexistent.

Hirarchie des processus


Chaque processus enregistre galement le numro PID de son processus parent. Cette information permet de reprsenter un arbre de processus, au dbut duquel se trouve toujours le processus init. Celui-ci est le premier programme lanc directement aprs le chargement du noyau. Pour afcher la hirarchie des processus, le plus simple est dutiliser la commande pstree. Loption -h permet dafcher les processus parents des processus courants en gras. La Figure 14.1 illustre pstree dans un interprteur bash dans une fentre Konsole.

Figure 14.1
Hirarchie des processus avec pstree.

GESTION DES PROCESSUS

217

Forcer la fin dun processus (kill, xkill )


Un processus se termine normalement avec la n dun programme. Mais il arrive que le programme rencontre des erreurs, quil ne puisse plus tre arrt et quil prenne de plus en plus de mmoire et de capacit processeur. Dans ce cas, la terminaison du processus doit tre force. Les commandes en mode texte peuvent souvent tre arrtes avec Ctrl+C. Le programme est alors termin immdiatement. La commande kill envoie des signaux un processus en cours, indiqu par son numro PID (que vous obtenez avec top ou ps). Pour terminer un programme de manire "polie", le signal 15 est envoy (signal par dfaut de kill). Si cela ne fonctionne pas, on utilise le signal 9 (ici pour le processus 2725) :
utilisateur$ kill -9 2725

kill

top killall

kill ne peut tre utilise que pour les processus appartenant lutilisateur qui les lance. Seul root peut arrter nimporte quel processus. top permet galement darrter un processus : tapez K, le numro du processus et le signal souhait. killall est plus confortable, car il prend comme argument le nom du programme et non le numro du processus. En revanche, il termine tous les programmes ayant le mme nom :
root# killall -9 firefox

xkill

Processus persistants

Blocage de la souris ou du clavier

Limiter la taille des processus

Sous X, vous pouvez galement lancer xkill dans une fentre de terminal et cliquer sur la fentre du programme terminer. xkill envoie le signal 9. Sous KDE, vous pouvez lancer cette commande grce Ctrl+Alt+chap. En cas derreur, utilisez chap pour linterrompre. Il arrive que xkill ferme une fentre, mais que le processus ou des parties de ce processus continuent fonctionner. Assurez-vous avec top ou ps que le programme est bien termin. Si ce nest pas le cas, terminez manuellement les processus restants. Il est extrmement dsagrable quun programme X entrane lors dun plantage le blocage de la souris ou du clavier. Lordinateur ne ragit alors presque plus. Dans ce cas, la combinaison de touches Ctrl+Alt+F1 peut aider. Si elle russit, vous passez dans la premire console texte. Vous pouvez alors vous connecter et terminer le programme fautif. Si le clavier est compltement bloqu, il reste la solution de se connecter via le rseau en SSH et de terminer le processus de cette manire. Mais cela nest possible que si vous travaillez dans un rseau local et si lordinateur dispose de sshd. Si X reste bloqu, vous pouvez essayer de terminer X lui-mme, puis de lancer la commande shutdown. Toutes ces mthodes valent mieux que dappuyer sur Reset, ce qui peut mener des pertes de donnes. Les programmes lancs via un interprteur de commandes (ou les commandes lances partir dune fentre de terminal) peuvent tre limits par ulimit, en ce qui concerne leur utilisation mmoire, la taille des chiers crs, etc. Cette commande est gnralement congure dans /etc/profile. Vous trouverez des informations complmentaires sur ulimit dans man bash.

218

LINUX

Partage du temps de calcul (nice, renice)


La plupart du temps, la capacit de calcul sous Linux est largement sufsante pour faire fonctionner tous les processus sans dlai. Si Linux est dj occup avec lun 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 dattribuer plus ou moins de temps de calcul un processus. Cest ce que permet la commande nice, qui donne une priorit rduite ou augmente un programme. Elle lui attribue une priorit allant de 20 (trs faible) -20 (trs leve). Par dfaut, les programmes sont lancs avec une priorit 0. Lexemple suivant montre comment lancer un script de sauvegarde avec une priorit plus faible, an quil ne drange pas les autres processus (la sauvegarde peut sans problme durer deux ou trois secondes supplmentaires) :
utilisateur$ nice -n 10 sauvegarde

renice permet de modier la priorit dun programme dj lanc. Elle prend pour paramtre un identiant de processus, obtenu avec top ou ps. Vous trouverez plus de dtails propos de renice dans man renice. top permet galement, grce la commande R, de modier interactivement la priorit dun processus. Seul root peut lancer des processus avec une priorit suprieure 0 (donc ngative).

Redirections et tubes
Presque tous les programmes texte (commandes) attendent des entres sur lentre standard (par dfaut, le clavier) et renvoient des sorties sur la sortie standard (le texte safche dans la console ou la fentre de terminal). On peut rediriger lentre et la sortie, ce qui offre de nombreuses possibilits. Par exemple, cette commande enregistre la liste de tous les chiers du rpertoire xy dans le chier z :
utilisateur$ ls xy > z

Les tubes, ou pipes, permettent dutiliser la sortie dune commande comme entre de la commande suivante. Dans cet exemple, grep ltre la liste de tous les paquetages installs sur la chane "mysql", indpendamment de la casse, puis sort trie cette liste. En dautres termes, la sortie de la commande rpm est transmise grce au caractre | la deuxime commande grep, qui transmet elle-mme sa sortie avec un deuxime caractre | 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

GESTION DES PROCESSUS

219

14.2 Lancer des processus sous une autre identit (su)


Les utilisateurs sans privilge ont deux restrictions importantes lexcution des programmes. Ils ne peuvent lancer que les processus dont ils ont lautorisation dexcution (proprit, groupe et bits daccs x). Cela ne pose pas de problme pour les programmes habituels. Mais certaines commandes, comme celles du rpertoire /usr/sbin, ne peuvent tre lances que par root. De plus, les processus appartiennent lutilisateur qui les a lancs. Ils peuvent ainsi accder aux mmes chiers que lutilisateur. Formul autrement, cela signie quun chier que lutilisateur ne peut pas modier ne peut pas non plus tre modi par un programme lanc par cet utilisateur. Les chiers crs par le processus appartiennent galement lutilisateur qui a lanc le processus. Cest pourquoi un utilisateur normal ne peut pas effectuer beaucoup de tches administratives. La solution la plus simple consiste se connecter en tant que root. Nous avons dj vu quil nest pas conseill de le faire : le risque de dgts involontaires est bien plus grand. Certaines distributions, comme Ubuntu, interdisent compltement la connexion en root. Cette section dcrit comment excuter les tches administratives quotidiennes grce su et ssh. La section 14.3 traitera de lalternative fournie par sudo.
De nombreuses distributions sont configures de manire que vous nayez pas penser su ou sudo. Lorsque vous dmarrez un outil dadministration, une bote de dialogue de mot de passe saffiche automatiquement. Les bits suid et guid offrent une premire possibilit dindiquer aux programmes que quiconque peut les lancer comme sil tait root. La diffrence principale avec sudo est que ces bits daccs sappliquent tous les utilisateurs, tandis que les utilisateurs de sudo doivent tre dclars explicitement dans le fichier /etc/ sudoers.
su

Bien souvent, le besoin se limite lancer rapidement une commande en tant que root. Quitter X se rvle alors inconfortable. Le plus simple pour changer dutilisateur dans une fentre de terminal est dutiliser 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 fentre 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 brivement en tant que root, monter une partition dans larborescence et se dconnecter :
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 dune connexion en tant que root, vous devez utiliser loption -l. Ainsi, tous les chiers de dmarrage du compte (en particulier, la dnition correcte de PATH) sont relus.

220
kdesu

LINUX

Sous KDE, le plus simple pour dmarrer des programmes X avec des droits administrateur est kdesu. Ce programme afche une fentre de dialogue pour saisir le mot de passe root.
utilisateur$ kdesu kate /etc/fstab

gksu consolehelper

kdesu ne fonctionne que lorsque le dmon kdesud est lanc. Il lest gnralement lors du dmarrage de KDE. Les options de kdesu sont disponibles avec kdesu -help-all. Dans certaines distributions, kdesu est directement intgr au menu KDE. Dans ce cas, si vous dmarrez un programme qui demande des droits dadministration, la fentre de connexion de kdesu apparat automatiquement. La contrepartie de kdesu sous Gnome sappelle gksu. Il fonctionne sans processus darrireplan. man gksu offre un rsum des options disponibles. Dans certaines distributions, consolehelper peut tre utilis la place de gksu. Ce programme est galement une bote de dialogue de mot de passe, mais il est mis en uvre de manire compltement diffrente. Lide de base est que les outils dadministration sont installs dans un rpertoire qui nest accessible qu root. Pour les utilisateurs normaux, le nom de lexcutable est un lien vers consolehelper. La commande suivante montre une conguration de ce type pour system-config-network (conguration du rseau 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

ssh

Lorsque root lance la commande system-config-network, /usr/sbin/system-confignetwork est automatiquement lanc. En revanche, si un utilisateur sans privilge lance la mme commande, consolehelper est dmarr. Lorsque lutilisateur indique le bon mot de passe root, consolehelper lance le programme system-config-network. Dans la plupart des distributions, su ne fonctionne que pour les commandes texte et ce, pour plusieurs raisons. Tout dabord, pour lancer un programme X, la variable denvironnement DISPLAY doit contenir le nom de lordinateur sur lequel le programme safche (export DISPLAY=localhost:0). X peut aussi interdire aux utilisateurs trangers la session de dmarrer des programmes (la commande xhost peut rgler ce problme). Enn, il arrive que le port rseau de communication vers le serveur X soit inaccessible. Si kdesu, gksu ou consolehelper ne sont pas installs, ssh est la solution la plus simple ce problme, grce la syntaxe suivante :
utilisateur$ ssh -X -l utilisateur localhost

14.3 Lancer des processus sous une autre identit (sudo)


sudo a une approche compltement diffrente de su. Ce programme permet, aprs conguration, des utilisateurs donns dexcuter certains programmes avec les droits root. La scurit est assure par la saisie du mot de passe de lutilisateur (et non celui de root). sudo lance alors ces programmes comme sils taient dmarrs par un autre utilisateur (par dfaut root). Ainsi, des utilisateurs peuvent prendre en charge des tches administratives ou lancer des commandes critiques pour le systme sans avoir connatre le mot de passe

GESTION DES PROCESSUS

221

root. sudo enregistre dans le journal /var/log/messages tous les programmes lancs, 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 dure peut tre paramtre dans /etc/sudoers avec le mot cl timestamp_timeout.
Configuration

La conguration de sudo est dnie dans le chier /etc/sudoers. Il se divise en trois colonnes qui dcrivent quels utilisateurs de quels ordinateurs ont le droit de dmarrer quels programmes. La ligne suivante signie que lutilisateur catherine sur lordinateur uranus peut lancer la commande /sbin/fdisk. Le mot cl ALL indique que catherine peut la lancer sous nimporte quel compte valide : root, news, lp, etc.
# dans /etc/sudoers catherine uranus=(ALL) /sbin/fdisk

Lorsque la premire colonne de sudoers commence par le caractre %, la ligne sapplique tous les membres du groupe indiqu. man sudoers dcrit la syntaxe de ce chier.
On peut donner un utilisateur les droits sudo sans quil ait saisir son mot de passe. La ligne ressemble alors ceci :
michael ALL=(ALL) NOPASSWD: ALL

Cette solution reprsente un risque de scurit, mais quiconque doit effectuer rgulirement des tches administratives en apprciera le confort. Attention, loption NOPASSWD nest valable que lorsque aucune autre ligne de sudoers ne demande un mot de passe pour le mme utilisateur. Cette astuce fonctionne galement pour les groupes.
Applications

Catherine peut maintenant lancer fdisk de la manire suivante. Elle doit saisir, comme mot de passe, celui associ au compte catherine et indiquer le chemin complet de fdisk, si ce dernier nest pas dans lun des rpertoires de la variable denvironnement PATH de catherine. fdisk se lance alors avec le compte root. Pour choisir un autre compte pour lexcution, on peut utiliser sudo -u compte.
catherine$ sudo /sbin/fdisk /dev/sda [sudo] password for catherine: xxxxxxx

Lancer plusieurs commandes avec sudo gksudo

Lorsquil faut lancer plusieurs tches administratives, il devient fastidieux de prxer chaque commande avec sudo. Il est plus lgant de passer en mode root avec sudo -s -H. Toutes les commandes sont alors lances en tant que root. On sort de ce mode grce Ctrl+D. Lorsque vous dmarrez des programmes dadministration sous X, certaines distributions lancent gksudo. Ce dernier permet de saisir le mot de passe dans une bote de dialogue et lance le programme souhait.
Le fichier de configuration /etc/sudoers propose de nombreuses possibilits 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/.

222

LINUX

sudo sous Ubuntu


Ubuntu et certaines autres distributions ne crent 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 dadministration est donc dutiliser sudo. Le chier /etc/sudoers ne contient que trois lignes :
#Configuration par dfaut de /etc/sudoers sous Ubuntu Defaults !lecture,tty_tickets,!fqdn root ALL=(ALL) ALL %admin ALL=(ALL) ALL

La premire ligne se spare en trois lments. !lecture indique sudo de ne pas afcher davertissement lutilisateur lorsquil lance la commande sudo. tty_tickets fait en sorte que le mot de passe ne soit retenu que pour les commandes lances dans une console donne. !fqdn permet dindiquer des noms rseau non pleinement qualis ce qui est ncessaire pour que sudo puisse fonctionner sans serveur de noms. La deuxime ligne donne root un accs illimit tous les programmes. Elle est plutt inutile sous Ubuntu, puisque la connexion en root nest pas possible. La troisime est la plus importante : elle permet aux membres du groupe admin dappeler tous les programmes. Par dfaut, seul le premier utilisateur (cr lors de linstallation) est membre du groupe admin. Lorsque vous crez un nouvel utilisateur, celui-ci doit tre explicitement ajout ce groupe.

sudo sous SUSE


Sous SUSE, le rle de sudo est plus rduit que sous Ubuntu. Si vous dsirez le mettre en place, vous devez prendre garde certaines particularits de la conguration par dfaut :
# configuration par dfaut de /etc/sudoers dans SUSE # $HOME contient le rpertoire personnel de lutilisateur Defaults always_set_home # empche lexcution 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 premires lignes ont trait aux variables denvironnement une fois laccs sudo autoris. La deuxime ligne a en particulier pour effet de supprimer la variable DISPLAY, ce qui interdit lexcution de programmes X. Defaults targetpw signie que le mot de passe pour le compte cible doit tre saisi avant que la commande ne puisse tre lance (en gnral, mot de passe root). La ligne ALL ALL=(ALL) ALL permet tous les utilisateurs de lancer nimporte quelle commande une fois le bon mot de passe saisi.

GESTION DES PROCESSUS

223

14.4 Processus du systme (dmons)


Nous dnissons les dmons comme des processus en tche de fond pour la gestion du systme. Ils sont gnralement lancs lors du dmarrage grce InitV. Si vous tes familier avec la terminologie Windows 2000/XP, ils correspondent aux services de Windows. La liste suivante dcrit rapidement la tche des dmons les plus importants.
Processus importants du systme atd avahi-demon cron cupsd dbus-daemon dhclient dhcpd dhcpcd gdm gpm hald* hcid hidd hpiod httpd kdm klogd innd ipppd ipsec leafnode lisa lockd lpd mdnsd mysqld named nmbd nscd ntpd postfix pppd dmarrage dautres programmes des heures prdfinies (semblable cron) configuration rseau automatique (ZeroConf, Rendezvous, Bonjour) dmarrage dautres programmes des heures prdfinies tampon de limprimante communication DBUS client DHCP mise disposition d adresses IP aux autres ordinateurs lecture des adresses IP gestionnaire de connexion de Gnome gestion de la souris pour la console texte gestion du matriel gestion du BlueTooth gestion du BlueTooth imprimantes et scanners HP serveur web (par exemple Apache) gestionnaire de connexion de KDE journalisation des messages du noyau serveur de news dmarrage du RNIS VPN avec IPsec serveur de news pour un petit rseau serveur dinformations du rseau local pour KDE verrous NFS tampon dimprimante configuration rseau automatique (ZeroConf, Rendezvous, Bonjour) serveur de base de donnes MySQL serveur de noms serveur de noms pour Windows cache pour les utilisateurs, les groupes et les noms dordinateurs mise jour de lheure avec NTP serveur de courrier lectronique pour lenvoi de courriers client VPN, accs Internet

224

LINUX

pptpd portmap resmgrd rhnsd rpc.* sendmail sshd smartd smbd sdpd squid syslogd syslogd-ng udevd vsftpd xdm xfs xinetd

serveur PPTP pour VPN partie du serveur NFS donne aux utilisateurs normaux accs aux ressources du systme (SUSE) service de mise jour (anciens systmes Red Hat) services rseau RPC serveur de courrier lectronique pour lenvoi de courriers serveur SSH (shell scuris) surveillance SMART des disques durs serveur de fichiers pour Windows (Samba) gestion du BlueTooth proxy et cache web journalisation des messages du systme journalisation des messages du systme gestion des priphriques serveur FTP gestionnaire daffichage de X serveur de polices de X dmarrage dautres dmons rseau

Threads du noyau
En plus des services rseau habituels comme httpd (Apache), il existe de nombreux processus qui ne sont pas vraiment des programmes, mais des morceaux de processus (threads) du noyau. Lorsque vous tapez ps axu, vous pouvez les reconnatre par leur nom qui se trouve entre crochets. Certains sont suivis dun numro qui dsigne le processeur concern. Ainsi, kblockd/0 gre le tampon des priphriques bloc pour le premier processeur, kblockd/1 pour le deuxime, etc. La plupart des threads du noyau grent les tches de bas niveau du systme dexploitation (gestion de la mmoire, des processus, occupation du processeur, etc.). Ils sont principalement lancs lors de linitialisation au dbut du dmarrage du systme. Les applications normales ne ncessitent pas de conguration spciale ce niveau.
Threads importants du noyau aio events kacpid kblockd khelperd khubd kjournald gestion de ses entres/sorties asynchrones (par exemple pour les processus rseau) gestion des vnements et les interruptions logicielles fonctions ACPI gestion du tampon des priphriques bloc chargement et suppression des modules du noyau pour les programmes des utilisateurs gestion de linsertion et de ljection des priphriques USB journalisation du systme de fichiers ext3

GESTION DES PROCESSUS

225
serveur NFS gestion les threads serveur NFS gestion de la mmoire communication avec les priphriques srie gestion des interruptions matrielles pagination verrous NFS localisation processeur des processus gestion les cartes PCMCIA enregistrement physique les modifications de fichiers journalisation du systme de fichiers reiserfs NFS gestion des erreurs et dpassements de dlais du SCSI surveillance du systme

knfsd kthread nfsd kscand kseriod ksoftirqd kswapd lockd migration pccardd pdflush reiserfs rpciod scsi_eh watchdog

Dmarrer et arrter des dmons


La plupart des distributions dmarrent les dmons lists prcdemment grce au systme InitV. Nous le dtaillerons au Chapitre 24, o vous apprendrez aussi comment intgrer de nouveaux scripts ce systme. Certaines distributions utilisent, la place de InitV, un autre systme, par exemple Upstart pour Ubuntu. Jusqu Ubuntu 8.04, Upstart gre peu de processus et dmarre 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 dmarrer et arrter un dmon manuellement, ainsi que de manire automatique lors du dmarrage du systme. Ces informations sont particulirement utiles pour mettre en place et congurer des services rseau. Attention, la commande et le nom du service peuvent varier dune distribution lautre. Par exemple, le script de dmarrage du serveur Apache sappelle apache2 sous Debian, Ubuntu et SUSE, et httpd sous Fedora et Red Hat.
Dmarrage manuel

Pour dmarrer manuellement un dmon ou un service rseau, lancez la commande suivante. Notez que le service rseau est parfois dmarr immdiatement aprs linstallation du paquetage (comme sous Debian ou Ubuntu), tandis quil peut ncessiter un dmarrage manuel sous dautres distributions. Sous Debian, Fedora, Red Hat, SUSE et Ubuntu :
root# /etc/init.d/nom start

Sous Debian et Ubuntu :


root# invoke.rc nom start

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
Arrt manuel

Les commandes pour arrter un dmon sont trs 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 /redmarrage

De nombreux services savent relire leurs chiers de conguration pendant quils sont en service. Pour quils puissent prendre en compte des modications dans leur conguration, il faut lancer la commande reload. Ceux qui ne la prennent pas en charge doivent tre redmarrs 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
Dmarrage automatique

Lorsquun service rseau est mis en place correctement, il est dusage de le dmarrer automatiquement lors de lamorage de lordinateur et de larrter lors de lextinction de la machine. Sous certaines distributions (Debian, Ubuntu), les services sont congurs ainsi ds quils sont installs partir du paquet. Sous dautres, ce nest pas le cas, pour des raisons de scurit le dmarrage automatique doit donc tre activ manuellement. Sous Debian, update-rc.d cre les liens de dmarrage et darrt InitV avec le numro dexcution par dfaut 20. Si vous dsirez utiliser dautres nombres, indiquez-les avec n1 et n2 (voir Chapitre 24).

GESTION DES PROCESSUS

227

Sous Red Hat et Fedora, la commande chkconfig suft dans de nombreux cas. La seconde commande nest ncessaire que lorsque le script InitV ne contient pas dinformation sur le niveau dexcution 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 dmarrage automatique

Les commandes suivantes suppriment le dmarrage automatique ultrieur des services. Lorsque le systme fonctionne, il nest pas arrt ; 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 Dmarrer automatiquement des processus (crontab)


Lorsque votre ordinateur se met soudainement parcourir le disque dur et vous envoyer des courriers lectroniques, il sagit presque toujours du dmarrage dun processus via le dmon cron. InitV lance ce programme automatiquement lors du dmarrage de lordinateur. Il est actif une fois par minute ; il analyse tous les chiers crontab et dmarre les programmes qui sy trouvent. Ce dmon est principalement utilis pour les tches de maintenance : rotation des chiers de journalisation, suppression des chiers temporaires, actualisation des rpertoires, etc. La conguration globale de cron se trouve dans le chier /etc/crontab. Les utilisateurs peuvent galement dnir leurs propres tches dans les chiers spciques aux utilisateurs /var/spool/cron/tabs/utilisateur. Les chiers /var/spool/cron/allow et /var/spool/cron/deny dnissent des permissions sur ces chiers utilisateur. Lorsque allow existe, lutilisateur ne peut excuter que les commandes qui sy trouvent. Lorsque deny existe, il ne peut pas les excuter. Si ces deux chiers sont absents, la compilation de cron dnit si les utilisateurs en dehors de root peuvent utiliser ce dmon.

228
crontab

LINUX

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 heure jour mois joursemaine utilisateur commande indique quelle minute (0-59) le programme doit tre lanc indique lheure (0-23) indique le jour dans le mois (0-31) indique le mois (0-12) indique le jour de la semaine (0-7, 0 et 7 signifient dimanche) indique pour quel utilisateur est lance la commande (root le plus souvent) indique la commande lancer

Une toile dans lun des cinq premiers champs indique que ce champ doit tre ignor. Ainsi, 15 * * * * signie quil faut lancer la commande 15 minutes aprs lheure pleine, toutes les heures, tous les jours, tous les mois, indpendamment du jour de la semaine. 29 0 * * 6 indique quil faut la lancer tous les samedis 0:29. Ces champs comprennent galement une syntaxe du type */n. Celle-ci signie que la commande doit tre lance toutes les n minutes/heures, etc. Ainsi, */15 * * * * indique quelle est lance tous les quarts dheure ( x:00, x:15, x:30 et x:45). La documentation nest pas claire sur la signication de 0 pour le jour du mois et le mois (voir man 5 crontab). Les chiers /var/spool/cron/tabs/utilisateur ont le mme format que crontab. La seule diffrence est quil ny a pas de colonne utilisateur.

Modifier la configuration
Pour changer la conguration globale de cron, vous pouvez modier directement le chier /etc/crontab et les chiers de /etc/cron* avec un diteur de texte. Pour ajouter une ligne spcique un utilisateur, vous devez utiliser la commande crontab -e. Lditeur par dfaut de la variable denvironnement EDITOR est alors lanc.
cron.hourly, .daily, .weekly, .monthly

Dans la plupart des distributions, /etc/crontab ne contient que peu dentres qui lancent tous les chiers 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

GESTION DES PROCESSUS

229

La conguration de cron sen trouve considrablement simplie. Dans la plupart des cas, il suft alors de copier le script lancer dans lun des quatre rpertoires /etc/cron.xxx pour que les commandes qui sy trouvent soient lances. Modier directement /etc/crontab nest alors ncessaire que lorsque vous voulez changer les heures prdnies (attention, le chier /etc/crontab peut tre cras lors dune mise jour de la distribution). Pendant mon travail sur cet ouvrage, jai synchronis le rpertoire de ce livre et mon rpertoire 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 dsirez viter quune tche cron ne se lance un moment critique (par exemple, lorsque vous gravez un DVD), il suffit de dsactiver cron avec /etc/init.d cron stop .

15

Convertisseurs graphiques, audio et texte


Linux propose de nombreuses commandes pour passer des images, des textes et dautres chiers dun format un autre : du GIF au JPEG, du Latin-1 lUnicode, du PostScript au PDF, du HTML au texte simple, du MP3 au WAV, etc. Ce chapitre offre un premier aperu de ces commandes, assorties de quelques exemples dapplication. La plupart des distributions fournissent peu de convertisseurs. Si vous ne trouvez pas lune des commandes prsentes dans ce chapitre, vous devez installer le paquetage correspondant. Nous ne parlerons pas ici des programmes interactifs, tels que Gimp. Vous pouvez bien sr charger un chier TIFF dans Gimp et lenregistrer au format JPEG. Nous nous limiterons aux commandes texte avec lesquelles la conversion peut tre automatise trs simplement.

15.1 Convertisseurs graphiques


Il existe principalement deux paquetages de convertisseurs graphiques : Image Magick et Netpbm. Ils peuvent grer dinnombrables formats graphiques et proposent des commandes et des options pour les transformations basiques dimages (modier la taille ou le dcoupage dune image, amliorer le contraste, rduire le nombre de couleurs, etc.). Vous trouverez ici une courte prsentation de ces deux paquetages, ainsi que dautres commandes et bibliothques de conversion dimages.
Image Magick

Le paquetage Image Magick contient plusieurs commandes isoles, dont la plus importante est convert. Celle-ci copie une image et en modie le format. Les formats source et cible sont simplement indiqus par les noms de chiers. Par exemple, la commande suivante copie le chier image.jpg au format PNG :
utilisateur$ convert image.jpg image.png

Divers paramtres de limage (taille, nombre de couleurs, taux de compression, etc.) peuvent tre modis par le biais dune centaine doptions :
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 chier plutt que den crer un nouveau :
utilisateur$ mogrify -resize 50% test.jpg

Les autres commandes dImage Magick comprennent compare pour comparer deux images et conjure pour lancer des commandes de transformation dimages du Magick Scripting Language (MSL, langage de script Magick). identify afche une description dun chier

232

LINUX

image (format, taille, etc.). import cre une copie dcran et lenregistre dans un chier. 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 ...

Netpbm

Les programmeurs peuvent aussi utiliser Image Magick en tant que bibliothque. La documentation complte de toutes les commandes se trouve sur le site web http://www.imagemagick.org/. Lapproche de Netpbm (anciennement Portable Bitmap Utilities) est diffrente de celle dImage Magick. En effet, chaque chier doit dabord tre transform au format interne PNM ou PBM. Lexemple suivant montre comment transformer un chier TIFF en chier PNG, o lespace de couleurs de limage est normalis (pnmnorm) :
utilisateur$ tifftopnm image.tif | pnmnorm | pnmtops -noturn -rle \ -scale 0.5 > image.eps

Bibliothque libtiff

Bibliothque libwmf

Convertisseur SVG EXIF Fichiers RAW

Netpbm contient environ 200 commandes ; vous en trouverez une description ladresse http://netpbm.sourceforge.net/doc/. Le paquetage libtiff contient la bibliothque ponyme, ainsi que diverses commandes pour modier et convertir des chiers TIFF. Les principales commandes de conversion sont bmp2tiff, gif2tiff, tiff2pdf et tiff2ps. Pour manipuler les chiers TIFF, les commandes tiffcp, tiffinfo ou encore tiffsplit peuvent savrer utiles. Le paquetage libwmf contient la bibliothque du mme nom, ainsi que certaines commandes pour traiter les chiers WMF et EMF (Windows Metale et Enhanced Metale). Les principales commandes de conversion sont wmf2eps, wmf2svg, ainsi que wmf2gd (conversion vers les formats JPEG et PNG). Le paquetage librsvg2 ou librsvg2-bin contient les commandes rsvg et rsvg-convert, qui servent transformer les chiers SVG (Scalable Vector Graphics) dans un format bitmap. Il existe plusieurs bibliothques et commandes pour modier les donnes EXIF des chiers JPEG, par exemple exif, exiftran, exiv2 ou encore jhead. Certains appareils photo numriques permettent denregistrer des images sans perte de qualit au format RAW spci par le fabricant. Pour transformer ces chiers en images conventionnelles, on peut utiliser la commande dcraw du paquetage du mme nom.

15.2 Conversion audio et vido


Le tableau suivant prsente les principales commandes pour lire des donnes audio partir dun CD et transformer les chiers audio et vido dun format un autre. Si le nom du paquetage ne drive pas directement de celui de la commande, il est indiqu entre parenthses ce nom peut cependant varier selon les distributions.

CONVERTISSEURS GRAPHIQUES, AUDIO ET TEXTE

233

Format CD -> WAV MP3 -> WAV WAV -> MP3 OGG -> WAV WAV -> OGG MP3 -> OGG AAC -> WAV WAV -> AAC WAV <-> FLAC Audio <-> Audio Audio <-> Audio Audio/Vido <-> Audio/Vido

Commande (paquet) cdda2wav/icedax, cdparanoia mpg123, mpg321, madplay lame oggdec (vorbis-tools) oggenc (vorbis-tools) mp32ogg faad faac flac sox sfconvert (audiofile) ffmpeg (convertisseur universel)

Cette section prsente quelques exemples de commandes. Vous trouverez plus dinformations et des rfrences doptions grce man commande.
Extraction de CD audio

Ces outils servent extraire un CD de manire efcace et sans perte de qualit vers le disque dur. Les commandes les plus populaires sont cdparanoia et cdda2wav, ainsi que le projet driv icedax. cdparanoia a la rputation davoir de bons rsultats lorsque le CD est ray ou prsente des problmes similaires. Les deux commandes fournissent dinnombrables paramtres. Voici deux exemples. La commande suivante lit la piste 3 dun CD qui se trouve dans le premier lecteur CD SCSI. Le chier rsultant est nomm audio.wav.
root# cdda2wav -D /dev/scd0 -t 3

Le second exemple lit la piste 4 du CD dans le mme lecteur. Le rsultat est le chier cdda.wav dans le rpertoire local :
root# cdparanoia -d /dev/scd0 "4"
Codage MP3

En raison des problmes de brevets voqus au Chapitre 11, il existe encore peu de distributions Linux dotes dun codeur MP3. Divers codeurs sont cependant disponibles sur Internet en tant que paquetages supplmentaires. Le programme le plus connu est lame : http://lame.sourceforge.net/index.php. Son utilisation est trs simple : lame entree.wav sortie.mp3 cre partir du chier en entre un chier MP3. Lopration, en particulier la qualit du chier MP3, est paramtre grce de nombreuses options.

MP3 -> OGG

Les commandes listes prcdemment peuvent tre combines, par exemple pour transformer un chier 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

234

LINUX

FLAC

Bibliothque AudioFile

Conversion vido (ffmpeg)

Malheureusement, les tags Info (ID3) sont galement perdus dans cette opration. Pour viter cela, on peut aussi utiliser un script de conversion MP3-Ogg (comme mp32ogg). FLAC signie Free Lossless Audio Codec, codec audio libre sans perte. Les chiers FLAC sont plus volumineux que les chiers MP3 ou Ogg, mais plus petits que les WAV. Lavantage principal de FLAC par rapport MP3 ou Ogg est quil code les chiers audio sans perte. Pour coder et dcoder ces chiers, on utilise la commande flac. Le paquetage audiofile implmente les fonctions importantes de la bibliothque AudioFile du fabricant SGI. La commande la plus intressante est sfconvert, qui permet de convertir des chiers audio entre les formats aiff, aifc, next et wave. sfinfo essaie de dterminer dans quel format se trouve un chier audio. La commande ffmpeg du paquetage du mme nom convertit les chiers audio et vido dun format un autre. La liste des formats pris en charge est longue et on peut lobtenir avec ffmpeg -formats.
utilisateur$ ffmpeg -i in.avi out.mpg

La commande permet aussi de prparer des donnes audio et vido pour les graver sur un DVD. Un exemple est fourni dans man ffmpeg.

15.3 Conversion de texte


Cette section prsente les commandes recode, iconv, dos2unix et unix2dos. Elles servent modier le jeu de caractres et les caractres de n de ligne de chiers texte. Ces transformations sont ncessaires lorsque vous transfrez des chiers entre des systmes qui utilisent des jeux de caractres ou des conventions de format de texte diffrents. recode permet de convertir un chier texte dun jeu de caractres un autre. La commande suivante convertit le chier DOS fichierdos en un chier Linux avec le jeu de caractres Latin-1 :
utilisateur$ recode ibmppc..latin1 < fichierdos > fichierlinux

recode

Comme le montre lexemple suivant, recode peut aussi modier les caractres de n de ligne. Cette commande convertit tous les caractres de n de ligne du chier fichierwin (CR puis LF, soit Carriage Return puis Line Feed) en caractres conventionnels sous Linux (LF) :
utilisateur$ recode latin1/cr-lf..latin1 < fichierwin > fichierlinux

recode peut aussi lire un chier cod en Latin-1 et lenregistrer en UTF-8 :


utilisateur$ recode latin1..u8 < fichierlatin1 > fichierutf8
iconv

La commande iconv est une alternative populaire recode. Elle ne peut cependant pas modier les caractres de n de ligne. Lexemple suivant cre un chier UTF-8 partir dun chier Latin-1 :
utilisateur$ iconv -f latin1 -t utf-8 fichierlatin1 > fichierutf8

dos2unix et unix2dos

Les commandes dos2unix et unix2dos changent les caractres de n de ligne du format DOS/Windows (CR puis LF) et du format Unix/Linux (LF uniquement). Cette commande ne fonctionne que pour les chiers dont le jeu de caractres est sur un octet (par exemple, ASCII ou Latin-1), mais pas pour les chiers Unicode.
utilisateur$ dos2unix fichier.txt

CONVERTISSEURS GRAPHIQUES, AUDIO ET TEXTE

235

15.4 Conversion de noms de fichiers


convmv

Jusqu il y a quelques annes, il tait courant de reprsenter les noms de chiers dans le jeu de caractres Latin-1. Depuis, UTF-8 sest impos comme standard. Pour transformer un nom de chier dun jeu de caractres un autre, on peut utiliser la commande convmv. Elle est cependant rarement fournie par dfaut. Certaines distributions permettent de linstaller sans problme partir du paquetage du mme nom. Si votre distribution ne fournit pas un tel paquet, vous devez tlcharger le script Perl ladresse http://j3e.de/linux/convmv/. Pour modier rcursivement tous les noms de chiers dun rpertoire depuis le jeu de caractres Latin-1 vers UTF-8 (avec une conrmation pour chaque modication), appelez convmv de cette manire :
utilisateur$ convmv -r -i --notest -f iso-8859-1 -t utf8 rpertoire

convmv modie le nom, mais pas le contenu des chiers. Loption --notest est obligatoire pour que la conversion ait effectivement lieu. Cette commande essaie de reconnatre elle-mme les chiers qui ont dj un nom en UTF-8 et ne propose dans ce cas pas de renommage. Si vous dsirez dsactiver cette fonctionnalit, utilisez loption --nosmart.

15.5 Conversion de documents


Il est parfois ncessaire de convertir des documents (PostScript, PDF, HTML, texte, etc.) dun format un autre. La liste suivante donne quelques pointeurs vers des logiciels utiles. Vous trouverez 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. Cest particulirement utile lorsque limprimante demande un format PostScript en entre. a2ps peut galement reconnatre du code et il gre alors la distinction des mots cls, des commentaires, etc. enscript convertit des chiers texte aux formats PostScript, HTML et RTF. mpage convertit des chiers texte au format PostScript, par dfaut quatre pages par feuille et au format Letter. html2text convertit les documents HTML en chiers texte. html2ps est un script Perl qui convertit les chiers HTML au format PostScript. ps2pdf convertit les chiers PostScript au format PDF. eps2pdf convertit des images EPS au format PDF. pdf2ps convertit les chiers PDF au format PostScript. pdftops a le mme but que pdf2ps, mais fournit plus doptions. gs (GhostScript) convertit les documents PostScript et PDF en divers formats bitmap et formats dimprimantes. GhostScript est une brique importante du systme dimpression de Linux.

236

LINUX

Le paquetage psutils fournit diverses commandes pour grer les chiers PostScript. On notera en particulier psbook, qui permet de rordonner les pages dun texte an quil puisse tre imprim en livre, ou encore psnup, qui regroupe plusieurs pages rduites sur une seule feuille. pdftk (PDF-Toolkit) fournit des fonctions comparables psutils pour les chiers PDF. pdftotext extrait le texte dun chier PDF et lenregistre dans un chier texte. Le format et les images sont alors perdus.

16

Outils rseau
Ce chapitre prsente les diffrentes commandes pour utiliser et grer les fonctions et services lmentaires dun rseau. Vous apprendrez comment vous connecter un autre ordinateur du rseau avec ssh, comment transfrer des donnes avec wget ou rsync, etc. Il existe, pour certaines de ces commandes, une interface utilisateur graphique. Cependant, comme dans les chapitres prcdents, nous donnons ici la priorit aux commandes texte. Certaines commandes ne peuvent tre utilises quen root ou en sudo. Dautres peuvent tre lances par un utilisateur conventionnel, mais ne sont gnralement pas sa disposition la variable denvironnement PATH ne contient pas le chemin des commandes en question. Il peut donc tre ncessaire de saisir le chemin complet, gnralement /sbin ou /usr/sbin. Par exemple, pour lancer la commande ifconfig sous Fedora en tant quutilisateur non root, il faut la saisir sous la forme /sbin/ifconfig.

16.1 Connatre ltat du rseau


Cette section donne un aperu des commandes qui permettent de connatre ltat dun rseau. Vous trouverez plus dinformations sur ces commandes au Chapitre 26, qui traite de la conguration manuelle de laccs au rseau et prsente un petit glossaire de termes, tels que passerelle, serveur de noms, mascarade, etc. La commande ifconfig afche une liste de toutes les interfaces rseau connues. Les plus classiques sont ethn (Ethernet), pppn (accs Internet via un modem) ou encore ipppn (RNIS). Linterface lo joue un rle particulier : elle permet aux programmes locaux de communiquer avec un protocole rseau. Cela fonctionne mme lorsque lordinateur nest connect aucun rseau. Pour un ordinateur dot dune carte Ethernet, ifconfig afche 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 reus: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 reus: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:Hte UP LOOPBACK RUNNING MTU:16436 Metric:1 Packets reus: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 reus:65773827 (62.7 MB) Octets transmis:65773827 (62.7 MB)

Identifier les interfaces rseau

238

LINUX

Tester laccessibilit de localhost

Si linterface eth0 ne safche pas, la carte rseau nest pas active. Les outils de conguration de votre distribution permettent de remdier cette situation. Vous pouvez aussi lactiver manuellement, par exemple avec ifconfig eth0 192.168.0.2. Si une erreur du type "eth1: ERREUR en rcuprant les signaux de linterface: Aucun priphrique de ce type" safche, le module du noyau permettant de grer la carte rseau est probablement manquant. ping envoie un petit paquet rseau une fois par seconde une adresse fournie en paramtre. Lorsquun ordinateur sy trouve, il envoie une rponse (qui peut cependant tre masque par un pare-feu). ping fonctionne tant quil nest pas interrompu par Ctrl+C. Il permet donc de tester si une connexion peut tre tablie entre lordinateur local et un autre ordinateur. Il vaut mieux commencer par tester ping localhost pour voir si linterface de bouclage lo et les fonctions rseau lmentaires de lordinateur fonctionnent. Cela devrait tre le cas, mme si vous navez pas de carte rseau (localhost dsigne toujours lordinateur 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 laccessibilit du rseau local

Lorsque vous indiquez, la place de localhost, ladresse IP dun autre ordinateur du rseau local, vous testez si ce rseau fonctionne. -c 2 fait en sorte que seuls deux paquets soient envoys et vite que ping continue indniment.
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

Lorsquil existe un serveur de noms sur le rseau local qui associe ladresse IP 192.168.1.4 un nom (ou lorsque le chier /etc/hosts gre cette tche), vous pouvez utiliser le nom de lordinateur 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 laccs Internet

Vous pouvez ensuite vrier si votre accs Internet fonctionne. La commande suivante teste en mme temps deux aspects de la conguration du rseau : 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

OUTILS RSEAU

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 lments peuvent tre en cause : Le serveur de Yahoo! peut tre hors service ou ne pas rpondre au ping pour des raisons de scurit. Essayez datteindre une autre adresse Internet connue. Lorsque le serveur de noms ne fonctionne pas, vous obtenez le message derreur ping: unknown host yahoo.fr. Vriez que /etc/resolv.conf contient ladresse du serveur de noms. Lorsque la passerelle ne fonctionne pas, vous obtenez le message derreur connect: Network is unreachable. Lancez alors la commande route -n. La dernire ligne doit ressembler celle de lexemple suivant, o la colonne Passerelle contient ladresse IP de votre passerelle :
root# route -n Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0

Use 0 0 0

Iface eth0 eth0 eth0

Suivre le chemin des paquets IP

Si un seul ordinateur sert de passerelle un rseau local complet, il est possible que vous ayez oubli dactiver la mascarade. Dans ce cas, laccs Internet ne fonctionne pas pour le rseau local. La conguration dune passerelle Internet est dtaille au Chapitre 26. traceroute permet de connatre le chemin parcouru par un paquet rseau mis par votre ordinateur vers un autre ordinateur et le temps quil met parcourir chaque tape du chemin. Par dfaut, la commande effectue trois tentatives et afche les trois dures correspondantes. La commande ne fonctionne pas si lune des tapes a un pare-feu qui bloque le port UDP 33434 utilis par traceroute. Dans ce cas, traceroute nafche 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 premire ligne est ma passerelle/routeur ADSL. La deuxime est la passerelle de mon fournisseur daccs Internet. Les lignes 3 9 sont les diffrentes tapes dans le rseau de mon fournisseur daccs Internet. La ligne 10 passe sur le rseau de Google et les lignes 11 16 sont les diffrentes tapes dans le rseau de Google.

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 mme que les diverses bibliothques correspondent sur les deux ordinateurs. Cette section se limite la description de ssh. Les anciens programmes telnet et rlogin ne devraient plus tre utiliss. Ils transmettent les informations de connexion, y compris le mot de passe de lutilisateur, en clair.
Le prrequis pour utiliser ssh est quun serveur SSH, cest--dire le programme sshd, fonctionne sur le second ordinateur. Pour certaines distributions Linux, cest le cas par dfaut. Pour dautres, il faut installer le programme il sagit souvent du paquetage openssh-server. Si vos ordinateurs sont quips de parefeu, ceux-ci ne doivent pas bloquer le port 22.
Session shell typique

Si vous tes sur lordinateur uranus et que vous dsirez lancer une session shell sur mars, il suft de lancer la commande suivante :
utilisateur@uranus$ ssh mars utilisateur@marss password: xxx

Lorsque vous vous connectez pour la premire fois un autre ordinateur, un avertissement de ce type apparat :
The authenticity of host mars (192.168.1.10) cant 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 signie que ssh nest pas sr de pouvoir faire conance lordinateur mars dot de ladresse IP 192.168.1.10. Il se pourrait en effet quun ordinateur tranger se fasse passer pour mars. Si vous rpondez la question par yes, ssh enregistre le nom, ladresse et lempreinte RSA (code pour identier de manire unique lordinateur) dans ~/.ssh/known_hosts. Si vous souhaitez vous connecter mars sous un autre identiant que celui sous lequel vous travaillez sur uranus (par exemple, en tant que root), ajoutez loption -l :
utilisateur@uranus$ ssh -l root mars root@marss password: xxx
Lancer des commandes

Plutt que dutiliser ssh de manire interactive, vous pouvez nexcuter quune commande sur lordinateur distant. Il suft de passer la commande et ses paramtres comme paramtres de la commande ssh. ssh est termin aprs cette commande.
utilisateur@uranus$ ssh mars commande options utilisateur@marss password: xxx

Cette possibilit a priori triviale ouvre de larges horizons. Vous pouvez, par exemple, lancer sur un ordinateur distant la commande tar, transfrer larchive cre la sortie standard (en utilisant un tiret - aprs loption -f) et rediriger la sortie standard vers lentre dune seconde commande tar, cette fois-ci locale, avec un tube |. Vous pouvez ainsi dplacer une arborescence complte via SSH.

OUTILS RSEAU

241

La commande suivante montre comment je copie le rpertoire htdocs de mon serveur web kofler.cc vers le rpertoire local ~/bak :
utilisateur$ ssh kofler.cc tar -cf - htdocs |tar -xC ~/bak/ -f utilisateur@kofler.ccs password: xxxxx
SSH et X

On peut aussi lancer un programme X dans une session SSH. Il est alors lanc sur lordinateur distant, mais safche sur lordinateur local et comprend toutes les saisies du clavier et de la souris. Comme le protocole X fonctionne travers le rseau, une bonne connexion rseau est ncessaire pour pouvoir travailler confortablement. Pour lancer des programmes X avec ssh, il faut passer loption -X. Le serveur doit avoir la ligne ForwardX11 yes dans le chier de conguration /etc/sshd_config pour que le transfert fonctionne. ssh soccupe alors lui-mme de la gestion de la variable DISPLAY. Les commandes suivantes lancent lditeur xemacs sur lordinateur mars. La fentre de lditeur safche cependant sur lordinateur uranus, o elle peut tre utilise. Cela fonctionne mme lorsque le serveur X de mars ne fonctionne pas (par exemple, en niveau dexcution 3). Toutes les bibliothques X doivent nanmoins tre installes.
utilisateur@uranus$ ssh -X mars utilisateur@marss password: xxx utilisateur@mars$ xemacs &

Copier des fichiers de manire sre avec scp

La commande scp permet de copier des chiers via SSH sur un rseau. La syntaxe ressemble celle-ci :
utilisateur$ scp [[utilisateur1@]hote1:]fichier1 \ [[utilisateur2@]hote2:][fichier2]

fichier1 est copi de lordinateur hote1 vers lordinateur hote2 et enregistr sous le nom fichier2. Voici quelques remarques quant aux nombreux lments optionnels de la commande : hote1 et hote2 peuvent tre omis lorsquils dsignent lordinateur local (localhost). Il nest pas ncessaire dindiquer utilisateur1 lorsquil sagit de lutilisateur actif. Il nest pas ncessaire dindiquer utilisateur2 lorsquil sagit de lutilisateur courant dhote1 ou de utilisateur1. fichier1 peut tre un rpertoire. Il faut alors passer loption -r pour que tout le rpertoire et ses sous-rpertoires soient pris en compte. Il nest pas ncessaire dindiquer fichier2 lorsque le nom du chier ne doit pas tre modi. Le chier est alors copi dans le rpertoire personnel de utilisateur2. On peut aussi indiquer un rpertoire la place de fichier2. ~ reprsente le rpertoire personnel de utilisateur2. Par exemple, si lutilisateur michael travaille sur lordinateur uranus et veut transfrer le chier abc.txt dans le rpertoire ~/efg de mars, la commande scp saisir est celle-ci :
michael@uranus$ scp abc.txt mars:~/efg/ michael@marss password: xxx

242
SFTP

LINUX

SFTP (Secure FTP) est une variante plus sre du protocole FTP base sur SSH. Nous traiterons de SFTP la section 16.3. Le site web http://shfs.sourceforge.net fournit du code pour un module du noyau qui met en place un systme de chiers bas sur SSH. Lutilisation de shfs est plus confortable que dinnombrables commandes scp et bien plus sre que NFS mme sil est plus lent. Le module shfs est lheure actuelle rarement fourni par les distributions. Vous devez donc le compiler vous-mme. Aprs make et make install, la commande suivante devrait fonctionner :
root# mount -t shfs utilisateur@mars /test

Systme de fichiers SHFS

Cette commande monte le rpertoire racine de lordinateur mars (et non le rpertoire personnel de utilisateur !) dans le rpertoire local /test. mount appelle la commande shfsmount, qui soccupe de passer les bonnes options.
Tunnels SSH

Les utilisateurs avancs peuvent galement crer des tunnels avec SSH. Ils permettent de transfrer tous les paquets IP envoys un port donn. Ils fournissent donc un chemin scuris pour les paquets entre deux ordinateurs, mme lorsquun pare-feu se trouve entre les deux machines. Si le tunnel est cr depuis lordinateur client, il faut utiliser loption -L port_local:hte_distant:port_distant. Par exemple, la commande suivante fait correspondre le port 3306 de mars au port 3307 de lordinateur local. La commande dmarre galement une session SSH, ce que lon peut viter avec loption -N lorsque seul le tunnel (sans connexion au shell) est dsir. Si vous souhaitez vous connecter mars avec un autre utilisateur, utilisez comme prcdemment loption -l.
utilisateur@uranus$ ssh -L 3307:mars:3306 mars utilisateur@marss password: xxxx

Le tunnel reste ouvert jusqu ce que la session SSH soit termine avec Ctrl+D. Si vous avez lanc ssh avec loption -N, le programme doit tre arrt avec Ctrl+C. 3306 est le port habituel de MySQL. Vous pouvez dsormais accder au serveur MySQL qui fonctionne sur mars via le port 3307 duranus. Il faut pour cela indiquer le port 3307 et le nom dhte 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 sr que MySQL accepte les connexions rseau, ainsi que la combinaison identiant de connexion/hte.

Utiliser SSH sans mot de passe


Tous les exemples de cette section supposent que vous vous connectiez sur la machine cible de manire tout fait normale aprs avoir excut ssh, scp, etc. Ce nest cependant pas toujours ncessaire. Vous pouvez crer une paire de cls SSH sur lordinateur local grce ssh-keygen -t rsa : une cl prive (~/.ssh/id_rsa) et une cl publique (~/.ssh/id_rsa).

OUTILS RSEAU

243

Lorsque vous lancez ssh-keygen, vous devez saisir un mot de passe. Il sagit en fait dune phrase de passe, cest--dire du texte libre pouvant se composer de plusieurs mots. La cl prive est chiffre avec cette phrase de passe. Copiez la cl publique avec scp sur lordinateur cible et ajoutez-la au chier ~/.ssh/ authorized_keys si ce chier nexiste pas encore, crez-le. Renouvelez cette tape sur tous les ordinateurs auxquels vous vous connectez en SSH. Lorsque vous ouvrez une connexion vers lordinateur cible, ssh accde aux informations des cls. Le mot de passe saisir nest alors plus celui du compte, mais celui de la cl. Vous navez alors rien gagn en termes de confort. Il serait tentant de ne pas saisir de mot de passe lorsque ssh-keygen cre les cls. Cela permet en effet une connexion sans mot de passe lordinateur distant, mais nimporte qui peut lire et utiliser votre cl prive. La scurit de tous les ordinateurs sur lesquels vous avez transfr votre cl publique dpend alors de votre cl prive. Si celle-ci est subtilise, un attaquant aura accs vos comptes sur toutes ces machines ! ssh-agent est une solution plus sre et confortable. Ce programme gre toutes les cls prives dun utilisateur (il nen existe gnralement quune seule). On le lance avec :
utilisateur$ eval $(ssh-agent)

Les variables denvironnement de la console courante sont alors modies. ssh-agent fonctionne en processus darrire-plan. ssh-add permet dajouter une cl prive :
utilisateur$ ssh-add ~/ssh/id_rsa Enter passphrase for /home/utilisateur/.ssh/id_rsa: xxxxx

ssh utilise alors la cl gre par ssh-agent. Vous naurez plus saisir le mot de passe pour la cl, ni taper la phrase de passe chaque connexion : il vous sufra de la saisir une seule fois. Lavantage de ssh-agent est quil est limit une seule console grce la porte des variables denvironnement. Lutilisation de SSH sans mot de passe est donc soit peu sre (cl prive sans mot de passe), soit lourde (ssh-agent). Par consquent, la conguration nest rentable que si vous utilisez ssh frquemment.

16.3 Transfrer des fichiers


FTP
Remarques prliminaires

FTP, qui signie File Transfer Protocol (protocole de transfert de chiers), est une mthode ancienne de transfert de chiers sur un rseau. Il doit sa grande popularit au mode de transfert anonyme : de gros serveurs sur Internet donnent accs tous les utilisateurs des archives FTP. Cet accs nest pas protg par un mot de passe. Pour utiliser un FTP anonyme, vous pouvez utiliser comme nom dutilisateur anonymous et comme mot de passe gnralement votre adresse de courrier lectronique.

244

LINUX

Linconvnient de FTP est que le nom dutilisateur et le mot de passe sont transfrs en clair. SFTP (Secure FTP) est une alternative plus sre base sur SSH. HTTP, le protocole de transfert des pages web, est galement souvent utilis comme alternative FTP. Dans cette section, nous parlerons de lutilisation de FTP du point de vue du client.
Commande FTP

Lanctre de tous les clients FTP est la commande texte ftp. Comme elle transfre par dfaut les chiers depuis et vers le rpertoire courant, il faut, avant de la lancer, passer dans le rpertoire de travail souhait avec cd. La session FTP est ensuite initialise avec ftp utilisateur@serveurftp ou, plus simplement, ftp serveurftp. Si vous dsirez utiliser le mode anonyme, indiquez anonymous comme nom dutilisateur. Une fois la connexion tablie et le mot de passe saisi, vous pouvez naviguer dans les rpertoires du serveur FTP grce aux commandes cd, pwd et ls. Pour tlcharger un chier depuis le serveur vers votre ordinateur, lancez get fichier. Son nom nest pas modi. Vous pouvez aussi transfrer un chier depuis votre rpertoire courant vers un rpertoire du serveur FTP avec la commande put. Cela ne fonctionne que si vous avez des droits en criture sur le rpertoire distant. Sur un FTP anonyme, ces droits sont gnralement limits un seul rpertoire, par exemple /pub/incoming. On ferme une session FTP avec la commande quit ou bye.
Avant de tlcharger un fichier, vous devez passer en mode binaire. En mode texte, FTP interprte tous les fichiers en tant que texte et tente de les convertir au format de lordinateur destinataire. Les fichiers binaires ne ncessitent pas une telle conversion. La plupart des serveurs FTP sont cependant configurs en mode binaire par dfaut.

Les lignes suivantes montrent le tlchargement 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.

OUTILS RSEAU

245
affiche une liste des commandes FTP permet dexcuter des commandes shell passe en mode texte passe en mode binaire termine la session FTP passe dans le rpertoire indiqu ferme la connexion au serveur FTP tlcharge un fichier depuis le serveur vers lordinateur local affiche un court message daide sur la commande indique passe dans le rpertoire indiqu sur lordinateur local affiche le contenu du rpertoire courant sur le serveur affiche le contenu du rpertoire courant sur lordinateur local tlcharge tous les fichiers de larchive FTP dont le nom correspond au motif ouvre la connexion un ordinateur distant active/dsactive la confirmation du tlchargement de chaque fichier avec mget transfre un fichier depuis le rpertoire local vers le serveur FTP quitte FTP relance le tlchargement dun fichier dj partiellement tlcharg permet une nouvelle connexion

Commandes FTP ? ! ascii binary bye cd rep close get fichier help commande lcd rep ls lls mget motif open prompt put fichier quit reget fichier user
Autres programmes FTP

La commande ftp nest pas trs confortable utiliser, mais il existe de nombreuses alternatives : Navigateurs web et gestionnaires de chiers. Ces derniers peuvent tre utiliss pour des tlchargements FTP. Certains programmes permettent mme de transfrer des chiers vers un serveur (par exemple, Nautilus et Konqueror). Clients FTP graphiques. Des programmes comme kbear (KDE) ou gftp (Gnome) sont prvus pour les tches FTP typiques. Ils fournissent des fonctions spciales, comme des signets, la gestion des mots de passe, le tlchargement en parallle de plusieurs chiers, 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 sr. Cependant, lordinateur distant doit faire fonctionner un serveur SSH et non FTP. wget, rsync, mirror et sitecopy. Ces commandes permettent de tlcharger des arborescences FTP entires.

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 lorsquun pare-feu se trouve entre votre ordinateur et le serveur FTP ou lorsque vous tes dans un rseau local connect Internet via une mascarade. Dans ce cas, passer , le client en mode passif rsout souvent le problme. Il nexiste cependant pas de commande standard ; vous devez lire la documentation de votre client. La plupart des clients reconnaissent une telle situation et activent automatiquement le mode passif.

SFTP (Secure FTP)


La commande sftp fait partie du paquetage openssh. Elle utilise en interne un protocole entirement diffrent de ftp et ne peut tre utilise que lorsquun serveur SSH est lanc sur le serveur distant. SFTP ne permet pas de se connecter en mode anonyme. Son fonctionnement est comparable celui de ftp. sftp -p fichier permet dautomatiser les tlchargements par SFTP.
Alternatives SFTP

Pour beaucoup, sftp est trop spartiate. Cependant, les alternatives plus confortables sont plus rares que dans le cas de ftp. Il faut parfois se montrer persuasif avant que la connexion ne stablisse rellement. gftp. Il permet de se connecter un site via SSH. Il suft pour cela de choisir loption correspondante dans le menu droulant du protocole. kbear. Il permet galement de se connecter en SFTP. konqueror. Pour ouvrir une connexion SFTP avec Konqueror, tapez ladresse sftp://utilisateur@serveur. Une fois le mot de passe saisi, il se comporte comme dans un rpertoire local. Konqueror comprend aussi directement le protocole SSH, ce qui peut fonctionner sans faire appel sftp. Pour cela, tapez ladresse fish://utilisateur@serveur.

wget
Linteractivit de la commande ftp rend lautomatisation des tlchargements peu pratique (par exemple, dans un script). Elle est de toute faon peu exible. On ne peut pas, par exemple, reprendre un tlchargement l o il a t interrompu. La commande wget a t conue pour le tlchargement de gros chiers et rpertoires. Elle comprend les protocoles FTP, HTTP et HTTPS. man wget fournit une rfrence de la syntaxe des principales options.
Exemples

Sous sa forme la plus basique, wget tlcharge simplement le chier donn en argument :
utilisateur$ wget ftp://serveur.fr/nom.abc

Lorsque le tlchargement est, pour une raison ou une autre, interrompu, il peut tre repris avec loption -c :
utilisateur$ wget -c ftp://serveur.fr/nom.abc

Il arrive quun tlchargement prenne plusieurs heures. Il est alors tentant de lancer le tlchargement pendant la nuit. La commande suivante sassure que le chier se trouve effectivement sur lordinateur le lendemain matin. Loption -t 1000 essaie de relancer le tlchargement jusqu 1 000 fois en cas de dconnexion. --retry-connrefused tente de

OUTILS RSEAU

247

relancer la connexion mme aprs une erreur connection refused. Cette option est pratique lorsque le serveur de tlchargement est peu able et quil nest indisponible que pour de courtes dures.
utilisateur$ wget -t 1000 --retry-connrefused http://serveur/nom.iso

La commande suivante tlcharge tous les chiers importants an de pouvoir lire la page web hors ligne. Voici ce que signient les options : -p charge les chiers CSS et les images. -k modie en arrire-plan les liens des chiers pour quils pointent vers des chiers locaux. -E ajoute tous les chiers de script tlchargs (ASP, PHP, etc.) lextension .html. -H suit galement les liens vers les sites web externes.
utilisateur$ wget -p -k -E -H http://siteweb.fr/page.html

Lorsquon dsire lire un site web complet en ligne, loption -r (tlchargement rcursif), ventuellement limite quelques niveaux avec loption -l, est trs pratique :
utilisateur$ wget -r -l 4 -p -E -k http://siteweb.fr

rsync
Nous avons dj prsent la commande rsync au Chapitre 13. Elle permet de copier et de synchroniser des arborescences compltes de rpertoires. Elle prsente un certain nombre davantages par rapport la commande cp : rsync gre particulirement bien la synchronisation de rpertoires distants, y compris lorsque la liaison est lente. Elle ne transfre que les donnes modies. Elle peut, pour scuriser les transferts, travailler avec SSH. Elle fournit dinnombrables options qui vont au-del des possibilits offertes par cp. On peut, par exemple, supprimer tous les chiers du rpertoire cible qui nexistent plus dans le rpertoire source. Pour que rsync puisse synchroniser deux ordinateurs en rseau, elle doit tre installe sur les deux ordinateurs. Les deux instances de rsync peuvent communiquer de deux manires diffrentes : Elles peuvent utiliser un shell, le plus souvent SSH. Cela prsente lavantage de chiffrer le transfert des donnes. Pour que cela fonctionne, il faut que SSH soit install sur les deux ordinateurs. De plus, il faut que lordinateur distant fasse fonctionner un serveur SSH pour permettre les connexions en SSH. rsync peut aussi fonctionner en tant que dmon sur lordinateur distant. Le serveur rsync est congur dans le chier /etc/rsyncd.conf (voir la page de manuel correspondante) et lanc par un script InitV (gnralement /etc/init.d/rsyncd). Nous ne traiterons pas ici de ce scnario client/serveur.

Utilisation dans un rseau

248
Exemples

LINUX

Tous les exemples supposent que rsync communique par SSH. Pour cela, vous devez passer loption -e ssh la commande rsync. Avant de commencer, assurez-vous que vous pouvez vous connecter en SSH lordinateur distant. Pour les connexions rseau lentes, vous pouvez utiliser loption -z. Celle-ci compresse les changes de donnes de rsync. Cela induit cependant une charge processeur plus importante sur les deux ordinateurs et ne garantit donc pas une synchronisation plus rapide. Les rpertoires source et cible doivent tre indiqus avec la syntaxe hote:rpertoire ou utilisateur@hote:repertoire, si lutilisateur courant nest pas celui quil faut utiliser. La commande suivante synchronise le rpertoire rep1 du rpertoire personnel de utilisateur sur lordinateur saturne.sol, et le rpertoire rep2 sur mars.sol. La saisie du mot de passe est gre par SSH (mot de passe de utilisateur sur mars.sol).
utilisateur@saturne.sol$ rsync -e ssh -az rep1/ mars.sol:rep2/ utilisateur@mars.sols password: xxxxx

rsync peut aussi tlcharger des chiers depuis un ordinateur distant sur lordinateur local. Cette commande synchronise les rpertoires dans lautre sens :
utilisateur@saturne.sol$ rsync -e ssh -az mars.sol:rep2/ rep3/ utilisateur@mars.sols password: xxxxx

Lorsque rsync est appele par un script de sauvegarde, la saisie interactive du mot de passe peut savrer gnante. Nous avons vu la section 16.2 comment se connecter en SSH sans mot de passe ; il suft dadapter ces solutions au compte servant la sauvegarde.

BitTorrent
BitTorrent est un protocole pour tlcharger efcacement des chiers volumineux dsirs par de nombreux utilisateurs. Lide de base est simple : les donnes ne sont pas tlcharges depuis un serveur central, mais depuis tous les ordinateurs du rseau qui disposent dau moins une partie du chier. Cela signie aussi que, lorsque vous tlchargez un chier via BitTorrent, vous le mettez disposition de tous les autres utilisateurs de BitTorrent, au moins pendant le temps de votre tlchargement (et, idalement, une fois ce dernier termin). Dans le cadre de Linux, BitTorrent est gnralement utilis pour distribuer des images de DVD de distributions. Lorsquune nouvelle version sort, des milliers dutilisateurs cherchent tlcharger ce mme chier. Cela surcharge bien souvent les serveurs FTP ou HTTP. BitTorrent permet daugmenter sensiblement la vitesse de tlchargement dans ce type de cas.
Fichiers .torrent

Les tlchargements BitTorrent sont propags par le biais de chiers .torrent. Il sagit de chiers binaires relativement petits, contenant entre autres des sommes de contrle pour dinnombrables morceaux de chiers. Cela permet de ne pas devoir tlcharger les donnes du chier de manire squentielle, mais en fonction des morceaux disponibles sur le rseau et en parallle. Les clients BitTorrent sont des programmes qui grent les tlchargements et mettent disposition les chiers tlchargs sur le rseau BitTorrent. Les clients populaires comprennent BitTorrent, KTorrent (KDE) ou Transmission (Gnome, partir de la version 2.22). KTorrent montre les parties du chier dj tlcharges (voir Figure 16.1). Pour lancer des tlchargements dans une console, quil sagisse dune interface interactive ou dun programme

Clients BitTorrent

OUTILS RSEAU

249

utilisable dans un script, il vaut mieux utiliser bittorrent-curses ou bittorent-console, fournis avec le paquetage bittorrent.

Figure 16.1
Tlchargements avec KTorrent.

17

Vim
Ce chapitre prsente lditeur Vi, et plus particulirement son implmentation libre Vim (Vi Improved, Vi amlior). Faisons tout de mme une remarque prliminaire qui sapplique galement au chapitre suivant sur Emacs et XEmacs : ils ont en commun dtre relativement difciles matriser. Seuls les utilisateurs qui ditent beaucoup de texte, code ou documents HTML y trouveront leur intrt pour eux, un diteur de texte est un outil courant et indispensable. Les diteurs Vim, Emacs et XEmacs fournissent des possibilits presque innies. Autrement dit, ce chapitre sadresse aux utilisateurs pour lesquels un contrle total sur la conguration et la programmation de lditeur est plus important quune jolie interface utilisateur. Quiconque modie occasionnellement un chier de conguration et se contente dOpenOfce.org, de Firefox et dautres programmes bureautiques trouvera sans doute Kate (KDE), Gedit (Gnome) ou un autre petit diteur pour la console largement sufsants. Reste la sempiternelle question : Vi ou Emacs/XEmacs ? Les deux programmes font partie des fondations de lhistoire dUnix/Linux. Ils proposent dinnombrables fonctions spciales, comme la coloration syntaxique pour de nombreux langages de programmation et types de documents, ou la recherche avec des expressions rationnelles. Cette question entrane souvent dinterminables discussions entre les partisans des deux camps et ne peut pas tre tranche de faon objective. titre personnel, les diteurs Emacs/XEmacs me paraissent plus intuitifs et plus simples utiliser. Sous Vi, le passage du mode standard au mode ddition peut mener une confusion certaine, surtout au dbut. Mais Vi et les diteurs de la mme famille sont un standard de fait sous Unix/Linux. Il demande moins de ressources et est souvent prsent sur les systmes de secours minimaux (sur lesquels il ny a plus de place pour Emacs). Mieux vaut de toute faon connatre les fonctions de base des deux diteurs. Lditeur Vi original est un programme commercial et nest pas disponible sous Linux. Vim est un programme libre, compatible avec Vi et qui fournit de nombreuses amliorations et extensions. On le lance gnralement grce vi ou vim. Ce chapitre se base sur la version 7 de Vim. Les distributions Linux plus anciennes fournissent encore une version 6.n. Comme la plupart des nouveauts de la version 7 sont des fonctions avances, la grande majorit des informations de ce chapitre est galement valable pour les versions plus anciennes de Vim. La seule exception importante est la fentre onglets, qui nest disponible que pour la version 7. On lance gnralement Vim dans une console texte ou une fentre de terminal. Si vous dsirez un menu et des barres de dlement dcentes, vous pouvez essayer gvim (voir Figure 17.1). Cette variante graphique doit gnralement tre installe en plus ; le paquetage sappelle vim-X11. Ce chapitre nest quune rapide prsentation de Vim. Le tutoriel vimtutor est trs utile pour les dbutants. Cette commande lance vim avec un texte daide en franais, qui contient une introduction et de nombreux exemples.

Version 7

Vim en mode graphique

Liens

252
Figure 17.1

LINUX

La variante graphique de lditeur Vim.

Les liens suivants pointent vers diverses ressources intressantes : http://www.vim.org/, site web de Vim ; http://www.eng.hawaii.edu/Tutor/vi.html, tutoriel ; http://vimdoc.sourceforge.net/vimfaq.html, FAQ ; http://tnerual.eriogerg.free.fr/vim.html, rsum des principaux raccourcis ; http://www.truth.sk/vim/vimbook-OPL.pdf, livre de 500 pages sur Vim en PDF.
Le principal dveloppeur de Vim, Bram Moolenaar, le dcrit comme du "charityware" : Vim est gratuit sous une licence GPL. Les utilisateurs rguliers sont cependant pris denvoyer des remerciements sous forme de dons destins une association daide aux enfants en Ouganda. Vous trouverez plus dinformations ce sujet dans Vim avec la commande Esc:help uganda Entre.

17.1 Rapide introduction


Mode normal

Mode insertion

On lance Vim le plus souvent avec la commande vim nomdufichier dans une console ou une fentre de terminal. Le chier modier safche alors directement dans la console. 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 dplacez le curseur dune ligne vers le bas. D+W supprime un mot, P le colle la position courante du curseur, etc. Pour saisir du texte, vous devez passer au mode insertion avec I (insert, insertion) ou A (append, ajout). Vim afche alors gauche de la dernire ligne le texte -- INSERTION --. En mode insertion, vous pouvez saisir du texte, dplacer le curseur et supprimer des caractres un par un grce Suppr et Retour Arrire. La diffrence entre I et A est que I commence la position courante du curseur, tandis que A commence au caractre suivant. Avant de pouvoir saisir une nouvelle commande, vous devez repasser en mode normal avec chap. Ce mode na pas de signe distinctif. La partie gauche de la dernire ligne est vide.
Lorsquon passe du mode insertion au mode normal, le curseur se dplace dun caractre vers la gauche. Ce comportement est dcrit 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.

VIM

253
Dans le mode insertion, vous pouvez supprimer des caractres isols avec Suppr et Retour Arrire. 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 complte. Si vous prxez ces commandes dun nombre, la commande de suppression est rpte le nombre de fois indiqu. Par exemple, 5+D+D supprime 5 lignes. . rpte la dernire commande excute. P (paste, coller) colle le texte supprim lemplacement du curseur. Maj+P linsre avant la position courante du curseur. U (undo, annuler) annule la dernire modication. Ctrl+R rtablit la modication annule. Vim 6 ne pouvait annuler que la dernire modication et un nouvel appui sur U la rtablissait. Pour enregistrer le chier modi, passez en mode normal avec chap et tapez la commande :w Entre. :q Entre ferme lditeur si tous les chiers ouverts sont enregistrs. :q! Entre permet de le fermer mme si les dernires modications nont pas t enregistres. :wq Entre combine lenregistrement et la n du programme.
Commandes lmentaires
Changement de mode

Supprimer du texte

Enregistrer et quitter

I A q

active le mode insertion active le mode insertion ; la saisie commence au caractre suivant active le mode normal ou interrompt la commande courante

Commandes en mode normal

DW DD nDD P s+P . U s+U c+R :w :q : q!

supprime un mot supprime la ligne courante supprime n lignes colle le texte supprim la position du curseur colle le texte supprim avant la position du curseur rpte la dernire commande annule la dernire commande ( partir de Vim 7, 1 000 annulations possibles) annule toutes les modifications de la ligne courante rtablit les annulations ( partir de Vim 7) enregistre le fichier quitte Vim quitte Vim mme lorsquil existe des modifications non enregistres

Commandes en mode insertion

c+O commande

excute la commande sans quitter le mode insertion

Aide
Vim dispose dune aide en ligne plutt complte (mais uniquement en anglais). Pour afcher la page de dmarrage de laide, tapez F1 dans nimporte quel mode. Vous pouvez aussi saisir :help en mode normal ou :help thme. Pour savoir quels thmes contiennent le mot cl abc, saisissez :help abc Ctrl+D.

254
Fentre daide

LINUX

Navigation dans laide

La fentre daide safche dans sa propre zone dans Vim. On appelle cette partie une fentre il ne sagit cependant pas dune fentre indpendante au sens du systme 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 fentre active avec Ctrl+W+W. Dans laide, les liens et les autres thmes sont mis en vidence (par exemple, dans une autre couleur ou entours de caractres |). Pour passer un thme, placez le curseur sur le mot cl et tapez Ctrl+]. Si la souris est active, il suft de double-cliquer sur le thme pour le consulter. Ctrl+T permet de revenir la page prcdente.

17.2 Dplacement du curseur


En principe, les touches de direction fonctionnent en mode normal comme en mode insertion. Il existe nanmoins diverses combinaisons de touches pour dplacer la position du curseur. Les plus importantes sont rsumes dans le tableau ci-dessous. Les experts de Vim se dplacent souvent plus efcacement avec ces touches quavec les touches du curseur.
Dplacement du curseur
En mode normal et en mode insertion

Touches de direction

comportement habituel

Uniquement en mode normal

H/L J/K s+H / s+L s+M B/W E GE (/) {/} ^/$ s+G GG n s+G n| %

dplace le curseur vers la gauche/la droite dplace le curseur vers le bas/le haut dplace le curseur au dbut/ la fin de la page courante dplace le curseur au milieu de la page courante dplace le curseur dun mot vers la gauche/la droite dplace le curseur la fin du mot dplace le curseur la fin du mot prcdent dplace le curseur au dbut de la phrase actuelle/suivante dplace le curseur au dbut du paragraphe courant/suivant dplace le curseur au dbut/ la fin de la ligne dplace le curseur la fin du fichier dplace le curseur au dbut du fichier dplace le curseur la ligne n dplace le curseur la colonne n dplace le curseur jusqu la parenthse correspondante ()[]{}

Une particularit de Vim est que la touche de dplacement vers la gauche au dbut dune ligne ne dplace pas le curseur la n de la ligne prcdente. De mme, la touche de dplacement vers la droite en n de ligne ne passe pas la ligne suivante. Pour activer ce comportement, lancez en mode normal la commande :set whichwrap=b,s,<,>,[,]. Vous pouvez aussi copier cette commande dans ~/.vimrc.

VIM

255
M lettre enregistre la position courante du curseur et lettre permet de le dplacer la position enregistre. Vim enregistre automatiquement la position du curseur lorsque celui-ci est de nouveau dplac. permet de retourner cette position. une seconde fois permet de revenir la dernire position. [ et ] dplacent le curseur respectivement au dbut et la n de la dernire section modie. En mode insertion, Vim afche droite de la ligne dtat la ligne et la colonne courantes, ainsi quun pourcentage qui indique dans quelle section du texte vous vous trouvez par exemple, 92 % signie que vous tes dans les dix derniers pour cent). Si vous tes perdu, Ctrl+G afche dans la ligne dtat le nom du chier, ltat (par exemple "Modi"), le nombre total de lignes et la position relative du curseur dans le texte.

Enregistrer la position du curseur

O suis-je ?

17.3 Modifier du texte


Insrer un caractre plusieurs fois Faute de frappe Supprimer du texte

Pour insrer un caractre plusieurs fois, saisissez en mode normal le nombre, la commande A, le caractre et chap. Ainsi, pour ajouter 50 fois le caractre =, tapez 50 A = chap. Une fois excute, la commande vous ramne en mode normal. Vim permet galement de corriger des fautes de frappe typiques. ~ change la casse du caractre courant et X+P change les deux caractres qui suivent le curseur. Le tableau suivant donne un aperu des principales commandes pour supprimer du texte. Lorsque vous indiquez un nombre devant la commande de suppression, celle-ci est rpte le nombre de fois correspondant.
Supprimer du texte
Uniquement en mode insertion

DN
En mode normal

comportement habituel supprime le caractre sous le curseur ou le texte marqu supprime le caractre prcdant le curseur supprime la ligne courante supprime le texte correspondant la commande de dplacement du curseur supprime jusqu la fin de la ligne supprime le mot prcdent supprime le mot suivant

X s+X DD D commande de curseur D$ DB DW

Le texte est en fait transfr dans un registre de copie. Le dernier texte supprim peut tre recopi sous le curseur avec Maj+P et aprs la position du curseur avec P. Les commandes C (change, changer) sont une manire un peu particulire de supprimer du texte et de le remplacer par du nouveau texte. C+W supprime le mot courant et active le mode insertion. Il suft alors de saisir le mme mot et de terminer la saisie avec chap. C fonctionne de la mme manire pour les autres touches du curseur.

256
Copier du texte

LINUX

Vous pouvez aussi copier du texte dans le registre de copie sans le supprimer. Le tableau suivant rsume les commandes correspondantes (qui sont toutes spciques au mode normal).
Copier du texte dans le registre de copie Y YY Y commande de curseur copie le texte marqu copie la ligne courante dans le registre copie le texte indiqu par la commande de curseur. Par exemple, Y } copie le texte jusqu la fin du paragraphe

Marquer du texte

Certaines commandes supposent quune zone du texte soit marque. Il existe trois modes de marquage que vous pouvez activer (au point de dpart du marquage) et dsactiver avec V, Maj+V et Ctrl+V. Lorsque lun de ces modes est actif, la ligne dtat de Vim contient le texte -- VISUEL --. Vous pouvez ensuite dplacer le curseur la n de la zone ou tendre le marquage grce des commandes spciales qui ne sappliquent qu lintrieur dun mode de marquage. La zone marque est mise en vidence par un mode vido inverse ou des couleurs.
Marquer du texte V (ds)active le mode de marquage par caractre s+V (ds)active le mode de marquage par ligne c+V (ds)active le mode de marquage par bloc AW tend le marquage dun mot AS tend le marquage dune phrase AP tend le marquage dun paragraphe AB tend le marquage dun niveau de parenthses A s+B tend le marquage dun niveau daccolades GV rtablit le marquage du dernier texte marqu O change la position du curseur entre le dbut et la fin du marquage

Tant que le mode de marquage est actif, plusieurs commandes sont votre disposition pour modier le texte en question. Le tableau suivant en prsente quelques exemples.
Modifier du texte marqu X Y ~ J GQ > < = !sort supprime le texte marqu copie le texte marqu dans le registre de copie modifie la casse joint les lignes du texte marqu en une seule ligne dcoupe les lignes (pour du texte continu) ajoute une tabulation en tte des lignes supprime une tabulation en tte des lignes indente le texte comme le mode dindentation courant lindique trie les lignes avec la commande externe sort

VIM

257
Lorsquon dite du code, il est important de lindenter correctement. Les commandes lmentaires sont > > et < <. Elles dplacent la ligne actuelle dune tabulation, dans un sens ou dans lautre. Lorsque plusieurs lignes sont marques, vous pouvez aussi modier un bloc complet. Il suft alors de taper une seule fois < ou >. :set shiftwidth=n modie la taille des tabulations (normalement huit caractres). Vim peut aussi indenter automatiquement les lignes pendant la saisie. Il faut pour cela activer un mode dindentation, par exemple avec :set cindent. Les fonctions de base sont les suivantes : autoindent indente la ligne suivante comme la ligne prcdente. smartindent fonctionne comme autoindent, mais gre galement les accolades. Pour que Vim reconnaisse correctement les accolades fermantes, elles doivent tre saisies au dbut dune nouvelle ligne. La taille de lindentation aprs les accolades (normalement huit caractres) peut tre modie avec loption shiftwidth. Le texte prcdemment marqu peut tre rindent avec =. cident fonctionne comme smartindent, mais reconnat galement diverses structures de code C et C++. Le mcanisme dindentation peut alors tre modi via diffrentes options (voir :help C-indenting). Vim est prcongur de manire que la composition du code et la modication de chiers de conguration fonctionnent bien. Cest pour cela quil ne coupe pas automatiquement les lignes vous devez passer la ligne avec Entre. Vous pouvez cependant aussi lutiliser pour composer des textes, par exemple des courriers lectroniques. Le tableau suivant rsume quelques commandes et options pour ldition de texte continu.
dition de texte continu s+J supprime le retour la ligne entre la ligne actuelle et la ligne suivante supprime les retours la ligne entre les lignes sur n lignes remet en forme le paragraphe courant et place le curseur au dbut du paragraphe suivant remet en forme le paragraphe courant et laisse le curseur sa position courante

Indenter des lignes

Texte continu

n s+J
GQAP GWAP

:set textwidth=n coupe automatiquement les lignes n caractres (par dfaut 0, dsactiv)

Compltement automatique

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 caractres. Les options ddition de texte continu sont modiables via formatoptions (voir laide correspondante). La saisie de mots longs, de fonctions et de noms de variables est fatigante et peut mener des erreurs. Vim permet de saisir les premires lettres et dappuyer sur Ctrl+P. Lorsquun seul mot est possible, il est insr automatiquement. Sinon, vous pouvez choisir le mot dsir dans une liste qui apparat la position du curseur. Lafchage de cette liste est spcique Vim 7. Vim prend en compte pour le compltement tous les mots de tous les chiers chargs ; les mots du chier courant et proximit du curseur sont lists en premier.

258

LINUX

17.4 Chercher et remplacer


Chercher du texte

En mode normal, / texte Entre dplace le curseur la premire occurrence du texte recherch. N rpte la recherche et Maj+N la rpte vers le haut. Pour lancer une recherche vers le haut, commencez la recherche avec ? expression. Le tableau suivant rsume les principaux caractres spciaux qui permettent deffectuer des recherches selon des motifs.
Caractres spciaux pour la recherche . ^ $ \< \> [a-e] [^a-e] \s \t \( \) \= * \+ caractre arbitraire dbut de ligne/fin de ligne dbut de mot/fin de mot caractre entre a et e caractre qui nest pas entre a et e espace tabulation regroupement dun motif de recherche dans un atome expression de recherche prsente 0 ou 1 fois expression de recherche prsente un nombre arbitraire de fois (y compris 0) expression de recherche prsente au moins une fois

Casse

Recherche incrmentale

Chercher et remplacer

Par dfaut, Vim prend en compte la casse lors dune recherche. Si ce nest pas le comportement que vous dsirez, prxez le motif de recherche avec /c (ne fonctionne que pour cette recherche) ou lancez :set ignorecase (sapplique toutes les recherches futures). :set incsearch active la recherche incrmentale. Vim dplace le curseur pendant la saisie de / terme au premier emplacement correspondant. Entre termine la recherche et chap linterrompt. Aprs la recherche, toutes les occurrences restent marques dans le texte jusqu la recherche suivante, ou jusqu lexcution de :nohlsearch. Pour remplacer toutes les occurrences du texte abc par efg sans conrmation, lancez la commande :%s/abc/efg/g en mode normal. permet de revenir au dbut de la recherche. Le tableau suivant rsume quelques variantes de la commande chercher/remplacer. Lorsque Vim demande une conrmation, vous pouvez rpondre Y ou N pour chaque occurrence, an dindiquer si le texte doit effectivement tre remplac ou non. Q interrompt lopration et A remplace toutes les occurrences suivantes. Dans lexpression de remplacement, vous pouvez faire rfrence au nime atome du motif de recherche avec \n. Laide en ligne :help substitute prsente des astuces supplmentaires et de nombreux 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

VIM

259
17.5 diter plusieurs fichiers en mme temps
En mode normal, :e fichier charge un nouveau chier. Ce dernier remplace le chier dit, quil faut donc enregistrer, sans quoi Vim interrompt lopration. Vous pouvez forcer le chargement du chier avec :e! fichier, mais vous perdez alors toutes les modications du chier courant. Vous pouvez aussi diter plusieurs chiers en mme temps. Il faut cependant dabord expliquer le concept peu intuitif de gestion et dafchage des textes dans Vim. Tous les textes ouverts dans lditeur se trouvent en interne dans un tampon, quil sagisse de chiers ou de textes daide. Lorsquil ny a quun tampon, celui-ci safche dans lespace de travail de Vim. Pour afcher plusieurs tampons en mme temps, lespace de travail est divis en plusieurs fentres, ce qui est galement le cas lorsquon afche un texte daide. Une fentre nest dans ce cas pas une fentre au sens du systme graphique de Linux, mais juste une partie de lespace de travail. Les tampons des chiers modis sont toujours visibles dans une fentre. Ceux des chiers qui nont pas t modis depuis leur dernier enregistrement peuvent en revanche tre masqus. Ces tampons restent en mmoire, mais ne sont plus actifs. Attention, lorsque vous fermez une fentre avec un chier non enregistr, toutes les modications sont perdues. Le tampon reste disponible, mais il ne contient que le chier tel quil a t enregistr pour la dernire fois. Vim peut galement afcher un mme chier dans plusieurs fentres, par exemple pour travailler sur diffrentes parties dun texte trs long. Vim 7 facilite ldition de multiples chiers grce aux onglets. Il sagit de fentres se recouvrant les unes les autres, indiques dans la premire ligne de Vim, comme dans Firefox ou dautres navigateurs web. Les onglets sont particulirement confortables lorsque la souris est active ; vous pouvez alors simplement choisir ou fermer un onglet donn (avec le bouton X en haut droite). Vous trouverez plus dinformations sur les onglets avec :help tabpage. La Figure 17.2 montre un exemple donglets dans Vim.

Tampon et fentre

Onglets

Figure 17.2
Trois fichiers dans une fentre trois onglets.

Charger un nouveau fichier

Vous pouvez charger un nouveau chier grce :new fichier si vous travaillez avec des fentres, ou :tabnew fichier si vous travaillez avec des onglets.

260

LINUX

Vous pouvez indiquer ds le dmarrage du programme plusieurs chiers, par exemple avec vim fichier1 fichier2 fichier3. Par dfaut, le premier safche et les autres sont chargs dans un tampon non visible. Si vous dsirez ouvrir chaque chier dans une fentre ou un onglet, vous devez passer respectivement loption -o ou -p. Le tableau suivant rsume les principales commandes pour charger et enregistrer des chiers, passer entre des fentres ou des onglets, etc.
Fichiers, tampons, fentres, 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 nest ouvert ; q! : qall : split : new : new fichier : only : all : buffers : buffer n : buffer fichier : tabnew : tabnew fichier : tabnext : tabprevious c+W / Z : tabclose : tabonly ferme le tampon mme lorsquil y a des modifications non enregistres ferme tous les tampons et quitte Vim partage la fentre et affiche le mme texte dans les deux fentres cre un tampon vide et laffiche dans une fentre charge un fichier dans un nouveau tampon maximise la fentre courante et ferme les autres tampons affiche tous les tampons dans une fentre plus petite affiche la liste de tous les tampons affiche le tampon n et ferme le tampon courant affiche le tampon contenant le fichier indiqu dans la fentre courante cre un nouveau tampon et laffiche dans un onglet charge un fichier et laffiche dans un onglet passe longlet suivant passe longlet prcdent passe longlet prcdent/suivant ferme longlet courant ferme tous les autres onglets

17.6 Trucs et astuces


Saisir efficacement les commandes :

Afficher les numros de ligne

Pour taper les commandes qui commencent par :, il existe quelques aides la saisie. Les touches du curseur permettent de naviguer dans les dernires commandes saisies. Vim enregistre les commandes dans ~/.viminfo et les enregistre mme la n du programme. Vous pouvez aussi complter des mots cls avec Tab et abrger de nombreuses commandes (par exemple, :tabn la place de :tabnext). :set number afche ct de chaque ligne le numro de ligne. :set nonumber dsactive ce mode.

VIM

261
Par dfaut, Vim ne cre pas de sauvegarde lenregistrement (pas de copie du chier original). Si vous souhaitez activer ce comportement, lancez en mode normal :set backup. La sauvegarde est nomme anciennom~. Pour activer les sauvegardes un niveau gnral, ajoutez set backup dans ~/.vimrc. Lorsque vous utilisez Vim dans une console texte ou une fentre de terminal, la gestion de la souris est limite 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 modier la position courante du curseur avec un clic de souris, de choisir la fentre Vim active, dutiliser la molette de la souris, etc. Ce mode a cependant un inconvnient : 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 mme temps sur Maj, ce qui permet de rtablir le comportement habituel. Attention cependant : il faut que le mode Insertion soit actif, sans quoi les caractres copis par la souris sont interprts comme des commandes, ce qui peut ventuellement mal tourner.

Crer des sauvegardes

Activer la souris

Insrer des espaces la place des tabulations

Pour que Vim insre des espaces la place des tabulations, lancez la commande :set expandtab ou copiez cette directive dans ~/.vimrc. Pour transformer toutes les tabulations par le nombre correspondant despaces dans un chier modi prcdemment, lancez :retab. Pour effectuer lopration inverse, utilisez les commandes :set unexpandtab, puis :retab!. Vous savez dj que . rpte la dernire commande. Pour rpter plusieurs fois une suite de commandes, vous pouvez dnir une macro. Passez pour cela dans le mode Macro avec Q et un caractre, 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 enregistres lorsque vous quittez Vim. Par exemple, la suite de touches suivante dnit la macro a qui ajoute le caractre " au dbut et la n dun mot :
Q A B I " chap E A " chap Q

Dfinir des macros

Lorsque le curseur se trouve dans un mot, vous pouvez maintenant taper @ A pour lentourer de guillemets. @ @ rpte la dernire commande sans que vous deviez vous souvenir de son nom de macro ou de registre.
Lancer des commandes Linux

Pour lancer une commande sans quitter Vim, lancez dans le mode normal :!nom de la commande, par exemple :!ls pour obtenir une liste des chiers du rpertoire courant. Vim afche le rsultat de la commande et Entre permet de retourner lditeur. Pour lancer plusieurs commandes, vous pouvez lancer avec :sh un nouvel interprteur de commandes. Lorsque vous tapez Ctrl+D, vous revenez lditeur.

18

Emacs et XEmacs
Il serait rducteur de dcrire Emacs comme un simple diteur. Il permet certes dditer du texte, mais cest aussi un environnement de dveloppement complet pour les programmeurs, dot dun client de courrier lectronique, dun lecteur Usenet, etc. Pour certains utilisateurs, Emacs est comparable un systme dexploitation dans lequel toutes les fonctions du travail quotidien sont rassembles. Une fois que vous serez habitu Emacs, vous ne pourrez plus utiliser dautres diteurs. Jai dailleurs crit cet ouvrage entirement avec Emacs... Mais il possde aussi ses parts dombre. Lutilisation dEmacs peut sembler premire vue effrayante. Elle regorge de squences Ctrl+ et Alt+ pour appeler un nombre incalculable de commandes. Une blague courante, mais pas forcment injustie, est quEmacs signie en ralit Escape Meta Alt Control Shift (chap Mta Alt Contrle Majuscule). Linterface utilisateur (menus, barres de boutons) parat obsolte ; la localisation en franais est globalement inexistante ; modier la conguration (par exemple, lutilisation dune autre police) savre laborieux En rsum, Emacs est un diteur pour les professionnels qui sont prts investir du temps de formation et qui ne sarrtent pas laspect extrieur.

18.1 Rapide introduction


GNU Emacs et XEmacs

Il existe deux versions dEmacs : GNU Emacs et XEmacs. Elles peuvent tre utilises aussi bien dans une console texte que sous X et sont sous licence GPL. Il existe de toute faon de nombreuses similarits entre les deux versions. Elles ont t dveloppes en parallle depuis plusieurs annes. 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 diffrences signicatives entre les deux versions.

Figure 18.1
GNU Emacs.

Travailler avec GNU Emacs ou XEmacs est essentiellement une affaire de got. Le programme est lanc avec les commandes emacs ou xemacs. Les deux programmes sont trs stables et contiennent de nombreuses extensions et une documentation trs riche. XEmacs utilise plus de place sur le disque dur et nettement plus de mmoire. titre personnel, je

264

LINUX

prfre GNU Emacs, car XEmacs ma dj pos plusieurs problmes mystrieux alors que jditais des chiers Unicode.

Figure 18.2
Xemacs.

Liens

En plus de ces deux versions dEmacs, il existe quelques variantes plus petites : jed, jmacs, jove et zile sont globalement des miniversions trs utilisables. Leur principal avantage est quelles sont nettement moins gourmandes en ressources, ce qui en fait des applications idales pour les systmes durgence ou des ordinateurs plus anciens avec des processeurs lents et peu de mmoire. Vous trouverez plus dinformations sur GNU Emacs et XEmacs sur Internet : http://www.gnu.org/software/emacs/emacs.html site web ofciel de GNU Emacs http://www.xemacs.org site web ofciel 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 chiers, ces derniers sont chargs automatiquement. On peut utiliser des motifs de noms de chiers : emacs Makefile *.[ch] ouvre le chier Makefile et tous les chiers *.c et *.h du rpertoire. Pour charger un chier alors que le programme est lanc, utilisez Ctrl+X Ctrl+F+nom_du_chier+Entre. Ctrl+X Ctrl+S permet denregistrer un chier modi. Ctrl+X Ctrl+C termine le programme. Si Emacs dcouvre un chier non enregistr, il vous demande si vous dsirez lenregistrer avant de quitter. Si vous saisissez n, une question de scurit apparat pour vrier que vous souhaitez rellement quitter Emacs sans enregistrer le chier. Si cest le cas, rpondez par yes. Pour lenregistrer sous un nouveau nom, tapez Ctrl+X Ctrl+W+nom du chier. Si vous utilisez Emacs dans une console texte, Ctrl+Z permet de repasser temporairement la console. fg reprend le travail.

EMACS ET XEMACS

265

Charger et enregistrer des fichiers, quitter Emacs c+X c+F fichier e c+X I c+X c+S c+X S c+X S ! c+X c+W fichier e c+X c+C
Copies de sauvegarde

charge un fichier insre un fichier dans le texte courant enregistre un fichier enregistre tous les fichiers avec confirmation enregistre tous les fichiers sans confirmation enregistre le fichier sous un nouveau nom quitte lditeur

Emacs cre lors de lenregistrement une copie de sauvegarde, nomme nom~, qui contient le texte original. De plus, il enregistre intervalles rguliers le contenu du texte dans le chier #nom#. Vous pouvez reprendre ce chier lorsque votre travail est interrompu par un orage ou lorsque vous navez pas pu fermer proprement Emacs pour une raison ou une autre. Les chiers # sont enregistrs dans le jeu de caractres interne dEmacs et non dans celui de votre chier. Vous devez donc, pour rcuprer le chier, utiliser la commande Alt+X+recover-session. Vous pouvez aussi charger le chier et modier son jeu de caractres avec Ctrl+X+Entre+F+jeu de caractres.

Commandes lmentaires
Vous pouvez dplacer le curseur avec les touches de direction et PgPrc/PgSuiv. Si cela ne fonctionne pas par exemple, si Emacs est dmarr dans un terminal mal congur , utilisez les commandes suivantes :
Raccourcis clavier lorsque le curseur ne fonctionne pas c+F c+B c+P c+N c+V a+V dplace le curseur dun caractre vers la droite dplace le curseur dun caractre vers la gauche dplace le curseur dun caractre vers le haut dplace le curseur dun caractre vers le bas dplace le curseur dune page vers le haut dplace le curseur dune page vers le bas

Vous pouvez saisir du texte nimporte quel endroit. Suppr et Retour Arrire permettent de supprimer un caractre. Vous pouvez aussi utiliser Ctrl+D pour supprimer un caractre la position du curseur.
Ctrl+X+U et Ctrl+_ permettent dannuler les dernires modifications. Cette fonction dannulation fonctionne pour des commandes dune complexit arbitraire et est pratiquement illimite.

266

LINUX

Lorsque vous faites une erreur dans la saisie dune commande, vous pouvez annuler la commande avec Ctrl+G. Cest particulirement pratique lorsque vous appuyez par erreur sur chap.

Systme daide
Emacs fournit de nombreuses commandes pour appeler le systme daide. La plus importante pour commencer est F1+T (tutoriel). Ctrl+X+B+Entre permet de revenir au texte original. Lorsque plusieurs sections de texte (fentres) restent ouvertes aprs avoir lanc laide, vous pouvez dplacer le curseur dans la fentre suivante avec Ctrl+X+O. Ctrl+X+0 (zro) ferme la fentre courante, Ctrl+X+1 ferme toutes les fentres part la fentre courante. Ces trois commandes permettent de passer de la fentre daide la fentre de texte et vice versa, puis de fermer la fentre daide lorsque vous avez termin. Si en revanche le texte daide safche dans la fentre entire, vous pouvez revenir votre propre texte avec Ctrl+X+B+Entre. Emacs gre plusieurs textes (par exemple, votre texte et le texte daide) par le biais de tampons, dont nous parlerons plus tard.
Utilisation du systme daide 11 1 A texte e 1B 1 C raccourci 1 s+F 1I 1N 1T 1 c+F nom 1 c+P affiche une vue densemble des commandes daide disponibles affiche toutes les commandes contenant text affiche tous les raccourcis clavier dcrit le raccourci indiqu affiche la FAQ dEmacs dmarre le systme info pour afficher un texte daide hirarchis affiche les modifications par rapport aux anciennes versions dmarre le tutoriel dEmacs dmarre le systme info et affiche des informations sur la commande indique offre des informations sur le concept de logiciel libre

Mode info

La principale source dinformations propos dEmacs est le systme info interne, qui fait ofce de manuel ofciel. Certaines distributions le fournissent au format HTML pour quil soit plus facile lire. Le systme daide dEmacs repose sur le format GNU Info. Pour lire ce texte, Emacs active le mode info. Ce dernier fournit quelques raccourcis clavier supplmentaires. Vous pouvez aussi suivre les liens ou les lments de menus avec le bouton du milieu de la souris. L permet de revenir la dernire page vue.

18.2 Bases
Modes ddition

Emacs connat plusieurs modes ddition, dans lesquels sont dnies des commandes supplmentaires pour diter des chiers spciques. Il faut diffrencier 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 modier des chiers

EMACS ET XEMACS

267

Conventions du clavier

Gestion de la souris

LaTeX. Lorsquon charge un chier, Emacs charge automatiquement le mode correspondant (par exemple, le mode C, lorsque le nom du chier se termine par .c). Sil ne reconnat 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 automatiquement les abrviations). Les commandes lmentaires dEmacs fonctionnent de la mme manire dans tous les modes. Cest pourquoi vous navez pas vous en proccuper pour linstant. Lorsque vous dsirez dsactiver les actions dEmacs dues un mode donn (par exemple, lindentation automatique des lignes de programme en mode C), repassez dans le mode fondamental avec Alt+X+fundamental-mode+Entre. Il existe gnralement trois possibilits pour saisir des commandes Emacs : le menu, lutilisation de raccourcis clavier (pour la plupart, des combinaisons commenant par Ctrl ou Alt) ou la saisie de la commande. Cette dernire mthode implique de prxer la commande par Alt+X+ par exemple, Alt+X+delete-char+Entre. La saisie des commandes et des paramtres est facilite par deux mcanismes : Vous pouvez tendre un nom de commande comme dans un interprteur de commandes avec Tab. Emacs est sensible la casse. Les noms de chiers peuvent galement tre tendus de cette manire. Lorsque plusieurs possibilits existent, Emacs les afche toutes lcran. Vous pouvez, aprs avoir tap Alt+X, passer aux commandes prcdente et suivante de lhistorique avec Alt+P et Alt+N. Dans cet ouvrage, les touches sont indiques en majuscules, mais cela ne signie pas que la touche Maj doit tre enfonce. Alt+X signie simplement que vous devez appuyer simultanment sur la touche Alt et la touche X. Dans la documentation dEmacs, DEL ne signie pas Suppr, mais Retour Arrire. C signie Ctrl et M Mta. Il nexiste pas de touche Mta sur un clavier PC standard. M-x peut tre saisi de deux manires sur un clavier PC : chap X (lun aprs lautre) ou Alt+X. Jutiliserai dans ce livre la combinaison avec Alt, gnralement plus confortable. Dans le cas de certains programmes compatibles avec Emacs ou si lon utilise Emacs dans une console texte, certains problmes peuvent survenir avec la touche Alt. Il faut donc, la place de Alt+X (les deux touches simultanes), taper chap X (successivement). Attention, Ctrl+X Ctrl+B est diffrent de Ctrl+X+B. Dans Emacs et XEmacs, la convention habituelle de X (marquage du texte avec la souris et copie avec le bouton du milieu) reste valable. Lorsque vous afchez plusieurs textes en mme temps, vous pouvez dplacer la barre de sparation entre les zones de texte avec le bouton gauche de la souris. Les fonctions supplmentaires dpendent de la version dEmacs. Sous GNU Emacs, le bouton droit place le point de n dune zone de texte marque, qui peut ensuite tre modie. Les boutons de la souris ont des fonctions diffrentes lorsquils sont utiliss en combinaison avec Ctrl ou Maj. Sous XEmacs, le bouton droit afche un menu contextuel.

268
Options de dmarrage

LINUX

Lorsque vous dmarrez Emacs sous X, vous pouvez utiliser de nombreux paramtres pour les couleurs, le jeu de caractres, etc. Le tableau ci-dessous recense les principales options. La page de manuel dEmacs en offre une rfrence complte.
Options de la ligne de commande -nw -fg couleur -bg couleur -cr couleur -geometry bxh+x+y -fn jeu de caractres Emacs en mode texte dans la fentre de linterprteur de commandes couleur davant-plan, cest--dire du texte, normalement noir couleur darrire-plan (normalement noir) couleur du curseur (normalement noir) taille (largeur hauteur et position de la fentre, en nombres de caractres Emacs avec le jeu de caractres indiqu

18.3 Dplacement du curseur


En plus des touches de direction, Emacs connat de nombreux raccourcis clavier pour dplacer le curseur. Les principaux raccourcis sont rsums dans le tableau ci-aprs.
Dplacement du curseur a+F / a+B c+A / c+E a+A / a+E c+V / a+V a+< / a+> c+L a+G n e dplace le curseur dun mot vers lavant et vers larrire place le curseur au dbut ou la fin de la ligne place le curseur au dbut ou la fin du paragraphe dplace le curseur dune page vers le bas ou vers le haut dplace le curseur au dbut ou la fin dun texte dplace le texte pour que le curseur se trouve au milieu de lcran place le curseur la ligne n

Dplacements multiples du curseur

Emacs est capable de rpter plusieurs fois une commande. Vous devez dabord saisir Alt+n, o n est un nombre arbitraire. Les chiffres doivent tre saisis dans le clavier alphanumrique, et non dans le pav numrique droite du clavier. Alt doit tre press pendant toute la saisie de votre nombre. Pour nir, 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. Pour savoir sur quelle ligne vous vous trouvez, saisissez Alt+X+what-line+Entre. Emacs afche alors le numro de ligne courant dans la dernire ligne de lcran. Vous pouvez aussi afcher ce numro de faon permanente avec Alt+X+line-number-mode+Entre. Cependant, cela ne fonctionne pas pour les textes trs longs (de plusieurs mgaoctets). La colonne safche de la mme manire en activant column-number-mode. Il est souvent souhaitable, lorsquon travaille sur un texte long, de pouvoir passer rapidement dun emplacement un autre du texte. Pour cela, on peut enregistrer la position courante du curseur dans un registre. Ce dernier est un emplacement de sauvegarde dsign

O suis-je ?

Enregistrer la position du curseur dans des registres

EMACS ET XEMACS

269

par un caractre (lettre ou chiffre). Pour revenir au point enregistr, indiquez le nom du registre. Notez cependant que les registres ne sont pas enregistrs lorsquon quitte Emacs.
Registres pour la position du curseur c+X R z z e c+X R J z e enregistre la position courante du curseur dans le registre z place le curseur la position enregistre dans le registre z

18.4 Marquer, supprimer et coller du texte


Nous avons dj mentionn que les touches Suppr, Ctrl+D et Retour Arrire permettaient de supprimer des caractres isols. Pour supprimer de plus grandes quantits de texte, vous pouvez utiliser lune des commandes du tableau suivant.
Supprimer du texte et le rinsrer a+D a+B c+K a+0 c+K a+Z x c+Y supprime le mot suivant ou la fin du mot courant supprime le mot prcdent ou le dbut du mot courant supprime la fin de la ligne supprime le dbut de la ligne supprime tous les caractres jusqu la premire occurrence de x colle le texte supprim la position du curseur

Lorsque vous excutez plusieurs fois lune de ces commandes, Ctrl+Y colle lensemble du texte supprim par cette srie de commandes. Ctrl+Y peut tre lanc plusieurs fois et des endroits arbitraires du texte. Cette commande permet de coller le texte prcdemment supprim un autre endroit. Les commandes indiques sont peu souples, car la quantit de texte supprimer est xe. Pour supprimer une section complte, vous devez dabord la marquer. Pour cela, tapez Ctrl+Espace au dbut ou la n de la section marquer. Ce marquage reste invisible, mais Emacs afche le message Mark set. La zone marque 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+pcselection-mode. Sous XEmacs, le mode correspondant est automatiquement activ.
Marquer du texte c+z c+W c+X c+X place une marque (invisible) supprime le texte entre la marque et le curseur change la position du curseur et de la marque

270

LINUX

La commande Ctrl+X Ctrl+X sert principalement vrier lemplacement de la marque. Rpter cette combinaison replace le curseur sa position dorigine. La commande Ctrl+W considre que le premier caractre entre la marque et le curseur fait partie du marquage et quil doit tre supprim, tandis que le dernier caractre supprim est celui qui se situe avant le curseur.

18.5 diter du texte


Insertion et crasement

Emacs se trouve normalement en mode insertion. Cela signie que le texte saisi est insr la position courante du curseur. Pour craser le texte prcdent, vous pouvez passer en mode crasement avec Alt+X+overwrite-mode+Entre. Saisir nouveau cette commande permet de revenir au mode insertion. Sur un clavier bien congur, on passe dun mode lautre avec la touche Inser.
Casse a+C a+L a+U a+- a+C a+- a+L a+- a+U c+X c+L c+X c+U passe la lettre sous le curseur en majuscule, et toutes les lettres suivantes du mot en minuscules passe toutes les lettres du mot partir du curseur en minuscules passe toutes les lettres du mot partir du curseur en majuscules passe la premire lettre du mot en majuscule, le reste en minuscules ; si le curseur est au dbut dun mot, sapplique au mot prcdent passe toutes les lettres du mot jusquau curseur en minuscules ; si le curseur est au dbut dun mot, sapplique au mot prcdent passe toutes les lettres du mot jusquau curseur en majuscules ; si le curseur est au dbut dun mot, sapplique au mot prcdent passe la zone entre la marque et le curseur en minuscules passe la zone entre la marque et le curseur en majuscules

Fautes de frappe

Une faute de frappe frquente est lchange de deux lettres. Ctrl+T permet de corriger ce type derreur. Le curseur doit se trouver sur la deuxime lettre. Alt+T permet, de la mme manire, dchanger deux mots. Lorsque le curseur se trouve au dbut dun mot, celui-ci est chang avec le mot prcdent. Si le curseur est nimporte o ailleurs dans le mot, alors il est chang avec le mot suivant. Lappui successif de plusieurs Alt+T loigne le premier mot du second. Ctrl+X Ctrl+T permet dchanger la ligne courante avec la ligne prcdente. Lexcution successive de plusieurs de ces raccourcis loigne la premire ligne de plus en plus vers le bas.

Tabulations
Par dfaut, lorsquon dite un texte ASCII normal, Tab insre un caractre tabulation. Les tabulations ne sont pas visibles. Pour savoir sil sagit dune tabulation ou de plusieurs espaces, observez le comportement du curseur : lorsque celui-ci se dplace par "sauts", cest une tabulation.

EMACS ET XEMACS

271

En fonction du texte modi (par exemple un chier *.tex), (X)Emacs passe automatiquement dans le mode ddition correspondant. Certains modes rednissent quelques touches. Cest particulirement 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 na aucun effet. Lorsque Tab ne se comporte pas comme vous le dsirez, le mode ddition est probablement en cause. Il existe cependant diffrentes possibilits pour insrer des tabulations : Ctrl+Q+Tab permet dinsrer une tabulation, indpendamment du mode. Alt+I permet, indpendamment du mode ddition, dinsrer un caractre tabulation ou plusieurs espaces (cela se rgle dans indent-tab-mode). Alt+X+fundamental-mode permet de dsactiver le mode ddition courant. Tab fonctionne alors comme dans tout autre programme, mais vous perdez aussi toutes les fonctions associes au mode ddition. Par dfaut, les tabulations ont une largeur de huit caractres. Alt+X+set-variable tab-width permet de modier cette valeur par dfaut. Si vous travaillez toujours avec la mme taille de tabulations, vous pouvez modier ce paramtre dans le chier de conguration ~/.emacs. Certains modes dEmacs remplacent automatiquement les longues suites despaces par des tabulations. Alt+X tabify permet de remplacer toutes les sries despaces de la zone marque par des caractres tabulation. Alt+X untabify a le comportement inverse.

Taille des tabulations

Passage entre espaces et tabulations

Indenter manuellement du texte


Lindentation de texte est ncessaire lorsquon programme pour structurer le code. La commande la plus importante est appele avec Ctrl+X+Tab. Elle indente dun espace le texte entre la marque (Ctrl+Espace) et le curseur. Lorsque vous prxez cette commande de Alt+n, vous pouvez indenter les lignes de n espaces. La mme commande prxe de Alt+ dsindente le texte.
Indentation de texte c+X t a+- c+X t

indente le texte marqu dun espace dsindente le texte marqu dun espace

Les commandes ci-dessus permettent uniquement dajouter ou de supprimer des espaces en dbut de ligne. Pour raliser cette opration au milieu dune ligne (par exemple, lorsque vous travaillez sur un tableau ou pour indenter les commentaires la n des lignes de code), vous devez utiliser les commandes de rectangles. Un rectangle contient tous les caractres de la zone entre la marque et la position du curseur.
Commandes de rectangles c+X R O c+X R K c+X R Y a+X string-rectangle remplit la zone despaces (en dcalant le reste du texte) supprime le rectangle insre le rectangle supprim la position du curseur remplace chaque ligne du rectangle par une chane

272

LINUX

Emacs a galement quelques modes ddition dans lesquels lindentation est effectue automatiquement. Par exemple, le mode C ajoute ou supprime des espaces aprs les accolades.

18.6 Texte continu


Pour linstant, nous avons considr que vous ditiez du code ou des chiers de conguration avec Emacs. Son environnement est un peu diffrent lorsquil sagit de texte continu. Emacs ne coupe pas les lignes. Lorsque celles-ci sont plus longues que la largeur de lcran ou de la fentre, un caractre \ ou une petite che termine la ligne et le texte se poursuit sur la ligne suivante. Il ny a cependant en interne aucun retour la ligne. Pour dcouper une ligne, lancez la commande Alt+Q. Celle-ci la dcoupe lespace le plus appropri en plusieurs lignes plus courtes. Emacs considre toutes les lignes qui ne sont pas explicitement spares par une ligne vide comme des paragraphes. Cette commande peut videmment avoir des rpercussions dsastreuses sur du code. Ctrl+X+U permet dannuler. Il est bien sr pnible de lancer sans cesse Alt+Q lorsquon 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 dcoupes. Les lignes dj saisies avant de passer dans ce mode ne sont cependant pas modies. La longueur des lignes est gnralement limite 70 caractres. Vous pouvez modier cette limite avec Alt+X+set-variable+Entre+fill-column+Entre+n.
Coupure de lignes dans du texte continu a+Q a+X auto-fill-mode Entre
Indentation dans du texte continu

procde la coupure manuelle des lignes active le mode de texte continu (coupure automatique des lignes)

Pour saisir plusieurs paragraphes de texte indent, vous pouvez dnir la position de la premire colonne en tapant plusieurs espaces ou tabulations dans une ligne vide, qui dniront la taille de lindentation de votre texte. Lancez ensuite le raccourci Ctrl+X .. Le programme indente alors ds la deuxime ligne du paragraphe toutes les lignes comme la premire. Cette opration ne fonctionne que pour le texte qui nest pas encore saisi. Pour indenter du texte dj saisi, il faut dnir lindentation avec Ctrl+X+., puis lancer Alt+Q. Pour dsactiver la largeur de lindentation, placez le curseur au dbut de la ligne avec Ctrl+X+..
La commande Ctrl+X+. enregistre en fait tous les caractres qui se trouvent entre la position courante du curseur et le dbut de la ligne. Ces derniers sont ensuite ajouts automatiquement au dbut des nouvelles lignes cres par la coupure du paragraphe. Vous pouvez utiliser cela pour prfixer toutes les lignes dune chane de caractres donne (par exemple >).

Pour remettre en forme de plus grandes quantits de texte indent diffremment, la commande Alt+X+fill-individual-paragraphs+Entre peut savrer utile. Elle met en forme la zone entre la marque et la position du curseur. Lindentation courante est alors prserve.

EMACS ET XEMACS

273

Indenter du texte continu c+X . dfinit la colonne dindentation la position du curseur ; celui-cidoit se situer sur une ligne vide a+M dplace le curseur au dbut dune ligne indente a+X fill-individ met en forme la zone entre la marque et le curseur en gardant lindentation courante

Mode texte

Si vous utilisez beaucoup dindentations, le mode texte est plus confortable que les procdures dcrites ci-dessus. Vous pouvez lactiver avec Alt+X+text-mode+Entre. 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 quEmacs indente automatiquement chaque nouvelle ligne comme la prcdente. Alt+Q, pour la coupure automatique, gre galement lindentation du paragraphe par rapport la premire 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 procde une coupure manuelle des lignes et conserve lindentation de la premire 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 pouvez lancer la commande correspondante depuis un autre mode grce Alt+X+center-line et Alt+X+center-paragraph.
Abrviations

Une des particularits dEmacs est que vous pouvez tendre des abrviations sans prrequis particulier. Indiquez les premires lettres dun mot et saisissez Alt+/. Emacs cherche dabord dans le texte prcdent, puis dans le texte suivant et enn, dans tous les chiers ouverts, les mots qui dbutent par ces lettres. Plusieurs appuis sur Alt+/ permettent de faire dler les diffrents compltements possibles.

18.7 Chercher et remplacer


Recherche incrmentale

Le plus rapide pour chercher du texte est dutiliser Ctrl+S+texte__chercher. La commande prsente une particularit par rapport celle des autres diteurs : elle commence la recherche ds la saisie du premier caractre. Si vous cherchez "recherche", tapez Ctrl+S+rech : le curseur passe au premier mot qui contient "rech". Plutt que de continuer taper les autres lettres, lancez nouveau Ctrl+S pour passer au mot suivant

274

LINUX

contenant "rech". Si vous ne saisissez que des minuscules, la recherche est indpendante de la casse. Si vous changez davis et dcidez de chercher "recrer", il suft de supprimer le "h" avec Retour Arrire. Emacs revient alors au premier mot ( partir de la position du curseur au dbut de la recherche) qui contient "rec". La saisie de "r" passe le curseur au premier mot qui contient "recr". Si vous tapez Entre ou une touche du curseur, Emacs considre que la recherche est nie et place le curseur lemplacement trouv. La position du curseur au dbut de la recherche est enregistre par la marque. Vous pouvez y retourner avec Ctrl+X Ctrl+X. La rptition de cette commande vous ramne au rsultat de la recherche. Vous pouvez reprendre la recherche en tapant deux fois Ctrl+S pour passer loccurrence suivante. Pour chercher la chane vers larrire, tapez Ctrl+R la place de Ctrl+S.
Recherche incrmentale c+S c+R a+P a+N c+G c+X c+X recherche incrmentale vers lavant recherche incrmentale vers larrire rcupre la recherche prcdente dans lhistorique rcupre la recherche suivante dans lhistorique interrompt la recherche change la position de la marque (dbut de la recherche) et celle du curseur

Pour recommencer une recherche, vous pouvez naviguer dans lhistorique aprs avoir tap Ctrl+S grce Alt+P et Alt+N.

Recherche avec des expressions rationnelles


La recherche incrmentale 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 lavant et vers larrire. Si vous saisissez des majuscules dans le motif de recherche, ce dernier devient sensible la casse. Pour chercher une lettre indpendamment 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 caractres \< et \> permettent respectivement de restreindre la recherche au dbut et la n du mot. Ainsi, \<connecte\> renvoie le mot connecte, mais ni dconnecte, ni connecter. Le signe + indique que le mot doit contenir au moins lun des lments qui le prcdent. Ainsi, [Ll]es[a-z]+ cherche les mots composs de "les" ou "Les", suivis au moins dune lettre. Attention, les caractres accentus ne sont pas grs par cette syntaxe ; il faut les ajouter explicitement.

EMACS ET XEMACS

275

Les paires de parenthses \( et \) nont pas dinuence sur la recherche en soi. Les caractres correspondant ce groupe peuvent nanmoins tre rappels dans le motif de remplacement (voir paragraphe suivant).
Recherche avec des expressions rationnelles c+a+S c+a+R recherche incrmentale par motif vers lavant recherche incrmentale par motif vers lavant

Construction du motif de recherche

\< \> ^ $ . .* .+ .? [abc...] [^abc...] \( \) \x

dbut dun mot fin dun mot dbut dune ligne fin dune ligne caractre arbitraire lexception dun retour la ligne nombre arbitraire (y compris 0) de caractres arbitraires nombre arbitraire (mais au moins un) de caractres arbitraires zro ou un caractre arbitraire un des caractres entre crochets aucun des caractres entre crochets dbut dun atome (voir Chercher et remplacer) fin dun atome caractre spcial (par exemple \\ pour chercher \ ou \. pour chercher .)

Chercher et remplacer
Emacs diffrencie galement, dans le cas du remplacement, la commande normale de la commande tendue avec des motifs de recherche. Lorsquon remplace un texte, la lettre initiale des mots est dans la mme casse que celle quelle remplace lorsque le texte de remplacement est entirement en minuscules. Les fonctions de recherche et de remplacement ne fonctionnent pas pour les textes de recherche sur plusieurs lignes, car les caractres joker * et + ne prennent pas en compte les passages la ligne.
Recherche et remplacement a+% a+x query_replace-r e \& \1

recherche et remplacement sans motif recherche et remplacement avec motif rfrence au texte trouv complet rfrence au premier atome entre \(...\)

Pour mieux comprendre comment fonctionnent les atomes dans la fonction de recherche/remplacement, le plus simple est de donner un exemple. Si on remplace

276

LINUX

fonction(\([^,]*\),\([^,]*\)) par fonction(\2, \1), les paramtres de fonction sont intervertis. fonction(a+b,2*e) devient alors fonction(2*e,a+b). Attention cependant, les paramtres de la fonction ne peuvent pas avoir de virgules. Par exemple, si la chane est fonction(f(a,b),g(x,y)), le remplacement choue. Soyez toujours prudent lorsque vous utilisez cette fonction avec des expressions rationnelles et enregistrez au pralable votre texte. Il est frquent que le motif de recherche corresponde un tout autre texte ou une section plus large que vous ne laviez envisag. Ctrl+X Ctrl+U permet de remdier facilement une erreur de ce type.
Raccourcis clavier pour diter le texte modifi z ou Y . B ou N q ! c+R c+a+R remplacer, continuer la recherche remplacer, mais laisser le curseur son emplacement courant pour contrler le rsultat ; la recherche peut tre reprise avec Espace ne pas remplacer, continuer la recherche ne pas remplacer, interrompre la recherche remplacer toutes les occurrences suivantes sans confirmation interrompre temporairement la commande pour effectuer une modification manuelle lemplacement du curseur reprendre la commande Remplacer

18.8 Tampon et fentre


Lorsquon travaille sur plusieurs textes, Emacs place chaque texte dans un tampon. Mme lorsque vous nditez quun seul chier, plusieurs tampons coexistent : un pour le texte (le nom du tampon correspond celui du chier), un pour les fentres daide ou les fentres info ouvertes (le nom du tampon est alors *Help* ou *Info*), etc. En plus du concept de tampons, Emacs connat aussi celui de fentres. Une fentre est une zone dEmacs dans laquelle un tampon safche. Gnralement, une seule fentre occupant tout lespace est utilise. Pour certaines commandes (par exemple, afchage de laide ou autres informations internes Emacs), lcran est divis horizontalement en deux fentres. On peut aussi diviser Emacs en plusieurs morceaux horizontaux ou verticaux. Chaque zone (fentre) peut alors afcher un tampon diffrent. Reprsenter le mme tampon dans deux fentres est galement une possibilit. Cela est trs pratique pour les textes trs longs : vous pouvez ainsi diter deux sections diffrentes du texte sans devoir dplacer le curseur, ce qui savre la longue trs inconfortable.
Sous Emacs, la notion de fentre na rien voir avec celle de fentre X : elle reprsente une partie dune fentre X. Si vous dsirez ouvrir une autre fentre X (par exemple, pour travailler confortablement entre deux morceaux de code), vous pouvez la crer dans le menu File, New Frame (GNU Emacs) ou View, New Frame (XEmacs).

Les commandes suivantes sappliquent la fentre courante (dans laquelle se trouve le curseur). Ces commandes changent le tampon afch dans la fentre.

EMACS ET XEMACS

277

Commandes du tampon c+X B e c+X B nom e c+X c+B c+X K nom e active le dernier tampon utilis active le tampon indiqu affiche dans une fentre la liste de tous les tampons ferme le tampon indiqu ; lorsque le tampon contient des donnes non enregistres, demande confirmation

Les commandes suivantes sappliquent lafchage de tampons dans diffrentes zones de lcran (fentres). La ligne de sparation entre les fentres peut tre dplace la souris.
Commandes de fentre c+X O c+X 0 c+X 1 c+X 2 c+X 3 passe la fentre suivante ferme la fentre courante ferme toutes les fentres, part la fentre courante spare la fentre courante en deux zones horizontales spare la fentre courante en deux zones verticales

Le tampon nest pas modi lorsquon ferme une fentre. Il devient invisible, mais reste en mmoire et peut tre afch de nouveau.

18.9 Modes ddition spcifiques


De nombreux modes ddition modient les fonctions de lditeur et fournissent des commandes spciales. Emacs sadapte ainsi de manire optimale tous les types de texte. En fonction du mode, une coloration syntaxique peut galement sappliquer (mise en vidence des mots cls 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 lextension du chier et de ses mots cls. Chaque mode majeur peut tre associ zro, un ou plusieurs modes mineurs. Il existe une conguration de mode pour chaque chier modi dans Emacs (pour chaque tampon). Modier manuellement un mode nimpacte que le tampon courant. Le passage un autre mode majeur dsactive le mode majeur courant. Lajout ou la suppression dun mode mineur ne modie pas le mode majeur. Les tableaux suivants recensent, sans prtendre lexhaustivit, quelques modes majeurs et mineurs dEmacs. Il en existe de nombreux autres, par exemple pour la multitude de langages de programmation disponibles sous Linux. F1+A+mode+Entre afche un aperu des modes disponibles et F1+M, des informations sur le mode majeur courant.

278

LINUX

Quelques modes majeurs importants dEmacs a+X fundamental-mode e a+X text-mode e a+X c-mode e a+X c++-mode e a+X emacs-lisp-mode e a+X html-mode e a+X sh-mode e mode standard (configuration de base) mode pour indenter confortablement du texte mode C mode C++ fichiers Emacs Lisp (par exemple ~/.emacs) mode HTML mode ddition de scripts shell

Quelques modes mineurs importants dEmacs a+X auto-fill-mode e a+X font-lock-mode e a+X iso-accents-mode e a+X abbrev-mode e mode texte continu, coupure automatique coloration syntaxique saisie daccents compltement automatique des abrviations

Emacs tente de reconnatre automatiquement, daprs lextension du fichier et le contenu des premires 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 nest pas automatiquement dtect, vous pouvez ajouter dans la premire ligne du fichier un commentaire contenant les caractres *-* nom *-*. nom est le nom du mode souhait (par exemple *-* html *-*).
Mise en vidence de la syntaxe

Llment le plus remarquable du mode ddition est la mise en vidence de la syntaxe. Les commandes ou les commentaires sont distingus 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 gnralement dsactive pour des raisons de performances. Pour lactiver dans un document, vous devez lancer le mode correspondant Alt+X+font-lock-mode : Emacs analyse le texte entier et marque les lments quil trouve. Il arrive, aprs une modication du texte, que la reconnaissance de la syntaxe ne fonctionne plus. Pour la remettre daplomb, relancez Alt+X+font-lock-mode.

18.10 Unicode
Les versions actuelles dEmacs et de XEmacs sont en principe compatibles avec Unicode, mais en pratique, diverses limitations et problmes se posent encore. Les deux variantes dEmacs grent UTF-8 ; XEmacs gre de plus UTF-7 et UTF-16. Ldition de chiers Unicode implique que le paquetage dextensions Mule (Multilingual Enhancement, amliorations multilingues) soit install. Les commandes Mule peuvent tre lances sous GNU Emacs avec Options, Mule et sous XEmacs avec Edit, Multilingual. Une prise en charge avance dUnicode est disponible dans le paquetage Mule-UCS.

EMACS ET XEMACS

279

Les deux versions dEmacs prvoient de passer une gestion interne du texte compltement en Unicode, probablement partir de la version 23. Il se peut donc que quelques-unes des fonctions dcrites ici ne fonctionnent plus ou diffremment dans les versions futures dEmacs.

GNU Emacs et Unicode


Indiquer explicitement le jeu de caractres

GNU Emacs reconnat bien souvent le jeu de caractres des chiers et utilise par dfaut celui de la distribution. Il est nanmoins parfois ncessaire dindiquer explicitement le jeu de caractres. Pour cela, on peut lancer la commande Ctrl+X+Entre+C+codage. On peut ainsi charger un chier en UTF-8, comme le montre lexemple suivant. Les codages disponibles sont accessibles sous forme de liste grce Tab. Ctrl+X+Entre+C+utf-8+Entre+Ctrl+X Ctrl+F+nom_du_chier+Entre
Codages frquemment utiliss dans GNU Emacs iso-8859-n iso-latin-n utf-8 utf-8-dos binary no-conversion raw-text fichiers ISO-8859-n fichiers ISO-Latin-n fichiers UTF-8 fichiers UTF-8 avec retours la ligne DOS/Windows fichiers binaires correspond pour linstant Latin-1 correspond pour linstant Latin-1

Barre dtat

Pour modier le codage dun tampon dj charg, lancez Ctrl+X+Entre+F+codage. Le jeu de caractres utilis est indiqu dans les premiers caractres de la barre dtat. Le tableau suivant donne quelques exemples :
Description du codage dans la barre dtat de GNU Emacs -n -u -= -t Latin-n UTF-8 fichier binaire ou no-conversion pas de codage (raw-text), correspond pour linstant Latin-1

Aide

Ctrl+H Maj+C+Entre indique le codage du tampon courant. Ctrl+U Ctrl+X+= indique le code du caractre sous le curseur.

XEmacs et Unicode
Il peut tre ncessaire de dnir explicitement la prise en charge dUnicode dans XEmacs en ajoutant ces lignes dans le chier de conguration :
(require un-define) (set-coding-priority-list (utf-8)) (set-coding-category-system utf-8 utf-8)

280
Indiquer explicitement le jeu de caractres

LINUX

En plus des raccourcis clavier de GNU Emacs, XEmacs dispose galement de raccourcis avec Ctrl U, plus confortables. La commande suivante permet dindiquer explicitement le jeu de caractres utiliser pour ouvrir un chier : Ctrl+U Ctrl+X Ctrl+F+chier+Entre+codage+Entre Les codages disponibles safchent dans une liste avec Tab. Le tableau suivant donne quelques exemples. XEmacs reconnat, la diffrence dEmacs, les codages UTF-7 et UTF-16.
Codages frquemment utiliss dans XEmacs iso-8859-n utf-7 utf-8 utf-8-dos utf-8-ws utf-16-le utf-16-be binary no-conversion raw-text fichiers ISO-8859-n fichiers UTF-7 fichiers UTF-8 fichiers UTF-8 avec retours la ligne DOS/Windows fichiers UTF-8 avec code de marquage UTF-8 (signature) fichiers UTF-16 usuels (little endian) fichiers UTF-16 (big endian) fichiers binaires correspond pour linstant Latin-1 correspond pour linstant Latin-1

Pour enregistrer un chier, XEmacs utilise le mme jeu de caractres que celui utilis lors du chargement. Si vous dsirez modier le jeu de caractres ce moment, vous pouvez utiliser la commande suivante. Attention cependant, il arrive que le passage dun 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_chier Entre codage Entre
Barre dtat

Le jeu de caractres utilis est indiqu dans les premiers caractres de la barre dtat. Le tableau suivant donne quelques exemples, qui diffrent de GNU Emacs :
Description du codage dans la barre dtat de XEamcs MIME/Ltn-n 7 u U Binary Raw Noconv Latin-n UTF-7 UTF-8 UTF-16 fichiers binaires pas de codage, correspond pour linstant Latin-1 pas de codage, correspond pour linstant Latin-1

Vous trouverez davantage dinformations sur le codage des textes et la gestion de diffrents jeux de caractres dans le chapitre Mule du manuel Emacs-Lisp. Vous pouvez aussi le lire sur Internet ladresse http:// www.xemacs.org/Documentation/21.5/html/lispref_64.html. Le manuel Mule-UCS fournit des informations spcifiques Unicode ladresse http://www.xemacs.org/Documentation/packages/html/mule-ucs.html.

EMACS ET XEMACS

281

Saisie de caractres spciaux trangers


Les commandes et fonctions dcrites ci-dessus devraient vous permettre de charger, dafcher et denregistrer des chiers Unicode. Vous souhaitez probablement aussi pouvoir les modier. Mais comment faire lorsque les caractres voulus ne sont pas sur votre clavier ? Ctrl+Q+n permet de saisir nimporte quel caractre du jeu de caractres Latin-1 grce son code octal. Il suft alors de taper celui-ci avec des chiffres. Alt+X set-input-method permet de dnir un autre mode de saisie, an de pouvoir taper des caractres accentus, mais aussi chinois, japonais et corens. La liste des modes est disponible comme dhabitude grce Tab. Ainsi, latin-9-prefix permet de rednir le comportement des touches ", ~, ^, /, et `. Par exemple, "O insre le caractre , /a insre un , /e insre un et ~n insre un . Sous GNU Emacs, le mode de saisie peut tre dni avec le raccourci Ctrl+X Ctrl+\. Sous XEmacs, il suft de taper Ctrl+\.

Saisie de codes en octal Modes de saisie

19

bash
Ce chapitre traite de bash, bourne again shell. Ce programme permet de lancer des commandes dans une fentre de console ou une console texte. bash est galement un interprteur de commandes. Il fournit donc un langage de programmation qui peut tre utilis pour dvelopper des programmes shell (scripts shell). Utiliser un interprteur de commandes est intressant pour tous ceux qui souhaitent lancer des programmes non seulement par le biais des menus KDE ou Gnome, mais aussi via le clavier. Cela semble premire vue peu pratique, mais offre de nombreuses possibilits, par exemple la combinaison de plusieurs commandes ou lenregistrement des rsultats dune commande dans un chier. Ce chapitre prsente lenvironnement de bash, la redirection des entres et des sorties, la communication entre plusieurs processus (tubes, substitution des commandes) et lutilisation de variables.

19.1 Quest-ce quun shell ?


bash signie bourne again shell. Il sagit en fait dun jeu de mots en anglais : bash est le successeur du Bourne-Shell qui, avec le Korn-Shell et le C-Shell, est lun des trois shells classiques sous Unix. Les trois interprteurs de commandes sont disponibles sous Linux ; bash est gnralement le shell par dfaut. Quest-ce quun shell ? Il sagit dune interface utilisateur entre le systme Linux et lutilisateur. Linterprteur de commandes permet dappeler des commandes Linux et des programmes. Il est en ce sens comparable command.com du monde MS-DOS. Un shell est lanc dans chaque fentre de console (console, gnome-terminal, xterm) et dans chaque console texte. Un shell fournit galement un langage de programmation pour automatiser des tches. Certaines commandes permettent dutiliser des variables dans ces programmes, de poser des questions, de construire des boucles, etc. Les programmes sont alors dcrits par le nom de programmes shell, de scripts shell, de chiers batch, ou simplement de scripts selon les prfrences des auteurs.
Il existe pour bash une page de manuel trs complte (man bash) et un fichier info tout aussi complet (info bash). Certaines distributions fournissent galement le fichier bashref.html qui prsente le mme contenu dans un format plus lisible. Ce fichier est galement disponible sur Internet ladresse http:// www.gnu.org/software/bash/manual/bash.html. Ce chapitre dcrit 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

284

LINUX

Passer un autre shell


bash est le shell par dfaut de la plupart des distributions Linux. Mais dautres interprteurs sont souvent disponibles. Ils se distinguent par une syntaxe lgrement divergente. Le choix de linterprteur de commandes est avant tout une question de prfrences personnelles ou dhabitude. Nous ne dcrirons que bash dans cet ouvrage, avant tout pour des questions de place. Si vous avez install plusieurs interprteurs de commandes, vous pouvez passer de lun lautre tout moment. bash et sh lancent bash. ash lance linterprteur des systmes BSD (idal pour les ordinateurs avec peu de mmoire vive). ksh et pdksh lancent Korn Shell ; csh et tcsh lancent le C Shell ou sa variante tcsh. exit permet de revenir au dernier interprteur de commandes actif. Notez que tous les interprteurs distribus par Linux sont des versions libres. Il peut donc y avoir quelques diffrences par rapport aux originaux de divers systmes Unix. Si vous ne savez plus dans quel shell vous vous trouvez, tapez la commande echo $0, qui existe dans tous les interprteurs et qui a la mme signication : elle renvoie le nom de linterprteur courant.
utilisateur$ echo $0 bash

Changer de shell par dfaut


Chaque utilisateur connect a un shell par dfaut. Celui-ci est dmarr automatiquement lors de la connexion dans une console texte. Sous X, le shell standard est lanc dans toutes les fentres de console. Le shell par dfaut est enregistr dans /etc/passwd. Il sagit du dernier lment de la ligne de chaque utilisateur. Pour passer un autre shell par dfaut, lancez la commande chsh. Les interprteurs de commandes sont enregistrs dans le rpertoire /bin. Vous devez donc indiquer /bin/csh si vous dsirez lancer csh par dfaut. Les interprteurs disponibles sont lists dans /etc/shells.

19.2 Configuration de base


Touches de fonctions de bash

La conguration du clavier de bash est enregistre dans le chier /etc/inputrc au niveau global et dans ~/.inputrc pour chaque utilisateur. Si vous ne pouvez pas saisir de caractres spciaux ou si les touches Suppr, Home et Fin ne fonctionnent pas, vous devez modier inputrc comme suit (cest gnralement 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

BASH

285
Ce chier dnit la fonction readline, utilise en interne par bash pour traiter les entres du clavier. Les trois premires lignes assurent que les caractres 8 bits sont reconnus lors de la saisie, quils ne sont pas transforms en un autre caractre et quils safchent. Les trois lignes suivantes dnissent le comportement des touches Home, Suppr et Fin. Les modications ne sont prises en compte quau dmarrage dun nouveau shell : vous devez vous dconnecter et vous reconnecter une console texte ou dmarrer une nouvelle fentre de console sous X. Pour tester, il est plus pratique de lancer simplement la commande bash. Un nouvel interprteur est alors lanc et vous pouvez revenir lancien shell avec exit. Cela est particulirement avantageux lorsque la conguration na pas le rsultat escompt lancien interprteur a encore les associations de touches prcdentes. Sous X, les fonctions du clavier dpendent aussi de la conguration de X (voir Chapitre 22).

Invite de commande

Au dbut de chaque ligne du shell, certains lments safchent en fonction de la distribution : le nom de lordinateur, celui de lutilisateur et/ou le rpertoire courant. La chane de caractres se termine gnralement par $ ou > (pour les utilisateurs rguliers) ou par # (root). Cette chane est dnie par la variable denvironnement PS1, qui peut tre dnie dans /etc/ bash.bashrc ou /etc/bashrc. Sans autre conguration, PS1="\s-\v$". Dans ce cas, bash afche le nom de linterprteur et le numro de version. Vous pouvez modier PS1 dans ~/.profile. Par exemple, si PS1="\w \$", linvite de commande est simplement le rpertoire courant. la place ou en plus de PS1, la variable PROMPT_COMMAND peut tre dnie. Celle-ci contient une commande lance avant chaque afchage de PS1.
Les codes utilisables dans la variable PS1 (par exemple, \w comme raccourci pour le rpertoire courant) sont dcrits 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 spciales. En particulier, vous pouvez naviguer dans lhistorique des commandes prcdemment lances avec les ches de direction Haut et Bas, ce qui peut rduire signicativement la quantit de saisie ncessaire. Lorsque vous quittez un interprteur, les dernires commandes utilises sont galement enregistres dans le chier ~/.bash_history et sont donc nouveau disponibles la connexion suivante. Vous pouvez modier les lignes de commande comme dans un diteur de texte. Vous pouvez ajouter et supprimer des caractres nimporte quel endroit. Lallocation des touches de bash est congurable pratiquement sans limite. Vous pouvez notamment associer les touches spciales (curseur et touches fonction) avec les commandes que vous souhaitez. Vous pouvez aussi passer entre les modes emacs et vi. Les commandes de base ddition sont alors les mmes que dans lditeur choisi. Le mode par dfaut est gnralement le mode Emacs. Cette section dcrit les raccourcis clavier de ce mode.

286

LINUX

Compltement des commandes et noms de fichiers


Le compltement automatique des commandes et des noms de chiers aide minimiser la saisie. Tapez dabord les premires lettres de la commande ou du nom de chier, puis appuyez sur Tab. Si les lettres tapes identient un lment de manire unique, ce nom safche. Lorsque plusieurs noms correspondent, le nom est complt jusqu la dernire correspondance des noms. De plus, un signal sonore est souvent mis pour indiquer que le nom du chier nest probablement pas complet. Le compltement de noms de chiers est plus simple comprendre avec un exemple.
utilisateur$ xem Tab com Tab

est, sur mon ordinateur, complt en


utilisateur$ xemacs command.tex

xemacs est le nom de mon diteur prfr et command.tex un chier LaTeX. Pour tendre xem, bash cherche dans tous les rpertoires de la variable PATH le programme correspondant. Pour tendre le nom du chier, seul le rpertoire courant est considr. Le compltement fonctionne galement pour les noms de chiers prxs par plusieurs rpertoires.
utilisateur$ ls /usr/sh Tab

est complt par Bash en


utilisateur$ ls /usr/share

Sil nest pas possible de complter llment de manire unique (signal sonore), vous pouvez taper nouveau Tab. bash afche alors dans les lignes qui suivent tous les compltements 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 prsents dans le rpertoire courant ne sont tendus par le compltement de commandes que lorsque le rpertoire courant se trouve dans la variable PATH. echo $PATH affiche cette variable. Le rpertoire courant est abrg en . . Dans la plupart des distributions Linux, . ne fait pas partie de la variable PATH pour des raisons de scurit. Afin de lancer des commandes dans le rpertoire courant, il faut donc saisir ./commande.
Dterminer le chemin dun programme

Le compltement automatique de commandes masque lemplacement rel dun programme. Pour le savoir, vous avez plusieurs possibilits : whereis name parcourt tous les rpertoires par dfaut. which name parcourt tous les rpertoires de la variable PATH et dtermine le programme lanc par la commande sans chemin. which est donc intressant lorsque plusieurs versions dun programme coexistent dans un systme. type name fonctionne comme which, mais prend galement en compte les commandes intgres Bash ou dnies en tant qualias.

BASH

287
bash fournit un mcanisme de compltement similaire pour le nom des rpertoires personnels (~mi Tab renvoie sur mon ordinateur ~michael/) et les noms de variables ($PAT Tab renvoie $PATH). Lorsquon lance la commande latex nom. Tab, seuls les chiers se terminant par .tex sont proposs. man nom Tab ne renvoie que les lments pour lesquels il existe une page de manuel. Cela fonctionne pour de nombreuses commandes pour lesquelles le choix de chiers possibles ou de paramtres est restreint. Cest pratique, car seuls les chiers ou paramtres cohrents sont pris en compte pour le compltement. La commande bash complete gre cela. De nombreuses distributions disposent dune conguration norme pour complete, mais qui nest installe quen partie ou qui doit ltre explicitement (par exemple, sous Fedora avec le paquetage bash-completion). La commande complete sans autre paramtre afche toutes les rgles connues. La conguration se trouve gnralement dans lun des chiers suivants : /etc/bash_completion ; /etc/bash_completion.d/* ; /etc/profile.d/complete.bash ; /etc/profile.d/bash_completion.sh.
Pour dfinir des rgles de compltement supplmentaires, 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.

Extensions spcifiques aux programmes

Raccourcis clavier importants


Le tableau suivant indique les raccourcis dun bash congur en mode Emacs. Si vous travaillez sous X, il se peut que X interfre avec une conguration correcte de bash. Si vous travaillez dans le terminal de Gnome, vous devez aller dans dition > Raccourcis clavier, puis cocher loption Dsactiver tous les raccourcis clavier des menus.
Raccourcis claviers de bash W/Z A/S h j c+A c+E a+B a+F B D a+D c+K navigue dans lhistorique des commandes dplace le curseur vers la droite ou vers la gauche dplace le curseur au dbut ou la fin de la ligne dplace le curseur au dbut ou la fin de la ligne dplace le curseur dun mot vers larrire ou vers lavant supprime le caractre prcdent ou courant supprime un mot supprime le reste de la ligne

288

LINUX

c+Y c+T a+T t c+L c+R a+. c+_

colle le dernier texte supprim change les deux caractres prcdents change les deux mots prcdents complte la commande ou le nom du fichier vide lcran cherche une commande lance prcdemment colle le dernier paramtre utilis annule la dernire modification

Coller le dernier paramtre

Le raccourci Alt+. est plus simple comprendre avec un exemple. Supposons que vous ayez copi un chier (cp fichier1 fichier2). Vous voulez maintenant supprimer la copie. Plutt que de taper rm fichier2, vous pouvez taper rm, puis Alt+.. bash rcupre alors automatiquement le dernier paramtre de la commande. Plusieurs appuis sur Alt+. permettent de naviguer dans lhistorique des paramtres. Ctrl+R requiert galement une explication supplmentaire. Ce raccourci permet de chercher une commande dj saisie. Tapez, au dbut de la ligne, Ctrl+R et les premiers caractres de la commande recherche. bash afche alors la dernire commande utilise qui commence par les lettres saisies. Plusieurs appuis sur Ctrl+R permettent de passer entre les diffrentes commandes correspondantes. Ctrl+S fonctionne comme Ctrl+R, mais passe les commandes dans lordre inverse. Entre, Tab et les touches de direction interrompent la recherche et lancent la commande ou modient la ligne trouve.
Certaines consoles comprennent Ctrl+S comme lordre darrter momentanment laffichage. Ctrl+Q redmarre cet affichage. Si votre console linterprte ainsi, vous ne pouvez chercher des commandes quavec Ctrl+R. Les raccourcis clavier de bash proviennent de la bibliothque readline, utilise par bash pour traiter les entres. Dautres raccourcis sont indiqus dans man readline.

Chercher une commande

Alias
La commande alias permet dconomiser quelques touches lorsquon saisit des commandes. Elle dnit des raccourcis. Lors du traitement de la ligne de commande, linterprteur vrie si le premier mot est un alias. Si cest le cas, il est tendu au texte complet. Les alias pour une combinaison de raccourcis ou des noms de chiers ne sont pas valides, car bash ne cherche pas remplacer les autres termes de la ligne de commande. bash reconnat cependant les cas particuliers o plusieurs programmes sont appels (tubes, substitution de commande, excution de plusieurs commandes la suite avec ;) et remplace les alias par les commandes correspondantes.
utilisateur$ alias cdb=cd ~michael/livrelinux

Cette commande dnit labrviation cdb qui me permet de passer rapidement dans un rpertoire que jutilise beaucoup.

BASH

289
Les appels alias peuvent galement tre imbriqus. Notez aussi que les raccourcis dnis ont priorit sur les commandes du mme nom. On peut ainsi dnir des alias pour viter lappel certaines commandes :
utilisateur$ alias more=less

Les alias peuvent tre supprims avec la commande unalias. Ils sont valables jusqu ce que lutilisateur quitte linterprteur de commandes (donc, au plus tard, jusqu la dconnexion de lutilisateur). Si vous utilisez frquemment certains alias, vous pouvez les ajouter dans les chiers .profile et .bashrc de votre rpertoire personnel. Dans de nombreuses distributions, divers alias sont prdnis. Par exemple, rm peut tre un raccourci vers rm -i. La commande alias sans paramtre envoie la liste de toutes les commandes dnies par alias. Les lignes suivantes indiquent quels endroits sont dnis 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 lavantage de comprendre les paramtres ($1, $2, etc.) et dtre plus souples.

19.4 Redirections
Lorsquon lance des commandes sous bash, il existe trois chiers spciaux. Il ne sagit pas proprement parler de chiers en soi, mais de descripteurs de chiers qui sont grs par le systme dexploitation comme des chiers. Entre standard. Le programme dj lanc (par exemple, bash ou une commande dj lance) lit ses entres depuis lentre standard. Il sagit gnralement du clavier. Sortie standard. Toutes les sorties du programme (par exemple, la liste de tous les chiers par ls) sont diriges vers la sortie standard. Il sagit gnralement de la fentre de terminal ou de la console texte. Erreur standard. Les messages derreur sont gnralement envoys sur lerreur standard, qui bien souvent safche sur le terminal courant. Tout cela semble vident si ce ntait pas le cas, o devraient tre envoys les saisies du clavier, les rsultats et les messages derreur, sinon sur lcran ? Il faut cependant remarquer que lon peut rediriger la sortie ou lentre standard. Par exemple, supposons que vous ne souhaitiez pas afcher le contenu dun rpertoire, mais lenregistrer dans un chier. La sortie standard doit alors tre redirige dans un vrai chier. Dans bash, on utilise pour cela le caractre > :
utilisateur$ ls *.tex > liste

Le chier liste contient aprs cette commande une liste de tous les chiers *.tex du rpertoire courant. Ce type de redirection est probablement le plus courant. Il en existe plusieurs

290

LINUX

variantes : 2> fichier enregistre tous les messages derreur dans le chier indiqu. >& fichier et &> fichier enregistrent la sortie et les messages derreur dune commande dans le chier indiqu. Loprateur double >> signie que les lments sont ajouts la n dun chier dj existant (> crase le chier). Les entres sont rediriges avec le caractre < fichier : les commandes qui attendent une saisie au clavier peuvent lire le chier la place de cette saisie.
On ne peut pas traiter un fichier et crire le rsultat en mme temps dans ce mme fichier ! sort fichier > fichier ou sort < fichier > fichier nont pour seul effet que de vider le fichier !

Tubes
Les tubes, ou pipes, sont construits avec le caractre |. La sortie de la premire commande est alors fournie comme entre de la seconde. En pratique, les tubes sont souvent utiliss avec la commande less, an dafcher de longs rsultats 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 afche le rsultat lcran. Les tubes sont galement trs pratiques pour combiner plusieurs commandes. Par exemple, la commande suivante afche une liste trie de tous les paquetages RPM installs :
utilisateur$ rpm -qa |sort

la place des tubes, vous pouvez aussi utiliser des chiers FIFO. FIFO signie rst in, rst out (premier entr, premier sorti) et ralise un tube sous la forme dun chier nomm. Ces chiers sont bien plus lourds que les tubes, mais ils rendent clair leffet exact dun tube. En pratique, ils sont utiliss pour que deux programmes indpendants puissent communiquer.
utilisateur$ mkfifo fifo utilisateur$ ls -l > fifo & utilisateur$ less < fifo

Les trois commandes ci-dessus crent un chier FIFO. ls est ensuite lanc comme processus darrire-plan. Il crit ses rsultats dans le chier. less lit dans ce chier les donnes et les afche lcran.
Les tubes ne sont indiqus que lorsque les commandes lisent leurs entres sur lentre standard. Si ce nest pas le cas, vous pouvez obtenir des rsultats similaires grce des substitutions de commandes ou grce xargs.

Multiplication des sorties avec tee


De temps en temps, on souhaite enregistrer la sortie dun programme dans deux chiers diffrents ou afcher la sortie tout en lenregistrant. Il est dans ce cas ncessaire de ddoubler la sortie. Cest ce que fait la commande tee :
utilisateur$ ls |tee liste

BASH

291
Cette commande afche le contenu du rpertoire lcran et lenregistre dans le chier liste. La sortie standard est redirige vers la commande tee. Par dfaut, cette commande afche la sortie standard sur le terminal et enregistre une copie dans le chier indiqu. Vous pouvez voir quil sagit effectivement dune multiplication des sorties si vous redirigez la sortie standard de tee dans un chier :
utilisateur$ ls |tee liste1 > liste2

Il en rsulte deux chiers identiques liste1 et liste2. La commande ci-dessus est un simple exemple. Il peut tre plus dlicat, mais plus utile, de comprendre lexemple suivant :
utilisateur$ ls -l |tee liste1 |sort -k 5 -n > liste2

liste1 contient le contenu "normal" du rpertoire renvoy et tri par ls. La copie de cette sortie est redirige vers sort qui la trie selon la taille du chier (cinquime colonne) et lenregistre dans le chier liste2.

Rsum de la syntaxe
Redirections dentres et de sorties commande > fichier commande < fichier commande 2> fichier commande >& fichier commande &> fichier commande >> fichier commande1 | commande 2 commande | tee fichier envoie la sortie standard de commande dans fichier lit lentre standard de commande dans fichier enregistre les messages derreur de commande dans fichier redirige la sortie standard et les messages derreur redirige la sortie standard et les messages derreur ajoute la sortie standard un fichier existant envoie la sortie standard de commande1 lentre standard de commande2 affiche la sortie et enregistre le rsultat dansfichier

19.5 Lancer des commandes


Le plus courant pour lancer une commande est de saisir son nom. Vous pouvez indiquer de nombreux caractres spciaux, valus par bash avant quil ne lance effectivement la commande. Ainsi, vous pouvez lancer des commandes en arrire-plan, dsigner plusieurs noms de chiers similaires grce des caractres joker (par exemple *.tex), passer le rsultat dune commande dans la liste de paramtres dune autre commande, etc. Le caractre spcial le plus courant et le plus important est &. Lorsquil se trouve la n dune ligne de commande, bash dmarre le programme concern en tche de fond. Cest particulirement pertinent pour les programmes dont lexcution est longue, car vous

Tches de fond

292

LINUX

pouvez immdiatement reprendre la main sur le terminal, sans attendre que la commande soit termine.
utilisateur$ find / -name *sh > resultat & [1] 334

La commande ci-dessus cherche, dans tout le systme de chiers, des chiers dont le nom se termine par les lettres "sh". La liste est enregistre dans le chier resultat. Comme la commande est lance en tche de fond, le terminal rend la main immdiatement. [1] 334 signie que la tche de fond a pour identiant de processus 334. Ce numro peut tre utile pour terminer prmaturment la tche avec kill. Le numro entre crochets indique le numro du processus en tche de fond dans linterprteur de commandes courant, ce qui na gnralement aucun intrt.
Si vous avez oubli le caractre &, vous pouvez passer le programme en tche de fond rtrospectivement. Pour cela, interrompez le programme avec Ctrl+Z et relancez-le avec bg.
Lancer plusieurs commandes

On peut aussi ajouter une commande aprs le caractre &. Dans ce cas, la premire tche est lance en arrire-plan et la seconde au premier plan. Lexemple suivant rutilise la commande find dcrite ci-dessus, mais on afche cette fois-ci le contenu du rpertoire courant avec ls :
utilsateur$ find / -name *sh > resultat & ls

Si on saisit un point-virgule la place de &, les commandes sont lances lune aprs lautre en avant-plan :
utilisateur$ ls; date

La commande afche le contenu du rpertoire, puis la date. Pour rediriger lensemble de ces informations dans un chier, les deux commandes doivent tre regroupes entre parenthses. Elles sont alors lances dans un mme shell (sans parenthses, un nouveau shell est lanc pour chaque commande).
utilisateur$ (ls; date) > fichier

fichier contient maintenant la liste de chiers fournie par ls, ainsi que la date fournie par date. Les oprateurs && et || servent lancer des commandes en fonction du rsultat dune autre commande.
utilisateur$ commande1 && commande2

Cette ligne lance dabord commande1. Si cette commande fonctionne sans problme (pas derreur, code de retour 0), commande2 est lance. linverse, dans la ligne qui suit, commande2 nest lance que si commande1 renvoie une erreur (code de retour diffrent de 0) :
utilisateur$ commande1 || commande2

BASH

293
La commande if prsente des possibilits supplmentaires pour construire et enchaner des commandes. Elle nest cependant rellement utile qu ceux qui sintressent la programmation shell.
Lancer des commandes commande1; commande 2 commande1 && commande2 commande1 || commande 2 commande & commande1 & commande2 (commande1; commande2) lance les deux commandes lune aprs lautre lance commande2 si commande1 sest bien droule lance commande2 si commande1 ne sest pas bien droule lance commande en tche de fond lance commande1 en tche de fond et commande2 en avant-plan lance les deux commandes dans le mme shell

19.6 Mcanismes de substitution


Le concept de mcanismes de substitution semble abstrait et compliqu. Lide de base est que les commandes construites avec des caractres spciaux sont remplaces par leurs rsultats. Dans le cas le plus simple, cela signie que, dans ls *.tex, *.tex est remplac par la liste des chiers correspondants. Alors, la commande ls ne reoit pas *.tex, mais une liste de noms de chiers rels. Cette section vise rsumer les principaux mcanismes dinterprtation de la ligne de commande : les caractres jokers, les accolades pour rsumer des chanes de caractres, les crochets pour effectuer des calculs, les apostrophes inverses pour la substitution de commandes, etc.
Construction de noms de fichiers avec les caractres joker

bash est responsable du fait que, lorsque vous saisissez rm *~, tous les chiers qui se terminent par ~ sont supprims. Linterprteur de commandes parcourt le rpertoire courant et remplace *~ par les noms de chiers correspondants. Les caractres jokers autoriss sont ? (exactement un caractre) et * (nombre arbitraire de caractres arbitraires, y compris 0). La chane de caractres [a, b, e-h]* reprsente des noms de chiers qui commencent par les lettres a, b, e, f, g ou h. Si llment entre crochets est prx de ^ ou de !, tous les caractres lexception de ceux qui se trouvent entre crochets sont considrs. ~ est galement utilis comme raccourci pour le rpertoire personnel. Les fonctions des caractres spciaux se testent facilement avec echo. La premire commande afche tous les chiers et dossiers du rpertoire racine. La seconde restreint la sortie aux chiers 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

294

LINUX

Comme la construction des noms de chiers nest pas gre par les diffrents programmes, mais par bash, les rsultats peuvent tre diffrents de ce quoi vous vous attendez. Par exemple, ls * afche une liste sans n de chiers, mme lorsque le dossier courant nen contient que quelques-uns. La commande ls reoit une liste de chiers et de rpertoires. Mais lorsquon lui passe un nom de rpertoire, elle afche le contenu complet de ce rpertoire ! Si vous dsirez afcher une liste de tous les chiers et rpertoires correspondant un motif, vous devez passer loption -d. Celle-ci cache le contenu des rpertoires passs en paramtre. Pour savoir comment bash fonctionne en interne, lancez la commande set -x. bash afche alors, avant de lancer toute commande, comment la commande est value, ventuellement avec les options et tous les noms de chiers tendus.
Construction de chanes avec {}

bash compose toutes les combinaisons de chanes possibles avec les chanes quil reoit entre accolades. partie{1,2a,2b} est donc tendu en partie1 partie2a partie2b. Lextension daccolades conomise de la saisie lorsquon accde des chiers qui ont des noms similaires. Par rapport des caractres joker comme ? ou *, les accolades ont lavantage de construire galement des noms de chiers qui nexistent 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 dexpressions arithmtiques avec []

Normalement, bash ne sait pas faire de calculs. Par exemple, lorsquon saisit 2+3, il faut les entourer de crochets et les prxer dun caractre $ pour que linterprteur effectue le calcul :
utilisateur$ echo $[2+3] 5

Dans les crochets, la plupart des oprateurs de C sont autoriss : +, -, *, et / pour les quatre oprations de base, % pour le modulo, ==, !=, <, <=, >, >= pour la comparaison, << et >> pour les dcalages de bits, !, && et || pour les NON, ET et OU logiques, etc. Ces oprateurs sont valables pour des entiers sur 32 bits (nombres entre +/- 2147483648). La commande expr fournit une autre mthode pour effectuer des calculs. Il sagit dune commande Linux indpendante de bash.
Substitution de commandes

La substitution de commandes permet de passer le rsultat dune commande lintrieur dune autre commande. Cette commande doit tre entoure de deux caractres `. $(commande) est une syntaxe alternative. Celle-ci est prfrable pour viter la confusion avec dautres caractres (par exemple " ou ) et entrelacer des commandes.

BASH

295
La commande considre est donc remplace par son rsultat. Cette substitution permet dentrelacer lappel de plusieurs commandes, o chaque commande renvoie son rsultat dautres commandes. Les deux commandes identiques suivantes claircissent ce mcanisme trs puissant :
utilisateur$ ls -lgo `find /usr/share -name *README*` utilisateur$ ls -lgo $(find /usr/share -name *README*)

find /usr/share -name *README* est la premire commande excute. Son rsultat est une liste de tous les chiers qui contiennent la chane README dans leur nom dans le rpertoire /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 rsultat suivant :


-rw-r--r-- 1 -rw-r--r-- 1 ... 301 15. Feb 12:30 /usr/share/a2ps/ppd/README 1029 15. Feb 12:30 /usr/share/a2ps/README

Il ne serait pas possible dobtenir ce rsultat avec un simple tube. ls nattend pas une entre sur lentre standard et ignore donc linformation renvoye par find sur un tube. La commande find /usr/share -name *README* |ls -l ne fonctionne pas ; elle afche le rsultat du rpertoire courant. Il existe cependant une autre solution qui ne fait pas appel la substitution de commandes. xargs transforme les donnes de lentre standard en paramtres de la commande donne en argument de xargs. Le rsultat prcdent sobtient donc galement avec :
utilisateur$ find /usr/share -name *README* | xargs ls -l

xargs prsente galement un avantage du fait quil existe une limite de taille des donnes traiter. xargs appelle en effet la commande plusieurs fois et passe les arguments de lentre standard en plusieurs tapes. La substitution est limite par la taille maximale dune ligne de commande (gnralement plusieurs milliers de signes). Les noms de chiers contenant des espaces posent problmes. Pour les viter, passez find loption -print0 et xargs loption --null.
Caractres joker dans des chanes de caractres

Comme presque tous les caractres, lexception des chiffres et des lettres, ont une signication particulire pour bash, il semble impossible de les utiliser dans des chanes de caractres ou des noms de chiers. Ce problme est rsolu par deux mthodes. Le caractre spcial peut tre prx dune barre oblique inverse (\) ou la chane complte peut tre encadre par des apostrophes ou des guillemets. La commande suivante permet ainsi de supprimer les chiers nomms ab* et $cd :
utilisateur$ rm ab* $cd

Notez la diffrence entre les caractres ` et !

296

LINUX

Les guillemets ont un comportement diffrent des apostrophes. Ils sont moins restrictifs et interprtent certains caractres spciaux, en loccurrence $, \ et `. Une chane de caractres entoure de guillemets verra ainsi les variables du shell qui sy trouvent tendues :
utilisateur$ echo "Ceci est le chemin daccs : $PATH" Ceci est le chemin daccs : /usr/local/bin::/usr/bin:/bin:/usr/bin/X11:/usr/ games

Si, la place des guillemets, on utilise des apostrophes, la chane safche sans transformation.
Mcanismes de substitution
Caractres joker pour les noms de fichiers

? * [abc] [a-f] [!abc] [^abc] ~ . ..

exactement un caractre arbitraire nombre arbitraire (y compris 0) de caractres arbitraires (mais pas de fichiers .*) un des caractres entre crochets un des caractres de lintervalle aucun des caractres entre crochets aucun des caractres entre crochets rpertoire personnel rpertoire courant rpertoire parent

Construction de chanes

ab{1,2,3} a{1..4}
Arithmtique

renvoie ab1 ab2 ab3 renvoie a1 a2 a3 a4

$[3*4]

calcul, renvoie 12

Substitution de commandes

`commande` $(commande)

remplace la commande par son rsultat remplace la commande par son rsultat

Analyse de chanes de caractres

commande "chane" commande chane

empche lanalyse des caractres spciaux empche lanalyse de caractres spciaux (plus restrictif)

BASH

297
19.7 Variables
Les fonctionnalits de bash et de nombreux autres programmes sont dnies par des variables du shell. Elles sont comparables celles dautres langages de programmation, ceci prs quelles ne peuvent contenir que des chanes de caractres. On assigne une variable avec loprateur dassignation =. Pour afcher le contenu dune variable, le plus simple est dutiliser echo, suivi du nom de la variable prx dun $ :
utilisateur$ var=abc utilisateur$ echo $var abc

Lorsque la valeur de la variable contient des espaces ou dautres caractres spciaux, il faut lentourer dapostrophes ou de guillemets :
utilisateur$ var=abc efg

On peut concatner les variables les unes aux autres en les assignant. Lexemple suivant dnit une variable a contenant son ancienne valeur, suivie de la chane xxx et de son ancienne valeur :
utilisateur$ a=3 utilisateur$ a=$axxx$a utilisateur$ echo $a 3xxx3

Lexemple suivant tend la variable PATH (qui contient tous les rpertoires parcourus pour chercher un programme excuter) du sous-rpertoire bin du rpertoire personnel. Cela permet de lancer les commandes qui sy 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 rsultat dune commande doit tre enregistr dans une commande, utilisez la substitution de commandes, comme $(commande). Lexemple suivant enregistre le rpertoire courant dans la variable a :
utilisateur$ a=$(pwd) utilisateur$ echo $a /home/michael

298

LINUX

Le contenu de la variable nest enregistr que dans linterprteur courant. Les variables sont perdues lorsque vous quittez le shell (au plus tard lorsque vous teignez lordinateur). Pour enregistrer certaines variables de manire permanente, ajoutez-les /etc/profile ou ~/.profile. Ces deux chiers sont excuts au dmarrage de bash. Pour enregistrer le contenu dune variable dans un chier, le plus simple est de rediriger la sortie de echo :
utilisateur$ echo $var > fichier

Variables locales et globales (variables denvironnement)


Les concepts de variables locales et globales sont emprunts au monde de la programmation. Une variable shell est considre comme globale lorsquelle est relaye lors du dmarrage dune commande ou dun programme. Les variables globales sont aussi souvent appeles variables denvironnement. Les variables simplement assignes sont des variables locales. Pour dnir des variables globales, il faut appeler export ou declare -x. Il existe de nombreuses commandes pour grer les variables et certaines fonctionnalits sont fournies par plusieurs commandes. Les exemples suivants essaient dexpliquer le comportement de ces commandes : a=3 declare a=3 declare -x a=3 export export a export a=3 let a=3 printenv set unset a raccourci pour let, a est une variable locale donne la variable locale a la valeur 3 (comme let) donne la variable globale a la valeur 3 (comme export) afche toutes les variables globales fait de a une variable globale donne la variable globale a la valeur 3 donne la variable locale a la valeur 3 afche, comme export, toutes les variables globales afche toutes les variables (locales et globales) supprime la variable a

Si vous dfinissez des variables pour quelles modifient le comportement dautres commandes, ces variables doivent toujours tre globales. Pour quelles exploitent le mcanisme de substitution du shell et pour dclarer des variables globales, vous devez assigner les variables avec x=... et les dfinir comme globales avec export x. Lattribution des variables nest valable que pour un seul shell. Si vous travaillez dans plusieurs terminaux ou fentres de terminal, les shells qui sy trouvent sont indpendants les uns des autres. Modifier la valeur dune variable dans un shell na aucune influence sur sa valeur dans un autre shell. Vous pouvez dfinir les variables frquemment utilises dans votre fichier .profile, excut chaque dmarrage de linterprteur de commandes.

BASH

299
Variables importantes
En principe, vous pouvez dnir autant de variables arbitraires que vous le souhaitez. Il est cependant prfrable dviter les noms de variables prdnis, souvent utiliss par bash et dautres commandes. Modier ces variables sans contrle peut entraner des problmes dans le traitement de commandes, dans la recherche de chiers, etc. Cette liste dcrit les principales variables de linterprteur de commandes dans lordre alphabtique. BASH contient le nom de chier de bash. glob_dot_filenames dnit lextension des caractres Joker : si la variable existe (et a une valeur arbitraire), * renvoie galement les chiers qui commencent par un .. unset glob_dot_filenames supprime ce comportement. HOME contient le chemin du rpertoire personnel, par exemple /home/michael. LOGNAME contient lidentiant de connexion (nom de lutilisateur). HOSTNAME contient le nom dhte (nom de lordinateur). MAIL contient le chemin du rpertoire o sont enregistrs les courriers lectroniques lorsquils arrivent. MANPATH contient le chemin de tous les rpertoires o se trouvent des pages de manuel. OLDPATH contient le chemin du dernier rpertoire actif. PATH contient une liste de rpertoires. Lorsque bash doit lancer une commande, il la cherche dans tous les rpertoires numrs dans PATH. Les rpertoires sont spars par des caractres deux-points. PATH est dni dans /etc/profile. Pour ajouter un rpertoire PATH, modiez /etc/ profile avec une ligne de cette forme :
PATH=$PATH:/opt/kde/bin

Pour des raisons de scurit (viter lexcution de programmes malicieux dans le rpertoire courant), PATH ne contient gnralement pas le rpertoire courant. Si vous souhaitez lancer des programmes du rpertoire courant sans avoir taper ./, ajoutez . la variable PATH. PROMPT_COMMAND peut contenir une commande lance avant chaque afchage de linvite de commande par bash. PS1 contient une chane de caractres, dont le contenu safche chaque dbut de ligne (invite de commande). Cette chane comprend, entre autres, les combinaisons suivantes : \t indique lheure, \d la date, \w le rpertoire courant, \W la dernire partie du rpertoire courant (soit X11 pour /usr/bin/X11), \u le nom dutilisateur, \h le nom de lordinateur et \$ le caractre dinvite ($ pour un utilisateur standard, # pour root) PS2 contient la chane de caractres afche aux lignes suivant la premire dans les commandes en plusieurs lignes (par exemple, lorsque la premire ligne se termine par \). Sa valeur classique est ">". PWD contient le nom du rpertoire courant.

300

LINUX

En plus des variables dcrites dans cette section, il existe dinnombrables variables denvironnement, dnies par le shell ou les diffrents programmes. Vous pouvez en afcher la liste avec printenv | sort.

19.8 Programmation shell


Les programmes shell sont de simples chiers texte qui contiennent quelques commandes Linux ou bash. Quand on dmarre un tel programme, les commandes qui sy trouvent sont excutes dans lordre. Les programmes shell peuvent avoir des paramtres, quils sont capables dvaluer. Comme lexcution de quelques commandes ne permet pas vraiment dexcuter des tches complexes, bash dispose dexpressions conditionnelles et de boucles. Il sagit donc dun vrai langage de programmation pour lequel vous navez besoin ni dun compilateur, ni de connaissances en C. Les applications typiques des programmes shell sont lautomatisation de suites de commandes frquentes pour installer des programmes, administrer le systme, grer des sauvegardes, congurer et lancer des programmes, etc. Nous nentrerons pas ici dans les dtails du langage. Les lecteurs intresss peuvent se reporter lexcellente traduction du Advanced Bash Scripting Guide (Guide avanc dcriture des scripts Bash), disponible ladresse http://abs.traduc.org/.

PARTIE 4 CONFIGURATION ET ADMINISTRATION DU SYSTME

20

Configuration de base
Ce chapitre est le premier dune longue srie traitant des diffrents aspects de la conguration de Linux. Aprs avoir donn quelques informations introductives, nous y prsenterons les fonctions lmentaires suivantes : la conguration des consoles en mode texte ; le paramtrage de la date et de lheure ; ladministration des utilisateurs ; linternationalisation, les jeux de caractres, Unicode ; une synthse rapide sur la conguration du matriel ; les rouages internes de la gestion du matriel ; les chiers de journalisation. Les chapitres suivants sintresseront la gestion des paquetages, ladministration des bibliothques systme, la conguration du systme graphique (X), ladministration du systme de chiers, lamorage (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 aperu de ce que ralisent, en coulisses, les programmes de conguration de Linux. Vous devez comprendre tous les tenants et aboutissants de la conguration. Par consquent, vous trouverez dans ce chapitre une grande quantit dinformations de fond sur le fonctionnement du systme dans son ensemble. Malheureusement, les diffrentes distributions se distinguent par de nombreux dtails de conguration. Dans cet ouvrage, je tente de dcrire les points communs au plus grand nombre de systmes Linux possible. Il se peut toutefois que votre distribution prsente justement quelques dtails lgrement diffrents de ce que vous aurez lu ici. Dans de tels cas, pensez jeter un coup dil la documentation. Mme si cela peut vous sembler dun certain inconfort, je reste nanmoins persuad quil est prfrable de proposer des solutions gnriques plutt quun livre sur ladministration de Red Hat, un autre pour ladministration de SUSE, etc. Cest dautant plus vrai que les distributions individuelles changent dune version lautre. Vous devrez galement apprendre, dune faon ou dune autre, consulter et comprendre par vous-mme les pages de manuels, daide en ligne, qui sont bien souvent disponibles seulement en anglais. Ce livre ne

302

LINUX

Mais o est ladministrateur systme ?

Outils de configuration

Administration rseau

remplacera pas le manuel dorigine ou des tutoriels pas pas, mais il vise vous donner des connaissances fondamentales. Jusqu prsent, celui que lon nomme "ladministrateur systme" tait peut-tre une personne anonyme qui vous venait en aide occasionnellement (souvent contrainte et surcharge de travail). Si vous ne travaillez pas dans une grande entreprise, ladministrateur nest bien souvent quun concept abstrait issu douvrages ayant pour devise "si quelque chose ne fonctionne plus, consultez votre administrateur systme". Si vous avez install vous-mme Linux sur votre ordinateur, ce point de vue change lgrement : vous tes vous-mme ladministrateur systme ! Toutefois, que cette ide ne vous effraie pas : ladministrateur systme est tout simplement la personne responsable de la conguration de lordinateur. Tant quil sagit de fonctions de base de Linux, ce peut tre nimporte qui ! Il est toutefois naturel, de temps autre, de devoir jeter un il dans cet ouvrage ou toute autre source dinformations sur Linux. La plupart des distributions proposent des programmes de conguration dun grand confort que vous pouvez utiliser aussi bien pendant quaprs linstallation : drakconf sous Mandriva, divers programmes dnomms system-xxx sous Red Hat, YaST sous SUSE, etc. En cas de problme de conguration, vous devez toujours faire appel en premier lieu ces outils ! Ils sont optimiss spcialement pour votre distribution et vous pargnent bien du travail et des difcults. Outre ces outils de conguration spciques une distribution, il existe galement des programmes indpendants de toute distribution. Leur reprsentant le plus populaire lheure actuelle est Webmin. Il prsente en outre un avantage de taille : intgralement utilisable via une interface web, il est donc idal pour ladministration distante. http://www.webmin.com/ Le programme eBox, relativement rcent, parat trs prometteur. Il est spcialement conu pour ladministration des fonctionnalits rseau des systmes Debian : http://www.ebox-platform.com/ Ces outils posent toutefois un problme : la socit ou lorganisation produisant votre distribution ne sont pas directement responsables de leur maintenance. Les outils de conguration indpendants dune distribution sont donc toujours lgrement en retard par rapport aux nouvelles versions dune distribution et aux modications que celle-ci introduit. Jusqu prsent, je suis parti du principe que vous souhaitiez congurer un ordinateur individuel (lordinateur local). Si votre travail dadministrateur consiste grer des centaines dordinateurs sous Linux, les outils de conguration prsents ci-dessus sont pour le moins inefcaces. leur place, vous aurez besoin de programmes permettant de congurer de manire centralise un groupe dordinateurs la fois. Vous pourrez ainsi envisager sereinement dinstaller sur tous les postes une nouvelle version dOpenOfce, dactiver de nouvelles rgles de pare-feu sur tous les ordinateurs directement connects Internet, etc. La liste ci-aprs prsente un certain nombre de ces outils. Ils se diffrencient non seulement au niveau des fonctionnalits proposes, mais galement et de faon assez marque par leur cot. Il nest pas possible dentrer ici plus en dtail sur ces produits, pour des questions de place mais aussi parce que je nai aucune exprience 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

CONFIGURATION DE BASE

303

automatique pour Debian, open-source) ; http://m23.sourceforge.net/ (administration et conguration de Debian/Ubuntu, open-source) ; https://www.gosa-project.org/ (gestion des comptes utilisateurs pour Debian, open-source).
Fichiers de configuration

Les outils de conguration sophistiqus et dots dinterfaces graphiques agrables nont pour but que de vous pargner la modication manuelle des chiers de conguration. Pour le dbutant sous Linux, cest sans aucun doute trs pratique. Mais il existe bon nombre de raisons de se familiariser avec ces chiers de conguration et, ainsi, avec les rouages internes de Linux : Les chiers de conguration peuvent tre modis avec nimporte quel diteur de texte, mme lorsque vous travaillez avec une console en mode texte ou par ssh travers un rseau. De nombreux programmes de conguration ne sont en revanche disponibles quen mode graphique et uniquement pour une utilisation locale. Ds que vous avez compris comment congurer une fonctionnalit particulire de Linux, vous pouvez appliquer cette connaissance quasiment nimporte quelle autre distribution Linux. Un outil de conguration graphique est, en revanche, spcique une distribution. Ce nest qu travers la modication directe des chiers de conguration que vous pouvez contrler tous les aspects dune fonctionnalit systme. Les outils de conguration se limitent bien souvent un nombre restreint de dtails (les plus importants). Les chiers de conguration peuvent tre copis dun ordinateur lautre. Cela peut vous faire gagner un temps certain lorsque vous devez changer de distribution, procder une installation complte de Linux sur un nouvel ordinateur, etc. Plus vous comprenez comment sont construits les chiers de conguration et quelles possibilits de contrle ils offrent, mieux vous comprenez Linux : votre ordinateur vous apparatra alors dautant moins comme une "bote noire" dont les mcanismes internes vous restent inaccessibles. La plupart des chiers de conguration de Linux se trouvent dans le rpertoire /etc. Vous trouverez par consquent dans lindex, la lettre E, une rfrence de tous les chiers de conguration prsents dans cet ouvrage. Pour les programmes plus gros, les divers chiers de conguration devant collaborer sont souvent rpartis dans des sous-rpertoires individuels. Par exemple, tous les chiers de configuration du systme graphique X se trouvent dans le rpertoire /etc/X11. Certains sousrpertoires ont une signication particulire : /etc/default chiers spciques la distribution (Debian, Ubuntu) /etc/init.d ou /etc/rc.d systme InitV (amorage du systme, voir Chapitre 24) /etc/sysconfig chiers spciques la distribution (Fedora, Red Hat, SUSE) Il est par ailleurs judicieux de conserver une copie de sauvegarde de lensemble du rpertoire /etc. De cette manire, vous pourrez vrier rapidement, aprs chaque modication, ltat dorigine dun chier de conguration donn.
root# mkdir /etc-backup root# cp -a /etc/* /etc-backup

304

LINUX

Lorsque vous modifiez les fichiers de configuration, veillez bien ce que la dernire ligne se termine elle aussi par un retour chariot (touche Entre). De nombreux programmes Linux ne traitent pas correctement les fichiers lorsque le caractre de fin de ligne manque sur la dernire ligne. Ceci vaut naturellement aussi lorsque vous travaillez avec plusieurs diteurs de texte.
Rechercher des fichiers de configuration

Si vous ne parvenez pas trouver un chier de conguration donn dans votre distribution, plusieurs causes sont envisageables : il est possible que les paquetages logiciels sous-jacents ne soient tout simplement pas installs, ou les chiers de conguration se trouvent, sur votre distribution, dans un autre rpertoire 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 rpertoire /etc et dans lensemble de ses sous-rpertoires tous les chiers dont le contenu (pas le nom du chier) prsente le mot abcde :
root# cd /etc root# find -type f -exec grep -q abcde {} \; -print

Durant la rdaction de cet ouvrage, jai rgulirement recherch dans la distribution x o se paramtrait la fonctionnalit y ou lemplacement du programme z. Jaurais donc pu tre amen taper la commande cidessus des centaines de fois mais, pour gagner du temps et mpargner cette rptition fastidieuse, jai rdig le miniscript grepall pour prendre en charge cette tche. Reportez-vous au Chapitre 19 pour les dtails relatifs ce script ainsi quune introduction la programmation Bash.
Activer une nouvelle configuration

Dans un certain nombre de programmes, les modications apportes au chier de conguration ne prennent effet que lorsque vous relancez le programme ou que vous lui indiquez explicitement de recharger le chier de conguration. Pour ce faire, vous aurez gnralement besoin de lune ou lautre des deux commandes suivantes (pour les dtails, reportezvous au Chapitre 14) :
root# /etc/init.d/nom_de_la_fonction restart root# /etc/init.d/nom_de_la_fonction reload

Contrairement Windows, il nest pratiquement jamais ncessaire de redmarrer lordinateur. Les exceptions cette rgle ne concernent que des modications au noyau Linux ainsi que certains paramtrages matriels spciques, qui ne peuvent tre appliqus quau dmarrage du systme.

20.2 Configuration de la console en mode texte


Sur les distributions rcentes, Linux lance directement lenvironnement graphique et, bien souvent, les dbutants ignorent quil existe galement une console en mode texte. Il se peut toutefois que la conguration du systme X soit dfectueuse ou que, pour une raison

CONFIGURATION DE BASE

305

quelconque, aucun environnement graphique ne soit disponible. Sur de nombreuses installations de serveurs, cest mme un choix dlibr que de renoncer lenvironnement graphique. Pour grer de tels cas, vous devrez vous tre familiaris avec la console texte (reportez-vous galement au Chapitre 12). Le systme responsable de paramtres lmentaires (du type conguration du clavier ou police de caractres) dpend de la distribution : il sagira soit de loutil trs rpandu kbd, soit du systme plus moderne console. Les sections suivantes commencent par dcrire ces deux systmes avant de sintresser plus en dtail tous les autres paramtres (couleurs, prise en charge de la souris) qui en dpendent.

Configuration de kbd (clavier, police)


loadkeys

Loutil centralis pour la gestion du clavier est le programme loadkeys. Celui-ci charge une table de correspondance entre le code clavier et le caractre associ. Pour la langue franaise, linstallation devrait avoir mis en place la correspondance fr-latin1.map. Une variante en est fr-latin1-nodeadkeys.map. La diffrence entre ces deux variantes rside dans la gestion des caractres spciaux `, , ~ et ^ : dans la variante standard, ces caractres peuvent servir gnrer des caractres trangers. Lorsque lon souhaite saisir le caractre lui-mme, on doit ensuite appuyer sur la barre despace. Avec la variante nodeadkeys, le caractre apparat immdiatement. loadkeys charge la table de correspondance clavier souhaite partir du rpertoire /lib/ kbd/keymaps (sur Fedora, Red Hat) ou /usr/share/keymaps (sur SUSE). Les tables compresses sont automatiquement dcompresses.
root# loadkeys fr-latin1

lamorage du systme, la table de correspondance clavier est charge par le script InitV /etc/rc.d/rc.sysinit (Fedora, Red Hat) ou /etc/init.d/kbd (SUSE). Cest le chier de conguration /etc/sysconfig/keyboard qui, dans ce cadre, dtermine quelle table est effectivement charge.
setfont

setfont charge une police de caractres pour la console. Les chiers sous-jacents associs se trouvent dans le rpertoire /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 caractres ISO-Latin-A, dans laquelle chaque caractre est reprsent sur 16 pixels de hauteur. iso01.08 et iso01.14 en sont des variantes prsentant respectivement chaque caractre sur 8 et 14 pixels de hauteur. Les caractres sont donc plus petits et vous pouvez ainsi afcher davantage de lignes la fois.
root# setfont iso01.14

La mise en place de la police lamorage du systme dpend, 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 chier de conguration /etc/sysconfig/i18n. Par dfaut, cest la police latarcyrheb-sun16 qui est utilise : outre les caractres latins essentiels, elle comprend galement des caractres cyrilliques et hbraques.

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 dfaut, cest la police lat9w-16.psfu qui est utilise : outre les caractres Latin-1, elle comprend galement le symbole Euro. Fondamentalement, les consoles sont compatibles avec lUnicode. Nanmoins, le nombre maximal de caractres possibles pour les polices de la console est trs restreint (256 ou 512). Par consquent, les polices de console ne peuvent utiliser quune petite partie de lensemble des caractres 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 paramtres contrlant la disposition du clavier sont communs avec lenvironnement graphique X (voir aussi Chapitre 22). Sur Ubuntu 7.04, le chier de conguration /etc/default/console-setup commande aussi bien les paramtres 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 chier est analys par le script /bin/setupcon, lui-mme excut deux fois lors de lamorage du systme : 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 intressant de noter comment sont traites les quatre variables du clavier : elles sont analyses par le script ckbcomp. Celui-ci gnre, partir des chiers de clavier X, une table de correspondance pour le clavier qui est alors active comme avec kbd par le biais de la commande loadkeys.

Configuration de gpm (souris)


Lutilisation de la souris nest envisageable quavec le systme X Window. Le programme gpm permet toutefois une utilisation restreinte de la souris dans le cadre de la console texte : en particulier, vous pouvez slectionner du texte avec le bouton gauche de la souris et linsrer lemplacement du curseur laide du bouton central ou du bouton droit. Attention, toutefois, au fait que, dans la plupart des programmes de consoles, vous ne pouvez pas modier lemplacement du curseur laide de la souris !

CONFIGURATION DE BASE

307

gpm est, en rgle gnrale, lanc par le processus InitV (voir Chapitre 24). La conguration seffectue, suivant la distribution, dans /etc/gmp.conf ou dans /etc/sysconfig/mouse : le plus souvent, il nest pas ncessaire de modier les paramtres par dfaut. Pour lancer manuellement le programme, excutez la commande suivante :
root# /etc/init.d/gpm start

20.3 Date et heure


La plupart des distributions reposent sur des outils de conguration pour le paramtrage de lheure et de la date systme : Gnome KDE Debian, Ubuntu SUSE time-admin Centre de conguration > module Administration du systme > Date et heure outils Gnome ou KDE module YaST Systme > Fuseau horaire

Red Hat / Fedora system-config-date Il est toutefois intressant de savoir comment lheure est gre en interne : lexistence dun rseau informatique international impose dutiliser une heure de rfrence unie au niveau mondial, savoir lheure GMT. Cet acronyme, correspondant Greenwich Mean Time (heure du mridien de Greenwich), est la mesure de toute chose (a minima, du temps) sur tous les ordinateurs Unix. On trouve galement lacronyme UTC (Universal Time, Coordinated ou temps universel coordonn) pour reprsenter cette heure de rfrence. Lorsque vous enregistrez un chier, cest donc non pas lheure locale courante qui est utilise, mais une heure calcule partir de ce standard international. Si vous afchez les dtails des chiers laide de la commande ls -l, lheure denregistrement est convertie pour correspondre au fuseau horaire local de lordinateur. Ceci permet donc didentier, parmi deux chiers, lequel est le plus rcent : un chier enregistr 18 heures lheure locale de Munich ou un chier enregistr 12 heures 30 lheure locale de New York.
Paramtrage de lheure lamorage de lordinateur

Cest durant la premire phase du processus InitV (voir Chapitre 24) quest congure lheure. Pour cela, la commande hwclock lit lheure dans la puce CMOS de votre ordinateur. Celle-ci peut contenir soit lheure locale, soit lheure GMT. Si vous utilisez galement votre ordinateur sous Windows, il est plus pratique que le CMOS fournisse lheure locale. Sous Red Hat, Fedora et SUSE, le chier de conguration /etc/sysconfig/clock contient des informations dterminant si lheure CMOS est lheure locale ou lheure GMT, ainsi que le fuseau horaire dans lequel se trouve votre ordinateur. Sous Debian et Ubuntu, cest le chier /etc/default/rcS qui indique si lheure CMOS est lheure locale ou lheure GMT. /etc/timezone indique quant lui le fuseau horaire.

308

LINUX

Plutt que rcuprer lheure CMOS de votre ordinateur, notoirement imprcise, vous pouvez galement obtenir cette information de serveurs de temps beaucoup plus fiables hbergs soit sur Internet, soit sur votre rseau local. Ceci prsuppose toutefois lexistence dune connexion permanente Internet ou au serveur de temps local : cest la solution idale pour un ordinateur qui reste allum en permanence.
Paramtrage du fuseau horaire

Pour que les commandes du type ls, ou le gestionnaire de chiers de KDE ou Gnome, puissent reconvertir lheure GMT vers lheure locale de lordinateur et lafcher, chaque programme doit savoir dans quel fuseau horaire se trouve lordinateur. La plupart des programmes Linux utilisent pour cela des fonctions de la bibliothque glibc. Cette bibliothque consulte le chier /etc/localtime. Ce chier constitue en fait une copie dun chier de fuseau horaire hberg dans le rpertoire /usr/share/zoneinfo. /etc/localtime peut galement tre un lien symbolique vers un chier de fuseau horaire.

20.4 Utilisateurs et groupes, mots de passe


La gestion des utilisateurs consiste en premier lieu dnir quels utilisateurs ont accs quels chiers, quels utilisateurs ont le droit dexcuter quels programmes, quels utilisateurs ont accs quels composants matriels (chiers de priphriques), etc. Grer les utilisateurs et les droits daccs est toujours obligatoire lorsque plusieurs personnes doivent travailler sur un mme ordinateur. Des rgles sont indispensables pour dterminer dans quelles conditions un utilisateur peut lire ou modier les donnes dun autre utilisateur. Sous Linux, on gre cette n une liste des utilisateurs. De surcrot, chaque utilisateur se voit affect au moins un groupe (mais, potentiellement, il peut tre affect plusieurs). Les groupes servent autoriser laccs de plusieurs utilisateurs des chiers et programmes communs.
Pour que la gestion des droits daccs fonctionne, avec chaque fichier sont enregistrs un propritaire, un groupe propritaire ainsi que des droits daccs sous forme binaire. Du fait que les programmes sont galement des fichiers et que laccs aux composants matriels seffectue galement souvent par le biais des fichiers de priphriques, ce mcanisme est trs gnrique. Dans ce chapitre, nous naborderons que la gestion des utilisateurs et des groupes. Les consquences de ce systme pour la gestion des fichiers et lexcution des processus sont abordes respectivement aux Chapitres 13 et 14. Vous trouverez donc dans ces chapitres des informations de base sur lutilisation des droits daccs binaires enregistrs avec chaque fichier. Vous y trouverez aussi des astuces pour excuter des programmes systme sans pour autant possder les droits de lutilisateur root.
Programmes de configuration

En principe, vous pouvez en tant quutilisateur root assurer la gestion manuelle de vos utilisateurs si vous modiez directement les chiers dcrits dans cette section. Il est toutefois plus confortable et plus sr de faire appel pour cela aux outils de gestion des utilisateurs et des groupes fournis avec la plupart des distributions :

CONFIGURATION DE BASE

309

Gnome KDE

users-admin (outil de gnome-system-tools) Centre de conguration > module Administration du systme > Administration des utilisateurs Debian, Ubuntu outils Gnome ou KDE Red Hat, Fedora system-config-users SUSE module YaST Scurit > Utilisateurs et Scurit > Groupes

Commandes

Si vous prfrez renoncer au confort des interfaces graphiques ou que vous souhaitiez automatiser la gestion des utilisateurs par le biais de scripts, vous pouvez faire appel aux commandes prsentes dans le tableau suivant. Vous trouverez lAnnexe B une brve rfrence des options principales. Lexemple suivant montre comment crer 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 ladministration des utilisateurs et des groupes adduser addgroup chgrp chmod chown chsh delgroup deluser groupadd groupdel groupmod groups id newgrp newusers passwd useradd userdel usermod cre un nouvel utilisateur (Debian) cre un nouveau groupe (Debian) modifie le groupe propritaire dun fichier modifie les droits daccs binaires un fichier modifie le propritaire dun fichier modifie le shell par dfaut dun utilisateur supprime un groupe (Debian) supprime un utilisateur (Debian) cre un nouveau groupe supprime un groupe modifie les proprits dun groupe affiche les groupes auxquels appartient lutilisateur courant affiche les numros didentifiant de lutilisateur et du groupe courants modifie le groupe auquel appartient lutilisateur cre plusieurs nouveaux utilisateurs la fois modifie le mot de passe dun utilisateur cre un nouvel utilisateur supprime un utilisateur modifie les proprits dun utilisateur

Vous remarquerez trs certainement que, pour plusieurs tches, il existe deux commandes diffrentes (par exemple adduser et useradd). adduser, addgroup, deluser et delgroup sont de

310

LINUX

fait des extensions spciques Debian pour les commandes dorigine useradd, groupadd, etc. Sous Debian, Ubuntu et les autres distributions bases sur Debian, ces commandes obissent aux rgles dnies dans /etc/adduser.conf et /etc/deluser.conf. Red Hat et Fedora se chargent quant elles dajouter la confusion ambiante : les commandes adduser, addgroup, deluser et delgroup y sont galement disponibles. Toutefois, il sagit non pas des mmes commandes que propose Debian, mais de liens vers useradd, groupadd, userdel et groupdel. De ce fait, adduser possde sous Fedora la mme syntaxe que useradd (mais une syntaxe diffrente de celle dadduser sous Debian !). SUSE/Novell suit galement son propre chemin : les commandes adduser/-group et deluser/-group ny sont pas disponibles. Au lieu de groupadd/-del/-mod et useradd/-del/-mod, on y utilise une implmentation 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 faon gnrale, sur tout systme de type Unix, il existe trois types dutilisateurs : Le superutilisateur (administrateur systme ou root). Cet utilisateur possde habituellement le nom root. Tout utilisateur sidentiant en tant que root (naturellement, il faut pour cela connatre le mot de passe root) possde des droits illimits : il ou elle peut lire, modier, supprimer tout chier, excuter tout programme, etc. Des droits aussi tendus ne sont ncessaires que pour ladministration du systme. Pour des raisons de scurit, aucune autre tche ne doit tre ralise en tant que root ! Les utilisateurs usuels. Ces utilisateurs se servent de Linux pour travailler. Ils possdent un accs illimit leurs propres chiers mais des droits daccs restreints sur le reste du systme. Comme identiant de connexion, on utilise autant que possible le nom de lutilisateur (par exemple isabelle ou dupont). Les utilisateurs systme pour les dmons et services. Enn, il existe toute une srie dutilisateurs prvus non pas pour le travail interactif sur lordinateur mais pour lexcution de programmes spciques. Par exemple, le serveur web Apache est excut non pas par lutilisateur root mais par un utilisateur propre dnomm suivant les distributions apache, wwwrun, httpd ou tout autre nom similaire. Ce fonctionnement permet de tendre vers une scurit maximale du systme. La liste de tous les utilisateurs est enregistre dans le chier /etc/passwd. On y trouve, pour chaque utilisateur, les identiants de connexion, le nom complet, les numros UID et GID, le rpertoire personnel, ainsi que le shell par dfaut. Le format suivant est utilis :
NomDUtilisateur:MotDePasse:UID:GID:Nom:RepertoirePersonnel:Shell

/etc/passwd

Les lignes qui suivent illustrent quelques dnitions dutilisateurs dans le chier /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

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 chier, passwd, laisse penser que les mots de passe y sont galement enregistrs. Ce fut le cas par le pass mais, entre-temps, cest devenu plutt rare. Au lieu des mots de passe, le chier /etc/passwd ne contient que le caractre x. Les informations de mot de passe (naturellement chiffres) sont enregistres dans le chier distinct /etc/shadow.
Nom dutilisateur

Le nom dutilisateur ne devrait tre constitu que de lettres minuscules (chiffres et lettres US-ASCII) et ne doit pas dpasser huit caractres. Il est certes envisageable, en principe, dutiliser des caractres non ASCII et de dpasser huit caractres, mais cela peut engendrer des problmes avec certains programmes. Pour le nom complet, enregistr sparment, ces restrictions nont pas cours. Le numro UID (User Identication ou identiant utilisateur) sert lidentication interne de lutilisateur. Le numro est enregistr comme information supplmentaire avec chaque chier de manire expliciter le propritaire du chier. Il existe des rgles pour lattribution des numros UID : root possde toujours lidentiant UID=0. Pour les services et dmons, les numros 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 rgles dnissant un domaine de valeurs compris entre 1 et 499). Pour les utilisateurs usuels, les numros didentiants sont par consquent attribus partir de 1 000 (500 sur Red Hat et Fedora). Le numro GID (Group Identication ou identiant de groupe) indique quel groupe appartient lutilisateur. La section suivante donnera plus dinformations sur les groupes.

UID et GID

Rpertoire personnel

Le rpertoire personnel est lemplacement dans lequel un utilisateur peut enregistrer ses donnes personnelles. Pour les utilisateurs usuels, ce rpertoire correspond habituellement au chemin /home/nom_d_utilisateur. Dans le rpertoire personnel sont galement enregistrs les paramtres de conguration personnels de lutilisateur pour divers programmes. Par exemple, le chier .emacs contient les paramtres de conguration pour lditeur Emacs. Du fait que le nom de tels chiers de conguration commence la plupart du temps par un point, ils sont invisibles. Vous pouvez toutefois les afcher avec la commande ls -la. Pour que les nouveaux utilisateurs disposent immdiatement dune conguration standard sense pour les programmes essentiels, on doit, la cration dun nouvel utilisateur, copier tous les chiers du rpertoire /etc/skel vers le nouveau rpertoire personnel. De nombreux programmes de cration dutilisateurs grent automatiquement cette tape. Le contenu de /etc/skel reprsente donc la conguration par dfaut pour tout nouvel utilisateur.

Shell

Le shell est un interprteur grce auquel lutilisateur peut, une fois connect, excuter des commandes. Du fait que Linux propose diffrents interprteurs, vous devez en choisir un et indiquer votre choix dans le chier passwd. Sous Linux, il sagit en gnral du shell bash, que nous dcrivons en dtail au Chapitre 19. On doit indiquer dans le chier passwd le chemin complet du shell, par exemple /bin/bash.

312

LINUX

Administration des groupes


Le but des groupes consiste autoriser pour plusieurs utilisateurs laccs conjoint certains chiers. Pour ce faire, chaque utilisateur se voit affect un groupe primaire (initial group). On peut galement laffecter autant de groupes supplmentaires (supplementary groups) que souhait : il est alors membre de plusieurs groupes. Le chier /etc/group contient la liste de tous les groupes. Les lignes qui suivent donnent un exemple de dnitions de groupes dans /etc/group. Le format appliqu est le suivant :
NomDeGroupe:MotDePasse:GID:ListeDUtilisateurs

Les lignes qui suivent proviennent du chier group dun systme 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 seffectue de deux manires : Le groupe primaire dun utilisateur est enregistr dans /etc/passwd. Pour lutilisateur kofler, le groupe primaire est intitul kofler (GID 1000 dans le chier /etc/passwd). Lappartenance dautres groupes est dtermine en renseignant le nom de lutilisateur dans la dernire colonne du chier /etc/group. Ainsi, kofler appartient galement aux groupes adm, admin et dialout. Ceci permet lutilisateur kofler de procder, sur un systme Ubuntu, des tches dadministration ainsi que dtablir une connexion Internet. Au niveau des numros de GID, 0 est rserv lutilisateur root tandis que les valeurs de 1 99 sont prvues pour les services systme. Le GID 100 est normalement rserv au groupe users. Les GID suprieurs 100 peuvent tre utiliss pour vos besoins propres.
Correspondance entre utilisateur et groupe primaire

Pour la correspondance entre les utilisateurs et leurs groupes primaires, il existe deux stratgies : La mthode classique, utilise depuis de nombreuses annes sur Unix/Linux, consiste affecter tous les utilisateurs normaux au groupe primaire users. SUSE adopte cette stratgie trs simple. Les distributions base Debian, ainsi que Red Hat et Fedora, reposent sur un autre principe : 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 rle. Cette mthode prsente certains avantages dans des conditions particulires, par exemple lorsque plusieurs membres dun groupe secondaire produisent des chiers communs.

CONFIGURATION DE BASE

313

On ne peut toutefois en tirer parti que dans le cadre dune administration systme approprie. Sur de nombreuses installations Linux o les groupes dutilisateurs nont, bien souvent, aucun chier en commun ou qui utilisent pour la gestion de projets communs des outils spcialiss du type CVS (Concurrent Versioning System), le choix du groupe primaire entre le groupe commun users ou les noms dutilisateurs individuels na aucune importance.

Mots de passe
Les mots de passe Linux ne peuvent tre constitus que de caractres ASCII (aucun caractre tranger nest autoris !). Pour des raisons de scurit, les mots de passe doivent contenir aussi bien des majuscules que des minuscules, ainsi quau moins un chiffre. Les mots de passe sont enregistrs sous Linux sous une forme chiffre qui ne permet aucune reconstruction du mot de passe. Lalgorithme DES utilis pour cela ne prend en compte que huit caractres, ce qui rend pour le moment inutile le choix de mots de passe plus longs. Ce point pourra toutefois faire lobjet de changements lavenir. Le code chiffr ne permet au systme que de tester si le mot de passe que vous avez saisi correspond celui enregistr. Tapez man 3 crypt pour obtenir plus de dtails sur la procdure de chiffrement. Les programmes permettant de "craquer" (cest--dire de dchiffrer) des mots de passe empruntent le chemin inverse : ils testent tout simplement des millions de mots de passe alatoires (la plupart du temps des mots du dictionnaire combins avec des chiffres) pour voir si le mot de passe chiffr correspond. Du fait que beaucoup dutilisateurs utilisent des mots de passe trop simples et que les ordinateurs deviennent de plus en plus rapides, cette mthode permet frquemment daboutir au rsultat souhait, ce qui est peu rassurant. Pour compliquer quelque peu la vie des pirates cherchant accder votre systme, dans les systmes Linux rcents le mot de passe chiffr est enregistr non plus directement dans /etc/passwd mais dans le chier spar /etc/shadow. Lavantage est que ce chier peut tre lu seulement par root (/etc/passwd et /etc/group doivent tre lisibles pour tous les utilisateurs du systme car ils contiennent des informations dadministration de base ; avec /etc/ shadow, il suft en revanche que le chier soit accessible seulement aux programmes de vrication et de modication des mots de passe ; un pirate tentant daccder votre ordinateur doit donc tout dabord obtenir un accs root votre machine avant de pouvoir lire les mots de passe chiffrs). Pour le chier shadow, le format suivant est utilis :
NomDUtilisateur:MotDePasseChiffre:d1:d2:d3:d4:d5:d6:reserved

Les lignes qui suivent vous prsentent un extrait dun chier 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:::

314
d1 d6

LINUX

Les champs d1 d6 peuvent contenir des indications de temps facultatives : d1 indique la date de dernire modication du mot de passe (en nombre de jours couls depuis le 01/01/1970). d2 indique dans combien de jours le mot de passe doit tre modi. d3 indique dans combien de jours au plus tard le mot de passe doit tre modi avant de perdre sa validit (la commande man 5 shadow vous donnera plus de dtails sur les champs). d4 indique combien de jours avant lexpiration du mot de passe lutilisateur doit tre averti. d5 indique au bout de combien de jours un compte dsactiv et sans mot de passe valide doit tre dnitivement dsactiv. d6 indique depuis quand un compte a t dsactiv. Normalement, des valeurs par dfaut sont utilises pour d1 d3, de manire que le mot de passe puisse tre chang tout moment et reste valide indniment. Toutefois, on peut aussi utiliser d1 d6 pour restreindre la validit des mots de passe, dsactiver automatiquement des comptes utilisateurs en fonction du temps, etc. (par exemple pour grer les comptes dtudiants dans une cole ou une universit). Pour la plupart des utilisateurs systme (par exemple, ci-dessus, daemon, bin, sys, etc.), on enregistre au lieu du mot de passe une simple toile ou un point dexclamation. Cela signie quil ny a pas de mot de passe valide et quune ouverture de session est donc impossible. Les comptes systme restent toutefois utilisables : les programmes lancs initialement avec des droits root peuvent ensuite changer de propritaire et poursuivre leur excution en tant que bin, daemon, lp, etc. Cest dailleurs prcisment le cas pour la plupart des processus systme : lamorage, ils sont lancs automatiquement par lutilisateur root et changent immdiatement dutilisateur propritaire pour des raisons de scurit.

/etc/login.defs

Un grand nombre de paramtres relatifs ladministration interne des mots de passe et noms dutilisateurs se trouvent dans le chier /etc/login.defs. Vous pouvez y congurer le dlai dattente aprs la saisie didentiants errons, le nombre de tentatives de connexion autorises, si passwd doit accepter des mots de passe visiblement trop faibles, quels droits daccs binaires doivent tre utiliss pour les rpertoires personnels leur cration, etc. Pour changer votre propre mot de passe, excutez la commande passwd. Celle-ci commence par vous demander votre ancien mot de passe, puis vous tes invit deux reprises saisir un nouveau mot de passe. La saisie nest pas afche lcran. Le nouveau mot de passe nest 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 caractres. Ils peuvent tre constitus de majuscules, minuscules, de chiffres ainsi que de signes de ponctuation. passwd ralise quelques 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 surcrot, il ne doit pas sagir de mots (ou de variations bases sur un mot) que lon puisse trouver dans le dictionnaire.

Modifier un mot de passe

CONFIGURATION DE BASE

315

Si les utilisateurs normaux ne peuvent modier que leur propre mot de passe, lutilisateur root peut galement modier 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 systme avec une disquette dinstallation ou de sauvetage, ou encore avec un CD amorable (par exemple Knoppix). Crez alors un nouveau rpertoire avec mkdir dans la RAM de votre systme dinstallation ou de sauvetage, et montez-y la partition sur laquelle se trouve votre systme Linux :
root# mount -t ext3 /dev/xxx /rep

Vous avez maintenant accs au fichier /rep/etc/shadow et vous pouvez y effacer le mot de passe root (tous les caractres compris entre le premier et le second caractre "deux-points") ou le remplacer par le mot de passe chiffr (mais connu) dun autre utilisateur. Louverture dune session root sans mot de passe nest possible, de par les paramtres de scurit de /etc/pam.d/common-auth , que dans une console texte. Vous pouvez alors y saisir un nouveau mot de passe root au prochain amorage laide de la commande passwd, de manire pouvoir ensuite travailler en tant quutilisateur root dans votre environnement graphique X. Si vous souhaitez empcher dautres utilisateurs de modifier le mot de passe root suivant la mthode expose ici, vous devez dsactiver dans le BIOS de votre ordinateur tout mdium damorage autre que le premier disque dur (de manire quil ne soit pas possible damorcer depuis une disquette, un CD ou une cl USB) et scuriser le BIOS par un mot de passe. Mot de passe que vous ne pouvez toutefois vous permettre doublier... Une autre possibilit consiste chiffrer entirement la partition systme.
faillog

Suivant le paramtrage gurant dans /etc/login.defs, toutes les tentatives douverture de session ayant chou sont enregistres dans le chier journal /var/log/faillog. Contrairement de nombreux autres chiers journaux, cest ici un format binaire qui est utilis. La commande faillog -u nom vous permet de vrier, pour un utilisateur donn, combien de tentatives de connexion ont chou depuis sa dernire connexion russie. faillog -u nom -m max vous permet de xer un nombre maximal dchecs autoriss pour les ouvertures de session dun utilisateur donn. Si ce nombre est dpass, lidentiant correspondant est bloqu jusqu tre nouveau autoris par lutilisateur root par le biais de la commande faillog -u nom -r (le nombre dchecs enregistrs est alors rinitialis). Vous pouvez galement tablir le nombre maximal dchecs autoriss pour lensemble des utilisateurs par le biais de faillog -m max. Toutefois, vous devriez toujours excuter aussi faillog -u root -m 0 de manire exclure lutilisateur root de cette mesure. Dans le cas contraire, vous pourriez ne plus tre en mesure de vous connecter en tant quadministrateur si un autre utilisateur a tent sans succs de se connecter en tant que root et a atteint la limite xe.

316
Mots de passe de groupe

LINUX

Comme pour les utilisateurs, il est possible de dnir des mots de passe pour les groupes (avec la commande gpasswd). Toutefois, sil est fortement conseill dimposer des mots de passe aux utilisateurs, cela devient superu au niveau des groupes. Leur inconvnient principal est que tous les membres dun mme groupe doivent connatre le mot de passe en question, ce qui alourdit encore ladministration. Si toutefois des mots de passe de groupe doivent tre mis en place, ils sont habituellement enregistrs dans le chier /etc/gshadow. Un utilisateur doit alors fournir le mot de passe de groupe lorsquil cherche changer de groupe actif par le biais de la commande newgrp. Le groupe actif dtermine quel groupe appartiennent de nouveaux chiers leur cration.

Collaboration entre fichiers de configuration


Les paragraphes suivants synthtisent la manire dont les trois chiers passwd, groups et shadow collaborent. Pour chaque utilisateur, le chier passwd contient une ligne construite sur le modle suivant :
# une ligne de /etc/passwd kofler:x:1000:1000:Michael Kofler:/home/kofler:/bin/bash

kofler est le nom dutilisateur. 1000 est lidentiant dutilisateur (UID), 1000, lidentiant de groupe primaire (GID), Michael Kofler, le nom complet (utilis pour les e-mails, les groupes de news, etc.), /home/kofler, le rpertoire personnel de lutilisateur, et /bin/bash, son shell. Lidentiant UID doit tre unique car il joue un rle important dans la gestion des droits daccs aux chiers. La ligne correspondante dans /etc/shadow, contenant les informations de mot de passe, possde lallure suivante :
# une ligne de /etc/shadow kofler:$1$mT.09dkO$O69fx51MRPXVcNrgp05GK1:13479:0:99999:7:::

La chane de caractres qui suit kofler: est le mot de passe chiffr. Si lon renonce cette chane de caractres, le nom dutilisateur peut tre utilis sans mot de passe. Si, au lieu de la chane de caractres, gure un symbole * ou !, louverture de session est verrouille pour cet utilisateur. Le numro didentiant GID gurant dans /etc/passwd doit correspondre un groupe gurant dans /etc/group. Pour de nombreuses distributions, chaque utilisateur usuel se voit affect un groupe portant le mme intitul que le nom dutilisateur :
# une ligne de /etc/group kofler:x:1000:

PAM (Pluggable Authentication Modules ou modules dauthentification enfichables)


La quasi-totalit des distributions Linux utilise les outils PAM (Pluggable Authentication Modules) pour lauthentication effective. PAM teste si les informations de connexion fournies (nom dutilisateur et mot de passe) sont valides. Lintrt de PAM rside dans le fait que toutes les commandes critiques pour la scurit du systme (login, passwd, le gestionnaire de session X xdm) nont pas forcment besoin de leur code propre pour la vrication des

CONFIGURATION DE BASE

317

mots de passe. Au lieu de cela, toutes ces commandes peuvent utiliser PAM. La page suivante propose une documentation complte sur PAM, mme si elle date un peu : http://www.kernel.org/pub/linux/libs/pam/ PAM offre le choix entre plusieurs modules dauthentication. Le module standard gre lauthentication en analysant le chier /etc/shadow que nous avons dj mentionn (gestion des utilisateurs locaux). Il existe par ailleurs divers modules PAM pour lauthentication des utilisateurs sur un serveur centralis (voir la section suivante).
Configuration

La conguration gnrale de PAM intervient par le biais de plusieurs chiers hbergs dans le rpertoire /etc/security. Toutefois, pour la plupart des distributions, ces chiers ne contiennent que des lignes commentes. De surcrot, pour chaque programme accdant PAM il existe un chier de conguration propre dans le rpertoire /etc/pam.d. Cest par exemple ainsi que fonctionnent les programmes passwd, gdm, kdm, ssd, su et sudo.

Modification des droits daccs travers PAM

Sur certaines distributions (par exemple Red Hat, Fedora jusqu sa version 7), PAM est congur de faon que les droits daccs sur divers chiers de priphriques soient modis automatiquement louverture de session. Cest utile pour permettre aux utilisateurs usuels daccder des CD et DVD, de communiquer avec leur appareil photo numrique ou avec leur PDA, etc. (Au lieu de cela, SUSE repose sur le dmon resmgrd. Debian et Ubuntu affectent les chiers de priphriques des groupes, de manire que le contrle daccs seffectue par le biais de lappartenance un groupe.) Ce sont les chiers /etc/security/console.perms.d qui grent la modication automatique des droits daccs la premire ouverture de session. Les modications restent en place jusqu dconnexion de lutilisateur. la connexion suivante, de nouvelles modications sont mises en place. Cest ainsi que lon vite les conits lorsque plusieurs utilisateurs sont connects simultanment au systme. Le premier stre connect garde la main jusqu sa dconnexion. La structure des chiers console.perms suit lexemple fourni par les lignes suivantes. Vous obtiendrez des informations dtailles 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 dexcution pour certaines commandes

Une particularit supplmentaire de Red Hat et Fedora est que les utilisateurs usuels sidentiant dans la console texte peuvent faire appel de nombreux outils de conguration sans pour autant devoir fournir le mot de passe root. Cela concerne par exemple les commandes halt, poweroff, reboot et setup. Divers chiers de conguration situs dans le rpertoire /etc/security/console.apps grent ces droits supplmentaires.

318

LINUX

Administration des utilisateurs sur un rseau


Si vous avez mis en rseau plusieurs ordinateurs sous Linux et que vous souhaitiez autoriser laccs concurrent aux chiers par NFS, vous devez veiller ce que les numros didentiant UID et GID se correspondent dun ordinateur lautre. Cette contrainte seule se rvle dj particulirement complexe mettre en uvre sur plusieurs ordinateurs. Si vous souhaitez de surcrot que chaque utilisateur puisse se connecter depuis nimporte quel poste (naturellement toujours avec les mmes identiants de connexion, nom dutilisateur et mot de passe), vous devez alors synchroniser en permanence tous les chiers /etc/passwd. La charge de travail dadministration est alors incroyablement leve. Pour viter cette surcharge, une solution consiste mettre en place un serveur centralis pour la gestion des utilisateurs. Pour lauthentication des clients, on a le choix entre un grand nombre de protocoles alternatifs, quil ne nous est toutefois pas possible de dcrire en dtail 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 congurer le systme ds linstallation pour que les modules de gestion des utilisateurs contactent un serveur dauthentication appropri. Vous pouvez naturellement activer aussi cette fonctionnalit ultrieurement : Debian, Ubuntu Red Hat, Fedora SUSE installation et conguration de libpam-smbpass, libpam-ldap, etc. system-config-authentification module YaST Scurit > Utilisateurs > commande Options pour experts > Authentication

20.5 Configuration des langues, internationalisation, Unicode


Dans cette section, nous aborderons deux sujets : La localisation et la conguration des langues. Il sagit de la conguration dterminant dans quelle langue sont afchs les messages derreur, les menus, les botes de dialogue, laide, etc. La mise en forme des dates, heures, units montaires est galement adapte en consquence. Le jeu de caractres. Le jeu de caractres dtermine le codage utilis pour enregistrer les lettres. Le seul jeu de caractres pour lequel il rgne une uniformit gnrale est le code ASCII sur 7 bits. La majorit des jeux de caractres utilise par consquent le code 65 pour la lettre A. Il y a toutefois des dcalages pour les caractres de langues trangres : par consquent, la lettre se verra reprsente par un code diffrent suivant le jeu de caractres en vigueur. Il existe mme des jeux de caractres dans lesquels la lettre

CONFIGURATION DE BASE

319

nintervient absolument pas, de manire librer de la place pour dautres caractres (par exemple pour des lettres cyrilliques ou hbraques). Dans le contexte de la localisation des programmes, vous vous heurterez frquemment aux abrviations particulires i18n et l10n : il sagit de raccourcis pour dsigner dune part linternationalisation (internationalization : i plus 18 lettres plus n), dautre part la localisation (localization). Ces abrviations peuvent tre utilises comme mots-cls si vous souhaitez rechercher davantage dinformations sur Internet. La conguration du clavier est dcrite pour la console texte dans ce chapitre, pour lenvironnement graphique X au Chapitre 22. Vous y trouverez aussi des astuces pour la gestion des caractres trangers avec X.

Bases sur les jeux de caractres


Un jeu de caractres (character set) dcrit la correspondance entre des codes numriques et des lettres. Des jeux de caractres connus sont, par exemple, lASCII (7 bits), lISO-Latin-n (8 bits) et lUnicode (16 bits). ASCII. Le jeu de caractres ASCII dcrit 127 signes, parmi lesquels les lettres a z, A Z, les chiffres 0 9 ainsi que divers signes de ponctuation. ISO-8859, caractres latins. Les jeux de caractres ISO comprennent, outre les 127 caractres ASCII, jusqu 128 caractres particuliers supplmentaires pour diffrentes rgions linguistiques. La liste suivante donne la liste des principaux jeux de caractres ISO : ISO-8859-1 = Latin-1 : Europe de lOuest ISO-8859-2 = Latin-2 : Europe centrale et de lEst ISO-8859-3 = Latin-3 : Europe mridionale 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 na t utilis que dans un document de travail et ne constitue donc pas un nom ofciel. Il est toutefois frquemment utilis dans la pratique. Sous Windows, les jeux de caractres sont dsigns par le terme "code pages". Le code page 1252 prsente de grandes similitudes avec le Latin-1, sans toutefois lui tre absolument identique. Unicode. Pour limiter la confusion cause par la multiplicit de jeux de caractres sur 8 bits, le jeu de caractres Unicode sur 16 bits (alias ISO-10646) a t introduit. Il permet de coder non seulement tous les caractres spciaux europens, mais galement la majorit des caractres asiatiques. Comme 16 bits sont prvus pour chaque symbole, ce jeu de caractres permet de grer plus de 65 000 caractres.

320

LINUX

Unicode rgit uniquement laffectation dun code un caractre et non la faon dont ce code est enregistr. La solution la plus simple, au premier abord, consisterait donc reprsenter chaque caractre par deux octets (cest--dire 16 bits). Ce format est dsign par lappellation UTF-16 (UTF reprsentant Unicode Transfer Format). Elle prsente toutefois deux inconvnients : tout dabord, elle double lespace de stockage requis, et ce mme lorsque lon cherche enregistrer majoritairement des caractres europens ou mme uniquement ASCII-US. De plus, loctet de code 0 intervient diffrents emplacements dans les chanes de caractres Unicode : de nombreux programmes C, serveurs de courrier lectronique, etc. considrent toutefois que loctet 0 marque la n dune chane de caractres. Par consquent, il existe aussi dautres manires de reprsenter des textes Unicode. Lalternative de loin la plus populaire UTF-16 est UTF-8. Dans ce cadre, tous les caractres ASCII-US (7 bits) sont reprsents comme prcdemment par un unique octet dont le bit de poids fort est 0. Tous les autres caractres Unicode sont reprsents par des chanes doctets comprenant de 2 4 octets. Linconvnient le plus visible de ce format est labsence de rapport entre le nombre doctets et le nombre de caractres du document. Du fait de sa compatibilit croissante avec des programmes existants et dune srie dautres avantages, UTF-8 sest tabli comme le standard sous Unix/Linux (tandis que, sous Microsoft Windows, cest frquemment lUTF-16 qui est employ). Lorsque lon parle dUnicode dans le contexte de Linux, il sagit implicitement dans la plupart des cas dUnicode au format UTF-8. Par dfaut, le jeu de caractres Unicode UTF-8 est maintenant appliqu dans la quasitotalit des distributions.
Effets du jeu de caractres

Le jeu de caractres actif dtermine comment sont cods les caractres dans les chiers de texte mais aussi dans les noms de chiers. Les systmes de chiers de Linux sadaptent chaque jeu de caractres. Comme nom de chier, toute chane de caractres se terminant par loctet 0 est valide. Suivant le jeu de caractres en vigueur, la srie et le nombre doctets utiliss pour reprsenter un nom de chier comme .txt pourront toutefois prendre des valeurs trs diffrentes ! Si le jeu de caractres courant est Latin-1, ce nom peut tre reprsent par 7 octets (plus un huitime pour loctet 0). Si, en revanche, cest le jeu de caractres Unicode/UTF-8 qui est utilis, le nom du chier comptera 10 octets (car il faut 2 octets pour reprsenter chacun des caractres , et ). Il existe toute une srie de programmes qui fonctionnent indpendamment du jeu de caractres ou grent indiffremment diffrents jeux de caractres : par exemple, les logiciels de courrier lectronique ou les navigateurs Internet peuvent tous prsenter des e-mails et pages web rdigs dans un jeu de caractres autre que le jeu courant. Pour que cela fonctionne, chaque e-mail ou chaque page web contient des informations sur le jeu de caractres utilis. Les outils de traitement de texte modernes enregistrent en gnral le texte dans un jeu de caractres Unicode ou utilisent un code qui leur est propre. Mme les diteurs de texte du type Emacs ou XEmacs sont en mesure de travailler sur des chiers de texte dans diffrents encodages et de les enregistrer.

Problmes lis aux jeux de caractres

Les problmes surviennent le plus frquemment lorsque des utilisateurs changent des chiers (de texte, entre autres) alors qumetteur et destinataire utilisent des jeux de caractres diffrents. Supposons, par exemple, quun utilisateur dune distribution Linux sous

CONFIGURATION DE BASE

321

Unicode compose laide dun diteur un chier de texte comprenant des caractres trangers. Imaginons maintenant quun utilisateur dune autre distribution Linux, au jeu de caractres Latin, doive travailler sur ce chier : il constatera, sa grande surprise, que tous les caractres non ASCII safcheront de faon errone. Il est toutefois simple, dans la plupart des cas, de rsoudre de tels problmes laide des commandes recode ou iconv (voir Chapitre 12). Les noms des chiers ne sont pas pargns par de tels problmes : si vous enregistrez un chier sous le nom .txt dans une distribution U (Unicode), que vous redmarriez votre ordinateur sous la distribution L (Latin) et que vous observiez le chier, vous verrez apparatre une chane de caractres qui ressemble davantage .txt. La meilleure solution consiste ici modier le jeu de caractres utilis dans lune ou lautre des distributions, de manire quun mme jeu de caractres soit utilis dans les deux cas. Si vous envisagez de modier le jeu de caractres pour les noms dun grand nombre de chiers existants, la commande convmv dcrite au Chapitre 12 pourra vous tre utile. La police ne doit pas tre confondue avec le jeu de caractres. Elle dtermine la faon dont un caractre donn est afch lcran. 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 caractres ne sont pas indpendants les uns des autres : avant de pouvoir afcher correctement lcran un caractre de code 234, le jeu de caractres utilis pour encoder ce symbole doit tre clair. Cest le jeu de caractres qui rpond en effet la question de savoir quel caractre se cache derrire le code 234. Plusieurs des anciennes polices X taient limites 256 caractres et donc disponibles dans plusieurs versions distinctes pour diffrents jeux de caractres. Les polices rcentes (TrueType, PostScript) peuvent en revanche contenir davantage de caractres et sont en rgle gnrale compatibles avec plusieurs jeux de caractres.

Police (font)

Configurer la localisation et le jeu de caractres


Outils de configuration

Suivant les distributions et lenvironnement de bureau, vous pouvez utiliser diffrents outils pour la conguration de la langue. Au niveau du jeu de caractres, cest quasiment toujours lUTF-8 qui est utilis. Seules quelques distributions permettent encore dutiliser un jeu de caractres sur 8 bits. Sur toutes les distributions, vous devrez quitter X et vous connecter nouveau pour que les nouveaux paramtres de localisation soient pris en compte aprs une modication. Gnome se fonde sur la conguration linguistique du systme et ne propose par consquent aucun outil de conguration propre. KDE Red Hat, Fedora SUSE Ubuntu Centre de conguration > module Rgionalisation et accessibilit > Pays & Langue system-config-language module YaST Systme > Langue gnome-language-selector

322
Fichiers de configuration

LINUX

Variables LC et LANG

Naturellement, lemplacement o sont enregistrs les paramtres de conguration varie lui 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 paramtres spciques lutilisateur, stocks dans ~/.i18n. En interne, la localisation et le jeu de caractres sont contrls par des variables denvironnement telles que LC_CTYPE et LANG. La bibliothque glibc, utilise dans la quasi-totalit des programmes Linux, se charge danalyser ces variables. La localisation peut seffectuer par catgorie. Pour une conguration correcte, vous pourriez par exemple choisir dutiliser le format franais pour les dates et heures, tout en afchant les messages derreur en anglais. Le tableau suivant prsente les variables essentielles.
Variables principales pour la localisation LANG LC_CTYPE LC_COLLATE LC_MESSAGES LC_NUMERIC LC_TIME LC_MONETARY LC_PAPER LC_ALL dtermine la valeur par dfaut pour toutes les variables LC dont la valeur na pas t tablie dtermine le jeu de caractres dtermine lordre de classement dtermine la prsentation des informations, messages derreur, etc. dtermine la prsentation des nombres dtermine la prsentation de la date et de lheure dtermine la prsentation des units montaires dtermine le format de papier crase tous les paramtres LC individuels

Naturellement, tous les programmes ne tiennent pas compte de lintgralit des catgories (bon nombre dentre eux ignorent mme totalement les variables LC_). Lorsque des catgories individuelles ne sont pas paramtres, les programmes utilisent comme valeur par dfaut C ou POSIX. Cela signie que les messages derreur apparaissent en anglais, les dates et heures au format amricain, etc. Plutt que congurer individuellement chacune des variables exposes ici, vous pouvez tout simplement paramtrer la variable LANG. De cette manire, toutes les variables non dnies utilisent la valeur par dfaut dnie par LANG. Seule la variable LC_COLLATE conserve la valeur par dfaut POSIX. Pour la plupart des distributions, la conguration globale de la langue seffectue par la variable LANG. Plus puissante encore que LANG est la variable LC_ALL. Lorsque cette variable est congure, sa valeur sapplique toutes les catgories, indpendamment des valeurs attribues par ailleurs aux variables LC_ ou LANG. Pour la plupart des programmes, les messages derreur et autres textes utiliss se trouvent dans un rpertoire ddi pour chaque langue : /usr/share/locale/langue/LC_MESSAGES. KDE utilise en rgle gnrale ses propres rpertoires, par exemple /opt/kde3/share/

CONFIGURATION DE BASE

323

locale/langue/LC_MESSAGES/. Vous trouverez davantage dinformations de fond sur le sujet de la localisation et de linternationalisation (Locales and Internationalization) dans la page de manuel de la commande locale ainsi que dans le manuel de la bibliothque glibc : http://www.gnu.org/software/libc/manual/
Tester la localisation

La manire la plus simple de vrier les paramtres courants de localisation consiste utiliser la commande locale. Cette commande analyse galement les variables LANG et LC_ALL et renvoie lensemble des paramtres rsultants. Lexemple suivant montre la conguration 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 vrier la localisation, vous pouvez galement excuter de faon errone une commande de votre choix. Le message derreur afch devrait apparatre dans la langue congure. Lorsque LANG est congur la valeur fr_FR, le message derreur de la commande mount devrait apparatre comme lexemple suivant. Sur certaines distributions, toutefois, seuls les messages derreur en langue anglaise sont installs et ce test peut ne pas fonctionner.
utilisateur$ mount /xy mount: ne peut reprer /xy dans /etc/fstab ou /etc/mtab
env

Si vous souhaitez pouvoir excuter une commande particulire avec un paramtrage de langue diffrent du systme, sans pour autant devoir modier la conguration dans son ensemble, lidal consiste utiliser la commande env. Cette commande reoit une srie de variables et les valeurs associes, ainsi que la commande excuter en tenant compte des variables de localisation fournies :
utilisateur$ env LANG=C mount /xy mount: cant find /xy in /etc/fstab or /etc/mtab

Si, malgr la modication apporte au paramtre LANG, le message derreur apparat toujours dans la langue du systme plutt quen anglais, essayez aussi de changer le paramtrage de la variable LANGUAGE :
utilisateur$ env LANG=C LANGUAGE=C mount /xy mount: cant find /xy in /etc/fstab or /etc/mtab
Valeurs possibles pour les paramtres LC/LANG

Vous pouvez obtenir une liste de toutes les valeurs possibles pour les variables de localisation laide de la commande locale -a. La notation habituellement utilise est de la forme x_y, o x reprsente la langue sur deux caractres et y reprsente le pays sur deux caractres. Pour la langue franaise utilise en France, vous devrez donc utiliser fr_FR (fr_BE pour la Belgique, fr_CA pour le Canada, etc.). Pour le paramtrage en langue anglaise standard, on peut utiliser labrviation C.

324

LINUX

Paquetages de localisation

Paramtrage du jeu de caractres

Les versions rcentes de la glibc comprennent galement le paramtrage exprim par franais ou french. Le chier /usr/share/locale/locale.alias contient un tableau dcrivant toutes les abrviations autorises pour les noms de localisation complets. Lafchage correct des menus, botes de dialogue, messages derreur, textes daide, etc. dans la langue souhaite dpend de fait de linstallation des chiers de localisation ncessaires. Pour des raisons despace disque, ce nest souvent le cas que pour une ou deux langues (par exemple anglais et franais). Si vous souhaitez galement utiliser votre distribution en langue allemande, vous devrez installer les paquetages supplmentaires correspondants pour Gnome, KDE, OpenOfce, Firefox, etc. Pour SUSE et Ubuntu, les outils de conguration prsents dans lintroduction de ce chapitre pourront vous aider ; pour les autres distributions, toutefois, vous devrez procder manuellement. Tous les programmes Linux ne sont pas ncessairement traduits dans chaque langue. Il y a des lacunes particulirement importantes au niveau de la documentation en ligne (pages de manuel, manuels, systmes daide). Lorsque les chiers de localisation correspondants font dfaut, Linux prsente la version anglophone du texte. Le jeu de caractres est paramtr conjointement la localisation. Le jeu de caractres suit le code du pays dont il est spar par un point, par exemple fr_FR.ISO-8859-1 ou fr_FR.utf8.

20.6 Rfrence relative au matriel


Dans ce livre, il ny a pas de chapitre ddi au matriel. La conguration correcte des composants matriels est plutt traite aux chapitres correspondant leur usage : ainsi, si vous rencontrez des problmes avec une carte rseau, le Chapitre 26, qui traite de la conguration rseau, est le bon endroit pour dmarrer. Cette section possde donc deux objectifs : tout dabord, la rfrence systmatique doit faciliter la recherche dinformations supplmentaires sur des composants matriels particuliers. Ensuite, vous trouverez ici des informations concises sur certains sujets relatifs au matriel que nous ne pouvons dvelopper ailleurs dans ce livre. Naturellement, il existe une plthore de composants matriels que nous ne pouvons, pour diverses raisons, dcrire dans cet ouvrage. La raison principale en est que je nai pas les possibilits, en matire de tests, dont dispose par exemple un magazine informatique.
Renseignez-vous avant lachat sur la compatibilit de votre nouveau matriel avec Linux ! Il ne suffit pas pour cela de consulter le vendeur : celui-ci nen a en gnral aucune ide, voire il vous fournira des informations errones. Jetez un coup dil aux pages habituelles ddies au matriel avec Linux (voir Chapitre 1). Effectuez des recherches sur http://groups.google.com avec comme mots-cls linux modle_matriel. Vous trouverez invariablement des messages dans lesquels des utilisateurs de Linux demandent comment configurer le composant XY sous Linux. cet gard, les magazines orients Linux sont galement et par nature une meilleure source dinformations que les livres, qui ne sont actualiss de manire exhaustive que tous les deux ou trois ans.
Fichiers de priphriques

On accde la plupart des composants matriels par le biais de chiers de priphriques (devices), par exemple /dev/sda pour un disque dur SATA. Les chiers de priphriques sont

CONFIGURATION DE BASE

325

gnrs dynamiquement, suivant les besoins, par le systme udev. Vous trouverez au Chapitre 13 une liste des principaux chiers de priphriques Linux.
Fichiers /proc et /sys

Pour de nombreux composants, les systmes de chiers virtuels des rpertoires /proc et /sys fournissent des informations dtailles. Vous trouverez un aperu de ces chiers de matriel au Chapitre 23. Les pilotes des innombrables composants matriels se trouvent dans les modules du noyau. Une partie de ces modules est charge lamorage du systme, le reste uniquement lorsque le besoin sen fait sentir. Si le chargement automatique de modules ne fonctionne pas, vous devriez jeter un coup dil aux chiers /etc/modprobe.conf ou /etc/modprobe.conf.d/*. La gestion des modules et le rle de ces chiers sont dcrits au Chapitre 23. Les messages du noyau indiquent quels vnements interviennent au chargement des modules et si le matriel a pu effectivement tre initialis avec succs. Pour consulter ces messages, utilisez la commande dmesg.

Modules noyau

Synthse du matriel

Quelques distributions proposent des outils donnant une synthse du matriel disponible : 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 mmoire
Ce livre ne traite que les ordinateurs quips dun processeur de type Intel Pentium, cest-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 chier /proc/cpuinfo vous renseigne sur les processeurs utiliss dans votre ordinateur. Lexemple suivant (quelque peu raccourci) provient dun ordinateur quip dun processeur Intel Dual-Core. Linux considre chacun des curs comme un processeur indpendant. La ligne model name prsente la frquence dhorloge maximale, tandis que la ligne cpu MHz donne la frquence dhorloge effectivement utilise.
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 frquence variable, les modules cpufreq sont responsables de la rduction de frquence destine conomiser lnergie. La documentation du noyau

326

LINUX

disponible dans le rpertoire cpu-freq (voir aussi Chapitre 25) fournit davantage dinformations sur les fondements de ce systme. Les chiers du rpertoire :
/sys/devices/system/cpu/cpun/cpufreq/

fournissent des renseignements sur ltat courant du systme ainsi que sur les possibilits de contrle.
Mmoire (RAM)

La commande free vous renvoie des informations sur la mmoire disponible. Lorsque vous supposez que votre ordinateur rencontre des problmes matriels au niveau de la RAM (secteurs dfectueux, etc.), le programme Memtest86 est une bonne solution pour tester la RAM. Avec de nombreuses distributions, vous pouvez lancer ce programme lamorage du systme ou partir du CD/DVD dinstallation. Si toutefois cela ne fonctionne pas chez vous, vous trouverez sur le site web suivant une image ISO vous permettant de graver un CD amorable : http://www.memtest86.com/

Gestion de lnergie (ACPI, APM)


ACPI

ACPI est lacronyme dAdvanced Conguration and Power Interface et contrle toutes les fonctionnalits de gestion de lnergie des ordinateurs et portables modernes. LACPI est pris en charge par Linux depuis le noyau 2.6. Sur les ordinateurs ACPI, les modules noyaux ncessaires sont automatiquement chargs, ce dont vous pouvez vous convaincre avec la commande dmesg | grep -i acpi. Le processus noyau kacpid et le dmon ACPI acpid sont lancs simultanment. Ces deux programmes traitent les vnements ACPI. acpid est dirig par le biais du chier /etc/acpi. La commande acpi -V et les chiers du rpertoire /proc/acpi fournissent des informations sur ltat courant du systme ACPI (tat de charge des batteries, leur temprature, etc.). Si lACPI cause des problmes au dmarrage, vous trouverez au Chapitre 24 un certain nombre de paramtres du noyau pour dsactiver partiellement ou totalement lACPI. Vous trouverez par ailleurs davantage dinformations sur lACPI et Linux la page suivante : http://acpi.sourceforge.net/

Suspend

ACPI prend en charge plusieurs modes de veille dans lesquels lordinateur consomme peu (mode Standby) ou pas du tout dnergie (veille prolonge). Sur la plupart des distributions et environnements de bureau, vous pouvez passer lordinateur dans le mode de veille souhait par le biais des commandes du menu, par exemple Dmarrer > Dconnexion. Le mode de veille intressant pour les propritaires de portables est le mode de veille prolonge, pour lequel on parle galement de mode dhibernation (hibernate), Suspend to Disk ou Software Suspend. Le contenu de la mmoire au moment de la mise en veille est enregistr dans la partition de swap du disque dur et lordinateur est mis hors tension. Lorsquil est remis sous tension, le contenu de la mmoire est lu depuis le disque dur. Lensemble des composants matriels doit par ailleurs tre rinitialis. Ce processus est trs complexe et demande une collaboration optimale entre le noyau Linux, ses modules et le systme ACPI. Il existe lheure actuelle plusieurs procdures diffrentes de ractivation partir de la veille prolonge. Les dtails de mise en uvre varient fortement dune distribution lautre et dun matriel lautre.

CONFIGURATION DE BASE

327

Mon exprience personnelle des diffrents modes de veille est malheureusement essentiellement ngative. Si la tentative de ractivation ne se soldait pas par une erreur, il tait frquent de ne pas pouvoir sortir lordinateur de son mode de veille. La seule solution consistait alors rinitialiser ou teindre puis rallumer manuellement lordinateur. Sur mon ordinateur portable IBM, le mode de veille a toujours fonctionn de faon satisfaisante avec plusieurs distributions. Testez les fonctions Suspend avec la plus grande prudence. Scurisez pralablement toutes vos donnes, excutez la commande sync et dmontez tous les systmes de fichiers non indispensables de larborescence du systme ! Lorsque la mise en veille prolonge (suspend to disk) ne fonctionne pas, TuxOnIce (anciennement Suspend2) peut se rvler utile dans certains cas. Cette implmentation de Suspend nest pas encore parvenue intgrer le noyau officiel et elle nest donc pas livre avec la majeure partie des distributions. Pour ceux que la compilation manuelle des modules requis neffraie pas, un coup dil la page suivante devrait tre intressant : http://www.tuxonice.net/
APM

APM est lacronyme dAdvanced Power Management (gestion avance de lnergie) et il est le prdcesseur dACPI. Vous ne devriez rencontrer APM que sur des ordinateurs et portables relativement anciens. Dans ce cas, le chier /proc/apm devrait vous renvoyer des informations sur ltat courant de lalimentation. De surcrot, le processus kapmd est lanc au dmarrage de lordinateur : il peut effectuer diverses oprations suivant ltat de la batterie (afcher des messages davertissement, teindre lordinateur, etc.). Pour le contrle manuel des fonctionnalits APM, faites appel la commande apm. Utilise sans paramtre, la commande renseigne sur ltat dalimentation courant (branch/dbranch, charge de la batterie). apm -S place lordinateur en mode Standby. Avec de nombreux ordinateurs, toutefois, cela consiste simplement teindre lcran. ventuellement, la frquence du processeur est galement diminue et les disques durs, teints. Il suft dappuyer sur une touche pour sortir lordinateur de sa veille. apm -s active le mode Suspend. Si tout fonctionne correctement, lordinateur est alors entirement mis hors tension et na donc plus besoin que de trs peu dnergie. Le contenu de la RAM est conserv de manire pouvoir reprendre le travail immdiatement aprs la remise sous tension. Lordinateur peut tre remis sous tension par le biais dune combinaison de touches dpendant du fabricant.

Interfaces et bus systme


Interfaces srie et parallle

Sous Linux, on accde aux interfaces srie et parallle par le biais des chiers de priphrique respectifs /dev/ttySn et /dev/lpn. Vous ne devriez pas rencontrer ces interfaces quelque peu anciennes avant daborder la conguration dun modem analogique ou dune imprimante (voir Chapitres 27 et 30). Les disques durs internes, lecteurs de CD ou DVD, ainsi que divers autres espaces de stockage sont en rgle gnrale connects lordinateur par le biais de bus systme IDE, SATA ou SCSI (voir aussi Chapitre 23). Linux communique avec les priphriques SATA et SCSI travers le systme SCSI du noyau. Pour les priphriques IDE, il existe deux variantes :

IDE, SATA, SCSI

328

LINUX

traditionnellement, on utilise le systme IDE conventionnel ; depuis le noyau 2.6.19, on peut galement accder aux priphriques IDE par le biais du systme SCSI grce lextension libata. Lutilisation effective de cette extension dpend nanmoins de la distribution. La commande lsscsi ainsi que les chiers dont la liste est donne ci-aprs fournissent des informations sur ltat des systmes IDE et SCSI ainsi que sur lensemble des priphriques quils grent :
/sys/bus/ide/* /sys/bus/scsi/* /proc/scsi/*
USB

Firewire

PCI

LUSB (Universal Serial Bus) est utilis pour connecter lordinateur divers priphriques externes, allant de la souris au scanner. Les modules noyau USB ncessaires sont chargs automatiquement. Les espaces de stockage USB (disques durs externes, cls USB, lecteurs de CD ou DVD externes) sont grs comme des priphriques SCSI. Le systme de chiers virtuel usbfs fournit dans le rpertoire /proc/usb des informations sur tous les priphriques USB connects. Vous pourrez obtenir davantage dinformations dans le rpertoire /sys/bus/usb. lsusb -v (paquetage lsbutils) renvoie une liste exhaustive de tous les priphriques et interfaces USB. Le bus systme Firewire est une solution alternative lUSB. Firewire est dni par le standard IEEE 1394 et est galement connu sous le nom i.Link, manant de Sony. Firewire est plus rapide que lUSB et sert principalement pour le transfert de donnes depuis les camras numriques. Vous trouverez sur le site web suivant des informations dtailles sur le sujet de lIEEE 1394 et Linux : http://www.linux1394.org/ Les modules ncessaires (en particulier ieee1394) sont automatiquement chargs lorsque vous branchez un priphrique Firewire. Les chiers du rpertoire /sys/bus/ieee1394 fournissent des informations sur les priphriques connects et sur ltat du systme Firewire. Lidal pour obtenir des informations sur les composants PCI de votre ordinateur consiste faire appel la commande lspci. Les chiers des rpertoires /proc/bus/pci/ et /sys/bus/ pci/ contiennent les mmes informations, mais ils sont notoirement plus difciles interprter. Lexemple qui suit a t, pour des raisons de place, fortement abrg :
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 (...) ...

CONFIGURATION DE BASE

329

PCMCIA

Labrviation PCMCIA, quasiment impossible prononcer, est lacronyme de Personal Computer Memory Card International Association. Les cartes PCMCIA sont des cartes dextension au format carte bancaire pour les ordinateurs portables, les extensions en question ntant pas limites des cartes mmoire mais couvrant un large ventail dapplications. 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 diffrence entre les deux rside dans la taille du bus utilis pour le transfert de donnes entre le portable et la carte (16 bits dans un cas, 32 bits dans lautre). Linux prend en charge les deux types de cartes. Les cartes PCMCIA compatibles avec Linux sont reconnues par le systme Hotplug (voir la section suivante) et initialises automatiquement. pccardctl renvoie des informations sur les cartes PCMCIA branches lordinateur. Du fait quen interne on accde en rgle gnrale la carte par le bus PCI, ce programme fait frquemment appel lspci. Avec pccardctl, vous pouvez aussi commander diverses fonctionnalits PCMCIA et, par exemple, interrompre lalimentation lectrique des cartes PCMCIA.

Systme Hotplug (udev, D-Bus et HAL)


Jusqu il y a quelques annes, la conguration matrielle restait relativement statique. Les modications ne devenaient ncessaires que lorsque lordinateur, au bout de quelques annes, devait tre mis jour. Entre-temps, les choses ont bien chang : lutilisation courante dun ordinateur implique aujourdhui de connecter et de dconnecter frquemment des disques durs, cls USB, cartes dextension et autres priphriques. Linux doit ragir de faon rapide et aussi automatique que possible ces modications de la conguration matrielle. Le systme Hotplug prend en charge cette tche : au cours des dernires annes, ses composants ont t entirement rcrits et rimplments. Depuis 2006 environ, le processus suivant est mis en uvre dans la plupart des distributions : Le noyau constate une modication du matriel, par exemple parce que lutilisateur a plac un CD dans son lecteur ou quil a branch une cl USB lordinateur. Le noyau appelle /sbin/hotplug pour charger les modules noyau requis. Le noyau gnre via udev de nouveaux chiers de priphriques (voir Chapitre 13). udev annonce les nouveaux priphriques la couche HAL (Hardware Abstraction Layer) par le biais du processus noyau hald ; la commande lshal renvoie une liste de tous les composants matriels connus par HAL. hotplug transmet les vnements matriels hald. hald actualise la conguration du systme et informe par le systme de communication D-Bus tous les programmes concerns. D-Bus est un systme pour la transmission des informations entre programmes. Sur la base de la bibliothque libdbus, la communication peut stablir directement entre deux

330

LINUX

programmes. Lorsque des informations doivent tre changes entre plusieurs programmes la fois, le programme dbus-daemon doit tre utilis en guise de "central tlphonique". 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 ragit en consquence. Sous KDE 4, le nouveau framework Solid est responsable du traitement des informations en provenance de HAL et de D-Bus. Jusqu la version 2.20 de Gnome, cest gnome-volume-manager qui prenait en charge cette tche (conguration par le biais de gnome-volume-properties). partir de la version 2.22, cest Nautilus qui gre les supports de stockage externes conjointement avec PolicyKit ; la conguration seffectue alors par le biais dditer > Prfrences > Volumes.
La configuration de HAL, de D-Bus et dudev (que vous trouverez dans les rpertoires /etc/hal, /etc/ dbus-1 et /etc/udev ) est dcisive pour le bon fonctionnement de lensemble. De par la complexit leve que cela reprsente, vous tes guid par votre distribution dans la configuration du systme Hotplug. Seuls les experts Linux pourront sen sortir en cas de problme lors dune modification de la configuration. Vous trouverez plus de dtails 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 indtermine, 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 rseau
Pour la conguration 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 mthode de communication radio entre priphriques matriels. Bluetooth possde une porte plus rduite que le Wi-Fi et est plus gnralement utilis pour les tlphones portables, PDA et autres petits priphriques lectroniques. Linux prend galement en charge Bluetooth mais, nayant pas pu tester moi-mme la gestion du matriel Bluetooth, je ne peux que vous renvoyer aux pages suivantes : http://www.bluez.org/ ; http://www.holtmann.org/linux/bluetooth/ (collection de liens).

CONFIGURATION DE BASE

331

Interface graphique (X)


Les cartes graphiques sont, sous Linux, utilises par le biais du systme X Windows. La conguration de ce systme fait lobjet dun long dveloppement au Chapitre 22. Vous y trouverez galement des informations pour optimiser lutilisation des fonctions 3D de votre carte graphique.

Systme audio (ALSA)


ALSA

Avant de pouvoir jouer le moindre son sur la carte ou le contrleur audio de votre ordinateur, le pilote ALSA correspondant votre matriel doit tre charg dans le noyau et initialis. ALSA est lacronyme de Advanced Linux Sound Architecture et cest le systme charg, depuis le noyau 2.6, du pilotage des cartes son au plus bas niveau. Dans les versions prcdentes du noyau, ctait 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 contrleurs 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 consquent, la commande lsmod | grep snd vous renvoie une synthse rapide de tous les modules ALSA actifs. Laccs aux diverses fonctionnalits audio se fait par le biais de chiers situs dans le rpertoire /proc/asound. La conguration du systme ALSA seffectue par le biais des chiers /etc/alsa/*, /etc/ asound.conf ainsi que ~/.asoundrc. Il nexiste aucune ncessit imprieuse de modier ces chiers dans le cadre dune utilisation classique du systme audio. La reconnaissance du matriel doit tre automatique. Pour les utilisateurs ayant des exigences particulires en matire de son (par exemple les musiciens) ou souhaitant diffrencier plusieurs cartes audio, le site web et le wiki associ fournissent une documentation complte sur ALSA et sa conguration : 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 mme script restaure la valeur du volume enregistre.

Outils ALSA

Pour utiliser directement ALSA, vous disposez de diverses commandes (paquetage alsautils) dont nous ne mentionnons ici que les plus importantes :
Commandes ALSA alsactl alsamixer aplay arecord enregistre ou charge tous les paramtres ALSA (volume, etc.) modifie le volume ou le niveau dentre de divers canaux audio ALSA lit un fichier audio enregistre un fichier audio

332

LINUX

Si les haut-parleurs restent silencieux, cest bien souvent que lun des rglages de volume est 0. Pour une utilisation standard, trois canaux sont importants : le volume principal pilote le niveau sonore du signal global ; le volume PCM indique le niveau sonore des donnes audio gnres par les programmes et insres dans le signal global (PCM est lacronyme 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 donnes provenant directement du lecteur de CD (ce qui prsuppose que le lecteur de CD et la carte audio soient connects par le biais dun cble !).
Bibliothques audio

De nombreux programmes audio nutilisent pas directement ALSA mais accdent des bibliothques audio, un serveur de son, etc. Cette couche intermdiaire entre le systme ALSA (de bas niveau) et lapplication audio effective doit faciliter la programmation, rendre les applications audio utilisables travers le rseau et assurer la coopration de programmes audio sexcutant simultanment. Toutefois, le problme est quil nexiste pour le moment aucune architecture audio unie au-dessus dALSA : KDE et Gnome ont chacun suivi leur propre chemin. Les applications audio exigeantes, pour lesquelles les bibliothques audio existantes sont insufsantes, doivent rimplmenter elles-mmes des fonctionnalits audio lmentaires. Il est extrmement difcile de dvelopper des logiciels audio capables de fonctionner indpendamment de lenvironnement de bureau de manire simple. Pour les programmeurs de la socit Adobe, les problmes audio avaient mme justi la lenteur des dveloppements pour le plugin Flash Linux. La liste qui suit prsente rapidement quelques-uns des systmes audio actuellement disponibles : aRts. aRts est lacronyme danalog real-time synthesizer et cest la base audio pour KDE 2.n et 3.n. aRts est constitu dune srie de modules pour gnrer, ltrer, fusionner, etc. les donnes audio. Les programmes KDE accdent aRts par le biais du dmon aRtsd, qui est lanc en mme temps que KDE. Les programmes qui ne sont pas compatibles avec aRts mais qui accdent directement aux priphriques du module son du noyau sont automatiquement redirigs par le biais de artsdsp. aRts nest toutefois plus maintenu et il deviendra obsolte avec la sortie de KDE 4. EsounD. EsounD (Enlightened Sound Daemon) tait lhomologue daRts pour Gnome. Les programmes compatibles avec EsounD envoient les donnes audio au dmon esd, qui est lanc en mme temps que Gnome. EsounD a rencontr un sort comparable celui daRts : il est certes toujours install avec Gnome pour des raisons de compatibilit, mais la plupart des applications audio reposent maintenant sur GStreamer. GStreamer. La bibliothque GStreamer est un framework multimdia complet (audio et vido) utilis par de nombreux programmes Gnome. Grce son architecture par greffons, il est trs modulaire et peut tre facilement tendu. Les codecs de diffrents formats audio et vido sont galement disponibles en tant que greffons. Contrairement aRts et EsounD, GStreamer ne comprend pas de dmon pour la gestion du son. Cest ALSA qui est directement responsable de la tche principale, savoir grer plusieurs signaux audio. Vous trouverez davantage dinformations sur la page suivante : http://www.gstreamer.net

CONFIGURATION DE BASE

333

Phonon. Le systme audio servant de base KDE 4 est Phonon. Cette bibliothque doit proposer une interface de programmation (API) unie pour lutilisation de fonctionnalits audio tout en reposant, comme GStreamer, sur des bibliothques audio et vido existantes. Lobjectif ici consiste ce que les programmeurs dapplications audio et vido sous KDE naient plus se proccuper de la compatibilit avec tous les moteurs imaginables, mais quils puissent accder ce moteur par le biais dune interface centrale. On ne peut pour le moment prvoir jusqu quel point cela sera possible sans perte de fonctionnalits et defcacit. Le site web Phonon renseigne sur ltat actuel du projet : http://phonon.kde.org/ PulseAudio. PulseAudio est un serveur de son capable de fonctionner travers un rseau et proposant des fonctionnalits comparables au programme esd, quil remplace sur les distributions rcentes (Fedora depuis sa version 8, openSUSE depuis sa version 11, Ubuntu depuis sa version 8.04). Au premier abord, vous ne devriez rien remarquer : tout devrait fonctionner comme laccoutume. Toutefois, en coulisse, il se passe beaucoup de choses : vous pouvez piloter sparment chacun des ux audio laide du programme pavucontrol et les affecter une carte audio ou un priphrique de sortie de votre choix. PulseAudio devrait galement reconnatre et activer automatiquement tout priphrique audio complmentaire (par exemple des blocs USB). Vous trouverez plus de dtails sur ce projet sur les pages suivantes : http://pulseaudio.org/ http://pulseaudio.org/wiki/FAQ http://fedoraproject.org/wiki/Interviews/LennartPoettering ces systmes audio sajoutent divers programmes contenant eux-mmes des bibliothques audio ou multimdias compltes, quils mettent leur tour la disposition dautres programmes. Deux exemples notables en sont le lecteur RealPlayer/HelixPlayer (bibliothque Helix DNA) et le lecteur xine (bibliothque xinelib) : https://helixcommunity.org/ ; http://xinehq.de/. Il nest pas difcile de voir que les incompatibilits entre programmes et bibliothques audio sont volontaires.
Pour les musiciens et les utilisateurs professionnels, il existe des distributions ddies optimises pour les programmes audio : http://64studio.com/ ; http://jacklab.net/

Supports de donnes (disques durs, CD-ROM, DVD, etc.)


Sur le partitionnement des disques durs, reportez-vous au Chapitre 2. La lecture des CD audio et DVD vido est voque au Chapitre 11. La gestion des chiers et rpertoires ainsi que la gravure de CD et DVD sont traites au Chapitre 13. Enn, le montage de lecteurs de tout type dans un systme (disque dur, CD, DVD, disquette, etc.) fait lobjet du Chapitre 23.
Lecteurs de bandes

Les lecteurs de bandes ne sont pas monts dans le systme laide de la commande mount vu quils ne contiennent aucun systme de chiers. Ils comprennent uniquement un ou plusieurs chiers darchives. Les donnes sont donc transmises directement depuis ou vers le

334

LINUX

lecteur par le biais des commandes tar ou cpio. La commande mt vous permet de faire dler la bande en avant ou en arrire (voir ce sujet la rfrence des commandes mt et tar). Suivant le lecteur, vous devrez utiliser lun ou lautre des priphriques suivants.
Priphriques lecteurs de bandes /dev/st* /dev/nst* /dev/ht* /dev/nht* lecteur SCSI, la bande est rembobine automatiquement lecteur SCSI, la bande nest pas rembobine automatiquement lecteur IDE, la bande est rembobine automatiquement lecteur IDE, la bande nest pas rembobine automatiquement

Clavier et souris
Pour la disposition de clavier US, reportez-vous au Chapitre 2 ; les particularits des souris sous Linux sont voques au Chapitre 3. La conguration du clavier et de la souris dans la console texte est prsente un peu plus haut dans ce chapitre. La conguration du clavier et de la souris avec X ainsi que la gestion des caractres spciaux dans X sont traites au Chapitre 22.

Imprimante, appareil photo numrique, scanner


Pour lutilisation des appareils photo numriques et des scanners, reportez-vous au Chapitre 9. Pour la conguration et lutilisation des imprimantes, consultez le Chapitre 30.

20.7 Fichiers journaux et messages du noyau


Linux enregistre de trs nombreuses informations dans les chiers journaux : messages du noyau, connexion et dconnexion des utilisateurs, oprations rseau, etc. Les chiers journaux se trouvent gnralement dans le rpertoire /var/log, parfois aussi dans /var/adm/ log. Ils fournissent une aide prcieuse lorsque vous recherchez des erreurs de conguration ou des failles de scurit. Deux dmons (processus qui sexcutent en tche de fond) sont responsables de la journalisation. Tous deux sont lancs dans le cadre du processus InitV : klogd gre les messages du noyau. Ceux-ci sont enregistrs dans une mmoire tampon do ils peuvent tre lus grce dmesg. syslogd enregistre dans les chiers journaux les messages des divers programmes ou en redirige le contenu vers la console. Le dmon syslogd est lanc par le processus Init-V et pilot par le chier /etc/syslog.conf. Dans ce chier, vous pouvez congurer exactement tout ce qui doit tre journalis et dans quels chiers enregistrer les messages rsultants. Attention, toutefois, un point : vos services rseau ne communiquent pas tous avec syslogd ! De trs nombreux programmes (CUPS, Samba, etc.) assurent leur propre journalisation et sexcluent de la conguration globale par le biais de syslog.conf. Les paramtres de

CONFIGURATION DE BASE

335

journalisation sont dans ce cas congurs dans les chiers de conguration propres du programme.
Gestion des fichiers journaux

Les chiers journaux ont pour caractristique dsagrable de grossir, lentement mais srement. Il est donc rgulirement ncessaire de repartir dun chier journal vierge. Le chier utilis jusqu ce moment doit alors tre renomm et galement, si possible, compress. Il en rsulte donc des chiers du type messages.1.gz, messages.2.gz, etc. Aprs un temps darchivage plus ou moins long, tous les chiers journaux trop anciens sont totalement supprims. Sur la plupart des distributions, une tche cron appelle pour cela rgulirement le programme logrotate. Son fonctionnement est pilot par les chiers /etc/logrotate.conf et /etc/logrotate.d/*. Sur les distributions anciennes, lamorage de Linux conduit afcher les messages du noyau et dInitV lcran. Sur les distributions rcentes, ces messages sont dissimuls par une belle interface graphique ; toutefois, vous pouvez au besoin afcher ces messages par une touche du clavier ou un clic de souris. Lorsque vous utilisez le systme, vous pouvez afcher tout moment les messages du noyau laide 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 version2.6.20-1.2949.fc7 (gcc version4.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)

Journalisation du processus damorage

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 doesnt 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

CONFIGURATION DE BASE

337

sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesnt 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, doesnt 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 ...

Messages InitV

La mmoire tampon utilise pour les messages du noyau et dont le contenu est afch par dmesg est limite. Lorsquelle est pleine, les messages anciens sont crass par les plus rcents. Du fait que le noyau produit galement des messages tout au long de son fonctionnement (par exemple lors du chargement de nouveaux modules ou lorsque le noyau rencontre des erreurs), une journalisation complte des messages lis lamorage nest possible quimmdiatement aprs le dmarrage du systme. Pour cette raison, les messages du noyau sont galement enregistrs, dans la plupart des distributions, dans un chier : Debian, Fedora, Red Hat, Ubuntu /var/log/dmesg SUSE /var/log/boot.msg (contient galement les messages InitV) Ds que le noyau est totalement initialis, le premier processus qui se lance est le processus InitV (ou un autre systme pour le lancement des processus rseau, voir Chapitre 24). De faon surprenante, la plupart des distributions renoncent journaliser explicitement les

338

LINUX

messages InitV. Lenregistrement ne seffectue que dans le cadre de la journalisation habituelle, cest--dire uniquement lorsque les dmons et services rseau lancer prvoient leur propre journalisation. SUSE est toutefois ici une exception intressante : cette distribution enregistre les messages du systme InitV dans /var/log/boot.msg.

21

Gestion des logiciels et des paquetages


Sous Windows, on installe gnralement des programmes en lanant setup.exe. Linux a une autre approche : le systme de gestion de paquetages est une base de donnes qui contient des informations sur tous les paquetages dj installs. Les nouveaux programmes sont installs par des commandes du gestionnaire de paquetages. Ce concept prsente de nombreux avantages. En particulier, il prend en compte les dpendances et les conits entre les paquetages logiciels. Si le programme A a besoin de la bibliothque B, le systme de paquetages ninstalle A quaprs avoir install B. On peut aussi, tout moment, connatre le paquetage auquel appartient un chier donn, savoir si ce chier se trouve encore son emplacement original, etc.

Formats de paquetages

Le march Linux est domin par deux systmes de paquetages diffrents. Red Hat, Fedora, Mandriva et SUSE utilisent le systme RPM dvelopp par Red Hat. Debian et toutes les distributions qui en sont drives (y compris Ubuntu) utilisent le format DEB. Les commandes dinstallation, de dsinstallation et de mise jour de ces paquetages (rpm, dpkg) sont relativement primitives. Elles peuvent, par exemple, identier des dpendances manquantes, mais pas les rsoudre. rpm et dpkg sont les fondations de programmes plus avancs dots de fonctions supplmentaires. On compte linstallation automatique des dpendances, la mise jour de systmes complets et lutilisation de sources de paquetages sur CD et DVD ou encore sur Internet. Les systmes de gestion de paquetages fournissent galement un systme de mises jour uni pour tous les programmes installs (en dehors des fonctions de base du systme dexploitation, comme cela est gr sous Windows). Yum (pour les paquetages RPM) et APT (pour les paquetages APT) sont des exemples de systmes de gestion de paquetages. Yum Extender ou Synaptic proposent des alternatives graphiques ces outils.

Systmes de gestion de paquetages

Outils spcifiques aux distributions

En plus de ces outils standard, il existe pour certaines distributions des programmes de gestion de paquetages et des mises jour : Debian, Ubuntu Red Hat, Fedora SUSE, Novell Ubuntu update-manager pirut, pup module YaST du groupe Logiciels, zypper gnome-app-install

Les paquetages dune distribution Linux sont harmoniss entre eux. Cela signifie quils utilisent un jeu de bibliothques unifi, quils sont compils avec le mme compilateur, etc. Un dbutant sous Linux a donc intrt installer uniquement les paquetages fournis avec sa distribution. Linstallation de paquetages prvus pour une autre distribution pose souvent problme. Bien souvent, installer un paquetage Red Hat sous SUSE ne fonctionne pas ou difficilement : il manque des biblioth-

340

LINUX

ques, les dpendances ne sont pas rsolues, etc. La rsolution de ces problmes demande beaucoup de connaissances.
Administration centralise de plusieurs ordinateurs

Si vous tes responsable de 50, 100 ou 1 000 ordinateurs, les outils de gestion de paquetages savrent vite insufsants. Vous avez besoin dun outil qui permet de lancer des mises jour sur tous les ordinateurs (ou une partie dentre eux). Ce type doutils nest actuellement disponible 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 gre les paquetages RPM. Ce systme a t dvelopp par Red Hat. Le projet RPM est entre temps devenu un projet libre tout fait habituel, qui nest pas sous le contrle de Red Hat, ni aucune autre entreprise. Il a de nombreuses utilits : effectuer des modications dans un chier dj existant (par exemple un script) au cours dune installation ; mettre jour un programme tout en mettant jour proprement les chiers modis ; supprimer tous les chiers dun programme ; sassurer avant dinstaller un programme que toutes les dpendances sont remplies et que les bibliothques prsentes le sont dans le bon numro de version ; vrier si un chier a t modi pendant linstallation dun paquetage ; dterminer quel paquetage appartient un chier 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 chiers ncessaires lexcution du programme. Le paquetage de code source nest intressant que pour les dveloppeurs. Il contient le code source ncessaire pour construire un paquetage binaire. Le nom du paquetage contient quelques informations : abc-2.0.7-1.i686.rpm dcrit le paquetage abc dans sa version 2.0.7, premire version du paquetage (release). Si le paquetage contient une erreur, si de la documentation est ajoute ou si dautres modications sont effectues, le numro de version du paquetage est suprieur 1 pour une version donne du logiciel. Le numro de version est donc celui du programme, et le numro de version du paquetage, celui de la version du RPM pour cette version donne du programme. i686 indique que le paquetage contient des chiers destins aux processeurs compatibles avec le Pentium 2 il existe des versions de Linux pour dautres processeurs. Lorsque le paquetage abc ne se compose que de scripts ou de chiers texte, indpendants de larchitecture du processeur, cet identiant est remplac par noarch. Lorsquil contient du code source, cest indiqu par lidentiant src.

GESTION DES LOGICIELS ET DES PAQUETAGES

341

Voici une brve explication des diffrents 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 chiers installer, de nombreuses informations de gestion : une description du paquetage, des informations sur les numros de versions, un classement dans la hirarchie de groupes, les dpendances vis--vis dautres paquetages, etc. Les dpendances indiquent quun paquetage a besoin dun langage de programmation donn, comme Perl, ou de diffrentes bibliothques. Les paquetages correspondant aux dpendances doivent tre installs avant le paquetage lui-mme. rpm maintient une base de donnes dinformations sur tous les paquetages binaires installs. Cette base est enregistre dans divers chiers dans le rpertoire /var/lib/rpm. Elle contient des informations uniquement sur les paquetages binaires ; les paquetages de code source ventuellement installs ne sont pas pris en compte. Il ne faut en aucun cas modier les chiers de la base de donnes rpm ! Pour que cette base corresponde aux chiers effectivement installs, il ne faut pas supprimer de chiers, mais dsinstaller les paquetages correspondants (rpm -e).
Problmes

Le systme RPM est fantastique, mais il nest pas sans inconvnient. La liste suivante recense les problmes les plus frquents : Certains paquetages RPM ont des dpendances que la commande rpm ne parvient pas rsoudre. yum sait, en gnral, grer ces cas. La gestion de dpendances est invasive lorsque vous mlangez des paquetages de diffrentes distributions, installez des programmes avec tar ou en compilez vous-mme. Alors, les informations de la base RPM ne correspondent pas aux logiciels installs sur lordinateur. 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 dinstaller une version plus rcente de rpm. La base de donnes RPM prend normment de place. Une installation de 5 Go remplit gnralement 50 Mo de base de donnes. Le problme est moins la place sur le disque que la rapidit des oprations de RPM. Une mise jour de la distribution complte peut tre relativement longue (voire trs longue si lordinateur dispose de peu de mmoire vive). Il arrive que la base de donnes contienne des donnes incohrentes. Cela implique que la commande rpm ne peut plus tre utilise et quelle renvoie des messages du type

342

LINUX

cannot open packages database (impossible douvrir la base de donnes de paquetages). Les commandes rm -f /var/lib/rpm/__db* et rpm --rebuilddb rparent gnralement ce type de problmes, mais cela peut durer un certain temps. Pendant plusieurs annes, RPM na t quen partie maintenu. Diffrents distributeurs utilisent donc leur propre version avec leurs propres extensions et correctifs. Cette situation devrait cependant samliorer avec une version unie de RPM.

Syntaxe et exemples
La syntaxe de base de rpm est rpm options nom_de_paquetage/fichier. Le nom de chier peut galement tre une adresse FTP ou HTTP. Les oprations de base sont effectues avec les options suivantes :
Options de base de RPM rpm rpm rpm rpm rpm rpm --install ou -i --import --upgrade ou -U --verify ou -V --erase ou -e --query ou -q installe un paquetage installe un fichier de cls met jour un paquetage vrifie ltat dun paquetage supprime un paquetage affiche des informations sur les paquetages installs

rpm --help et man rpm fournissent une rfrence complte de la commande. Les exemples suivants illustrent lutilisation 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 lenregistre comme chier de cls pour RPM.
root# rpm -U http://monserveur/monchemin/abc-2.1.0-2.i386.rpm

met jour le programme abc en tlchargeant directement le paquetage du serveur web indiqu.
root# rpm -V abc

liste tous les chiers du paquetage abc qui ont t modis depuis linstallation.
root# rpm -e abc

dsinstalle le programme abc.


root# rpm -qa

liste tous les paquetages installs.


root# rpm -qa --last

GESTION DES LOGICIELS ET DES PAQUETAGES

343

liste tous les paquetages installs, tris par date dinstallation (le dernier paquetage install en premier).
root# rpm -qa |grep -i mysql

liste tous les paquetages installs, dont le nom contient la chane mysql (indpendamment de la casse).
root# rpm -qi perl

afche des informations sur le paquetage Perl (si celui-ci est install).
root# rpm -ql perl

liste tous les chiers du paquetage Perl.


root# rpm -qd perl

liste tous les chiers de documentation du paquetage Perl.


root# rpm -qc cups

liste tous les chiers de conguration du paquetage CUPS.


root# rpm -qip abc-2.0.7-1.i386.rpm

afche des informations propos du paquetage abc non install.


root# rpm -qf /usr/lib/libkdnssd.so

indique quel paquetage appartient le chier /usr/lib/libkdnssd.so.


root# rpm -q --provides php5-mysql

indique quelles "capacits" 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 php5mysql = 5.2.4-11. Les capacits sont utilises pour rsoudre les dpendances de paquetages. Les noms des capacits correspondent gnralement ceux des programmes ou des bibliothques fournis par un paquetage. Ladministrateur de chaque distribution dcide comment les capacits sont dnies. Celles-ci peuvent galement indiquer des numros de versions.
root# rpm -q --requires php5-myql

indique quelles dpendances doivent tre remplies pour installer le paquetage. Sous openSUSE, la liste des capacits 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 loption -p an dafcher des listes de capacits pour les paquetages qui ne sont pas encore installs. Cette option peut galement tre utilise 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

afche une liste de paquetages installs qui dpendent de la capacit libpthread.so.0.

344

LINUX

Sur les distributions 64 bits, il arrive que rpm -qi renvoie des informations pour deux paquetages. Il ne sagit pas dune erreur : cest d au fait que les paquetages 32 et 64 bits dun programme ou dune bibliothque sont nomms de manire identique.
Problmes de dpendances

Un problme de dpendance se manifeste gnralement par un message du type failed dependencies: nom_capacit is needed by nom_paquetage. Pour le rsoudre, installez le paquetage avec yum install, plutt quavec 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 dune 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 lorigine. Dans certains cas, en particulier lorsque vous avez install des paquetages en dehors du systme rpm, ce dernier narrive pas rsoudre les dpendances, bien que les chiers manquants soient en fait prsents. Vous pouvez alors mener linstallation bien avec loption --nodeps. Vous devez nanmoins 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 supplmentaires : Yum sait utiliser des sources de paquetages (dpts, repositories) qui se trouvent sur Internet. Une archive Yum est un ensemble de paquetages RPM auquel sont ajoutes des mtadonnes (rpertoire repodata). Il sagit dinformations sur le contenu et les dpendances de tous les paquetages. La sparation entre les paquetages et les mtadonnes permet de traiter le tout trs rapidement (sans avoir lire tous les paquetages pour en extraire les donnes). Yum sait passer dun miroir un autre pour une source de paquetages donne. Yum rsout automatiquement toutes les dpendances de paquetages, tlcharge tous les paquetages ncessaires et les installe. Tous les dpts de paquetages sont pris en compte au cours de cette opration. Si vous souhaitez installer un paquetage provenant du dpt A, il se peut que Yum tlcharge un paquetage depuis les dpts B et C. Yum peut actualiser tous les paquetages installs en une seule commande. Pour chaque paquetage install, il regarde sil en existe une nouvelle version dans lun des dpts de paquetages enregistrs. Si cest le cas, le paquetage correspondant est tlcharg et install. Les dpendances de ces nouveaux paquetages sont galement rsolues. Yum est dvelopp en Python. Il peut tre tendu par des greffons et dispose alors dencore plus de fonctionnalits. Il est prsent dans plusieurs distributions qui utilisent des paquetages RPM (par exemple, Fedora et Red Hat). Pour dautres distributions, vous devez le tlcharger ladresse http://www.linux.duke.edu/projects/yum/.

GESTION DES LOGICIELS ET DES PAQUETAGES

345

Conflits de verrous

Yum ne peut tre lanc quune seule fois (cest galement valable pour toutes les interfaces). Si Yum ou lune de ses interfaces fonctionne dj, essayer den lancer un deuxime exemplaire renvoie lerreur another copy is running (une autre copie fonctionne dj). Ce problme tire souvent son origine dans le systme de mises jour automatique de Yum. Vous pouvez le dtecter facilement : le chier /var/run/yum.pid contient le numro de processus du programme qui gnre le conit. ps | grep identifiant renvoie le nom du programme en question. Si cela savre ncessaire, vous pouvez arrter le systme de mises jour avec /etc/init.d/yum-updated stop et le relancer plus tard.

Configuration
Yum est congur dans le chier /etc/yum.conf. Les lignes suivantes reprsentent la conguration 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 tlchargs ne doivent pas tre archivs aprs leur installation. Il sagit dun paramtre sens, car la place ncessaire pour les paquetages peut grossir de manire dmesure. De plus, il nexiste aucune raison dinstaller un paquetage une deuxime fois. Il arrive cependant que yum rencontre un problme et interrompe linstallation : dans ce cas, le paquetage est supprim. Pour rgler le problme et recommencer linstallation, vous devez tlcharger nouveau le mme paquetage. Pour viter cette situation, utilisez keepcache=1. Pour supprimer explicitement les paquetages tlchargs, lancez yum clean packages. exactarch=1 indique que Yum ne prend en compte que les mises jour qui correspondent larchitecture du paquetage courant. Ainsi, les paquetages i386 ne peuvent pas tre remplacs par des paquetages x86_64, mme plus rcents. gpgcheck=1 demande Yum de vrier lauthenticit dun paquetage avec une cl. gpgcheck peut galement tre congur 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 chiers Python. Les greffons sont congurs grce des chiers du rpertoire /etc/yum/pluginconf.d. metadata_expires dnit combien de secondes sont disponibles les mtadonnes dune source de paquetages. Yum enregistre les mtadonnes dans un cache et ne les retlcharge que lorsquelles sont primes. Cela conomise du temps et du volume de donnes tlcharges

346

LINUX

(les chiers de mtadonnes prennent beaucoup de place). Nanmoins, il arrive que Yum ignore momentanment les modications de la source de paquetages. yum clean metadata permet de supprimer les mtadonnes locales ; Yum est alors oblig de rcuprer les mtadonnes de toutes les sources.
Mise en place dun dpt de paquetages

Chaque dpt de paquetages est dni dans son propre chier *.repo dans le rpertoire /etc/yup.repos.d. On peut aussi dnir les dpts la n de la conguration de base dans /etc/yum.conf, mais ce nest pas trs courant. Les lignes suivantes proviennent de la dnition des dpts de Fedora 9. Les lignes baseurl, mirrorlist et gpgkey ne sont coupes 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/RPMGPG-KEY

Ladresse du dpt peut tre saisie de manire absolue avec baseurl=... ou sous la forme dun chier de miroirs avec mirrorlist=.... Ce chier contient une liste des serveurs miroir et Yum dcide lui-mme lequel utiliser. Il remplace dans le chier de conguration les variables $releasever, $arch et $basearch par le numro de version de la distribution et par larchitecture.
Blocages des paquetages

Pour bloquer un paquetage et viter quil ne soit mis jour par Yum, ajoutez dans yum.conf ou dans le chier *.repo du dpt une ligne exclude nom1 nom2 nom3. Vous pouvez utiliser des caractres joker dans les noms de paquetages : exclude xemacs* est une ligne valide. En principe, vous pouvez mettre jour votre distribution avec Yum. Pour cela, remplacez $releasever par le numro de la distribution souhaite dans le chier de description du dpt. Lancez alors yum upgrade. Cependant, daprs mon exprience, les mises jour de distributions fonctionnent gnralement assez mal, quel que soit le systme de gestion de paquetages. Il vaut mieux rinstaller le systme.

Mise jour de la distribution

Exemples
man yum fournit une rfrence complte de la syntaxe de yum. Les commandes suivantes sont des exemples dutilisation 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 dpendances.

GESTION DES LOGICIELS ET DES PAQUETAGES

347

La premire utilisation de yum peut tre assez longue, car les mta-donnes de tous les dpts de paquetages sont tlcharges. Les utilisations suivantes sont visiblement plus rapides.
Paquetages de code source

yum ne sait pas installer de paquetages de code source. Cette tche est dlgue yumdownloader, qui se trouve dans le paquetage yum-utils. La commande suivante tlcharge le paquetage de code source de lditeur gedit dans le rpertoire courant :
utilisateur$ yumdownloader --source gedit

Tlchargements et mises jour automatiques


Sur de nombreuses distributions, Yum est congur de sorte que le programme yum-updatesd soit lanc automatiquement par InitV au dmarrage de lordinateur. yum-updatesd vrie rgulirement si des mises jour sont disponibles. Selon la conguration de /etc/yum/yum-updatesd.conf, les paquetages de mise jour sont directement tlchargs et installs. Dans lexemple suivant, les mises jour sont automatiquement tlcharges, mais doivent tre installes manuellement.
[main] # tester toutes les heures sil 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 # tlcharger automatiquement les mises jour do_download = yes # tlcharger galement les dpendances 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 mne souvent des problmes de verrous. Vous devez alors stopper yum-updatesd avant dinstaller des paquetages. Ensuite, noubliez pas de redmarrer 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 dmarr, Yumex actualise les mtadonnes locales de tous les dpts de paquetages. Vous pouvez

348

LINUX

ensuite choisir dans les diffrents groupes (Updates, Disponibles, Installs, Tous) les paquetages traiter, puis cliquer sur le bouton Traiter la le dattente. Longlet Vue des paquetages en le dattente afche toutes les actions que Yumex va effectuer. Le bouton Traiter la le dattente dmarre lopration. Yumex examine alors toutes les dpendances et afche une bote de dialogue de rsum. Vous devez conrmer avant que les paquetages ne soient effectivement tlchargs et installs.

Figure 21.1
Gestion des paquetages avec Yum Extender.

21.4 Gestion de paquetages sous Debian (dpkg)


On peut grer les paquetages Debian de deux manires. Cette section dcrit la commande dpkg, qui est comparable rpm. Elle installe, met jour, supprime des paquetages individuels et teste si les dpendances de ces paquetages sont remplies. Cependant, elle ne sait pas rsoudre elle-mme les dpendances de paquetages ou tlcharger des paquetages depuis un dpt. La section suivante dcrit APT (Advanced Packaging Tool, outil de paquetages avanc). Ce systme, bas sur dpkg, fournit des fonctions comparables Yum.

Syntaxe et exemples
Le tableau suivant rsume les oprations de base de dpkg. Vous trouverez plus dinformations sur la syntaxe dans dpkg --help et man dpkg.

GESTION DES LOGICIELS ET DES PAQUETAGES

349

Options de base de dpkg dpkg dpkg dpkg dpkg dpkg dpkg dpkg --install --configure --remove --purge --list --listfiles --search installe ou met jour un paquetage lance le script de configuration dun paquetage supprime un paquetage supprime un paquetage et ses fichiers de configuration affiche une liste des paquetages installs affiche les fichiers dun paquetage dtermine le paquetage auquel un fichier appartient

Les exemples suivants illustrent lutilisation de dpkg dans des situations habituelles. En pratique, dpkg est rarement utilis. Dans la plupart des distributions, les paquetages sont administrs grce APT ou un outil bas sur ce systme.
root# dpkg --install test.deb Dpaquetage de test ( partir de test.deb) ... Paramtrage 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 conguration des programmes interactifs qui servent installer des programmes individuels. Pour modier la conguration ultrieurement, 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 tlcharge les paquetages depuis des dpts et rsout automatiquement les dpendances de paquetages. Il est souvent remplac par aptitude dans les versions plus rcentes de Debian et dUbuntu, mais reste une rfrence pour grer les paquetages DEB. Le systme APT se compose de plusieurs commandes, dont la principale est apt-get. Lorsque APT est correctement congur, apt-get install nom_du_paquetage tlcharge et installe le paquetage indiqu et toutes ses dpendances.

350

LINUX

Configuration
APT est congur par les chiers apt.conf et sources.list du rpertoire /etc/apt. Dautres chiers, optionnels, peuvent se trouver dans le rpertoire /etc/apt.conf.d. apt.conf ne contient gnralement que quelques paramtres de base ; vous navez gnralement pas toucher la conguration fournie par votre distribution (man apt.conf dtaille les options de ce chier). Le chier sources.list (man sources.list) est plus intressant : il contient la liste des dpts utiliss 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 deuxime colonne indique ladresse de base de la source de paquetages. APT comprend les adresses HTTP et FTP, les rpertoires, les serveurs RSH et SSH, ainsi que les CD et DVD. Les dpts sur CD et DVD sont cependant un cas particulier ; ils doivent tre installs avec la commande apt-cdrom. La troisime 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 dpendent de la distribution et du dpt ! Sous Ubuntu, les paquetages se divisent en paquetages main, restricted, universe et multiverse, tandis que sous Debian, il sagit des paquetages main, contrib, non-free, etc. Si un paquetage est prsent dans plusieurs dpt, APT le tlcharge depuis le premier dpt quil trouve. Les lignes suivantes illustrent la syntaxe. Elles proviennent de la conguration de miroirs franais 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 modier ce chier est de louvrir dans un diteur de texte. Vous pouvez aussi utiliser le programme apt-setup ou une interface graphique comme Synaptic.
Ajouter des dpts sur CD

Les CD peuvent aussi servir de dpts de paquetages. On ne peut cependant pas les ajouter simplement dans sources.list. Vous devez lancer, pour chaque CD, la commande aptcdrom. Celle-ci lit les mtadonnes du CD et ajoute les paquetages prendre en compte dans un chier de cache. Puis, sources.list est mis jour. Si apt-cdrom se plaint quil ne trouve pas de CD/DVD, passez-lui en argument le rpertoire de montage du CD avec -d :
root# apt-cdrom -d /media/dvd add

Installer des cls

La plupart des mtadonnes des dpts sont signes par une cl. Les rpertoires dAPT contiennent galement des sommes de contrle pour tous les paquetages. Vous pouvez, grce ces mcanismes, vous assurer quun paquetage nest pas modi malicieusement. Cependant, ce contrle ne fonctionne que si APT dispose de la cl publique pour authentier les archives de paquetages. Pour installer une cl APT, utilisez la commande apt-key :
root# apt-key add fichier_de_cle.gpg

GESTION DES LOGICIELS ET DES PAQUETAGES

351

Exemples
Actualiser les informations dAPT

Avant dinstaller des paquetages, il est prfrable de lancer apt-get update pour tlcharger les dernires informations des dpts. Cette commande ninstalle pas de paquetage et nen met pas jour. Il ne sagit que des descriptions des paquetages !
root# apt-get update Atteint http://archive.canonical.com hardy Release.gpg ...

Installer des paquetages

Vous pouvez ensuite lancer apt-get install, auquel il faut donner le nom exact du paquetage. Si la commande dtecte des dpendances non rsolues, elle propose de tlcharger et dinstaller les paquetages manquants.
root# apt-get install wine Lecture des listes de paquets... Fait Construction de larbre des dpendances Lecture des informations dtat... Fait Les paquets supplmentaires suivants seront installs: binfmt-support samba-common smbclient smbfs winbind Les NOUVEAUX paquets suivants seront installs: binfmt-support winbind wine Les paquets suivants seront mis jour: samba-common smbclient smbfs 3 mis jour, 3 nouvellement installs, 0 enlever et 273 non mis jour. Il est ncessaire de prendre 17,5Mo dans les archives. Aprs cette opration, 60,8Mo despace disque supplmentaires seront utiliss. Souhaitez-vous continuer [O/n]? o ...

Supprimer des paquetages Actualiser des paquetages Installer un paquetage de code source Afficher des informations sur les paquetages

apt-get remove paquetage supprime le paquetage indiqu. Les paquetages installs en tant que dpendances de ce paquetage ne sont pas dsinstalls. apt-get upgrade permet de mettre jour tous les paquetages dj installs. apt-get source paquetage installe le code source du paquetage dans le rpertoire courant. apt-cache permet dafcher diverses donnes sur les paquetages disponibles et ceux dj installs (voir man apt-cache pour plus dinformations sur la syntaxe).
root# apt-cache show apache2 Package: apache2 Priority: optional Section: web ... Description-fr: Serveur web de prochaine gnration, modulable et volutif Apache v2 est la prochaine gnration de lomniprsent serveur web Apache. Cette version - totalement rcrite - introduit de nombreuses nouvelles amliorations comme le threading (excution de processus lgers indpendamment du programme principal), une nouvelle API, le support de lIPv6, le filtrage de la requte/rponse, et plus encore. ...

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

Tlchargements et mises jour automatiques


APT est normalement install de manire que seuls quelques chiers de conguration doivent tre adapts pour tlcharger et installer automatiquement les mises jour. Sous Ubuntu, le paquetage unattended-upgrades contient les chiers de conguration ncessaires. Le point de dpart de la conguration est le programme cron qui lance le script /etc/ cron.daily/apt tous les jours. Les tches menes bien par ce script dpendent de deux chiers de conguration. 10periodic indique quelle frquence les listes de paquetages sont mises jour (par exemple, 3 signie "tous les trois jours"), si les paquetages doivent tre tlchargs, sils doivent tre installs automatiquement et quelle frquence apt-get autoclean doit tre lanc (0 signie "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 dpts sont pris en compte pour les mises jour automatiques (par dfaut, uniquement les dpts de mises jour de scurit critiques). Chaque dpt est dcrit par deux informations : son origine et son nom.
Unattended-Upgrade::Allowed-Origins { "Ubuntu hardy-security"; // "Ubuntu hardy-updates"; };

21.6 Synaptic
Installer des paquetages

Il existe dinnombrables interfaces graphiques APT. Lune des plus populaires est Synaptic. Pour installer un paquetage, cherchez-le avec le bouton Rechercher ou directement dans la liste, cliquez dessus du bouton droit et choisissez Slectionner pour installation (voir Figure 21.2). Si le paquetage dpend dautres paquetages, une bote de dialogue avec tous les paquetages supplmentaires devant tre installs apparat. Vous pouvez afcher la liste de tous les paquetages slectionns en cliquant sur le bouton Filtres, puis Changements en le dattente. Linstallation commence lorsque vous cliquez sur Appliquer, qui afche un rsum de toutes les actions mener. Une fois ce rsum conrm, Synaptic lance toutes les oprations dinstallation. Les modications sont enregistres et disponibles dans Fichier > Historique.

GESTION DES LOGICIELS ET DES PAQUETAGES

353

Figure 21.2
Gestion de paquetages avec Synaptic.

Administration des dpts

Les dpts sont congurs dans Conguration > Dpts. Vous pouvez les activer ou les dsactiver rapidement, modier ceux qui sont prdnis ou en ajouter de nouveaux.

Problmes
Vous pouvez rencontrer certains problmes avec Synaptic. Les points suivants rsument lorigine et les solutions des plus courants.
Verrous

Vous ne pouvez lancer quun seul gestionnaire de chiers la fois. Si vous essayez den lancer deux en mme temps, vous obtiendrez une erreur du type unable to get exclusive lock. Cela signie que le programme ne peut pas accder aux chiers de gestion de paquetages. Vous devez donc arrter lun des deux programmes. Il arrive aussi que cet avertissement apparaisse mme lorsque aucun autre gestionnaire nest lanc : cest le cas si un programme ne supprime pas le chier de verrou lorsquil est termin. Il suft alors de supprimer le chier en question :
root# rm /var/lib/dpkg/lock

Paquetages casss

Il arrive, dans de rares cas, que linstallation ou la dsinstallation dun paquetage ne fonctionne pas ou que lopration ne se termine pas bien. Le paquetage est alors marqu comme cass. Synaptic et les autres programmes de gestion de paquetages refuseront dobir vos ordres tant que ce problme ne sera pas rsolu. Dans Synaptic, cliquez sur Filtres, puis sur Casss pour afcher une liste de tous les paquetages casss. Slectionnez-les tous avec Ctrl+A, cliquez du bouton droit sur la liste, puis

354

LINUX

choisissez Slectionner pour rinstallation. Cliquez sur Appliquer. Si cela ne rsout pas le problme, supprimez les paquetages en question.

22.7 Aptitude
Le programme aptitude est galement bas sur APT. Il peut tre utilis en ligne de commande (aptitude install nom_du_paquetage) ou en tant que programme indpendant dans une console. Pour cela, lancez aptitude sans paramtre supplmentaire ; Ctrl+T permet dafcher le menu (voir Figure 21.3).

Figure 21.3
Gestion des paquetages avec Aptitude.

Utilisation en ligne de commande

Lutilisation daptitude nest pas aussi confortable que celle de Synaptic, mais il prsente un avantage dcisif : il note quels paquetages ont t installs comme dpendances et les supprime automatiquement lorsquils ne sont plus utiles. De plus, il installe galement les paquetages "conseills" en parallle des paquetages installer et de leurs dpendances. aptitude peut galement tre install en ligne de commande. Son utilisation ressemble celle de apt-get. Les deux commandes suivantes installent le paquetage claws-mail-plugins et le suppriment. Remarquez la suppression des paquetages installs par le jeu de dpendances.
root# aptitude install claws-mail-plugins Lecture des listes de paquets... Fait ... Les NOUVEAUX paquets suivants vont tre automatiquement installs: claws-mail-bogofilter claws-mail-dillo-viewer claws-mail-pgpinline claws-mail-pgpmime claws-mail-spamassassin claws-mail-trayicon dillo ...

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 utiliss et vont tre ENLEVS: 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 quau format RPM et que vous dsirez linstaller sur un systme Debian ou Ubuntu ? Ou lorsque vous souhaitez seulement voir quelques chiers dun paquetage RPM ? La rponse ces deux questions est le programme alien. Cette commande convertit les paquetages entre diffrents formats : RPM, DEB, archives tar. alien ne fonctionne cependant que pour les paquetages simples. Si un paquetage fait appel des scripts dinstallation ou des proprits spciques dun format de paquetages donn, linstallation chouera probablement. Il sagit globalement dun outil pour les utilisateurs avancs 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 lutilisateur root pour que les permissions et droits daccs 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 chier donn dun paquetage RPM. Celui-ci est transform en archive tar et la commande tar est ensuite utilise pour extraire le chier.
root# alien --to-tgz paquetage.rpm root# tar -xzf paquetage.tgz ./usr/share/doc/packages/paket/TODO

22

Systme XWindow
Le systme XWindow (en abrg, X) est un ensemble de fonctions et de protocoles qui permet dafcher des informations graphiques lcran et de grer le clavier et la souris. Ces fonctions sont galement disponibles sur le rseau. Une premire implmentation de XWindow provenait du projet XFree86. Il sagissait au dpart dun systme dvelopp uniquement pour les processeurs compatibles Intel x86, mais il a t adapt depuis presque toutes les architectures de processeurs et dinnombrables drivs dUnix. Le projet X.org a vu le jour partir de la version 4.4 de XFree86, suite des diffrends entre les dveloppeurs de XFree86 concernant une modication 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 dcrit diffrents aspects de la conguration dun serveur X, y compris linclusion de pilotes binaires dATI/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 dinformations sur X et X.org ladresse http://www.x.org.

22.1 Glossaire
Cette section claircit quelques notions de base et concepts auxquels vous serez probablement confront lors de la conguration de X.
Systme XWindow

Le systme XWindow (abrg en X) ne dnit que les fonctions de base pour dessiner des points, des rectangles, etc. Il contient galement un protocole rseau qui permet de lancer un programme X sur lordinateur A et dafcher les rsultats sur lordinateur B. Fin 2007, la version actuelle de X.org (7.3) se base sur X11R7.3. Le systme XWindow a t dvelopp au dpart par le MIT. X est la base dune interface graphique pour Linux, mais il nest pas en soi une interface graphique. Laspect des programmes X et leur utilisation dpendent des bibliothques utilises par les programmeurs (par exemple, GTK pour Gnome, QT pour KDE) et du gestionnaire de fentre actif. Le serveur X est linterface entre le systme XWindow et le matriel (carte graphique, souris, etc.). Ce serveur est modulaire : il est tendu par des fonctions spciales pour chaque carte graphique. Les fonctions standard du serveur X peuvent tre tendues par divers modules dextension, par exemple pour les graphismes 3D, une sortie vido plus rapide, etc. Le serveur X sait exploiter un cran virtuel plus grand que la rsolution effective du moniteur. Par exemple, lcran virtuel peut avoir une rsolution de 1600x1200, tandis que seuls

Serveur X

Modules dextension de X cran virtuel

358

LINUX

Bureaux virtuels

Xinerama Gestionnaire de fentres

Gestionnaire de bureau

1280x1024 pixels safchent lcran. Le changement de zone visible se fait sans ralentissement ds que la souris sapproche du bord de lcran. Comme le fait de travailler avec un cran virtuel demande un peu dhabitude, la plupart des congurations X lvitent. Un cran virtuel peut cependant savrer utile si votre rsolution est trs faible, par exemple sur un vieil ordinateur portable. Un bureau virtuel est une interface graphique largie qui se compose de plusieurs crans (espaces de travail) cte cte. Comme vous navez quun seul moniteur physique, vous ne pouvez voir quun seul bureau la fois. Les bureaux virtuels ne sont pas grs par X, mais par le gestionnaire de fentre ou de bureau (KDE, Gnome). Avec une carte graphique approprie, le serveur X peut exploiter plusieurs moniteurs grce au mode Xinerama. Lespace de travail stale alors sur plusieurs moniteurs. Le gestionnaire de fentres est un programme X qui sert grer les fentres. Vous pouvez ainsi dmarrer dautres programmes (au moins une fentre de terminal xterm), passer dune fentre une autre, dplacer et fermer des fentres, etc. Il sagit de tches trs simples, mais il ne faut pas oublier quelles sont gres par le gestionnaire de fentres et non par X. enlightenment, fvwm et xfce sont des gestionnaires de fentres usuels. Les gestionnaires de bureau, comme KDE ou Gnome, vont au-del des fonctions dun gestionnaire de fentre. Grce aux bibliothques graphiques, les applications KDE et Gnome sont plus unies, la fois au niveau de leur aspect et de leur utilisation. Les communications entre les programmes sont standardises au point que le glisser-dposer entre diffrents programmes fonctionne. Vous trouverez plus dinformations 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 frquent dutiliser X avec un simple gestionnaire de fentre sans gestionnaire de bureau. Il existe cependant des cas o ce choix a un sens, par exemple sur un ordinateur avec peu de mmoire vive ou un processeur lent (KDE et Gnome sont plutt gourmands en ressources). Depuis 2006, il existe des gestionnaires de fentres qui "amliorent" diverses oprations grce aux fonctions 3D de la carte graphique : les fentres sont dformes lorsquelles sont dplaces, les bureaux sont projets sur un cube lorsquon change de bureau, etc. Des effets similaires sont utiliss sous Mac OS X et Windows Vista.

Bureau 3D

Glossaire matriel
Mme si les crans cathodiques se font rares, connatre le fonctionnement dun tel moniteur aide comprendre les paramtres de conguration dune carte graphique. Pour afcher une image, un moniteur cathodique parcourt ligne par ligne toute la surface de lcran avec un faisceau dlectrons et allume des petits points (sauf si ces derniers doivent rester noirs). Pour que limage ne scintille pas, ce processus est rpt plusieurs fois par seconde (au moins 60, de prfrence 70 100 fois). Le balayage de lcran commence dans le coin en haut gauche. Le faisceau dlectrons se dplace vers la droite et parcourt ainsi la premire ligne. Il saute alors au dbut de la deuxime ligne et la traite de la mme manire. Pendant ce retour du faisceau, celui-ci a une intensit nulle pour quil ne soit pas visible. Ce retour est dclench par limpulsion HSync, transmise de la carte graphique au moniteur.

Balayage horizontal (HSync)

SYSTME XWINDOW

359

Balayage vertical (VSync) Frquences

Frquence verticale

Frquence horizontale

Une fois que toutes les lignes ont t balayes et que le faisceau dlectrons se trouve dans le coin en bas droite de lcran, limpulsion VSync dclenche le retour du faisceau en haut gauche. Celui-ci reste teint pendant ce retour, an dviter une trane lumineuse sur tout lcran. La construction dune image est caractrise par trois frquences. Celles-ci sont donnes en Hz (Hertz, soit le nombre doscillations par seconde) ou en multiples de cette unit, par exemple kHz ou MHz. Cette frquence indique combien de fois par seconde lcran est entirement rafrachi. Plus ce nombre est lev, plus la stabilit de limage est grande. Une frquence de 70 images par seconde (70 Hz) assure une image sans scintillement. Cette frquence indique combien de lignes sont parcourues par le faisceau dlectrons en une seconde. Pour une rsolution de 640 480 (480 lignes) une frquence verticale de 60 Hz, la frquence horizontale atteint 31,5 kHz (60 480 = 28,8 kHz, mais il faut garder un peu de temps pour le balayage vertical). Pour une rsolution de 1200 1600 et 85 Hz, la frquence horizontale atteint 110 kHz.
Il ne faut pas dpasser les frquences maximales dun cran cathodique ! Sinon, le faisceau ne peut pas suivre les donnes, des zones de lcran (voire lcran entier) sont claires trop longtemps ou trop souvent, et lcran peut rapidement tre dtruit. Les moniteurs modernes reconnaissent normalement cette situation et dsactivent automatiquement le faisceau ; pour un moniteur plus ancien, le risque de destruction est rel.

Frquence de pixels (dbit vido)

Comparaison entre les crans cathodiques et LCD

DDC (Display Data Channel canal de donnes daffichage)

Cette frquence indique le nombre de pixels qui sont transmis de la carte graphique au moniteur en une seconde. En 640 480 une frquence de 60 Hz, la valeur minimale est de 18,4 MHz. Pour prendre en compte le temps de retour sur le balayage, la frquence vido est normalement plus proche de 25 MHz. Sur un cran plat, limage est construite par de llectronique de pilotage qui rend plus ou moins transparentes des petites parties de la surface de lcran. Il nest donc plus ncessaire de construire limage ligne par ligne. Les moniteurs LCD avec une entre analogique traitent, pour des raisons de compatibilit, les mmes signaux dentre que les moniteurs cathodiques. Le signal est donc converti deux fois : de la carte graphique numrique au cble analogique puis lcran numrique. Cela peut faire lgrement scintiller limage. La qualit est meilleure lorsque le signal est transmis en numrique via un cble DVI entre les prises correspondantes de la carte graphique et de lcran. La qualit de limage nest optimale que lorsque la rsolution du moniteur (par exemple 1280 1024) est respecte avec exactitude. Contrairement aux crans cathodiques, les frquences dimage sont le plus souvent xes (gnralement, entre 60 et 75 Hz). Une frquence trop leve peut entraner un cran noir : aucune image ne safche, car la frquence maximale de llectronique de commande est dpasse. La plupart des moniteurs modernes transmettent leurs rfrences (par exemple, leur frquence maximale) la carte vido par le biais du cble de lcran. Cela permet de reconnatre automatiquement lcran et aide congurer correctement la carte graphique.

360

LINUX

22.2 Problme des pilotes


Avant de dcrire la conguration et lutilisation de X dans les sections suivantes, nous aimerions traiter ici du principal problme de X : la mauvaise prise en charge des cartes graphiques 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.) Limmense majorit des PC et ordinateurs portables actuels dispose dun processeur graphique de lun des trois fabricants ATI/AMD, Intel et NVIDIA Intel ne fournit pas de cartes graphiques, mais uniquement des processeurs. Les solutions graphiques de VIA (principalement en tant que partie de la carte mre) se propagent galement trs vite. Donnons dabord 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 mdiocres et de nombreuses fonctions supplmentaires de la carte graphique restent inutilises, comme les fonctions 3D, la gestion de plusieurs sorties, etc.
ATI/AMD

Jusqu rcemment, ATI/AMD se refusait spcier publiquement les interfaces de ses processeurs graphiques, ce qui a longtemps empch le dveloppement de pilotes 3D libres. Il existait cependant des pilotes ferms gratuits, mais leur prise en charge devenait de pire en pire au l 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 samliore nettement. ATI/AMD ouvre les spcications 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 quIntel coopre beaucoup avec la communaut libre et fournit lui-mme des pilotes libres. NVIDIA reste pour linstant sur ses positions : les accords de licence avec dautres entreprises et les brevets rendent impossibles le dveloppement de pilotes libres et louverture des spcications. NVIDIA fournit en revanche des pilotes ferms gratuits, dont la qualit est globalement meilleure que celle des pilotes dATI/AMD. Les pilotes libres ne prennent en charge que les fonctions 2D (nv) ou ne sont pas encore trs mrs (nouveau). Le pilote libre intgr X ne fonctionne quavec les modles VIA anciens. Pour les plus rcents, vous avez trois possibilits : le pilote VESA (lent), le pilote libre de VIA (qui na pas bonne rputation et qui nest pas intgr X) et un second pilote libre du projet openChrome qui nest pas trs mr. Fin juillet, VIA a publi plus de 800 pages de spcications visant au dveloppement de pilotes libres ; gageons que la situation samliorera rapidement. Vous vous dites peut-tre que la diffrence entre des "vrais" pilotes libres et des pilotes binaires gratuits tient du coupage de cheveux en quatre : limportant est que cela fonctionne. Il existe cependant de bonnes raisons de prfrer les pilotes libres aux pilotes binaires : Les pilotes binaires ne sont pas toujours stables. Cela sest rcemment amlior, mais il nexiste aucune garantie pour le futur.

NVIDIA

VIA

Problmes avec les pilotes non libres

SYSTME XWINDOW

361

Pour que les pilotes graphiques fonctionnent de manire efcace, il est ncessaire de les lier troitement au noyau Linux. Il existe donc entre le pilote rel (propritaire) et le noyau (sous licence GPL) un petit module de noyau qui sert uniquement dinterface entre ces deux parties. De nombreux dveloppeurs de Linux doutent que cette faon de procder soit conforme la GPL et ne la tolrent qu contrecur. Ils dcrivent un tel noyau comme tainted (entach) et dclinent dans ce cas toute responsabilit vis--vis dventuels problmes de stabilit. La proximit avec le noyau a un inconvnient supplmentaire : aprs une mise jour du noyau, le module de la carte graphique doit galement tre actualis pour tre compatible avec le noyau. La complexit de cette opration dpend de la distribution. Dans un cas idal, le pilote est mis jour automatiquement par le gestionnaire de paquetages. Sinon, le systme graphique ne fonctionne plus et vous devez recompiler un module de noyau dans une console. En raison des conits avec la GPL, la redistribution de pilotes ferms est difcile au vu des licences utilises. Pour de nombreuses distributions, vous devez tlcharger et installer vous-mme ces pilotes. Cette opration est plus ou moins complexe suivant la distribution : certaines privilgient le confort des utilisateurs par rapport la stricte observance des idaux libres. Comme le code des pilotes graphiques nest connu que des entreprises correspondantes, il est impossible den contrler la scurit depuis lextrieur. Si un pilote rencontre un problme de scurit (ce qui sest dj produit), les utilisateurs de Linux ne peuvent quesprer que lentreprise concerne fournisse une mise jour rapide pour du code libre, la communaut de dveloppeurs peut sen occuper elle-mme, ce qui va gnralement plus vite. Faute de code, il est impossible de porter les pilotes pour dautres systmes dexploitation, dautres architectures de processeurs, etc. Les entreprises dcident quels systmes sont pris en charge. Par exemple, les architectures 64 bits ont longtemps t exclues de ces pilotes. La prise en charge graphique sous Linux dpend de la bonne volont dune poigne dentreprises. Il est dj arriv quune carte graphique soit soudain inutilisable suite une nouvelle version de X. Jusqu rcemment, on pouvait rsoudre le dilemme des pilotes en se disant que les pilotes libres sufsaient pour la 2D et que les fonctions 3D ne jouaient quun rle mineur sous Linux. Ce nest plus vrai : les bureaux 3D commencent stablir comme des standards. De plus, certains processeurs graphiques ne fonctionnent plus non plus en 2D sans pilote du fabricant. Linux ne peut rester un systme compltement libre que si les principaux composants le sont galement. Et ces derniers comptent videmment les pilotes graphiques. Renseignezvous lors de vos prochains achats de matriel sur le statut des pilotes !

362

LINUX

22.3 Dmarrer et arrter X


Cette section est un aperu des commandes qui permettent de dmarrer et darrter X. La faon de procder dpend de la distribution.
Dmarrage automatique

En gnral, le processus InitV dmarre X automatiquement par le biais dun gestionnaire dafchage (Display Manager). Selon la distribution et la conguration, trois programmes peuvent jouer ce rle : xdm, sa variante KDE kdm ou sa variante Gnome gdm. Une bote de dialogue de connexion safche gnralement il arrive que le gestionnaire de bureau soit congur de manire connecter automatiquement un utilisateur donn. Les dtails du processus de dmarrage dpendent fortement de la distribution. Sous Fedora et Red Hat, /etc/inittab contient une ligne qui lance X au niveau dexcution 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 dexcution 2 5. Sous SUSE, il lance le script /etc/init.d/xdm au niveau dexcution 5.
Redmarrer X

Les modications dans la conguration de X ne sont prises en compte quaprs un redmarrage. Pour cela, dconnectez-vous. Lorsque le gestionnaire dafchage afche la bote de dialogue de connexion, saisissez la combinaison de touches Ctrl+Alt+Retour Arrire. X est alors termin et gnralement redmarr immdiatement. Si X ne redmarre 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

Arrter X

X fonctionne normalement jusqu larrt de lordinateur sans quil faille larrter. Vous pouvez connecter et dconnecter nimporte quel utilisateur. X fonctionne aussi lorsque aucun utilisateur nest connect et afche, dans ce cas, la bote 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 dsirez rellement arrter X (par exemple, pour effectuer des tches de conguration), dconnectez-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 procdure fonctionne dans de nombreuses distributions, comme Fedora, Red Hat et SUSE.
root# init 3

En ce qui concerne les distributions bases sur Debian (Debian, Ubuntu), vous devez dans cette mme console texte arrter le gestionnaire dafchage gdm, kdm ou xdm.
root# /etc/init.d/gdm|kdm|xdm stop
Dsactiver le dmarrage automatique

Il est parfois ncessaire de dsactiver le dmarrage automatique de X, par exemple lorsquon utilise lordinateur en tant que serveur. Sous Red Hat, Fedora et SUSE, il suft de rduire le niveau standard dexcution de InitV et de le passer de 5 3. Pour cela, modiez la ligne initdefault dans /etc/inittab.
# Niveau dexcution par dfaut : 3 (multi-utilisateur sans X) id:3:initdefault:

SYSTME XWINDOW

363

Cette modication est prise en compte au redmarrage de lordinateur. Pour ractiver le dmarrage automatique, repassez au niveau dexcution 5 par dfaut. La procdure est diffrente pour les distributions bases sur Debian. Le niveau dexcution nest pas modi, mais le dmarrage automatique du gestionnaire dafchage est supprim. Remplacez si ncessaire 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 ractiver le dmarrage automatique, les deux commandes suivantes sont ncessaires. Les valeurs 30 et 1 indiquent les valeurs de priorit pour le dmarrage et larrt du service. Elles varient selon la distribution ; celles indiques ici sont les valeurs par dfaut dUbuntu 8.04.
root# update-rc.d -f gdm remove root# update-rc.d gdm defaults 30 1
Dmarrer manuellement X

Lorsque X nest temporairement pas lanc, il existe deux possibilits pour le dmarrer manuellement. Jusqu ce que la conguration soit stable, utilisez de prfrence la premire. startx. Cette commande dmarre directement X. Il ny a pas de bote de dialogue de connexion. Lutilisateur qui lance startx est lutilisateur connect sous X. Certaines distributions (Fedora jusqu sa version 7 et RHEL jusqu sa version 5.n) sappuient sur le fait quun serveur de polices est lanc avant le dmarrage de X. Si vous lancez X manuellement, ce nest pas le cas. Vous devez alors dmarrer aussi manuellement le serveur de polices (ce qui nest faisable quen tant que root).
root# /etc/init.d/xfs start utilisateur$ startx

Dmarrage avec un gestionnaire dafchage. Dans de nombreuses distributions, vous devez pour lancer le gestionnaire dafchage passer au niveau dexcution 5 :
root# init 5

Pour les distributions bases sur Debian, il faut lancer explicitement le gestionnaire dafchage :
root# /etc/init.d/gdm|kdm|xdm start

Fichiers de journalisation de X
Au dmarrage de X, dinnombrables messages, avertissements, voire messages derreur sont enregistrs dans le chier /var/log/Xorg.0.log. Ce dernier contient des informations supplmentaires sur le chier de conguration utilis, les modules chargs, les problmes rencontrs, le mode graphique utilis ou encore les raisons de cette utilisation. Les lignes de ce chier sont annotes par les codes suivants : (**) paramtre provenant du chier de conguration (++) paramtre provenant de la ligne de commande (==) paramtre par dfaut de X

364

LINUX

(--) paramtre rsultant du matriel dtect (!!) information (II) information (WW) avertissement (EE) erreur Sil existe plusieurs chiers de journalisation pour X dans /var/log, utilisez le plus rcent. En raison de la grande quantit dinformations dans le chier Xorg.0.log, chercher des informations pertinentes revient chercher une aiguille dans une botte de foin. Le plus simple est alors denvoyer le chier en question quelquun qui sy connat mieux ou de le poster dans un forum daide.

Dterminer la version de X
Pour connatre 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 numro 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 lances que lorsque le chier de conguration /etc/X11/xorg.conf existe. Si celui-ci est absent ou erron (par exemple, si vous changez de carte graphique), le dmarrage de X choue. Vous devez alors vous connecter dans une console texte et modier xorg.conf avec un diteur ou un autre programme de conguration. Le serveur X est normalement congur pendant linstallation. Si X fonctionne sans soucis sur votre ordinateur, vous pouvez passer cette section. Mais si vous avez un problme avec lcran, la souris ou le clavier, cette section et les suivantes vous seront utiles.
Cette section sadresse aux lecteurs qui sintressent la configuration interne de X ou qui ont des problmes de configuration. Normalement, vous ne devriez pas modifier x.org manuellement, mais utiliser les outils de configuration de votre distribution : Debian Fedora, Red Hat

dpkg-reconfigure xserver-xorg system-config-display

SYSTME XWINDOW

365
Module YaST Matriel, Carte graphique et moniteur ou sax2

SUSE Ubuntu ( partir de 7.10) Toutes les distributions

display-config-gtk X -configure ou xorgcfg ou xorgconfig

Depuis la version 7.3, le serveur X.org reconnat lui-mme le matriel. Grce ces donnes, X peut dmarrer sans chier de conguration (au moins, dans un mode graphique restreint).

Construction du fichier de configuration xorg.conf


Le chier /etc/X11/xorg.conf se divise en plusieurs sections prxes dune ligne Section "nom" et termines par EndSection. Voici les diffrents noms de sections :
Sections du fichier xorg.conf Monitor Device Screen ServerLayout Files Module ServerFlags Modes InputDevice InputDevice donnes du moniteur configuration de la carte graphique rsolution de lcran assemblage des sections Screen et InputDevices noms de fichiers (par exemple, rpertoire de polices) modules supplmentaires (par exemple, freetype, dri) options diverses du serveur modes vido (rsolution, frquence, etc.) configuration du clavier configuration de la souris

Un chier de conguration classique ne contient quune partie de ces sections. X utilise dans ce cas les paramtres par dfaut ou tente de dtecter lui-mme le matriel. Les lignes suivantes offrent un exemple minimal de conguration. Une de mes machines de test dispose dune carte graphique NVIDIA et dun cran LCD ; elle fonctionne sans problme avec ce chier de conguration. Cet exemple suppose quun serveur de polices fonctionne ou que les polices se trouvent dans les rpertoires de polices par dfaut. Si ce nest pas le cas, vous devez indiquer dans une section Files lemplacement des chiers de polices. X reconnat la bonne rsolution de lcran et la souris.
# /etc/X11/xorg.conf Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "InputDevice"

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 srement que toutes les sections incluent une ligne Identifier. Elle donne un nom la section. Les noms sont utiliss pour agencer des sections individuelles. Par exemple, la section ServerLayout fait appel Screen0 et Keyboard0. Certaines congurations incluent galement des chanes de caractres telles que Board, Vendor ou ModelName. Ces informations ne servent qu rendre plus clair le chier de conguration. Elles ne sont pas utilises par X et nont aucune relation avec les fonctions de X. man xorg.conf est une rfrence complte des mots cls et sections de xorg.conf.

Section Monitor (cran)


La section Monitor ne ncessite gnralement que deux informations : lintervalle de frquences horizontales (en kHz) et lintervalle de frquence dimage (en Hz). Les valeurs suivantes conviennent pour un cran LCD 20" dot dune rsolution de 1600x1200 pixels une frquence maximale de 75 Hz :
Section "Monitor" ... HorizSync 30-95 # 30 95kHz (lignes/sec) VertRefresh 58-78 # 58 78Hz (images/sec) EndSection

Pour un cran cathodique traditionnel, la frquence dimage doit tre plus leve pour afcher des images sans scintillement. Les donnes suivantes sappliquent un moniteur 19" cathodique classique. Attention, des valeurs leves pour ces deux intervalles peuvent mener la destruction de votre cran cathodique !
HorizSync 27-102 # 27 bis 102kHz (lignes/sec) VertRefresh 50-160 # 50 bis 160Hz (images/sec)

SYSTME XWINDOW

367

En pratique, ces valeurs sont rarement renseignes lorsquun cran LCD est branch. La section ne sert alors qu indiquer les ventuelles options, comme lconomie dnergie 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 rpertoire /usr/ lib[64]/xorg/modules/drivers.
Choix du pilote

Si vous ne savez pas quelle carte graphique vous avez, lancez lspci :
root# lspci ... 01:00.0 VGA compatible controller: ATI Technologies Inc M10 NT [FireGL Mobility T2] (rev 80)

Le rsultat nindique cependant pas toujours le pilote graphique ncessaire. Dans ce cas, les notes de version de X.org (http://www.x.org/wiki/XorgReleases) sont trs utiles, tout comme les pages de manuel qui sont indiques. Par exemple, man radeon offre des informations sur le pilote Radeon et man nv sur le pilote NVIDIA de X.org. Si vous navez pas de chance, votre carte graphique nest pas encore prise en charge par X.org, ou alors partiellement. Il sagit peut-tre dun problme de dtection de la carte : vous avez indiqu le bon module dans la section Device, mais X ne reconnat pas la carte. Dans ce cas, vous pouvez essayer dindiquer lidentiant dune carte compatible avec loption ChipID (par exemple ChipID "0x1234"). Le chier pci.ids fournit une liste didentiants valides. Lemplacement de ce chier dpend de la distribution : /usr/share, /usr/share/ hwdata ou /var/lib/misc. Les forums de discussion peuvent galement tre un bon point de dpart 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 limites.
Options spcifiques aux pilotes

Presque tous les pilotes disposent doptions pour dnir des paramtres spciaux, contourner des problmes ou activer des fonctions particulires. Nous ne pouvons pas les dcrire ici pour des raisons de place. Vous trouverez des informations dtailles sur ces options dans les pages de manuel correspondant aux pilotes (par exemple man radeon). Les lignes suivantes illustrent, par exemple, lutilisation de loption DisplayPriority, ncessaire sur un ordinateur portable pour obtenir une image stable sur un moniteur TFT reli la station daccueil :
Driver "radeon" Option "DisplayPriority" "High"

368

LINUX

Le tableau suivant recense les pilotes les plus frquemment utiliss.


Pilotes utiliss frquemment par marque de carte graphique ATI/AMD Intel NVIDIA Autres radeon, fglrx, radeonhd, ati intel, i810 nv, nvidia, nouveau vesa, fbdev, vga

Section Screen (rsolution, nombre de couleurs)


La section Screen lie le moniteur et la carte graphique, et indique quelle rsolution et quelle profondeur de couleurs la carte graphique doit tre utilise. Chaque chier xorg.conf doit disposer dune section Screen ; pour une conguration multi-crans, plusieurs sections sont ncessaires. Les mots cls Device et Monitor indiquent la carte graphique et lcran utiliser parmi ceux dj dnis. DefaultDepth dnit la profondeur de couleurs par dfaut ; il sagit 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 Display

Dans la section Screen, plusieurs sous-sections Display peuvent tre dnies pour plusieurs profondeurs de couleurs. Dans lexemple ci-aprs, un seul mode est dni, pour des couleurs 24 bits :
Section "Screen" Identifier Device DefaultDepth Depth Modes EndSubSection EndSection "Screen0" "Videocard0" 24 24 "1280x1024"

SubSection "Display"

La ligne Modes, optionnelle, peut dnir la rsolution souhaite. Si cette ligne est omise ou contient une rsolution invalide, X dtermine automatiquement la meilleure rsolution adapte lcran et la carte graphique. Il utilise pour cela une base de donnes de modes qui contient les paramtres de rsolutions dnis par les modes VESA VESA signie Video Electronics Standard Association et dnit une srie de normes suivies par la plupart des cartes graphiques. Il nest malheureusement pas possible de congurer directement la frquence dimage. X dnit cette valeur lui-mme en fonction des donnes de lcran et de la carte graphique. La section Display peut aussi dnir la taille dun cran virtuel. Par exemple, Virtual 1600 1200 dnit un cran virtuel de 1600x1200 pixels, quelle que soit la rsolution relle de lcran.

SYSTME XWINDOW

369

Si la ligne Modes dfinit plusieurs rsolutions valides, X utilise la premire comme paramtrage de base. Vous pouvez ensuite passer entre les diffrentes rsolutions avec Ctrl+Alt++. Vous devez pour cela utiliser la touche + du pav numrique.

Section ServerLayout
La section ServerLayout lie les sections Screen et InputDevice. Gnralement, un chier de conguration ne contient quune 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 schma :
Section "ServerLayout" Identifier "Layout0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" Screen "Screen0" EndSection
Xinerama

La section ServerLayout est particulirement importante lorsque plusieurs moniteurs sont utiliss en mme temps. Il faut alors activer le mode multi-crans avec Option "Xinerama" "On" et dnir une section Screen par cran. La conguration minimale pour deux moniteurs est indique ci-aprs. Notez que vous avez aussi besoin de deux sections Device, mme lorsquil ny a quune 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

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 dispositions

On peut dnir plusieurs sections ServerLayout pour diffrents scnarios dutilisation, par exemple Layout0 pour utiliser un portable de manire classique, Layout1 pour une prsentation sur un vidoprojecteur et Layout2 pour utiliser un moniteur externe. Loption DefaultServerLayout dans la section ServerFlags permet de choisir la disposition par dfaut.

Section Files
La section Files permet dindiquer divers rpertoires depuis lesquels le serveur X charge des chiers. Ils ne sont ncessaires que lorsquils diffrent des rpertoires par dfaut. Nous parlerons des rpertoires FontPath la section 22.14.

Section Module
La section Module contient, grce au mot cl Load, diffrents modules dextensions charger par le serveur X :
Section "Module" Load "extmod" ... EndSection

SYSTME XWINDOW

371

La section Module est optionnelle : la plupart des modules importants sont chargs automatiquement. Les chiers de modules se trouvent le plus souvent dans les rpertoires /usr/ lib[64]/xorg/modules/extensions et /usr/lib[64]/xorg/modules/fonts. Le tableau suivant indique les principaux modules.
Modules importants extmod v4l dri glx dbe freetype type1 speedo extensions souvent installes dans X, presque toujours essentielles Video 4 Linux (vido pour Linux) Direct Rendering Infrastructure (infrastructure de rendu direct) interface du protocole OpenGL X Double Buffering Extension (extension de tampon double) prise en charge des polices TrueType prise en charge des polices Adobe-Type-1 prise en charge des polices Bitstream

Section ServerFlags
La section ServerFlags contient des options qui inuent sur le comportement du serveur X :
Section "ServerFlags" Option "DontZap" "on" Option "DefaultServerLayout" "Layout2" EndSection

Une description complte de toutes les options se trouve dans man xorg.conf. Voici les plus importantes : AllowMouseOpenFail (par dfaut, off) permet X de dmarrer mme lorsquil choue initialiser ou reconnatre la souris. DefaultServerLayout indique la section ServerLayout utiliser par dfaut. Cette option nest ncessaire que lorsque xorg.conf contient plusieurs sections ServerLayout. DontZap (par dfaut, off) dsactive, lorsquelle est on, la terminaison immdiate du serveur X avec la combinaison de touches Ctrl+Alt+Retour Arrire. DontVTSwitch (par dfaut, off) dsactive, lorsquelle est on, le passage une console texte avec Ctrl+Alt+Fn.

Dfinir ses propres modes graphiques


X dispose dune base de donnes qui contient toutes les rsolutions et frquences dnies par VESA. Si vous utilisez lun de ces modes (par exemple, avec la ligne Modes "1280x1024"), il est inutile de vous occuper de la manire dont ils sont dnis.

372

LINUX

Si vous dsirez utiliser une autre rsolution (ce qui peut tre ncessaire sur certains ordinateurs portables dont lcran utilise une rsolution non standard, par exemple 1024x600) ou atteindre une frquence donne, vous devez indiquer vous-mme les paramtres du mode graphique souhait. Pour cela, lancez la commande ModeLine dans la section Monitor. Vous pouvez aussi dcrire ces paramtres dans une sous-section dlimite par Mode et EndMode. Ces oprations sont rares aujourdhui. 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)

DGA

Les lecteurs vido sous Linux (voir Chapitre 11) afchent, lorsque cest possible, les images sur lextension XVideo (en abrg, XV) grce de la mmoire partage de la carte graphique. Cette mthode ncessite le module de noyau v4l2 (Video 4 Linux version 2). Elle est trs efcace, mais ne fonctionne que lorsque le pilote de la carte graphique prend en charge XV, ce qui nest malheureusement pas toujours le cas. Si cest le cas, lextension X correspondante est normalement active 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 dinformations propos de diverses fonctions XVideo. Si le rsultat est no adaptors present, XV nest pas utilisable. Vous trouverez dautres informations sur XV et Video 4 Linux aux adresses http://linuxtv.org/ v4lwiki/index.php/Main_Page et http://www.exploits.org/v4l. Si le pilote de votre carte graphique ne prend pas en charge XV, DGA fonctionne peuttre. linstar de XV, il est activ automatiquement si le pilote reconnat 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 modle : atimisc. Pilote libre pour les cartes graphiques trs anciennes avec un processeur Mach8/32/64. r128. Pilote libre pour les cartes disposant dun processeur graphique ATI Rage128 (comme Rage Fury, XPERT 128). radeon. Pilote libre pour les cartes graphiques actuelles disposant dun processeur graphique Radeon et de la prise en charge des fonctions 3D pour tous les modles R100 R400. ati. Pilote libre qui active lun des trois pilotes cits ci-dessus en fonction du modle. radeonhd. Pilote libre pour les cartes graphiques R500 et suprieures. Il ne dispose pas encore de la prise en charge des fonctions 3D, mais cela devrait changer rapidement au vu de louverture des spcications des cartes ATI/AMD. Ces pilotes sont, en juillet 2008, en cours de dveloppement.

SYSTME XWINDOW

373

fglrx. Pilote propritaire pour les modles Radeon partir du R300. Il prend en charge toutes 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 forcment en charge toutes les fonctions des cartes graphiques et est sensiblement plus lent que fglrx. Jai personnellement test les deux pilotes sur mon portable dot dune carte ATI Mobility T2 (famille R300). Depuis X.org version 7.2, radeon suft mes besoins : la sortie DVI fonctionne jusqu une rsolution 1600x1200 dans scintillement et les fonctions 3D permettent lutilisation du bureau 3D AIGLX.
Le nom de la carte graphique nindique pas quel processeur graphique est utilis. La page Wikipedia suivante savre souvent utile : http://en.wikipedia.org/wiki/Comparison_of_ATI_Graphics_Processing_Units.

Pilote radeon
Le pilote radeon fait partie du systme X.org ; il nest pas ncessaire de linstaller sparment. La conguration xorg.conf minimale se compose des lignes suivantes :
Section "Device" Identifier "Device0" Driver "radeon" EndSection

man radeon fournit une rfrence complte des diverses options associes au pilote.

Pilote fglrx
Seules quelques distributions fournissent directement le pilote fglrx. Cependant, il existe souvent des dpts qui contiennent des paquetages pour le pilote correspondant au noyau courant. Linstallation est alors un jeu denfant : le pilote est install avec les commandes habituelles du gestionnaire de paquetages, une fois le dpt ajout. Pour activer le pilote, lancez la commande aticonfig --initial. Elle modie xorg.conf pour quil contienne une rfrence au pilote fglrx :
Section "Device" Identifier "Device0" Driver "fglrx" EndSection

aticonfig permet galement de mettre en place des congurations plus avances, par exemple pour utiliser plusieurs moniteurs (aticonfig --initial=dual). La nouvelle conguration xorg.conf nest fonctionnelle que lorsque vous redmarrez X. Pour que les fonctions 3D de la carte soient effectivement utilises, il faut que les conditions suivantes soient remplies : xorg.conf doit contenir linstruction Load "dri" dans la section Modules.

374

LINUX

Lextension Composite doit tre dsactive explicitement :


Section "Extensions" Option "Composite" "Disable" EndSection

Installation manuelle

Le module du noyau fglrx doit tre charg, ce dont se charge normalement le serveur X au dmarrage. Pour savoir si ce module est effectivement actif, le plus simple est de lancer lsmod |grep fglrx. Sil nest pas charg, il nest probablement pas install ou incompatible avec la version courante du noyau. Si votre distribution ne dispose pas de paquetages pour les pilotes, vous devez les installer manuellement. Pour cela, installez tous les programmes ncessaires la compilation dun module du noyau (compilateur C, make, chiers den-ttes du noyau, etc.). Tlchargez ensuite le pilote la page http://ati.amd.com/support/driver.html, rendez le chier tlcharg excutable avec chmod u+x et lancez-le en root.

Pilote radeonhd
Le pilote radeonhd est fourni dans certaines distributions et il suft alors de linstaller. Les pages http://wiki.x.org/wiki/radeonhd et http://www.radeonhd.org/ fournissent des informations 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 rcents (G33, Q33, Q35). Les deux pilotes font ofciellement partie de X ; il nest donc pas ncessaire de les installer en sus. Ils prennent en charge les fonctions 3D. Les performances de ces dernires ne sont certes pas comparables avec celles des cartes ATI et NVIDIA actuelles, mais elles sont amplement sufsantes 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. Dans la plupart des cas, la section Device ne ncessite pas doption spcique. Il faut nanmoins indiquer une exception lorsquun ordinateur portable est utilis avec un vidoprojecteur ou lorsque deux moniteurs sont utiliss en mme temps. Vous trouverez plus dinformations ce sujet dans la page de manuel du pilote et la section 22.11. Les processeurs graphiques Intel prennent en charge peu de rsolutions par dfaut. En particulier, les crans larges (rsolutions 1280x800, 1440x1050, etc.) manquent souvent. Pour utiliser de telles rsolutions, le Bios du processeur graphique doit tre modi. Le pilote intel actuel reconnat ces rsolutions, mais ce nest pas le cas du pilote i810, plus ancien. La commande 915resolution peut aider rsoudre les problmes lis au pilote i810 pour les distributions qui ne fournissent pas encore intel. La page web de ce projet se trouve ladresse http://www.geocities.com/stomljen/.

Configuration

Modifier la rsolution de lcran

SYSTME XWINDOW

375

22.7 Pilotes NVIDIA


Les utilisateurs de cartes NVIDIA ont le choix entre les pilotes suivants : nv est le pilote libre intgr X, utilisable pour tous les modles courants. Il ne prend pas en charge la 3D et souffre de plusieurs restrictions en ce qui concerne le mode multicrans, lutilisation de la sortie TV, etc. Si vous navez pas besoin de ces fonctionnalits, nv fonctionne sans problme et de manire efcace. nvidia est le pilote propritaire de NVIDIA prenant en charge presque toutes les fonctions. Il est disponible ladresse http://www.nvidia.com/Download/index.aspx. nouveau est un pilote libre plus rcent prenant en charge la 3D. Il nen est cependant quaux dbuts de son dveloppement. Vous trouverez plus dinformations son sujet ladresse http://nouveau.freedesktop.org/wiki/.

Pilote nv
Le pilote nv fait partie du systme X.org et ne ncessite pas dinstallation supplmentaire. La conguration minimale contient les lignes suivantes :
Section "Device" Identifier "Device0" Driver "nv" EndSection

man nv fournit une rfrence des options et des fonctions spciales du pilote.

Pilote nvidia
Seules quelques distributions fournissent directement le pilote nvidia. Il existe cependant souvent des dpts contenant des paquetages pour le pilote correspondant au noyau courant. Linstallation est alors un jeu denfant : le pilote est install avec les commandes habituelles du gestionnaire de paquetages, une fois le dpt ajout. La documentation du pilote NVIDIA est trs complte et se trouve normalement dans un des rpertoires /usr/share/doc/xorg-x11-drv-nvidia* ou /usr/share/doc/NVIDIA*. Pour activer le pilote, lancez la commande nvidia-xconfig en root. Celle-ci modie xorg.conf pour faire rfrence au pilote dans la section Device :
Section "Device" Identifier "Device0" Driver "nvidia" EndSection

xorg.conf

Selon lemplacement 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

376

LINUX

Module du noyau

TwinView

Installation manuelle

Le pilote NVIDIA est incompatible avec lextension DRI de X.org et effectue les oprations correspondantes lui-mme. 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 congurer plus nement lafchage. Il est impratif de disposer du module du noyau nvidia pour que le pilote fonctionne. Sil est absent ou compil pour une version diffrente du noyau, le pilote ne fonctionne pas et X ne peut pas tre dmarr. Le mode TwinView est une alternative intressante Xinerama. Il prsente lavantage de pouvoir faire fonctionner toutes les fonctions 3D en parallle sur les deux crans. De plus, la conguration est relativement simple. Linconvnient est que certains gestionnaires de bureau ou de fentre prsentent dans ce cas des problmes de positionnement de fentres. Vous trouverez plus dinformations ce sujet ladresse http://memoire-grise-liberee.fr.eu.org/nVidia/support/TwinView/. Si votre distribution ne fournit pas de paquetages pour les pilotes ou si ceux-ci ne sont pas jour, vous devez installer le pilote et compiler le module du noyau nvidia vous-mme. Installez dabord les paquetages ncessaires cette compilation (compilateur C, make, chiers den-ttes du noyau, etc.). Sous Ubuntu, assurez-vous que les modules nvidia-glx et linux-restricted-modules ne sont pas installs et que le chier /etc/init.d/nvidia-glx nexiste pas. La dsinstallation du paquetage linux-restricted-modules prsente linconvnient de supprimer tous les paquetages non GPL, y compris ceux dont vous avez ventuellement besoin, par exemple pour votre carte Wi-Fi. Tlchargez le pilote ladresse http://www.nvidia.com/Download/index.aspx. Arrtez X avec init 3 ou /etc/init.d/gdm stop (selon votre distribution), puis lancez le programme dinstallation en tant que root. Pour dsinstaller 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 nexiste pas (encore) de pilote, les trois pilotes suivants peuvent servir de solution durgence. Lafchage est plutt lent et les fonctions 3D inexistantes, mais ils permettent au moins dutiliser un systme graphique. Vous pouvez utiliser tous les modes VESA de votre carte graphique. Ces modes sont des rsolutions standardises. Chacun est dni par trois caractristiques : la rsolution, la profondeur de couleurs et la frquence dimage. Presque toutes les cartes graphiques comprennent, en plus de leurs propres modes, quelques modes VESA. Les lignes suivantes montrent que lutilisation du pilote VESA est trs simple. Si le reste du chier de conguration est correct, tous les modes VESA compris par la carte et par lcran sont pris en charge.
Section "Device" Identifier "myDevice" Driver "vesa" EndSection

Pilote VESA

SYSTME XWINDOW

377

Pilote Framebuffer

Le pilote fbdev accde directement la mmoire de la carte graphique. Il se situe donc un niveau encore plus bas que le pilote VESA. Il devrait fonctionner avec presque toutes les cartes graphiques si le noyau Linux est compil avec la prise en charge de cette opration. Cest le cas si le chier /proc/fb existe. Un prrequis pour utiliser ce pilote est que le mode VGA correct soit choisi au moment de lamorage de lordinateur. Jusquau redmarrage de lordinateur, X ne peut utiliser que ce mode graphique. Pour choisir un mode, passez loption 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 796 797 798 799 834

8 bpp 16bpp (5:5:5) 16bpp (5:6:5) 24bpp 32bpp

768 797 798 799 834

769 784 785 786 809

771 787 788 789 814

874 875 876 877 878

773 790 791 792 824

869 870 871 872 873

775 793 794 795 829

864 865 866 867 868

Vous devez indiquer la bonne chane de caractres pour la ligne Driver de la section Device :
Section "Device" Identifier "myDevice" Driver "fbdev" EndSection
Pilote VGA

Le pilote VGA ne peut afcher que 640x480 ou 800x600 pixels en 4 bits (soit 16 couleurs) ; il est donc la dernire solution envisageable. Vous trouverez plus de dtails avec man vga.

22.9 Clavier
Configuration de base
Il existe deux mcanismes de conguration dun clavier sous X : Xmodmap et Xkb. Ils permettent de modier la disposition du clavier et les touches dtat comme Ctrl, les raccourcis clavier, etc. Xmodmap est considr comme obsolte et devrait tre remplac par Xkb. En pratique, vous utiliserez probablement un mlange des deux : La disposition du clavier est congure dans xorg.conf avec Xkb. Pendant le dmarrage, le gestionnaire dafchage lit les chiers Xmodmap et Xkbmap locaux et globaux. En gnral, les chiers suivants sont pris en compte (lorsquils existent) : /etc/X11/Xkbmap ; ~/.Xkbmap ; /etc/X11/Xmodmap (uniquement lorsquil ny a pas de chier Xkbmap) ; ~/.Xmodmap (uniquement lorsquil ny a pas de chier Xkbmap).

378

LINUX

xorg.conf

Selon la distribution, certaines divergences peuvent apparatre. La syntaxe des chiers Xkbmap et Xmodmap est diffrente : Xkbmap est directement redirig vers setxkbmap et contient une seule ligne doptions pour cette commande (voir man xkbmap), tandis que Xmodmap contient plusieurs instructions (voir man xmodmap). Pour nir, KDE et Gnome permettent de modier la conguration du clavier ; Xkb est alors nouveau utilis. La large diffusion des chiers Xmodmap provient des innombrables pages Internet qui documentent Xmodmap. linverse, Xkb a peu de documentation en ligne. Lutilisation en parallle de ces deux systmes peut cependant mener des incompatibilits. Si vous dsirez modier vous-mme la conguration de votre clavier, il est prfrable de le faire dans xorg.conf ou dans les botes de conguration de KDE ou de Gnome. Si ces solutions ne vous conviennent pas, vous pouvez toujours modier directement les chiers ~/.Xmodmap ou ~/.Xkbmap. La conguration de base du clavier se trouve dans une section InputDevice du chier xorg.conf. Cette conguration minimale est utilise pour un clavier US de 101 touches :
Section "InputDevice" Identifier "myKeyboard" Driver "Keyboard" EndSection

Ce second exemple dnit un clavier franais de 105 touches :


Section "InputDevice" Identifier Driver Option Option Option Option EndSection "Generic Keyboard" "kbd" "CoreKeyboard" "XkbRules" "XkbModel" "XkbLayout"

"xorg" "pc105" "fr"

Lorsque vous congurez vous-mme votre clavier, sans passer par un programme de conguration, vous vous heurtez lnorme quantit doptions et de paramtres, souvent insufsamment documents (voir man 4 keyboard ou man kbd). Voici quelques lments pour rgler les principales options : XkbRules dnit comment les options suivantes sont exploites. En gnral, la bonne valeur est xorg ; les claviers PC-98 sont une exception pour laquelle il faut saisir la valeur xfree98. XkbModel dcrit le clavier. pc101 : clavier US sans touches Windows (valeur par dfaut). pc102 : clavier international sans touches Windows. pc104 : clavier US avec touches Windows. pc105 : clavier international avec touches Windows. abnt2 : clavier brsilien. jp106 : clavier japonais. pc98 : clavier PC-98.

SYSTME XWINDOW

379

Gnome et KDE

macintosh : clavier Apple Macintosh. powerpcps2 : un clavier Apple Power PC. XkbLayout dcrit la disposition des touches sur le clavier, qui dpend du pays. us : clavier anglais US (valeur par dfaut). fr : clavier franais. be : clavier belge. ch : clavier suisse. de : clavier allemand. it : clavier italien. es : clavier espagnol. XkbVariant permet dajouter des paramtres la disposition du clavier. Elle dnit, par exemple, le comportement nodeadkeys qui permet de saisir directement les caractres ~, ^, et `. Par dfaut, ils sont utiliss comme caractres de composition pour les caractres accentus. Elle sert aussi dnir des variantes dans une disposition de clavier : le clavier suisse se dcline avec des valeurs de XkbVariant fr ou de. XkbOptions passe des options supplmentaires qui sont transmises setxkbmap -option. Sous KDE, vous pouvez modier la disposition du clavier dans la conguration du systme (Rgional & langue, Disposition du clavier). Sous Gnome, lapplet Indicateur de claviers permet datteindre un rsultat similaire. Ces outils permettent de passer rapidement dune disposition de clavier une autre, par exemple pour saisir du texte en plusieurs langues. Si la modication du clavier dans xorg.conf reste sans effet, cela provient probablement de la conguration clavier du bureau. Indpendamment de la conguration du clavier, les deux gestionnaires de bureau permettent dassocier des raccourcis clavier des actions, par exemple pour lancer rapidement des programmes frquemment utiliss.

Claviers avec touches spciales

De plus en plus de claviers ont des touches rapides, par exemple pour dmarrer un navigateur Internet ou dnir des fonctions bureautiques ou multimdias. 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 nomms lineak*. La conguration de LinEAK est dcrite dans man lineakd et sur le site web http://lineak.sourceforge.net/.

VerrNum et VerrMaj
VerrNum

Par dfaut, le pav numrique nest pas actif sous Linux, an dviter des problmes avec les claviers de portables. Si vous travaillez avec un "vrai" clavier, ce pav peut tre utilis pour dplacer le curseur. La touche VerrNum permet de lutiliser pour saisir des chiffres. Sous KDE, vous pouvez activer VerrNum de manire permanente dans le module Clavier & Souris, Clavier.

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 mme nom. Une fois ce dernier install, VerrNum est activ automatiquement lors de la connexion suivante.
VerrMaj

Si vous activez sans cesse par mgarde le verrouillage des majuscules, vous pouvez dsactiver 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 nai pas trouv comment obtenir le mme comportement avec Xkbmap. Le chier ~/.Xkbmap sassure, en revanche, que VerrMaj peut tre utilis comme une troisime touche Ctrl :
-option ctrl:nocaps

Vous pouvez aussi passer cette option dans la section InputDevice de xorg.conf :
Option "XkbOptions" "ctrl:nocaps"

Saisie de caractres trangers


Il existe plusieurs mthodes sous X pour saisir des caractres trangers qui ne sont pas directement disponibles sur le clavier : La touche Compose runit deux caractres. Par exemple, Compose+A+E saisit le caractre . Selon la conguration, les caractres ~, ^, ou ` sont combins automatiquement avec le caractre suivant. ~+A saisit le caractre . Ce mode est souvent dsactiv avec loption nodeadkeys dans /etc/X11/xorg.conf. Certaines applications ou gestionnaires de bureau (Gnome, KDE et OpenOfce.org par exemple) proposent une bote de dialogue de caractres spciaux, qui permet de choisir le caractre souhait la souris. Les combinaisons de touches dnies par la touche Compose, et mme lexistence dune telle touche dpendent de la distribution. La dnition de cette touche tait auparavant courante, mais la plupart des distributions lont aujourdhui abandonne. Le plus simple est de dnir les combinaisons de touches avec xmodmap. Dans les rsultats prsents ici, la premire colonne indique le code de la touche, la deuxime la touche sans modicateur Maj et la troisime la touche avec le modicateur Maj. Si xmodmap ne renvoie pas de rsultat, aucune touche Compose nest dnie. Le rsultat suivant signie 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)

Touche Compose

Le tableau suivant indique les codes de touches pour les touches de contrle importantes sur un clavier international de PC.

SYSTME XWINDOW

381
sS cS XS bS X

Codes de touches pour les touches de contrle (clavier international de PC) s^ c^ X^ a^ l 50 37 115 64 66 63 109 116 113 117

Si aucune touche Compose nest prvue dans votre distribution, vous pouvez en dnir une simplement : Sous Gnome, lancez gnome-keyboard-properties (Systme > Prfrences > Clavier), cliquez sur le bouton Options de lagencement de longlet Agencements, puis choisissez une option dans le groupe Position de la touche Compose. Malheureusement, les choix sont limits et ne permettent pas de dnir une combinaison de touches. KDE dispose dune conguration similaire, dans le module Rgional & Langue > Clavier > Disposition du clavier. Longlet Avanc permet de dnir la position de la touche Compose. Indpendamment du bureau, ajoutez dans ~/.Xkbmap lune de ces options : -option compose:menu pour la touche Windows de menu contextuel ; -option compose:rwin pour la touche Windows droit qui nest 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 caractres spciaux. La dnition des rgles de composition se trouve dans le chier /usr/share/X11/locale/ jeu_de_caractres/Compose.
Exemples dutilisation de la touche Compose Compose+"+a Compose+`+a Compose+`+a Compose+~+a Compose+o+a
Euro et Cent

Compose+a+e Compose+<+< Compose+>+> Compose+!+! Compose+c+!

Dans toutes les distributions, pour une disposition franaise, AltGr+E est associ au symbole Euro. De mme, AltGr+C afche le symbole Cent.

382

LINUX

22.10 Souris et pav tactile


xorg.conf

linstar du clavier, la souris est congure dans une section InputDevice. Celle-ci est optionnelle. Lorsquelle est absente, X tente de dterminer lui-mme une conguration correcte. Ces lignes illustrent une conguration minimale :
Section "InputDevice" Identifier "myMouse" Driver "mouse" Option "Protocol" "Auto" Option "Device" "/dev/input/mice" EndSection

La conguration de la souris fait appel aux mots cls suivants : Protocol dnit le protocole de communication entre la souris et lordinateur. Voici les diffrents protocoles : Auto demande X de dtecter 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 srie compatible Microsoft. PS/2 est une souris classique PS/2. usb est une souris USB. Device dnit comment la souris est connecte lordinateur. Les valeurs habituelles de ce paramtre sont /dev/input/mousen ou /dev/input/mice, ce qui, dans le second cas, permet dutiliser toutes les souris et pavs tactiles connects en parallle. Buttons indique combien de boutons a la souris. Par dfaut, X suppose que la souris en a trois. Attention, la molette est considre 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 associs une molette. Quand vous dplacez la molette dans un sens, X dtecte un appui sur un bouton. Quand vous la dplacez dans lautre sens, X dtecte un appui sur un autre bouton. Les lignes suivantes fournissent la conguration dune souris molette typique. Elle na que deux boutons mais, comme la molette peut elle-mme tre utilise comme bouton, elle est considre comme une souris trois boutons. Les directions de la molette sont associes aux boutons virtuels 4 et 5.
Option Buttons 5 Option "ZAxisMapping" "4 5"

Emulate3Buttons permet dmuler le comportement dun troisime bouton par un clic simultan sur les boutons droit et gauche. Il sagit dune solution durgence, mais cela peut aider travailler sous X avec une souris deux boutons. Emulate3Timeout indique une dure en millisecondes pendant laquelle lutilisateur doit appuyer sur les deux boutons. Si cette dure est trop courte, lappui presque simultan sur les deux boutons est compt comme deux clics diffrents. Si elle est trop longue, elle interfre avec les clics

SYSTME XWINDOW

383

usuels (car X ne sait pas ce quil doit faire du clic en attendant un ventuel second). Les paramtres pour ces options sont :
Option "Emulate3Buttons" Option "Emulate3Timeout" "50"

Pav tactile
Presque tous les ordinateurs portables actuels disposent dun pav tactile (touchpad) Synaptics ou dun composant compatible. la base, le protocole de ce priphrique mule une souris standard, de sorte quun pilote spcial ne soit pas ncessaire. Pour utiliser diverses fonctions supplmentaires du pav tactile, il existe cependant un pilote, install par dfaut dans la plupart des distributions et gnralement congur automatiquement. Vous trouverez plus dinformations sur synaptics ladresse http://web.telia.com/~u89404340/touchpad/. La conguration dans xorg.conf ressemble gnralement celle-ci :
Section "InputDevice" Identifier "Synaptics" Driver "synaptics" Option "Device" "/dev/input/mice" Option "Protocol" "auto-dev" Option "Emulate3Buttons" "yes" EndSection

xorg.conf

synclient

Loption Emulate3Buttons est ncessaire, car la plupart des modles de pav tactile nont pas de troisime bouton. Des options supplmentaires (voir man synaptics) permettent dactiver toutes les autres fonctions. Pour dsactiver compltement le pav tactile (lorsque vous travaillez avec une souris externe), remplacez la section Synaptics par une section pour la souris, ou utilisez loption "TouchpadOff" "1". Loption "SHMConfig" "on" permet de modier les paramtres du pav tactile sans redmarrage de X. Pour cela, installez la commande synclient ou linterface graphique gsynaptics (Gnome). synclient nom=valeur modie loption indique. synclient -l afche les paramtres courants et synclient -m 100 ltat courant du pav tactile toutes les 100 ms.

22.11 Portable et vidoprojecteur


Quiconque a dj fait une prsentation sous Linux avec un portable connat la sensation de se demander si la synchronisation de limage avec un vidoprojecteur va fonctionner. Et si lcran reste noir, reste-t-il assez de temps pour modier xorg.conf, an de faire cooprer la carte graphique et le vidoprojecteur ? Ou vaut-il mieux lancer Windows pour mener bien la confrence ? Grce OpenOfce.org, ce nest pas un problme, mais vous risquez de ne pas faire bonne impression en tenant une confrence sur Linux avec une prsentation sous Windows... Il est bien sr possible de faire cette prsentation sous Linux : dans 99 % des cas, les combinaisons ordinateur A, vidoprojecteur B et distribution Linux C fonctionnent. Mais il faut en

384

LINUX

Rgles de survie

passer par une conguration manuelle, ce qui demande des comptences techniques, du temps et de la patience. Le quart dheure prcdant votre prsentation risque de ne pas sufre. Passons dabord en revue quelques rgles de survie : Connectez votre portable au vidoprojecteur avant de lallumer. En gnral, lcran interne du portable est alors dsactiv et la sortie de signal est active. Avec un peu de chance, le gestionnaire damorage, les messages InitV et X apparaissent directement sur le vidoprojecteur. Vous pouvez alors paramtrer KDE ou Gnome, an dutiliser la rsolution optimale du projecteur (gnralement 1024x768). Certains portables permettent dactiver explicitement la sortie de signal dans le Bios la sortie nest normalement active que lorsquun moniteur externe ou un vidoprojecteur est connect. Testez la sortie vido de votre portable chez vous avec un autre cran. Vous navez aucune garantie que le projecteur fonctionnera exactement comme votre moniteur, mais ce test est un premier indicateur dventuels problmes. Pendant que vous testez et congurez votre portable, il est prfrable de supprimer le dmarrage automatique de X. Passez en niveau dexcution 3 (init 3) ou arrtez le gestionnaire dafchage. Pour tester vos modications, lancez startx.
Que faire lorsque le vidoprojecteur ou le moniteur externe nont pas dimage lisible, et que lcran du portable est galement noir ? Vous pouvez alors essayer de travailler en mode console, ce qui permet de modifier xorg.conf ou au moins dteindre proprement lordinateur. Si cela ne fonctionne pas, la seule solution consiste redmarrer lordinateur en aveugle. Tapez dabord Ctrl+Alt+Retour Arrire pour terminer X si celui-ci fonctionne encore puis, avant le redmarrage de X, Ctrl+Alt+Suppr pour redmarrer lordinateur.

Configuration minimale

Pour rgler les problmes de vidoprojecteur, commencez par dnir une rsolution xe de 1024 768 dans une frquence horizontale rduite (de lordre de 53 kHz) et une frquence verticale denviron 60 Hz. Ces donnes devraient fonctionner avec la plupart des vidoprojecteurs, y compris les modles plus anciens. Le chier de conguration qui suit montre les modications 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

SYSTME XWINDOW

385

Cette conguration ne garantit certes pas que le vidoprojecteur fonctionnera aprs le redmarrage de X, mais la probabilit est largement amliore.
Si vous testez cette configuration sur un cran normal, il arrive que la frquence dimage ne soit pas de 60 Hz, mais bien plus haute, en contradiction avec la configuration dfinie. Cela provient du fait que la plupart des moniteurs envoient leurs donnes de configuration via DDC (Display Data Channel, canal de donnes daffichage) la carte graphique. Ces donnes ont priorit sur xorg.conf. Certains pilotes permettent de dsactiver explicitement DDC dans la section Device.
Configurations multi-crans

Pour les prsentations, il est encore plus confortable dutiliser une conguration multicrans, dans laquelle lcran du portable et le vidoprojecteur sont utiliss indpendamment lun de lautre. Vous pouvez alors afcher des notes sur votre portable, tandis que seule votre prsentation est visible sur le vidoprojecteur selon mon exprience, OpenOfce.org a cependant souvent des problmes trouver lcran correct pour afcher la prsentation en mode plein cran. Les lignes suivantes illustrent des extraits de xorg.conf dans ce type de conguration. Attention, les options de la section Device dpendent de la carte graphique ! Cet exemple utilise le pilote i810. Les autres sections de lexemple peuvent cependant tre utilises pour toutes les congurations multi-crans : vous devez dnir 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 loption 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 lcran du portable et le vidoprojecteur Section "Monitor" # moniteur du portable, 1280x800 # xorg rcupre lui-mme les donnes ncessaires Identifier "Monitor0" EndSection Section "Monitor" # vidoprojecteur en 1024x768, 60 Hz Identifier "Monitor1" HorizSync 31.5 - 50.0 VertRefresh 58.0 - 62.0 EndSection # deux sections Device, une par cran

386

LINUX

Section "Device" # priphrique pour lcran du portable Identifier "Videocard1a" Driver "i810" BusID "PCI:0:2:0" Screen 0 Option "MonitorLayout" "CRT,LFP" EndSection Section "Device" # priphrique pour la sortie externe (vidoprojecteur) 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 lcran 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" # mme image sur lcran 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 lcran # Option "DefaultServerLayout" "Layout0" # cran et projecteur en multi-crans Option "DefaultServerLayout" "Layout1" EndSection

SYSTME XWINDOW

387

22.12 Graphismes 3D
Les graphismes 3D sous Linux vgtaient auparavant dans lombre. Dune part, en dehors de quelques conomiseurs dcran et jeux isols, il existait peu dapplications 3D. Dautre part, les graphismes 3D rclamaient lutilisation de pilotes binaires. La situation des pilotes sest depuis amliore et, lt 2006, une application majeure a vu le jour : il ne sagit pas dun jeu, mais des effets 3D pour le bureau prsents pour la premire fois par Novell dans SUSE Enterprise Desktop 10. Les fonctions 3D de la carte sont utilises pour dformer les fentres lorsquon les dplace, pour projeter les bureaux sur un cube, etc. Toutes ses fonctionnalits nont pas de relle utilit, mais elles plaisent de nombreux utilisateurs. Cette section traite des bases des graphismes 3D sous Linux. La section suivante prsente les bureaux 3D et des astuces de conguration pour diverses combinaisons matriel/logiciel.
Les concepts affrents la 3D sont bien expliqus sur les pages http://dri.freedesktop.org/wiki/CategoryGlossary et http://jonsmirl.googlepages.com/graphics.html. Vous trouverez plus dinformations 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 grs par OpenGL. Il sagit dune bibliothque dveloppe par SGI pour reprsenter des graphismes 3D, disponible sur presque tous les ordinateurs Unix/Linux. La plupart des programmes et jeux 3D sous Linux sont bass sur OpenGL. Le code dOpenGL ntait pas libre initialement (cela a depuis chang) ; cest pourquoi la bibliothque libre Mesa a t dveloppe. Celle-ci tait au dpart une solution purement logicielle. Comme elle est trop lente pour de nombreux programmes et jeux, elle est gnralement associe sous X au module DRI.

DRI

Le module DRI (Direct Rendering Interface, interface de rendu direct) permet dutiliser 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 modles actuels) et quil existe un pilote DRI pour la carte. Les cartes actuelles dotes de processeurs ATI/AMD et NVIDIA ne peuvent tre actuellement utilises de manire optimale quen installant les pilotes binaires des fabricants. Ceuxci fonctionnent en gnral avec le module DRI de X. Le pilote NVIDIA est une exception : il implmente lui-mme les fonctions de DRI.

GLX

Sous X, les fonctions OpenGL sont utilises via la bibliothque GLX. Cette dernire connecte le systme XWindow OpenGL. GLX sassure, par exemple, que les tches OpenGL ne soccupent que des calculs touchant une partie visible de la fentre sans collision avec dautres fentres. GLX est intgr X par un module. La bibliothque libGL est une connexion entre le module GLX et les programmes OpenGL. Elle doit correspondre limplmentation OpenGL installe (DRI ou NVIDIA). /usr/lib/ libGL.* sont donc des liens vers les bibliothques relles.

Bibliothque libGL

388

LINUX

xorg.conf

Le pilote NVIDIA installe ses propres versions des bibliothques libGL. Les liens de /usr/ lib sont galement modis. Vous pouvez les rtablir avec nvidia-installer --uninstall. Il nest pas ncessaire de congurer explicitement DRI dans xorg.conf, car les modules dri, glx et dbe sont chargs par dfaut dbe vite les scintillements pendant la construction et le changement dimages. Les lignes suivantes dans la section Module indiquent que ces modules sont chargs :
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 daccs DRI

Par dfaut, seul root peut accder directement au matriel graphique. Laccs aux fonctions DRI/GLX est donc restreint root. Pour permettre dautres utilisateurs de bncier des graphismes 3D, il faut ajouter deux options xorg.conf. Dans les lignes suivantes, tous les membres du groupe graphics ont accs aux graphismes 4D vous devez bien sr crer ce groupe et associer des utilisateurs.
Section "DRI" # (nest pas ncessaire lorsque le pilote nvidia est # utilis) Group "graphics" Mode 0660 EndSection

Ces deux options indiquent le groupe propritaire et les droits daccs au chier /dev/dri/ card0. Ce priphrique sert accder la carte graphique. Le paramtrage suivant est plus libral. Tous les utilisateurs peuvent alors utiliser les fonctions DRI. Cela peut cependant reprsenter une faille de scurit et nest pas conseill sur les ordinateurs connects directement un rseau.
Section "DRI" # (nest pas ncessaire lorsque le pilote NVIDIA est # utilis) Mode 0666 EndSection

Tester les fonctions 3D

Certaines distributions donnent automatiquement les bons droits au chier /dev/dri/card0 lutilisateur connect au systme graphique. Dans ce cas, vous pouvez vous passer de la section DRI. Le programme glxinfo permet de vrier si tout a fonctionn. Il afche de nombreuses informations sur le systme GLX. grep ltre les lignes importantes :
root# glxinfo |grep render direct rendering: Yes OpenGL renderer string: MOBILITY FIREGL T2 Pentium4 (SSE2) (FireGL) (GNU_ICD)

Ces lignes signient que le pilote DRI pour une carte graphique ATI (fglrx) fonctionne. Si ce nest pas le cas, la sortie ressemble ceci :
root# glxinfo | grep render direct rendering: No OpenGL renderer string: Mesa GLX Indirect

SYSTME XWINDOW

389

Un autre test trs visuel est le programme gears ou glxgears. Il fait partie des programmes de dmonstration 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 programme fgl_glxgears. glxgears montre dans une fentre trois engrenages qui tournent. Le shell qui a lanc glxgears afche toutes les cinq secondes le nombre dimages par seconde (FPS). Sur ma machine de test (Intel Core 2 Duo 2,4 Ghz, carte graphique NVIDIA 7600-GS), jai obtenu comme rsultats 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 prcurseur de lutilisation des fonctions 3D des cartes graphiques modernes pour le bureau. Des fonctions lmentaires du bureau, comme le dplacement des fentres, 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 prsent 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 adapts, et permettent gnralement de congurer cela en quelques clics.
Fonctions

Pour ceux qui nont pas encore test le bureau 3D, voici un bref aperu des fonctions et gadgets importants : Lorsquon dplace des fentres, leur forme est modie comme si elles taient caoutchouteuses (voir Figure 22.1). Le passage entre les bureaux afche ces derniers sur les faces dun cube en 3D. Lapparition, la rduction, lagrandissement et la fermeture des fentres et des menus sont anims avec diffrents effets (transparence, etc.). Lorsquon change de fentre avec Alt+Tab, la fentre choisie passe en avant-plan.. la place dune liste dicnes, vous voyez le programme activer (voir Figure 22.2). Vous pouvez aussi utiliser la fonction Scale pour changer de fentre. Celle-ci fonctionne comme Expos sous Mac OS X : toutes les fentres ouvertes sont rduites et safchent les unes ct des autres. Vous pouvez alors choisir avec la souris ou les touches du curseur la fentre activer. Cette fonction est souvent lance avec les touches Pause, Ctrl+Alt+Flche haut, F8 ou F9 ou, selon la conguration, lorsque vous dplacez la souris dans le coin en haut droite de lcran. La fonction Zoom permet dagrandir une partie du bureau. Lorsque vous dplacez la souris la frontire de la section visible, la section se dplace sans ralentissement. Cette fonction facilite la vie des malvoyants, mais permet aussi dafcher des sites web mal dvelopps sur un grand moniteur une taille dcente.

390
Figure 22.1

LINUX

Dplacement dune fentre dans un bureau 3D.

Il est bien sr lgitime de sinterroger sur lutilit de ces fonctions. Je les ai personnellement dsactives aprs quelques jours. Le dplacement sans ralentissement des fentres est agrable, mais seule la fonction Scale ma rellement enthousiasm.

Figure 22.2
Changement de fentre.

Raccourcis clavier

La plupart des fonctions peuvent tre congures ou dsactives. En fait, les fonctions disponibles dpendent largement de la distribution, tout comme les raccourcis clavier suivants.

SYSTME XWINDOW

391

Raccourcis utiles pour le gestionnaire de bureau 3D a+t p ou c+a+W c+a+Z c+a+S ^ X+Clic S X+Clic ^ S+0 G
Prrequis

changement de fentre anim changement de fentre anim (Scale/Expos) changement de bureau anim tournoiement des bureaux (cube 3D) zoom (variante 1) zoom (variante 2) changement de vitesse des effets 3D capture dcran (y compris pendant une animation)

Pour proter de ces gadgets 3D, les prrequis suivants doivent tre respects : X doit permettre dutiliser les fonctions 3D directement dans le gestionnaire de fentre (et non, comme prcdemment, uniquement lintrieur des fentres). 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 fentre doit utiliser les fonctions 3D en question. Cest, 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 dutiliser un bureau 3D sur deux moniteurs. Le tableau suivant rsume la compatibilit des diffrents pilotes avec AIGLX et XGL.

Prise en charge des pilotes (t 2008)


XGL AIGLX

radeon fglrx radeonhd i810, intel nv nvidia nouveau

oui, pour autant que les fonctions 3D de la carte soient oui, pour autant que les fonctions 3D de la carte soient priprises en charge par le pilote ses en charge par le pilote oui non (pas de prise en charge de la 3D) oui, mais ncessite un processeur i9xx au minimum oui, pour autant que le pilote soit au moins en version 8.42.3 et quune carte graphique compatible soit utilise non (pas de prise en charge de la 3D) oui

non (pas de prise en charge de la 3D) oui non (prise en charge de la 3D limite)

non (pas de prise en charge de la 3D) oui non (prise en charge de la 3D limite)

392

LINUX

Vous vous demandez peut-tre sil vaut mieux utiliser XGL ou AIGLX. De nombreux arguments parlent en faveur dAIGLX : il est plus efcace, demande moins de mmoire, est plus rpandu et compatible avec les jeux 3D. En pratique, vous ne verrez cependant pas de grandes diffrences entre XGL et AIGLX. Les effets 3D chargent peu la carte graphique ; une diffrence de performances de quelques pour cent nest donc pas pertinente. Limportant est que cela fonctionne ! Lapproche pragmatique est sans doute la meilleure : mettez en place le systme pris en charge par votre distribution et votre carte graphique. Il vaut mieux viter dinstaller et de congurer manuellement ces applications : il existe certes dinnombrables tutoriels pour presque tous les cas particuliers, mais leur adaptation choue souvent cause dune incompatibilit quelconque (par exemple, en raison de la parution dune nouvelle version de votre pilote graphique, de X ou de Compiz Fusion). Nous nous concentrerons dans cette section sur AIGLX.

AIGLX
AIGLX signie Accelerated Indirect GLX (GLX indirect acclr). Les fonctions 3D sont transmises au serveur X, qui les transmet la carte graphique (do le terme "indirect"). Cette manire de faire implique donc peu de modications dans larchitecture du serveur X. AIGLX est en particulier utilis par Red Hat/Fedora et par Ubuntu. Vous trouverez plus dinformations 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 intgrante du serveur X depuis sa version 7.1. Vous ne devez donc rien installer de plus. Il est automatiquement activ lorsque cest possible. Le chier de journalisation contient alors la ligne AIGLX enabled. Si ce nest pas le cas, ajoutez cette ligne dans xorg.conf :
Section "ServerFlags" Option "AIGLX" "on" EndSection

AIGLX suppose que lextension Composite est active, ce qui est normalement le cas lorsque le serveur X est activ. grep COMPOSITE /var/log/Xorg.0.log doit normalement renvoyer le rsultat Initializing built-in extension COMPOSITE. Si ce nest pas le cas, ajoutez cette ligne dans xorg.conf :
Section "Extensions" Option "Composite" "enable" EndSection

Les points suivants conseillent des congurations pour utiliser AIGLX avec diffrents pilotes graphiques. Nous tenons ici pour acquis que xorg.conf contient dj toutes les options ncessaires pour utiliser les fonctions 3D. glixinfo | grep render doit renvoyer Direct rendering: Yes. radeon et AIGLX ne demandent aucune option supplmentaire.

SYSTME XWINDOW

393

i810/intel et AIGLX ne demandent aucune option supplmentaire. nvidia et AIGLX fonctionnent actuellement sans problme. La section Device doit contenir la ligne :
Option "AddARGBGLXVisuals" "True"

Le pilote NVIDIA peut lui-mme fournir les fonctions AIGLX et nest donc pas dpendant de limplmentation AIGLX du serveur X.org.

Compiz Fusion
Le gestionnaire de fentre est responsable de la reprsentation des effets optiques. Cest cela que sert Compiz Fusion. Il provient de la fusion entre les projets Compiz et Beryl. Vous ne le trouverez que dans les distributions rpandues ; les plus anciennes utilisent majoritairement Compiz, Beryl tant parfois propos comme paquetage optionnel. Compiz Fusion se compose dun ensemble de programmes et de greffons. compiz est le gestionnaire de fentre en soi. Il dnit les fentres qui sont visibles, celle qui a le focus, les effets qui sont appliqus lapparition, au redimensionnement ou la fermeture des fentres, ainsi que les raccourcis clavier qui peuvent tre utiliss. Le code pour les effets 3D nest pas directement intgr compiz, mais se trouve dans dinnombrables greffons (/usr/lib[64]/compiz/libXxx.so). gtk-window-decorator (dans les versions plus anciennes, gnome-window-decorator) afche, autour du contenu des fentres, les dcorations, dont la barre de titre et quelques boutons. Ce programme est compatible avec KDE, mais kde-window-decorator est plus souvent utilis sous KDE. Selon la version et la conguration, le programme emerald du projet Beryl peut aussi tre utilis. Attention, compiz et les programmes dafchage de dcorations, qui remplacent les composants correspondants de Gnome et de KDE, ne sont quen partie pris en compte. Cela peut mener une certaine confusion. Vous trouverez plus dinformations sur Compiz Fusion et ses greffons ladresse http://www.compiz-fusion.org/.
Configuration

Pour la conguration de base de Compiz et de Compiz Fusion, les grosses distributions ont dvelopp certains outils de conguration : Fedora, Red Hat SUSE Ubuntu desktop-effects gnome-xgl-setting (utilisable aussi sous KDE) gnome-appareance-properties (uniquement sous Gnome)

Avec ces trois programmes, vous ne pouvez rgler que les fonctions de base du bureau 3D. Il existe cependant beaucoup dautres paramtrages (activation et conguration de greffons, raccourcis, etc.). Pour congurer ces fonctions supplmentaires, vous devez installer compizconfig-settings-manager (voir Figure 22.3).

394
Figure 22.3

LINUX

Configuration dtaille de Compiz.

22.14 Polices
Les polices sous X se divisent en polices vectorielles (chelonnables) et en fontes bitmap (prvues pour une taille xe). Jusqu il y a quelques annes, X ne pouvait grer que les fontes bitmap. Celles-ci ne sont disponibles quen des tailles donnes et xes lavance. Elles peuvent safcher dautres tailles, mais sont alors "pixelises". freetype et type1 fournissent depuis, via le serveur de polices xfs, des polices libres vectorielles (TrueType, Type-1). Les applications KDE et Gnome utilisent exclusivement ces polices. Les fontes bitmap ne jouent aujourdhui quun rle limit et ne sont utilises que dans certains programmes plus anciens (par exemple, xterm). La diffrence historique entre ces deux jeux de caractres se retrouve aujourdhui dans de nombreuses commandes de gestion. Par exemple, fc-list renvoie la liste de toutes les polices vectorielles, tandis que xlsfonts renvoie celle de toutes les fontes bitmap. Les chiers de polices se trouvent gnralement dans les sous-rpertoires de /usr/share/ fonts. Pour les polices bitmap, il existe un chier pour chaque taille et attribut (par exemple gras, italique). Pour les polices vectorielles, un chier pour toutes les tailles suft. Dans les rpertoires de fontes bitmap, on trouve deux chiers spciaux : fonts.dir et fonts.scale. Ces derniers sont ncessaires pour les programmes X anciens qui nutilisent pas le systme fontconfig. Ils contiennent des informations sur les noms et les tailles disponibles des fontes. La commande fc-list |sort afche une liste de toutes les polices vectorielles. xlsfonts effectue la mme opration pour les fontes bitmap. Le rsultat est long et peu clair, car la liste contient une ligne pour chaque taille de fonte et chaque jeu de caractres. xfontsel permet de chercher des fontes bitmap qui correspondent vos critres de recherche.

Rpertoire des polices

fonts.dir et fonts.scale

fc-list et xlsfonts

SYSTME XWINDOW

395

Noms des fontes

Les noms des fontes bitmap sont construits sur ce modle :


-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

gucharmap, xfd et kcharselect

Il sagit dune fonte de lentreprise Adobe. La famille de la police est Helvetica (qui est, comme Arial, une police sans serif). Il sagit dune fonte grasse (bold). Les autres possibilits comptent normal, medium, black, extrabold. Linclinaison de la fonte est o (oblique). Dautres options sont r (roman, non incline) et i (italic, italique). La largeur de la fonte nest pas indique. Certaines polices comprennent ici condensed, extended, etc. La taille de la fonte est de 10 points. Lespacement de la police est p (proportional). Dautres possibilits sont c (character cell) ou m (monospaced), qui signient toutes deux que les caractres ont la mme chasse. Cest le cas, par exemple, de la famille de polices Courier. Les caractres sont cods en ISO-Latin 1. Ce codage contient la plupart des caractres des langues dEurope occidentale. Les nombres qui suivent reprsentent la rsolution de la fonte, la largeur moyenne de la police, etc. Les programmes gucharmap et kcharselect afchent tous les caractres dune police vectorielle et permettent de copier des caractres individuels dans le presse-papiers (voir Figure 22.4).

Figure 22.4
Reprsentation de caractres spciaux dans gucharmap.

396

LINUX

Les caractres bitmap peuvent safcher 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 dutiliser une ligne de rsultat de xlsfonts comme paramtre.
Jeux de caractres et prise en charge dUnicode

X est fourni avec tous les jeux de caractres imaginables, y compris Unicode. Cependant, ceux qui sont pris en charge dpendent de la police : Pour les polices vectorielles, les informations du jeu de caractres sont embarques dans le chier de police. Les chiers de codage associent des symboles individuels au code dun jeu de caractres. Ces chiers sont grs indpendamment des polices et se trouvent habituellement dans le rpertoire /usr/share/fonts/encodings ou /usr/share/ fonts/X11/encodings. Pour les fontes bitmap, il existe un chier par jeu de caractres pris en charge. Unicode a peu de fontes bitmap. La commande suivante en afche la liste :
utilisateur$ xlsfonts *iso10646-1*

Attention, le fait quune police comprenne le codage Unicode noffre pas de garantie sur le nombre de caractres quelle contient. Il existe actuellement peu de polices Unicode compltes (et aucune dentre elles nest gratuite). De plus, les polices de ce type sont normes et peu adaptes un usage quotidien.
Types de polices

X fournit diffrents types de polices. En voici une rapide description : Fontes 75-dpi et 100-dpi (bitmap). Il sagit des fontes les plus anciennes qui font partie de X depuis plusieurs annes. Elles ne sont disponibles dans des tailles correctes que pour des rsolutions dcran de 75 et 100 dpi. Les familles de polices correspondantes comptent gnralement Charter, Courier, Helvetica, Lucida, New Century Schoolbook, Times et Utopia. Polices Type1 (vectorielles). Il sagit dun format de polices PostScript dnies par Adobe. Elles se trouvent dans des chiers *.pfa ou *.pfb. Polices TrueType (vectorielles). Dveloppes par Microsoft et Apple comme alternative au format de polices Adobe, elles fournissent une haute qualit dafchage et dimpression, comparable celle des polices Type1. Elles se trouvent dans des chiers *.ttf. La police DejaVu est lune des plus populaires sous Linux. Base sur Bitstream Vera, il sagit dune police libre, souvent utilise par dfaut sous Linux. Polices OpenType (vectorielles). Il sagit dun mtaformat qui permet de dcrire des polices TrueType et Type1. Les chiers correspondants ont les extensions *.otf et *.ttf. Polices Speedo (vectorielles). Il sagit du nom dune police de lentreprise Bitstream. Sous Linux, elles regroupent gnralement Charter, Courier et Vera. Polices URW (vectorielles). Lentreprise URW a nanc pour GhostScript un paquetage de polices PostScript standard vectorielles (AvantGarde, Bookman, Courier, Gothic, Helvetica, New Century Schoolbook, Palatino, Times, Symbol, ZapfChancery et ZapfDingbats). Il sagit en interne de polices Type1. Elles peuvent tre redistribues dans le cadre de la GPL et sont utilises par GhostScript.

SYSTME XWINDOW

397

Il existe bien sr, chez des entreprises comme Adobe ou Bitstream, dinnombrables polices qui ne sont pas fournies sous Linux. Elles doivent tre achetes comme tout produit commercial. Celles fournies sous Linux ne sont gnralement mises disposition que parce quelles sont offertes par ces entreprises.

Configuration sans serveur de fontes


la base, les fontes peuvent safcher de deux manires lcran. Le serveur X peut convertir lui-mme les chiers de polices en bitmap qui safchent lcran. 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 nest gnralement pas le cas des autres distributions. Il ny a pas vraiment davantage ou dinconvnient dcisif pour lune ou lautre des solutions. Les serveurs de fontes ntant plus vraiment utiliss actuellement, nous nen parlerons pas dans cet ouvrage. Si vous nutilisez pas de serveur de fontes, vous pouvez ajouter la section Files de xorg.conf le chemin des rpertoires de polices. Cet ajout est facultatif. Cependant, si vous lomettez, le serveur X ne prend en compte que quelques rpertoires standard indiqus la compilation.
Section "Files" FontPath FontPath FontPath FontPath FontPath FontPath FontPath ... EndSection "/usr/share/fonts/misc:unscaled" "/usr/share/fonts/local" "/usr/share/fonts/75dpi:unscaled" "/usr/share/fonts/100dpi:unscaled" "/usr/share/fonts/Type1" "/usr/share/fonts/URW" "/usr/share/fonts/Speedo"

xorg.conf

Lordre des rpertoires a une importance. Si une fonte existe dans plusieurs rpertoires, la premire trouve dans la liste de rpertoires est utilise. Il est donc important dindiquer en premier les polices ayant une bonne qualit dafchage. Lorsque le chemin est suivi de :unscaled, X nutilise la fonte que lorsquelle est disponible exactement dans la taille souhaite. Ce mot cl nest valide que pour les polices bitmap et non vectorielles. Les versions actuelles du serveur X chargent par dfaut tous les modules pour grer les diffrents types de polices. Certains chiers de conguration numrent cependant explicitement ces modules :
Section "Module" Load "bitmap" Load "speedo" Load "type1" Load "freetype" ... EndSection # # # # fontes bitmap polices Speedo polices Type-1 et CID polices TrueType, OpenType et Type1

398
Activer la configuration

LINUX

Pour prendre en compte les modications de la conguration des polices, il suft gnralement de lancer la commande suivante. Il arrive cependant quun redmarrage de X soit ncessaire.
root# xset fp rehash

Installation de polices TrueType et Type1 supplmentaires


La plupart des distributions Linux fournissent peu de polices TrueType et Type1. Si vous possdez des droits sur de telles polices, cette section propose quelques astuces pour leur installation. Trois tapes sont ncessaires : 1. 2. 3.
Installation manuelle

Les chiers de polices doivent tre copis dans le rpertoire prvu cet effet. Les chiers fonts.* doivent tre mis jour dans le rpertoire de polices. X (ou le serveur de fontes xfs) doit tre inform que de nouvelles polices sont disponibles.

Copiez les chiers (*.ttf, *.pfa ou *.pfb) dans lun des rpertoires de polices de votre distribution. Veillez ce quils soient lisibles par tous les utilisateurs. Lancez ces commandes pour enregistrer les nouvelles polices :
root# root# root# root# cd /usr/share/fonts/xxx fc-cache . mkfontscale . mkfontdir .

La commande fc-cache fait partie du systme fontconfig. mkfontscale et mkfontdir mettent jour les chiers fonts.scale et fonts.dir. Pour nir, rafrachissez le systme de polices de X :
root# xset fp rehash

KDE

Il peut galement tre utile de redmarrer X. Konqueror afche toutes les polices disponibles lorsque vous saisissez ladresse fonts:/. Pour installer vos propres polices TrueType et Type1, lancez linstallateur de polices de la conguration du systme. Vous pouvez les installer pour lutilisateur courant ou tous les utilisateurs. Dans le premier cas, elles sont installes dans le rpertoire ~/.fonts et ne sont accessibles qu lutilisateur courant et aux programmes compatibles avec fontconfig. Si vous les installez pour le systme, elles sont installes dans lun des rpertoires de polices de X. Nautilus permet dafcher toutes les polices du systme ladresse fonts:///. Pour installer de nouvelles polices, dplacez le chier de police par glisser-dposer. Les polices sont alors copies dans le rpertoire ~/.fonts et sont disponibles tous les programmes compatibles avec fontconfig.

Gnome

Polices Microsoft

Vous pouvez, mme sans Windows, utiliser des polices Microsoft. Microsoft a longtemps fourni des polices TrueType en tlchargement. Elles devaient permettre tous les utilisateurs dafcher de manire optimale les polices Microsoft utilises sur les sites web.

SYSTME XWINDOW

399

Le site de tlchargement original nexiste plus ; les polices ne peuvent plus tre tlcharges que sur le site corefonts. La redistribution commerciale de ces polices est interdite ; cest pourquoi les distributions ne les fournissent gnralement pas directement. Malheureusement, leur installation sous Linux est complique, car elles sont contenues dans un chier *.exe et ne peuvent pas tre distribues sous un autre format. Le site web http://corefonts.sourceforge.net/ fournit une documentation pour les distributions qui utilisent des paquetages RPM. Sous Ubuntu, le paquetage msttcorefonts permet dinstaller les polices Microsoft.

Anticrnelage
Par dfaut, X utilise lanticrnelage (anti-aliasing) pour afcher les polices TrueType et Type1. Les contours des lettres safchent alors en niveaux de gris. Les caractres sont moins pixeliss. Sur de nombreux crans plats, chaque pixel est compos de trois sous-pixels (rouge, vert et bleu). La variation des couleurs associes permet une plus grande qualit dafchage de lanticrnelage. On parle ici de rendu par sous-pixelisation.
Configuration

Lanticrnelage et le rendu par sous-pixelisation sont dnis dans le chier XML /etc/ fonts/fonts.conf. Celui-ci ne doit cependant pas tre modi, car il est rgulirement cras. Les paramtres doivent tre modis dans /etc/fonts/local.conf (pour le systme) ou dans ~/.fonts.conf (pour lutilisateur). man fontconfig ou man fonts.conf vous donneront plus dinformations ce sujet. Selon le moniteur, le rendu par sous-pixelisation peut mener des artefacts colors gnants. Il faut alors dsactiver 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>

Artefacts colors

Configuration sous KDE et Gnome

KDE et Gnome fournissent des botes de dialogue confortables pour modier la conguration utilisateur par utilisateur de lanticrnelage et du rendu par sous-pixelisation. Sous KDE, les paramtres se trouvent dans le module Apparence > Polices de la conguration du systme. Sous Gnome, lancez gnome-font-properties ou Proprits > Polices.

400

LINUX

22.15 Outils X
X fournit quelques programmes. La plupart disposent de versions plus modernes intgres Gnome ou KDE, mais certains des utilitaires de X sont encore importants de nos jours. En voici une liste rapide. man commande permet dobtenir plus dinformations sur ces diffrentes commandes. xev. xev afche des informations sur les vnements du clavier, de la souris, etc. Vous pouvez ainsi voir comment X ragit lorsque vous appuyez, par exemple, sur une touche donne. xkill. xkill permet de terminer un programme X. Lancez xkill, cliquez sur la fentre et lapplication correspondante est termine. xlsfonts. xlsfonts afche une liste de toutes les polices disponibles. On peut lui passer un motif de ltrage comme ls. Il faut cependant mettre ce motif entre apostrophes pour quil ne soit pas tendu par bash. xmodmap. xmodpam permet dafcher et de modier la conguration du clavier. xmodmap -pk afche la table de clavier courante. xmodmap -e dfinition permet de rednir une touche. xrandr. xrandr permet de modier la rsolution de lcran, la frquence de limage et dautres paramtres de lcran sans quitter X. xrandr -q afche les possibilits de conguration. Celles-ci dpendent de la conguration de X et du pilote de la carte graphique. xrandr -s n modie la rsolution, xrandr -r n la frquence dafchage et xrandr -o lorientation de limage. xset. xset modie le paramtrage du serveur X. xterm. xterm est une fentre de terminal dans laquelle diverses commandes peuvent tre lances. xterm dispose de nombreuses options pour modier son apparence.

23

Administration du systme de fichiers


Ce chapitre dcrit diverses facettes de ladministration du systme de chiers. Il sadresse majoritairement aux utilisateurs avancs de Linux et couvre les thmes suivants : Introduction. Cette section offre un premier aperu des diffrents aspects des systmes de chiers de Linux. Noms de priphriques. Linux communique avec les disques durs, les supports de donnes et les partitions qui y sont contenues par le biais de chiers de priphriques comme /dev/hda1 ou /dev/sdc. Cette section rsume la nomenclature et la numrotation de ces chiers. Partitionnement du disque dur. Le partitionnement du disque dur est une tche centrale de linstallation de Linux. Il est parfois aussi ncessaire de crer une nouvelle partition alors que Linux fonctionne dj. Types de systmes de chiers. Peu de systmes dexploitation prennent en charge autant de systmes de chiers que Linux. Cette section en prsente les plus importants. Gestion du systme de chiers. Vous y apprendrez comment ajouter des partitions de donnes manuellement un systme de chiers (mount) et comment automatiser cette opration (/etc/fstab). Systmes de chiers Linux. Cette section offre divers conseils et astuces pour utiliser les trois systmes de chiers les plus importants sous Linux : ext, reiser et xfs. Systmes de chiers Windows. Vous pouvez aussi accder des partitions Windows sous Linux. Linux prend en charge les deux systmes de chiers courants FAT32 et NTFS. CD/DVD et disquettes. Les CD et DVD de donnes disposent de leurs propres types de systmes de chiers, qui sont prsents dans cette section. Ce chapitre traite galement rapidement des disquettes, mme si celles-ci ne sont plus que peu utilises de nos jours. Supports de donnes externes (USB, Firewire). Lorsque vous connectez un disque dur Firewire ou une cl USB, dans la plupart des cas, une fentre du gestionnaire de chiers apparat et vous donne accs vos chiers. Cette section explique ce quil se passe dans les coulisses dune telle opration et comment utiliser si besoin des supports de donnes externes manuellement. Partitions dchange. Lorsque Linux na pas assez de mmoire vive pour excuter ses programmes, il dcharge une partie de la mmoire dans une partition dchange. Systmes de chiers rseau. Vous pouvez intgrer des rpertoires dautres ordinateurs sur votre rseau local, dans votre arborescence de rpertoires. Je mintresse dans cette section aux systmes de chiers CIFS (Windows / Samba) et NFS (Unix / Linux). LVM. LVM (Logical Volume Manager, gestionnaire de volumes logiques) permet dadministrer les partitions de manire exible. LVM offre la possibilit par exemple de runir

402

LINUX

les partitions de plusieurs disques en une seule partition virtuelle, de modier la taille des partitions sans avoir rinstaller le systme, etc. Optimisation des disques durs. Cette section dcrit 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 ladministration des systmes de chiers. Je nai cependant pas la place de traiter des sujets suivants et vous indique donc quelques pointeurs : Utilisation du systme de chiers. Les commandes de copie de chiers, de cration de sauvegarde, de gestion des droits daccs, etc. ont dj t traites au Chapitre 13. Quotas de disques. Il sagit dun systme qui contrle lespace disque maximum attribu un utilisateur. Si cette limite est dpasse, lutilisateur ne peut pas crer de nouveau chier. Vous trouverez une bonne introduction ce systme ladresse http://tldp.org/HOWTO/Quota.html. RAID. Le RAID (Redundant Array of Inexpensive Disks, ensemble redondant de disques bon march) permet dassocier une partition plusieurs disques et ainsi damliorer la scurit ou les performances de lensemble. Systmes de chiers chiffrs. Si vous dsirez viter quune personne non autorise (par exemple un voleur) puisse lire vos donnes, vous devez chiffrer une partie ou la totalit de votre systme de chiers. Linux fournit plusieurs alternatives pour cela, comme CryptoFS, DM-Crypt, eCryptfs, Enc-FR, Loop-AES et TrueCrypt. Une recherche sur ces termes sur Internet renvoie dinnombrables articles qui dcrivent la mise en place de tels systmes. Certaines distributions en offrent la possibilit ds linstallation. Systmes de chiers de grappes (clusters). Les systmes de chiers de grappes ou les systmes de chiers globaux runissent les donnes de plusieurs ordinateurs via un systme de chiers virtuel. On peut ainsi construire des systmes de chiers immenses et les utiliser en parallle depuis plusieurs machines. On peut citer pour exemples de ce type de systmes OCFS (Oracle Cluster File System) dOracle, ou GFS (Global Filesystem) de Red Hat.

23.1 Fonctionnement gnral


Les tenants et les aboutissants de la gestion du systme de chiers sont jusquici un peu confus. Cette section tente den rsumer les principes de manire claire et concise. Pour garder ce texte aussi clair que possible, je me limite ici aux disques durs intgrs et aux systmes de chiers habituels. Je ne parle donc ni de supports externes (CD/DVD, disques USB, etc.) ni de LVM. Les disques durs intgrs lordinateur sont associs des noms de priphriques. Les distributions les plus rcentes utilisent /dev/sda, /dev/sdb pour de tels disques durs. Dautres 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.

Disques durs

ADMINISTRATION DU SYSTME DE FICHIERS

403

Partitions

Partition systme

Partitions supplmentaires

Test de cohrence

Arborescence au lieu de lettres de lecteur

Ajout de systmes de fichiers

Pour loger plusieurs systmes de chiers indpendamment les uns des autres sur un disque dur, il faut diviser ce disque en sections (partitions). Ces partitions sont elles-mmes associes des chiers de priphriques, par exemple /dev/sda1 pour la premire partition du premier disque SATA. La nomenclature dtaille des chiers de priphriques pour les partitions est traite la section 23.2. Au dmarrage de Linux, le noyau accde dabord la partition systme (partition racine). Son nom de priphrique est indiqu comme paramtre du noyau dans le chier de conguration de GRUB ou de LILO. Vous trouverez plus de dtails ce sujet au Chapitre 24. En plus de la partition systme, qui est absolument ncessaire, il peut exister des partitions supplmentaires qui doivent tre prises en compte ds le dmarrage de Linux. Elles sont dcrites dans le chier /etc/fstab. Ce chier doit se trouver dans la partition systme ; il est lu par le processus init. Lorsquune partition est attache larborescence de chiers, la cohrence de son systme de chiers est automatiquement vrie. Si lordinateur a t brutalement teint (par exemple par une coupure de courant), une rparation automatique du systme de chiers ou dautres mcanismes de scurit se mettent en place pour viter dventuelles erreurs de cohrence. Le test de cohrence est galement lanc aprs une certaine priode dutilisation. En dtail, cette opration dpend de la distribution et de la conguration individuelle de la machine. La dure de la rparation et du test de cohrence dpend largement du systme de chiers. Sous Windows, il est courant de communiquer avec diffrents systmes de chiers via des lettres de lecteur diffrentes (A:, C:, D:, etc.). Sous Linux, ces systmes de chiers sont rassembls dans une arborescence de rpertoires. La partition systme est accessible via le rpertoire racine /. Le point de dpart des autres systmes de chiers peut varier selon la distribution et la conguration. On utilise frquemment des sous-rpertoires de /mnt ou de /media, par exemple /media/dvd pour un DVD de donnes. On peut ajouter ou supprimer des systmes de chiers de larborescence de rpertoires alors que le systme fonctionne. Lorsque lon branche un support de donnes externe (par exemple une cl USB), cela fonctionne gnralement automatiquement. Si cela ne fonctionne pas ou si le mcanisme a t dsactiv, root peut ajouter ou supprimer des systmes de chiers manuellement avec les commandes mount et umount. La seule constante est la partition systme : elle ne peut pas tre supprime de larborescence de chiers lorsque le systme fonctionne. Cela nest possible que pendant le processus darrt de lordinateur. Linux prend en charge de nombreux types de systmes de chiers. La partition systme doit se trouver dans un systme de chiers Linux (par exemple ext3, reiserfs ou xfs). Pour les autres partitions, le choix slargit. Les systmes de chiers de Windows, dUnix ou dApple sont aussi envisageables.

Types de systmes de fichiers

404

LINUX

23.2 Noms de priphriques pour les disques durs et les autres supports de donnes
Glossaire

LIDE, le SATA et le SCSI sont de nos jours des interfaces courantes pour connecter un ordinateur ses lecteurs. LIDE tait ces quinze dernires annes linterface la plus rpandue. Le SATA est en train de remplacer lIDE. Ses avantages comptent un taux de transfert de donnes plus grand et des cbles plus ns. Les disques SCSI sont plus chers que les priphriques IDE ou SATA mais sont plus ables et plus rapides. Ils sont le plus souvent utiliss dans des serveurs de chiers et de bases de donnes.
Glossaire ATA ATAPI IDE PATA SATA SCSI interface de connexion des disques durs extension dATA pour les lecteurs CD et DVD description alternative de PATA ATA parallle (interface ATA courante avec un accs parallle aux donnes) ATA srie (nouvelle interface ATA avec un accs srie aux donnes) alternative IDE/SATA

Fonctionnement interne du noyau

Linux accde aux disques durs internes et externes, leurs partitions, aux CD et DVD et tout autre support de donnes par le biais de chiers de priphriques. Ces chiers sont des chiers particuliers qui servent dinterface entre Linux et le noyau. Vous navez besoin de ces chiers qu des ns dadministration, cest--dire lorsque vous souhaitez modier le partitionnement dun disque ou monter une partition dans larborescence de chiers. En dehors de cela, vous accdez normalement au systme de chiers par le biais de rpertoires. / est le dbut du systme de chiers. Les partitions peuvent y tre associes un emplacement particulier : par exemple, une partition Linux supplmentaire peut tre associe au nom /data, et la partition Windows /media/win. Il existe deux familles de pilotes pour les disques durs et les autres supports de donnes : IDE. Le pilote IDE sert grer les disques durs IDE et les lecteurs CD/DVD IDE il sagit donc de tous les priphriques PATA. SCSI. Le systme SCSI ne gre pas seulement les priphriques SCSI, mais aussi tous les lecteurs connects aux bus SATA, USB et Firewire. Comme de nombreuses cartes mre utilisent maintenant SATA comme interface principale pour les lecteurs DVD et disques durs, le systme SCSI prend de plus en plus dimportance.
Le code IDE du noyau est relativement ancien et mal maintenu. De ce fait, de plus en plus de distributions accdent galement aux priphriques IDE par le biais du pilote SCSI. Pour que cela fonctionne, le systme SCSI du noyau a t tendu par des fonctions PATA. Le module correspondant sappelle libata et se trouve dans le noyau officiel depuis sa version 2.6.19. Le passage libata signifie que tous les supports de donnes sont accessibles par les priphriques / dev/s*. Il ny a plus de priphrique /dev/hd*. Tous les supports de donnes sont donc grs par la mme base de code.

ADMINISTRATION DU SYSTME DE FICHIERS

405

Au passage du pilote IDE au pilote SCSI, les noms de priphriques de tous les priphriques IDE sont modifis, ce qui peut poser problme lors de la mise jour dun noyau ou dune distribution. Pour rgler ces problmes, de nombreuses distributions nutilisent plus le nom du priphrique 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 contrleurs IDE (gnralement anciens) ne sont pas pris en charge par les systmes SCSI.
Priphriques IDE

Si le systme IDE est toujours utilis, les disques IDE sont identis par les chiers de priphriques /dev/hda, /dev/hdb, etc. Lordre des priphriques dpend du cblage interne des disques. Le schma de nommage est rsum dans le tableau ci-aprs. Notons que, selon ce schma, il se peut que les priphriques hda et hdc existent sans que le priphrique hdb nexiste.
Noms de priphriques pour les priphriques IDE grs par le systme IDE /dev/hda /dev/hdb /dev/hdc /dev/hdd ... priphrique IDE matre du premier canal IDE priphrique IDE esclave du premier canal IDE priphrique IDE matre du second canal IDE priphrique IDE esclave du second canal IDE

Priphriques SCSI et SATA

Les disques SCSI et SATA sont, de manire similaire, nomms sdxy. Pour les distributions qui utilisent lextension libata du systme SCSI, cela est galement valable pour les disques IDE. Les priphriques SATA sont associs une lettre dans lordre du canal utilis. Les cartes mre modernes voient gnralement six ou huit canaux au plus. Si deux disques durs sont connects aux canaux 1 et 3, ils sont nomms /dev/sda et /dev/sdb. Si un troisime disque est ensuite connect au canal 2, le nom du deuxime disque dur devient /dev/sdc. Lorsque libata est utilis, les priphriques IDE sont galement nomms dans la suite de priphriques /dev/sda, /dev/sdb, etc. Attention, il existe ici une diffrence de nommage importante. Lorsque lordinateur dispose dun disque matre sur chacun des canaux IDE, mais pas de disque esclave, les priphriques IDE sappellent /dev/hda et /dev/hdc, mais libata les appelle /dev/sda et /dev/sdb. Pour les priphriques SCSI, lordre dpend du numro didentiant du priphrique. Les trous dans la numrotation ne sont pas pris en compte : trois priphriques ayant comme identiants 0, 2 et 5 reoivent les noms de priphriques /dev/sda, /dev/sdb et /dev/sdb. Comme pour les priphriques SATA, cela peut mener une modication ultrieure de la conguration.

406

LINUX

Les priphriques USB et Firewire sont grs comme des priphriques USB ; lidentiant utilis est le premier disponible. Lorsque des priphriques SCSI, SATA, USB et Firewire sont branchs, la numrotation commence avec les priphriques SCSI ou SATA (en fonction du BIOS, des emplacements PCI utiliss, etc.) et continue avec les priphriques USB et Firewire dans lordre dans lequel ils ont t branchs. Les CD et DVD reoivent des noms de priphriques spciaux qui peuvent tre, selon la distribution, /dev/sdcn ou /dev/srn.
Noms de priphriques pour les priphriques SCSI, SATA, USB, Firewire et IDE avec un noyau libata /dev/sda /dev/sdb ... /dev/scd0 ou /dev/sd0 /dev/scd1 ou /dev/sr1 premier disque SCSI/SATA second disque SCSI/SATA premier lecteur CD/DVD second lecteur CD/DVD

Numrotation des partitions

En ce qui concerne la numrotation des partitions, indpendamment du bus utilis, les chiffres 1 4 sont rservs pour les partitions primaires ou tendues et les chiffres suprieurs 5 servent pour les partitions logiques lintrieur de la partition tendue. Il est donc frquent que cette numrotation contienne des trous. Si votre disque contient une partition primaire, une partition tendue et trois partitions logiques, elles sont respectivement numrotes 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 crer que quatre partitions primaires ou trois partitions primaires et une partition tendue. Dautre part, Linux limite le nombre de partitions logiques utilisables 59 (dans le systme 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 numros de partitions /dev/hda /dev/hda1 /dev/hda2 /dev/hda5 /dev/hda8 /dev/sda /dev/sda1 /dev/sdd3 premier disque IDE complet (systme IDE) premire partition primaire du premier disque dur partition tendue premire partition logique quatrime partition logique premier disque SCSI/SATA (ou premier disque dur IDE dans un noyau libata) premire partition primaire du premier disque dur troisime partition primaire du quatrime disque SCSI/SATA

Noms de priphriques alternatifs

Comme nous lavons vu prcdemment, la numrotation des disques peut changer au cours du temps, en particulier lorsque lon ajoute ou supprime un disque. De plus, le nom des priphriques externes est globalement imprvisible : il dpend de lordre dans lequel les priphriques sont branchs.

ADMINISTRATION DU SYSTME DE FICHIERS

407

Pour accder des priphriques dont le nom varie (par exemple dans un script de sauvegarde), le rpertoire /dev/disk contient des liens supplmentaires vers tous les supports de donnes, tris selon plusieurs critres : /dev/disk/by-id/id utilise des identiants qui dpendent du bus, du nom du priphrique et dun numro de srie ou de modle. /dev/disk/by-label/label utilise des noms indiqus dans le systme de chiers. /dev/disk/by-path/path utilise un chemin constitu de linterface PCI, du bus et du numro de la partition. Attention, si un priphrique USB ou Firewire est connect une autre prise de lordinateur, cet identiant est modi. /dev/disk/by-uuid/uuid utilise lUUID des partitions. Les UUID (Universal Unique IDentier, identiant universel unique) sont des numros didentiant unique associs la partition lors de la cration du systme de chiers et qui peuvent tre utiliss pour identier le systme de chiers, mme lorsque la conguration matrielle a t modie. Le nombre de liens dans chaque rpertoire /dev/disk/* est variable. /dev/disk/by-label et by-uuid ne contiennent que les partitions nommes ou qui ont un UUID. Le systme udev cre automatiquement les liens vers les disques. La commande ls suivante montre par exemple les liens dun systme disposant dun disque SATA, dune cl USB et dune carte CompactFlash (qui fonctionne galement en USB).
user$ cd /dev/ user$ ls -lR disk/ disk/by-id: scsi-SATA_ST3320620AS_5QF194H9 scsi-SATA_ST3320620AS_5QF194H9-part1 scsi-SATA_ST3320620AS_5QF194H9-part2 scsi-SATA_ST3320620AS_5QF194H9-part3 scsi-SATA_ST3320620AS_5QF194H9-part4 scsi-SATA_ST3320620AS_5QF194H9-part5 usb-Generic_USB_CF_Reader_058F312D81B usb-Generic_USB_MS_Reader_058F312D81B usb-Generic_USB_SD_Reader_058F312D81B usb-Generic_USB_SM_Reader_058F312D81B usb-Hama_FlashPen_09202251030128CA usb-Hama_FlashPen_09202251030128CA-part1 disk/by-path: pci-0000:00:1a.7-usb-0:1:1.0-scsi-0:0:0:0 pci-0000:00:1a.7-usb-0:1:1.0-scsi-0:0:0:0-part1 pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:0 pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:1 pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:2 pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:3 pci-0000:00:1f.2-scsi-0:0:0:0 pci-0000:00:1f.2-scsi-0:0:0:0-part1

-> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> ->

../../sda ../../sda1 ../../sda2 ../../sda3 ../../sda4 ../../sda5 ../../sdc ../../sde ../../sdb ../../sdd ../../sdf ../../sdf1 ../../sdf ../../sdf1 ../../sdb ../../sdc ../../sdd ../../sde ../../sda ../../sda1

408

LINUX

pci-0000:00:1f.2-scsi-0:0:0:0-part2 pci-0000:00:1f.2-scsi-0:0:0:0-part3 pci-0000:00:1f.2-scsi-0:0:0:0-part4 pci-0000:00:1f.2-scsi-0:0:0:0-part5 pci-0000:03:00.1-ide-0:0 disk/by-uuid: 008f06ef-28be-45c9-acbc-20cda51f712b 06efc09c-9a3e-4668-81d7-8925c380889e 366CA8D16CA88D65 D3A0-1831 e35139a5-5871-48fe-9191-df0d003e4ed5

-> -> -> -> -> -> -> -> -> ->

../../sda2 ../../sda3 ../../sda4 ../../sda5 ../../hde ../../sda2 ../../sda5 ../../sda1 ../../sdf1 ../../sda3

23.3 Partitionnement du disque dur


Les programmes de partitionnement peuvent dtruire le contenu de votre disque dur ! Lisez cette section attentivement avant de lancer un outil de partitionnement quelconque. Il est impossible de modifier une partition monte dans le systme de fichiers. Le schma de partitionnement de Windows Vista a chang : Vista ne dmarre que lorsque sa partition commence au 2 048e secteur. Or, dans certains programmes de partitionnement, il arrive que le dbut de la partition passe au 63e secteur. Dans ce cas, il faut corriger la partition avant de redmarrer Vista. Le problme et sa solution sont documents ladresse http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=379835.

Pendant linstallation, presque toutes les distributions Linux fournissent des outils simples utiliser pour partitionner le disque dur. Une fois linstallation termine, de nombreux outils sont votre disposition, comme les commandes texte fdisk ou parted ou les applications graphiques gparted ou qtparted. Si vous devez modier frquemment le partitionnement de vos disques, LVM est probablement intressant. LVM ajoute un niveau virtuel entre les partitions physiques du disque dur et les partitions utilises pour les systmes de chiers. Il facilite nettement les modications futures du partitionnement. Nous en parlerons la section 23.12.

Rgles de base
Indpendamment des outils, vous devez connatre quelques rgles de base : Il est impossible deffectuer des modications sur une partition monte. Si vous dsirez redimensionner la partition systme, vous devez dmarrer lordinateur avec un live CD. Il existe des minidistributions spcialement prvues pour cela, comme GParted Live (http://gparted.sourceforge.net/livecd.php), Parted Magic (http://partedmagic.com/) ou SystemRescueCD (http://www.sysresccd.org/Page_Principale). Gnralement, il nest possible de modier la taille dune partition que pour la dernire partition du disque dur. Vous ne pouvez pas dplacer les partitions sur le disque.

ADMINISTRATION DU SYSTME DE FICHIERS

409

Lorsque vous modiez la taille dune partition, la taille du systme de chiers qui sy trouve nest pas automatiquement modie ! Diverses commandes supplmentaires sont ncessaires. Elles dpendent du type de systme de chiers. Le nombre de partitions par disque est limit (63 pour les disques IDE lorsquils ne sont pas grs par libata, 15 pour les disques SATA, USB, Firewire et IDE lorsquils sont grs par libata). Une de ces partitions est la partition tendue qui peut contenir dautres partitions mais pas de systme de chiers. Le nombre maximal de partitions se rduit donc 3 partitions primaires et 59 ou 11 partitions logiques. Lorsque vous modiez une partition en cours dutilisation (par exemple la partition systme de votre distribution Linux), le programme de partitionnement vous demande de redmarrer lordinateur. Sous fdisk, lerreur qui safche est AVERTISSEMENT: la relecture de la table de partitions a chou avec lerreur 16: Priphrique ou ressource occup. Le kernel va continuer dutiliser lancienne table. La nouvelle table sera utilise lors du prochain ramorage. La raison en est que le noyau Linux ne sait pas lire la table de partitions lorsque le disque fonctionne. La modication est donc enregistre, mais elle nest active quau redmarrage. Vous devez redmarrer Linux avant de pouvoir utiliser le nouveau partitionnement.

Problmes de compatibilit
Les outils prsents dans cette section et ceux qui sont utiliss pendant linstallation de Linux se diffrencient sur plusieurs points. Certains outils laissent la partition tendue comme elle a t cre lorigine. Nous appellerons ces programmes les programmes de type 1. Ils comprennent fdisk, parted, les programmes dinstallation de Fedora, de Red Hat, de SUSE et les outils de partitionnement de Windows. Dautres programmes modient automatiquement la partition tendue pour quelle dispose exactement de la place ncessaire pour les partitions logiques (type 2). Ils comprennent les programmes dinstallation de Debian, de Mandriva et dUbuntu. Les deux mthodes sont valides, seul leur mlange pose problme. Supposons que vous criez une nouvelle partition logique avec un outil de type 2. Le programme adapte la taille de la partition tendue automatiquement. Si vous essayez prsent dutiliser un outil de type 1 pour crer une nouvelle partition logique, celui-ci indique que la partition tendue est dj pleine. Les programmes de type 1 ne parviennent pas, lexception de parted, modier la taille de la partition tendue lorsque des partitions logiques sy trouvent dj. Pour corriger cela, lancez un programme de type 2 et modiez le partitionnement. Vous pouvez aussi utiliser cet outil pour crer une partition logique temporaire pour rserver la place ncessaire. Vous supprimerez cette partition temporaire avec le programme de type 1 et pourrez alors utiliser lespace libre de la partition tendue.

410

LINUX

fdisk
fdisk est un des programmes les plus anciens parmi ceux qui sont encore utiliss aujourdhui. Linterface utilisateur est plutt dmode, mais le programme est sophistiqu et apprci par les utilisateurs de longue date.
Dmarrage

fdisk ne peut modier quun disque la fois ; son nom doit tre pass en argument (par exemple /dev/sdc pour le troisime disque). Si vous utilisez loption -l, fdisk afche toutes les partitions de tous les disques durs. La touche M (menu) afche une courte description des commandes disponibles. P (print, afcher) afche 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 davertissement. Ce message concerne la partition damorage de Linux et nest valable que lorsque votre carte mre est ancienne (BIOS datant davant 1998) ou lorsque vous utilisez une version de LILO trs ancienne. En rgle gnrale, vous pouvez ignorer cet avertissement.

Cration dune nouvelle partition

N (new, nouveau) permet de crer une nouvelle partition sur le disque dur. Vous ne pouvez pas crer plus de quatre partitions primaires. Si vous dsirez en crer plus de quatre, vous devez crer une partition tendue. Si plusieurs options sont possibles (partition primaire, tendue ou logique), fdisk afche les diffrents 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 n). La taille peut aussi tre indique par la syntaxe plus confortable +nM. Par exemple, +2500M pour une partition de 2 500 mgaoctets (Mo). La taille dun cylindre dpend du disque dur, du BIOS et ventuellement du contrleur SCSI. Cette information se trouve dans la troisime 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 cre, vous pouvez rafcher la liste des partitions avec P. Pour nir, vous pouvez crer de nouvelles partitions, supprimer des partitions dj dnies, etc.

Identifiants de partitions

fdisk cre les nouvelles partitions de type Linux Native (numro didentiant 83). Pour utiliser un autre type, vous devez indiquer le nouveau type de partition avec T (type). Les identiants de partitions courants, en hexadcimal, sont : 82 : partition dchange Linux (swap) ; 83 : Linux (pour tous les systmes de chiers Linux : ext, reiser, xfs, etc.) ; 8e : Linux LVM ; fd : Linux RAID autodetect. La commande L afche tous les numros didentiants disponibles. La liste contient galement des codes pour dinnombrables autres systmes dexploitation (DOS, Windows, Unix, etc.).

Sauvegarde des modifications

fdisk effectue les modications uniquement lorsque la commande W (write, crire) est lance. Vous pouvez vrier avec V (verify, vrier) que toutes les informations internes sont cohrentes avec le disque. Il sagit dun contrle de scurit supplmentaire.

ADMINISTRATION DU SYSTME DE FICHIERS

411

Normalement, V ne fait quafcher le nombre de secteurs qui ne sont pas attribus 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 cres avec fdisk sont vides : fdisk ninstalle pas de systme de fichiers ! La commande de cration dun systme de fichiers dpend du systme souhait (il sagit par exemple de mkfs.ext3 pour un systme de fichier ext3). Les commandes sont prsentes la section suivante.
Augmentation de la taille dune partition

fdisk ne peut pas, de base, augmenter la taille dune partition existante. Il est toutefois possible de modier la dernire partition du disque dur (ou la dernire partition logique dune partition tendue) lorsquil reste de la place derrire cette partition. Dans ce cas, vous pouvez supprimer la partition et la recrer sa nouvelle taille. fdisk modie uniquement la table de partitions ; il ne modie pas les donnes sur le disque. Le systme de donnes de la partition nest donc pas adapt. Seule une partie de la partition est alors utilise. Augmenter la taille du systme de chiers nest possible que pour certains systmes de chiers (voir la section 23.4). La modication dune partition ou dun systme de donnes est une opration trs dangereuse qui nest conseiller quaux utilisateurs avancs. Noubliez pas deffectuer une sauvegarde lorsque cela est possible. Cet exemple montre comment ajouter une partition supplmentaire un disque dur de 80 gigaoctets (Go). Il sagit du premier disque de lordinateur. fdisk est donc lanc avec le paramtre /dev/sda. La commande P donne des informations sur ltat 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 dune premire partition primaire (12 cylindres, 94 Mo, systme de rcupration Dell), dune seconde partition primaire (1 215 cylindres, 9 477 Mo, partition Windows) et dune partition tendue (le reste des cylindres, 66 300 Mo). Dans cette partition tendue se trouvent cinq partitions Linux et une partition dchange Linux. La partition tendue dispose despace 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 ny a rien dincorrect avec cela, mais cest plus grand que 1024, et cela pourrait causer des problmes en fonction pour certaines configurations : 1) logiciels qui sont excuts lamorage (i.e., vieilles versions de LILO) 2) logiciels damorage et de partitionnement pour dautres SE (i.e., DOS FDISK, OS/2 FDISK) Commande (m pour laide): p Disque /dev/sda: 80.0 Go, 80026361856 octets 255 heads, 63 sectors/track, 9729 cylinders Units = cylindres of 16065 * 512 = 8225280 bytes

Exemple

412

LINUX

Identifiant disque: 0xeede9d79 Priphrique Amorce /dev/sda1 /dev/sda2 * /dev/sda3 /dev/sda5 /dev/sda6 Dbut 1 13 1229 1229 1351 Fin 12 1228 9729 1350 3782 Blocs 96358+ 9767520 68284282+ 979933+ 19535008+ Id de 7 5 82 83 Systme Dell Utility HPFS/NTFS Extended Linux swap / Solaris Linux

N permet de crer une nouvelle partition logique. Le cylindre de dbut est le premier cylindre libre. La taille est indique avec +1500M. Pour nir, la nouvelle table de partitions est nouveau afche. Elle montre que la nouvelle partition occupe en fait 1 506 Mo (parce que fdisk travaille uniquement sur des cylindres complets) :
Commande (m pour laide): n Action de commande l logique (5 ou plus) p partition primaire (1-4) l Premier cylindre (3783-9729, par dfaut 3783): <Entre> Utilisation de la valeur par dfaut 3783 Dernier cylindre ou +taille or +tailleM ou +tailleK (3784-9729, par dfaut 9729): +1500M Commande (m pour laide): 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 Priphrique Amorce /dev/sda1 /dev/sda2 * /dev/sda3 /dev/sda5 /dev/sda6 /dev/sda7 Dbut 1 13 1229 1229 1351 3783 Fin 12 1228 9729 1350 3782 3974 Blocs 96358+ 9767520 68284282+ 979933+ 19535008+ 1542208+ Id de 7 5 82 83 83 Systme Dell Utility HPFS/NTFS Extended Linux swap / Solaris Linux Linux

W enregistre la table de partitions modie. Comme le disque est utilis, fdisk ne parvient pas lire la nouvelle table. Il faut donc redmarrer lordinateur avant de pouvoir utiliser la nouvelle partition.
Commande (m pour laide): w La table de partitions a t altre! Appel de ioctl() pour relire la table de partitions. AVERTISSEMENT: la re-lecture de la table de partitions a chou avec lerreur 16: Priphrique ou ressource occup. Le kernel va continuer dutiliser lancienne table. La nouvelle table sera utilise lors du prochain ramorage. Synchronisation des disques.

ADMINISTRATION DU SYSTME DE FICHIERS

413

Raccourcis clavier de fdisk D L M N P Q T V W supprime la partition (delete) affiche les identifiants de partitions (list) affiche laide en ligne (menu) cre une nouvelle partition (new) affiche la liste des partitions (print) termine le programme sans modifier la table de partitions (quit) modifie le type de partitions (type) vrifie la table de partitions (verify) crit la table de partitions (write)

parted
La diffrence 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 modier la taille dune partition et du systme de chiers qui sy trouve sans perte de donnes. Cela fonctionne uniquement lorsque parted peut accder diverses commandes et bibliothques. 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 modications sont excutes immdiatement et non aprs une criture explicite sur le disque. Pour ces raisons, il vaut mieux prfrer fdisk ou un outil graphique de partitionnement.
Dmarrage

Indiquez au dmarrage de parted le disque utiliser (par dfaut, /dev/hda). H+Entre afche les commandes disponibles. H+commande afche un texte daide rapide propos de la commande. P afche 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 vrification du systme de fichiers cp [PRIPHRIQUE-SOURCE] NOMBRE-SOURCE NOMBRE-DESTINATION copie le systme de fichiers vers une autre partition help [COMMANDE] affiche laide gnrale, ou laide sur la COMMANDE mklabel LABEL-TYPE cre une nouvelle tiquette de disque (table de partition) mkfs NUMERO TYPE-FS cre un systme de fichiers de type TYPE-SF sur la partition NUMERO. mkpart TYPE-PART [TYPE-SF] DBUT FIN cre une partition mkpartfs TYPE-PART TYPE-SF DBUT FIN cre une partition avec un systme de fichiers move NUMERO DEPART FIN dplace la partition NUMERO. name NUMERO NOM donne le nom NOM la partition NUMERO. print [free|NUMRO|all] affiche la table de partitions, une partition ou tous les priphriques

414

LINUX

quit quitter le programme rescue DEPART FIN restaure une partition perdue entre DEPART et FIN resize NUMERO DPART FIN redimensionne la taille de la partition NUMERO et de son systme de fichiers. rm NUMERO supprime la partition NUMERO select PERIPHERIQUE slectionne le priphrique diter. set NUMERO STATUT DRAPEAU modifie le drapeau sur la partition NUMERO toggle [NUMERO [DRAPEAU]] change ltat du DRAPEAU de la partition NUMERO unit UNITE change lunit par dfaut UNITE version affiche la version utilise 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 Numro 1 2 3 5 6 7
Utilisation

Dbut 32,3kB 98,7MB 10,1GB 10,1GB 11,1GB 31,1GB

Fin 98,7MB 10,1GB 80,0GB 11,1GB 31,1GB 80,0GB

Taille 98,7MB 10,0GB 69,9GB 1003MB 20,0GB 48,9GB

Type primaire primaire tendue logique logique logique

Systme de fichiers fat16 ntfs linux-swap ext3 ext3

Fanions amorce

Exemple

Les commandes mkpart et rm crent et suppriment des partitions. mkpartfs cre une nouvelle partition et y cre le systme de chiers souhait, pour autant que parted puisse accder aux programmes et bibliothques spciques au systme de chiers. Vous devez passer la commande de cration de partition le dbut et la n souhaite de la partition. GB est une abrviation de gigaoctet. parted fait en sorte que les partitions se suivent sans problme. Si vous crez une partition logique, vous devez auparavant agrandir la partition tendue. Les commandes suivantes agrandissent dabord la partition tendue (numro 3) de 10 Go. Puis, une nouvelle partition logique y est cre, sans systme de chiers :
(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 Numro 1 2 3 5 6 7 8 Dbut 32,3kB 98,7MB 10,1GB 10,1GB 11,1GB 31,1GB 80,0GB Fin 98,7MB 10,1GB 90,0GB 11,1GB 31,1GB 80,0GB 90,0GB Taille 98,7MB 10,0GB 79,9GB 1003MB 20,0GB 48,9GB 10,0GB Type primaire primaire tendue logique logique logique logique Systme de fichiers fat16 ntfs linux-swap ext3 ext3 Fanions amorce

Pour crer une nouvelle partition en tant que partition dchange ou comme partie dun systme LVM ou RAID, vous devez modier le type de partition. La commande correspondante est set numro_partition nom_attribut. Les diffrents attributs comprennent entre autres amorce, swap, lvm et raid.

ADMINISTRATION DU SYSTME 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 dveloppement de qtparted semble cependant interrompu la dernire version date de 2005. Cest 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 bibliothques Gnome sous-jacentes soient installes. Vous trouverez plus dinformations sur ces deux programmes aux adresses http://gparted.sourceforge.net/ et http://qtparted.sourceforge.net/. Au dmarrage, gparted analyse les disques prsents sur lordinateur.

gparted peut modifier uniquement les partitions qui ne sont pas en cours dutilisation (cest--dire celles qui ne sont pas montes dans larborescence). Toutes les partitions utilises sont affiches avec un verrou et les boutons ddition correspondants sont dsactivs. La partition tendue est verrouille ds lors quau moins une des partitions logiques qui sy trouvent est active. En pratique, vous devrez donc utiliser souvent gparted sur un live CD, sans quoi presque toutes les oprations importantes sont bloques.
Contrairement parted, gparted enregistre toutes les actions, mais ne les effectue pas directement. Annuler permet de revenir sur sa dcision ; Appliquer effectue les actions. gparted ne sait malheureusement pas crer de partitions LVM ou RAID.

Figure 23.1
Agrandir une partition tendue.

416

LINUX

23.4 Types de systmes de fichiers


Cette section est un aperu des types de systmes de chiers utiliss sous Linux. Ce chapitre traitera plus tard des types de chiers importants : ext, reiserfs, vfat, ntfs et iso9660. Vous pouvez dterminer quels systmes de chiers vous utilisez actuellement avec la commande df -T.
Linux

Les "systmes de chiers Linux" sont ceux qui sont appropris linstallation et lutilisation de Linux. Vous ne verrez pas de diffrence au quotidien entre les diffrents systmes de chiers que vous pouvez utiliser. Les commandes lmentaires comme ls ou cp, la gestion des droits daccs, etc. fonctionnent quel que soit le systme de chiers. Ils se diffrencient par des particularits qui nintressent gnralement que les utilisateurs avancs de Linux ou sur des points qui ne concernent quune utilisation en tant que serveur : les performances daccs de trs gros chiers ou de trs nombreux petits chiers, lefcacit des oprations de lecture et dcriture, la charge du processeur, la fonction de journalisation (comportement aprs une interruption), la fonction de quotas (la possibilit de limiter lespace maximal allou un utilisateur), la compatibilit avec NFS, la surcharge de gestion, la prise en charge de droits daccs supplmentaires (ACL), la compatibilit avec SELinux, etc. ext. ext2 (extended lesystem, systme de chiers tendu, version 2) a longtemps t le systme de chiers dominant sous Linux. Depuis 2002, ext3 a pris la suite. ext3 est compatible avec ext2 mais prend en charge des fonctions de journalisation et, depuis le noyau 2.6, les ACL. La taille maximale dun chier est de 2 traoctets (To) ; la taille maximale du systme de chiers et de 8 To. Le dveloppement dext4 a commenc mi-2006. La taille maximale du systme de chiers passe alors un exaoctet (Eo), soit 1 048 576 To. Lutilisation pratique de ext4 nest pas encore prvue. reiser. reiserfs (nomm daprs son crateur, Hans Reiser) fut le premier systme de chiers disposant de la fonction de journalisation intgre au noyau. La version 3.n tait le systme de chiers par dfaut de SUSE jusqu sa version 10.1 ; cest toujours le cas pour la distribution Slackware. Lavantage principal de reiserfs sur ext3 est la gestion des petits chiers : elle est plus rapide et plus efcace en termes de place (un systme de donnes typique se compose essentiellement de petits chiers). Hans Reiser a compltement revu larchitecture de son systme de chiers pour reiser4 (reiserfs version 4), qui devient un des systmes les plus modernes. Les nouveauts importantes comptent une interface de greffons pour le dveloppement modulaire de fonctions supplmentaires. Cependant, en raison de divergences personnelles et de critiques sur la qualit du code, reiser4 ne fait toujours pas partie du noyau Linux ofciel ce jour. Il est de ce fait peu rpandu. reiser4 est incompatible avec reiserfs : pour changer de version, il faut copier lancien systme de chiers reiserfs dans une nouvelle partition reiser4. Du fait des dmls courants de Hans Reiser avec la justice amricaine, lavenir de ce systme de chiers est inconnu. xfs. xfs tait lorigine le systme de chiers des stations de travail SGI qui utilisaient le systme dexploitation IRIX. Il est surtout adapt la gestion des trs gros chiers et il

ADMINISTRATION DU SYSTME DE FICHIERS

417

est par exemple idal pour lexploitation de ux vido. Il prend en charge les quotas et les ACL. Le systme de chiers peut tre agrandi en cours de fonctionnement. jfs. jfs signie journaled le system (systme de chiers journalis). Il a t dvelopp par IBM, puis port sous Linux. jfs na jamais t trs populaire sous Linux et est actuellement dans lombre des autres systmes de chiers existants.
Il nexiste pas de systme de fichiers "plus sr" ou "plus rapide" : les performances dpendent de lutilisation. Pour les dbutants sous Linux, il est conseill dutiliser ext3. Ce systme est trs rpandu, mr et stable. Ces lments sont plus importants que quelques pour cent supplmentaires de performances sur des applications prcises. Vous trouverez une description plus prcise de tous les types de systmes de fichiers dans Wikipedia, o les pages en anglais sont encore plus dtailles. Internet regorge de comparaisons et de tests de rapidit. Il est galement possible dexploiter plusieurs types de systmes de fichiers, par exemple ext2 ou ext3 pour la partition damorage (ce qui vite les problmes lis GRUB ou LILO), ext3 pour la partition systme, reiserfs pour une partition de dveloppement (contenant de nombreux petits fichiers) et xfs pour une partition multimdia (qui contient gnralement des fichiers plus gros).
Unix

DOS, Windows, OS/2 et Macintosh

CD-ROM et DVD

Si vous avez install un second systme Unix sur votre machine, les systmes de chiers suivants peuvent servir pour les changes de chiers : efs. Le systme efs est utilis sur les anciennes machines SGI (IRIX, versions antrieures 6.0). Certains CD-ROM de SGI utilisent galement ce format. Linux peut uniquement le lire, il ne sait pas le modier. sysv. Le systme de chiers sysv est utilis par les systmes SCO, XENIX et Coherent. ufs. Le systme de chiers UFS est utilis par FreeBSD, NetBSD, NeXTSTEP et SunOS. Linux peut uniquement lire ces systmes. Pour accder une partition BSD, il faut utiliser lextension BSD Disklabel. Une extension similaire existe pour les tables de partitions SunOS. Les systmes de chiers suivants permettent dchanger des chiers avec les systmes DOS, Windows, OS/2 et Macintosh : vfat. Ce systme est utilis par Windows 9x/ME. Linux peut lire et crire sur ce type de partitions. Le pilote vfat peut galement travailler avec le systme de chiers DOS (8+3 caractres). ntfs. Ce systme de chiers est utilis sous Windows NT4, 2000, XP et Vista. Linux peut y lire des chiers et en crire, avec certaines restrictions. hpfs. hpfs est le systme de chiers de OS/2. Linux peut y lire et crire des chiers. hfs et hfsplus. Ces systmes de chiers sont utiliss sur les ordinateurs Apple. Linux peut y lire et crire des chiers. Les CD-ROM et DVD utilisent galement certains systmes de chiers : iso9660. Le systme de chiers des CD-ROM est dni par la norme ISO 9660. Cependant, cette norme prvoit uniquement des noms de chiers courts. Les noms de chiers longs sont dnis selon le systme dexploitation par des extensions diffrentes et

418

LINUX

incompatibles entre elles. Linux peut lire aussi bien les extensions Rockridge, souvent utilises sous Unix, que les extensions Joliet, utilises par Microsoft. De tels CD sont reconnus automatiquement. udf. Le format Universal Disk Format (format de disque universel) sest tabli comme successeur du format ISO 9660. Il est souvent utilis sur les DVD.
Systmes de fichiers rseau

Les systmes de chiers ne se trouvent pas obligatoirement sur des disques durs locaux, vous pouvez galement y accder par le rseau. Le noyau Linux prend en charge divers systmes de chiers rseau. Je vous indique ici les plus courants : smbfs/cifs. Ces systmes de chiers permettent de monter des rpertoires rseau Windows ou Samba dans larborescence de chiers. nfs. Le Network File System (systme de chiers rseau) est le systme de chiers rseau le plus important sous Unix. coda. Ce systme de chiers est le plus souvent compar NFS. Il fournit quelques fonctionnalits supplmentaires, mais nest pas trs rpandu. ncpfs. ncpfs est bas sur NetWare Core Protocol (protocole principal NetWare). Il est utilis par Novell NetWare.

Systmes de fichiers virtuels

Il existe sous Linux de nombreux systmes de chiers qui ne servent pas enregistrer des chiers sur un disque dur (ou sur un autre support de donnes) mais changer des informations entre le noyau et les applications. Ils sont indiqus par le mot cl nodev dans /proc/ filesystems. La liste suivante prsente les systmes les plus importants. devpts. Ce systme de chiers permet daccder aux pseudo-terminaux (PTY) via /dev/ pts/*, conformment la spcication Unix 98. Les pseudo-terminaux mulent une interface srie. Ils sont utiliss sous Unix/Linux par les mulateurs de terminaux comme xterm. Les priphriques comme /dev/ttypn sont traditionnellement utiliss. La spcication Unix 98 dnit leur place de nouveaux priphriques. Vous trouverez plus de dtails ce sujet dans le Text-Terminal-HOWTO (http://tldp.org/HOWTO/TextTerminal-HOWTO.html). proc et sysfs. Le systme de chiers proc reproduit les informations dadministration du noyau et de ladministration des processus. Le systme sysfs reproduit la connexion entre le noyau et le matriel. Ils sont respectivement monts dans le systme aux emplacements /proc et /sys. tmpfs. Ce systme de chiers est la base de la mmoire partage conformment SystemV. Il est gnralement mont lemplacement /dev/shm et permet dchanger efcacement des donnes entre deux programmes. Dans certaines distributions (par exemple Ubuntu), les rpertoires /var/run et /var/ lock sont galement mis en uvre avec tmpfs. Les chiers de ces rpertoires sont utiliss par de nombreux dmons rseau pour enregistrer lidentiant des processus ainsi que des informations daccs des chiers. Grce tmpfs, les donnes sont accessibles en mmoire vive. Cette mthode est plus rapide et permet de sassurer quil ne reste aucun chier dans /var/run ou dans /var/lock au redmarrage de lordinateur.

ADMINISTRATION DU SYSTME DE FICHIERS

419

Autres systmes de fichiers

usbfs. usbfs fournit des informations au noyau 2.6 au sujet des priphriques USB branchs. Il est gnralement intgr au systme de chiers proc (/proc/bus/usb). Pour nir, je vous prsente quelques systmes de chiers ou mots cls qui ne peuvent pas tre associs aux catgories prcdentes. auto. Il nexiste en fait pas de systme de chiers auto. Cependant, ce mot cl peut tre utilis dans /etc/fstab ou comme argument de la commande mount. Linux essaie alors de reconnatre lui-mme le systme de chiers considr. Cela fonctionne dans la majorit des cas. autofs, autofs4. autofs et sa nouvelle version autofs4 ne sont pas non plus de rels systmes de chiers. Il sagit dextensions du noyau qui montent automatiquement les systmes de chiers qui ont dj t utiliss. Si un tel systme nest pas utilis pendant une certaine priode, umount est automatiquement excut. Ce comportement est particulirement pratique lorsque seuls quelques rpertoires NFS sont utiliss parmi une plthore dentre eux disponibles sur le systme. En interne, le programme automount est lanc lors du dmarrage du systme par le script /etc/init.d/autofs. automount est congur dans le chier /etc/auto.master. Les programmes correspondants sont installs par dfaut par Fedora et Red Hat. Cependant, autofs nest actif quaprs la conguration de /etc/auto.master ou de /etc/ auto.misc. Vous trouverez plus de dtails dans le Automount-Mini-HOWTO (http://tldp.org/HOWTO/Automount.html). fuse. FUSE signie Filesytem in Userspace (systme de chiers en espace utilisateur) et permet de dvelopper et dutiliser des pilotes de systmes de chiers en dehors du noyau. FUSE est donc toujours utilis en conjonction avec un pilote externe. Il a t intgr au noyau ofciel 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 dutiliser le systme ZFS de Sun sous Linux. ZFS est un systme de chiers moderne qui gre des quantits presque illimites de donnes. Il est cependant publi sous une licence incompatible avec la GPL et ne peut donc pas tre intgr au noyau. gfs et ocfs. gfs (Global File System, systme de chiers global) et ocfs (Oracle Cluster File System, systme de chiers pour grappe dOracle) permettent de construire des systmes de chiers rpartis sur le rseau auquel plusieurs ordinateurs peuvent accder en parallle. jffs et cramfs. Ces deux systmes sont utiliss dans les priphriques embarqus. Ils permettent de compresser autant de chiers que possible sur une mmoire Flash ou sur une ROM. loop. Le priphrique de bouclage (loopback device) est un adaptateur qui permet de considrer un chier habituel comme un priphrique bloc. Vous pouvez alors y crer un systme de chiers et le monter dans une arborescence de chiers. La fonction du noyau correspondante, loopback device support (prise en charge du priphrique de bouclage) est gre par le module loop.

420

LINUX

Les priphriques de bouclage ont de nombreuses applications. Ils servent par exemple crer un disque virtuel pour GRUB ou LILO, mettre en place des systmes de chiers chiffrs, tester des images ISO pour les CD, accder des chiers image, etc. none. none nest pas un systme de chiers. Il offre la possibilit, assez peu utilise, de monter un rpertoire local dans un autre emplacement de larborescence de chiers. Pour cela, vous devez passer mount ou fstab le type de chiers none et loption supplmentaire bind. Le rsultat est alors comparable un lien symbolique, mais la mise en uvre interne en est trs diffrente. unionfs/aufs. Le concept de unionfs et de sa variante aufs permet de crer plusieurs systmes de chiers quasiment les uns au-dessus des autres, o le systme le plus haut a la priorit. unionfs et aufs sont utiliss sur de nombreux systmes "live". Linux dmarre directement depuis le CD ou depuis le DVD. Un systme de chiers de disque virtuel (RAM-disk) accessible en criture surcharge celui du CD/DVD, en lecture seule. Le systme de chiers visible contient alors la structure du CD/DVD, mais permet des modications sur le disque virtuel. Systmes de chiers chiffrs. Linux sait chiffrer le contenu dun systme de chiers de plusieurs manires diffrentes. Certaines mthodes se fondent directement sur leurs propres systmes de chiers (par exemple CryptoFS ou eCryptfs).
Le fichier /proc/filesystems permet de savoir quels systmes de fichiers sont intgrs au noyau ou chargs en tant que modules. Les modules du noyau correspondants se trouvent dans le rpertoire /lib/ modules/n/kernel/fs . Si le code source du noyau est install, vous trouverez plus dinformations dans /fs/filesystems.c et dans /Documentation/filesystems .

23.5 Gestion du systme de fichiers (mount et /etc/fstab)


Une fois Linux install, gnralement, vous ne devez vous occuper de la gestion du systme de chiers. Divers rpertoires vous permettent daccder la majorit des partitions de donnes du disque dur. Lorsque vous insrez un CD ou un DVD ou lorsque vous branchez un support de donnes externe, le systme de chiers est mont automatiquement dans larborescence. Tout fonctionne presque comme par magie. Cette section est un aperu de ce qui se passe en coulisses et dcrit les commandes mount et umount ainsi que le chier /etc/fstab. mount et umount sont excutes lorsquune partition ou un support de donnes sont intgrs ou supprims dans larborescence. Vous pouvez les lancer vous-mme en tant que root si les mcanismes automatiques chouent. Le chier de conguration /etc/fstab contrle quels systmes de chiers sont intgrs automatiquement larborescence lors du dmarrage et avec quelles options. /etc/ fstab est congur pendant linstallation de Linux. Si vous ntes pas satisfait de cette conguration ou si vous modiez votre environnement, vous devez modier ce chier avec un diteur de texte. Cette section dcrit la syntaxe du chier.

ADMINISTRATION DU SYSTME DE FICHIERS

421

De manire surprenante, il nexiste que peu doutils de configuration graphiques utilisables la place de mount ou pour modifier /etc/fstab. Au nombre des rares exceptions, on compte le module de YaST Systme, Partitionneur (SUSE) ainsi que le programme admin-disks, disponible sur certains systmes Gnome. Cependant, lutilisation de ces outils implique que vous connaissiez les concepts sous-jacents de mount et de /etc/fstab. Les supports de donnes externes comme les cls USB ou les disques durs Firewire constituent une exception : de nombreuses distributions montent automatiquement ces supports dans larborescence. Les mcanismes ncessaires cela sont cependant relativement complexes et ne sont pas ralisables directement par /etc/fstab.

Dterminer ltat courant dun systme de fichiers


df

Pour savoir comment votre systme Linux est utilis, le plus simple est de lancer la commande df. Celle-ci afche lemplacement o sont montes les partitions du disque, les supports de donnes, etc. et lespace disponible dont le systme de chiers dispose. Cet exemple montre les systmes de chiers dun ordinateur de tests. Il y a deux partitions Linux : la partition systme / et la partition de donnes /vmware. Ces deux partitions utilisent le systme de chiers ext3. /win-c et /win-d donnent accs aux chiers du Windows XP install sur le mme ordinateur. /media/dvd contient un DVD de donnes. Pour nir, la partition /data est une partition NFS distante sur un autre ordinateur du rseau local. /dev/shm est un systme de chiers virtuel servant changer des donnes entre processus.
utilisateur$ df -T Sys. de fich. Type /dev/hdc2 ext3 /dev/hdc5 ext3 /dev/hda1 ntfs /dev/hda2 vfat mars:/data nfs tmpfs tmpfs 1K-blocs 6940516 14428928 53872528 4715772 97881408 777764 Occup 6422792 4935304 49505408 3269176 78792480 0 Disponible 159476 8760660 4367120 1446596 14116832 777764 Capacit 98% 37% 92% 70% 85% 0% Mont sur / /vmware /win-c /win-d /data /dev/shm

mount

La commande mount sans options supplmentaires afche des options plus dtailles encore sur les systmes de chiers monts. Le rsultat afche galement divers systmes de chiers virtuels. De plus, la commande afche les options actives de mount. Lexemple suivant a t mis en forme en colonnes pour amliorer la lisibilit.
utilisateur$ mount /dev/hdc2 on / type ext3 /dev/hda2 on /win-d type vfat /dev/hdc5 on /vmware type ext3 /dev/hda1 on /win-c type ntfs mars:/data on /data type nfs addr=192.168.0.1,user=kofler) proc on /proc type proc sysfs on /sys type sysfs devpts on /dev/pts type devpts tmpfs on /dev/shm type tmpfs (rw) (rw,uid=501,gid=100) (rw,acl,user_xattr) (rw,uid=501,gid=100) (rw,noexec,nosuid,nodev, (rw) (rw) (rw,gid=5,mode=620) (rw)

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 chiers /etc/mtab et /proc/mounts contiennent les mmes informations. Ils comprennent une liste de tous les supports de donnes monts, associs leurs types de systmes de chiers et aux options de mount utilises. /etc/mtab est modi chaque fois quun systme de chiers est mont ou dmont. La syntaxe de mtab est la mme que celle de /etc/fstab. / proc/mounts contient galement des options qui ne sont indiques explicitement ni par mount ni par /etc/fstab.

Monter et dmonter des systmes de fichiers manuellement


Aprs linstallation dune distribution Linux rcente, le systme est congur de sorte que vous nayez que rarement besoin de mount. Tous les systmes Linux sont monts dans larborescence et une nouvelle fentre du gestionnaire de chiers de KDE ou de Gnome apparat automatiquement lors de linsertion dun CD/DVD ou lors de la connexion dune cl USB. Derrire ces mcanismes automatiques se trouve toujours la commande mount. La syntaxe de mount est celle-ci :
mount [options] priphrique rpertoire

Les options indiquent entre autres le type de systme de chiers (-t xxx). Le nom du priphrique indique la partition ou le lecteur. Le rpertoire est un rpertoire du systme de chiers courant (il doit dj exister ; vous pouvez le crer avec mkdir). mount peut gnralement tre excut uniquement par root. Cependant, le chier /etc/ fstab permet dindiquer des partitions individuelles pour lesquelles tous les utilisateurs peuvent excuter mount (option user ou users).
Exemples

Le plus simple pour comprendre mount est de prsenter quelques exemples. Le premier permet daccder aux chiers dune partition Windows 9x/ME depuis le rpertoire /windows :
root# mkdir /windows root# mount -t vfat /dev/sda1 /windows

La commande suivante monte le lecteur CD-ROM qui contient un CD de donnes (systme de chiers ISO 9660) dans le rpertoire /media/cdrom. Le priphrique /dev/scd0 indique que laccs au lecteur se fait par le systme SCSI du noyau.
root# mount -t iso9660 /dev/scd0 /media/cdrom

Lorsque les paramtres du lecteur CD (type de systme de chiers, nom du priphrique, rpertoire) sont enregistrs dans /etc/fstab, vous pouvez monter le CD avec la commande suivante :
root# mount /media/cdrom

mount -o remount permet de remonter un systme de chiers dj mont en modiant ses options. La commande suivante active par exemple loption exec pour un DVD an de pouvoir excuter les programmes qui sy trouvent :
root# mount /media/dvd -o remount,exec

ADMINISTRATION DU SYSTME DE FICHIERS

423

Si le montage de la partition systme a rencontr un problme pendant le dmarrage de lordinateur, la partition est monte en lecture seule. Pour corriger lorigine du problme (par exemple de mauvaises options dans /etc/fstab), il faut souvent modier des chiers sur le systme de chiers. Pour cela, lancez la commande suivante, qui remonte la partition systme avec des droits en criture :
root# mount -o remount,rw /

Pour supprimer un systme de chiers de larborescence, lancez la commande umount :


root# umount /win-c

Monter automatiquement des systmes de fichiers


Il serait trs pnible de devoir monter toutes les partitions chaque dmarrage du systme, de devoir lancer mount avec toutes ses options chaque changement de CD, etc. Le travail est facilit par le chier /etf/fstab. Il indique quels supports de donnes doivent tre pris en compte dans le systme de chiers au dmarrage. Dans tous les cas, fstab doit contenir la partition systme ainsi que tous les systmes ncessaires la gestion interne du systme. Selon la distribution, un chier fstab minimal peut ressembler ce qui suit :
# deux lignes dexemple de /etc/fstab /dev/sda2 / ext2 defaults 1 1 none /proc proc defaults 0 0 ... autres systmes de fichiers virtuels (/dev/pts, /dev/shm etc.)

Exemple

La premire ligne indique quil faut utiliser la deuxime partition du premier disque IDE comme rpertoire systme. Selon la partition sur laquelle vous avez install Linux, hda2 doit tre remplac par le bon nom de priphrique. La deuxime ligne monte le systme de gestion des processus. Les chiers et rpertoires du rpertoire /proc nexistent en fait pas sur le disque dur, il sagit dune reprsentation des donnes utilises en interne par le noyau.
Certaines distributions, pour la plupart anciennes, modifient automatiquement le fichier /etc/fstab ds quun nouveau support de donnes est ajout ou supprim dans le systme. Ces modifications automatiques peuvent tre gnantes : des lignes peuvent tre crases ou supprimes.

Syntaxe de /etc/fstab
Lexemple ci-dessus reprsente le format principal de fstab. Chaque ligne dcrit, en six colonnes, un support de donnes (une partition, un systme de chiers). La premire colonne contient le nom du priphrique du support de donnes. Vous trouverez des informations sur la nomenclature des partitions de disque la section 23.2. Au lieu dutiliser le nom dun priphrique, vous pouvez utiliser son nom ou son identiant. La syntaxe correcte dans ces cas est alors LABEL=chane_de_caractres ou UUID=nnnnnn. /lib/udev/vol-id permet dobtenir les noms et UUID dune partition. Pour modier

Premire colonne

424

LINUX

ces donnes, il faut utiliser diffrents outils selon le format du systme de chiers (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

Lavantage des noms de partitions ou des libells par rapport aux noms de priphriques est quils restent identiques mme quand le priphrique a chang de nom. Cela arrive relativement frquemment pour les disques SCSI lorsquun lecteur supplmentaire est ajout. Cette mthode prsente cependant deux inconvnients. Dune part, fstab en devient plutt moins clair (les UUID le rendent mme illisible). Dautre part, si plusieurs distributions Linux sont installes en parallle, des problmes supplmentaires peuvent se poser. En effet, lors de linstallation, la partition dchange et ventuellement dautres partitions sont reformates. Par consquent, de nouveaux UUID sont gnrs. Les distributions installes ne peuvent donc plus reconnatre ces partitions. Il faut alors modier fstab pour lui indiquer les nouveaux UUID.
Deuxime colonne

La deuxime colonne indique dans quel rpertoire le support de donnes doit tre mont. Les rpertoires de la deuxime colonne doivent dj exister. Le rpertoire ne doit pas ncessairement tre vide, mais vous ne pourrez plus accder aux chiers qui sy trouvent aprs avoir mont le systme de chiers. La troisime colonne indique le systme de chiers. Le tableau suivant liste tous les systmes de chiers importants, en ordre alphabtique.
Systmes de fichiers pris en charge par Linux (troisime colonne de /etc/fstab) auto cifs devpts ext2 ext3 ext4 iso9660 nfs ntfs proc reiserfs reiser4 smbfs swap sysfs tmpfs udf usbfs vfat systme de fichiers reconnatre automatiquement systme de fichiers rseau de Windows (Samba) pseudo-terminaux conformment la spcification Unix 98 ext version 2 ext version 3 ext version 4 CD-ROM, DVD systme rseau Unix (NFS) systme de fichiers Windows NT/2000/XP/Vista gestion des processus /proc reiser version 3.n reiser version 4.n systme de fichiers rseau de Windows (Samba) partition ou fichier dchange gestion du systme (/sys) change de donnes entre les programmes conformment SystemV (mmoire partage) Universal Disk Format (DVD, CD-RW) gestion des priphriques USB systme de fichiers Windows 9x/ME

Troisime colonne

ADMINISTRATION DU SYSTME DE FICHIERS

425

On peut galement indiquer plusieurs systmes de chiers, spars par des virgules. Par exemple, les CD et DVD peuvent tre congurs avec loption iso9660,udf car seuls ces deux systmes de chiers sont gnralement utiliss dans ce cas. mount choisit alors le format quil va utiliser.
Quatrime colonne

La quatrime colonne contient des informations relatives laccs au support de donnes. Les options sont spares par des virgules ; les espaces ne sont pas autorises. Le tableau suivant numre les options les plus importantes de mount. Vous en trouverez une rfrence complte dans man mount. Si vous ne souhaitez pas passer doptions, utilisez le mot cl defaults.
Options de mount (quatrime colonne de /etc/fstab) defaults dev exec noauto nodev noexec nosuid sync owner user users utiliser les options par dfaut prendre en compte les identificateurs des priphriques caractre ou bloc autoriser lexcution de programmes (par exemple pour les lecteurs CD/DVD) ne pas monter au dmarrage du systme ignorer les identificateurs des priphriques caractre ou bloc interdire lexcution de programmes ne pas prendre en compte les bits daccs sid et gid ne pas mettre en tampon les accs en criture (plus sr, mais plus lent) autoriser le propritaire excuter (u)mount autoriser tous les utilisateurs excuter mount ; seul lutilisateur qui a appel mount peut appeler umount autoriser tous les utilisateurs appeler (u)mount

Cinquime colonne

La cinquime colonne contient des informations pour le programme dump et est actuellement ignore. Gnralement, la partition systme contient la valeur 1, et les autres partitions ou supports de donnes contiennent la valeur 0. La sixime colonne indique si et dans quel ordre le systme de chiers doit tre vri au dmarrage. Dans la plupart des distributions, la valeur de cette colonne est 1 pour la partition systme et 0 pour toutes les autres, ce qui signie que seule la partition systme est vrie et ventuellement rpare. Si vous souhaitez vrier dautres partitions automatiquement, donnez-leur la valeur 2 dans cette colonne. Les systmes de chiers qui ne doivent pas tre vris doivent avoir la valeur 0. Si les valeurs de la cinquime et de la sixime colonne ne sont pas renseignes dans /etc/ fstab, la valeur 0 est utilise par dfaut.

Sixime colonne

426

LINUX

23.6 Les systmes de fichiers Linux


Cette section traite des trois systmes de chiers les plus importants sous Linux, ext3, reiserfs et xfs. Avant den dcrire la mise en uvre et ladministration, nous allons tablir ici quelques bases indpendantes du systme de chiers. Cette section de gnralits explique des concepts tels que la journalisation ou LFS et est en quelque sorte un glossaire pour les sections suivantes.

Gnralits
Journalisation

Tous les systmes de chiers actuels sous Linux prennent en charge des fonctions de journalisation. Dans sa forme la plus simple, la journalisation implique quau dbut et la n de chaque opration sur les chiers, celle-ci est enregistre dans un chier spcique. Grce cet enregistrement, vous pouvez vrier si une opration donne a t compltement excute ou non. Si ce nest pas le cas, elle peut tre rpte (dans le vocabulaire des bases de donnes, on parle de transactions). Dans les systmes de journalisation avancs, il est galement possible denregistrer les modications propres aux chiers. Cela ralentit le fonctionnement quotidien, mais fournit plus de possibilits en ce qui concerne la reconstruction. Lorsquune opration ne se termine pas correctement, le chier de journalisation entre en jeu. Lorsque la journalisation est simple, les modications sont perdues (nattendez pas des miracles de la journalisation), mais ltat prcdent du chier est rtabli. Lavantage des fonctions de journalisation est que le systme de chiers peut tre ramen trs rapidement un tat cohrent lors du dmarrage de lordinateur et tre utilis presque immdiatement. Cest une diffrence majeure par rapport ce qui se faisait prcdemment : aprs une interruption ou une coupure de courant, le systme de chiers complet devait tre parcouru la recherche derreurs. Cela durait plusieurs minutes, voire des heures pour les gros disques durs.
La journalisation noffre pas de garantie en ce qui concerne la cohrence du systme de fichiers aprs une coupure de courant. Le problme provient des disques durs. Ceux-ci utilisent, pour des raisons defficacit, de la mmoire tampon interne. Il peut alors arriver que, du point de vue du systme de fichiers, les donnes soient reues et enregistres par le disque alors quelles ne sont crites sur le disque dur que quelques secondes plus tard. Si la coupure de courant survient pendant cet intervalle de temps, les donnes de la mmoire tampon sont perdues. Certains disques durs permettent de dsactiver ce cache. Les performances dcriture sen ressentent fortement, ce qui explique pourquoi on vite gnralement de le faire. Indpendamment du cache dcriture, le comportement du disque dur lors dune coupure dlectricit soudaine est imprvisible. Pour formuler cela autrement, les systmes de fichiers journaliss sont une belle chose, mais ils nvitent pas les pertes de donnes conscutives une coupure. Si vos donnes ont une certaine valeur, investissez 100 euros dans un petit onduleur qui permettra votre ordinateur de sarrter proprement, mme en cas de coupure dlectricit.

ADMINISTRATION DU SYSTME DE FICHIERS

427

Vrification automatique du systme de fichiers

Lorsque Linux dtecte, au moment du dmarrage, que lordinateur na pas t teint correctement, il lance une vrication pour la partition systme et, selon la conguration, pour dautres partitions listes dans /etc/fstab. La vrication dpend de la valeur de la sixime colonne du chier, comme lexplique la section 23.5. Grce la journalisation, cette vrication ne prend normalement que quelques secondes. Indpendamment de cela, certains systmes de chiers (entre autres toutes les versions dext) vrient rgulirement leur cohrence. Ces tests relativement longs sont lancs au dmarrage de lordinateur au bout dune certaine dure ou dun certain nombre de montages de la partition. Lorsque les fonctions de journalisation ont t introduites, il a souvent t argument que ce type de vrication tait redondant. Cela nest malheureusement pas tout fait vrai : un systme de chiers peut souffrir dincohrences dues des erreurs matrielles et la probabilit de ce type derreur augmente avec la taille du disque. La spcication dun disque dur de 320 Go indique que la probabilit derreur (non-recoverable read errors per bits read, nombre derreurs de lecture non rcuprables par bit lu) est de 1/1014. Cela semble ngligeable. Cependant, ce disque contient 2,56 1013 bits. Les erreurs sont donc probables en fonctionnement normal, en dehors mme de tout incident. Un test de cohrence rgulier du systme de chiers ne permet pas dviter ces erreurs, mais il permet de dtecter et de corriger les comportements derreur (au moins lorsque des zones critiques pour la gestion interne du systme de chiers sont touches). Les systmes de chiers prsents dans cet ouvrage ne tolrent malheureusement pas les erreurs. Les systmes qui dtectent les erreurs matrielles grce des sommes de contrle ou qui peuvent corriger de telles erreurs grce un enregistrement redondant ne sont actuellement que des sujets de recherche. Les dtails de la vrication des systmes de chiers au dmarrage dpendent souvent de la distribution. Gnralement, elle se fait sans interaction de lutilisateur et ralentit visiblement le processus de dmarrage. Cela ne devient rellement gnant que lorsque des erreurs non rcuprables sont rencontres. Dans ce cas, la partition est monte en lecture seule. Vous devez alors vous connecter en tant que root, rpter la vrication du systme de chiers et indiquer de manire interactive ce que doit faire loutil de vrication avec les donnes dfectueuses. Dans la plupart des cas, vous reviendrez ici un tat cohrent du systme de chiers, mais il est possible que vous narriviez pas secourir tous les chiers. Pour nir, redmarrez lordinateur.

Vrification manuelle du systme de fichiers

Vous pouvez vrier manuellement un systme de chiers avec la commande fsck. Cependant, la partition concerne ne peut pas tre utilise pendant ce temps et doit tre dmonte avec umount. Vous ne pouvez pas vrier la partition systme lorsque le systme fonctionne car vous ne pouvez pas la dmonter. Pour forcer la vrication, lancez en tant que root la commande touch /forcefsck et redmarrez lordinateur. Ce chier est galement cr lorsque vous lancez shutdown avec loption -F.

428

LINUX

Lorsque le chier /forcefsck existe, presque toutes les distributions lancent une vrication du systme de chiers. Si ce nest pas le cas, utilisez un systme de secours ou un live CD (Knoppix) et lancez-y fsck.
Limites de taille

Auparavant, la taille maximale des chiers tait une question rcurrente, dont la rponse dpendait du noyau, de larchitecture du processeur, de la bibliothque glibc et du systme de chiers. Les distributions courantes prennent en charge lextension LFS dans la bibliothque glibc. La taille des chiers est alors, du point de vue de Linux, presque illimite : 263 octets. En pratique, il existe cependant certaines limites. Mme aujourdhui, certains programmes se heurtent la limite de 2 Go, ce qui peut par exemple rendre le tlchargement dimages ISO de DVD pnible. Utilisez des outils adapts, comme wget partir de sa version 1.10. Dautre part, les systmes de chiers ont diffrentes limites pour la taille maximale des chiers et des systmes de chiers. Le tableau suivant rsume ces donnes. Ici, 1 To = 1024 Go.
Systme de chiers Taille maximale dun chier 2 To inconnue 8 To inconnue 9 437 184 To Taille maximale du systme 8 To (en blocs de 4 Ko) 1 048 576 To 16 To inconnue 9 437 184 To

ext2 / ext3
ext4 reiserfs reiser4 xfs
Changement de systme de fichiers

Il nexiste pas doutil pour changer de systme de chiers (par exemple passer une partition de ext3 reiserfs). La seule manire consiste crer une nouvelle partition formate dans le systme souhait et y copier tous les chiers.

Systmes de fichiers ext (ext2, ext3 et ext4)


Les diffrentes versions de ext dominent le monde des systmes de chiers sous Linux : ext, la premire version du systme de chiers, na t exploite que brivement aux dbuts de Linux (1992). La taille maximale du systme de chiers tat de 2 Go. ext2 tait le systme de chiers dominant sous Linux entre 1993 et 2001. La taille maximale du systme de chiers tait de 8 To. Les nouveauts 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 systmes ext2 navaient pas besoin dtre formats et pouvaient tre transforms facilement en systmes ext3. Un systme ext3 peut mme tre mont en tant que systme ext2. Le dveloppement de ext4 a commenc en 2006. ext4 fait partie du noyau ofciel depuis le noyau 2.6.19, mais il a encore actuellement un statut exprimental et ne doit pas tre utilis pour des donnes importantes. La taille maximale du systme passe 1 Eo (1 048 576 To) et les dates des modications de chiers sont enregistres plus prcisment. De plus, diverses optimisations de performances sont prvues. La compatibilit est galement prise en compte an dassurer

ADMINISTRATION DU SYSTME DE FICHIERS

429

/etc/fstab

des migrations sans problme de ext3 ext4. Attention, il nest en revanche plus possible de passer de ext4 ext3. La compatibilit entre les diffrents systmes ext est galement visible du fait que divers outils dadministration ont toujours un 2 dans le nom de la commande mme sils fonctionnent galement pour les versions plus rcentes (par exemple tune2fs). Les informations qui suivent sont valides pour le systme ext3. Presque toutes les distributions actuelles utilisent aujourdhui ext3 par dfaut. Les systmes ext3 sont gnralement dnis dans /etc/fstab de la manire suivante :
/dev/sdb8 /dev/sdb9 /dev/sdb9 / /data /acl-data ext3 ext3 ext3 defaults 1 1 defaults 0 0 acl,user_xattr 0 0

Cration dun systme de fichiers ext3

Les systmes de chiers ext2 et ext3 sont tous deux formats avec la commande mke2fs. Celle-ci peut galement tre appele sous la forme mkfs.ext2 ou mkfs.ext3. Loption -j sert crer un chier de journalisation pour le systme de donnes ; ce chier est la seule diffrence entre ext2 et ext3. Vous trouverez une rfrence complte de mke2fs dans man mke2fs. Dans lexemple suivant, un systme ext3 est cr sur une cl USB de 64 Mo. mke2fs choisit lui-mme une taille de bloc de 1 kilooctet (Ko) et choisit galement dutiliser 256 inodes par mgaoctet (ce qui correspond loption -i 4096) :
root# mke2fs -j /dev/sda14 mke2fs 1.40.8 (13-Mar-2008) tiquette de systme de fichiers= Type de systme dexploitation: Linux Taille de bloc=1024 (log=0) Taille de fragment=1024 (log=0) 16000 i-noeuds, 64000 blocs 3200 blocs (5.00%) rservs pour le super utilisateur Premier bloc de donnes=1 Nombre maximum de blocs du systme de fichiers=65536000 8 groupes de blocs 8192 blocs par groupe, 8192 fragments par groupe 2000 i-noeuds par groupe Superblocs de secours stocks sur les blocs: 8193, 24577, 40961, 57345 criture des tables di-noeuds: complt Cration du journal (4096 blocs): complt criture des superblocs et de linformation de comptabilit du systme de fichiers: complt Le systme de fichiers sera automatiquement vrifi tous les 30 montages ou aprs 180 jours, selon la premire ventualit. Utiliser tune2fs -c ou -i pour craser la valeur.

Modes de journalisation

ext3 peut mener sa journalisation de trois manires diffrentes : data=ordered. Cest le mode par dfaut. Seules les mtadonnes sont enregistres dans le journal (les informations sur les chiers et non leur contenu). Dans le journal, les

430

LINUX

chiers ne sont indiqus comme tant valids (commited) que lorsquils sont copis entirement sur le disque. Aprs un plantage, le systme de chiers peut revenir trs rapidement un tat cohrent car tous les chiers qui nont pas t compltement enregistrs sont identiables immdiatement. Cependant, il est impossible de les rcuprer. data=writeback. Ce mode est comparable au mode ordered. La seule diffrence est que le journal et les oprations sur les chiers ne sont pas toujours compltement synchrones (ext3 nattend pas la n de lopration de lenregistrement pour marquer le chier comme committed). Ce mode est plus rapide que le mode ordered. Aprs un plantage, lintgrit du systme de chiers est assure dans la mme mesure. Cependant, il arrive que les chiers contiennent des anciennes donnes. Le rsultat est le mme que pour une rcupration aprs 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 modications des donnes. Toutes les modications sont donc enregistres deux fois (une fois dans le journal et une fois dans le chier). ext3 est donc nettement plus lent dans ce mode. Les chiers dont les modications se trouvent dans le journal (mais pas encore enregistres dans le chier) peuvent tre rcuprs aprs un plantage. Si vous ne passez pas doption particulire mount, data=ordered est utilis. Pour utiliser un autre comportement de journalisation, passez-le mount avec loption -o :
root# mount -t ext3 -o data=journal /dev/sda12 /test

Vous pouvez aussi rgler ce comportement dans /etc/fstab :


/dev/sda12 /test ext3 data=journal 1 0

En interne, cest le dmon de journalisation intgr au noyau kjournald qui soccupe de lactualisation rgulire du fichier de journalisation. Ce processus est dmarr automatiquement lorsquun systme de fichiers ext3 est mont dans larborescence. kjournald est responsable du fait quun accs disque ait lieu toutes les cinq secondes, mme lorsque lordinateur neffectue apparemment aucune tche.
Conversion de ext2 ext3

Pour convertir un systme ext2 au format ext3, il suft de lancer la commande suivante :
root# tune2fs -j /dev/sda5

Vrification du systme de fichiers

Les systmes de chiers ext sont rgulirement contrls lors du dmarrage de lordinateur, aprs un nombre donn de commandes mount (par dfaut 36) ou aprs une dure donne (par dfaut 6 mois), quel que soit le premier critre atteint. Certaines distributions modient ces paramtres pour des valeurs bien plus grandes, voire dsactivent (avec la valeur 0) compltement les vrications. La plupart des distributions congurent fstab pour que seule la partition systme soit vrie (cela correspond la sixime colonne, voir la section 23.5). Malgr la journalisation, il est conseill de vrier le systme de chiers rgulirement (au moins une deux fois par an). Ainsi, vous pouvez dtecter dventuelles dfaillances matrielles. Il arrive galement que le pilote du systme de chiers contienne des erreurs encore inconnues. Plus les erreurs sont corriges tt, plus les dgts potentiels sont faibles.

ADMINISTRATION DU SYSTME DE FICHIERS

431

Vous pouvez lancer manuellement une vrication avec la commande fsck.ext2 ou fsck.ext3. La partition doit tre dmonte lors du contrle.
root# fsck.ext3 -f /dev/sda13 Passe1: vrification des i-noeuds, des blocs et des tailles Passe 2: vrification de la structure des rpertoires Passe3: vrification de la connectivit des rpertoires Passe 4: vrification des compteurs de rfrence Passe 5: vrification de linformation du sommaire de groupe (/dev/sda13): 152190/640000 files (1.0% non-contiguous), 722668/1279167 blocks
Modification de lintervalle de vrification automatique

Vous pouvez dnir et modier lintervalle de vrication du systme de chiers avec tune2fs. Les options -c et -i permettent de modier respectivement le nombre de montages de la partition et lintervalle, 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

Dfinition du nom de la partition

e2label permet de voir et de dnir le nom interne dune partition ext3 :


root# e2label /dev/sda1 mylabel

Vous pouvez donner ces noms dans la premire colonne de /etc/fstab la place du nom du priphrique.
Dfinition de lUUID

Le systme de chiers reoit automatiquement un UUID lors de sa cration. Vous pouvez le connatre avec la commande vol_id ou /lib/udev/vol_id. Vous pouvez ventuellement le modier avec tune2fs -U. Cette modication peut tre faite mme lorsque la partition est monte. Vous pouvez indiquer un identiant alatoire (random) ou prdtermin.
root# tune2fs -U random /dev/sda1 root# tune2fs -U f7c49568-8955-4ffa-9f52-9b2ba9877021 /dev/sda1

Redimensionnement dun systme de fichiers ext3

resize2fs permet de redimensionner un systme de chiers ext3. Attention, vous devez auparavant modier la taille de la partition ! Dans lexemple suivant, la partition de 1.5 Go /dev/sdb11 est supprime et recre avec une taille de 2 Go. Cela se passe sans problme : il sagit de la dernire 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 laide): p 255 heads, 63 sectors/track, 2055 cylinders Units = cylindres of 16065 * 512 = 8225280 bytes

432

LINUX

Priphrique Amorce Dbut Fin Blocs Id Systme /dev/sdb11 1334 1525 1542208+ 83 Linux Commande (m pour laide): d Numro de partition (1-11): 11 Commande (m pour laide): n Action de commande l logique (5 ou plus) p partition primaire (1-4) l Premier cylindre (1334-2055, par dfaut 1334): <Entre> Utilisation de la valeur par dfaut 1334 Dernier cylindre ou +taille ou +tailleM ou +tailleK (1334-2055, par dfaut 2055): +2000M Commande (m pour laide): w La table de partitions a t altre! Appel de ioctl() pour relire la table de partitions. AVERTISSEMENT: la re-lecture de la table de partitions a chou avec lerreur 16: Device or resource busy. La nouvelle table sera utilise lors du prochain ramorage.

Aprs un redmarrage, on peut sans problme modier le systme de chiers de la partition /dev/hdb11. Il faut vrier le systme avec e2fsck -f avant de lancer resize2fs.
root# e2fsck -f /dev/sdb11 root# resize2fs /dev/sdb11 Le systme de fichiers /dev/sdb11 a maintenant une taille de 512064 blocs.

Il existe, pour le noyau 2.6, un correctif permettant daugmenter (mais pas de diminuer) la taille dun systme ext3 sans le dmonter. Sous Red Hat et Fedora, ce correctif est intgr par dfaut. Pour les distributions plus anciennes, vous pouvez modifier la taille du systme de fichiers avec la commande ext2online. partir de Fedora 6 et de Red Hat Enterprise 5, cette fonction est directement intgre resize2fs ; ext2online nest plus disponible en tant que commande. Ce type de modification nest possible que lorsque le systme de fichiers ext3 se trouve sur un priphrique LVM ou RAID. Vous ne pouvez pas modifier la taille dune partition classique, le correctif du noyau ny change rien. Vous trouverez plus dinformations dans les pages de manuel de ext2online et de resize2fs ainsi qu ladresse http://ext2resize.sourceforge.net/online.html.
Fragmentation du systme de fichiers

La fragmentation recouvre le fait quun chier ne soit pas enregistr dans des blocs contigus mais rpartis sur toute la partition. La fragmentation peut ralentir les accs aux chiers. ext3 ne ncessite gnralement pas de dfragmentation car le systme de chiers vite globalement la fragmentation. Cependant, vous devez viter de remplir le systme de chiers plus de 90 %.

Accs au systme de fichiers sous Windows

Sous Windows, vous pouvez aussi accder vos donnes Linux avec diffrents programmes. Explore2fs (http://www.chrysocome.net/explore2fs) est, selon moi, un des meilleurs. Il sagit dun genre de gestionnaire de chiers avec lequel vous pouvez lire les systmes ext2/3. Vous ne pouvez cependant pas les modier.

ADMINISTRATION DU SYSTME DE FICHIERS

433

premire vue, le pilote ext (http://www.fs-driver.org/) est une solution plus lgante. Une fois ce pilote install, vous pouvez utiliser sans problme des partitions Linux avec tous les programmes Windows. Cependant, vous devez imprativement teindre compltement le systme dexploitation (ne pas le mettre en hibernation) lorsque vous passez dun systme lautre. Vous risquez sinon dendommager votre systme de chiers et de perdre des donnes.

Systme de fichiers reiserfs


Version 3

Le systme de chiers reiserfs a t dvelopp par lentreprise Namesys sous licence GPL. Sa version 3.0 tait le premier systme de chiers Linux qui disposait de fonctionnalits de journalisation et, depuis, il fait partie de la version 2.4.1 du noyau ofciel. Le systme de chiers reiserfs version 4 tait largement rpandu, notamment parce quil fut le systme par dfaut sous SUSE pendant de nombreuses annes. SUSE est pass ext3 dans sa version 10.2. reiserfs est plus efcace que ext pour grer les petits chiers. Le systme reiserfs est mr, mais se trouve dans une impasse. Le systme nest plus dvelopp ou maintenu, lexception des correctifs critiques. Une mise jour vers la version 4 est possible uniquement lorsque toutes les donnes sont copies dans une nouvelle partition reiser4.

Version 4

Depuis 2004, le systme de chiers Reiser version 4.n est disponible sous le nom reiser4 en tant que correctif du noyau. Le code de cette version a t entirement redvelopp. Cela a pour consquence que le systme de chiers nest pas compatible avec les versions 3.n et quil est impossible de passer de lun lautre facilement. Dun point de vue technique, reiser4 est le systme de chiers le plus intressant et le plus moderne qui existe sous Linux. Grce une interface de greffons, on peut ltendre par des modules. Malgr des lments techniques impressionnants, reiser4 est pour linstant un chec. Il nest pas intgr au noyau ofciel, la fois en raison des diffrends personnels entre dveloppeurs et dune stabilit insufsante. En septembre 2006, Hans Reiser (fondateur et dveloppeur principal de lentreprise Namesys) a fait lobjet dune enqute pour meurtre. Lactivit commerciale de Namesys sest arrte. Hans Reiser a t reconnu coupable pendant lt 2008. Lavenir de reiser4 est incertain, mme si ofciellement il est toujours dvelopp.

/etc/fstab

Les systmes reiser sont gnralement dnis comme suit dans /etc/fstab :
/dev/sdb11 /data1 reiserfs defaults 0 0 /dev/sdb12 /data2 reiser4 defaults 0 0

Cration dun systme de fichiers reiser

Pour crer un systme de chiers reiser dans une partition, utilisez mkfs.reiserfs et mkfs.reiser4. Les commandes sont galement disponibles sous les noms mkreiserfs et mkreiser4. De manire gnrale, aucune option en dehors du nom du priphrique nest ncessaire. Pour partitionner le disque, utilisez comme dhabitude fdisk ou un autre outil de partitionnement. Les partitions reiserfs doivent avoir le mme identiant de systme de chiers que les partitions ext3, cest--dire 83.

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 excuter la commande mount pour pouvoir utiliser le nouveau systme de chiers :
root# mount -t reiserfs /dev/sdc1 /test
Vrification du systme de fichiers

fsck.reiserfs et fsck.reiser4 permettent de vrier lintgrit du systme de chiers. Par dfaut, cette commande afche un rapport dtat, mais ne modie pas le systme de chiers. Pour effectuer des rparations, vous devez passer les options --fix-fixable ou --fix. Vous trouverez une rfrence complte de la syntaxe dans les pages de manuel des commandes. reiserfstune -l permet de modier le nom dune partition. De mme, loption -u permet den modier lUUID. La commande resize_reiserfs permet de modier la taille dun systme reiserfs. Vous devez avant cela modier la taille de la partition. La section prcdente qui traite dext3 prsente un exemple de procdure comparable.

Dfinition du nom de la partition Redimensionnement du systme de fichiers

Systme de fichiers xfs


Le systme de chiers xfs a t dvelopp par lentreprise SGI en 1994 pour ses stations de travail sous IRIX, un systme 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 systmes de chiers journaliss. Il a t conu comme un systme de chiers 64 bits ; la taille des chiers et du systme est presque illimite. Il na t que peu modi ces dernires annes et est considr comme mr, stable et trs efcace pour la gestion des trs gros chiers.
Lorsque vous travaillez avec xfs, vous devez prendre en compte deux particularits : Le systme de fichiers utilise la partition partir du premier octet et ne laisse pas, la diffrence des autres systmes de fichiers sous Linux, de place pour le secteur damorage. Linstallation de GRUB ou de LILO dans le secteur damorage dune partition xfs dtruit donc une partie du systme de fichiers. Vous devez linstaller dans le MBR ou dans le secteur damorage dune autre partition. Les systmes de fichiers xfs peuvent tre agrandis avec xfs_growfs, mais ne peuvent pas tre rduits.

ADMINISTRATION DU SYSTME DE FICHIERS

435

/etc/fstab

Vous trouverez plus dinformations sur le systme de chiers xfs aux adresses http://en.wikipedia.org/wiki/XFS et http://oss.sgi.com/projects/xfs/faq.html. Les systmes xfs sont gnralement dnis comme suit dans /etc/fstab :
/dev/sdb13 /data xfs defaults 0 0

Cration dun systme de fichiers xfs

Pour crer un systme de chiers xfs sur une partition, lancez simplement mkfs.xfs :
root# mkfs.xfs /dev/sdc1 meta-data=/dev/sdc1 isize=256 = sectsz=512 data = bsize=4096 = sunit=0 naming =version 2 bsize=4096 log =internal log bsize=4096 = sectsz=512 realtime =none extsz=65536 agcount=16, agsize=152742 blks attr=0 blocks=2443872, imaxpct=25 swidth=0 blks, unwritten=1 blocks=2560, version=1 sunit=0 blks blocks=0, rtextents=0

Vous devez alors excuter la commande mount pour pouvoir utiliser le nouveau systme de chiers :
root# mount -t xfs /dev/sdc1 /test
Vrification du systme de fichiers

Redimensionnement du systme de fichiers Modification des paramtres du systme de fichiers

Lintgrit du systme xfs est vrie automatiquement chaque excution de mount (seul le chier de journalisation est pris en compte). Pour le vrier manuellement, lancez xfs_check. Cela nest possible que lorsquil nest 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 systmes, la commande fsck.xfs existe aussi. Cependant, elle ne remplit aucune tche part pointer vers les outils appropris. xfs_growfs agrandit un systme de chiers xfs. Celui-ci doit tre mont. La commande suppose que la partition sous-jacente a dj t agrandie. xfs_admin modie divers paramtres du systme de chiers, en particulier son nom et son UUID. Le systme de chiers considr doit tre dmont au pralable.

23.7 Systmes de fichiers Windows


De nombreux utilisateurs de Linux ont galement une version de Windows installe en parallle. De plus, les supports de donnes externes (cls USB, cartes mmoire dappareils photo numriques, etc.) sont souvent formats dans un systme de chiers Windows. Cette section traite de laccs ces systmes de chiers, quils soient sur une partition du disque dur interne ou sur un support de donnes externe. Il existe deux systmes de chiers Windows : FAT et VFAT. Ce systme de chiers de DOS et Windows 3.1/9x existe en plusieurs versions : FAT12 pour les disquettes, FAT16 pour les systmes de chiers jusqu 2 Go,

436

LINUX

FAT32 pour les systmes de chiers jusqu 8 To et les chiers jusqu 4 Go (mais divers outils de formatage Windows limitent la taille du systme 32 Go). Windows 95 a introduit lextension VFAT, dont la principale amlioration est dautoriser des noms de chiers de plus de 8+3 caractres. Les noms de chiers longs sont enregistrs en tant que chanes de caractres Unicode. Les versions rcentes de Windows enregistrent tous les noms de chiers (y compris les noms courts) en tant que chanes de caractres Unicode, ce qui assure que la casse des noms soit conserve et quil ne puisse pas y avoir de problme de jeu de caractres. Une partition Windows typique dun disque dur est une combinaison de FAT32 et de VFAT (abrg en VFAT32). Lorsque nous parlerons de VFAT dans les sections qui suivent (ou de systme de chiers 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 versions courantes de Windows (2000, XP, 2003, Vista). NFTS est plus sr (droits daccs, journalisation, etc.) et fournit plus de fonctionnalits. La taille du systme de chiers est presque illimite (16 777 216 To). Windows Vista prvoyait un nouveau systme de chiers fond sur une base de donnes, mais cela na pas pu tre ralis. Linux peut accder aux systmes de chiers VFAT et NTFS. Le pilote VFAT est mr depuis plusieurs annes et offre des droits daccs en lecture et en criture. Une partition VFAT est pour cette raison la mthode la plus simple de partager des donnes entre Windows et Linux sur un ordinateur. (Si vous travaillez en rseau, vous pouvez utiliser les partages Windows/Samba cette n.) La prise en charge de NTFS fut problmatique pendant de nombreuses annes car il nexistait quun pilote en lecture seule. Cependant, la communaut de dveloppement NTFS a remu ciel et terre pour changer cela : il existe maintenant trois pilotes libres qui se diffrencient principalement dans la mesure avec laquelle ils permettent laccs en criture.
Conversion de fichiers texte

Prise en charge de Linux

Indpendamment du systme de chiers, le transfert de chiers texte entre Linux et Windows pose souvent problme car les deux systmes utilisent des jeux de caractres et des caractres de n de ligne diffrents. Vous pouvez rsoudre ces problmes grce divers convertisseurs (voir Chapitre 15). VFAT ne connat pas le concept de droits daccs. NTFS prend en charge des droits daccs, mais ceux-ci ne sont pas grs comme sous Unix/Linux. Un problme se pose alors : quel utilisateur Linux a le droit daccder quels chiers Windows ? Les options uid, gid et umask/fmask/dmask de mount permettent de rpondre cette question. Elles dnissent le propritaire, le groupe et les droits daccs du systme de chiers Windows pour tous les fichiers du systme de chiers NTFS, indpendamment des ventuels droits NTFS. Les dtails de ces options sont donns dans man mount. Il est rare de devoir formater une partition Windows, mais cette opration est possible. mkdosfs permet de formater une partition en VFAT16 (Windows 9x/ME). Pour formater en VFAT32, il faut utiliser la syntaxe mkdosfs -F 32. mkntfs cre un systme de chiers NTFS. Cette commande se trouve gnralement dans le paquetage ntfsprogs, qui doit souvent tre install pralablement.

Droits daccs

Formatage dune partition Windows

ADMINISTRATION DU SYSTME DE FICHIERS

437

Si vous nteignez pas compltement Windows (mode hibernation ou veille) et si vous dmarrez Linux et modifiez le systme de fichiers Windows, vous risquez de perdre des donnes. Comme Windows fige galement ltat du systme de fichiers, il sattend, au dmarrage suivant, trouver le mme tat. Si vous voulez modifier des fichiers Windows sous Linux, vous devez arrter compltement Windows avant de passer sous Linux.

Systme de fichiers VFAT


Paramtres par dfaut

Rsumons dabord rapidement les paramtres par dfaut du pilote vfat. Il reconnat le type FAT (FAT12/16/32). Les noms de chiers Windows sont reprsents sous Linux dans le jeu de caractres Latin-1 (ISO8859-1). Lutilisateur qui lance la commande mount peut lire et modier tous les chiers et rpertoires ; tous les autres utilisateurs peuvent lire, mais ils ne peuvent pas modier ces chiers. Vous pouvez modier tous ces paramtres par le biais doptions. Vous trouverez les options correspondantes dans man mount.

/etc/fstab

Les systmes VFAT locaux sont gnralement dnis comme suit dans /etc/fstab. Cette ligne indique que lutilisateur avec lidentiant 501 peut modier tous les chiers et que les caractres spciaux des noms de chiers longs (plus de 8+3 caractres) sont reprsents dans lencodage UTF-8. Ce paramtre est ncessaire si votre distribution est congure par dfaut 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

Systme de fichier NTFS (pilote ntfs)


Il existe trois pilotes libres diffrents pour le systme de chiers NTFS. Les utilisateurs de Red Hat et de Fedora ont longtemps d se passer de pilote NTFS. Ces distributions nen fournissaient pas par peur dun ventuel procs. Le pilote NTFS devait tre tlcharg depuis www.linux-nfts.org, puis install. Depuis Fedora 6, le pilote ntfs-3g est fourni.
Le pilote ntfs

Le pilote ntfs intgr au noyau est prsent dans presque toutes les distributions, part Red Hat et Fedora. Historiquement, il sagit dun redveloppement du pilote pour le noyau 2.6 qui na rien voir avec les pilotes ntfs des versions plus anciennes du noyau. La liste suivante rsume ltat du pilote ntfs dans le noyau 2.6.24 : oprations de lecture prises en charge : lecture des chiers et rpertoires, y compris les chiers compresss et les liens durs ; oprations dcriture prises en charge : modication des chiers, y compris en modiant leur taille ; oprations de lecture non prises en charge : lecture de chiers chiffrs, de ux, liens symboliques, attributs tendus ;

438

LINUX

Paramtres par dfaut /etc/fstab

oprations dcriture non prises en charge : modication des chiers compresss, cration ou suppression de chiers ou de rpertoires, restauration du systme de chiers grce aux fonctions de journalisation. En rsum, le pilote ntfs est gnralement sufsant uniquement pour lire des chiers sur une partition NTFS et nest adapt que dans des cas particuliers la modication du systme de chiers. Vous trouverez plus dinformations sur ltat courant du pilote dans le chier Documentation/filesystems/ntfs.txt du code source du noyau. Par dfaut, seul root a accs aux chiers. Vous trouverez une rfrence des options de ntfs pour mount et /etc/fstab dans man mount. Les systmes NTFS locaux sont gnralement dnis comme suit dans /etc/fstab. Cette ligne indique que lutilisateur avec lidentiant 501 peut lire et modier tous les chiers. Les autres utilisateurs nont aucun accs aux chiers. Les noms de chiers sont reprsents dans le codage UTF-8.
/dev/sda1 /media/win ntfs nls=utf8,uid=501,gid=100 0 0

Administration

Comme les fonctionnalits dcriture du pilote ntfs sont limites, certaines distributions montent les partitions NTFS avec loption ro (lecture seule). Le paquetage ntfsprogs contient diverses commandes dadministration des systmes de chiers NTFS.
Commantes importantes du paquetage ntfsprogs mkntfs ntfsclone ntfsinfo ntfslabel ntfsresize ntfsundelete cre un systme de fichiers NTFS copie un systme de fichiers NTFS affiche des informations sur un systme de fichiers NTFS renomme une partition NTFS modifie la taille dun systme de fichiers NTFS essaie de rcuprer des fichiers supprims

Systme de fichiers NTFS (ntfsmount)


La commande ntfsmount est une alternative au module ntfs. Il ne sagit pas dun module du noyau, mais dun module FUSE. FUSE signie Filesystem in Userspace, systme de chiers en espace utilisateur. Cest un module du noyau qui communique avec des programmes externes. FUSE permet dimplmenter des pilotes de systmes de chiers en dehors du noyau, ce qui est le cas pour ntfsmount. Vous trouverez plus de dtails ce sujet la page http://www.linux-ntfs.org/doku.php?id=ntfsmount. La liste suivante rsume les fonctionnalits de ntfsmount version 2.0 : opration de lecture prises en charge : lecture de chiers et de rpertoires, y compris compresss et chiffrs, liens durs et liens symboliques, ux, attributs tendus ; oprations dcriture prises en charge : modication, cration et suppression de chiers ; oprations dcriture non prises en charge : modication des chiers compresss ou chiffrs, restauration du systme de chiers avec les fonctions de journalisation.

ADMINISTRATION DU SYSTME DE FICHIERS

439

Prrequis

Pour que ntfsmount fonctionne, certains prrequis doivent tre valids : 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 bibliothques et commandes FUSE qui doivent tre galement installes (paquetages fuse, fuseutils, fuselibs ou libfuse, etc.). Le module de noyau fuse doit tre disponible, ce qui est le cas pour la plupart des distributions. Si ntfsmount afche un message derreur indiquant que /dev/fuse nexiste 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 systmes de fichiers grce FUSE.

ntfsmount

Pour monter un systme de chiers NTFS avec FUSE, utilisez la commande ntfsmount ou mount -t ntfs-fuse. Par dfaut, le systme de chiers nest lisible que par root. Vous trouverez une rfrence des options de ntfsmount dans man ntfsmount.
root# ntfsmount /dev/sda1 /media/win root# mount -t ntfs-fuse /dev/sda1 /media/win

Pour dmonter le systme de chiers, utilisez comme dhabitude umount ou ntfsmount -u.
/etc/fstab

Pour monter automatiquement une partition avec ntfsmount, ajoutez dans /etc/fstab une ligne selon le schma 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 lerreur unknown filesystem type ntfs-fuse, une cause frquente est que le lien /sbin/mount.ntfsfuse vers ntfsmount est manquant ou dfaillant. Les commandes suivantes permettent de rgler cette situation :
root# cd /sbin root# rm mount.ntfs-fuse root# ln -s $(which ntfsmount) mount.ntfs-fuse

Systme de fichiers NTFS (ntfs-3g)


ntfs-3g est techniquement une variante de ntfsmount. ntfs-3g intgre du code supplmentaire pour amliorer la prise en charge en criture. Depuis mars 2007, les dveloppeurs de ntfs-3g lont dclar comme tant ofciellement stable et lont exprim en passant des numros de version 1.n.
ntfs-3g

Pour utiliser ntfs-3g, installez dabord le paquetage portant ce nom. La syntaxe pour monter un systme de chiers avec ntfs-3g est comparable celle de ntfsmount. Elle se diffrencie seulement par le nom du systme de chiers. Vous trouverez une rfrence des options de montage de ntfs-3g dans man ntfs-3g.

440

LINUX

root# ntfs.3g /dev/sda1 /media/win root# mount -t ntfs-3g /dev/sda1 /media/win

/etc/fstab

umount et fusermount -u permettent de dmonter le systme de chiers. La ligne fstab nest modie que par le nom du systme de chiers (ntfs-3g au lieu de ntfs-fuse) :
/dev/sda1 /media/win ntfs-3g uid=501,gid=100 0 0

Flux

Les ux (streams) sont une particularit du systme de chiers NTFS. Un chier NTFS peut se composer de plusieurs ux. Chaque ux a la mme fonction quun chier. Lorsquon accde comme dhabitude un chier, le ux par dfaut est lu et modi. Laccs des ux spciaux (lorsquils existent) passe pas une syntaxe spciale. Le pilote ntfs-3g offre loption streams_interface pour accder ces ux. Par dfaut, laccs est bloqu. streams_interface=windows active la syntaxe Windows typique sous la forme nom_de_fichier:nom_de_flux. streams_interface=xattr permet daccder aux ux via getfattr/setfattr. Pour tester cette fonctionnalit, montez le systme NTFS avec loption streams_interface=windows. Crez un nouveau chier streamtest avec cat. Ctrl+D termine la saisie. Crez ensuite le ux 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 laccs aux ux 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"

Systmes de fichiers NTFS (Captive, Paragon)


Il existe encore deux autres possibilits pour monter un systme de chiers NTFS : Captive est un paquetage libre, mais il accde au pilote NTFS de Microsoft et ncessite donc une licence Windows. Cette solution est lente et gourmande en mmoire, mais

ADMINISTRATION DU SYSTME DE FICHIERS

441

toutes les fonctions de NTFS sont prises en charge : http://www.jankratochvil.net/project/captive/. Paragon est un produit commercial, compatible avec la majeure partie des fonctions spciales de NTFS : http://ntfs-linux.com/.

23.8 CD, DVD et disquettes


CD et DVD de donnes
Les lecteurs CD et DVD sont en principe grs comme des disques durs. Cependant, on peut remarquer deux diffrences importantes. Dune part, on peut changer de CD/DVD dans un lecteur, alors que lon ne change pas le disque dur traditionnel en cours de fonctionnement. Dautre part, les CD et DVD de donnes utilisent un autre systme de chiers, ISO 9660 ou UDF.
ISO 9660 et UDF

ISO 9660 est une norme universelle pour les CD de donnes. Certaines extensions se sont tablies pour pallier quelques restrictions. Lextension Rockridge, typique dUnix, permet denregistrer des noms de chiers longs et des droits daccs. Lextension Joliet, typique de Windows, permet dutiliser un jeu de caractres Unicode dans les noms de chiers. Lextension El-Torito permet de dmarrer un ordinateur directement depuis le CD. UDF (Universal Disk Format, format de disque universel) est le successeur dISO 9660. Il est utilis sur de nombreux DVD (les DVD peuvent aussi utiliser le format ISO 9660). UDF permet, la diffrence dISO 9660, les chiers de plus de 2 Go, les noms de chiers jusqu 255 caractres Unicode, une meilleure prise en charge des mdias en lecture-criture, etc.

Noms de priphriques CD/DVD

La liste suivante indique quels noms de priphriques sont utiliss pour accder aux lecteurs CD/DVD. Le nom du priphrique dpend principalement de sa connexion au systme (IDE, SCSI, SATA, USB ou Firewire). Pour les priphriques IDE, le pilote utilis (pilote IDE ou extension libata du systme SCSI) joue galement un rle. 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 lordinateur, il est probable quil sappelle /dev/hdb, /dev/hdc ou /dev/scd0.
Noms de priphriques CD/DVD /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/scd0 oder /dev/sr0 /dev/scd1 oder /dev/sr1 lecteur IDE (matre du premier canal, pilote IDE) lecteur IDE (esclave du premier canal, pilote IDE) lecteur IDE (matre du second canal, pilote IDE) lecteur IDE (esclave du second canal, pilote IDE) lecteur 1 SATA/SCSI/USB/Firewire/IDE avec pilote libata lecteur 1 SATA/SCSI/USB/Firewire/IDE avec pilote libata

442

LINUX

Certaines distributions crent aussi des liens comme /dev/cdrom, /dev/dvd ou /dev/dvdrecorder vers le priphrique rel.
Fonctionnement automatique

Pour la plupart des distributions, le systme est congur de manire que, lorsquon insre un CD ou un DVD de donnes dans le lecteur, une fentre du gestionnaire de fentres apparaisse et en afche le contenu. Vous pouvez sortir le CD/DVD tout moment en appuyant sur le bouton du lecteur ou grce au menu contextuel de licne du lecteur sur le bureau. Ce comportement est d aux dmons de gestion du matriel de KDE et de Gnome. Lorsque vous travaillez en console ou sur un bureau sans automatismes lis au CD/DVD, vous devez monter manuellement les CD/DVD. Les noms de priphriques et de rpertoires varient selon le matriel et la distribution. Les deux lignes suivantes illustrent le montage, respectivement, dun support ISO 9660 et dun support UDF.
root# mount -t iso9660 -o ro /dev/scd0 /media/dvd root# mount -t udf -o ro /dev/scd0 /media/dvd

Fonctionnement manuel

Par dfaut, tous les rpertoires et les chiers sont lisibles par tous les utilisateurs. Si vous dsirez excuter des programmes qui se trouvent sur un CD ou un DVD, vous devez ajouter loption exec lors du montage. Pour grer correctement les noms de chiers internationaux, utilisez loption iocharset=utf8 ou utf8. Vous trouverez plus dinformations dans man mount. Avant de pouvoir jecter le CD/DVD, vous devez lancer explicitement umount :
root# umount /media/dvd

la place dumount, vous pouvez lancer la commande eject. Le CD est alors supprim de larborescence et ject du lecteur. Sil y a plusieurs supports de donnes jectables connects lordinateur, ils sont tests les uns aprs les autres et le premier support trouv est ject. Vous pouvez aussi indiquer comme option le nom du priphrique ou le point de montage.
Priphrique occup

Lorsque la commande umount renvoie le message derreur "priphrique occup", cela signie quun autre programme utilise des donnes sur le CD-ROM. Cest entre autres le cas si un rpertoire du CD-ROM est ouvert dans un terminal. Lancez-y cd pour revenir votre rpertoire personnel. Pour chercher lorigine dun problme li umount, vous pouvez utiliser la commande fuser -m /media/dvd. Une autre source de problmes peut tre NFS. Si le lecteur CD est utilis via NFS sur un autre ordinateur, umount choue souvent, mme lorsque lordinateur distant a rendu la main sur le lecteur CD-ROM. Dans ce cas, il faut redmarrer le serveur NFS, voire, dans de rares cas, lordinateur lui-mme.

/etc/fstab

Dans la plupart des distributions, en raison du mcanisme automatique dcrit ci-dessus, il ny a pas de ligne pour le lecteur CD/DVD dans /etc/fstab. Si vous montez souvent des CD/DVD dans larborescence, une ligne comme la suivante se rvle en gnral plus confortable :
/dev/scd0 /media/dvd udf,iso9660 users,noauto,ro 0 0

Il suft alors de lancer la commande mount /media/dvd ou mount /dev/scd0 pour monter le CD/DVD. Tous les utilisateurs peuvent lancer ces commandes.

ADMINISTRATION DU SYSTME DE FICHIERS

443

CD audio et DVD vido


CD audio

Les CD audio sont grs diffremment des CD de donnes. Ils ne sont pas monts dans le systme de chiers, mais lus directement avec des programmes spciaux (par exemple Amarok sous KDE ou Rythmbox sous Gnome). On peut aussi lire les pistes audio pour les transformer, par exemple, en chiers OggVorbis. Les DVD vido sont gnralement au format UDF. Pour lire un DVD vido, vous avez besoin dun programme comme mplayer ou xine.

DVD vido

Disquettes
Mme si votre ordinateur dispose encore dun lecteur de disquettes, les disquettes ne jouent plus un grand rle 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 accdez ses chiers comme dhabitude. Le nom habituel du priphrique est /dev/ fd0. Pensez lancer umount avant djecter une disquette du lecteur, sans quoi vous risquez de perdre des donnes. Divers systmes de chiers peuvent se trouver sur une disquette. Le plus souvent, les disquettes DOS/Windows sont formates en VFAT.
root# mount -t vfat /dev/fd0 /media/floppy
mtools

Vous pouvez aussi lire et modier 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. Pour formater une disquette, utilisez la commande fdformat. Il ne sagit cependant que dun formatage bas niveau. Pour crer un systme de chiers, vous devez utiliser mformat ou mkfs.vfat (DOS/Windows), ou encore mke2fs (ext2).

Formatage dune disquette

23.9 Supports de donnes externes (USB, Firewire, etc.)


Les cls USB, les cartes mmoire dappareils photo numriques, les disques durs Firewire et eSATA ainsi que dautres supports de donnes externes ont une particularit commune : ils sont branchs et dbranchs pendant le fonctionnement de lordinateur. Presque tous ces lecteurs sont grs comme des lecteurs SCSI. Nous navons trouv comme exception que les adaptateurs PCMCIA/Flash, qui sont reconnus comme des priphriques IDE.
Fonctionnement automatique

Les gestionnaires de bureau KDE et Gnome de presque toutes les distributions ragissent au branchement dun support de donnes externe en ouvrant (ventuellement aprs conrmation) une nouvelle fentre du gestionnaire de chiers qui offre un accs confortable au support de donnes. Gnralement, une icne apparat galement sur le bureau. Celle-ci symbolise le support de donnes et permet de le dmonter partir dun menu contextuel.

444

LINUX

Vrifiez que vous avez bien dmont toutes les partitions dun support de donnes avant de le dconnecter physiquement. Dans la plupart des distributions, cliquez sur licne du support et choisissez Dconnecter, jecter ou un lment similaire du menu. De cette manire, vous vous assurerez que toutes les oprations dcriture sont termines avant de couper physiquement la connexion entre le lecteur et lordinateur. Si vous omettez cette tape, vous risquez dendommager votre systme de fichiers ou de perdre des fichiers. Si vous navez pas dicne sur votre bureau KDE, saisissez dans Konqueror ladresse media:/. Le gestionnaire de fichiers affiche alors des icnes pour tous les supports de donnes.
Configuration

Sous Gnome, vous pouvez contrler les priphriques externes avec le programme gnomevolume-properties (voir Figure 23.2). Ce programme se trouve gnralement dans le menu Systme > Prfrences > Priphriques et mdias amovibles.

Figure 23.2
Gestion des supports de donnes externes sous Gnome.

Performances

Fonctionnement interne du branchement chaud

Certaines distributions utilisent loption sync par dfaut lorsquelles montent des priphriques externes. Les oprations dcriture ne sont alors pas mises en tampon et sont effectues immdiatement. Les performances peuvent alors chuter normment. Pour viter cela, montez le support de donnes manuellement sans loption sync. Depuis 2006, la gestion du branchement chaud fait appel au noyau, au systme udev, au dmon hald et au systme de communication D-Bus. Sous KDE, kioslave media:/ attend des vnements D-Bus et ragit en fonction. Sous Gnome, gnome-volume-manager effectue cette tche. Si vous nutilisez ni KDE ni Gnome et si vous dsirez monter automatiquement des priphriques externes, le paquetage ivman (http://ivman.sourceforge.net/) peut vous tre utile. Larticle consultable ladresse http://www.linux.com/article.pl?sid=06/07/26/2129232 fournit plus dinformations son sujet. Il arrive sous KDE et sous Gnome que plusieurs utilisateurs soient connects en mme temps. Dans ce cas, le premier utilisateur connect obtient les droits daccs sur les priphriques nouvellement connects. Ce cas particulier est rsolu selon la distribution et peut

ADMINISTRATION DU SYSTME DE FICHIERS

445

entraner des problmes. Le plus simple est dviter de changer dutilisateur lorsque vous travaillez avec des disques externes. Avant la gestion par udev/HAL/D-Bus, il existait dautres alternatives que vous pouvez encore rencontrer sur des installations plus anciennes : supermount. Ce pseudo-systme de chiers monte et dmonte automatiquement les disquettes, CD et DVD. magicdev. Red Hat employait ce programme dans certaines versions plus anciennes. Il est dmarr par le gestionnaire de bureau, surveille les lecteurs de disquettes et de CD/DVD et monte au besoin le systme de chiers correspondant dans larborescence. subfs/submount. SUSE employait dans les versions 9.1 10.0 le module de noyau non ofciel subfs qui, en combinaison avec les programmes submountd et net-submountd, intgrait les supports de donnes externes dans larborescence. Ce systme na jamais t trs stable. Lorsque vous travaillez en mode texte ou dans un systme de bureau sans gestion automatique des supports de donnes, vous devez lancer vous-mme les commandes mount correspondantes. Pour cela, vriez dabord le nom de votre priphrique (gnralement /dev/ sdx o x est la premire lettre non utilise). La commande fdisk -l fournit un aperu de tous les supports de donnes (y compris les disques durs, mais lexception des lecteurs CD et DVD). Dans lexemple suivant, /dev/sda est le disque SATA interne avec diverses partitions. /dev/sdb /dev/sde sont associs un lecteur de cartes dans lequel seule une carte CF est insre (/dev/sdc). /dev/sdf1 est la premire et seule partition dune 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 Priphrique Amorce Dbut Fin Blocs Id /dev/sdf1 * 1 980 250864 e

Fonctionnement manuel

Systme W95 FAT16 (LBA)

Les cls USB et les cartes Flash peuvent galement tre formates en tant que super-floppy. Cela signifie quelles ne contiennent pas de table de partitions. Dans ce cas, le lecteur complet est dsign sous le nom /dev/sda (et non, comme dhabitude, /dev/sda1).

Lorsque vous connaissez le nom du priphrique, la suite est simple : crez un nouveau rpertoire et montez-y votre support de donnes :
root# mkdir /media/memorystick root# mount /dev/sdf1 /media/memorystick

446

LINUX

Les supports de donnes externes peuvent utiliser diffrents types de systmes de chiers. En pratique, VFAT est le plus frquent sur les disques externes et sur les cls USB. Cest galement le cas des cartes mmoire de divers priphriques lectroniques (PDA, appareils photo numriques, etc.) utiliss par le biais dun adaptateur USB ou PCMCIA. Sous Linux, vous pouvez modier le partitionnement du priphrique et formater chaque partition avec un systme de chiers au choix. Lorsque vous avez termin ce que vous aviez faire, lancez comme dhabitude la commande umount. Ne dbranchez pas le cble USB ou Firewire avant que la commande umount soit termine : vous risqueriez de perdre des donnes !
root# umount /media/memorystick
/etc/fstab

Seul root a le droit dexcuter la commande mount. Si des utilisateurs sans privilges souhaitent monter un support de donnes dans larborescence et le dmonter, root doitajouter la ligne correspondante dans fstab avec loption users. Pour une cl USB avec un systme de chiers 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 chiers. Cette mthode a cependant deux inconvnients : Selon lordre dans lequel le priphrique est branch, le nom du priphrique peut tre modi. Si la cl USB est branche en tant que deuxime ou troisime priphrique, elle peut sappeler /dev/sdg et laccs au rpertoire /media/memorystick choue. Inversement, la ligne ci-dessus peut tre utilise pour un autre support de donnes, ce qui nest pas toujours le comportement souhait. La meilleure solution est dindiquer le nom du priphrique par le biais de son UUID. Pour dterminer lUUID dun priphrique, utilisez la commande vol_id. Si la commande nest 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 divise 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 commande mount fonctionne alors comme dans la variante prcdente, mais la commande umount pose problme. Malgr lUUID, mount enregistre le nom courant du priphrique. 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 privilges de monter et de dmonter des supports externes. Cependant, ces commandes ne sont disponibles que dans peu de distributions (Ubuntu en est une exception notable).

ADMINISTRATION DU SYSTME DE FICHIERS

447

utilisateur$ pmount /dev/sdf1 /media/usbdisk utilisateur$ ... utilisateur$ pumount /media/usbdisk

Avec la conguration par dfaut, pmount permet tous les utilisateurs du groupe plugdev de monter des supports de donnes externes. Pour des raisons de scurit, cela fonctionne uniquement lorsque le priphrique ne se trouve pas dans /dev/fstab. Une partition est considre comme support externe lorsquelle se trouve sur un lecteur USB ou Firewire pour lequel le chier /sys/block/nom_du_priphrique/removable contient la valeur 1. De plus, pmount permet daccder tous les supports de donnes dont le nom de priphrique se trouve dans /etc/pmount.allow. Par dfaut, pmount passe mount les options atime, async et utf8 (lorsque cette option est prise en charge par le systme de chiers). Les options qui diffrent de ce jeu par dfaut doivent tre indiques explicitement dans une syntaxe diffrente de celle de mount (voir man pmount).

23.10 Systmes de fichiers rseau et virtuels


Systmes de fichiers virtuels
Linux connat de nombreux systmes de chiers virtuels. Il sagit dinformations internes au fonctionnement de Linux auxquelles on peut accder par le biais dun systme de chiers. Ces chiers nexistent pas sur un disque dur, ils sont mis disposition par le noyau. Linux et les programmes excuts par Linux grent ce systme de chiers. Dans la plupart des distributions, ces systmes de chiers sont monts directement par le processus InitV sans prendre en compte fstab les lignes correspondantes napparaissent donc pas. Les systmes virtuels actifs peuvent tre consults dans le chier /etc/mtab ou proc/mounts.

Systmes de fichiers rseau Unix (NFS)


NFS (Network File System, systme de chiers rseau) est la mthode habituelle pour exporter un rpertoire dun ordinateur vers le rseau local. Cette section se limite NFS version 3. NFS4 nest pas encore vraiment rpandu. Vous trouverez plus dinformations son sujet au Chapitre 30. Pour utiliser NFS, vous devez remplir quelques conditions pralables : Lordinateur sur lequel vous voulez lire ou modier des donnes doit tre accessible par le rseau (testez cela avec ping). Il doit galement avoir un serveur NFS install et congur pour vous permettre daccder aux chiers du rpertoire souhait. Vous trouverez plus dinformations ce sujet au Chapitre 30. Si votre ordinateur ou le serveur NFS font fonctionner un pare-feu, les communications NFS ne doivent pas tre bloques. NFS utilise gnralement le protocole UDP.

Prrequis

448
mount

LINUX

Une fois ces conditions remplies, laccs un rpertoire NFS est simple. La commande suivante monte le rpertoire /data de lordinateur mars dans le rpertoire /media/nfsdata de larborescence. Ce rpertoire doit exister avant dexcuter la commande. Vous trouverez les options de mount spciques au NFS dans man mount.
root# mount -t nfs mars:/data /media/nfsdata

Vous pouvez aussi utiliser ladresse IP de lordinateur la place de son nom. Pour dconnecter le rpertoire NFS, utilisez comme dhabitude umount. Si la connexion rseau est interrompue, lancez umount avec loption -f pour acclrer lopration.
root# umount /media/nfsdata
/etc/fstab

Pour monter automatiquement un systme de chiers NFS au dmarrage de lordinateur, ajoutez une ligne selon ce schma /etc/fstab. Loption bg, spcique NFS, permet dexcuter la commande mount en tche de fond lorsque le rpertoire nest pas immdiatement disponible.
jupiter:/data /externaldata nfs user,exec,bg 0 0

Pour la plupart des distributions, tous les rpertoires de /etc/fstab sont monts par le processus InitV. SUSE est une exception, il faut que le service nfs soit explicitement activ :
root# insserv nfs

NFS ne se proccupe pas du jeu de caractres des noms de fichiers et les interprte comme des suites doctets. NFS suppose que tous les utilisateurs emploient le mme jeu de caractres. Si ce nest pas le cas, les caractres non ASCII saffichent mal. Il ny a pas de solution ce problme. Assurez-vous que tous les utilisateurs emploient le mme jeu de caractres ou vitez les caractres internationaux dans les noms de fichiers.

Rpertoires rseau Windows (cifs, smbfs)


Le protocole SMB est le quasi quivalent Windows de NFS. On accde gnralement aux rpertoires Windows grce au gestionnaire de chiers (voir Chapitres 4 et 5 pour Gnome et KDE). Vous pouvez aussi mettre en uvre le systme de chiers cifs ou son prdcesseur obsolte smbfs pour monter des rpertoires Windows comme des rpertoires NFS. Vous pouvez alors accder tous les chiers comme sils se trouvaient dans votre systme de chiers. Cette manire de procder est confortable et fonctionne bien tant que le rpertoire est partag sur le rseau. Linux peut utiliser deux systmes de chiers pour laccs aux rpertoires rseau Windows : SMBFS et CIFS. CIFS est une extension du systme de chiers rseau de Microsoft et il est prfrable de lutiliser autant que possible. Les serveurs CIFS Samba envoient des informations compatibles avec Unix/Linux propos des droits daccs, ce qui nest pas le cas de SMBFS. La commande mount permet de monter des rpertoires rseau Windows dans votre systme de chiers local. Vous pouvez indiquer le systme de chiers (smbfs ou cifs) avec loption -t. En interne, mount lance les commandes smbmount et mount.cifs, respectivement.

smbfs et cifs

mount

ADMINISTRATION DU SYSTME DE FICHIERS

449

Vous trouverez une rfrence des options de ces deux systmes de chiers 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 systme de chiers Windows lors du dmarrage de lordinateur, ajoutez une ligne de ce type dans /etc/fstab :
//venus/partage /media/winshare cifs defaults 0 0

Cela suft dans la plupart des distributions. SUSE prsente le mme type dexception que pour NFS et il faut activer le script InitV smbfs :
root# insserv smbfs
Partages CIFS pour les utilisateurs sans privilges

On peut prfrer prparer Linux pour quun utilisateur sans privilges root puisse monter ou dmonter un systme de chiers distant. La procdure est peu pratique et dpend de la distribution pour certains dtails. Jai test ce qui suit dans Ubuntu 8.04. Ladministrateur cre un nouveau rpertoire et lassocie lutilisateur par dfaut dUbuntu :
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 dinscurit, mais sinon la procdure ne fonctionne pas. Pesez les avantages et les inconvnients dune telle solution avant de la mettre en uvre.
root# chmod +s /sbin/mount.cifs root# chmod +s /sbin/umount.cifs

Crez un chier /etc/.winshare-pw contenant lidentiant et le mot de passe du rpertoire rseau si une authentication est ncessaire :
username=nom password=xxx

Modiez les droits daccs au chier pour que tout le monde ne puisse pas accder des mots de passe en clair :
root# chmod go-rw /etc/.winshare-pw

Pour nir, ajoutez /etc/fstab une ligne de ce type (ici spare 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

450

LINUX

23.11 Partitions et fichiers dchange


Lorsque la mmoire vive ne suft pas pour lexcution de tous les programmes, Linux dcharge une partie de cette mmoire dans une partition ou un chier dchange. Linux peut ainsi utiliser plus de mmoire que de RAM disponible. La partition dchange est normalement cre pendant linstallation. La commande free indique combien de mmoire dchange est disposition. Dans lexemple suivant, lordinateur dispose de 1 519 Mo de RAM et de 2 000 Mo de mmoire dchange. La RAM est utilise 401 Mo par des programmes et des donnes, le reste est utilis comme tampon et comme cache. La mmoire dchange est pour linstant inutilise.
root# free -m total used free shared buffers cached Mem: 1519 1479 39 0 67 1010 -/+ buffers/cache: 401 1117 Swap: 2000 0 2000

Lorsquun ordinateur fonctionne pendant longtemps, il accde gnralement lespace dchange mme lorsque beaucoup de mmoire vive est encore disponible. En effet, le noyau utilise un cache pour les accs en lecture sur les chiers. Si un chier est rutilis par la suite, il peut tre lu partir du cache. Lorsque le cache est plus grand que la mmoire disponible, Linux dcharge les blocs mmoire quil na pas utiliss depuis longtemps dans la partition dchange. Ce nest pas un signe que la mmoire vive est insufsante. Linux essaie dutiliser la mmoire disponible de la manire la plus efcace possible.
/etc/fstab

Les lignes suivantes montrent deux partitions dchange dans /etc/fstab. Loption pri indique que les deux partitions sont gres de manire identique par Linux. Cela permet damliorer les performances lorsque les deux partitions se trouvent sur deux disques indpendants. Si une seule partition dchange est disponible, utilisez plutt loption pri=0.
/dev/sda9 swap swap pri=1 0 0 /dev/sdc7 swap swap pri=1 0 0

Combien de mmoire dchange ?

On comptait auparavant quun espace dchange devait tre dimensionn pour contenir deux fois la mmoire vive. Avec laugmentation de la quantit de RAM, cette rgle nest plus que rarement de mise. Gnralement, pour un ordinateur de bureau, une partition dchange nettement plus petite suft (par exemple 512 Mo pour 2 Go de RAM). Les ordinateurs portables sont un cas particulier lorsque vous dsirez utiliser les fonctions de Suspend to Disk (mise en suspens sur le disque). La mmoire vive complte est alors enregistre dans la partition dchange avant que lordinateur ne passe en veille. Cela suppose que la partition dchange est plus grande que la mmoire vive (par exemple dun facteur 1,5). Lorsque vous faites fonctionner un serveur, les donnes sont encore diffrentes. Oracle conseille par exemple pour son serveur de bases de donnes (10.2) dadapter le facteur multiplicatif la taille de la mmoire vive : jusque 2 Go 2 8 Go plus de 8 Go facteur 2 facteur 1 facteur 0,75

ADMINISTRATION DU SYSTME DE FICHIERS

451

Sur les systmes 32 bits, la partition dchange est limite 2 Go. Si vous souhaitez plus despace dchange, vous devez crer plusieurs partitions dchange.
Cration dune partition dchange

Si votre partition dchange est trop petite ou si vous souhaitez en crer une autre, crez une nouvelle partition. Donnez-lui comme type de partition Linux swap (82 dans fdisk), formatez-la avec mkswap et activez-la avec swapon. Lorsque tout cela fonctionne, ajoutez une ligne /etc/fstab. On peut aussi crer, la place dune partition dchange, un chier dchange. Cependant, ce nest quune solution durgence car laccs au systme de chiers 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 lespace de swap 1, taille = 1019 kB root# sync root# swapon -v /swapfile swapon sur /swapfile

Fichier dchange

Vous pouvez ensuite ajouter le nouveau chier comme une partition dchange 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 systme de chiers et les partitions du disque dur. Elle est gre par le module du noyau md_mod. Cette section est une courte introduction aux bases et la conguration manuelle de LVM. Vous trouverez plus dinformations aux adresses http://fr.wikipedia.org/ wiki/Gestion_par_volumes_logiques, http://www.redhat.com/magazine/009jul05/features/lvm2/, http://www.traduc.org/docs/HOWTO/vf/LVM-HOWTO.html et http://sourceware.org/lvm2/.
Avantages et inconvnients

La description de LVM peut paratre abstraite, mais ses avantages sont rels : Vous pouvez crer et redimensionner des partitions sans redmarrer lordinateur en fonctionnement normal : le problme dune partition trop petite appartient au pass. Vous pouvez joindre plusieurs disques en une seule norme partition virtuelle. Vous pouvez crer un instantan dun systme de chiers trs facilement. Un tel mcanisme est idal pour les sauvegardes dun systme en cours de fonctionnement. LVM est trs rapide. La exibilit induite ne lest pas au dtriment des performances. Cependant, LVM prsente galement quelques inconvnients : LVM doit tre mis en place ds la cration de la partition.

452

LINUX

Il soccupe uniquement des partitions et pas du systme de chiers qui sy trouve. Lorsque vous avez modi la taille dune partition, vous devez modier la taille du systme de chiers. Gnralement, cela ne fonctionne que lorsquil nest pas utilis (lorsquil est dmont). Lorsquun systme de chiers est rparti sur plusieurs disques, la probabilit derreur augmente. Un problme sur un seul disque dur rend toutes les donnes inutilisables. La gestion des partitions est plus souple, mais aussi plus complique, en particulier en ce qui concerne la rcupration en cas dincident. Vous ne pouvez pas accder une partition contenue dans un systme LVM sous Windows. Les versions courantes de GRUB ne parviennent pas dmarrer depuis une partition LVM. Vous avez donc besoin dune partition /boot lextrieur de LVM. 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 connatre 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 partition systme

Versions

Dans cette section, je pars du principe que vous ne mettez en place LVM que pour les partitions de donnes et que la partition systme est une partition habituelle. Si vous dsirez mettre en place LVM pour la partition systme, vous devez remplir les conditions suivantes : Votre distribution doit le permettre pendant linstallation. Cest le cas pour Debian, Fedora, Red Hat, SUSE et Ubuntu. Vous devez crer une partition damorage en dehors du systme LVM ou utiliser le gestionnaire damorage LILO. Le chier initrd doit contenir le module md_mod.

Glossaire
Voici un glossaire rapide des divers termes associs LVM. Volume physique (PV, physical volume). Un PV est un disque utilis par une partition LVM. Il peut sagir dun disque ou dun ensemble de disques mont en RAID. Groupe de volumes (VG, volume group). Un ou plusieurs volumes physiques peuvent tre rassembls dans un groupe. On peut alors rpartir des partitions sur les disques durs. Volume logique (LV, logical volume). Un LV est une partie du VG. Pour lutilisateur, un LV fait ofce de partition. Le systme de chiers y est cr. Tant quil reste de lespace sur le VG, on peut crer ou agrandir des LV volont.

ADMINISTRATION DU SYSTME DE FICHIERS

453

Priphrique physique (PD, physical device). Il sagit dun 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 grer chaque octet dun VG ou dun LV indpendamment. La plus petite unit de donnes est une extension physique et sa taille est gnralement de 4 Mo.

Mettre en place un systme LVM simple


Pour ce qui suit, je pars du principe que vous avez install Linux sans LVM et que vous souhaitez utiliser des partitions supplmentaires en LVM. Cette section traite du cas o vous navez quun seul disque utiliser en LVM. Les partitions de disque dur doivent tre identies en tant que partitions LVM. Si vous utilisez fdisk, vous pouvez leur associer lidentiant hexadcimal 8e avec la commande T. Dans parted, la commande correspondante est set numro_partition lvm on. Dans cet exemple, le systme LVM est cr sur /dev/sdc1, puis tendu /dev/sdc2.
root# fdisk -l /dev/sdc Disque /dev/sdc: 320.0 GB, 320072933376 octets Priphrique Amorce Dbut Fin Blocs /dev/sdc1 1 1217 9775521 /dev/sdc2 1218 2434 9775552+
Fichier de configuration

Rglage des identifiants de partitions

Id 8e 8e

Systme Linux LVM Linux LVM

Initialisation de LVM

Le seul chier de conguration que vous pouvez modier vous-mme sappelle /etc/lvm/ lvm.conf. Il contient divers paramtres de base qui nont que rarement besoin dtre modis. Tous les autres paramtres de LVM (paramtres spciques aux volumes) sont grs par les outils associs. Pour initialiser LVM, lancez modprobe et vgscan. Ces oprations sont prises en charge par les distributions compatibles avec LVM2 ds le dmarrage de lordinateur lorsque le systme LVM est mis en uvre.
root# modprobe dm_mod root# vgscan Reading all physical volumes (this may take a while...) No volume groups found

Cration dun volume physique

Avant que LVM gre la partition /dev/sdc1, il faut dclarer celle-ci comme volume physique. Attention, vous perdrez toutes les donnes qui se trouvent sur cette partition.
root# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created

Cration dun groupe de volumes

Il faut maintenant grouper tous les volumes physiques dans un groupe de volumes. Dans cet exemple, il ny a quun seul PV, mais cette tape reste ncessaire. 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

454
Cration dun volume logique

LINUX

monvg1 est un espace encore inutilis. Pour lutiliser, vous devez crer un volume logique, cest--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

Cration dun systme de fichiers dans le volume logique

Pour crer un systme de chiers dans le volume logique, utilisez simplement mkfs.ext3 ou mkfs.xfs :
root# mkfs.ext3 /dev/myvg1/myvol1

mount permet de vrier que tout a fonctionn :


root# mkdir /test root# mount -t ext3 /dev/myvg1/myvol1 /test
Arrt de LVM

LVM est interrompu lors de larrt de lordinateur. Vous pouvez aussi effectuer cette opration manuellement avec vgchange :
root# umount /test root# vgchange -a n 0 logical volume(s) in volume group "myvg1" now active

Pour rutiliser LVM, relancez vgchange avec loption -a y :


root# vgchange -a y 1 logical volume(s) in volume group "myvg1" now active

Redimensionner un systme de fichiers


Agrandir un systme de fichiers

Pour agrandir un systme de chiers, il faut dabord agrandir le volume logique correspondant :
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 systme de chiers. Si votre noyau ne contient pas le correctif ext2online, vous devez dmonter la partition, la vrier 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 systme de fichiers de /dev/myvg1/myvol1 a maintenant une taille de 786432 blocs. root# mount -t ext3 /dev/myvg1/myvol1 /test
Rduire un systme de fichiers

Pour rduire un systme de chiers, vous devez dabord le rduire avec resize2fs ou loutil quivalent du systme de chiers considr :
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.

ADMINISTRATION DU SYSTME DE FICHIERS

455

Vous pouvez alors rduire le volume logique avec lvreduce. Attention, vous devez indiquer la taille correcte. Dans cet exemple, la taille des blocs est dexactement 1 Ko, il ny a donc rien calculer. Ce nest 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 groupe de volumes

Si vous navez plus de place sur le groupe de volumes et que vous souhaitez ajouter une 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 paramtres du disque dur


hdparm
hdparm a t dvelopp pour congurer 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 loption libata passthrough. Le plus simple est de tester cela avec hdparm -i priphrique : si cette commande renvoie des donnes sur le fonctionnement du disque, hdparm fonctionne. 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. La commande hdparm -I afche des informations sur le disque dur. hdparm -tT afche les performances de transfert de donnes entre le disque dur et lordinateur. Cette commande renvoie deux rsultats : les performances pour les donnes dans le cache du disque dur et les performances pour les donnes qui doivent tre lues sur le disque dur. Jai obtenu les rsultats suivants sur mon disque dur SATA. Cependant, les performances ne sont que thoriques.
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 dcriture

tat du disque Performances du disque dur

La plupart des disques durs utilisent une mmoire tampon pour les oprations dcriture. Ds que les donnes sy trouvent, le disque dur indique au systme dexploitation que les

456

LINUX

conomie dnergie

donnes sont crites, mais elles ne le sont physiquement quun peu plus tard. Ce cache acclre les oprations dcriture, mais reprsente un risque dinscurit des donnes. Lors dune coupure de courant, des donnes peuvent ne pas tre compltement enregistres et mme un systme de chiers journalis ny fera rien. Pour dsactiver le cache ce qui diminue les performances mais augmente la scurit , utilisez la commande hdparm -W0. hdparm -W1 ractive le cache. Les disques durs de portables modernes peuvent tre teints aprs une certaine priode dinactivit pour conomiser lnergie. laccs suivant, il faut compter quelques secondes avant que le disque dur ne soit prt lutilisation. Loption -S permet de rgler la valeur avant que le disque ne soit dsactiv. La valeur de cette option va de 0 255 et son interprtation est dtaille dans man hdparm. vitez les valeurs trs faibles : cela conomise certes de lnergie, mais rduit normment la dure de vie du disque dur, qui nest prvue que pour 10 000 cycles de dsactivation/ractivation. La commande suivante dsactive le disque au bout de dix minutes sans activit :
root# hdparm -S 120 /dev/hda

SMART
SMART signie Self-Monitoring, Analysis and Reporting Technology (technologie dautosurveillance, danalyse et de rapport) et est utilisable par presque tous les disques IDE, SATA et SCSI courants. SMART permet denregistrer divers paramtres du disque dur intervalles rguliers. Ces paramtres donnent un avertissement sur dventuels dfauts du disque et sur sa dure de vie. La surveillance de ces paramtres par le systme dexploitation est un systme dalerte prcoce. Vous trouverez plus dinformations 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. 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 sagir dun disque dur interne. SMART ne peut pas tre utilis sur les disques USB et Firewire. Les disques durs connects par un contrleur RAID matriel ne peuvent utiliser SMART que dans certains cas particuliers. Le paquetage smartmontools doit tre install. Le noyau a besoin, pour les disques SATA, de loption libata passthrough. Cest gnralement le cas pour les noyaux partir de la version 2.6.15. Pour lire les donnes 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 derreur Device does not support SMART safche, vous devez indiquer le type de disque avec -d ata. Cette option est ncessaire uniquement pour les versions anciennes de smartctl.

Prrequis

tat du disque

ADMINISTRATION DU SYSTME DE FICHIERS

457

Lorsque smartctl -i afche dans la dernire ligne SMART support is Disabled, activez SMART avec smartctl -s on. smartctl -H indique si un disque dur est dans un tat correct et sil est probable quil fonctionne encore dans les prochaines vingt-quatre heures. Si smartctl ne renvoie pas PASSED comme rsultat, il est urgent de faire une sauvegarde complte du disque concern.
root# smartctl -H /dev/hda === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED

Excution dun test

Surveillance automatique

smartctl -A afche une liste des attributs du disque dur. Pour interprter les rsultats, il faut prendre en compte deux valeurs. La colonne VALUE est la valeur actuelle et TRESH est le seuil au-dessous duquel il faut sattendre des problmes. Les valeurs sont normalises 100. Par exemple, la valeur Power_On_Hour (indiquant le nombre dheures pendant lesquelles le disque a fonctionn) est 100 pour un nouveau disque dur et chute au fur et mesure vers 0. La colonne RAW_VALUE indique la valeur brute de la donne, en loccurrence le nombre dheures de fonctionnement. smartctl -l error afche des informations sur les cinq dernires erreurs rencontres. Les erreurs isoles qui ne se rptent pas ne sont gnralement pas pertinentes. SMART permet dtablir encore plus prcisment ltat dun disque avec des tests pousss. Il existe deux tests : un test court (smartctl -t short) et un test long (smartctl -t long). Le test est effectu en tche de fond et vous pouvez continuer travailler normalement. Une fois le test termin, vous pouvez en voir le rsultat avec smartctl -l selftest. Il existe galement des outils de surveillance automatique pour collecter des informations rgulirement sur le disque et pour prvenir lutilisateur en cas de dfaillance. Vous pouvez par exemple utiliser le dmon smartd (voir man smartd).

24

Dmarrage du systme
Ce chapitre traite du dmarrage dun systme Linux, qui est assur par trois composants : GRUB sert dmarrer le noyau Linux. Pour cela, il faut linstaller sur une disquette ou sur le secteur damorage dun disque dur. Il existe des alternatives GRUB, comme LILO, mais leur usage est de plus en plus restreint. Lorsque le noyau fonctionne, le systme est initialis (dtection du matriel, accs au disque dur, etc.). Si cela pose problme, vous pouvez passer des options damorage. Pour nir, le noyau dmarre le programme init du processus InitV. init effectue diverses tches dinitialisation, comme le montage des systmes de chiers et le dmarrage des services rseau. Des connaissances de base sur ce processus savrent utiles lorsquon congure des services.

24.1 GRUB
Pour tre prcis, nous ne parlons pas ici simplement de GRUB, mais de GNU GRUB 0.9.n legacy. legacy indique que cette version nest plus dveloppe activement. Depuis 2005, les dveloppeurs travaillent sur une nouvelle implmentation de GRUB, nomme GRUB 2. Mi2008, celle-ci ntait toujours pas utilise en pratique. La plupart des distributions fournissent pour linstant GRUB 0.9.n, auquel ce chapitre est consacr. GRUB signie GRand Unied Bootloader (grand chargeur damorage uni). La documentation ofcielle est accessible avec info grub. Vous trouverez plus dinformations sur GRUB, y compris GRUB 2, la page http://www.gnu.org/software/grub/.

Dtails du dmarrage du systme


Avant de traiter de linstallation et de la conguration de GRUB, voici un aperu des oprations effectues lamorage. Lorsque vous allumez votre ordinateur, le BIOS est initialis. Certains messages apparaissent lcran, comme par exemple la quantit de mmoire de votre ordinateur. Le BIOS charge le contenu du premier secteur du premier disque dur ou de la disquette en mmoire et excute son code. Ce secteur spcial du disque dur sappelle le MBR (Master Boot Record, enregistrement damorage matre). 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 systme dexploitation nest pas dmarr directement ; le processus de dmarrage passe par le chargeur damorage. Vous pouvez, dans ce menu, choisir entre plusieurs versions de Windows.
Chargeur damorage de Linux

Si Linux est galement install sur votre ordinateur, le MBR doit contenir le programme qui le dmarre. Il existe plusieurs chargeurs damorage pour Linux, dont le plus populaire est GRUB.

460

LINUX

Le MBR ne peut contenir que 512 octets de donnes. Cest pourquoi le chargeur damorage ne se trouve pas compltement dans le MBR. Pour contourner cette limite de place, celui-ci ne contient que le code qui permet de charger le reste du chargeur damorage depuis le disque dur. Le code de GRUB est divis en deux ou trois parties. stage1 se trouve dans le MBR et na comme tche que de charger les premiers secteurs de stage1_5 ou stage2. stage1_5 contient le code supplmentaire pour accder aux chiers dans divers systmes de chiers et stage2 le gestionnaire damorage rel. Ds que le gestionnaire damorage est lanc, un menu apparat. Celui-ci permet de choisir entre tous les systmes dexploitation dnis dans la conguration de GRUB. Vous pouvez naviguer dans ce menu laide des touches de direction et dmarrer le systme souhait avec Entre. Le gestionnaire damorage est souvent congur pour dmarrer un systme donn au bout dun certain temps.
Il nexiste quun seul MBR, mais il peut y avoir plusieurs systmes dexploitation sur votre disque dur. Cela risque videmment de mener des conflits ! Lorsque vous rinstallez Windows, le MBR est cras et vous ne pouvez plus dmarrer Linux directement. Si votre ordinateur dispose dun lecteur CD, vous pouvez crer dans ce cas une disquette damorage GRUB. Si vous navez pas de lecteur de disquette, vous devez lancer pour rparer GRUB un systme live (par exemple Knoppix) ou un systme durgence (fourni sur le CD ou DVD dinstallation de nombreuses distributions). Inversement, GRUB crase galement, lorsquil est install, le code prsent sur le MBR. Cela nest normalement pas un problme, car GRUB peut dmarrer Windows. Malheureusement, linstallation de GRUB peut chouer. Si cela vous arrive, vous ne pouvez plus dmarrer aucun systme.
Dmarrage de Linux

Lorsque vous dcidez de lancer Windows, le chargeur damorage doit charger et dmarrer le chier du noyau sur le disque dur. Ce chier sappelle gnralement /boot/vmlinuz (z indique que le noyau est compress). Le chargeur damorage doit donc pouvoir charger un chier depuis le systme de chiers Linux. En gnral, on passe peu de paramtres au noyau, mais il en faut au moins un : le nom du priphrique contenant la partition systme (par exemple root=/dev/sdb13). Ainsi, le noyau connat la partition systme. Ds que le noyau est lanc, il passe le contrle au programme /sbin/init. Ce programme sert initialiser le systme Linux ; il dmarre par exemple tous les services rseau. Il faut encore prendre en compte une particularit : le noyau Linux est modulaire. Cela signie quil ne contient que des fonctions relativement lmentaires. Les fonctionnalits supplmentaires, par exemple pour accder divers composants matriels ou lire et crire diffrents systmes de chiers, se trouvent dans des modules qui sont chargs depuis le systme de chiers et qui tendent le noyau. Pour que le processus de dmarrage fonctionne, le noyau doit pouvoir accder la partition systme. Si celle-ci est formate dans un systme de chiers que le noyau ne prend pas en charge ou si elle se trouve sur un disque SCSI pour lequel le noyau na pas de pilote matriel, survient le classique problme du paradoxe de luf et de la poule : le noyau ne peut pas

Paramtres du noyau

Accs aux modules du noyau

DMARRAGE DU SYSTME

461

Fichier initrd

Installation et configuration de GRUB

LILO

accder au systme de chiers et ne peut donc pas charger le module ncessaire pour lire des chiers sur le systme de chiers. La solution ce problme est de charger, en plus du noyau, un chier initrd. Il sagit dun chier spcial qui contient tous les modules du noyau ncessaires au dmarrage du systme. Ce chier est gr par le noyau comme un disque en mmoire vive le noyau peut alors lancer les modules ncessaires une fois le disque virtuel charg. Le chier initrd sappelle souvent /boot/initrd ou /boot/initrd.gz. La plupart des distributions fournissent des outils pour crer un chier initrd qui correspond au matriel et au systme de chiers de la partition systme (commande mkinitrd). Lorsque nous parlons dinstallation de logiciels dans cet ouvrage, cela implique souvent linstallation dun paquetage depuis un CD ou Internet. Dans ce chapitre, une autre signication sapplique. "Installer GRUB" dcrit le processus dcriture du code de dmarrage de GRUB sur le secteur damorage dun disque dur ou dune disquette. Nous supposerons que le paquetage logiciel GRUB est install. La conguration de GRUB consiste modier /boot/grub/menu.lst de manire que tous les systmes puissent tre dmarrs. GRUB accde par dfaut ce chier. Dans GRUB 2, le chier de conguration sappelle grub.conf. Fedora et Red Hat utilisent dj ce nom de chier. Dans ce chapitre, nous ne parlerons pas de LILO, qui nest plus utilis que dans de rares cas (distribution Slackware et certains serveurs ddis, par exemple). Dans le cas o LILO serait install par dfaut, vous pouvez gnralement 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 systme dexploitation souhait lors du dmarrage de lordinateur (voir Figure 24.1). Dans certaines distributions, ce menu safche en mode graphique. Pour utiliser les fonctions supplmentaires de GRUB, il faut quitter ce mode avec chap.

Figure 24.1
Menu GRUB.

462

LINUX

Vous pouvez alors modier une ligne du menu de GRUB avec E (edit). C (command line) permet de quitter ce menu. Vous vous trouvez alors dans un interprteur de commandes. help fournit un aperu des commandes valides, dont certaines seront dcrites dans cette section. help commande permet den savoir plus sur une commande donne et chap, de revenir au menu damorage.
GRUB peut tre scuris avec un mot de passe. Dans ce cas, vous ne pouvez accder 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 options au noyau Linux

La fonction de modication de GRUB sert avant tout passer des options du noyau au dmarrage de Linux (par exemple, pour rgler des problmes matriels). Pour cela, choisissez la ligne de menu souhaite et passez en mode ddition avec E. Quelques lignes safchent, semblables celles-ci :
root (hd1,12) kernel /boot/vmlinuz root=/dev/sdb13 initrd /boot/initrd

Excuter des commandes interactives

Choisissez avec les touches de direction la ligne qui commence par kernel, tapez E pour la modier, puis ajoutez les options du noyau la n de la ligne. Entre permet de valider les modications. chap retourne au menu, do vous pouvez dmarrer Linux. La modication des options damorage nest utilise quune seule fois ; ces options ne sont pas enregistres. Depuis le menu GRUB, vous pouvez passer dans un mode de commandes interactives avec C. Vous pouvez y lancer diverses commandes GRUB. Cela permet de dmarrer un systme Linux lorsque le menu GRUB ne dispose pas de ligne explicite pour ce systme. Vous devez pour cela savoir sur quelle partition se trouve Linux et quelles sont les commandes GRUB correspondantes. Les commandes suivantes dmarrent par exemple la distribution qui se trouve sur la partition /dev/sdb13 :
grub> grub> grub> grub> root (hd1,12) kernel /boot/vmlinuz root=/dev/sdb13 initrd /boot/initrd boot

Modifier le menu de manire persistante

Lorsque vous saisissez des noms de chiers, GRUB sait complter avec Tab les noms de chiers de root ou dune partition donne (voir Figure 24.2). cat permet dafcher un fichier texte. Le mode de commandes interactives fournit de nombreuses autres commandes, que nous ne dtaillerons pas ici pour des raisons de place. GRUB lit le menu damorage dans le chier /boot/grub/menu.lst. Celui-ci contient des commandes telles que title, root, kernel, chainloader, etc. Pour modier le menu de manire persistante, vous devez lancer Linux, chercher le chier de menu de GRUB et le modier. GRUB prend en compte vos modications ds le dmarrage suivant. La section suivante traite des modications de ce chier.

DMARRAGE DU SYSTME

463

Figure 24.2
Utiliser GRUB de manire interactive.

24.3 GRUB Configuration


Cette section dcrit les lments importants du chier de menu de GRUB, souvent situ dans /boot/grub/menu.lst. partir de la version 2, ce chier de conguration sappelle grub.conf. Red Hat et Fedora lutilisent dj. Les liens symboliques /boot/grub/menu.lst et /etc/grub.conf pointent vers ce chier, an de ne pas faire derreur lorsque vous chargez et modiez menu.lst dans un diteur. Notez que toutes les commandes prsentes ici peuvent galement tre lances de manire interactive dans linterprteur de commandes de GRUB. Les modications de menu.lst ne sont prises en compte que lorsque GRUB se trouve dj sur le secteur damorage de votre disque dur ou lorsquun autre support de donnes est install. Linstallation de GRUB sera dtaille la section suivante. Le caractre # introduit un commentaire. Il existe galement des outils spciques aux distributions pour modier GRUB, par exemple dans SUSE le module YaST Systme, Conguration du chargeur damorage.
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 dmarrage suivant. Il arrive cependant que cette reconfiguration automatique crase vos propres modifications. Sous les systmes Debian et Ubuntu, le script update-grub reconfigure GRUB. Tous les noms de fichiers et de partitions de cette section ont valeur dexemple. Vous devez remplacer le nom du disque par votre propre partition systme ou partition damorage. Si Linux fonctionne, la commande df permet de connatre le nom de ces partitions. Il arrive galement que le fichier du noyau ou le fichier initrd aient dautres noms que ceux des exemples de cet ouvrage.

464

LINUX

Descriptions des disques durs et partitions


GRUB a sa propre nomenclature pour dsigner les disques durs et les partitions. La rgle de base est que la numrotation commence toujours par 0.
Noms de partitions de GRUB (hd0) (hd0,0) (hd2,7) (fd0) premier disque dur (correspond /dev/hda ou /dev/sda) premire partition du premier disque dur (correspond /dev/hda1 ou /dev/sda1) huitime partition du troisime disque dur lecteur de disquette

Selon la manire dont le disque est partitionn, le schma des noms GRUB peut, comme celui du nommage des partitions, contenir des trous. Un disque dur dot dune partition primaire, dune partition tendue et de deux partitions logiques aura pour noms de priphriques /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 dcrits de la mme faon que les disques IDE. Lorsque plusieurs systmes de disques (par exemple, IDE et SCSI) sont utiliss sur lordinateur, lordre numrique des disques durs dpend du BIOS. Les lecteurs CD et DVD ne sont pas pris en compte par la numrotation.
devices.map

Le chier /boot/grub/devices.map sert faire correspondre les noms des priphriques et les noms GRUB. Il est cr lorsque GRUB est lanc pour la premire fois. Cependant, il nest pas automatiquement actualis lors de lajout dun disque. Vous pouvez, en revanche, le supprimer et excuter nouveau grub. Le chier est alors recr, ce qui peut prendre jusqu une minute. Dans les cas tenaces, vous pouvez aussi modier vous-mme le chier. Veillez cependant ce que vos modications saccordent avec celles que GRUB rcupre du BIOS lors du dmarrage de lordinateur. Ce chier ressemble ceci :
(hd0) /dev/sda (hd1) /dev/sdb (fd0) /dev/fd0

Paramtres globaux de menu.lst


Le chier de menu de GRUB se compose dune section globale, qui contient divers paramtres de base, et de plusieurs lments de menu, qui commencent tous par title. Voici des exemples de paramtres globaux de menu.lst :
default 2 timeout 30 color yellow/blue red/white # # # # # le troisime lment du menu est le choix par dfaut attendre 30 secondes avant de dmarrer le choix par dfaut couleurs du menu

Les paragraphes suivants dnissent les mots cls utilisables dans la section globale de menu.lst.

DMARRAGE DU SYSTME

465

default. Cette option indique le numro de llment du menu qui fait ofce de choix par dfaut. La numrotation commence 0 ! la place dun numro, vous pouvez aussi trouver default saved. Dans ce cas, llment par dfaut est celui slectionn lors du dernier amorage. Pour que cela fonctionne, il faut cependant que llment contienne le mot cl savedefault, dont nous parlerons la section suivante. Sil ny a pas doption default, le premier lment du menu est le choix par dfaut. fallback. Cette option donne le numro du menu utilis lorsque le choix par dfaut ne fonctionne pas. Lorsque fallback nest pas dni, si llment par dfaut 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 dure coule, le systme par dfaut est dmarr. hiddenmenu. Cette option cache le menu. Une fois le temps dni par timeout coul, le systme par dfaut est dmarr. Lutilisateur peut, pendant ce temps, appuyer sur chap pour afcher le menu. password --md5 mot_de_passe. Cette option protge GRUB avec un mot de passe. Les commandes du menu ne peuvent pas tre utilises sans mot de passe. Les fonctions interactives de GRUB se limitent la saisie dun mot de passe. color avant-plan/arrire-plan avant-plan du menu/arrire-plan du menu. Cette option dnit les couleurs du menu. La premire est la couleur du texte. La deuxime est la couleur du fond de lcran. Les deux couleurs suivantes dnissent celle du texte et du fond pour llment en surbrillance du menu. Sil ny a pas doption color, le menu safche en noir et blanc. splashimage. Cette option nest pas disponible dans toutes les distributions, car il ne sagit pas dune option ofcielle de GRUB. Ce mot cl permet dajouter une image de fond au menu. Celle-ci doit faire 640x480 pixels, tre au format XPM (8 bits par pixel) et compresse avec gzip. La ligne suivante illustre lutilisation de splashimage :
splashimage=(hd1,1)/boot/grub/splash.xpm.gz

Vous trouverez galement plus de dtails ladresse http://ruslug.rutgers.edu/~mcgrof/grub-images/. gfxmenu. Il sagit dune autre extension non ofcielle de GRUB, utilise entre autres par les distributions SUSE et Novell. Le chier dimage doit tre cr avec mkbootmsg. Ces commandes, ainsi que le chier de documentation gfxboot.html se trouvent dans le paquetage gfxboot.
Protection par mot de passe

La grande exibilit de GRUB pose videmment des problmes de scurit. Un utilisateur de GRUB peut lire tous les chiers du disque qui se trouvent sur une partition ext2, ext3, reiserfs ou vfat avec cat. Il est donc sens de protger 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 chiffre :
root# grub grub> md5crypt Password: ****** Encrypted: $1$FWk/60$QfckeBVBoaWNBm274USHO0

466

LINUX

Ajoutez simplement cette cl au champ password du chier de menu de GRUB :


password --md5 $1$FWk/60$QfckeBVBoaWNBm274USHO0

Tous les utilisateurs peuvent alors choisir nimporte quel lment du menu, mais ils ne peuvent pas utiliser les fonctions interactives de GRUB tant quils nont pas saisi le mot de passe. Pour ce faire, lutilisateur doit taper P, puis le mot de passe. Pour protger un lment donn du menu, ajoutez le mot cl lock aprs la ligne title de llment en question.

lments du menu dans menu.lst


Aprs la conguration globale, menu.lst contient diffrents lments de menu pour diffrents systmes dexploitation. Chaque lment commence par title. Le titre indiqu aprs title est le contenu afch dans le menu. Mes tests montrent que seuls les caractres du jeu US ASCII sont autoriss, lexception des caractres accentus. Je nai cependant trouv aucune documentation conrmant ce fait. Les lignes suivantes (jusqu la section title suivante ou la n du chier) sont les commandes GRUB lances la suite les unes des autres. Lorsque vous testez des commandes interactives, vous devez ajouter une commande boot. Celle-ci nest pas ncessaire dans le chier du menu.
Dmarrer Linux

Pour dmarrer Linux, vous devez indiquer la partition root sur laquelle se trouvent le noyau et le chier initrd (si ncessaire). Elle est considre comme partition active pour GRUB. Les options kernel et initrd indiquent lemplacement exact des chiers, ainsi que dventuelles options damorage du noyau. Pour les options du noyau, et en particulier pour la saisie du systme de chiers root, la nomenclature Linux est utilise. Il faut donc taper root=/dev/sdb13 pour indiquer le systme de chiers utiliser. Vous pouvez aussi utiliser les notations root=LABEL=libell ou root=UUID=n et dans ce cas, le libell ou le numro didentication du disque (voir Chapitre 23). Attention, les noms de chiers vmlinuz et initrd peuvent diffrer sur votre systme.
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 chier, la partition considrer.
title Linux kernel (hd1,12)/boot/vmlinuz root=/dev/sdb13 initrd (hd1,12)/boot/initrd

Si /boot ne se trouve pas sur la partition systme, mais sur une partition damorage spare, vous devez modier la commande root en consquence. Comme la partition boot devient alors le point dentre de tous les chiers, /boot ne doit pas tre ajout aux commandes indiquant les chiers du noyau et du disque virtuel. Les lignes suivantes supposent que la partition /dev/sda2 est la partition /boot :
title Linux root (hd0,1)

DMARRAGE DU SYSTME

467

kernel /vmlinuz root=/dev/sdb13 initrd /initrd


Passer des options au noyau

Selon le matriel et la distribution, il peut tre ncessaire de passer des options damorage au noyau Linux. Ces options grent, entre autres, lafchage des messages du processus InitV. Elles doivent simplement tre ajoutes la n 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 connatre les options ncessaires votre distribution ou votre matriel, le plus simple est de consulter le chier GRUB cr pendant linstallation. Voici quelques exemples :
Dmarrer Windows

Debian 4 Fedora 9, RHEL 5 Ubuntu 8.04 SUSE 11

root=/dev/xxx ro root=LABEL=xxx ro rhgb quiet root=UUID=xxx ro quiet splash root=/dev/xxx vga=xxx resume=/dev/xxx splash=silent showopts vga=317

Pour dmarrer Windows, vous devez indiquer la partition active avec rootnoverify, plutt quavec root. La commande chainloader +1 assure que le premier secteur de cette partition est lu et excut. Sous Windows 9x/ME, cela revient dmarrer directement Windows. Sous Windows NT/2000/XP/Vista, cela lance le gestionnaire damorage de Windows qui soccupe lui-mme de dmarrer Windows GRUB ne sait pas dmarrer lui-mme Windows NT/2000/XP/Vista.
title Windows rootnoverify (hd0,0) chainloader +1

Windows narrive dmarrer que lorsquil se trouve sur le premier disque dur. Si ce nest 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 dernier choix

Lorsque menu.lst contient de nombreux lments, le fait que GRUB enregistre le dernier lment choisi peut savrer pratique. Pour cela, ajoutez loption default saved la section globale de menu.lst, puis le mot cl savedefault dans tous les lments du menu :
title Linux root (hd1,12) kernel /boot/vmlinuz root=/dev/sdb13 initrd /boot/initrd savedefault

468

LINUX

Nutilisez 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 donnes et de mettre en danger la synchronisation des disques du RAID.

Tester la configuration de GRUB


Pour tester rapidement et sans redmarrer la syntaxe dun lment du menu de GRUB, lancez dabord 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 chier de menu. Lorsque tout fonctionne, GRUB afche le menu. Cependant, vous ne pouvez pas choisir de systme dexploitation, puisque Linux est dj dmarr.

24.4 GRUB Installation


Linstallation de GRUB seffectue normalement pendant linstallation de Linux. Il nest donc pas ncessaire de le rinstaller. Pour le congurer, il suft de modier /boot/grub/menu.lst (voir section 24.3). Cette section couvre les cas particuliers suivants : la rinstallation de GRUB aprs son crasement sur le MBR ; linstallation de GRUB sur une disquette ; linstallation de GRUB sur un support USB.

Rinstallation de GRUB
Lorsque linstallation de GRUB choue ou lorsquelle est crase (par exemple, par linstallation de Windows), vous ne pouvez plus accder directement au systme Linux. Knoppix est un outil pratique pour rparer une installation de Linux, et en particulier le chargeur damorage. Vous le trouverez ladresse http://knoppix-fr.org/. Vous pouvez aussi tlcharger la version francise, Kaella, ladresse http://kaella.linux-azur.org/. Knoppix se grave sur un CD ou un DVD. Il suft alors damorcer lordinateur pour dmarrer Knoppix. Celui-ci devient cependant de moins en moins utile mesure que les distributions fournissent un CD dinstallation "live". Les manipulations ci-aprs peuvent peut-tre fonctionner avec le CD dinstallation de votre distribution. Une fois Knoppix dmarr, lancez un shell en root. Dans lidal, vous savez sur quelle partition se trouve votre distribution Linux et en particulier, le rpertoire /boot. Si ce nest pas le cas, cliquez sur les diffrentes icnes de disque dur du bureau Knoppix. Vous reconnatrez la partition souhaite son rpertoire /boot qui contient les chiers du noyau Linux (vmlinuz par exemple), le sous-rpertoire /boot/grub et le chier de menu GRUB /boot/grub/menu.lst. Si vous avez une partition damorage spare, celle-ci ne

DMARRAGE DU SYSTME

469

contient pas de rpertoire boot : vmlinuz et le sous-rpertoire grub se trouvent directement la racine de cette partition. Lorsque vous avez trouv cette partition nous supposons dans la suite de cette section quil sagit de /dev/sda3 , cliquez du bouton droit sur licne de la partition et activez les droits en criture. Il faut ensuite installer GRUB sur le secteur damorage du disque dur, an quil puisse lire tous les chiers ncessaires lamorage sur /dev/sda3. La notation GRUB de cette partition est (hd0,2) et celle du premier disque, dont le secteur damorage doit tre modi, est (hd0).
root# grub> grub> grub> grub root (hd0,2) setup (hd0) quit

Installation sur une disquette


Si votre ordinateur dispose encore dun lecteur de disquette, vous pouvez installer GRUB sur une disquette vierge. Linux ne dmarre que lorsque le secteur damorage de la disquette est lu cela implique gnralement une modication des paramtres du BIOS.
Variantes

Il existe deux variantes dinstallation de GRUB sur une disquette : Installation minimale. Vous ninstallez que le chier stage1 dans le secteur damorage de la disquette de manire que tous les autres chiers (stage2, le chier de menu de GRUB, etc.) soient chargs depuis le disque dur. Lamorage est donc plus rapide, car un seul secteur est lu sur la disquette. Il est cependant ncessaire que tous les autres chiers se trouvent effectivement sur le disque. Cette disquette ne peut donc servir que de disquette durgence pour dmarrer Linux lorsque le MBR est dfectueux, par exemple aprs une rinstallation de Windows. Installation complte. Vous copiez ici tous les chiers GRUB sur la disquette (stage1, stage-1_5 et stage2, ainsi que les chiers du menu). Lavantage est que lordinateur dmarre mme lorsque les chiers GRUB ne sont pas lisibles sur lordinateur. Linconvnient est que lamorage est plus long, car tous ces chiers doivent tre lus depuis la disquette. Lexemple suivant suppose que tous les chiers GRUB se trouvent sur la partition /dev/ sdb13 de lordinateur. Pour installer GRUB sur le secteur damorage de la disquette, lancez les commandes suivantes :
root# grub> grub> grub> grub root (hd1,12) setup (fd0) quit

Installation minimale

Installation complte

Pour installer compltement GRUB sur une disquette, il faut modier, en plus de son secteur damorage, le contenu de la disquette. Les commandes suivantes crent un systme de chiers ext2 sur la disquette, le montent sur /disquette, crent le rpertoire /disquette/

470

LINUX

boot et y copient tous les chiers stage. Selon la distribution, il se peut que ces chiers ne soient pas dans /usr/lib/grub, mais dans un autre rpertoire.
root# root# root# root# root# mke2fs /dev/fd0 mkdir /floppy mount -t ext2 /dev/fd0 /floppy mkdir /floppy/boot cp -a /usr/lib/grub/ /floppy/boot/

Vous devez aussi copier le chier de menu de GRUB :


root# cp /boot/grub/menu.lst /floppy/boot/

Ensuite, vous devez installer GRUB dans le chargeur damorage 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 nir, dmontez le systme de chiers de la disquette. Pour modier le menu ultrieurement, il suft de modier le chier menu.lst sans avoir rinstaller GRUB.

Installation sur un support USB


Le BIOS de la plupart des ordinateurs modernes permet damorcer lordinateur depuis un support USB (disque dur externe, cl USB). En thorie, il nest donc pas difcile dinstaller GRUB sur le secteur damorage dune cl USB et de lancer avec cette cl Windows, Linux, etc. Mais dans la pratique, on se heurte souvent des problmes, dont les deux sources principales sont les suivantes : La carte mre doit reconnatre le support USB ds lamorage et laccepter comme mdia damorage. Les cls USB peuvent tre formates avec ou sans table de partition ; le format accept dpend du BIOS. De plus, vous devez activer la prise en charge de lUSB dans le BIOS (le plus souvent, grce une option spciale). linverse de Linux, GRUB dpend du BIOS pour accder un support USB ! Lorsque le BIOS accepte un support USB en tant que priphrique damorage, lordre des lecteurs est modi dans GRUB. (hd0) devient alors le support USB et les disques dj prsents sont nomms (hd1), (hd2), etc.

DMARRAGE DU SYSTME

471

La meilleure stratgie est dinstaller une premire fois GRUB sur une cl USB pour voir ce quil se passe. Lorsque le systme est lanc, GRUB reconnat la cl sous le nom (hdn+1), o n est le dernier disque interne. Si votre systme se trouve sur /dev/sdb13 et si votre ordinateur dispose de deux disques durs, la cl a pour identiant (hd2). Pour installer GRUB dans le MBR de la cl USB, utilisez les commandes suivantes :
root# grub> grub> grub> grub root (hd1,12) setup (hd2) quitv

Installation sur un disque dur USB

Si tout se passe bien, lordinateur reconnat GRUB au dmarrage suivant, dmarre depuis la cl USB et afche le menu. Si cela ne fonctionne pas, passez en mode interactif avec C et cherchez sous quel nom GRUB reconnat le disque dur. Vous pouvez alors modier la ligne correspondante avec E. Nous avons pour linstant suppos que la seule utilit de la cl USB tait lamorage. Lopration est encore plus difcile lorsquil sagit de dmarrer Linux sur une grosse cl USB ou un disque dur USB. La procdure est identique ce qui prcde, mais le chier initrd doit contenir tous les modules USB ncessaires lutilisation du disque dur. Seules quelques distributions font cela automatiquement. Nous parlerons de la cration de chiers initrd au Chapitre 27.

24.5 GRUB Rsolution de problmes


Que faire lorsque GRUB ne fonctionne pas ? Dans le pire des cas, vous ne pouvez plus dmarrer de systme dexploitation sur votre ordinateur. Cette section rsume quelques astuces qui peuvent vous tirer daffaire. GRUB dmarre, mais si vous choisissez un lment du menu, lordinateur plante. Il est possible que le chier de menu de GRUB contienne des informations errones. Dans ce cas, essayez de saisir les commandes damorage manuellement. Lorsque vous arrivez dmarrer Linux de cette manire, vous pouvez modier le chier de menu. Aprs le dmarrage, GRUB nafche pas de menu, mais une invite de commande. Il ne peut visiblement pas trouver le chier de menu. Vous pouvez dans ce cas dmarrer Linux manuellement avec des commandes GRUB et rinstaller ce dernier depuis Linux. Ce problme vient probablement dune erreur entre linstallation des chiers stage1 et stage2. Il est peu probable que vous russissiez dmarrer votre ordinateur de la manire ordinaire. Vous avez cependant le choix entre les oprations suivantes : dmarrer Linux avec une disquette damorage GRUB ; dmarrer le systme durgence de votre CD dinstallation Linux et rinstaller GRUB ; utiliser un systme "live", comme Knoppix, pour dmarrer un systme et rinstaller GRUB ; restaurer le secteur damorage avec une disquette durgence Windows ou un CD dinstallation de Windows pour pouvoir au moins utiliser Windows.

Les lments du menu de GRUB ne fonctionnent pas GRUB naffiche pas de menu

GRUB plante

472

LINUX

24.6 Options damorage du noyau


Vous pouvez ajouter des options damorage au noyau lorsque vous congurez GRUB. Elles peuvent galement tre saisies au dmarrage de linstallation ou du gestionnaire damorage. La syntaxe gnrale de ces options ressemble ceci :
optionA=parametre optionB=parametre1,parametre2

Les paramtres doivent tre saisis sans espace. Lorsque plusieurs options sont ajoutes, elles doivent tre spares les unes des autres par des espaces. Les adresses hexadcimales doivent tre saisies au format 0x1234. Les nombres sans prxe 0x sont considrs comme des nombres dcimaux.
Notez que les paramtres passs au noyau nont une influence que sur les pilotes directement intgrs au noyau. Les paramtres des modules du noyau doivent tre ajouts au format /etc/modprobe.conf (voir section 25.1). Cette section ne dfinit que les options damorage importantes. Vous trouverez plus de dtails dans man bootparam et dans la documentation du noyau, si celle-ci est installe : /usr/src/linux/Documentation/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 damorage importantes


root=/dev/sdb13. Cette option indique la partition systme de lordinateur. Si la partition est dcrite avec un libell, elle peut tre donne sous la forme root=LABEL=xxx. On peut aussi lindiquer sous la forme root=UUID=n, o n est lUUID de la partition. ro. Cette option indique que le systme de chiers doit tre mont en lecture seule. init. Le programme /sbin/init est automatiquement lanc aprs le dmarrage du noyau. Si ce nest pas ce que vous voulez, vous pouvez lancer un autre programme avec loption init. Par exemple, init=/bin/sh permet de lancer un interprteur de commandes. Attention, le systme de chiers racine est alors mont en lecture seule, le clavier est dispos en QWERTY et la variable PATH nest pas initialise. single ou emergency. Lordinateur dmarre en mode mono-utilisateur. Pour tre prcis, ces options ne sont pas gres directement par le noyau mais, comme toute option inconnue du noyau, passes au premier programme lanc par le noyau (en loccurrence /sbin/init). initrd= ou noinitrd. Ces deux options sassurent que le disque virtuel nest pas charg. Cela peut servir lorsque vous dsirez viter une erreur prsente dans ce chier ou que vous lancez un systme dj install partir du CD-ROM dinstallation. pci=bios|nobios. Cette option dnit si les composants PCI reconnus par le BIOS doivent tre utiliss ou non. Si la reconnaissance automatique du matriel par le noyau choue, pci=bios peut tre utile dans certains cas.

DMARRAGE DU SYSTME

473

pci=nommconf. Cette option dsactive MMCONFIG pour la conguration du PCI. Cela rsout des problmes pour certains systmes PCI Express. quiet. Grce cette option, aucun message ne safche lcran lors du dmarrage du noyau.

Options SMP
SMP (Symmetric Multi Processing) dcrit la capacit du noyau utiliser plusieurs processeurs ou curs de processeurs en mme temps. Si vous rencontrez des problmes, vous pouvez utiliser les options suivantes : maxcpus=1. Cette option limite le nombre de processeurs utiliss 1. La valeur 0 correspond loption nosmp. nosmp. Cette option dsactive les fonctions SMP ; le noyau nutilise quun seul processeur. noht. Cette option dsactive les fonctions HyperThreading des processeurs Pentium 4. nolapic. APIC (Advanced Programmable Interrupt Controller) dcrit un schma pour transmettre les interruptions matrielles au processeur. Sur certains noyaux plus anciens, il ne pouvait tre activ que sur les ordinateurs avec un seul processeur. Si vous avez des problmes avec APIC, utilisez nolapic pour que le noyau ne lactive pas et ne lutilise pas. noapic. Cette option est un peu moins forte que nolapic ; elle ne dsactive que la partie entres/sorties dAPIC. lapic. Cette option active explicitement APIC. Elle est ncessaire lorsque le BIOS dsactive APIC, alors que celui-ci doit tre utilis.

Options APM et ACPI


APM (Advanced Power Management, gestion avance de lnergie) et ACPI (Advanced Conguration and Power Interface, interface avance de conguration et dnergie) sont les principales sources de problmes sur le matriel actuel. Ces systmes sont utiliss pour lallumage et lextinction de lordinateur, mais aussi pour les conomies dnergie sur les ordinateurs portables, la gestion des diffrents modes dhibernation, etc. Voici les options qui permettent de grer APM et ACPI dans le noyau : apm=off|on. Cette option dsactive ou active les fonctions APM du noyau. acpi=off|on. Cette option dsactive ou active les fonctions ACPI du noyau. reboot=bios|hard,warm|cold. Cette option indique comment le redmarrage de lordinateur doit tre effectu. Elle attend deux paramtres. Le premier indique si le redmarrage doit tre effectu par une fonction du BIOS ou non. Le second indique sil faut redmarrer la machine normalement ou la rinitialiser compltement. Dans ce dernier cas, le BIOS est rinitialis, la mmoire teste, etc.

474

LINUX

noresume. Lorsque le noyau prend en charge la fonction dhibernation logicielle, cette option permet dignorer le chier dhibernation lors du redmarrage. Elle savre utile lorsque lordinateur narrive plus sortir dhibernation, par exemple quand le chier dhibernation est corrompu. resume=fichier. Cette option utilise le chier indiqu pour sortir dhibernation.

24.7 InitV
Cette section est consacre InitV et couvre le droulement des oprations entre le dmarrage du noyau et lafchage de linvite de connexion.

Aperu dInitV
Le dmarrage de Linux suit gnralement le processus suivant : 1. GRUB charge et dmarre le noyau. 2. Le noyau dmarre le programme /sbin/init. 3. init lit le chier de conguration /etc/inittab. 4. init dmarre un script pour initialiser le systme. 5. init dmarre le script /etc/rc.d/rc ou /etc/init.d/rc. Le script rc dpend de la distribution. Il sert dmarrer les chiers de scripts qui se trouvent dans /etc/rcn.d ou /etc/ init.d/rcn.d (n est le niveau dexcution, voir ci-aprs). Il actualise galement, sur la plupart des distributions, une barre de progression qui indique la progression du dmarrage. 6. Les scripts de /etc/rcn.d et /etc/init.d/rcn.d lancent divers services du systme, en particulier les fonctions rseau.

Niveau dexcution
Le noyau dmarre comme premier programme /sbin/init. Les options qui ne sont pas prises en compte par le noyau lui sont transmises. Cest ainsi que Linux est dmarr en mode mono-utilisateur. Tous les processus sont dmarrs directement ou indirectement par init. Celui-ci est galement le dernier processus lanc sur lordinateur ; il soccupe de la terminaison correcte de tous les autres processus.
Niveau dexcution sous Fedora, Red Hat et SUSE

Le niveau dexcution dcrit diffrents tats que le systme dexploitation peut prendre. Malheureusement, ces niveaux ne sont pas unis au sein des diverses distributions. Leur signication est gnralement documente dans /etc/inittab. Les niveaux dexcution suivants sont valables pour la plupart des distributions, lexception de Debian et Ubuntu : Niveau 0. Extinction du systme et arrt de lordinateur. Niveau 1 et S. Mode mono-utilisateur. Niveau 2. Mode multi-utilisateur sans rseau et sans NFS.

DMARRAGE DU SYSTME

475

Niveau 3. Mode multi-utilisateur avec rseau, mais sans dmarrage automatique de X. Niveau 4. Ce niveau nest gnralement pas utilis. Niveau 5. Mode multi-utilisateur avec rseau et dmarrage de X. Il sagit gnralement du niveau dexcution par dfaut.
Niveaux dexcution sous Debian et Ubuntu

Niveau 6. Extinction du systme et ramorage de lordinateur. Sur les systmes drivs de Debian, les niveaux dexcution 2 5 sont identiques et lancent un systme multi-utilisateur avec le rseau et X. Le niveau dexcution par dfaut est 2. Le dtail des niveaux dexcution est indiqu dans la liste qui suit : Niveau S. Initialisation du systme directement aprs le dmarrage. Niveau 0. Extinction du systme et arrt de lordinateur. Niveau 1. Mode mono-utilisateur avec rseau. Niveaux 2-5. Mode multi-utilisateur avec rseau et dmarrage automatique de X. Niveau 6. Extinction du systme et ramorage de lordinateur.

Modifier le niveau dexcution


root peut modier le niveau dexcution avec init x lorsque le systme fonctionne. shutdown et Ctrl+Alt+Suppr permettent galement de le modier.
Niveau dexcution par dfaut

Le niveau dexcution par dfaut est gnralement dni par la ligne initdefault dans /etc/ inittab. Dans la plupart des distributions actuelles, le niveau par dfaut est 5 ; sous Debian et Ubuntu, il sagit du niveau 2. Sous Ubuntu, depuis la version 6.10, ce niveau est dni dans /etc/event.d/rc-default. Dans la plupart des distributions, pour dmarrer lordinateur en mode texte, vous devez modier le niveau dexcution par dfaut dans la ligne id:n:initdefault : 3 est le mode texte, 5 le mode avec X. Sous Debian ou Ubuntu, il faut activer ou dsactiver le dmarrage du gestionnaire dafchage 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 .

Dmarrer lordinateur en mode texte ou en mode graphique

Pour dmarrer X nouveau automatiquement, utilisez ces lignes :


root# update-rc.d -f gdm remove root# update-rc.d gdm defaults 30 1

inittab
Le dmarrage du systme est contrl par le chier /etc/inittab. La syntaxe des lignes de inittab est la suivante :
identifiant:niveau:action:commande

476

LINUX

identifiant est un champ de deux caractres qui identie la ligne de manire unique. niveau indique les niveaux dexcution valides pour la ligne. action contient une instruction pour init. command indique quelle commande doit tre lance. La liste suivante recense les mots cls action importants et leur signication. man inittab fournit une liste complte de ces mots cls.
Mots cls de inittab ctrlaltdel initdefault once respawn sysinit wait bootwait indique le comportement dinit lappui des touches Ctrl+Alt+Suppr dfinit le niveau dexcution par dfaut dinit dmarre la commande indique chaque changement de niveau dexcution redmarre la commande lorsquelle est termine dmarre la commande une fois pendant le processus damorage attend la fin de la commande indique dmarre le processus pendant lamorage et attend la fin de la commande

Initialisation du systme
Avant de lancer les services spciques au niveau dexcution, un script dinitialisation du systme est lanc juste aprs le dmarrage de lordinateur. Ce script dpend de la distribution : Debian, Ubuntu Red Hat, Fedora SUSE /etc/init.d/rcS /etc/rc.d/rc.sysinit /etc/init.d/boot

Linitialisation du systme effectue les oprations suivantes : initialiser diverses variables systme (y compris le nom dhte et de domaine) ; activer le systme de chiers /proc ; congurer la date et lheure ; congurer la disposition du clavier pour la console texte ; dmarrer le systme udev ; ventuellement activer les systmes RAID et LVM ; vrier les systmes de chiers ; remonter la partition systme en mode lecture/criture ; monter les partitions ; initialiser les fonctions de base du rseau (uniquement sous Debian et Ubuntu).

Scripts InitV
Une fois le systme activ, le niveau dexcution par dfaut indiqu par /etc/inittab est dmarr. Chaque niveau dexcution a ses propres scripts. Ceux-ci se trouvent, selon la distribution, dans /etc/init.d ou /etc/rc.d/init.d.

DMARRAGE DU SYSTME

477

Nomenclature

Lancer et arrter manuellement des dmons Paramtres des scripts InitV

init dmarre le script /etc/rc.d/rc ou /etc/init.d/rc. Le niveau dexcution est pass rc. Ce dernier lance quelques tches dinitialisation, puis les scripts rcn.d/K* pour terminer tous les processus courants. Enn, les scripts rcn.d/S* permettant de dmarrer les nouveaux processus pour le niveau dexcution souhait sont lancs. Il est donc trs facile dajouter des processus systme InitV : il suft de copier les scripts de dmarrage et darrt dans les bons rpertoires. En pratique, les rpertoires rcn.d ne contiennent pas directement des scripts, mais des liens vers ces derniers. Chaque chier de script est donc unique, mais peut tre utilis dans plusieurs niveaux dexcution et modi de manire centralise. Les liens des rpertoires rcn.d commencent par S ou K. Ces liens pointent vers le mme script. Cependant, le script prendra le paramtre start ou stop selon la lettre par laquelle il commence. Le numro qui suit indique lordre dans lequel les scripts sont lancs. Par exemple, les dmons rseau supposent gnralement quune connexion rseau soit prsente ; le script network doit donc tre lanc avant ces dmons. Vous pouvez lancer les scripts du niveau dexcution manuellement. Par exemple, cette commande arrte le serveur Apache :
root# /etc/init.d/httpd stop

La plupart des scripts comprennent les paramtres suivants : start dmarre le programme. stop termine le programme. status afche ltat du programme (actif ou non). reload est utilis lorsque le chier de conguration doit tre relu sans redmarrer compltement le dmon. restart redmarre le programme.

Processus InitV sous Debian


Le tableau suivant prsente les rpertoires et chiers de conguration dInitV sous Debian.
Fichiers et rpertoires de configuration sous Debian Initialisation du systme Scripts dInit Liens du niveau dexcution Fichiers de configuration
Dmarrer un script InitV

/etc/init.d/rcS, /etc/rcS.d/* /etc/init.d/* /etc/rcn.d/* /etc/default/*

La commande invoke-rc.d permet de lancer manuellement un script InitV :


root# invoke-rc.d samba start root# invoke-rc.d samba stop

478
Grer les liens InitV

LINUX

La commande update-rc.d permet de grer les liens InitV. update-rc.d nom remove supprime tous les liens de dmarrage et darrt du service concern. update-rc.d nom defaults ajoute des liens de dmarrage aux niveaux dexcution 2 5 et des liens darrt aux niveaux dexcution 0, 1 et 6. Reportez-vous man update-rc.d pour plus dinformations ce sujet.

Processus InitV sous Red Hat et Fedora


Le tableau suivant prsente les rpertoires et chiers de conguration dInitV sous Red Hat et Fedora.
Fichiers et rpertoires de configuration sous Red Hat et Fedora Initialisation du systme Scripts dInit Liens du niveau dexcution Fichiers de configuration
Dmarrer un script InitV

/etc/rc.d/rcsysconfig /etc/rc.d/init/* /etc/rc.d/rcn.d/* /etc/sysconfig/*

La commande service permet de lancer manuellement un script InitV :


root# service httpd start root# service httpd stop

Grer les liens InitV

La commande chkconfig permet de grer les liens des niveaux dexcution. chkconfig --list afche tous les scripts, ainsi que les niveaux auxquels ils sont lancs ou arrts. chkconfig --del nom permet de supprimer un script de tous les niveaux dexcution. chkconfig --add ajoute des liens pour un nouveau service tous les niveaux prvus. Cette option ne fonctionne que lorsque le script InitV contient des informations sur ces niveaux. chkconfig --level n nom on|off permet dajouter des scripts de dmarrage ou darrt un niveau donn. man chkconfig est une rfrence de cette commande contenant toutes les informations ncessaires son utilisation.

Processus InitV sous SUSE


Le tableau suivant prsente les rpertoires et chiers de conguration dInitV sous SUSE.
Fichiers et rpertoires de configuration sous SUSE Initialisation du systme Scripts dInit Liens du niveau dexcution Fichiers de configuration
Dmarrer un script InitV

/etc/init.d/boot, /etc/init.d/boot.d/* /etc/rc.d/init/* /etc/rc.d/rcn.d/* /etc/sysconfig/*

Sous SUSE, les scripts lancs normalement par /etc/init.d/nom peuvent galement ltre sous la forme rcnom. Par exemple, rcsmb permet de lancer ou darrter le serveur Samba.

DMARRAGE DU SYSTME

479

Grer les liens InitV

La commande insserv permet dajouter de nouveaux liens vers les scripts InitV. insserv nom lit les commentaires Default-Start et Default-Stop du script qui indiquent quels niveaux dexcution le script doit tre ajout. Pour supprimer ces liens, passez loption -r. man insserv offre une rfrence complte de insserv. De plus, SUSE fournit, pour des raisons de compatibilit, la commande chkconfig. Les commandes -add, -del et -list fonctionnent comme sous Red Hat, mais certaines divergences subsistent sur les autres options. chkconfig appelle insserv.

25

Noyau et modules
Ce chapitre traite du noyau Linux et de ses modules. Ces derniers sont des parties du noyau qui peuvent tre charges lorsquelles sont ncessaires, par exemple lorsquun priphrique est utilis pour la premire fois. La section 25.1 explique le fonctionnement et la gestion des modules du noyau Linux. Rares sont les cas o vous devez imprativement recompiler le noyau. Vous naurez probablement quun module compiler. La section 25.2 traite de la compilation des modules et du noyau, et la section 25.3 de la cration dun chier initrd. Les options damorage du noyau sont quant elles dcrites au Chapitre 24. Ce chapitre sadresse aux utilisateurs avancs de Linux. Les dbutants ont gnralement intrt utiliser le noyau de leur distribution et ninstaller que des paquetages fournis par cette dernire. Nous traiterons ici des noyaux 2.6.

25.1 Modules du noyau


Le noyau gre les fonctions lmentaires du systme, comme la gestion de la mmoire et des processus, laccs aux disques durs et aux cartes rseau, etc. Il est de plus modulaire : le noyau lanc lamorage ne contient que les fonctions ncessaires au dmarrage de lordinateur. Lorsquune fonction supplmentaire est requise (par exemple, pour du matriel spcial), le code ncessaire est li au noyau en tant que module. Lorsque cette fonction nest plus utilise pendant quelque temps, le module peut tre supprim du noyau. Ce concept modulaire prsente plusieurs avantages : Les modules peuvent tre lis la demande. Lorsquun module est peu utilis, la mmoire correspondante peut tre conomise ; le noyau nest pas plus gros que ncessaire et adapt au matriel de lutilisateur. Lorsque le matriel prsent est modi (ajout dune nouvelle carte rseau, par exemple), le noyau ne doit pas tre recompil ; il suft dajouter le module ncessaire. Toutes les distributions courantes sont bases sur ce concept. Lorsquun nouveau module du noyau est dvelopp, il ne faut pas forcment redmarrer lordinateur chaque modication. Il suft de recompiler le module, qui peut tre test directement. Les fabricants de matriel peuvent fournir des modules binaires pour leurs priphriques sans fournir le code. Cela entrane un certain nombre dinconvnients (voir Chapitre 22). Le composant kmod du noyau fait en sorte que les modules du noyau soient chargs automatiquement ds quils sont ncessaires. Il est contrl par /etc/modprobe.conf. Nous parlerons plus en dtail de ce chier dans ce qui suit.

Charger automatiquement des modules

482
Le noyau et les modules doivent correspondre

LINUX

Versionnage de modules

Jusquau noyau 2.6.15, les versions du noyau et de ses modules doivent tre identiques. On ne peut pas charger un module compil pour une autre version du noyau. Cest pourquoi chaque version a son propre rpertoire 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 dpendance de versions pose souvent problme. Depuis le noyau 2.6.16, le mcanisme de module versioning (versionnage de modules) est une amlioration signicative. Le module enregistre des informations supplmentaires qui indiquent sil peut fonctionner avec une version diffrente du noyau. Cela permet galement dutiliser des modules qui ne correspondent pas la version du noyau. Cependant, ce mcanisme ne fonctionne que lorsque loption module versioning a t active lors de la compilation du noyau et que linterface du noyau na pas t modie entre la version du noyau et celle du module. Le mcanisme de module versioning peut galement tre dcrit sous les noms kernel symbol versions ou modversions.

Commandes de gestion des modules


Toutes les distributions courantes sont congures de manire charger automatiquement les modules ncessaires. Par exemple, si vous montez avec mount une partition Windows de votre systme, le module ntfs ou vfat, qui sert lire ce systme de chiers, est charg. Par consquent, la gestion des modules est en gnral automatique et transparente, sans que vous ayez utiliser les commandes que nous allons dcrire. Celles-ci sont cependant utiles pour charger un module manuellement si le besoin sen fait sentir. Tous les modules se trouvent dans le rpertoire /lib/modules/n. n est la version du noyau en cours de fonctionnement. Les modules ont lextension *.ko. La commande uname -r afche le numro de version du noyau courant :
utilisateur$ uname -r 2.6.24-16-generic

Connatre la version de son noyau Charger des fichiers de modules

insmod intgre le module indiqu dans le noyau. Cette commande prend pour argument le nom complet du chier. Vous pouvez aussi passer des options au module. Si vous indiquez des valeurs hexadcimales, vous devez les prxer de 0x.
root# insmod /lib/modules/2.6.24-16-generic/kernel/fs/fuse/fuse.ko

insmod -f tente de charger le module mme lorsquil ne correspond pas la version courante du noyau. Le fonctionnement effectif de cette opration dpend de la compatibilit intrinsque entre le noyau et le module. Gnralement, on ne charge pas les modules avec insmod, mais avec modprobe. Cette commande prsente deux avantages. Dune part, elle cherche elle-mme le module insrer ; il suft dindiquer le nom du module. Dautre part, elle charge galement tous les modules utiliss par le module souhait. De plus, toutes les options du module indiques dans /etc/ modprobe.conf sont prises en compte. modprobe demande cependant une conguration correcte des modules (modprobe.conf et modules.dep).
root# modprobe fuse

NOYAU ET MODULES

483

Liste des modules chargs

La commande lsmod afche une liste (normalement assez longue) de tous les modules intgrs dans le noyau au moment o elle est excute.
root# lsmod | sort ac acpi_cpufreq aes_i586 af_packet agpgart ... fuse ... 6916 10796 33536 23812 34760 50580 0 1 0 12 3 drm,intel_agp 3

Supprimer un module

rmmod supprime le module indiqu du noyau et libre la mmoire correspondante. Cette commande ne fonctionne que lorsque le module nest plus utilis. rmmod -a supprime tous les modules non utiliss du noyau.
root# rmmod fuse

Afficher des informations sur un module

modinfo afche des informations sur un module. Celui-ci ne doit pas ncessairement se trouver dans le noyau. Lexemple suivant afche les donnes pour le module e1000, qui est un pilote pour les cartes rseau 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 dsirez monter une partition dans le systme de chiers et que cela implique lutilisation dun format de systme de chiers jusqualors inutilis, le module de ce systme 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 rseau est automatiquement charg pendant linitialisation des fonctions rseau.

484

LINUX

Pour que tout cela fonctionne, divers mcanismes de conguration sont mis en uvre : Modules au dmarrage de lordinateur. Certains modules sont utiliss ds le dmarrage de lordinateur (par exemple, ceux qui servent accder aux systmes de chiers). Lorsquils ne font pas partie intgrante du noyau, ils doivent tre fournis au noyau sous la forme dun disque virtuel initrd par le chargeur damorage ds le dmarrage. Modules de base. Les modules de gestion de base des composants USB, Firewire ou PCMCI sont directement chargs par divers scripts du processus InitV grce modprobe grep modprobe /etc/init.d/* donne un aperu rapide des modules chargs de cette manire. Modules dinterface. Diffrents modules sont ensuite chargs lorsquune interface donne est utilise pour la premire fois. Cela peut poser des problmes, car certaines interfaces correspondent plusieurs modules. Par exemple, lorsque vous utilisez linterface eth0 pour la premire fois, il faut charger le module correspondant la carte rseau. Comme le noyau ne peut pas le deviner, il faut ajouter cette information au chier de conguration de modules /etc/modprobe.conf. Nous parlerons plus en dtail de ce chier de conguration la prochaine section. Ce chier est particulirement important, car cest lun des rares endroits o la conguration doit tre adapte votre matriel. Dans la plupart des cas, cette adaptation est gre par les outils de conguration de votre distribution. Pour les composants trs rcents ou exotiques, il arrive cependant que vous deviez modier ce chier manuellement. La gestion des priphriques par le systme udev charge galement les modules lorsquils sont ncessaires. Vous trouverez les rgles correspondantes dans /etc/udev/rules.d. Modules pour les cartes PCMCIA, les priphriques USB et Firewire, etc. Ces priphriques ont un rle particulier. Plusieurs chiers *.map dans /lib/modules/version_du_noyau diffrencient ces composants en fonction dun identiant et chargent le module correct.
Modules non GPL (Ubuntu)

La plupart des distributions ne fournissent que des modules dont le code source est conforme la GPL. Ubuntu fait exception et fournit des modules de diffrents pilotes matriels qui contiennent du code binaire de divers fabricants (ATI, AVM et NVIDIA, par exemple). Ces modules sont regroups dans le paquetage linux-restricted-modules-arch et installs dans le rpertoire /lib/linux-restricted-modules. Le script InitV linux-restricted-modules-common appelle le script lrm-manager pendant le dmarrage de lordinateur. Ce script cre un systme de chiers temporaire dans le rpertoire /lib/modules/version_du_noyau/volatile. Ce systme contient des copies de tous les modules qui ne se conforment pas la FPL et depmod est lanc sur ce rpertoire. Ces tapes assurent une utilisation sans problme des modules. Pour dsactiver certains modules du paquetage, indiquez leur nom dans la variable DISABLED_MODULES de /etc/default/linuxrestricted-modules-common.

Dpendances entre modules (modules.dep, modules*.map)


Certains modules dpendent les uns des autres. Par exemple, le module nfs du systme de chiers NFS ne fonctionne que lorsque les modules lockd, nfs_acl et sunrpc sont chargs. De telles dpendances sont enregistres de manire centrale dans le chier /lib/modules/n/ modules.dep.

NOYAU ET MODULES

485

depmod

Si ce chier nexiste pas encore ou sil est incomplet (par exemple, aprs la compilation dun nouveau module), vous devez le crer ou lactualiser avec la commande depmod. Celle-ci examine les symboles dnis et utiliss dans les modules. Elle cre quelques chiers *.map pour faire la correspondance entre diffrents composants matriels et les modules ncessaires. Les chiers *.map sont ncessaires pour le branchement chaud des priphriques. Par exemple, lorsque vous branchez un nouveau priphrique USB, le module ncessaire sa prise en charge peut tre dtect automatiquement grce un code didentication. Les chiers modules.dep et *.map sont normalement crs pendant linstallation des modules. Il est donc rarement ncessaire de lancer depmod manuellement.

Paramtres des modules et ordre des priphriques


Pour que le module correct soit charg la premire fois quune interface est active, le noyau prend en compte de nombreux paramtres dnis dans les modules et le paquetage modutils pour depmod, et enregistrs dans modules.dep et modules*.map. Les paramtres correspondants sont en gnral enregistrs dans le chier /etc/modprobe.conf et les chiers du rpertoire /etc/modprobe.d. Les diffrentes distributions ont chacune leurs particularits. modprobe.conf nexiste pas. Les paramtres sont enregistrs dans les chiers du rpertoire modprobe.d. modprobe.conf ne contient que quelques paramtres spciques lordinateur. Le chier / etc/modprobe.d/modprobe.conf.dist contient une liste plus longue avec les paramtres par dfaut de la distribution. modprobe.conf contient une liste interminable de paramtres, dont la plupart sont valides par dfaut. Les modications doivent tre effectues dans modprobe.conf.local.

Debian, Ubuntu Red Hat, Fedora

SUSE

Syntaxe de modprobe.conf
Cette section dcrit les mots cls importants de modprobe.conf et des chiers de modprobe.d/. Vous trouverez plus de dtails dans man modprobe.conf. Les instructions alias indiquent quel module du noyau doit tre utilis pour quel priphrique. Par exemple, le priphrique /dev/eth0 est associ au module 8139too :
alias eth0 8139too

alias

On accde gnralement des composants matriels grce aux priphriques bloc et caractre /dev/xxx. Du point de vue du noyau, ces chiers ne sont pas caractriss par leur nom, mais par leurs numros de priphriques majeur et mineur. De nombreuses instructions alias font la correspondance entre les numros de priphriques et les modules. Les deux exemples suivants montrent que les priphriques bloc ayant le numro majeur 2 doivent charger le module floppy. De mme, les priphriques caractre ayant le numro majeur 6 doivent charger le module lp.
alias block-major-2 floppy alias char-major-6 lp

486

LINUX

La dnition des protocoles rseau est similaire. Pour utiliser un protocole donn, le noyau cherche une famille de protocoles nomme net-pf-n. Dans lexemple suivant, le module AppleTalk est utilis pour la famille de protocoles 5 :
alias net-pf-5 appletalk

Lorsque vous navez pas besoin de ce protocole (ou si vous navez pas install le module correspondant), linstruction suivante supprime des messages derreur :
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 loption io=0x300 :
options ne io=0x300

include install

Les instructions include chargent des chiers de conguration supplmentaires. Les instructions install permettent de lancer des commandes, plutt que de charger simplement le module. Lexemple suivant est partag en deux lignes pour des raisons de place. Lorsque le module ALSA snd est utilis, ces commandes doivent tre lances :
install snd modprobe --ignore-install snd $CMDLINE_OPTS && \ { modprobe -Qb snd-ioctl32;:; }

remove blacklist

remove permet de lancer des commandes lorsquun module doit tre supprim. Les instructions blacklist indiquent que les dnitions de modules ne doivent pas tre utilises et se trouvent gnralement dans le chier /etc/modprobe.d/blacklist. Celui-ci contient la liste des modules qui ne doivent pas tre chargs, pour des raisons de compatibilit ou parce quune meilleure alternative existe. Dans cet exemple, usbmouse nest pas charg ; en gnral, hid est utilis la place.
blacklist usbmouse

Exemple de fichier modprobe .conf

Le chier modprobe.conf diffre largement dune distribution une autre. Des chiers de conguration courts sappuient souvent sur les paramtres de base de /lib/modules/n.n/ module.alias et modules.symbols. Ce chier rete la conguration matrielle individuelle et est modi par la distribution. Il est gnralement minimal. Les lignes suivantes montrent la conguration de lune de mes machines de test sous Fedora 7. Elles correspondent deux cartes rseau (Ethernet et Wi-Fi), au contrleur 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

NOYAU ET MODULES

487

Compiler un module supplmentaire


Pour utiliser VMware, pour exploiter les pilotes binaires dATI ou de NVIDIA, ou si vous avez besoin dun module spcique votre matriel qui nest pas prsent dans votre distribution, vous devez compiler un module qui correspond au noyau courant. En gnral, un script (par exemple, vmware-config.pl ou le script dinstallation de vos pilotes) mne bien cette tche. Cependant, certains prrequis doivent tre remplis, comme pour compiler un noyau complet. Vous devez tout dabord installer les outils de dveloppement (en particulier, le compilateur C gcc, ainsi que make) dans une version sufsamment actuelle. Vous avez galement besoin des chiers den-tte du noyau courant. Ces derniers font partie du code du noyau. Pour de nombreuses distributions, les chiers den-tte et le reste du code se trouvent dans deux paquetages spars. Cela permet de ne pas avoir installer lensemble du code lorsque vous navez besoin que des chiers den-tte. Les paquetages de chiers den-tte ont les noms suivants et sont installs dans les rpertoires indiqus : 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-mme votre noyau, les chiers den-tte sont installs dans le rpertoire /lib/modules/n.n/build/include.

Outils de dveloppement Fichiers den-tte du noyau

25.2 Configurer et compiler son propre noyau


Un utilisateur classique ne doit gnralement pas compiler son noyau. Toutes les distributions actuelles fournissent par dfaut un noyau utilisable et de nombreux modules. Voici cependant quelques raisons qui peuvent vous amener recompiler un noyau : Vous voulez apprendre mieux connatre votre systme. Vous avez besoin de fonctionnalits qui ne sont pas intgres au noyau et qui ne sont pas fournies en tant que module (par exemple, les fonctions rseau). Vous dsirez utiliser une version plus rcente du noyau que celle fournie par votre distribution. Vous souhaitez ajouter un correctif votre noyau. Les correctifs servent prendre en charge du matriel trs rcent ou utiliser de nouvelles fonctions, sans pour autant utiliser un noyau en cours de dveloppement. Vous aimeriez prendre part au dveloppement du noyau et exprimenter les noyaux en cours de dveloppement. Vous avez envie de pouvoir dire votre entourage que vous avez compil vous-mme le dernier noyau Linux !

488
Obstacles la compilation du noyau

LINUX

Il existe cependant des arguments lencontre de la compilation dun noyau personnalis : La plupart des distributions nutilisent pas le noyau original tel que fourni par Linus Torvalds et la communaut, mais une version modie avec diverses fonctions supplmentaires chaque distribution utilise videmment ses propres correctifs. En soi, cest plutt une bonne chose pour les utilisateurs : ils peuvent ainsi bncier des fonctions supplmentaires que le mainteneur de la distribution considre comme stables. Cependant, les noyaux originaux du serveur FTP de kernel.org ne disposent pas de ces correctifs. Certains lments de votre distribution peuvent alors ne plus fonctionner ou poser certains problmes. La compilation dun noyau nest pas difcile. En revanche, la conguration de cette compilation lest. Le noyau a plus de 100 options. Celles-ci inuent sur les fonctions intgres au noyau, sur les modules compils et sur les options qui ne doivent pas tre mises disposition. Si vous prenez de mauvaises dcisions pour certaines de ces options, les fonctions correspondantes peuvent refuser de vous obir et il peut tre difcile de trouver lorigine du problme. Il est cependant pratiquement impossible pour un dbutant sous Linux de deviner toutes les options correctement.

Installer les paquetages ncessaires


Outils de dveloppement

Vous pouvez installer les outils de dveloppement (gcc, make, etc.) paquetage par paquetage, mais la plupart des distributions effectuent une section de paquetages ou fournissent un mtapaquetage qui installe tous les paquetages ncessaires. En voici un rsum : Debian, Ubuntu Red Hat, Fedora SUSE mtapaquetage build-essential groupe Dveloppement groupe Dveloppement

Pour faciliter et automatiser la compilation de noyaux ou de modules sous Debian ou Ubuntu, vous pouvez considrer les paquetages kernel-package et module-assistant . Ils fournissent des scripts qui facilitent certaines oprations.
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 "dveloppeurs" (2.3.n, 2.5.n). Ce schma a chang avec le noyau 2.6. Il nexiste plus de branche 2.7.n de dveloppement ; tous les dveloppements sont effectus directement dans la branche 2.6. Le code du noyau se trouve gnralement dans le rpertoire /usr/src/linux. Vous pouvez choisir dinstaller le code de votre distribution ou le code ofciel. Pour le code du noyau de votre distribution, installez les paquetages suivants : Debian, Ubuntu Red Hat, Fedora SUSE linux-source-n.n paquetage de code source de kernel-n.n kernel-source

NOYAU ET MODULES

489

Pour rcuprer une version du noyau qui nest pas fournie par votre distribution (par exemple, la version la plus rcente), vous devez vous rendre sur le site www.kernel.org, qui indique quelle est la dernire version stable du noyau et o la tlcharger.

Configurer le noyau
Le noyau se compose de milliers de fonctions. Avant la compilation, vous pouvez dcider du devenir de chacune delles : doivent-elles tre intgres directement au noyau, compiles en tant que modules ou ne pas tre mises disposition ? Cette opration sappelle congurer le noyau.
Noyau monolithique ou modulaire

Vous devez principalement choisir entre un noyau monolithique ou modulaire. Les noyaux monolithiques contiennent tous les pilotes ncessaires directement dans le noyau et ne prennent pas en charge les modules. Les noyaux modulaires peuvent prendre en compte des modules et sont, dans presque tous les cas, le bon choix. Pour la plupart des composants, vous avez le choix entre trois options : Yes, Module et No. Yes signie que le composant est intgr directement au noyau, Module quil est compil en tant que module, et No quil ne sera pas compil. La conguration du noyau se trouve dans le chier .config la racine des sources du noyau. Il sagit dun chier texte assez long qui contient une liste de composants et le choix effectu prcdemment pour chacun deux (y, m ou n). Il nest gnralement pas modi manuellement, mais laide des outils suivants : make config fonctionne toujours, mais est trs pnible utiliser et nest pas conseill. Vous devez en effet passer toutes les options, y compris lorsque vous souhaitez nen modier que quelques-unes. make menuconfig ncessite que ncurses-devel soit install. Il sagit dune interface en mode texte, mais les diffrentes options sont structures dans des menus et non listes les unes la suite des autres. make xconfig ncessite que X soit lanc et que le paquetage qt3-devel ou qt4-devel soit install. make compile linterface graphique et la lance. make gconfig est le pendant GTK de make xconfig. Diverses bibliothques de dveloppement de Gnome doivent tre installes (entre autres, libgtk2-devel et libglade2devel). Tous ces outils de conguration permettent dafcher une aide en ligne pour savoir quoi correspondent les diffrentes options.

Choix des composants

Outils de configuration

Reprendre une configuration existante

Vous pouvez souvent reprendre la conguration dun noyau existant et lutiliser comme base pour votre nouveau noyau. Pour cela, copiez le chier .config de lancien noyau dans larborescence du nouveau et lancez la commande make oldconfig. Les options du nouveau noyau qui ntaient pas prsentes dans la conguration existante seront alors proposes, de manire comparable make config. Le succs de cette opration nest pas garanti (surtout si les deux versions sont trs diffrentes), mais le temps ncessaire la conguration du noyau est si faible que cela vaut gnralement la peine dessayer.

490

LINUX

Si votre noyau a t compil avec les bonnes options, le chier /proc/config.gz contient le chier .config du noyau courant. Certaines distributions installent galement le chier de conguration du noyau dans /boot paralllement au noyau.

Compiler et installer le noyau


Une fois la conguration du noyau acheve, il est temps de passer la compilation. Attention, cest une opration assez longue et coteuse en place disque.
root# cd /usr/src/linux-n.n root# make all root# make modules_install

Installer le noyau

Le rsultat de ces commandes est une image bzImage dans le rpertoire /usr/src/linuxn.n/arch/i386/boot. La taille du chier varie entre 1 et 2 Mo, selon le nombre de fonctions que vous avez intgres au noyau. make modules_install copie les modules lendroit o insmod les attend. Le noyau frachement compil nest pas encore actif ! Vous devez le copier dans un endroit accessible GRUB et ajouter un lment au menu :
root# mv /usr/src/linux-n.n/arch/i386/boot/bzImage /boot/vmlinuz-n.n

Pour modier GRUB, le plus simple est gnralement de copier llment existant et de modier cette copie pour ladapter au nouveau noyau. Ne remplacez pas le noyau courant, ni sa conguration : il se peut que votre noyau ne fonctionne pas du premier coup. Il est alors intressant de pouvoir revenir lancienne version.

25.3 Crer un fichier initrd


Dans le menu GRUB, la plupart des lments indiquent deux chiers : le noyau Linux et le chier initrd qui lui correspond. Ces deux chiers se trouvent gnralement dans le rpertoire /boot, mais leur nom varie selon la distribution. initrd contient tous les modules dont le noyau a besoin pour accder au systme de chiers. GRUB cre un disque virtuel pour mettre ce chier disposition du noyau. En gnral, initrd contient un module pour le pilote du systme de chiers de la partition systme. Si votre partition se trouve sur un disque SCSI, initrd doit galement contenir le pilote de votre carte SCSI. Si votre partition racine est installe dans un systme LVM ou RAID, des pilotes supplmentaires sont prvoir.
Le fichier initrd nest pas obligatoire. Si votre noyau contient tous les composants ncessaires au processus damorage, le dmarrage fonctionne sans initrd. Le noyau doit cependant tre compil de cette manire.

Le chier initrd doit correspondre exactement la version du noyau. Il faut donc recrer un chier initrd chaque fois que lon compile un noyau.

NOYAU ET MODULES

491

mkinitramfs

Sous Debian et Ubuntu, le script mkinitramfs sert crer le chier initrd. La conguration de base se trouve dans /etc/initramfs-tools/initramfs.conf, ainsi que dans les chiers du rpertoire /etc/initramfs-tools/conf.d. initrd contient tous les modules du chier /etc/ initramfs-tools/modules (un module par ligne). Vous pouvez ensuite gnrer initrd :
root# mkinitramfs -o myinitrd 2.16.13-10-i686

mkinitrd (Red Hat, Fedora)

Pour plus dinformations ce sujet, reportez-vous man mkinitramfs. Sous Fedora et Red Hat, cest le script mkinitrd qui permet de crer le chier initrd, qui contient tous les modules ncessaires pour accder la partition systme. Les modules qui ne sont pas automatiquement reconnus par le programme doivent tre ajouts avec loption --with=nom_du_module. Vous trouverez plus doptions pour la commande mkinitrd dans man mkinitrd. Cette commande cre un disque virtuel qui permet daccder un systme de chiers reiserfs :
root# mkinitrd --with=reiserfs /boot/initrd-2.6.16-1.2111_FC5.img \ 2.6.16-1.2111_FC5

mkinitrd (SUSE)

La commande mkinitrd fonctionne diffremment sous SUSE et Red Hat. Normalement, vous ne devez passer aucun paramtre mkinitrd sous SUSE. mkinitrd cre automatiquement un chier initrd pour tous les noyaux quil trouve dans le rpertoire /boot. Les nouveaux chiers sont nomms /boot/initrd-nnn, o nnn est la version du noyau. mkinitrd examine la variable INITRD_MODULES du chier /etc/sysconfig/kernel. Celle-ci contient tous les modules lancer ds lamorage et ressemble ceci :
INITRD_MODULES="via82cxxx processor thermal fan jbd ext3"

Voir le contenu dun fichier initrd

Pour examiner le contenu dun chier initrd, lancez les commandes suivantes :
root# root# root# root# root# root# root# cd /boot cp initrd-n.n initrd-test.gz gunzip initrd-test mkdir test cd test cpio -i < ../initrd-test.gz ls -lR

PARTIE 5 CONFIGURATION RSEAU ET SERVEUR

26

Configurer laccs rseau (rseau local, Wi-Fi)


Ce chapitre dcrit comment connecter un ordinateur Linux un routeur (ADSL), un rseau local (LAN ou Local Area Network) ou un rseau sans l (Wi-Fi), et ce qui se passe en coulisse de cette procdure. Lorsque tout fonctionne, la conguration du rseau local ou sans l ne prend quune deux minutes. Bien souvent, la conguration a lieu (avec succs) lors de linstallation. Ce chapitre se focalise donc davantage sur les bases : quoi servent les adresses IP ? Comment tester les fonctionnalits rseau ? De quels moyens dispose-t-on pour identier les erreurs ? Dans le cadre dun rseau sans l, lintgration au rseau nest pas tout : la connexion doit galement tre sre. Le meilleur chemin vers une scurit accrue consiste mettre en place un rseau priv virtuel (VPN ou Virtual Private Network). Ce chapitre part du principe que vous souhaitez connecter votre ordinateur Linux un rseau local prexistant. Si vous devez congurer vous-mme la connexion Internet, le prochain chapitre vous fournira les informations ncessaires (PPP, modem, ADSL). Si vous envisagez dutiliser votre ordinateur non pas en tant que client, mais en tant que serveur au sein dun rseau local, vous trouverez des informations dtailles sur ce sujet au Chapitre 28.

26.1 Bases rseau


Dans cette section, nous aborderons les bases et les rouages internes de la conguration rseau. Les informations donnes ici valent non seulement pour la connexion un rseau local, mais galement pour la conguration Wi-Fi, ADSL ou modem tlphonique.

Glossaire
TCP/IP

Tous les systmes dexploitation existants prennent en charge TCP/IP en tant que protocole rseau. Celui-ci rgit les communications entre ordinateurs, aussi bien sur un rseau local (LAN, intranet) que sur Internet. Pour cette raison, de nombreux services rseau nont aucun besoin de savoir si lordinateur cible se trouve cinq mtres du serveur et sur le mme rseau local, ou sil se trouve au Japon. Dans le second cas, la vitesse de transfert sera simplement moins leve. Le protocole IP (Internet Protocol) constitue la base pour le protocole TCP (Transmission Control Protocol). TCP/IP gre donc conjointement deux tches : il identie chaque ordinateur par le biais dun numro unique (adresse IP) et se charge de vrier que les donnes devant tre mises lattention dune adresse particulire lui parviennent effectivement. Ces donnes sont transmises sous la forme de petits paquets.

494

LINUX

Mme si votre ordinateur ne fait pas partie dun rseau et que vous ne possdez ni connexion rseau ni modem, vous aurez quand mme besoin des fonctionnalits TCP/IP ! De nombreux programmes Linux utilisent en effet ce protocole pour leurs communications internes. Pour cette raison, linterface loopback doit dans tous les cas tre installe (voir plus bas). Cest le cas par dfaut sur toutes les distributions.
UDP et ICMP

Ports

PPP

Nom dhte et nom de domaine

Outre TCP, il existe deux autres protocoles jouant un rle important sur Internet : UDP et ICMP. UDP est lacronyme dUser Datagram Protocol. Il permet de transmettre les paquets de faon non able. "Non able" signie dans ce contexte que lmetteur et le destinataire ne sont pas connects en permanence lun lautre pour changer des informations sur les paquets transmis. Avec UDP, il est donc possible que des paquets narrivent pas du tout destination, ou dans le dsordre par rapport leur ordre denvoi. Cest le rle du destinataire (et non du protocole) de vrier lintgrit des donnes. UDP possde lavantage, par rapport TCP, dtre plus efcace pour certaines applications du fait de la faible charge quil occasionne et quil permet des temps de raction plus courts. Il est par exemple utilis pour les services DNS et NFS. ICMP est lacronyme dInternet Control Message Protocol. Il est conu non seulement pour lchange de donnes entre programmes mais galement pour la transmission de codes de contrle et derreur pour TCP/IP. ICMP est par exemple utilis par loutil ping. Chaque paquet IP est class suivant un numro de port. Ceci permet dordonnancer plus facilement les paquets au niveau du destinataire. La plupart des applications Internet (WWW, FTP, E-mail, etc.) se voient attribuer un numro de port propre. Lorsque la connexion Internet intervient, non pas travers linfrastructure dun rseau local mais directement par le biais dun modem ou dune carte RNIS, cest le protocole PPP (Point-to-Point Protocol) qui entre en jeu. Il permet de transmettre les donnes TCP/IP sur une ligne tlphonique, par RNIS ou par ADSL. PPP peut galement tre utilis pour la mise en place des rseaux privs virtuels (VPN). Les adresses IP (voir ci-aprs) sont certes pratiques pour les ordinateurs, mais elles sont peu commodes pour les tres humains. Pour cette raison, lordinateur peut aussi tre identi par la combinaison de son nom dhte et du nom de domaine. Le nom dhte est le nom effectivement attribu lordinateur. Le nom de domaine dcrit la portion de rseau dans laquelle on peut accder lordinateur. Le nom de domaine peut galement comprendre plusieurs sections. Au sein dun rseau local, les noms dhte et de domaine servent principalement daidemmoire pour les utilisateurs. Ainsi, mes ordinateurs de test sont nomms suivant les plantes de notre systme solaire (par exemple jupiter), tandis que le domaine associ est sol. Le nom complet rsultant est donc jupiter.sol.
Il faut viter dutiliser comme nom dhte le fabricant de lordinateur, son propritaire, le nom dun projet, etc. car cela peut conduire une certaine confusion. Utilisez des noms courts et faciles retenir, correspondant des animaux, des plantes, des rivires ou tout autre domaine de votre choix. Les caractres spciaux ne sont pas autoriss. Nutilisez jamais localhost en tant que nom dhte ! Ce nom possde une signification particulire : il sert de nom pleinement qualifi (fully qualified). Il est toujours affect ladresse 127.0.0.1 de linterface loopback, indpendamment de tout autre paramtre de la configuration rseau.

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

495

Adresses IP

Adresse MAC

Interface

Nom dinterface

Interface loopback

Masques de sous-rseau, adresse rseau, adresse de broadcast

Vous avez moins de marge de manuvre sur le choix du nom de domaine. Celui-ci doit correspondre aux noms de domaines dj utiliss au sein du rseau. Ce nest que lorsque vous mettez en place un nouveau rseau 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 auprs dun fournisseur daccs Internet ou dun bureau denregistrement NIC (Network Information Center), par exemple auprs de lAFNIC (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. Les adresses IP servent identier de faon univoque un ordinateur au sein dun rseau. 192.168.0.75 est par exemple une adresse IP typique pour un ordinateur du rseau local. Vous trouverez davantage dinformations sur les adresses IP un peu plus loin dans ce chapitre. Ladresse MAC (Media Access Control) est un numro didentiant univoque que possde chaque contrleur Ethernet. Ladresse MAC permet didentier le contrleur rseau avant mme que lui soit affecte une adresse IP. Ladresse MAC est en particulier utilise par le protocole DHCP (voir Chapitre 28). Ladresse IP dcrit non pas un ordinateur mais une interface IP. Un ordinateur possde souvent plusieurs interfaces, chacune dote dune adresse IP diffrente. Sur un ordinateur, on retrouve gnralement linterface loopback (127.0.0.1, voir ci-aprs), une ou plusieurs interfaces Ethernet, ainsi quune ventuelle interface PPP pour laccs Internet par modem, RNIS ou ADSL. Lorsque lon parle de ladresse IP (comme sil nen existait quune), on fait alors gnralement rfrence ladresse permettant daccder lordinateur au sein du rseau local ou dInternet. En rgle gnrale, il sagit de ladresse IP de linterface Ethernet laquelle sont affects les noms dhte et de domaine, et qui est unique au sein du rseau local. En interne Linux, toutes les interfaces rseau se voient attribuer un nom. Des noms typiques sont par exemple lo pour linterface loopback, eth0, eth1, etc. pour les interfaces Ethernet et pppn pour les interfaces PPP. Linterface loopback joue un rle particulier : elle permet dutiliser le protocole rseau pour les services locaux et donc pour la communication interne lordinateur. Cela peut sembler absurde, mais cest obligatoire pour de nombreuses commandes lmentaires de Linux. En effet, celles-ci basent leurs communications sur le protocole rseau, et ce que les donnes restent sur lordinateur local ou quelles soient transmises destination dun ordinateur distant sur le rseau. Un exemple de ce fonctionnement est le systme dimpression CUPS, qui traite les tches dimpression aussi bien locales quen provenance dautres ordinateurs sur le rseau. Ladresse IP rserve pour linterface loopback est 127.0.0.1. Toutes les distributions grent automatiquement la conguration de linterface loopback, mme si aucune conguration rseau nest effectue par ailleurs. Ltendue dun rseau local est exprime par deux ou trois masques. Il sagit pour chaque masque de quatre groupes de chiffres, utiliss en interne comme motif binaire pour les adresses IP. Lorsque le rseau local comprend toutes les adresses 192.168.0.n, le masque de sous-rseau correspondant est 255.255.255.0, ladresse rseau, 192.168.0.0 et ladresse de broadcast (ou adresse de diffusion), 192.168.0.255. Dans de nombreux outils de conguration,

496

LINUX

vous navez pas besoin de renseigner ladresse de broadcast dans la mesure o celle-ci est calcule partir des deux autres adresses fournies. Le rseau rsultant est alors dcrit comme 192.168.0.0/255.255.255.0 ou, plus brivement, 192.168.0.0/24 (cette seconde notation fournit le nombre de valeurs binaires 1 dans le masque de sous-rseau). Deux ordinateurs dadresses IP 192.168.0.71 et 192.168.0.72 peuvent donc communiquer directement lun avec lautre sur ce rseau (parce que les adresses IP correspondent au domaine dni par le masque de sous-rseau). Le nombre maximal dordinateurs pouvant communiquer entre eux dans ce rseau est de 254 (correspondant aux adresses .1 .254, les adresses .0 et .255 tant rserves).
Passerelle

Une passerelle (gateway) est un ordinateur constituant une interface entre deux rseaux (bien souvent, entre le rseau local et Internet). Pour que votre ordinateur Linux, situ sur le rseau local, puisse accder Internet, vous devez fournir ladresse de la passerelle la conguration. Ladresse de la passerelle dcrit donc un ordinateur du rseau local (par exemple 192.168.0.1). Cet ordinateur possde une position particulire dans la mesure o il est galement connect (par exemple par une liaison ADSL) Internet. Le trac Internet de lensemble du rseau local transite donc par la passerelle. Un serveur de noms est un programme traduisant les noms des ordinateurs ou les adresses Internet (par exemple www.yahoo.fr) en adresses IP. Sur les petits rseaux, la correspondance entre nom et adresse seffectue bien souvent par le biais dun tableau (le chier /etc/ hosts). Sur Internet, ce sont des ordinateurs dots des bases de donnes appropries qui grent cette tche. Pour dcrire un serveur de noms, on utilise galement labrviation 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 ladresse IP du serveur web correspondant. Ce nest quaprs la russite de cette opration quune connexion peut tre tablie avec ladresse IP en question. Le protocole DHCP (Dynamic Host Conguration Protocol) est frquemment utilis au sein des rseaux locaux pour centraliser ladministration du rseau. Plutt que congurer individuellement, sur chaque ordinateur, ladresse IP, la passerelle, le serveur de noms, etc., un ordinateur est congur comme serveur DHCP (voir Chapitre 28). Tous les autres postes du rseau local prennent contact, lamorage, avec le serveur DHCP pour en obtenir les paramtres utiliser pour le rseau. La conguration des clients est donc rduite sa plus simple expression.

Serveur de noms

DHCP

Adresses IP
Nous avons dj mentionn que les adresses IP servent lidentication des ordinateurs au sein dun rseau. Cela vaut aussi bien pour le rseau local que pour Internet. Cette section fournit des informations de base sur lutilisation des adresses IP. En thorie, il existe 2564 adresses IP (environ 4 milliards). Toutefois, le nombre dadresses disponibles de fait est trs infrieur car, dune part, un certain nombre de ces adresses sont rserves (par exemple toutes celles nissant par .0 et .255) et, dautre part, parce que les adresses IP ont par le pass t attribues de faon assez librale. Du fait de la croissance exponentielle dInternet, le besoin en adresses IP univoques pour chaque ordinateur prsent sur Internet est devenu un problme grandissant. Jusqu ladoption

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

497

complte dIPv6 (une nouvelle version du protocole Internet qui, outre de nombreuses amliorations, offrira galement un espace dadresses considrablement plus grand), les adresses IP resteront un bien rare.
Adresses IP sur Internet

Si vous souhaitez connecter votre propre serveur web Internet, vous aurez besoin non seulement dun nom de domaine valable mondialement (par exemple "masociete.fr"), mais galement dune adresse IP propre. Le plus simple pour obtenir ces deux paramtres consiste passer par votre FAI ou par lorganisme NIC de votre pays. Pour les utilisateurs privs ou les petites organisations, ceci nest toutefois que rarement ncessaire. Pour le rseau local, ce sont les adresses IP de lespace dadresses priv qui sont utilises (voir un peu plus loin pour les dtails). La connexion Internet seffectue par le biais dun FAI qui, pour la dure de la connexion, met votre disposition une adresse IP valable mondialement. Si, toutefois, vous souhaitez tre prsent sur Internet avec votre propre site web, vous devrez en gnral faire appel un fournisseur de services. Lordinateur hbergeant le serveur web et vos documents HTML se trouve chez le fournisseur (et non votre domicile) et cest le prestataire qui est responsable de ladresse IP. Ce fonctionnement prsente un avantage supplmentaire dans la mesure o vous navez pas tre connect en permanence Internet pour que votre site web soit, lui, accessible. Pour rsumer : vous naurez besoin dune adresse IP personnelle et univoque que si votre ordinateur doit tre en permanence accessible sur Internet et que vous possdiez cet effet une connexion directe Internet (par exemple par une ligne ddie). Cela ne concerne en gnral que les grosses socits et les universits.

Adresses IP sur le rseau local

Les ordinateurs du rseau local sont en rgle gnrale invisibles depuis Internet. Cela signie que les ordinateurs peuvent certes utiliser les fonctionnalits Internet par le biais dune conguration approprie, mais quils sont protgs contre les accs non autoriss raliss depuis Internet. En consquence, les adresses IP du rseau local nont besoin dtre univoques quau sein de ce rseau et non au niveau mondial. Les adresses IP tant un bien rare, ceci offre des possibilits intressantes dconomies. Trois plages dadresses parmi lespace dadresses IP disponibles ont donc t rserves aux rseaux 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 rseau local trs important (comprenant en thorie 16 millions dordinateurs, ce qui suft dj pour de trs grosses entreprises). Le deuxime domaine compte de fait 16 plages dadresses denviron 65 000 adresses chacune (par exemple 172.23.0.0 172.23.255.255). Le troisime domaine est constitu de 256 petites plages dadresses (par exemple 192.168.75.0 192.168.75.255. La plage dadresses dans laquelle vous choisissez de congurer votre rseau local na pas dimportance : ce systme garantit quil ny aura aucun conit dadresse avec les "vraies" adresses IP dInternet.

498

LINUX

La plupart du temps, vous souhaiterez pouvoir utiliser librement les fonctionnalits Internet au sein du rseau local (par exemple consulter des pages web). Pour ce faire, vous devrez congurer un ordinateur du rseau local en tant que passerelle vers Internet. Cet ordinateur tablit la connexion Internet (quil sagisse dune connexion ADSL, RNIS, modem ou autre) et redirige toutes les requtes Internet du rseau local. La passerelle a en outre la responsabilit de traduire les adresses IP locales en une adresse IP valable lextrieur : cette fonction porte le nom de mascarade et est dcrite au Chapitre 28.
Adresses IP dynamiques

Le fait quune adresse IP est obligatoire pour identier un ordinateur sur le rseau devrait maintenant tre clair. Mais do lordinateur peut-il savoir quelle adresse utiliser ? La solution la plus simple consiste renseigner explicitement ladresse IP la conguration. Sur les petits rseaux locaux, cest la procdure la plus courante. Le premier ordinateur du rseau se voit par exemple attribuer ladresse 192.168.0.1, le second 192.168.0.2, etc. Ladresse est enregistre dans le chier /etc/hosts. Plus la taille du rseau augmente, et plus cette conguration dcentralise devient problmatique. Pour viter la surcharge de travail affrente, on utilise frquemment des adresses IP dynamiques. Pour cela, un ordinateur du rseau local doit tre congur en tant que serveur DHCP (Dynamic Host Conguration Protocol). Tous les autres postes du rseau, au lancement de leurs fonctions rseau, prennent contact avec le serveur DHCP et se voient attribuer une adresse IP. Il nest pas rare de voir un routeur ADSL jouer ce rle de serveur DHCP. Ceci prsente avant tout deux avantages : tout dabord, lensemble du rseau peut tre gr de manire centralise (plutt que devoir congurer des paramtres sur chaque poste) ; ensuite, la charge de travail dadministration par client tend alors vers zro. Pour connecter un client au rseau, il ny a plus besoin que de fournir le nom de machine et dactiver loption DHCP. Toutes les autres donnes (adresse IP propre, adresses IP de la passerelle et du DNS, etc.) sont transmises par DHCP. Il existe en outre un troisime avantage qui est toutefois plus intressant pour les FAI : du fait que les adresses IP sont attribues de manire dynamique et que tous les ordinateurs ne sont pas connects simultanment au rseau, le nombre dadresses IP ncessaires pour rpondre aux besoins dun grand nombre dutilisateurs est donc infrieur au nombre total de postes. Chaque fois quun utilisateur sidentie auprs de son FAI par modem ou ADSL, il obtient la premire adresse disponible ce moment prcis. Un ordinateur possde, en rgle gnrale, plusieurs adresses IP ! Si nous navons jusqu prsent parl que de ladresse IP, nous impliquions quil sagissait de ladresse affecte linterface du contrleur Ethernet. Cest donc ladresse identiant lordinateur au sein du rseau. Cela signie galement, plus prcisment, que ladresse IP est non pas celle de lordinateur proprement parler mais celle de linterface associe au contrleur rseau prsent dans cet ordinateur. Chaque ordinateur Linux/Unix est par ailleurs accessible par le biais de ladresse 127.0.0.1 ou du nom localhost. Cette interface loopback, que nous avons dj mentionne, est rserve au trac rseau local. Vous pouvez tester trs simplement son bon fonctionnement laide 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

Un ordinateur, plusieurs adresses IP

CONFIGURER LACCS RSEAU (RSEAU 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 donnes ladresse fournie en paramtre et mesure la dure coule jusqu conrmation de la bonne rception des paquets. ping localhost devrait mme fonctionner si votre ordinateur ne possde aucun contrleur Ethernet ! Enn, un ordinateur peut galement tre pourvu de plusieurs contrleurs rseau. Chaque contrleur fonctionne alors comme une interface individuelle et possde donc sa propre adresse IP. Les connexions PPP tablies par le biais dun modem ou dune carte RNIS constituent galement des interfaces. Celles-ci se voient attribuer une adresse IP, gnralement dtermine par le FAI (il sagit dune adresse IP dynamique). Un ordinateur peut tre quip de plusieurs contrleurs rseau si, par exemple, il doit relier deux portions de rseau situes dans des plages dadresses diffrentes. Lordinateur est alors dsign par le terme de routeur. Un exemple en est la passerelle Internet dun rseau. Tant que la connexion Internet est tablie, la passerelle possde au moins trois adresses IP : ladresse loopback 127.0.0.1, une adresse au sein du rseau local et enn une adresse Internet globale attribue par un FAI (pour tre tout fait exact, une passerelle assure les fonctionnalits non pas de routage mais uniquement de mascarade ; cette diffrence subtile est dcrite plus prcisment au Chapitre 28).
Configuration statique de ladresse IP

Lorsquil ny a pas de serveur DHCP sur un rseau local, vous devez paramtrer de faon statique ladresse IP de linterface lors de la conguration rseau. Mais quelle adresse IP devez-vous utiliser ? Si votre ordinateur ne fait pas partie dun rseau local : en dehors de ladresse 127.0.0.1 pour linterface loopback, vous navez pas besoin de la moindre adresse IP (ceci vaut mme si cet ordinateur doit tre ultrieurement connect Internet par une liaison modem/ RNIS/ADSL). Votre seule tche de conguration consiste donc fournir les noms dhte et de domaine. Si votre ordinateur fait partie dun rseau local existant : ladresse IP doit se trouver dans la plage dadresses valides pour ce rseau (par exemple 192.168.0.*) et doit y tre unique. Si votre ordinateur doit tre le premier dun nouveau rseau local : choisissez une plage dadresses prive (par exemple 192.168.0.*) et affectez lordinateur une adresse IP de cette plage.

IPv6
Jusqu prsent, je nai 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 annes dj se dessine une pnurie dadresses IP. De surcrot, ce protocole prsente quelques lacunes fonctionnelles qui le

500

LINUX

rendent peu adapt de nombreuses applications actuelles et venir (par exemple la tlphonie sur IP, le streaming audio et vido).
Adresses IPv6

La version 6 du protocole IP (IPv6), lorsquelle 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 rdiges sur le modle suivant :
121.57.242.17.122.58.243.18.19.123.59.20.244.124.60.245

Il est toutefois manifeste que cette criture nest pas utilisable. Pour conomiser de la place, les adresses IPv6 sont donc prsentes sous la forme de groupes (jusqu huit) de chiffres hexadcimaux, spars par un caractre deux-points ":", comme dans lexemple suivant :
abcd:17:2ff:12aa:2222:783:dd:1234

Pour gagner encore en lisibilit, on abrge une succession de plusieurs groupes de valeur nulle en un double caractre 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 lon convertit des adresses IPv4 en adresses IPv6, les six premiers groupes sont constitus de zros. Les deux derniers groupes peuvent galement tre crits sous la forme dcimale bien connue : Adresse IPv4 : ::110.111.112.113 Dans le cadre de ladoption dIPv6, il sera ncessaire pendant plusieurs annes dutiliser conjointement IPv4 et IPv6. Il existe plusieurs mthodes pour faire transiter des paquets IPv6 sur des rseaux IPv4 (et vice versa).
IPv6 et Linux

Le noyau Linux gre en principe IPv6 depuis la version 2.2 ; en pratique, la prise en charge dIPv6 nest mre que depuis le noyau 2.6. Une majorit des applications rseau sont galement devenues compatibles IPv6 entre-temps.
Du fait quIPv6 ne sest pas encore couramment tabli dans lespace europen, les informations de cet ouvrage ne sappliquent pour le moment qu IPv4. Les pages suivantes constituent un bon point de dpart pour rechercher des informations supplmentaires sur IPv6 et sur les particularits de Linux : http://www.ipv6.org/ ; http://www.ipv6forum.com/ ; http://www.faqs.org/rfcs/rfc1752.html http://fr.wikipedia.org/wiki/IPv6 ;

26.2 Activer manuellement un contrleur LAN


Le contrleur rseau ou LAN est en rgle gnrale une puce sur la carte mre de votre ordinateur qui gre les fonctionnalits Ethernet. Le contrleur peut galement se trouver sur une carte rseau propre (PCI, ISA, PCMCIA). Les cartes rseau sont pratiques pour doter un vieil ordinateur de fonctionnalits rseau ou tendre les capacits dun ordinateur moderne en lui ajoutant une interface rseau supplmentaire.

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

501

Indpendamment de la faon dont les fonctionnalits rseau sont physiquement mises en uvre, je ne parlerai dans la suite que de contrleur rseau. Si vous avez dj congur le contrleur rseau, cest votre distribution qui se charge, lamorage, de sa mise en service. Cette section vous montre comment se droule linitialisation dun contrleur rseau et comment vous pouvez activer manuellement linterface rseau. Lobjectif de cette section est non pas de vous faire congurer lavenir vos interfaces rseau la main, mais de vous faire matriser les bases du fonctionnement.
Reconnaissance du matriel

La premire tape consiste vrier que le module noyau correspondant votre contrleur rseau est bien charg. Frquemment, le noyau y parvient automatiquement. Dans ce cas, la commande ifconfig eth0 up ne doit renvoyer aucun message derreur (voir ci-aprs). Si vous rencontrez des problmes ce stade, vous devez identier quel contrleur rseau est utilis dans votre ordinateur et quel module noyau en est responsable. Dans de tels cas, lspci vous renvoie les premires 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 contrleur Ethernet Gigabit 82540EP dIntel. La seconde tape consiste alors affecter un pilote appropri au contrleur (cest--dire un module noyau issu du rpertoire /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 nest pas le cas ici). Lavertissement link is not ready indique uniquement que linterface nest pour le moment pas active faute de conguration adquate.
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

502

LINUX

Pour que ce module soit, lavenir, automatiquement charg, enregistrez dans le chier de conguration des modules (voir Chapitre 25) la correspondance entre linterface eth0 et le module noyau 8139too :
# Fichier de configuration des modules /etc/modprobe.conf ou /etc/modprobe.d/aliases alias eth0 e1000
Configuration des paramtres de contrleur

Activation de linterface

Dans tous les cas, le contrleur rseau identie lui-mme les paramtres obligatoires pour communiquer au sein du rseau. Ce nest que dans de trs rares cas quil devient ncessaire de congurer explicitement des paramtres tels que la vitesse, le mode duplex, etc. Dans de tels cas, la commande ethtool pourra vous tre utile (voir man ethtool). Vous pouvez enn activer linterface rseau laide difconfig :
root# ifconfig eth0 up

Si aucun module nest charg ou que ce ne soit pas le bon, le message derreur suivant apparat alors : eth0: unknown interface: No such device. dmesg vous donne plus de dtails sur la russite ou lchec de lopration :
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 rseau ISA

Avec les cartes ISA, qui commencent dater, il peut y avoir une complication supplmentaire dans certaines circonstances : le module nest, en rgle gnrale, pas en mesure didentier le domaine dentres/sorties de la carte ou la bonne interruption. Cette information doit tre saisie manuellement dans modprobe.conf ou dans un chier du rpertoire /etc/ modprobe.d/, et ce sous la forme dune ligne alias. Pour une carte ISA compatible NE-2000, les lignes correspondantes ont lallure suivante :
alias eth0 ne options ne io=0x300

Linux peut aussi grer plusieurs cartes rseau simultanment (tant que cela ne gnre pas de conit entre domaines dadresses dentres/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 dinformations sur ce sujet dans les HOW-TO ddis au matriel et Ethernet, ainsi que sur le site web : http://www.scyld.com/network/
Configuration de linterface

Pour congurer linterface rseau, fournissez son nom (eth0), ainsi que ladresse IP souhaite, la commande ifconfig. Si vous excutez une seconde fois la commande sans fournir cette fois dadresse IP, vous obtenez toutes les informations connues relatives linterface rseau :
root# ifconfig eth0 192.168.0.2 root# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:11:25:32:4F:5D

CONFIGURER LACCS RSEAU (RSEAU 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 vrier avec la commande ping si vous parvenez contacter dautres ordinateurs du rseau local. Loption -c 2 vous permet denvoyer 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 du serveur de noms

La commande ping ne fonctionne pour le moment que si vous lui fournissez directement une adresse IP. Pour pouvoir lui passer aussi des noms de machine, le chier /etc/ resolv.conf doit contenir ladresse IP dun serveur de noms. Lexemple qui suit part du principe que le rseau local dispose de son propre serveur de noms, dadresse IP 192.168.0.1. Le serveur de noms peut toutefois tre extrieur au rseau et, par exemple, tre mis disposition par le FAI (vous trouverez un peu plus loin dans ce chapitre des informations sur ce chier de conguration).
# /etc/resolv.conv nameserver 192.168.0.1

Passerelle par dfaut

lheure actuelle, vous ne pouvez envoyer des paquets qu destination du rseau local. Pour permettre galement des contacts avec lextrieur (en particulier avec Internet), lordinateur doit savoir o envoyer ces paquets. Vous devez pour cela fournir ladresse de la passerelle Internet de votre rseau, laide de la commande route. Dans lexemple qui suit, ladresse 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 192.168.0.0 0.0.0.0 255.255.255.0 0.0.0.0 192.168.0.1 0.0.0.0

Flags Metric Ref Use Iface U 0 0 0 eth0 UG 0 0 0 eth0

Il devrait maintenant tre possible denvoyer des paquets vers toute adresse situe sur Internet :
root# ping -c 2 yahoo.com PING yahoo.com (216.109.112.135) 56(84) bytes of data.

504

LINUX

64 bytes time=116 64 bytes time=115

from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=1 ttl=52 ms from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=2 ttl=52 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
Rcuprer les informations par DHCP

Sil y a sur le rseau un serveur DHCP, vous pouvez vous appuyer dessus pour la conguration. Une fois linterface rseau active (ifconfig eth0 up sans autre paramtre), excutez 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 mme rsultat avec la commande dhcpd :


root# dhcpcd eth0

Dsactivation de linterface Gestion de plusieurs contrleurs

Red Hat ou Fedora reposent, comme Debian et Ubuntu, sur dhclient pour la conguration du client DHCP. Toutefois, la commande y est prcongure de telle sorte quun appel manuel ne fonctionne pas. dhclient ne peut tre utilis sur ces distributions que dans le cadre des scripts Init-V, pour une initialisation automatise du rseau. Pour la conguration DHCP, Knoppix utilise le programme pump, pilot par le biais du chier /etc/pump.conf. Il est possible de lappeler manuellement sous la forme pump -i eth0. pump -s renvoie les informations dtat relatives aux interfaces congures par DHCP. Pour dsactiver une interface rseau, utilisez la commande ifconfig avec loption down :
root# ifconfig eth0 down

Il nest maintenant pas rare de rencontrer des ordinateurs dots de plusieurs contrleurs rseau. La quasi-totalit des portables actuels possde un contrleur Ethernet ainsi quun contrleur Wi-Fi (dont linterface est gre, en interne Linux, de faon strictement semblable une interface Ethernet ; plus de dtails sur ce sujet un peu plus loin dans ce chapitre). Les serveurs rseau ncessitent galement plusieurs contrleurs : cest travers un premier contrleur qua lieu la connexion Internet, un deuxime gre la connexion au rseau local, un troisime peut galement grer le Wi-Fi, etc. Linux na, en principe, aucun problme grer plusieurs contrleurs et les intgrer dans la conguration rseau. Le systme udev est charg de gnrer une correspondance cohrente entre le matriel (les contrleurs) et les noms des interfaces associes (eth0, eth1, etc.), de sorte que chaque contrleur se voie systmatiquement affecter le mme nom dinterface (voir un peu plus loin).

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

505

26.3 Fichiers de configuration du rseau local


En rgle gnrale, il vaut mieux viter de modier directement les chiers de conguration du rseau local et faire appel aux outils de conguration de votre distribution (ou ceux de Gnome ou KDE, si votre distribution ne prvoit aucun outil de conguration de ce type). Aprs avoir modi la conguration rseau, vous devrez fermer votre session Gnome ou KDE et en ouvrir une nouvelle ! Gnome KDE Debian Red Hat, Fedora SUSE Ubuntu/Kubuntu network-admin Centre de conguration > Internet et Rseau > Paramtres rseau Outils Gnome ou KDE system-config-network = neat YaST (Priphriques rseau > Carte rseau) Outils Gnome ou KDE

Cette section dcrit les principaux chiers de conguration pour connecter un ordinateur un rseau local. Malheureusement, il nexiste de rgles unies pour les principales distributions que pour une partie de ces chiers. Pour les autres chiers, qui concernent principalement les interfaces et le contrleur, je prsenterai ici les variantes Debian/Ubuntu, Red Hat/Fedora et SUSE (test avec Ubuntu 7.04, Fedora 7 et OpenSUSE 10.2). Voici quelques lments valables pour tous les exemples de cette section : lordinateur congurer sappelle uranus, son domaine, sol. Les autres ordinateurs du rseau local sappellent jupiter, saturne, etc. Le rseau local utilise des adresses de la plage 192.168.0.*. Lordinateur local possde ladresse IP 192.168.0.2. La passerelle du rseau local a lIP 192.168.0.1 et elle hberge galement un serveur de noms. Les noms et adresses ne sont bien entendu que des exemples.

Configuration de base
/etc/hosts

Le chier /etc/hosts contient une liste dadresses IP connues et des noms de machine associs. Le chier doit, dans tous les cas, contenir les donnes relatives linterface loopback, dont lentre correspondante a en gnral lallure suivante :
# /etc/hosts 127.0.0.1 ... localhost # Interface loopback de lordinateur

Sur la plupart des distributions Linux, au lieu de lcriture 127.0.0.1, on trouve galement lcriture IPv6 ::1. Sur Red Hat et Fedora, la ligne localhost comprend en outre lentre localhost.localdomain. Cette ligne ne doit pas tre modie :
# /etc/hosts sur Red Hat und Fedora ::1 localhost.localdomain localhost ...

506

LINUX

Suivant la distribution, le chier hosts prsente galement une entre pour lordinateur local. Lorsque son contrleur rseau est congur avec une adresse IP statique, celle-ci est renseigne. Lorsque le contrleur rseau obtient son adresse dynamiquement par DHCP, cest la pseudo-adresse 127.0.0.1 qui est alors renseigne (par exemple sur Debian et Ubuntu), ou lentre napparat pas du tout (sur Red Hat et Fedora).
# /etc/hosts (suite) ... 192.168.0.2 uranus.sol uranus

# adresse IP statique de lordinateur local

Si vous souhaitez pouvoir dialoguer avec dautres ordinateurs du rseau en utilisant leurs noms, en labsence dun serveur de noms sur le rseau local (voir chapitre suivant), vous devrez renseigner leurs noms dans /etc/hosts. Vous pourrez alors excuter la commande ping saturne au lieu de ping 192.168.0.13 pour tester votre connexion lordinateur saturne :
# /etc/hosts (suite) ... 192.168.0.1 mars.sol 192.168.0.2 uranus.sol 192.168.0.13 saturne.sol

mars uranus saturne

# Adresses IP et noms des autres # ordinateurs sur le rseau

Des informations similaires doivent tre saisies dans les chiers /etc/hosts de tous les ordinateurs du rseau local. Plus celui-ci compte de postes, plus la gestion de ces nombreux chiers /etc/hosts devient fastidieuse. Pour cette raison, il est conseill, sur les rseaux les plus tendus, de mettre en place un serveur de noms sur un ordinateur (voir chapitre suivant). Cet ordinateur (et donc le serveur de noms) connat les noms de tous les ordinateurs du rseau. Les ordinateurs du rseau local peuvent contacter le serveur de noms pour en obtenir ces informations. /etc/hosts peut alors tre rduit sa plus simple expression, ne comprenant que quelques lignes pour localhost. Toutefois, cela ncessite de congurer correctement le chier /etc/resolv.conf (voir un peu plus loin dans ce chapitre). Sur de nombreuses distributions, /etc/hosts contient en outre quelques adresses IPv6 particulires comme fe00::0. Ces adresses nont toutefois de sens que si vous utilisez le nouveau protocole IPv6.
/etc/host.conf

Le chier /etc/host.conf indique comment TCP/IP doit identier les adresses IP inconnues. Suivant le chier dexemple ci-aprs, on commence par analyser le chier /etc/hosts (motcl hosts) avant dinterroger le serveur de noms renseign dans /etc/resolv.conf (mot-cl bind). La seconde ligne autorise laffectation de plusieurs adresses IP un mme nom dhte renseign dans /etc/hosts. Ce chier existe dans la quasi-totalit des distributions sous la forme prsente ici et il ne doit pas tre modi.
# /etc/host.conf order hosts, bind multi on

/etc/ resolv.conf

Le chier /etc/resolv.conf pilote la faon dont sont identies les adresses IP correspondant des noms de rseau ou dhtes inconnus (inconnus signiant ici que les noms ne sont pas dnis dans hosts.conf). Les mots-cls domain et search permettent de complter les noms dhtes (par exemple jupiter) avec le nom de domaine (pour obtenir par exemple jupiter.sol). Ceci amliore le confort

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

507

dutilisation car les noms dhtes peuvent alors tre fournis sous forme abrge. search permet de renseigner plusieurs noms de domaines (avec domain, un seul peut tre fourni) : pour cette raison, le nom domain a la prsance 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 ignore. Les entres les plus importantes de /etc/resolv.conf sont prcdes du mot-cl nameserver : ceci permet de renseigner jusqu trois adresses IP de serveurs de noms. On interroge toujours ces serveurs pour identier ladresse 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 rsoudre les adresses IP dURL Internet. En tant que particulier, vous obtenez les adresses IP dun serveur DNS de votre FAI. Dans les rseaux locaux de plus grande envergure, il y a au moins un serveur de noms propre (voir plus haut) directement connect au rseau : demandez-en ladresse IP votre administrateur systme !
# /etc/resolv.conf domain sol search sol nameserver 192.92.138.35 nameserver 195.3.96.67 # # # # Les Les DNS DNS noms dhtes sappliquent .sol noms dhtes sappliquent .sol primaire secondaire (en cas de panne du primaire)

Si votre rseau comprend un serveur de noms local, renseignez-en ladresse IP :


# /etc/resolv.conf domain sol search sol nameserver 192.168.0.1 # Les noms dhtes sappliquent .sol # Les noms dhtes sappliquent .sol # Adresse IP dun serveur de noms local

Suivant la conguration rseau, le chier resolv.conf est gnr dynamiquement : ltablissement dune connexion Internet par PPP (modem, ADSL ou RNIS), le script grant la connexion insre automatiquement ladresse du serveur de noms nameserver de votre FAI dans le chier /etc/resolv.conf. Lorsque votre connexion au rseau local (LAN, Wi-Fi) est congure par DHCP, le script grant la connexion insre les adresses des serveurs de noms transmises par le serveur DHCP. Ladaptation automatique du chier resolv.conf est, dans la plupart des cas, la solution la plus pratique. Si toutefois vous ne souhaitez pas lutiliser, vous pouvez empcher les modications automatiques dans la plupart des cas. Sur Debian et Ubuntu, pour les connexions PPP, vous devez supprimer du chier /etc/ppp/ peers/nom le mot-cl usepeerdns. Pour les interfaces rseau congures par DHCP, cela dpend du client DHCP install. Sil sagit de pump, insrez les lignes suivantes dans le chier pump.conf :
# /etc/pump.conf # empcher les modifications du fichier /etc/resolv.conf # la configuration deth0 par DHCP (Debian) device eth0 { nodns }

Protger resolv.conf de toute modification

508

LINUX

Si cest dhcp3-client qui est install, vous devez modier son chier de conguration 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 modier le chier ifcfg-xxx correspondant linterface rseau souhaite :
# /etc/sysconfig/network-scripts/ifcfg-xxxx (Red Hat, Fedora) PEERDNS=no

Sur SUSE, deux chiers de conguration sont concerns :


# /etc/sysconfig/network/config pour Modem, ISDN, ADSL (SUSE) MODIFY_RESOLV_CONF_DYNAMICALLY="no" # /etc/sysconfig/network/dhcp fr DHCP-Clients (SUSE) DHCLIENT_MODIFY_RESOLV_CONF="no"
Configuration de la passerelle

Il nexiste pas une unique manire ou un seul chier pour congurer une passerelle. Sur un rseau local, ladresse de la passerelle est en gnral fournie par DHCP. Dans le cadre dune conguration statique, les chiers concerns dpendent de la distribution. Sur Debian et Ubuntu, le chier /etc/network/interfaces dcrit toutes les interfaces rseau. Dans le cadre dinterfaces congures de faon statique, la passerelle est indique 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 chier de conguration de linterface rseau contient la variable GATEWAY :
# /etc/sysconfig/network-scripts/ifcfg-xxxx (Red Hat, Fedora) GATEWAY=192.168.0.1

Sur SUSE, la conguration seffectue de faon centralise dans le chier suivant :


# /etc/sysconfig/network/routes (SUSE) default 192.168.0.1 - -

Le paramtrage effectif de la passerelle seffectue de la mme manire sur toutes les distributions, par le biais de la commande route. Les deux commandes qui suivent vous montrent comment insrer manuellement la passerelle 192.168.0.1 dans la table de routage puis comment len supprimer :
root# route add default gw 192.168.0.1 root# route del default gw 192.168.0.1
Configuration du nom dhte

Vous pouvez afcher le nom dhte courant par le biais de la commande hostname. Si ce nom dhte nest pas paramtr par DHCP, la conguration seffectue sur Debian et Ubuntu par

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

509

le biais du chier /etc/hostname, sur SUSE par /etc/HOSTNAME. Sur Red Hat et Fedora, le nom dhte est paramtr par la variable hostname dans le chier /etc/sysconfig/network. Veillez bien assurer la cohrence avec /etc/hosts, au cas o ce chier contienne une ligne indiquant le nom dhte de lordinateur.

Correspondance entre contrleur et interface rseau


Tant quil ny a quun seul contrleur Ethernet, les choses sont vraiment simples : ce contrleur reoit le nom dinterface eth0. Sil y a plusieurs contrleurs, il est essentiel que ceux-ci reoivent toujours le mme nom dinterface, indpendamment de leur ordre dactivation. Par le pass, cela a frquemment occasionn des problmes. En rgle gnrale, les noms dinterfaces taient attribus dans lordre dactivation : suivant lordre dans lequel taient chargs les modules noyau pour les contrleurs rseau, il ntait pas rare de nir dans un tat de chaos. Sur la plupart des distributions Linux actuelles, cest le systme udev qui est charg de la correspondance entre contrleurs rseau et noms dinterface (voir galement Chapitre 13). Toutefois, la conguration dudev varie dune distribution lautre. Du fait quaucun standard commun ne sest pour le moment tabli, jai choisi de dcrire ici trois distributions particulires. Sur Fedora 7, le systme udev ne prsente pas encore de rgles pour la correspondance des interfaces rseau. Au lieu de cela, /etc/modprobe.conf pilote laffectation des modules noyau aux interfaces. Cette mthode est certes simple, mais galement moins able que les variantes udev dautres distributions.
# /etc/modprobe.conf (Fedora) alias eth0 skge alias eth1 sky2 ...
OpenSUSE 10.2

Fedora 7

Sur OpenSUSE 10.2, cest la rgle udev 30-net_persistent_names.rules qui gre le nommage des interfaces rseau. Ce chier peut, par exemple, avoir lallure 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 systme udev identie un nouveau contrleur rseau, une nouvelle rgle lui correspondant est insre dans le chier, ce dont le chier de rgles udev 31-network.rules est responsable : il dlgue ensuite cette tche au script /lib/udev/rename_netiface. Si vous souhaitez dsactiver le mcanisme de nommage des interfaces, modiez le contenu du chier de conguration suivant :
# /etc/sysconfig/network/config ... FORCE_PERSISTENT_NAMES=no

510
Ubuntu 7.04

LINUX

Sur Ubuntu, cest le chier /etc/iftab qui pilote la correspondance entre contrleur rseau et nom dinterface. iftab est analys par le chier de rgles udev 25-iftab.rules. Pour identier un contrleur dans iftab, on utilise ladresse MAC. Le chier peut avoir lallure 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 rseau (Debian et Ubuntu)


Cette section dcrit dans quels chiers sont congures les interfaces rseau et quels scripts sont responsables de linitialisation automatique de ces interfaces lamorage. Comme ces dtails dpendent fortement de la conguration, nous nous focaliserons ici sur Debian et Ubuntu. Les deux sections suivantes fourniront les renseignements correspondant Red Hat/Fedora et SUSE.
/etc/network/ interfaces

Sur Debian et Ubuntu, cest le chier /etc/network/interfaces qui contient lensemble des paramtres courants pour toutes les interfaces rseau actives (loopback, LAN, Wi-Fi, etc.). La ligne auto indique quelles interfaces doivent tre actives lamorage. La ligne iface introduit la description dune interface. Vous obtiendrez plus de dtails sur la structure du chier laide de la commande man interfaces. Lexemple suivant dcrit un ordinateur dot de deux interfaces rseau locales : eth0 est congur par DHCP, tandis queth1 est congur de faon statique. Les options dinterface ont t indentes pour donner plus de lisibilit au chier :
# /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, excut ds linitialisation du systme (lien /etc/ rcS.d/S40networking), gre linitialisation automatique des interfaces rseau lamorage de lordinateur. Cest la commande spcique Debian ifup (paquetage ifupdown) qui assure le travail effectif. ifup -a analyse /etc/network/interfaces et active toutes les interfaces auto. Si les interfaces sont congures par DHCP, ifup fait appel la commande dhclient pour transmettre et analyser les donnes DHCP. Cest le chier /etc/dhcp3/dhclient.conf qui est responsable de la conguration. Si vous possdez les droits dadministration, vous pouvez aussi utiliser manuellement ifup : ifup nom active linterface souhaite, ifdown nom la dsactive.

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

511

Configuration et initialisation des interfaces rseau (Red Hat, Fedora)


/etc/sysconfig/ networkscripts/ifcfgxxx

Chaque interface rseau est congure par le biais de son propre chier ifcfg-nom (o nom dsigne linterface), hberg dans le rpertoire /etc/sysconfig/network-scripts. Les lignes qui suivent sont extraites dun chier de conguration typique pour un contrleur Ethernet congur 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 chier suivant contient une description exhaustive de la plupart des chiers de conguration rseau et des variables quils contiennent :
/usr/share/doc/initscripts-n.n/sysconfig.txt

Aprs avoir modi la conguration rseau, il est frquemment recommand de redmarrer compltement les fonctionnalits rseau :
root# /etc/init.d/network restart
Initialisation

Le script InitV /etc/init.d/network gre linitialisation de toutes les interfaces rseau congures. Le script network appelle, pour chaque interface, le script spcique Red Hat ifup. Celui-ci fait appel diffrentes fonctions shell dnies dans le chier network-functions. En outre, des chiers additionnels sont appels suivant le type dinterface (ifup-eth, ifup-ppp, ifup-wireless). Tous ces chiers se trouvent dans le rpertoire /etc/sysconfig/networkscripts. Si les interfaces rseau doivent accder un serveur DHCP (BOOTPROTO=dhcp dans le chier de conguration), la commande dhclient est appele cet effet. De faon analogue aux scripts ifup, il existe galement des scripts ifdown pour dsactiver les interfaces rseau.

usernetctl

Lutilisateur root peut activer et dsactiver confortablement une interface rseau laide de la commande spcique Red Hat usernetctl :
root# usernetctl eth0 up root# usernetctl eth0 down

Les utilisateurs usuels peuvent galement utiliser cette commande sils en fournissent le chemin complet (/usr/sbin/usernetctl). Cest le paramtre USERCTL=yes/no, du chier de conguration ifcfg-interface, qui dtermine sils sont autoriss modier ltat dune connexion rseau.

512

LINUX

Configuration et initialisation des interfaces rseau (SUSE)


/etc/sysconfig/ network/ifcfgxxx

Pour chaque interface rseau, le rpertoire /etc/sysconfig/network prsente un chier de conguration dont le nom est form partir du type dinterface et, pour les contrleurs Ethernet, de ladresse MAC. Les lignes qui suivent illustrent un chier de conguration 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 chiers config, dhcp et routes du rpertoire /etc/sysconfig/network contiennent divers paramtres rseau gnraux. La page de manuel difup, ainsi que le chier suivant, vous donneront des informations dtailles quant la conguration rseau sur SUSE :
/usr/share/doc/packages/sysconfig/Network
Initialisation

Le script InitV /etc/init.d/network est galement sur SUSE le point dentre pour linitialisation des interfaces rseau. network dmarre aussi bien linterface loopback pour localhost que toutes les interfaces rseau congures. Le script spcique SUSE /sbin/ifup est prvu pour lactivation dinterfaces individuelles. Mme si le nom de ce script est identique sur Debian, Fedora, Red Hat, Ubuntu et SUSE, le code sous-jacent est diffrent dans chaque cas ! De manire analogue ifup, il existe galement des scripts ifstatus et ifdown permettant respectivement dobtenir ltat dune interface rseau ou de la dsactiver. Pour les interfaces congures par DHCP, ifrenew permet de relire les donnes DHCP. Suivant le type dinterface, ifup appelle lun des scripts additionnels ifup-ppp, ifup-wireless, etc. Diverses fonctions communes sont hberges dans le chier functions. Tous ces chiers se trouvent dans le rpertoire /etc/sysconfig/network/scripts. Si linterface rseau doit faire appel un serveur DHCP (BOOTPROTO=dhcp dans le chier de conguration), dhcpd se charge de transmettre et danalyser les donnes DHCP.

26.4 Bases sur le Wi-Fi


Pour dcrire les rseaux sans l, on utilise des abrviations diverses. La plus courante en franais est sans conteste Wi-Fi (Wireless Fidelity). On trouve galement lacronyme WLAN (Wireless Local Area Network), essentiellement dans les documents anglophones.

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

513

Standards, glossaire
Cette section vise prsenter brivement la terminologie Wi-Fi. Si vous vous tes dj familiaris avec les bases des rseaux sans l, vous pouvez passer aux sections suivantes, qui abordent de plus prs les dtails spciques Linux concernant le Wi-Fi. Les standards Wi-Fi sont nombreux : ils sont dnis par lIEEE (Institute of Electrical and Electronics Engineers) et commencent tous par le nombre 802.11. La lettre qui vient complter cette rfrence indique la succession chronologique des nouvelles versions ou variantes du standard. La liste qui suit numre quelques-uns des standards Wi-Fi : 802.11. Le premier standard 802.11 dnissait la frquence dmission 2,4 GHz. Le dbit brut maximal ntait toutefois que de 2 Mbits/s. Ce standard na aujourdhui plus cours du fait de cette vitesse trs limite. 802.11a. Avec ce standard, la frquence dmission est dnie 5,2 GHz et le dbit brut peut atteindre 54 Mbits/s. Toutefois, il na t jusqu prsent adopt quaux tats-Unis. En Europe, le standard 802.11a nest autoris quavec une puissance dmission beaucoup plus rduite quaux tats-Unis (dans plusieurs pays, lutilisation de matriel 802.11a est mme totalement interdite). Il prsente en outre linconvnient dtre incompatible avec les standards 802.11b et 802.11g, beaucoup plus rpandus, ainsi que davoir une porte limite. 802.11b. Ce standard, dni depuis 1999, est jusqu maintenant le dnominateur commun du monde Wi-Fi. Des millions de composants Wi-Fi sont bass sur ce standard ou sont compatibles avec. Le matriel 802.11b met une frquence de 2,4 GHz. Le dbit brut natteint toutefois que 11 MBits/s, ce qui suft pour surfer sur le Web. 802.11g. Ce standard est le successeur du 802.11b et est compatible avec ce dernier. Le matriel 802.11g est disponible depuis 2003. La frquence dmission est, comme pour le 802.11b, de 2,4 GHz, le dbit brut est toutefois meilleur (54 MBits/s). 802.11i. Il sagit dune extension de 802.11a/b/g/h pour amliorer la scurit de ces standards. 802.11i dnit la mthode de chiffrement et dauthentication WPA2. 802.11n. Successeur de 802.11a, b et g, le standard 802.11n amliore quelque peu la porte et notablement le dbit brut (qui atteint dsormais 540 MBits/s). Ces deux amliorations sont permises par lutilisation simultane de plus dantennes, plus de rcepteurs et plus dmetteurs (MIMO ou Multiple-in, Multiple-out). 802.11n est certes compatible avec les variantes a, b et g, mais un seul lment Wi-Fi non compatible 802.11n peut affecter la vitesse de lensemble du rseau. Le matriel compatible 802.11n ou prvu pour ltre (pre-n, draft-n) existe depuis mi2006. La certication dnitive du standard nest toutefois prvue que pour lautomne 2008. Le dbit brut (par exemple 54 MBits/s pour 802.11g) peut sembler trs prometteur. Toutefois, si lon tient compte de la surcharge importante lie au protocole, le dbit net restant est nettement plus faible et natteint pas la moiti de la valeur brute (mme lorsquil ne sagit de faire communiquer que deux participants entre eux, que la liaison physique radio est bonne et quaucun participant au rseau nutilise un standard antrieur).

Standards

Brut/net

514
Adaptateurs Wi-Fi

LINUX

Ponts, points daccs et routeurs sans fil

Tous les ordinateurs portables modernes intgrent un contrleur Wi-Fi. Les portables plus anciens ou les ordinateurs de bureau pourront au besoin voir leurs capacits tendues par le biais de cartes PCMCIA, dadaptateurs Wi-Fi USB ou de cartes PCI. Les ponts, points daccs et routeurs Wi-Fi sont des priphriques autonomes connects au rseau local ou un modem ADSL par le biais dun cble Ethernet : Un pont sans l connecte un priphrique LAN isol un rseau sans l. Le pont assure la mme fonctionnalit quune carte Wi-Fi mais la connexion lordinateur est diffrente : elle est assure par Ethernet plutt que par PCI, PCMCIA ou USB. Un point daccs (access point) reprsente la mthode la plus simple pour connecter plusieurs clients sans l. Un point daccs est, comme un pont, connect un serveur ou un hub rseau par un cble Ethernet. Il met plusieurs fois par seconde un signal (beacon) permettant aux autres priphriques Wi-Fi de dterminer la porte du point daccs. Contrairement au pont, le point daccs prend en charge plusieurs modes Wi-Fi et peut communiquer avec plusieurs clients sans l la fois (les diffrences entre pont et point daccs concernent donc avant tout le logiciel de pilotage plutt que le matriel). Un routeur Wi-Fi connecte un rseau entier (LAN et Wi-Fi) Internet. Le point de sortie est, le plus souvent, un modem ADSL quip dune sortie Ethernet ou un serveur rseau local. Il existe galement des routeurs Wi-Fi intgrs un modem ADSL : on dcrit de fait des priphriques de ce type comme des passerelles. Le routeur est gnralement constitu dun point daccs et dun petit hub pour, au maximum, quatre priphriques Ethernet. Le logiciel interne du routeur pilote laccs Internet et la gestion du rseau local. Un routeur hberge en gnral des fonctionnalits de traduction dadresses (NAT), un serveur DHCP, un pare-feu lmentaire, etc. Ces fonctionnalits sont dcrites en dtail au Chapitre 28. Les ponts, points daccs et routeurs Wi-Fi prsentent deux avantages par rapport la majorit des cartes et adaptateurs Wi-Fi : tout dabord, ils comprennent une ou mme deux antennes relativement grandes qui permettent une meilleure connectivit que les antennes souvent trop petites des cartes dextension Wi-Fi. Par ailleurs, il sagit de priphriques autonomes fonctionnant sans pilotes Linux (la connexion un ordinateur sous Linux peut donc tre assure par un cble Ethernet tout ce quil y a de plus ordinaire). La conguration de priphriques Wi-Fi seffectue en rgle gnrale par le biais dun navigateur Internet. Pour ce faire, les priphriques mettent disposition leurs propres pages de conguration sur une adresse IP dnie (par exemple http://192.168.0.1). Attention, toutefois, au fait quil existe des priphriques Wi-Fi ne pouvant tre congurs que par le biais dun logiciel disponible uniquement sous Windows ! Cela concerne principalement les ponts Wi-Fi : de tels priphriques sont naturellement peu utilisables avec Linux.
La terminologie utilise ici nest pas uniforme chez tous les fabricants. Vous pourrez trouver des explications relativement exhaustives sur les concepts rseau 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 intressant sur le sujet du Wi-Fi et non spcifique Linux : http://www.wi-fiplanet.com/

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

515

Centrino

Le nom de marque Centrino, dpos par Intel, dcrit les ordinateurs portables dots dun processeur mobile Intel, dun chipset Intel ainsi que dun module Wi-Fi Intel. Les premires gnrations de Centrino, compatibles avec les standards Wi-Fi 802.11a, b et g, sont dsormais trs bien prises en charge par Linux.

Paramtres de connexion Wi-Fi


Lorsque vous tablissez une connexion entre deux priphriques Wi-Fi, divers paramtres doivent tre congurs. La liste qui suit explique rapidement le rle de chacun deux.
Mode rseau

Les composants Wi-Fi peuvent communiquer entre eux de diffrentes manires. Nous ne dcrivons ici brivement que les trois modes principaux : Le mode infrastructure (galement appel mode gr) permet de communiquer avec un point daccs centralis. Le rseau est donc structur en forme dtoile. La plupart du temps, la connexion stablit avec un point daccs ou un routeur Wi-Fi, mais ce peut galement tre un ordinateur spcialement congur pour jouer ce rle. Le priphrique Wi-Fi du point daccs fonctionne en mode matre (le mode infrastructure ne vaut donc que pour les clients, tandis que le mode matre est utilis au niveau du serveur dun rseau Wi-Fi). En mode ad-hoc, chaque priphrique Wi-Fi communique directement avec tous ceux qui sont sa porte. Les abrviations SSID (Service Set Identication) et ESSID (Extended SSID) dsignent tout simplement une chane de caractres dcrivant le nom dun rseau Wi-Fi. Les priphriques Wi-Fi ne peuvent communiquer entre eux que si leurs SSID se correspondent. Des SSID diffrents permettent galement de distinguer plusieurs rseaux Wi-Fi actifs dans la mme zone. Le nom du fabricant est frquemment prdni en tant que chane de caractres SSID. Pour cette raison, des priphriques issus du mme fabricant peuvent souvent communiquer lun avec lautre directement, tandis que des appareils dorigines diffrentes ncessiteront tout dabord de paramtrer une chane SSID commune. De nombreuses cartes Wi-Fi prvoient une conguration automatique pour la chane SSID (valeur any). Attention : pour la chane de caractres SSID, on diffrencie les majuscules et les minuscules !

SSID et ESSID

NWID

Au sein dun mme rseau Wi-Fi (un unique SSID), il peut y avoir plusieurs cellules (cells) diffrencies par leurs identiants NWID (Network ID). En pratique, ceci nest plus que rarement utilis car de nombreux programmes de conguration renoncent tout simplement utiliser le paramtre NWID. Parfois, au lieu de lidentiant NWID, on parle de domaine, ce qui peut conduire une certaine confusion : lidentiant NWID na rien voir avec les noms de domaine des adresses IP.

Canal

lintrieur des bandes de frquence prvues par chacun des standards 802.11x, il existe plusieurs canaux sur lesquels on peut mettre en parallle. En mode infrastructure, les adaptateurs Wi-Fi identient par eux-mmes le canal utilis par le point daccs. Par consquent,

516

LINUX

il ne devient ncessaire de congurer explicitement le canal quen cas dinterfrences entre plusieurs rseaux Wi-Fi.
Cl WEP/WPA

Pour des raisons videntes, il est ncessaire de scuriser les rseaux Wi-Fi. Suivant le standard pris en charge par votre matriel Wi-Fi, vous aurez le choix entre les mthodes WEP, WPA ou, idalement, WPA2 (plus de dtails sur ce sujet la prochaine section). Vous devez fournir la cl lors de la conguration de votre contrleur Wi-Fi. Suivant le systme employ, vous devez fournir la cl sous forme de code hexadcimal ou sous forme de texte. Attention au fait que de nombreux programmes de conguration ncessitent de faire prcder la cl hexadcimale du code 0x !

Scurit dun rseau Wi-Fi


Il est fondamentalement possible de faire fonctionner un rseau Wi-Fi sans le moindre chiffrement. Toutefois, nimporte qui situ porte du rseau peut alors lutiliser et couter toutes les communications qui y ont lieu ! Un fonctionnement non chiffr est donc proscrire !
WEP

Pour chiffrer le ux de donnes, les premires gnrations de rseaux Wi-Fi ont utilis le systme WEP (Wired Equivalent Privacy). Les donnes taient dans ce cadre chiffres laide dune cl 40 ou 104 bits (on parle souvent de cls 64 ou 128 bits, mais les 24 bits restants ne servent pas au chiffrement proprement parler). La cl WEP est en rgle gnrale fournie sous la forme dun nombre hexadcimal (10 ou 26 chiffres suivant la taille de la cl). Comme la saisie dun nombre 26 chiffres est sujette erreur, de nombreux outils de conguration permettent de gnrer la cl partir dune "phrase de passe" (cest--dire un texte de votre choix, qui peut tre constitu de plusieurs mots). Toutefois, la gnration de la cl dpend du fabricant du matriel. La mme phrase de passe peut donc aboutir des cls diffrentes sur des matriels diffrents. En cas de doute, il ne reste donc quune seule solution, saisir exactement la cl. la conguration WEP, vous pouvez saisir jusqu quatre cls. Dans les faits, une seule cl est utilise la fois. La gestion de quatre cls prsente nanmoins un avantage : lorsque vous changez de rseau Wi-Fi, vous navez pas saisir intgralement la nouvelle cl, mais vous pouvez tout simplement changer de cl active.
Du fait de srieuses lacunes de conception, WEP sest rvl insuffisamment sr. Mme une cl sur 104 bits peut tre identifie en un temps relativement court (au pire quelques heures mais bien souvent beaucoup moins) par simple coute du trafic rseau. Des programmes permettant de "craquer" les cls WEP sont disposition librement sur Internet. En dautres termes, une protection WEP est mieux que rien, mais pas de beaucoup. Si votre matriel le permet, vous devriez utiliser WPA ou, mieux, WPA2 (voir plus bas). Si ce nest pas possible, vous devez protger votre rseau sans fil par dautres mesures supplmentaires, idalement par la mise en place dun VPN.

WPA, WPA2

la suite de WEP, les mthodes de protection WPA (Wi-Fi Protected Access) ainsi que sa version amliore WPA2 ont vu le jour. La spcication exacte de WPA2 est inscrite dans le standard 802.11i. La diffrence principale entre WPA et WPA2 rside dans lalgorithme de chiffrement (RC4 pour WPA et AES pour WPA2).

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

517

WPA a t conu comme une solution de contournement jusqu la nalisation du standard 802.11i. Comme il existe toutefois du matriel 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. Lavantage essentiel de WPA rside dans le fait que la cl ne sert qu ltablissement de la connexion. Une fois celle-ci tablie, les cls sont rgulirement changes suivant un algorithme sophistiqu. WPA et WPA2 peuvent, en ltat actuel des techniques, tre considrs comme srs tant que lon utilise une phrase de passe sufsamment longue (et donc une cl constitue de plusieurs mots et caractres). Ce livre ne traite que la variante PSK (Pre-Shared Key) de WPA/WPA2 : tous les utilisateurs du Wi-Fi se connectent au rseau laide de la mme cl. La version Managed Key, encore plus sre, attribue chaque utilisateur sa propre cl (mais cela ncessite de grer les cls sur un serveur centralis).
Attention au fait que vous devez configurer sur la plupart des routeurs et points daccs Wi-Fi une mthode de chiffrement. Il nest donc pas possible quun ordinateur tablisse une connexion avec WPA2 tandis quun autre utiliserait WEP Ainsi, le niveau de scurit de vos priphriques les plus anciens dtermine le . niveau de scurit global de votre rseau.
Protection de base

Indpendamment de la technique de chiffrement choisie, vous devriez galement mettre en place une protection de base de votre rseau Wi-Fi : La conguration dun point daccs seffectue normalement par un navigateur web. Laccs web est protg par un mot de passe que vous devez imprativement changer. Vous devriez limiter autant que possible les possibilits de gestion distante de lappareil et surtout lautoriser uniquement travers une connexion par cble (et non sans l). De nombreux points daccs permettent de nautoriser laccs au rseau Wi-Fi que pour des adresses MAC donnes. Une adresse MAC (Media Access Control) est un numro univoque identiant le contrleur Wi-Fi. Cette mesure de protection na toutefois quune efcacit limite, car un pirate peut travailler avec une fausse adresse MAC. teignez le point daccs lorsque vous ne lutilisez pas. Utilisez autant que possible des cls et mots de passe longs, qui ne peuvent tre "craqus" par des essais multiples. Un pare-feu vous permet de restreindre le trac Wi-Fi certains protocoles, segments de rseau, etc. Vous trouverez au Chapitre 29 des indications pour la scurisation dun client Wi-Fi par le biais dun pare-feu. Si votre point daccs Wi-Fi est branch un serveur Linux, ce chapitre vous fournira galement des astuces intressantes. Une autre solution pour augmenter la scurit consiste considrer le rseau Wi-Fi comme non sr, malgr toutes les protections possibles. Pour communiquer de faon scurise, vous devez chiffrer votre trac rseau vous-mme. La solution la plus populaire consiste utiliser un rseau priv virtuel (VPN).

Pare-feu

VPN

518

LINUX

Prise en charge du Wi-Fi par Linux


Wireless-Tools

Pour utiliser un contrleur Wi-Fi sous Linux, on fait appel aux outils Wireless-Tools (quil sagisse dun composant Wi-Fi intgr, dune carte PCI ou PCMCIA ou encore dun priphrique USB externe). Les Wireless-Tools sont une collection de commandes relativement restreinte (iwconfig, iwstatus, etc.) permettant de congurer ladaptateur Wi-Fi. La page web ci-aprs prsente quelques-unes de ces commandes plus en dtail. Les outils Wireless-Tools sont livrs avec toutes les distributions courantes. http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

Pilotes matriels

Les outils Wireless-Tools ne contiennent que des commandes de contrle. Les pilotes matriels se trouvent quant eux dans les modules du noyau. Si, dans les ditions prcdentes 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 contrleurs Wi-Fi populaires pour les standards 802.11a, b et g sont bien pris en charge. Cela inclut en particulier les contrleurs Intel PRO Wireless 2100, 2200 et 2915, que vous pourrez trouver dans les portables Centrino. Le Wi-Fi fonctionne de faon particulirement confortable sur Ubuntu : de nombreux contrleurs Wi-Fi sont reconnus et congurs automatiquement ds linstallation. Nanmoins, au niveau du noyau, le secteur du Wi-Fi demeure comme auparavant un certain chantier : tous les pilotes Wi-Fi possdent, depuis le noyau 2.6.22, une nouvelle base commune (mac80211, lui-mme bas sur la pile WLAN!Stack de Devicescape). Paralllement doit tre introduite une interface de communication avec les outils rseau (cfg80211). Enn, de nouveaux pilotes ou des amliorations des pilotes existants sont livrs avec chaque nouvelle version du noyau. Tout ceci conduit rgulirement des incompatibilits et autres problmes. Les articles suivants donnent une vision assez synthtique de la situation courant 2007 : http://lwn.net/Articles/219102/ ; http://www.linux-watch.com/news/NS9956020927.html
Un certain nombre de contrleurs Wi-Fi ne sont pas encore pris en charge par Linux ou exigent une installation manuelle et complexe de pilotes non encore intgrs officiellement au noyau. Il est encore trop tt pour le moment pour tablir un pronostic sur la prise en charge des contrleurs 802.11n ; dexprience, il faut au minimum un an pour que le pilote dun nouveau contrleur Wi-Fi fasse son apparition au sein dune distribution. Ne vous attendez donc pas ce que votre portable dernire gnration flambant neuf fonctionne immdiatement sous Linux. Avant lachat dun nouveau portable, renseignez-vous imprativement pour savoir si le contrleur quil intgre est pris en charge. Cest malheureusement plus simple dire qu faire : courant 2007, je nai pu trouver aucune rfrence jour sur Internet indiquant quels contrleurs Wi-Fi sont pris en charge sous Linux. Les deux sites suivants, sur lesquels vous pourrez trouver des retours dexprience sur la majorit des portables disponibles sur le march, se rvlent dj trs utiles : http://www.linux-on-laptops.com/ ; http://tuxmobil.org/

Problmes de firmware

La plupart des contrleurs Wi-Fi sont programmables. Pour quils fonctionnent correctement, un rmware (programme interne au contrleur) doit tre transmis au contrleur lors de son initialisation. Le rmware provient du fabricant et peut tre librement distribu sous rserve de respecter les termes de licence. Cest en gnral le module noyau ou le systme

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

519

udev qui se charge de la transmission du code vers le contrleur. Le code se trouve dans des chiers binaires (blobs), gnralement dans le rpertoire /lib/firmware. Toutefois, les fabricants de puces ne mettent disposition le rmware que sous forme binaire et non sous forme de code source. Cette situation ainsi que les termes de licence jusqu prsent complexes et restrictifs des fabricants ntaient pas compatibles avec les idaux open-source de nombreux dveloppeurs. Pour cette raison, le rmware est absent de nombreuses distributions Linux. Pour utiliser votre contrleur Wi-Fi, vous devez rechercher et installer le paquetage correspondant au rmware. Cest un peu pesant, mais gure compliqu : pour la plupart des distributions populaires, il existe des sources spciales pour de tels paquetages (par exemple livnia pour Fedora). SUSE et Ubuntu comptent parmi les exceptions positives : sur Ubuntu, le paquetage restricted contient les rmwares de trs nombreux composants matriels tandis que, sur SUSE, ce sont les paquetages Non-OSS (pour lesquels il existe une source propre).
Personnellement, je ne vois pas le problme des licences de firmwares de faon aussi dramatique : autrefois, le contrleur Wi-Fi aurait compris un EPROM et personne ne se serait plaint de labsence de code open-source. La solution actuelle est plus souple et moins coteuse (car elle permet des mises jour). Naturellement, il serait souhaitable que le code source soit disponible pour les programmes excuts dans le contrleur, mais cette esprance nest pas raliste. Tant que les fabricants de contrleurs Wi-Fi permettent de redistribuer leur firmware, je ne vois pas dargument qui soppose la politique dUbuntu. Larticle qui suit offre dailleurs une perspective intressante sur les discussions des dveloppeurs Debian sur la gestion des firmwares : http://lwn.net/Articles/195820/
Problmes avec la GPL

Comme si les problmes de rmware dj voqus ntaient pas sufsants, de nombreux pilotes Wi-Fi sont totalement incompatibles avec la GPL. Cela concerne en particulier le pilote MadWi-Fi pour de nombreux contrleurs Atheros. Ces pilotes contiennent un bloc de code binaire (Hardware Abstraction Layer ou HAL) qui est toutefois directement excut depuis le noyau (il ne sagit donc pas du rmware excut sur le contrleur). Leur statut est comparable celui des pilotes des fabricants pour les cartes ATI et NVidia. Ubuntu est distribue avec ces pilotes mais, sur la plupart des autres distributions, vous devrez les installer vous-mme depuis des sources externes.

Utiliser des pilotes Windows

Lorsquil nexiste aucun pilote Linux, pourquoi ne pas utiliser le pilote Windows ? Ce qui peut sembler totalement impossible au premier abord nest nalement pas si compliqu mettre en pratique : linterface dintgration des pilotes Wi-Fi sous Windows est relativement compacte. Plusieurs projets commerciaux et open-source ont implment cette interface (NDIS) sous Linux. Vous pourrez trouver des informations sur lutilisation 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 lesprit open-source dutiliser des pilotes binaires, dont le code sous-jacent nest pas contrl par la communaut open-source. Cela vaut toutefois

520

LINUX

galement pour les pilotes binaires de nombreuses cartes graphiques, auxquelles bon nombre dutilisateurs Linux se sont habitus. Un autre inconvnient est le fait que les pilotes Windows ne sont disponibles que pour les systmes compatibles Intel/AMD.

26.5 Activer manuellement le contrleur Wi-Fi


Cette section dcrit linitialisation manuelle dun contrleur Wi-Fi. La procdure est comparable celle employe pour un contrleur rseau usuel (voir un peu plus haut dans ce chapitre). Lobjectif principal de cette section est de vous donner un aperu de ce qui se passe en coulisse des outils de conguration modernes. Paralllement, elle doit galement vous servir daide lorsque vous rencontrez des difcults congurer et activer automatiquement votre contrleur Wi-Fi.
Reconnaissance du matriel

La premire tape consiste charger le module appropri pour votre contrleur Wi-Fi. Idalement, ce module est charg automatiquement lorsque vous amorcez votre ordinateur. La commande iwconfig vous permet de constater si la reconnaissance automatique a russi. Elle vous fournit des informations sur lensemble des adaptateurs Wi-Fi disponibles. Les lignes dexemple qui suivent proviennent dun portable Centrino dj peu rcent utilisant un contrleur Intel Pro Wireless 2100. Le contrleur a t reconnu automatiquement.
root# iwconfig lo no wireless extensions. irda0 eth0 no wireless extensions. 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 no wireless extensions.

eth1

Si iwconfig ne renvoie aucune information, vous devrez charger vous-mme le module noyau ncessaire laide de la commande modprobe. La commande dmesg ou un coup dil /var/log/messages devraient vous indiquer si le chargement du module sest bien droul. Pour le module ipw2100, les messages du noyau ont lallure 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 ...

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

521

Si vous ne savez pas de quel contrleur Wi-Fi vous disposez, excutez la commande lspci (ou lspcmcia sil sagit dune 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 difcile didentier le module noyau correspondant votre contrleur. La meilleure solution consiste ici effectuer une recherche sur Internet (par exemple sur http:// groups.google.com). Suivant le contrleur, il est galement possible que vous deviez pralablement installer le module noyau ncessaire et/ou le rmware (voir la section prcdente). Cela dpend non pas seulement du matriel mais galement de la distribution que vous utilisez.
Pour les installations aussi bien que pour vos recherches Internet, vous aurez besoin dune connexion rseau. Il est donc recommand de raliser la mise en service de votre contrleur Wi-Fi lorsque vous pouvez connecter votre ordinateur par un cble rseau ou, a minima, par un modem tlphonique.
Nom dinterface

Configuration Wi-Fi

De nombreux modules noyau Wi-Fi dsignent linterface Wi-Fi non pas par le nom ethn, mais par wlann ou athn (par exemple le pilote MadWi pour le contrleur Atheros). Cela limite le risque de dsordre dans la numrotation des interfaces rseau au branchement dun adaptateur Wi-Fi. Cette nomenclature diffrente nest toutefois pas trs loigne sur le fond : dans toutes les commandes qui suivent, il vous suft de remplacer eth0 par wlan0 ou ath0. An que la carte Wi-Fi puisse communiquer avec le point daccs, vous devrez en gnral congurer trois paramtres : le mode, lidentiant SSID et la cl. Vous pouvez congurer le mode et lidentiant SSID laide de la commande iwconfig :
root# iwconfig eth0 mode managed root# iwconfig eth0 essid wlan-sol

La suite des oprations dpend de la scurisation du rseau Wi-Fi. Les choses sont simples (mais pas particulirement sres) avec WEP : fournissez la cl hexadcimale 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 lgrement plus compliques lorsque vous utilisez WPA ou WPA2. Dans ce cas, le programme wpa_supplicant (issu du paquetage ponyme) est responsable de linitialisation de la connexion et des changes ultrieurs des cls en mutation permanente. Une fois celui-ci install, vous devez mettre en place un chier de conguration, que vous pouvez par exemple nommer /etc/wpa_supplicant.conf.

522

LINUX

Le chier contient tout dabord quelques paramtres globaux, puis des paramtres spciques pour divers rseaux Wi-Fi. Lexemple suivant vous montre une variante minimaliste, sufsante pour la connexion un routeur ou un point daccs Wi-Fi avec chiffrement personnel WPA ou WPA2. Les deux paramtres dcisifs ici sont ssid (identication du rseau) et psk (contenant la cl, chiffre pour des raisons de scurit, mais que lon 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 rsultat 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 trs secret network={ ssid="sol" #psk="Mon mot de passe trs secret" psk=18555b0f9e0fc28cd0aa9ee19575a9790de1f46050b5bb932682febf824699c4 }

Vous pouvez maintenant lancer wpa_supplicant. La commande sexcute jusqu ce que vous linterrompiez par la combinaison de touches Ctrl+C. Elle se charge dtablir la connexion Wi-Fi et, par la suite, de renouveler rgulirement la cl scurisant la connexion. En dautres termes, ce programme doit sexcuter tant que vous utilisez la connexion Wi-Fi. Vous devez donc partir de maintenant travailler dans une autre console. Quelques remarques complmentaires quant aux options de cette commande : -i renseigne linterface rseau, -c le chier de conguration (dont vous pouvez librement choisir le nom). Avec -D, vous indiquez le pilote Wi-Fi utiliser. Commencez par essayer wext (il sagit dune interface Wi-Fi gnrique prise en charge par de nombreux pilotes). Si cela ne fonctionne pas, vous pouvez alors essayer dindiquer 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 chier README livr avec le paquetage (suivant

CONFIGURER LACCS RSEAU (RSEAU 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./wpa_supplicant/ La page suivante, spcique Ubuntu, est galement une source intressante : http://wiki.ubuntuusers.de/WLAN/wpa_supplicant
Configuration du rseau

Vous navez maintenant plus qu connecter votre interface Wi-Fi votre rseau. Pour cela, faites appel comme pour une interface laire la commande ifconfig. Lorsque lordinateur doit tre insr au rseau avec ladresse IP 192.168.0.12, la commande a donc lallure 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 daccs fonctionne (vous devez pour cela connatre ladresse IP de lappareil). Pour pouvoir galement accder Internet, vous devrez paramtrer ladresse de la passerelle et dun serveur de noms, comme nous lavons dcrit la section correspondante de conguration manuelle dun rseau Ethernet (voir plus haut).
Lors de mes tests, jai rencontr des problmes avec un routeur ADSL : celui-ci rpondait correctement aux requtes DHCP de clients Ethernet, ainsi que des clients Wi-Fi non chiffrs ou chiffrs par WEP Toutefois, il . ignorait les requtes DHCP des clients Wi-Fi chiffrs par WPA. Sur Internet, je nai trouv que des rfrences isoles des problmes WPA/DHCP comparables, sans pour autant que ces rfrences ne me permettent didentifier des points communs avec le matriel et les logiciels que jutilisais. DHCP a par ailleurs fonctionn sans le moindre problme avec un autre routeur Wi-Fi : Linux ntait donc (probablement) pas en cause. En rsum : si WPA et DHCP ne parviennent pas fonctionner ensemble, ne doutez pas de vous mais configurez votre client en adresse IP statique.
Rcuprer le statut Wi-Fi

La commande iwconfig renvoie une synthse des paramtres principaux de toutes les interfaces 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-chier /proc/net/wireless fournit galement une synthse de la qualit courante de la connexion Wi-Fi :
root# cat /proc/net/wireless Inter-| sta-| Quality | face | tus | link level noise | eth0: 0004 100. 212. 0. Discarded packets nwid crypt frag 0 0 0 | Missed | WE misc | beacon | 20 0 0

retry 0

524

LINUX

La commande iwlist est galement parfois utile : elle fournit les choix disponibles pour diffrents paramtres et indique galement loption active parmi celles disponibles. Les deux exemples suivants illustrent son utilisation pour le canal et pour le rseau 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 congurer votre client Wi-Fi, vous disposez en gnral des mmes outils que pour la conguration dun client Ethernet (voir un peu plus haut dans ce chapitre). Une alternative est le gestionnaire de rseaux NetworkManager, particulirement adapt si vous utilisez frquemment votre connexion Wi-Fi (voir un peu plus loin dans ce chapitre). Dans cette section, jaborderai brivement les principaux chiers de conguration spciques au Wi-Fi. Je pars ici du principe que vous connaissez les chiers de conguration Ethernet de votre distribution.
En matire de Wi-Fi, il existe de grosses diffrences dune distribution lautre ! De nombreux contrleurs Wi-Fi fonctionnant immdiatement sur Ubuntu ne sont mme pas reconnus sur Fedora. SUSE se situe quelque part entre les deux. Naturellement, il est possible de faire fonctionner sur toute distribution un contrleur Wi-Fi gr par une distribution en particulier ; la question est seulement de savoir combien de temps vous tes prt y passer...
Debian, Ubuntu

La conguration centrale seffectue, comme pour les interfaces rseau laire, dans le chier /etc/network/interfaces. Deux options supplmentaires permettent de saisir la chane ESSID et la cl WEP.

CONFIGURER LACCS RSEAU (RSEAU 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 nest pour le moment pas en mesure dtablir des connexions Wi-Fi chiffres par WPA. Prfrez-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 : commencez par crer un chier /etc/wpa_supplicant.conf (comme mentionn prcdemment) 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 dUbuntu ne connaissent pas le mot-cl wpa. Vous pouvez alors vous aider des termes pre-up et post-down. Ces mots-cls indiquent quelles commandes doivent tre excutes avant ltablissement et aprs la fermeture de la connexion. Linstruction pre-up apparat ici sur plusieurs lignes pour des raisons de lisibilit (il a donc fallu la couper par un caractre \) :
# /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, Fedora

Sur Red Hat et Fedora, les interfaces Wi-Fi sont traites comme des interfaces LAN. Les lignes qui suivent prsentent un chier de conguration 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 cls WEP sont enregistres dans un chier propre keys-interface :


# /etc/sysconfig/network-scripts/keys-eth1 KEY=8C192B13ADF4EE58309953EEBE

526

LINUX

Dans la dernire version teste (Fedora 7), system-config-network ne prenait pas encore en charge WPA. Pour utiliser WPA, vous devez soit congurer manuellement wpa_supplicant, soit faire appel au NetworkManager.
SUSE

Les versions actuelles de SUSE prennent en charge deux variantes trs diffrentes de conguration Wi-Fi : la conguration classique (que nous prsentons ici) par Yast ainsi que la conguration dynamique laide du NetworkManager (voir la section suivante). Vous pouvez choisir la variante utiliser dans la premire bote de dialogue du module YaST Priphriques rseau > Carte rseau. La conguration est enregistre dans la variable NETWORKMANAGER dans le chier /etc/sysconfig/network/config. Si vous avez opt pour la variante classique, chaque interface Wi-Fi possde son propre chier de conguration dans /etc/sysconfig/network. Les lignes qui suivent (fortement lagues) visent montrer la structure dun tel chier pour une connexion Wi-Fi chiffre 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 conguration rseau sont bien souvent inadapts au quotidien des utilisateurs de portables : lorsque lon doit, plusieurs fois par jour, changer demplacement avec son ordinateur et chaque fois congurer une nouvelle connexion au rseau sans l local, lnervement nest pas loin. Cest prcisment pour des cas comme celui-ci que le NetworkManager a t dvelopp. Une appliquette montre, dans le tableau de bord KDE ou Gnome, ltat du rseau. Un menu vous permet de choisir parmi les rseaux sans l ou laires actuellement disponibles. Lorsque vous utilisez pour la premire fois un rseau sans l, le NetworkManager vous demande le mot de passe ; il reconnat lui-mme la technologie de chiffrement employe (WEP, WPA, WPA2). Si le rseau est nouveau utilis ultrieurement, les donnes dj connues sont rutilises automatiquement. http://www.gnome.org/projects/NetworkManager http://live.gnome.org/DarrenAlbers/NetworkManagerFAQ
Problmes, inconvnients

Si vous pensez toutefois que le NetworkManager soit la solution tous les problmes de Wi-Fi, je me dois malheureusement de vous dcevoir : Le NetworkManager ne peut tre utilis que sur un rseau gr par DHCP : il nest pas possible de congurer les paramtres de faon statique.

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

527

Le NetworkManager est inadapt pour congurer plusieurs interfaces LAN (comme cest le cas, par exemple, sur un serveur). Courant 2007, le NetworkManager rencontrait encore des problmes de compatibilit avec certains contrleurs Wi-Fi. Il fonctionne bien avec, entre autres, les contrleurs Intel 2100, 2200 et 2915 ainsi quavec le pilote MadWi. La page suivante vous donnera plus de dtails 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 rseau quaprs avoir ouvert une session. Pour de nombreuses fonctionnalits, il serait souhaitable de disposer dune connexion rseau ds lamorage de lordinateur. Il existe par ailleurs une complication supplmentaire : le NetworkManager ne peut grer que les interfaces non utilises. En dautres termes, lutilisation simultane doutils de conguration classiques avec le NetworkManager conduit des conits. Fin 2006, OpenSUSE 10.2 a t la premire distribution en tirer des consquences et demander la conguration rseau quel outil (parmi YaST ou le NetworkManager) utiliser.
Dmarrage

Le NetworkManager est, sur la plupart des distributions, partag entre plusieurs paquets : network-manager contient le programme NetworkManager proprement parler ainsi que NetworkManagerDispatcher, qui effectuent tout le travail en tche de fond. Vriez bien que ces services sont effectivement lancs par le systme Init-V. Sur certaines distributions (par exemple Fedora), ce nest pas le cas par dfaut. Les interfaces graphiques pour Gnome et KDE se trouvent dans les paquetages networkmanager-gnome et knetworkmanager. Avant de lancer le NetworkManager, vriez que les interfaces rseau ne sont pas gres par le programme de conguration de votre distribution. Effacez-y toute interface existante ! Sur Debian et Ubuntu, vous pouvez aussi, tout simplement, effacer les lignes correspondantes dans le chier /etc/network/interfaces (faites-en toutefois ventuellement une copie de sauvegarde). Les interfaces rseau devraient maintenant tre inutilises, ce dont vous pouvez vous convaincre laide de la commande ifconfig. Au besoin, dsactivez vous-mme les interfaces :
root# ifconfig eth0 down root# ifconfig eth1 down

Pour lancer le NetworkManager, excutez lune des deux commandes suivantes selon votre environnement de bureau. Le programme (Applet) apparat alors sous la forme dune icne dans le tableau de bord. Au besoin, les services NetworkManager requis sont lancs automatiquement. Par la suite, Gnome et KDE se chargeront de lancer automatiquement lappliquette. utilisateur$ nm-applet & Gnome utilisateur$ knetworkmanager & KDE Un clic sur lappliquette vous montre tous les rseaux porte desquels vous vous trouvez, ainsi que leur nom. Une fois que vous avez choisi un rseau, apparat une bote de dialogue pour saisir votre mot de passe. Pour vous viter davoir saisir systmatiquement le mot de

528

LINUX

passe, le NetworkManager enregistre ce dernier dans la base de donnes centrale de Gnome ou KDE (dont vous devez fournir le mot de passe matre la premire tentative dutilisation).

26.8 Zeroconf et Avahi


Zeroconf

Jusqu prsent, je suis parti du principe que la conguration rseau de votre ordinateur tait effectue soit par vous-mme, soit par le biais dun serveur DHCP (voir Chapitre 28). Il existe toutefois une troisime voie : la conguration automatique par Zeroconf. Dans ce cadre, tous les ordinateurs prsents sur le rseau partagent leurs informations de connexion. Un nouvel ordinateur ou priphrique connect au rseau peut donc se congurer automatiquement laide de ces informations, de manire pouvoir communiquer sans conit avec les autres priphriques. Les ordinateurs congurs par ce biais utilisent des adresses IP de la plage 169.254.*.* ainsi que des noms dhtes 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 problmatique , lorsque certaines adresses IP sont attribues par DHCP et dautres par Zeroconf : les ordinateurs se trouvent alors sur deux segments de rseau distincts qui ne peuvent communiquer entre eux.

Un explorateur compatible Zeroconf montre tous les ordinateurs Zeroconf visibles sur le rseau ainsi que leurs ressources (par exemple les partages rseau, serveurs HTTP ou FTP). Ainsi, il est possible dintgrer plusieurs ordinateurs un rseau et de partager des donnes, sans pour autant exiger un gros travail de conguration. Il reste voir si le concept de Zeroconf peut simposer : le dveloppement des routeurs (ADSL) intgrant des serveurs DHCP facilite lintgration dordinateurs Linux au sein dun rseau, mme sans faire appel Zeroconf. Pour les rseaux statiques, dont la structure ne change que rarement, Zeroconf prsente peu dintrt. Mme pour les rseaux htrognes comprenant des ordinateurs sous Windows, Zeroconf nest pas dune grande assistance car il est peu usit sous Windows.
Avahi

Zeroconf fut initialement implment par Apple sous le nom Rendezvous. Ce projet, ultrieurement baptis Bonjour, est galement disponible pour Windows. Cette implmentation, bien que disponible sous forme de code open-source, nest toutefois pas compatible avec la licence GPL. Pour cette raison, un projet Zeroconf (indpendant de Bonjour) a vu le jour pour Linux, sous le nom dAvahi. 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 trouverez ce programme ainsi que divers outils et bibliothques. Il nest toutefois que rarement install et activ.

CONFIGURER LACCS RSEAU (RSEAU LOCAL, WI-FI)

529

Il existe galement des lacunes au niveau de lintgration avec les outils de conguration rseau. Loutil Gnome network-admin est toutefois une exception positive : vous pouvez y activer le lancement automatique du dmon Avahi par le biais du systme Init-V. lheure actuelle, mes tests ont montr que lutilisation dAvahi nest pas aussi simple quon pourrait sy attendre. Ces problmes ne sont pas forcment lis la technique en soi ou limplmentation dAvahi. Ladoption de Zeroconf est encore trs limite et, par ailleurs, il existe un certain scepticisme quant la sret de loutil. Aucune distribution na donc pour le moment franchi le pas de mettre en place Avahi ds linstallation dun ordinateur : cela contribuerait pourtant donner ses lettres de noblesse cet outil.

27

Accs Internet
Dans les chapitres prcdents, nous avons suppos que lordinateur tait connect un rseau local et accdait de cette manire Internet. La situation actuelle en France y correspond souvent. Du fait de la prpondrance des "box" sur le march de lADSL, peu de personnes se soucient aujourdhui de laccs Internet : lordinateur 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 conguration est gre par le routeur et est quivalente la connexion dun ordinateur au rseau local. Les informations pertinentes ce sujet se trouvent au Chapitre 26. Cependant, il existe dautres mthodes daccs Internet : Modem analogique. Dans certaines zones non desservies par lADSL ou pour des raisons dconomies, le modem analogique est une alternative souvent peu coteuse bien que lente. Toutes les distributions Linux fournissent des outils de conguration pour les modems. Les modems plus anciens connects une interface srie prsentent peu de problmes. Les modems internes (sur un ordinateur portable), les cartes PCI modem et les modems USB ont souvent besoin de pilotes qui manquent frquemment sous Linux. RNIS. Le RNIS est largement pass de mode en France. De plus, peu de distributions fournissent les outils de conguration. Pour de nombreuses cartes, il faut tlcharger les pilotes du fabricant (ce qui est difcile sans accs Internet). Nous nen parlerons que brivement dans cette section. ADSL. Si vous disposez dun routeur ADSL (ce que sont la plupart des "box" des fournisseurs daccs), il suft de brancher votre ordinateur au routeur. Techniquement, cette conguration est quivalente un rseau local. La conguration est un jeu denfant grce DHCP et tout peut tre prt en moins dune minute. En revanche, si vous utilisez un modem ADSL non routeur, la conguration est gnralement plus complique et dpend de nombreux facteurs comme votre fournisseur daccs et linterface du modem. Cest de cette situation que nous traiterons dans ce chapitre.

27.1 Outils de configuration


Configuration dun modem analogique
Outils de configuration

Selon la distribution et votre environnement de bureau, les diverses interfaces utilisateur suivantes sont votre disposition pour congurer votre modem. Vous pouvez aussi lancer la connexion avec loutil network-admin. Cependant, cet outil est peu pratique au quotidien. Le problme principal est que cet outil ne renvoie aucune information sur ltat de la connexion et sur les diffrents problmes rencontrs. Pour les utilisateurs de Gnome, gnome-ppp est le meilleur choix.

532

LINUX

Gnome KDE Debian, Ubuntu Red Hat, Fedora SUSE

gnome-ppp kppp (voir Figure 27.1) outils Gnome/KDE system-config-network = neat module YaST Priphriques rseau > Modem

Laspect de ces diffrents programmes varie, mais il se ramne toujours aux quatre informations principales que sont le numro de tlphone de votre fournisseur daccs, votre identiant et votre mot de passe chez ce fournisseur ainsi que linterface physique de votre modem. Certains programmes sparent la conguration matrielle de la conguration du fournisseur daccs. Les problmes de conguration ne sont gnralement lis quau matriel. Il existe diffrents types de modems analogiques : Modems externes. Les modems externes sont des priphriques relier linterface srie de lordinateur. Ils ne prsentent gnralement que peu de problmes. On accde linterface srie sous Linux avec /dev/ttySn, o n est, selon toute probabilit, 0 ou 1. Modems USB. Ces modems sont connects lordinateur via USB. Linterface correspondante est souvent /dev/ACMn ou /dev/input/ttyACMn. Gnralement, ce type de modem est galement pris en charge, mais certains modles peuvent poser problme. Vous trouverez une liste de compatibilit ladresse http://www.linux-usb.org/. Modems internes. Les modems internes consistent en une carte additionnelle ou sont intgrs directement la carte mre de lordinateur. Sous Linux, on accde gnralement ces modems comme des modems externes par /dev/ttySn. Malheureusement, il sagit souvent de "winmodems", qui sont peu ou mal pris en charge sous Linux.

Figure 27.1
Configuration dun modem avec KPPP .

ACCS INTERNET

533

Configuration RNIS
Outils de configuration

Traditionnellement, SUSE tait la meilleure distribution pour les utilisateurs de RNIS. Le march allemand avait de nombreux utilisateurs RNIS et beaucoup de matriels RNIS sont allemands (AVM, Siemens). Depuis, SUSE fait partie de lentreprise amricaine 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 diffrentes interfaces utilisateur pour congurer votre carte RNIS.
Debian, Ubuntu Red Hat, Fedora SUSE network-admin (suppose que le matriel CAPI est configur) system-config-network = neat (uniquement ISDN4Linux) module YaST Priphriques Rseau, ISDN (RNIS) (ISDN4Linux, CAPI)

Nous ne traiterons pas plus du RNIS dans le cadre de cet ouvrage. La conguration et les difcults que vous pouvez rencontrer dpendent largement du matriel 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 conguration RNIS sous Ubuntu 8.04.

Configuration ADSL
La mthode daccs Internet la plus simple consiste utiliser un routeur ADSL. Si vous disposez uniquement dun modem ADSL, sa conguration dpend de son type, de la variante de PPP utilise 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 gnralement 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 daccs.
Outils de configuration

Le tableau suivant rsume les outils de conguration ADSL utilisables dans chaque distribution et les protocoles quils prennent en charge.
Debian, Ubuntu Red Hat, Fedora SUSE pppoeconf (uniquement PPPOE) system-config-network = neat (uniquement PPPOE) module YaST Priphriques rseau, DSL (PPPOE, PPPOA, PPTP CAPI pour ADSL). ,

Si votre distribution ne fournit pas doutils pour votre modem ADSL ou pour le protocole pris en charge par votre fournisseur daccs, vous pouvez vous procurer un routeur ADSL ou congurer manuellement votre modem.

534
pppoeconf

LINUX

Les distributions bases sur Debian fournissent loutil en ligne de commande pppoeconf. Dmarrez pppoeconf en tant que root dans une fentre de terminal. La commande cherche un modem ADSL sur toutes les interfaces rseau. Une fois le modem trouv, indiquez votre identiant et votre mot de passe. Vous pouvez simplement conrmer les questions suivantes propos de la conguration du DNS et des paramtres MSS. Pour nir, le programme vous demande si la connexion ADSL doit tre lance automatiquement au dmarrage de lordinateur ou bien manuellement. La premire variante est sense lorsque votre accs ADSL est illimit (ce qui est le cas pour limmense majorit des forfaits en France) et lorsque vous voulez rester en ligne en permanence. Dans la seconde variante, vous devez activer et dsactiver manuellement laccs Internet avec les commandes suivantes :
root# pon dsl-provider ... root# poff dsl-provider

27.2 Configuration manuelle dun modem


Cette section traite du problme des winmodems et de la conguration manuelle dune connexion avec un modem via pppd. Il ne sagit que dune section minimale ; en cas de problme ou pour plus de dtails, reportez-vous au Modem HOWTO (http://tldp.org/ HOWTO/Modem-HOWTO.html).

Winmodems
Les modems internes sont souvent des winmodems (ou softmodems). Les fonctions diverses du modem ne sont pas gres par le matriel, mais mules par du logiciel. Ce logiciel nest souvent disponible que sous Windows. Peu de winmodems fonctionnent sous Linux. La plupart des entreprises ne fournissent pas les spcications ncessaires au dveloppement de pilotes pour les projets libres. Vous trouverez plus dinformations 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 prsente de nombreux modles, leur compatibilit avec Linux et ventuellement dcrit leur fonctionnement. La premire tape consiste dterminer le type exact de modem dont vous disposez. Tlchargez 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

scanModem

ACCS 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 gre par une puce son Intel. La commande indique que je dois charger le module du noyau sndintel8x0m 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 chiers dans le rpertoire Modem. Ceux-ci fournissent des informations supplmentaires 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 actualiss chaque mise jour du noyau. Cela en fait une solution limiter aux cas durgence.

Configuration manuelle de pppd


La connexion stablit en deux tapes. Le modem doit dabord composer le bon numro de tlphone, ce que fait le programme chat. Lorsque la connexion tlphonique est tablie,

536

LINUX

pppd est dmarr. Il prend le contrle du modem et commence communiquer avec le fournisseur daccs. Une fois lauthentication russie, votre ordinateur est connect Internet.
chat

chat dnit ltablissement de la communication entre le modem et le fournisseur daccs. Le chier suivant est un exemple de conguration de chat.
# /etc/chatscripts/mychat # paramtres TIMEOUT 60 ABORT ERROR ABORT BUSY ABORT VOICE ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "NO DIAL TONE" ABORT "NO ANSWER" # la communication elle-mme "" "+++ATZ" "OK" "ATDT1234567890" CONNECT

La premire section indique quelles erreurs sont rdhibitoires pour la connexion. La seconde section est la communication du modem. La premire ligne remet 0 le modem, la deuxime ligne lance la numrotation (1234567890 est ici remplacer par le numro de tlphone de votre fournisseur daccs) et la troisime ligne tablit la connexion si aucune des erreurs prcdentes na t rencontre.
Options de pppd

Le chier suivant, placer dans le rpertoire /etc/ppp/peers (par exemple /etc/ppp/peers/ myconnection), contient les options de pppd pour tablir la connexion. Linterface du modem doit tre indique dans la premire ligne ( lexception des commentaires). Le mot cl connect appelle le bon chier de conguration pour chat. Vous trouverez une description de toutes les autres options de ce chier dans man pppd.
/dev/ttyS0 # spcifique 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"

Authentification

Les chiers de conguration pour PAP et pour CHAP doivent tous les deux tre composs dune ligne qui contient lidentiant et le mot de passe chez votre fournisseur daccs :
# login name "identifiant" password (secret) * "mot_de_passe"

ACCS INTERNET

537

Red Hat et Fedora

Il existe une tape supplmentaire sous Red Hat et Fedora. Vous devez modier le chier /etc/sysconfig/network-scripts/ifcfg-myconnection pour y ajouter le paramtre PEERDNS=yes. La connexion est dmarre avec :
root# pppd call myconnection

Dmarrage et arrt de la configuration

pppd est lanc en tche de fond. Il faut gnralement compter une trentaine de secondes pour que la connexion soit tablie. Vous pouvez alors vrier avec ifconfig, route -n et ping si la connexion fonctionne bien. Pour couper la connexion, lancez :
root# killall pppd

27.3 Configuration matrielle de lADSL


Variantes de configuration

Il existe plusieurs possibilits de conguration en fonction du type de modem ADSL (Ethernet ou USB) ou du protocole (PPPoE, PPPoA, PPTP). Dans cette section, nous traiterons de PPPoE et de PPTP. Nous ne visons cependant pas lexhaustivit, qui dpend en grande partie du matriel et du fournisseur daccs. Vous trouverez des informations sur certains modles courants en France ladresse http://doc.ubuntu-fr.org/modem_adsl. Nous nvoquerons donc pas PPPoA. Nous vous conseillons dviter ces modems sous Linux. Linstallation en est complexe et lutilisation trop sujette erreur. Si vous devez passer par PPPoA, il est prfrable dacqurir un routeur ADSL compatible avec PPPoA. La page http://www.linux-usb.org/SpeedTouch/ parle plus prcisment des modems Speedtouch.

Configuration manuelle de PPPoE


Configuration de la carte rseau

Le modem ADSL est connect la carte rseau par un cble Ethernet. Cependant, le protocole TCP/IP nest pas utilis. Ladresse IP et le masque de sous-rseau de linterface ne sont pas pris en compte. Il nest donc pas ncessaire de congurer la carte. En particulier, linterface rseau ne doit pas tre congure en tant que passerelle. PPPoE est gr par un module du noyau. Pour que pppd puisse utiliser linterface rseau pour PPPoE, il faut installer le module de pppd, rp-pppoe.so. Ce chier est gnralement install avec pppd. Pour congurer pppd, vous avez besoin dun chier de conguration dans /etc/ppp/peers (par exemple /etc/ppp/peers/adsl) analogue celui-ci :
# options spcifiques PPPoE plugin rp-pppoe.so mru 1492 mtu 1492 # le modem ADSL est branch cette interface eth0 # options habituelles

Configuration de pppd

538

LINUX

lock noauth noipdefault defaultroute usepeerdns # identifiant pour /etc/ppp/pap-secrets et chap-secrets name "hofer" # attendre 4 secondes lors d'une dconnexion avant d'essayer de # reconnecter persist holdoff 4 maxfail 25 # pour Red Hat/Fedora ipparam "adsl"
Dmarrage et arrt de pppd

pppd est dmarr comme un modem analogique avec la commande :


root# pppd call adsl

Pour fermer la connexion, arrtez pppd avec killall.


root# killall pppd

Configuration manuelle de PPTP


Le protocole PPTP est pris en charge par le programme pptp. La plupart des distributions courantes fournissent ce paquet dans un seul paquet du mme nom, qui nest cependant pas toujours install automatiquement. Vous trouverez plus dinformations sur PPTP et sur son programme de conguration graphique pptpconfig ladresse http://pptpclient.sourceforge.net/. Le modem ADSL est connect lordinateur via Ethernet, mais il faut cette fois congurer la connexion. Vous devez choisir ladresse IP et le masque de sous-rseau de manire que le modem soit accessible. Si ladresse IP de votre modem est 10.0.0.138 (ce qui est le cas de certains modems Alcatel), choisissez pour votre interface une IP de type 10.0.0.n et un masque 255.255.255.0. Nindiquez pas dadresse de passerelle. Pour vrier que la connexion fonctionne, utilisez simplement ping et vriez que le modem rpond son adresse. Pour congurer pppd, vous avez besoin dun chier dans /etc/ppp/peers, par exemple / etc/ppp/peers/adsl. Les lignes qui suivent sont un exemple de ce type de chier.
# /etc/ppp/peers/adsl # options spcifiques 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

Configuration de la carte rseau

Configuration de pppd

ACCS INTERNET

539

defaultroute usepeerdns # attendre 4 secondes lors d'une dconnexion avant d'essayer de # reconnecter persist holdoff 4 maxfail 25 # pour Red Hat/Fedora ipparam "adsl"
Dmarrage et arrt de pppd

Pour dmarrer et arrter pppd, utilisez les commandes habituelles :


root# pppd call adsl root# killall pppd

28

Passerelle Internet (mascarade et DHCP)


Ce chapitre traite de la conguration dun serveur. Il sadresse tous ceux qui grent de petits rseaux locaux, dans lesquels se trouvent ventuellement des clients Windows. Il dcrit la mise en place dune passerelle Internet pour le rseau local. Il sagit dun ordinateur qui met disposition laccs Internet pour dautres ordinateurs. Le plus simple est gnralement dactiver la mascarade sur cet ordinateur. Pour faciliter la gestion du rseau local, linstallation dun serveur DHCP est galement conseille. Les clients qui sy connectent peuvent alors tre congurs presque entirement automatiquement. Une passerelle devrait toujours tre protge par un pare-feu (voir Chapitre 29). Les informations de ce chapitre ont t testes uniquement sous Ubuntu, openSUSE et Fedora, mais la conguration des distributions Debian, SUSE Enterprise et Red Hat diffre gnralement peu.

28.1 Introduction
Ce chapitre dcrit linstallation des composants suivants : Mascarade/NAT. La mascarade permet de connecter tous les clients dun rseau local Internet. Un ordinateur est connect Internet via ISDN ou ADSL, tandis que tous les autres sont connects cette machine et peuvent utiliser Internet de cette manire. Il nest donc pas ncessaire que tous aient leur propre modem ! DHCP et DNS. Le DHCP permet de grer automatiquement les adresses IP et dautres paramtres rseau sur tous les clients. Il existe deux possibilits pour mettre en place ce type de serveur. Dans le cas dun petit rseau simple, on peut utiliser dnsmasq, qui gre la fois le DHCP et le service de noms (DNS) du rseau. Pour des tches plus importantes, on utilise plutt dhcpd. Celui-ci ne fait pas ofce de serveur de noms ; il est gnralement coupl avec Bind. La conguration de ce dernier, plutt complexe, sort du cadre de cet ouvrage. Pour des raisons de scurit, les paquetages prsents ici ne sont gnralement pas installs par dfaut. Il existe parfois des paquetages avec des noms similaires pour les services clients associs, mais ils ne sufsent pas. Une fois le paquetage serveur install, le programme doit tre activ explicitement. Ce chapitre sadresse des utilisateurs avancs de Linux. Les divers chiers de conguration seront dcrits, ce qui ne sera pas le cas des interfaces utilisateur mises disposition par les diffrentes distributions. Lapproche suivie ici (modication manuelle des chiers de conguration) peut sembler dmode, mais elle a fait ses preuves. Vous ne savez o se trouvent les chiers que lorsque vous les modiez manuellement. Et seule cette mthode permet de modier ou de transfrer

Installation des paquetages

Aides la configuration

542

LINUX

une conguration sur un autre serveur, par exemple aprs une rinstallation ou un changement de distribution.
Scurit

Si vous dsirez utiliser Linux en tant que serveur rseau, vous devez vous proccuper de la scurit (voir Chapitre 29). Toutes les commandes utilises ici sont compatibles avec IPv6. Les tests nont cependant t effectus que sur une base IPv4 et les spcicits dIPv6 ne seront pas traites.

IPv6

Topologie du rseau utilis comme exemple


Pour faciliter lorientation dans ce chapitre et les suivants, nous utilisons un rseau xe (voir Figure 28.1).
Nom de domaine sol (192.168.0.*)

Le rseau local utilise la plage dadresses 192.168.0.* et le domaine sol. Les adresses IP sont obtenues de la manire suivante. Lorsque vous planiez un rseau, le serveur obtient gnralement ladresse *.*.*.1 et tous les clients, des adresses *.*.*.n, o n est une suite de nombres squentielle.

Figure 28.1
Topologie du rseau.

Passerelle mars (192.168.0.1)

mars est la passerelle. Elle scurise aussi le rseau contre les accs extrieurs par un pare-feu. Divers services rseau fonctionnent dessus (DHCP, DNS, Apache, MySQL, Samba, NFS, SSH, etc.).

PASSERELLE INTERNET (MASCARADE ET DHCP)

543

Laccs Internet est assur par un modem ADSL, branch via un cble rseau (eth1). Laccs au rseau local passe par un concentrateur (hub) via eth2. Lordinateur dispose galement dune imprimante USB, partage par tout le rseau.
Autres lments du rseau

uranus et saturne sont des ordinateurs xes, avec pour adresses IP 192.168.0.2 et 192.168.0.13. mercure est un ordinateur portable, avec pour IP 192.168.0.15. pluton est une imprimante laser rseau.
Pour des raisons de scurit, il serait prfrable que mars ne serve qu laccs Internet et au pare-feu. Un vieil ordinateur peut alors suffire. Tous les autres services du rseau peuvent tre grs par un second ordinateur derrire le pare-feu. Le problme de cette configuration est que chaque programme serveur sur mars prsente le danger quun intrus lutilise pour accder lordinateur (malgr le pare-feu). Dans les grandes entreprises, larchitecture rseau spare gnralement lordinateur pare-feu et les serveurs. Pour mon environnement de test priv, cest nanmoins nettement moins pratique.

Installation dune passerelle Internet


Pour installer une passerelle Internet, on passe gnralement par les tapes suivantes : Installation de la distribution. Installez dabord la distribution souhaite, de la manire la plus rduite possible. Plus le nombre de paquetages est lev, plus le risque dune faille de scurit est grand. Conguration du rseau. Pour congurer le rseau, utilisez des adresses statiques. La passerelle dispose gnralement de deux cartes Ethernet : lune delles assure la connexion Internet (par exemple, via un modem ADSL), la seconde sert de connexion au rseau local. Conguration dInternet. Congurez Internet. Si votre connexion nest pas permanente ou illimite, il faut gnralement la congurer de sorte quelle soit mise en place automatiquement et coupe lorsquelle nest plus utilise. Si votre accs est permanent et illimit, rien ne soppose ce que la connexion soit tablie ds le dmarrage de lordinateur et arrte en mme temps que ce dernier. Mascarade. Pour que les autres ordinateurs du rseau accdent Internet, il faut activer la mascarade. Pour que les ordinateurs clients puissent utiliser cette fonction, les prrequis suivants sont ncessaires. Ils doivent tre connects au serveur via le rseau local, indiquer ladresse du serveur en tant que passerelle et comme serveur de noms celui du fournisseur daccs Internet. Pour les premiers tests, vous pouvez paramtrer les clients de manire statique. DHCP. Pour faciliter la conguration des clients, il est conseill dinstaller un serveur DHCP qui attribue tous les clients leur adresse IP, ainsi que la passerelle et ladresse du serveur de noms. Le client ne doit alors tre congur quen tant que client DHCP, ce que permettent toutes les distributions Linux et Windows en quelques clics.

544

LINUX

Serveurs de noms. Pour que les clients connaissent les noms des ordinateurs du rseau, linstallation dun serveur de noms simpose souvent dans les rseaux importants. Ce service est utile pour la communication interne et se place entre le DNS du fournisseur daccs et lordinateur client. Il rduit le trac Internet vers le fournisseur daccs et les requtes peuvent tre traites plus vite. Pare-feu. Pour scuriser les ordinateurs du rseau local contre un accs indsirable, il faut absolument installer un pare-feu sur lordinateur (voir Chapitre 29). Lorsque votre rseau local est congur, vous pouvez rapidement ajouter un client. Si votre DHCP est gr par dnsmasq, il suft dajouter une ligne hostname /etc/dnsmasq.conf. Ici, 00:11:22:33:44:55 est lidentiant MAC de la carte rseau (numro unique), terre le nom dhte du nouvel ordinateur et 192.168.0.21 ladresse IP souhaite.
dhcp-host=00:11:22:33:44:55,terre,192.168.0.21

Ajout de nouveaux clients

Si vous utilisez dhcpd et bind, ajoutez un lment selon le motif suivant :


host terre { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.0.12;}

Sur le client, linstallation est encore plus simple : il suft dindiquer que la conguration rseau est assure par DHCP.

Comparaison entre un routeur matriel et une passerelle Linux


De nombreuses fonctions de ce chapitre peuvent galement tre remplies par un routeur ADSL matriel. Il sagit dun appareil qui fait ofce de modem ADSL, de commutateur Ethernet et ventuellement de point daccs sans l. Cest le cas de la plupart des "box" prtes ou loues par de nombreux fournisseurs daccs franais. En gnral, ce type dappareil sert galement de serveur DHCP et de pare-feu. Il est congur via un navigateur web. Il faudrait dailleurs plutt parler de passerelle, mais le terme routeur sest impos.

Figure 28.2
Routeur ADSL.

Le principal avantage dun routeur matriel est que la conguration est trs simple et quil est, lachat, moins cher quun ordinateur sous Linux et un commutateur (auxquels il faut parfois ajouter un modem ADSL et une carte sans l). Si vous souhaitez rapidement mettre en place un accs Internet, ce type de solution vous conomisera du temps et de la fatigue.

PASSERELLE INTERNET (MASCARADE ET DHCP)

545

Il suft alors gnralement de connecter les ordinateurs au routeur, comme lillustre la Figure 28.2. Cette solution prsente lavantage de la simplicit. Vous pouvez, par exemple, intgrer un serveur web local ou des serveurs dauthentication ou de chiers (LDAP, Samba, etc.). De plus, vous comprendrez vraiment comment fonctionne votre rseau et quels services sont votre disposition. Pour nir, il est possible de combiner ces deux stratgies : 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 dpart de la mascarade est toujours le mme : un ordinateur est connect Internet et doit fournir un accs Internet dautres ordinateurs du rseau local. Le problme est quen gnral, les clients du rseau local utilisent des adresses IP prives : celles-ci se trouvent dans des plages dadresses rserves pour les rseaux locaux. Elles ne sont valides que sur le rseau local et pas sur Internet. Seul le serveur dispose (en plus de son IP sur le rseau local) dune seconde adresse IP unique sur le rseau mondial, attribue par le fournisseur daccs Internet. Cette adresse nest souvent pas xe ; elle peut changer intervalles rguliers ou chaque dconnexion. Pour viter les conits dadresses, le serveur ne peut pas se contenter de transmettre les requtes Internet des clients sans les modier. On parlerait dans ce cas dun routeur. Les termes de mascarade et de routage sont souvent intervertis, mais recouvrent deux concepts diffrents. Le routage sur Internet nest possible que lorsque les clients disposent dune IP valide sur Internet, ce qui est rarement le cas dans un rseau local.
Dans ce qui suit, lordinateur dot de laccs Internet est dsign comme serveur et tous les autres sont appels clients, indpendamment de leurs fonctions relles. Dans le cas de la mascarade, le serveur est souvent appel passerelle Internet ou routeur (ce qui est un abus de langage).
Mascarade

Selon le concept de mascarade, les paquets de donnes provenant des clients destination dInternet sont accepts par le serveur, puis transforms comme sils en provenaient. Pour formuler cela de manire plus concrte, ladresse dexpdition du paquet du client (par exemple 192.168.0.17) est transforme en ladresse du serveur (par exemple 175.118.190.232). Cette modication est dsigne par le terme NAT (Network Address Translation, traduction dadresses rseau). Le NAT est un concept plus avanc que celui de mascarade. En effet, il existe plusieurs manires de mettre en place un NAT, la mascarade tant la plus simple. Le paquet peut alors tre envoy sur Internet, qui renvoie gnralement une rponse aprs un certain temps. Par exemple, si le paquet de donnes de dpart est une requte vers un site web, la rponse est le document HTML demand sous la forme de paquets IP.

546

LINUX

Le problme pour le serveur est alors dadresser la rponse au bon ordinateur (en loccurrence, 192.168.0.17). Comment connat-il la bonne adresse ? Vu que le paquet de requte provient du serveur, la rponse lui est galement adresse. Pour rsoudre ce problme, le serveur modie non seulement ladresse dexpdition, mais aussi le port dexpdition. Chaque adresse IP du rseau local est associe un port donn. Les communications TCP/IP sont rparties sur diffrents ports. Les ports sont des informations supplmentaires qui identient le service. Par exemple, FTP utilise normalement les ports 20 et 21, HTTP 80, etc. Il existe aussi de nombreux ports auxquels aucun service nest associ. Ces numros sont, entre autres, utiliss pour la mascarade. Celle-ci est mise en place grce 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 et pare-feu

Les fonctions de mascarade et de pare-feu sont troitement lies. Cette section suppose que lordinateur nest pas encore congur en tant que pare-feu. Si cest le cas, vous devrez dabord dsactiver le pare-feu avant de pouvoir activer la mascarade (voir Chapitre 29 ).

Mascarade avec iptables


Configuration manuelle

Aprs cette description de la mascarade, vous vous attendez probablement une conguration extrmement complique. Vous ne pourriez pas vous tromper davantage. Deux commandes sufsent lactiver :
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 dIP du noyau, qui est par dfaut dsactive. Dans de nombreuses distributions, vous pouvez utiliser la place la commande sysctl, plus lgante :
root# sysctl -w net.ipv4.ip_forward=1

La commande iptables dnit une rgle selon laquelle un paquet qui doit quitter le rseau local est transmis linterface eth1 et manipul avec les rgles du NAT. Selon la conguration de votre accs Internet, vous devez utiliser, la place de eth1, une autre interface, comme ppp0 ou ipp0 !
MSS clamping

Si le serveur accde lADSL via le protocole PPPoE (ce qui est rarement le cas en France), cela peut poser problme pour les gros paquets IP. Pour viter cela, on utilise une commande iptables supplmentaire. Cette rgle, appele MSS clamping, vite que de trop gros paquets ne soient envoys :
root# iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu

Scurit minimale

Il est prfrable de mettre en place une scurit minimale contre les abus. Aprs tout, une fois la mascarade active, tous les ordinateurs du rseau local sont connects Internet. Les trois commandes suivantes sassurent que tous les paquets du rseau local passent, mais que seuls les paquets entrants envoys en rponse une requte sont transmis au rseau local. Nous supposons ici que le rseau local est connect au serveur via eth2 et que laccs

PASSERELLE INTERNET (MASCARADE ET DHCP)

547

Internet passe par eth1. Vous devez modier ces valeurs en fonction de votre propre conguration.
root# root# root# root# /proc/sys/net/ipv4/ip_forward -P FORWARD DROP -A FORWARD -i eth2 -o eth1 -j ACCEPT -A FORWARD -i eth1 -o eth2 -m state \ --state ESTABLISHED,RELATED -j ACCEPT root# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Dsactiver la mascarade

echo 1 > iptables iptables iptables

Pour dsactiver la mascarade, lancez les commandes suivantes :


root# iptables -t nat -D POSTROUTING -o eth1 -j MASQUERADE root# echo 0 > /proc/sys/net/ipv4/ip_forward

Modules iptables

Si votre systme est bien congur, la commande iptables charge automatiquement les modules ncessaires dans le noyau. Dans le cas contraire, vous devez les activer manuellement. Les principaux modules sont ip_tables, iptable_nat, ip_conntrack, ipt_MASQUERADE, iptable_filter, ip_conntrack_ftp et ip_nat_ftp.

Activation et dsactivation automatique de la mascarade


Il ne faut videmment pas activer manuellement la mascarade chaque dmarrage du serveur. La procdure habituelle est de lactiver en mme temps que le pare-feu. De nombreuses distributions et programmes de pare-feu fournissent des assistants de conguration ces ns. Si vous activez le pare-feu manuellement, activez-le, y compris la mascarade, par un script lanc lors du processus InitV. Si vous navez pas de pare-feu ou si vous dsirez contrler ces oprations indpendamment, vous pouvez lancer ou arrter la mascarade par le biais de son propre script InitV. Si vous accdez Internet par PPP (modem ADSL ou RNIS), vous pouvez intgrer les commandes de mascarade dans les scripts ip-up ou ip-down de /etc/ppp. La mascarade est alors active ds que vous tes connect Internet et dsactive lorsque la connexion est coupe. Cette mthode nest pas compatible avec une gestion des connexions la demande.

Problmes
La mascarade est une solution lgante pour fournir un accs Internet des ordinateurs qui ne disposent pas dadresse IP valable sur le rseau mondial. Elle pose cependant parfois quelques problmes, dont seuls les plus frquents sont dtaills ici. Un certain nombre de protocoles Internet ont des mcanismes de protection qui vrient lassociation de ladresse IP. Le fait que la mascarade empche une correspondance unique entre une adresse IP et un ordinateur peut tre la source de certaines difcults. Certains protocoles envoient ladresse non seulement dans le paquet IP, mais aussi dans le contenu de donnes du paquet (en tant que texte ASCII ou de manire protge). FTP est un exemple connu de ce type de comportement. Pour que ce dernier fonctionne

548

LINUX

malgr la mascarade, le serveur de mascarade doit modier, 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 activs au besoin :
root# modprobe ip_nat_ftp root# modprobe ip_conntrack_ftp

Si les clients FTP rencontrent toujours des difcults, le plus simple est de les faire fonctionner 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 problme. Pour viter cela, il faut la modier sur tous les clients ou mettre en place un MSS clamping sur le serveur.

Configuration des clients


Pour quun client puisse utiliser la passerelle pour accder Internet, sa conguration rseau doit tre la suivante : Ladresse de la passerelle doit contenir ladresse IP de la passerelle Linux. Ladresse du serveur de noms doit tre celle du fournisseur daccs Internet.

28.3 Serveur DHCP et serveur de noms intgr (dnsmasq)


Introduction DHCP
Divers chiers permettent de rgler les diffrents paramtres rseau : ladresse IP et celle des autres ordinateurs du rseau (/etc/hosts), ladresse de la passerelle et du serveur de noms, etc. (voir Chapitre 26). Tous ces paramtres peuvent tre congurs statiquement sur lensemble des machines. Pour un petit rseau de trois ou quatre ordinateurs, cette procdure est acceptable.
Configuration centrale par DHCP

Pour les gros rseaux, il est plus sens quun seul ordinateur soccupe de transmettre les adresses IP toutes les autres machines. Cest cela que sert DHCP (Dynamic Host Conguration Protocol, protocole de conguration dynamique dhtes). Lordinateur qui contrle le tout est appel serveur DHCP ; les autres sont les clients DHCP. DHCP prsente divers avantages par rapport une conguration manuelle : Ladministration est centralise, et donc facilite. La conguration des clients est limite au minimum ; vous devez indiquer le nom de lordinateur et du domaine, puis activer DHCP. Lajout dun ordinateur dans le rseau se fait sans problme et ne demande que des modications mineures sur le chier de conguration. Cest particulirement intressant pour les ordinateurs portables qui ne sont connects qupisodiquement au rseau.

PASSERELLE INTERNET (MASCARADE ET DHCP)

549

Seuls les ordinateurs effectivement en service ont besoin dune adresse IP. Cela ne prsente un avantage que lorsque le nombre dadresses IP est faible, ce qui nest gnralement pas le cas dans un rseau local. Il compte cependant galement quelques inconvnients : Le fonctionnement de tout le rseau dpend de lordinateur sur lequel fonctionne le serveur DHCP. Si ce dernier tombe en panne, les clients actifs utilisent simplement leur dernire adresse. Les clients nouvellement connects nont cependant pas dadresse rseau. La dpendance un seul ordinateur peut tre diminue si plusieurs ordinateurs sont congurs comme serveurs DHCP. Un systme DHCP dynamique peut reprsenter un risque de scurit. Quiconque entre dans votre bureau peut se connecter au rseau avec un ordinateur. Laccs effectif aux donnes dpend largement du reste de la conguration du rseau, mais la premire tape en devient triviale.
DHCP et noms dhte des clients

DHCP peut galement grer les noms dhte des ordinateurs. Il existe deux variantes de conguration : Conguration centrale du nom dhte par DHCP. Chaque client reoit du serveur DHCP son nom dhte. DHCP est souvent congur pour associer une IP et le nom dhte correspondant une adresse MAC donne. Cette adresse est un identiant unique de la carte rseau. Gestion locale des noms dhte sur les clients. Les clients locaux ont un nom dhte xe. Le serveur DHCP ne sert quau reste de la conguration. Ces deux solutions ont chacune leurs arguments et aucune nest meilleure en soi. Si vous utilisez la seconde, il faut cependant veiller lors de la conguration du client ce que celuici envoie son nom dhte au serveur DHCP, ce qui sert actualiser le serveur de noms.

Fonctionnement interne de DHCP

Lorsquun ordinateur (client DHCP) est dmarr, il envoie une requte ladresse 255.255.255.255 (soit tous les ordinateurs du rseau local). Seul le serveur DHCP ragit cette requte et renvoie comme rponse une adresse IP qui provient de la liste des adresses IP valides. Vous vous demandez peut-tre o le serveur envoie sa rponse : le client na en effet pas encore dadresse IP. Ladressage passe par une adresse MAC, qui est connue grce la requte DHCP. Le serveur DHCP assigne les adresses IP pour une dure donne (lease time). Celle-ci est gnralement dune journe, mais elle peut tre paramtre diffremment. Avant que cette dure ne soit coule, le client doit renouveler ladresse auprs du serveur DHCP ou demander une nouvelle adresse IP.

Paramtrage du serveur de noms


Un serveur de noms de domaine (abrg en serveur de noms, voire en DNS) tablit la correspondance entre les noms dordinateurs et les adresses IP. Tous les fournisseurs daccs Internet mettent disposition un serveur DNS. Plutt que daccder ce serveur, vous pouvez mettre en place un serveur DNS pour votre propre rseau local. Cela a deux avantages :

550

LINUX

Rapidit. Le DNS gre un cache des adresses rcemment utilises. Si vous accdez deux fois www.yahoo.com sur une journe, le serveur DNS na pas rinterroger le serveur DNS de votre fournisseur daccs le DNS local a dj enregistr ladresse. Rsolution locale. Le DNS gre les noms et adresses IP des ordinateurs du rseau local. Vous pouvez ainsi accder tous les ordinateurs du rseau via un nom et, par exemple, lancer depuis lordinateur mercure la commande ping saturne. mercure ne contacte que le serveur de noms local, qui renvoie ladresse IP de saturne. La rsolution de noms locaux est un lment de base pour utiliser confortablement des services rseau comme NFS, FTP, SSH, etc. Les DNS du monde entier sont connects les uns aux autres. Lorsquun DNS ne connat pas un nom donn, il transmet la requte un autre DNS. Les DNS sont organiss de manire hirarchique.

Configuration de dnsmasq
Cette section dcrit le programme dnsmasq, qui intgre les fonctions de serveur DHCP et de serveur de noms. La section suivante traite de dhcpd, qui ne sert que de serveur DHCP.
Prrequis

Nous supposons ici que le paquet dnsmasq est install et que dhcpd ne lest pas (sans quoi, les deux programmes peuvent entrer en conit). Un autre prrequis important est la conguration correcte du chier /etc/hosts sur la passerelle. Celui-ci est tonnamment incomplet ou mal congur sur de nombreuses congurations. Pensez le vrier lorsque vous modiez la conguration rseau de votre passerelle. Llment dcisif est lassociation entre lordinateur local (ici, mars et mars.sol) et ladresse IP locale (192.168.0.1). Diverses lignes suivent gnralement. Elles concernent la conguration 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 problmes, pensez regarder la configuration de votre pare-feu. Linterface du rseau local ne doit pas tre bloque par le pare-feu !
dnsmasq.conf

dnsmasq est congur dans le chier /etc/dnsmasq.conf. Le chier de conguration par dfaut fait ofce de documentation et se compose de presque 400 lignes de commentaires. Renommez-le en dnsmasq.conf.orig et crez un nouveau chier 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 conguration de dnsmasq rclame, en plus de /etc/dnsmasq, des chiers /etc/hosts et /etc/ resolv.conf fonctionnels. Si vous modiez ces chiers, il faut relancer dnsmasq.

PASSERELLE INTERNET (MASCARADE ET DHCP)

551

Dmarrer et arrter dnsmasq

dnsmasq est un dmon. Certaines distributions le dmarrent tout de suite aprs son installation. Dans le cas contraire, vous devez le lancer manuellement. Lorsque vous en modiez la conguration, vous devez galement le relancer :
root# /etc/init.d/dnsmasq restart

Vous pouvez aussi avoir congurer son dmarrage automatique. Vous trouverez plus dinformations ce sujet la section 24.7.
Configuration minimale

La conguration minimale ci-aprs permet dnsmasq de fonctionner sans problme. Il sert 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 cls du chier. domain-needed et bogus-priv empchent que dnsmasq envoie des noms dhte locaux ou des adresses IP locales au serveur de noms de votre fournisseur daccs Internet le serveur de noms de votre fournisseur ne rsout que les adresses Internet et non les adresses locales. interface indique que dnsmasq ne doit rpondre quaux requtes provenant de eth2. dhcprange prcise la plage dadresses accessible au serveur DHCP pour rpondre aux requtes DHCP. Les adresses transmises sont valides 24 heures et doivent ensuite tre renouveles par le client. Le serveur de noms et la passerelle nont pas tre congurs. dnsmasq lit le chier /etc/ resolv.conf et renvoie ladresse du serveur de noms qui sy trouve. Les clients DHCP reoivent comme passerelle et serveur de noms ladresse IP locale.
Mise en place dun serveur de noms local

La conguration minimale ci-dessus ne permet dnsmasq de rsoudre les noms dhte locaux que lorsque le chier /etc/hosts contient les informations correspondantes. Les adresses attribues dynamiquement par DHCP sont donc inaccessibles par ce biais. Pour que dnsmasq fonctionne galement comme serveur de noms pour les adresses locales du rseau local sol, il faut ajouter les lignes suivantes dnsmasq.conf et redmarrer dnsmasq :
# /etc/dnsmasq.conf - serveur de noms pour les adresses locales local=/sol/ domain=sol expand-hosts

Le mot cl local indique que les requtes dadresses sur ce domaine doivent tre gres directement par dnsmasq (et non par le serveur de noms du fournisseur daccs). Si vous navez 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 paramtre local.

552

LINUX

expand-hosts fait en sorte que les requtes au serveur de noms qui nindiquent pas de nom de domaine soient sufxes du nom de domaine indiqu dans domain. Ainsi, lorsque vous lancez ping uranus, dnsmasq tend ladresse uranus.sol. Dans la conguration courante, dnsmasq ne soccupe pas du nom dhte des clients. Celui-ci doit donc tre gr individuellement par les clients. Pour que la rsolution de noms fonctionne localement, les clients doivent envoyer leur nom dhte au serveur DHCP (dnsmaq).
Noms dhte et adresses statiques

dnsmasq peut galement tre congur pour fournir aux clients des noms dhte. Lassociation statique des noms et adresses IP se fait grce ladresse MAC des clients. Cest la mthode de conguration que je prfre : un chier unique contrle sous quels noms et adresses IP sont accessibles les ordinateurs de mon rseau. Lorsquun nouvel ordinateur est branch, il suft dajouter une ligne dnsmasq. Le mot cl dhcp-host permet une telle conguration. Les lignes suivantes illustrent la conguration de lordinateur mercure et de limprimante pluton. La plage 192.168.2-127 est rserve aux adresses statiques et 192.168.0.128-254, aux adresses dynamiques (par exemple, lorsquun ami dsire 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 dcrivent de nombreuses variantes de syntaxe pour dhcp-host. Vous pouvez, par exemple, tablir une correspondance entre des noms dhte et des adresses IP, bloquer compltement certaines adresses MAC, etc.
DNS pour lordinateur local

Par dfaut, dnsmasq ne fonctionne comme serveur de noms que pour les autres ordinateurs du rseau. En effet, cest le DNS indiqu dans /etc/resolv.conf qui est utilis. Gnralement, ce chier contient le serveur de noms de votre fournisseur daccs Internet. Pour que dnsmasq assure galement la rsolution de noms locale, vous devez ajouter /etc/ resolv.conf la ligne nameserver 127.0.0.1. Si lordinateur rcupre lui-mme sa conguration via DHCP, cela ne sert rien : aprs chaque redmarrage, resolv.conf sera cras. Il faut pour cela utiliser une conguration rseau statique.
# /etc/resolv.conf - pour que dnsmasq fonctionne pour lordinateur local nameserver 127.0.0.1 ...

La deuxime modication concerne dnsmasq. Comme il ne peut plus obtenir ladresse du serveur DNS externe via resolv.conf, il faut indiquer explicitement cette adresse et lui dire dignorer resolv.conf. Ajoutez pour cela les deux lignes ci-aprs dnsmasq.conf dans lexemple suivant, 192.168.1.1 est ladresse du routeur ADSL qui fait aussi ofce de DNS.
# /etc/dnsmasq.conf - ajouts pour que le DNS fonctionne sur la machine #locale # ignorer /etc/resolv.conf no-resolv # accder au DNS externe server=192.168.1.1

PASSERELLE INTERNET (MASCARADE ET DHCP)

553

Journalisation

dnsmasq enregistre toutes les adresses IP dynamiques dans le chier /var/lib/misc/dnsmasq.leases. Les adresses statiques ne sont, en revanche, pas prises en compte. Chaque ligne contient aussi ladresse MAC et, lorsquil est connu, le nom dhte du client. Ce chier est pratique pour connatre ladresse MAC des nouveaux clients. Lorsque dnsmasq ne fonctionne pas comme souhait, ajoutez le mot cl log-queries dnsmasq.conf. Le programme journalise alors toutes les requtes au serveur de noms dans /var/ log/syslog ou /var/log/messages.

Configuration des clients


La conguration correcte dun ordinateur pour quil puisse rcuprer son IP est trs simple. Les distributions Linux et les versions actuelles de Windows fournissent toutes une option dans la bote de dialogue de conguration du rseau ; en principe tout fonctionne ! Le point critique est la conguration du nom dhte. Celui-ci doit-il tre gr par DHCP ou le client doit-il renvoyer son nom dhte au serveur DHCP ? Cette conguration diffre selon la distribution Linux.
Debian, Ubuntu

Pour modier le nom dhte sous Debian et Ubuntu, vous pouvez utiliser le programme network-admin, dans longlet Gnral. Les donnes statiques ont priorit sur celles envoyes par le serveur DHCP ! Si vous dsirez que le nom dhte soit transmis par le serveur DHCP, vous devez laisser le champ vide. Pour nir, vous devez redmarrer lordinateur. Les noms dhte statiques ne sont pas transmis au serveur DHCP. network-admin noffre pas doption sur ce point. En interne, cest le programme dhclient qui sen occupe. Dans son chier de conguration /etc/dhcp3/dhclient.conf, vous pouvez indiquer le nom envoy au serveur DHCP :
# /etc/dhclient.conf send host-name "mercure.sol"

Red Hat, Fedora

Sous Red Hat et Fedora, vous pouvez modier le nom dhte et de domaine dans le champ texte Nom dhte de longlet DNS du programme system-config-network. Lorsque le serveur DHCP transmet un nom dhte, celui-ci a priorit sur le nom de la conguration statique. Par dfaut, le nom dhte nest pas transmis au serveur DHCP. Si vous dsirez ce comportement, ouvrez avec Modier la fentre de proprits de linterface rseau (gnralement eth0) et indiquez le nom dhte dans les paramtres 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 contrl par le systme de communication DBUS. Fedora utilise pour cela le paquetage dhcdbd, qui est install par dfaut, mais qui nest gnralement pas actif. dhcdbd est en particulier utilis par NetworkManager. Vous trouverez plus dinformations sur dhcdbd dans le chier /usr/share/doc/ dhcdbd-n/README.

SUSE

Dans SUSE, le nom dhte est dni dans longlet Nom dhte/DNS module Priphriques rseau, Paramtres rseau de YaST. Si le serveur DHCP transmet un nom dhte, ce nom a

554

LINUX

par dfaut priorit sur la conguration statique. Ce comportement peut tre modi grce loption Modier le nom dhte via DHCP. SUSE transmet par dfaut le nom dhte au serveur DHCP. Si ce nest pas le comportement souhait ou si un autre nom doit tre envoy, modiez le paramtrage dans longlet Options globales du mme module. Au contraire de Debian et Red Hat, SUSE utilise la commande dhcpcd pour exploiter les informations DHCP. Celle-ci est, entre autres, lance dans /etc/init.d./network. dhcpcd peut galement communiquer sur le systme DBUS via dhcdbd.
Recharger les donnes DHCP

Lorsque vous testez le serveur DHCP, vous devez redmarrer les clients chaque fois. Un redmarrage du rseau suft parfaitement et rcupre 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 chier /etc/resolv.conf que tout a fonctionn. Si vous travaillez sous KDE ou Gnome, vous devez vous reconnecter lorsque le nom dhte ou un autre paramtre rseau essentiel a t modi. Vous pouvez aussi recharger les donnes DHCP sous Windows sans le redmarrer. Ouvrez une fentre 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 grer un rseau important. Ses possibilits de conguration sont bien plus grandes que celles de dnsmasq.
Prrequis

Dans cette section, nous supposons que dhcpd est utilis au moins en version 3. Le nom du paquetage diffre 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 parallle, sans quoi les deux programmes entrent en conit. Nous supposons galement que vous avez lu lintroduction DHCP et que votre chier /etc/ hosts est correctement congur. La conguration des clients est identique celle de dnsmasq. Vous trouverez plus dinformations sur la conguration et le serveur lui-mme dans les pages de manuel dhcpd, dhcpd.conf et dhcp-options, ainsi que sur le site web http://www.isc.org/sw/dhcp/. Le serveur DHCP est un dmon. Les commandes pour son dmarrage (automatique) dpendent 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 modiez la conguration du serveur, il faut le relancer :
root# /etc/init.d/dhcp3-server restart

Dmarrage et arrt

PASSERELLE INTERNET (MASCARADE ET DHCP)

555

Configuration minimale

dhcpd est congur dans le chier /etc/dhcp3/dhcpd.conf. Les lignes suivantes illustrent une conguration 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 rserves et ne peuvent donc pas tre attribues. La plage 192.168.0.1 192.168.0.127 est rserve pour attribuer des adresses statiques.
# /etc/dhcpd.conf # options globales authoritative; default-lease-time 86400; max-lease-time 86400; # informations cls du rseau 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 ofciel du rseau local. defaultlease-time et max-lease-time indiquent combien de temps les adresses IP sont valides (une journe, soit 86 400 secondes). Une fois cette dure coule, les clients doivent renouveler leurs donnes de conguration (cela est automatique). Les options broadcast-address et subnet-mask dcrivent le segment de rseau gr par le serveur DHCP. routers indique ladresse de lordinateur qui sert de routeur ou de passerelle pour le rseau local. Dans lexemple ci-dessus, il sagit de lordinateur qui fait ofce de serveur DHCP. domain-name-servers est une liste de serveurs DNS (au maximum trois, spars par des virgules). Si vous utilisez un serveur DNS local, donnez-en ladresse. Ces adresses sont transmises aux clients pour quils puissent aussi se passer de congurer eux-mmes le DNS.
Vous pouvez rcuprer ladresse du serveur de noms dans /etc/resolv.conf . Si vous utilisez aussi un serveur de noms local, indiquez dans domain-name-server ladresse de la passerelle locale. Dans notre exemple, il sagit de 192.168.0.1. Si un serveur WINS fonctionne sur votre rseau, vous pouvez indiquer son adresse avec loption netbiosname-server. WINS est lquivalent dun DNS pour le monde Windows. Un serveur Samba sous Linux peut galement faire office de serveur WINS.
Adresses statiques

Si votre seul but est de fournir des adresses IP votre rseau local, vous avez termin. Cependant, on dsire gnralement attribuer des adresses statiques quelques ordinateurs du rseau local. Les lignes suivantes en sont un exemple.

556

LINUX

Lordinateur ayant ladresse MAC 00:11:25:32:4f:5d est associ ladresse IP 192.168.0.15. Si vous dsirez transmettre le nom dhte aux clients, utilisez loption use-host-decl-names on. La saisie des noms dhte permet, de toute faon, de rendre le chier plus lisible.
# /etc/dhcpd.conf, suite group { # envoyer les noms d'hte 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; } ... }

Journalisation

DNS dynamique

dhcpd permet dexploiter plusieurs sous-rseaux et groupes. Vous pouvez ajouter des options au dbut du chier ou lintrieur dun groupe entre accolades ; les options correspondantes sappliquent globalement ou un seul groupe. Le chier dhcpd.conf comprend dinnombrables options supplmentaires. Vous en trouverez les dtails dans les pages de manuel. dhcpd enregistre toutes les adresses IP dynamiques dans le chier /var/lib/dhcp3/ dhcpd.leases. Ce dernier permet de dterminer facilement les adresses MAC des nouveaux clients. Les messages de journalisation supplmentaires sont enregistrs dans /var/log/ messages ou syslog. Divers mots cls ddns permettent de congurer le serveur DHCP de manire quil transmette les noms et adresses IP des nouveaux clients du rseau local un serveur de noms. Ce dernier connat alors automatiquement les noms et adresses des ordinateurs du rseau local.

29

Scurit du rseau
Ce chapitre dcrit quelques mesures pour scuriser votre ordinateur et votre rseau local : scurisation des services Internet actifs grce xinetd et TCP Wrapper ; scurisation du trac TCP/IP grce un ltre de paquets bas sur iptables (pare-feu) ; scurisation de votre accs web ("ltrage parental") grce un ltre (Squid). Les solutions prsentes ici ne sont ni parfaites ni compltes. En particulier, nous ne parlons pas des mcanismes SELinux ou AppArmor, ni des rseaux privs virtuels (VPN). Le but est principalement dveiller votre vigilance et de vous fournir quelques cls pour bien dmarrer. Je tiens cependant attirer votre attention sur ces deux points : Les informations de ce chapitre ne sont pas sufsantes pour viter tout accs malicieux un systme Linux ou votre rseau. Si vous mettez en place un rseau dentreprise ou si vous effectuez des tches dont la scurit est primordiale, vous avez besoin douvrages spcialiss. Un systme que lon croit sr est plus dangereux quun systme non sr !

29.1 Types de scurit


Le champ de la scurit est trs large. Il englobe entre autres les lments suivants : Se prmunir des pertes de donnes. Un disque dur dfectueux ou un ordinateur portable vol sont lorigine de nombreuses pertes de donnes. On prvient ce type de risque par une stratgie de sauvegardes rgulires. viter le vol physique des donnes. Un ordinateur portable, un disque dur ou une cl USB vols contiennent souvent des donnes de valeur. Pour viter que le voleur ne puisse les lire, vous devez les chiffrer. Le plus sr est de chiffrer une partition entire ou un rpertoire. Linux fournit divers outils pour cela (par exemple CryptoFS, DM-Crypt, eCryptfs, EncFS, Loop-AES et TrueCrypt), qui ne sont cependant pas traits dans cet ouvrage. Se protger contre les programmes malicieux et les virus. Ce problme est moindre sous Linux. Dune part, les programmeurs de virus visent surtout les systmes Windows. Dautre part, il est comparativement plus difcile de faire des dgts sous Linux/Unix dans le cadre dune utilisation raisonnable. "Utilisation raisonnable" signie en particulier de ne pas lancer de programmes inconnus en tant que root et de travailler en tant que root uniquement lorsque cest ncessaire. Filtrer le contenu indsirable. Lorsquon met en place un accs Internet pour une cole ou pour un environnement comparable, un point du cahier des charges est souvent de ltrer des contenus spciques (par exemple la pornographie). Ce point est plus facile promettre qu mettre en place. On peut certes ltrer des sites donns avec un serveur

558

LINUX

mandataire web, mais, en raison de la nature dynamique dInternet et des nombreuses autres possibilits de communication (Usenet, discussion en ligne, etc.), de telles solutions sont forcment incompltes. Cependant, une protection incomplte est prfrable une absence totale de protection (ce qui sapplique tous les aspects de la scurit). Scuriser les donnes prives dans le rseau local. Tous les utilisateurs du rseau local ne doivent pas avoir accs tous les chiers et encore moins pouvoir les modier. Ce point recouvre avant tout les droits daccs (y compris sur NFS, Samba, FTP, etc.) et lutilisation de mots de passe non triviaux. Se prmunir des accs trangers (pare-feu). Un accs Internet nest pas sens unique. Un attaquant externe au rseau (pirate) peut essayer daccder vos donnes ou celles de votre rseau, voire de les modier. viter les coutes de transmissions Wi-Fi (VPN). Lorsquun rseau est cbl, un pirate doit accder la passerelle Internet ou au rseau interne physiquement. Du point de vue du pirate, un rseau sans-l est bien plus confortable. lheure actuelle, seul le chiffrage WPA2 associ un mot de passe correct est considr comme sr. Les anciennes techniques toujours utilises (WEP, WPA) sont bien plus simples forcer. Indpendamment du chiffrage Wi-Fi, il est conseill dencapsuler le trac dans un VPN (Virtual Private Network, rseau priv virtuel). Scuriser les services rseau contre les accs malicieux (SELinux, AppArmor). Des failles de scurit dans les services rseau courants (Samba, Sendmail, Apache, etc.) sont souvent dcouvertes. Elles permettent un pirate, sous certaines conditions, de faire planter un service rseau ou mme dexcuter des commandes. Les mesures prventives sont de lancer aussi peu de services quil est ncessaire, de les faire fonctionner avec les droits les plus restreints possible (ne pas les faire fonctionner en tant que root) et de protger 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 chiers sur lordinateur local. Pour assurer une scurit optimale, vous pouvez dnir des rgles avec SELinux ou avec AppArmor. Vous pouvez par exemple limiter les oprations dcriture dun programme un certain rpertoire ou en limiter les fonctions rseau. Si le service sort du cadre dni par ces rgles, il est arrt automatiquement.
Mises jour et journalisation

La scurisation dun ordinateur nest pas une tche unique, mais un processus continu. Vous devez mettre jour rgulirement vos logiciels vers la version actualise. Aucun programme nest infaillible, et cela est valable galement pour les programmes sous Linux. Lorsquun problme de scurit est dcouvert, les mises jour sont gnralement disponibles en quelques jours. Cependant, il vous revient de les installer. Il est galement conseill de surveiller rgulirement les chiers de journalisation de votre ordinateur. Un signe dalarme trs clair est par exemple laugmentation des lignes du type Failed login (connexion choue).

Lectures conseilles

Nous ne pouvons pas traiter dans cet ouvrage de tous les aspects susmentionns, et nous en avons probablement omis certains. Vous trouverez sur Internet dinnombrables ressources sur le thme de la scurit. Les adresses http://linuxsecurity.com/, http://www.cert.org/ et http://lwn.net/security sont de bons points de dpart.

SCURIT DU RSEAU

559

Intressez-vous rgulirement aux informations de scurit de votre distribution. Vous y trouverez entre autres les mises jour relevant de la scurit des applications. Indpendamment de la distribution, le Red Hat Enterprise Linux Security Guide est une lecture intressante et se trouve ladresse : http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/en-US/Security_Guide/.

29.2 Bases de lanalyse rseau


Avant de pouvoir scuriser votre ordinateur, vous devez savoir comment les services rseau fonctionnent, lesquels fonctionnent, quels ports sont ouverts, etc. Cette section pose les bases de TCP/IP et dcrit quelques programmes pour analyser ltat courant de votre rseau, par exemple pour afcher toutes les connexions rseau actives. Le tableau suivant rcapitule les acronymes les plus importants.
Glossaire rseau DNS HTTP ICMP IP NFS TCP UDP
IP

Domain Name Service, service de noms de domaines HyperText Transfer Protocole, protocole de transfert hypertexte Internet Control Message Protocol, protocole de messages de contrle Internet Internet Protocol, protocole Internet Network File System, systme de fichiers rseau Transmission Control Protocol, protocole de contrle des transmissions User Datagram Protocol, protocole de datagrammes utilisateur

Presque tous les services rseau courants sont fonds sur des paquets IP. Par exemple, lorsquun utilisateur souhaite accder votre ordinateur par FTP, il dmarre sur son ordinateur un client FTP. Celui-ci envoie des paquets IP spciaux votre ordinateur. Si un serveur FTP est install sur votre ordinateur, il intercepte le paquet et ragit la requte en renvoyant des paquets IP. En plus des donnes, un paquet IP contient quatre informations importantes : ladresse IP de lexpditeur, le port de lexpditeur, ladresse du destinataire et son port. Ces donnes indiquent do vient le paquet et o il va. Le sens dune adresse IP devrait tre clair (voir le Chapitre 26). Les ports sont utiliss pour identier les diffrents services. Par exemple, pour demander un document WWW, on utilise gnralement le port 80. Le numro de port est un nombre de 16 bits. Les ports de 1 1 024 sont considrs comme privilgis et sont rservs pour les serveurs (par exemple le serveur HTTP). Les ports restants peuvent tre utiliss par les clients, mais il existe dautres numros de ports dj rservs pour des buts prcis. Le chier /etc/services dnit des alias pour les ports IP. Reportez-vous ce chier pour savoir quel protocole est associ un port donn.

Adresses et ports IP

560
Protocoles IP

LINUX

Il existe diffrents protocoles pour les paquets IP. La plupart des services Internet utilisent TCP. Ce protocole attend des accuss de rception. Il existe aussi des protocoles qui nattendent pas de telles conrmations, comme ICMP (qui est par exemple utilis par ping) et UDP (utilis par exemple par DNS et NFS). Les paquets IP peuvent tre crs par les programmes locaux ou arriver depuis lextrieur, cest--dire depuis une interface rseau ou PPP. Cest le noyau qui dcide quoi faire de ces paquets. Il peut les rejeter ou les transmettre un programme ou une autre interface. Les critres de dcision regroupent les caractristiques que nous venons de dtailler. Pour mettre en uvre un ltre de paquets, vous devez aussi disposer dun moyen dajouter des rgles au noyau pour quil gre les paquets individuels. La commande iptables est fournie cet effet depuis le noyau 2.4 nous en parlerons dans sa section ddie. Le principe de la plupart des services rseau est de surveiller un port donn. Si un paquet arrive sur ce port, le service soccupe de le traiter et dy rpondre. Les paquets qui ne sont pas envoys un port surveill sont simplement ignors et ne posent donc pas de risques. Pour protger un ordinateur dventuelles menaces, il est donc ncessaire de disposer dune liste des ports surveills ( linverse, un pirate essaiera dabord de dterminer les ports actifs). La commande netstat est trs utile pour examiner lactivit rseau de lordinateur local. Selon les options avec lesquelles elle est lance, elle afche une norme quantit dinformations diffrentes. Par exemple, a afche les ports qui ne sont pas actifs, tu limite la sortie aux protocoles TCP et UDP et pe afche le numro 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 galement utilisable. lsof -i [protocole]@hte:port afche une liste des processus qui utilisent la ressource rseau indique. Par exemple, lsof -i udp afche les programmes qui utilisent le port UDP et lsof -i:22 afche ceux qui utilisent le port 22. netstat et lsof ne sappliquent quaux ordinateurs locaux et ne sont gnralement pas disposition dun ventuel pirate. Celui-ci peut en revanche utiliser un scanneur de ports. De tels programmes envoient des paquets aux ports importants dun ordinateur et, en fonction de la rponse, ils dterminent quel service fonctionne avec quelle version de quel programme. La commande nmap en est lexemple le plus connu, mais il existe de nombreux autres programmes de ce type.
Un balayage des ports dune machine avec nmap est considr par de nombreux administrateurs comme une tentative dintrusion. Nutilisez pas un outil comme nmap sur un ordinateur inconnu ! Cependant, cest un outil pratique pour reconnatre des faiblesses dans votre propre rseau.

Filtres de paquets IP

Dterminer les ports actifs

nmap nest que rarement install par dfaut, mais il est gnralement disponible en tant que paquetage. Vous pouvez aussi trouver son code source ladresse http://nmap.org/. nmap dispose galement dune interface graphique, que vous pouvez gnralement installer grce au paquetage nmap-frontend.

SCURIT DU RSEAU

561

29.3 Scuriser les services rseau


La section prcdente a montr comment connatre rapidement les services rseau qui fonctionnent sur lordinateur. Ltape suivante consiste teindre les services non utiliss et scuriser autant que possible tous les autres services : Dsinstallez tous les services dont vous navez pas besoin. Ce qui nest pas install ne peut pas tre excut et ne pose donc aucun risque. Il arrive que le nom du paquetage ne drive pas directement du nom du programme. Dans ce cas, dterminez lemplacement exact du chier excutable et lancez, selon votre systme de paquetages, rpm -qf /chemin/nom ou dpkg -S /chemin/nom. Au lieu de les dsinstaller, vous pouvez aussi empcher les services de dmarrer (si vous envisagez par exemple de les utiliser plus tard). Le systme InitV est gnralement responsable du dmarrage des services. Selon la distribution, la mthode pour empcher le dmarrage des scripts InitV diffre, par exemple chkconfig --del pour Fedora et Red Hat ou insserv -r sous SUSE. Vous trouverez plus dinformations sur InitV au Chapitre 24. Les services rseau lancs par xinetd sont un cas particulier dont nous parlerons dans cette section. Il est rarement utile de partager des rpertoires ou des imprimantes sur Internet. Vous ne pouvez certes que rarement vous passer de tels services, mais vous pouvez au moins en restreindre lutilisation votre rseau local. Pour de nombreux services (par exemple xinetd, SSH et NFS), on utilise cette n la bibliothque TCP Wrapper et ses chiers de conguration /etc/hosts.allow et /etc/ hosts.deny. Les autres services (par exemple Apache, MySQL et Samba) utilisent gnralement leurs propres chiers de conguration. Comme niveau de protection supplmentaire, un pare-feu ltre de paquets est conseill : grce des rgles, celui-ci peut bloquer les paquets provenant dInternet destination de services divers. Cependant, ne partez pas du principe quun pare-feu est sufsant et que les autres points sont superus ! Aucun pare-feu nest parfait et il est toujours possible domettre un dtail critique pour votre rseau.

Bases de xinetd
Les programmes qui mettent disposition des services rseau peuvent tre diviss en deux catgories : Les dmons. Ils surveillent un port donn et, lorsquun paquet y est adress, le traitent et y rpondent. Ils sont grs par InitV. Les programmes dmarrs la demande. Seul le programme xinetd est dmarr. Il surveille plusieurs ports et dmarre au besoin les services correspondants. xinetd est au cur de cette section.

562

LINUX

xinetd signie Extended Internet Service Daemon (dmon de services Internet tendu). Il est le successeur du programme inetd. Vous trouverez de la documentation sur xinetd ladresse http://www.xinetd.org/.
Dmarrage et arrt

xinetd est un dmon. Il est install par dfaut sur de nombreuses distributions, mais il nest pas toujours dmarr, pour des raisons de scurit (vriez cela avec ps ax |grep xinetd). xinetd se lance ensuite comme tout autre service (voir la section 14.4). xinetd est contrl par plusieurs chiers que nous dcrirons dans ce qui suit. Les services rseau se diffrencient les uns des autres par le port et le protocole quils utilisent. Par exemple, telnet utilise le port 23 et les protocoles tcp et udp. Pour que les chiers de conguration de xinetd restent lisibles, il existe un chier, /etc/services, qui associe les noms de divers services Internet (par exemple ftp, telnet, etc.) au protocole et au numro de port utiliss. /etc/xinetd.conf contient quelques paramtres de base, concernant par exemple la journalisation ou les adresses IP dnies par dfaut. En gnral, vous pouvez laisser ces paramtres tels quils ont t dnis par dfaut. Loption includedir indique le rpertoire contenant les chiers de conguration supplmentaires (gnralement /etc/xinetd.d). Le rpertoire /etc/xinetd.d contient, pour chaque service enregistr dans xinetd, un chier de conguration spcique. Le nom de ces chiers ne joue pas de rle particulier : xinetd lit tous les chiers de ce rpertoire et les prend en compte (les chiers dont le nom se termine par ~ ou contenant un point ne sont pas pris en compte). Ces chiers ont une structure uniformise. Lexemple suivant est un chier de conguration pour un serveur rsync :
service rsync { disable = yes socket_type wait user server server_args log_on_failure }

/etc/services

/etc/ xinetd.conf

/etc/xinetd.d

= stream = no = root = /usr/bin/rsync = --daemon += USERID

Voici une courte explication des mots cls que vous pouvez rencontrer dans le chier de conguration de xinetd : service est le nom du service (correspondant /etc/services). socket_type et protocol indiquent comment les donnes sont transfres entre le client et le serveur. type = INTERNAL indique quil sagit dun service mis directement disposition par xinetd. server est le nom du programme (sil ne sagit pas dun service interne de xinetd). server_args fournit des paramtres qui sont transmis au dmarrage 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 bloqus).

SCURIT DU RSEAU

563

Scurisation de xinetd

log_* dnit les niveaux de journalisation du service. man xinetd.conf fournit une rfrence complte de tous ces mots cls. Dans la plupart des cas, vous pouvez laisser les chiers tels quils ont t crs linstallation. Pour des raisons de scurit, il serait optimal de ne pas lancer du tout xinetd et son prdcesseur inetd sur un pare-feu ou sur une passerelle Internet. Si vous ne pouvez pas vous passer des programmes contrls par xinetd, vous devriez au moins considrer les lments suivants : Dsinstallez ou dsactivez tous les services que vous nutilisez pas qui sont dmarrs par xinetd. Pour les dsactiver, ajoutez une ligne disable=Yes dans le chier /etc/ xinetd.d/nom_du_service. Sous Red Hat et Fedora, vous pouvez aussi dsactiver ou ractiver un service avec chkconfig -del nom ou chkconfig -add nom. Ces commandes modient la ligne disable. vitez telnet, utilisez ssh. sshd nest pas contrl par xinetd. Congurez laccs aux services restants de manire aussi restrictive que possible. Utilisez pour cela les chiers /etc/hosts.deny et /etc/hosts.allow (voir ci-aprs). Les modications de la conguration sont prises en compte uniquement lorsque xinetd a relu les chiers de conguration. xinetd vrie si des services fonctionnent alors quils ne sont plus censs le faire dans le cadre de la nouvelle conguration : ceux-ci sont alors termins.
root# /etc/init.d/xinetd reload

hosts.allow et hosts.deny
Les chiers /etc/hosts.allow et /etc/hosts.deny contrlent quels ordinateurs ont accs quels services. Ces paramtres sont valides aussi bien pour les services contrls par xinetd que pour divers services rseau qui utilisent la bibliothque TCP Wrapper pour les contrles daccs. Lorsquun client du rseau souhaite utiliser un service contrl par hosts.allow et hosts.deny, le chier hosts.allow est pris en compte en premier. Si laccs y est explicitement autoris, le service rseau est dmarr. Sinon, le chier hosts.deny est lu : si laccs sy trouve, alors il est explicitement interdit et le client reoit un message derreur. Si le client ne se trouve ni dans hosts.allow ni dans hosts.deny, laccs est autoris.
hosts.deny

La conguration la plus sre est dinterdire tous les accs tous les clients tous les services rseau. Linstruction spawn journalise toutes les tentatives daccs dans le chier /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 lutilisation de certains services. La conguration suivante autorise : des accs locaux (localhost) tous les services ; un accs SSH pour tous les ordinateurs (y compris depuis Internet) ; lutilisation de NFS et FTP dans le rseau local.

564

LINUX

# /etc/hosts.allow ALL : localhost mars mars.sol sshd : ALL vsftpd : 192.168.0.0/255.255.255.0 *.sol portmap : 192.168.0.0/255.255.255.0 *.sol mountd : 192.168.0.0/255.255.255.0 *.sol
Prise en charge de TCP Wrapper

: : : : :

ALLOW ALLOW ALLOW ALLOW ALLOW

Vous pouvez dterminer avec ldd si un programme spcique utilise TCP Wrapper (libwrap) :
utilisateur$ ldd /usr/sbin/sshd |grep wrap libwrap.so.0 => /lib/libwrap.so.0 (0xb7ef2000)

Notez que, sous SUSE, cupsd (service dimpression) utilise TCP Wrapper, ce qui nest gnralement pas le cas pour les autres distributions. Vous devez donc penser en autoriser laccs sur le rseau pour partager une imprimante.

29.4 Introduction aux pare-feu


Le concept de pare-feu est trs souvent voqu, mais il nexiste pas de dnition universellement accepte. Un pare-feu peut tre matriel : il sagit alors gnralement dun ordinateur qui fournit une interface entre le rseau local et Internet. Si laccs Internet se fait via modem/RNIS/ADSL, le pare-feu fait galement souvent ofce de contrle daccs Internet. Inversement, de nombreux routeurs (RNIS ou ADSL) fournissent galement des fonctions lmentaires de pare-feu. Souvent, le terme de pare-feu dsigne galement un paquetage logiciel install sur lordinateur et qui, lorsquil est bien congur, amliore la conguration de lordinateur. Vous pouvez mettre en place un pare-feu manuellement, comme cela est dcrit dans ce chapitre. Dans de nombreuses distributions, vous pouvez aussi utiliser des outils de conguration graphiques (dont nous ne parlerons pas ici). Une troisime possibilit est dinstaller un paquetage de pare-feu commercial. Nous aborderons dans cette section un pare-feu qui scurise le trac TCP/IP via un ltre de paquets. Ce type de ltre analyse les paquets rseau qui arrivent ou qui sortent de lordinateur. Selon les rgles dnies, les paquets sont transmis ou bloqus. La section suivante prsente les dtails de mise en uvre dun ltre de paquets. Cette section vise avant tout claircir le vocabulaire.

Pare-feu pour un ordinateur personnel


Jusqu relativement rcemment, il semblait absurde de protger un ordinateur personnel par un pare-feu. Les ordinateurs personnels ntaient connects Internet que de faon irrgulire et avec peu de dbit via un modem ou une carte RNIS. Ces ordinateurs ntaient de ce fait quune cible peu attractive et la nature mme de la connexion Internet en rendait laccs plutt difcile.

SCURIT DU RSEAU

565

Entre-temps, la situation a chang : de plus en plus de foyers disposent dune connexion permanente par ADSL ou par cble. Votre ordinateur est donc accessible tout instant depuis lextrieur par ladresse IP dnie par votre fournisseur daccs Internet.
Risques de scurit

Cela ne signie videmment pas quun pirate peut entrer facilement. Il peut cependant envoyer des paquets IP votre ordinateur (par exemple avec ping) et celui-ci, selon sa conguration, lui rpond (jusquici aucun problme). Si votre ordinateur fait fonctionner un serveur SSH, un pirate peut tenter de se connecter. Il doit pour cela fournir un nom dutilisateur et un mot de passe si vous utilisez des mots de passe triviaux, quelques essais peuvent sufre. De telles attaques peuvent tre automatises : des dictionnaires de mots sont essays les uns la suite des autres. Si vous avez un rseau Windows avec des partages sans mot de passe, les rpertoires Windows peuvent tre lus depuis Internet sans mot de passe galement ! Une source supplmentaire dinscurit est le Wi-Fi. Si la connexion entre votre ordinateur et le point daccs Wi-Fi est protge par une cl WEP de 104 bits, un pirate peut trouver cette cl en quelques jours. Les utilisateurs privs nont gnralement aucune notion de scurit. 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 scurit dun ordinateur. Lutilisation de tels outils ne demande que peu de connaissances. Vous vous dites peut-tre que votre ordinateur ne contient aucune donne susceptible dintresser qui que ce soit. Mais une attaque na pas ncessairement pour but despionner ou de manipuler des donnes. Il sagit souvent dun "jeu" pour des adolescents dsuvrs. Le but peut aussi tre dinstaller un petit programme sur votre ordinateur, qui peut tre prprogramm pour se lancer une date dnie ou qui peut tre contrl distance par le pirate. Mais que vos donnes soient perdues en raison dune attaque cible ou en raison dune exprience idiote, le rsultat est le mme.

Pare-feu pour le rseau local


Dans un rseau local (dentreprise), le cahier des charges de la scurit est bien plus important que pour un ordinateur priv. Les conditions sont gnralement meilleures en termes dinfrastructure. En pratique, cela signie quau moins un ordinateur est ddi laccs Internet et sa protection. Les services rseau fonctionnent sur dautres ordinateurs. La Figure 29.1 est un exemple de cela.
Distributions pare-feu

Un PC ddi en tant que pare-feu peut sembler onreux, mais ce nest pas ncessairement le cas. Un ancien PC processeur Pentium avec deux cartes rseau suft amplement. Cependant, il est souvent difcile, voire impossible, dinstaller une distribution Linux habituelle sur ce type de matriel. Une alternative attractive consiste utiliser un live CD pare-feu. Linux est dmarr directement depuis le CD et na 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=rewalls. Il existe aussi des distributions installables prvues pour un pare-feu ou un routeur, comme http://www.ipcop.org/.

566
Figure 29.1

LINUX

Pare-feu pour un rseau local.

Vous pouvez galement vous servir dune distribution standard comme Ubuntu ou SUSE et la congurer pour lutiliser sur un pare-feu. Vous devez cependant effectuer une installation minimale et vrier que seuls les services et programmes vraiment ncessaires sont lancs.
Variantes

Pour les trs petits rseaux, un ordinateur peut faire ofce de pare-feu et de serveur rseau (voir la Figure 28.1). Cela nest pas optimal car les services qui fonctionnent sur cet ordinateur reprsentent tous un risque de scurit ventuel. Cependant, une architecture de ce type est toujours meilleure quune absence totale de pare-feu. Dans les gros rseaux dentreprises, il existe souvent, linverse, deux pare-feu. Le premier pare-feu nest quune scurit de base, mais laisse passer les protocoles Internet habituels comme HTTP ou FTP. La zone rseau qui se trouve derrire ce premier pare-feu sappelle la DMZ pour Demilitarized Zone (zone dmilitarise) : la scurit de cette zone nest que limite. Elle hberge gnralement le serveur web ainsi que dautres serveurs rseau qui doivent tre accessibles publiquement (depuis Internet). La DMZ est spare du rseau local par un second pare-feu. Les services supplmentaires qui ne sont accessibles quau rseau local se trouvent sur ce second rseau et ne sont absolument pas accessibles depuis lextrieur. La conguration dun pare-feu multiple dpasse cependant le cadre de cet ouvrage ; vous trouverez plus dinformations ce sujet dans des ouvrages spcialiss.

Pare-feu pour les ordinateurs clients dun rseau local

En plus de la scurisation du rseau par un pare-feu central, on peut aussi scuriser chaque PC dun rseau local individuellement. Ce procd offre plusieurs avantages : il peut vous protger daccs depuis lintrieur du rseau, il fournit une protection supplmentaire au cas o le pare-feu extrieur tomberait ou serait mal congur et il protge les ordinateurs lorsquils sont utiliss lextrieur de lentreprise (par exemple les ordinateurs portables).

SCURIT DU RSEAU

567

Cependant, cela prsente galement des inconvnients : cela augmente la charge dadministration et peut bloquer des services utiles lintrieur du rseau. Les ordinateurs connects au rseau local par un rseau sans-l reprsentent un cas particulier. Dun point de vue technique, la scurit est optimale lorsque la connexion est tablie avec un VPN (Virtual Private Network, rseau priv virtuel). Le trac rseau devrait (y compris sur le client) tre limit sur un rseau Wi-Fi non sr ltablissement 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 ltre de paquets. Le ltre de paquets analyse tout le trac (tous les paquets IP) et refuse ou transmet les paquets individuellement. Un pare-feu peut ainsi viter quun paquet servant initialiser une connexion FTP depuis Internet vers votre ordinateur ne soit transmis. Cependant, vous pouvez tablir une connexion FTP vers lextrieur.

Introduction
Pour congurer votre ltre de paquets, vous devez vous familiariser avec la commande iptables. Elle est disponible depuis le noyau 2.4 et fait partie du systme netfilter. man iptables est une rfrence de la syntaxe de cette commande. La Figure 29.2 rsume, de manire trs simplie, les chemins que peut prendre un paquet IP dans un systme de ltres. Vous en trouverez une description dtaille ladresse http://open-source.arkoon.net/kernel/kernel_net.png.

Figure 29.2
Reprsentation simplifie du systme iptables/ netfilter.

La liste suivante dcrit rapidement les diffrentes tapes dun paquet IP dans le noyau : Routage. En fonction de ladresse IP et du port, le noyau dcide si le paquet doit tre trait localement ou sil doit tre transmis une autre interface rseau et un autre ordinateur (que ce soit sur le rseau local ou sur Internet).

568

LINUX

Filtrage des entres. En fonction dun ensemble de rgles, on teste si le paquet doit tre accept et transfr aux programmes locaux (par exemple les dmons rseau) ou non. Traitement local. Cette bote reprsente tous les programmes qui traitent les paquets IP sur lordinateur local ou qui crent des paquets IP (cest--dire les services rseau, comme ftpd, httpd, etc.). Filtrage des sorties. En fonction dun ensemble de rgles, on teste si le paquet peut quitter le noyau. Filtrage des transferts. Ce ltre dcide quels paquets, parmi ceux qui doivent tre transfrs (mais non traits), peuvent effectivement passer par le noyau. Postroutage NAT. Si lordinateur local fournit un accs Internet dautres ordinateurs par le biais dune mascarade, cette tape effectue les manipulations ncessaires sur les paquets IP. la Figure 29.2, vous pouvez voir que seules les botes Filtrage des entres, Filtrage des sorties, Filtrage des transferts et ventuellement Postroutage NAT sont associes un ltre de paquets. Toutes les autres parties du schma dcrivent des fonctions rseau du noyau qui sont gres par le noyau ou par des services rseau courants fonctionnant sur le systme local et nayant pas de rapport avec le ltre de paquets.
Dans de nombreuses illustrations de pare-feu, vous pouvez voir gauche Internet (dangereux), puis le pare-feu, puis le rseau local (plus sr). La Figure 29.2 ne fait pas cette distinction. Les paquets qui arrivent lordinateur proviennent aussi bien du rseau local que dInternet. Cela sapplique galement aux paquets qui quittent le pare-feu droite.

Le noyau soccupe de transfrer les paquets, quils proviennent dune interface rseau ou dun programme local. Trois comportements sont alors possibles : Deny (refus). Le paquet est refus sans information supplmentaire. Le paquet est perdu, il nexiste plus. Lexpditeur 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 rsultat est le mme, mais lexpditeur sait, grce un autre paquet ICMP, que son paquet a t refus. Accept (accept). Le paquet est transmis. Vous trouverez plus dinformations sur le fonctionnement et lutilisation de iptables aux adresses suivantes : http://www.unixgarden.com/index.php/administration-systeme/netlter-rewallingsous-linux ; http://www.unixgarden.com/index.php/securite/mise-en-oeuvre-dunepasserelle-Internet-sous-linux ; http://www.netlter.org/ ; http://people.netlter.org/ rusty/unreliable-guides/.

Tables et chanes de rgles iptables


Lide de base dun ltre de paquets iptables est la suivante. Chaque paquet IP traverse diffrents points dans le noyau et ces points vrient si le paquet y est autoris. Si oui, il est transmis au point suivant, sinon il est dtruit ou renvoy lexpditeur.

SCURIT DU RSEAU

569

Le systme iptables se compose de trois tables : Table lter. Cette table contient gnralement le systme de rgles du ltre de paquets (pare-feu) lui-mme. Table NAT. Cette table nest active que lorsque la fonction de mascarade du noyau est elle-mme active. Elle permet diverses transformations dadresses pour les paquets qui entrent dans le noyau ou qui en sortent. Table mangle. Cette table manipule galement les paquets IP. Elle effectue des tches spciales dont nous ne parlerons pas dans cet ouvrage. Chacune de ces tables se compose de plusieurs chanes de rgles (chains) : Table lter : input (entre), forward (transfert) et output (sortie) ; Table NAT : prerouting (prroutage), output (sortie) et postrouting (postroutage) ; Table mangle : prerouting (prroutage) et output (sortie). La Figure 29.2 reprsente les quatre chanes de rgles les plus importantes de cet ensemble de huit chanes.
Les chanes sont indpendantes les unes des autres ! Il existe donc deux chanes prerouting et trois chanes output diffrentes. Il arrive cependant que les documentations parlent de chane output sans indiquer de laquelle il sagit. Dans ce cas, il sagit de la chane de la table filter, qui est de loin la plus importante. La mme convention est utilise par la commande iptables. On peut y indiquer la table souhaite avec loption -t. Si cette option nest pas indique, la commande sapplique la table filter.

Lorsquun paquet rencontre une chane de rgles, le noyau vrie toutes les rgles. Lorsquune rgle sapplique au paquet, laction prvue est excute (par exemple transmettre, supprimer ou renvoyer le paquet). Lorsque aucune rgle ne correspond, le comportement par dfaut du ltre sapplique (ce comportement dpend de la conguration). De base, dans le noyau, seules la table lter et ses trois chanes input, forward et output sont actives. Ces chanes ne contiennent aucune rgle et leur comportement par dfaut est de transmettre les paquets. Tout lart de la mise en place dun ltre de paquets est donc de dnir le comportement par dfaut et le jeu de rgles des chanes de ltres. Cest cela que sert la commande iptables.

Remettre zro le pare-feu


Dans ce qui suit, je pars du principe que vous vous tes familiaris avec la syntaxe lmentaire de la commande iptables (voir man iptables). La commande iptables nest gnralement pas lance manuellement, mais par un script. Sur mon ordinateur, ce script et divers autres scripts de ce type se trouvent dans un rpertoire que jai cr pour cela, /etc/maconfig. Cela me permet de voir dun seul coup dil quels scripts sont les miens et lesquels font partie de la distribution.

570

LINUX

Lordre des commandes iptables est important car la premire rgle rencontre termine le traitement. Lorsque vous noncez des rgles de pare-feu, il existe deux stratgies : vous pouvez autoriser certains paquets individuels et bloquer tous les autres paquets ou vous pouvez autoriser tous les paquets et ninterdire que certains paquets particulirement dangereux. Cette seconde possibilit correspond au comportement par dfaut de iptables, qui consiste tout accepter tant quaucune rgle ne linterdit explicitement.

Un des problmes rencontrs par les scripts de pare-feu est quils sont parfois lancs par dautres scripts dans lesquels la variable PATH nest pas dnie ou ne lest que partiellement. Excuter directement iptables peut alors chouer car la commande nest pas trouve. Cependant, les distributions ne sont pas cohrentes entre elles sur lemplacement de la commande. La premire tape dun tel script est donc gnralement de chercher la commande iptables, que nous enregistrons dans la variable IPT. Le script suivant sert remettre zro iptables : il supprime toutes les rgles de ltrage dnies pralablement. Puis, tout le trac IP est autoris (ce script noffre donc absolument aucune protection). Vous devez lancer ce type de script avant dessayer de mettre en place vos propres rgles. Sinon, les rgles dnies dans les essais prcdents peuvent rester actives et interfrer 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 dfaut 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 rgles $IPT -F $IPT -F -t nat # supprime toutes les rgles dfinies par les utilisateurs $IPT -X # supprime le transfert IP (pas de mascarade) echo 0 > /proc/sys/net/ipv4/ip_forward

Scuriser laccs Internet


Interface Internet

Le script suivant dnit un pare-feu minimal pour un seul ordinateur connect Internet. Linterface est dnie par la variable INET. Dans lexemple suivant, je suppose que laccs Internet se fait par le biais de linterface eth1. Vous devez bien sr adapter INET

SCURIT DU RSEAU

571

votre environnement. Si votre connexion Internet est assure par un modem (ADSL) ou par RNIS, INET doit prendre la valeur ppp0 ou ippp0. Si linterface varie lors de la connexion Internet, vous pouvez aussi utiliser lcriture ppp+ ou ippp+. La commande iptables prend alors en compte toutes les interfaces de ce type.
Repousser les tentatives de connexions externes

Le ltre se compose dune simple chane de rgles wall. Elle protge de manire lgante et efcace des nouvelles connexions depuis lextrieur. La premire rgle de wall indique que tous les paquets appartenant une connexion dj tablie sont accepts. La deuxime rgle accepte les paquets qui initient une nouvelle connexion ds lors quils ne sont pas initis partir de linterface Internet. Il est donc possible de dmarrer une session SSH depuis le rseau local. La troisime rgle est que tous les paquets qui ne correspondent pas aux rgles prcdentes sont refuss. Cette rgle concerne donc linterdiction de tout ce qui nest pas explicitement autoris. Par exemple, un pirate potentiel narrivera donc pas dmarrer une session SSH (cela est galement valable pour tous les autres services rseau : HTTP, FTP, telnet, etc.). Les deux dernires commandes indiquent que les rgles de wall sappliquent tous les paquets qui passent par les chanes input ou forward.
#!/bin/sh # /etc/maconfig/iptables-firewall # Mini-Firewall pour un accs ADSL via ppp # remise zro /etc/maconfig/iptables-reset # paramtrage IPT=... # dfinir comme dans le script iptables-reset INET=eth1 # cette nouvelle chane bloque toutes les tentatives de connexion # provenant de lextrieur (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 chane pour INPUT et FORWARD $IPT -A INPUT -j wall $IPT -A FORWARD -j wall

Scuriser un client sans-fil sans VPN


Vous pouvez galement utiliser le script ci-dessus si vous accdez Internet via Wi-Fi. Selon la distribution, linterface utiliser peut tre eth* ou wlan*. Le plus simple est de dterminer cela avec ifconfig. Ce pare-feu ne permet pas aux autres utilisateurs du rseau Wi-Fi de se connecter votre ordinateur en SSH, de lire les rpertoires Samba que vous partagez, etc. Si le but du rseau Wi-Fi nest pas de vous connecter Internet, mais un rseau local, ce pare-feu est trop restrictif.

572

LINUX

Vous ne devez pas non plus placer une conance dmesure dans ce pare-feu. Si un pirate craque le chiffrage de votre rseau sans-l, il peut lire le trac rseau non chiffr, par exemple les mots de passe dun formulaire web. Le pare-feu na aucune inuence sur cela. Il empche quun pirate ne se connecte votre ordinateur mais ne fournit aucune protection contre lcoute du trac. Il est donc conseill de fournir laccs Internet et tous les autres services rseau par-dessus un VPN. Cela est particulirement vrai si laccs sans-l ne sert pas qu laccs Internet, mais aussi au rseau local dune entreprise.

Scuriser un client sans-fil avec PPTP-VPN


Lorsquun client est connect au rseau local par un VPN, il dispose de deux rseaux en mme temps : un rseau non sr (le rseau Wi-Fi) et un rseau sr (le VPN). Un pare-feu du ct client a ici la tche principale de scuriser linterface Wi-Fi. Sur cette interface, seuls les paquets ncessaires la conguration du client (DHCP) et ltablissement du tunnel VPN peuvent circuler. Lide de base du pare-feu est de ne dnir que quelques rgles qui autorisent les paquets servant congurer le VPN. Tous les autres paquets sont interdits. Les rgles du VPN dpendent ensuite du protocole utilis pour le VPN. Nous ne parlerons dans cet ouvrage que de PPTP.
Accepter les paquets DHCP

Les instructions suivantes acceptent les paquets DHCP (protocole UDP sur les ports 67 et 68).
# /etc/maconfig/iptable-firewall # Pare-feu pour un client VPN Wi-Fi # remise zro /etc/maconfig/iptables-reset # paramtrage IPT=... # dfinir 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 paquets PPTP

PPTP utilise le protocole TCP sur le port 1 723 ainsi que le protocole GRE (Generic Encapsulation, encapsulation gnrique), pris en compte par loption -p 47 de iptables. Pour que PPTP fonctionne en tant que client, les paquets TCP en entre et en sortie du port 1 723 doivent tre accepts :
# extension de /etc/maconfig/iptables-firewall # accepter les paquets sur le port 1723 (contrle PPTP) # accepter le protocole GRE (numro 47, donnes 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 autres paquets

Les rgles suivantes bloquent linterface pour tous les paquets des protocoles UDP et TCP :

SCURIT DU RSEAU

573
/etc/maconfig/iptables-firewall le reste -i $WLAN -p tcp -j DROP -o $WLAN -p tcp -j DROP -i $WLAN -p udp -j DROP -o $WLAN -p udp -j DROP

# extension de # bloquer tout $IPT -A INPUT $IPT -A OUTPUT $IPT -A INPUT $IPT -A OUTPUT
Rgles pour linterface PPP

Linterface Wi-Fi est sufsamment protge. Tout le trac passe prsent sur le VPN via linterface PPP. La scurisation de cette interface dpend de la scurit du rseau local. Pour un petit rseau dont le serveur rseau est lui-mme protg par un pare-feu, vous pouvez vous contenter des rgles ci-dessus. Si vous souhaitez plus de scurit, vous pouvez protger linterface PPP par la chane wall dcrite ci-dessus.

Scuriser une passerelle Internet


Le script iptables est plus complexe lorsquil sagit de protger non pas un ordinateur unique, mais une passerelle Internet complte. Le script commence comme dhabitude, mais il dnit galement la variable LAN pour linterface au rseau local. Sur mon ordinateur, il sagit de eth2.
#!/bin/sh # /etc/maconfig/iptables-firewall # Mini-Firewall pour scuriser une passerelle Internet # remise zro /etc/maconfig/iptables-reset # paramtrage IPT=... # dfinir comme dans le script iptables-reset MODPROBE=... # contient le chemin vers modprobe; dtermin comme le # chemin diptables INET=eth0 LAN=eth2
Fournir des services individuels publiquement

Le but du pare-feu est de bloquer les accs provenant de lextrieur. Les rgles correspondantes sont indiques ci-aprs. Cependant, si votre serveur doit mettre disposition des services rseau sur Internet en plus du rseau local (par exemple un serveur web ou SSH), vous devez crer des rgles dexceptions. Comme toutes les tentatives de connexion sont interdites par la chane wall, vous devez les dnir avant cette chane ! Il suft de dnir des rgles INPUT. Les rgles OUTPUT ne sont pas ncessaires car la chane wall laisse passer les paquets des connexions actives. MYIP content ladresse IP avec laquelle votre ordinateur est accessible sur Internet. Seuls les paquets qui y sont adresss et qui en viennent sont accepts. Si votre adresse IP est dynamique (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, ltablissement dune connexion HTTP ou SSH depuis lextrieur est de toute faon plus difcile car votre adresse IP change chaque reconnexion.

574

LINUX

# extension de /etc/maconfig/iptables-firewall # Permettre laccs au serveur HTTP (port 80) depuis lextrieur MYIP=123.124.125.126 $IPT -A INPUT -i $INET -p tcp -d $MYIP --dport 80 -j ACCEPT # Permettre laccs au serveur SSH (port 22) depuis lextrieur $IPT -A INPUT -i $INET -p tcp -d $MYIP --dport 22 -j ACCEPT

Si votre passerelle Internet nest pas directement connecte par un modem, mais par un routeur ADSL, les rgles ci-dessus ne sappliquent pas. Depuis Internet, il nest pas possible de sadresser directement votre passerelle. Les paquets qui arrivent depuis lextrieur sont adresss au routeur ADSL qui transmet les donnes aux clients par NAT. Ces clients regroupent aussi votre passerelle Linux. Du point de vue de la scurit, cette variante de configuration est galement un avantage. Le routeur ADSL est un premier pare-feu et laisse passer uniquement les paquets qui rsultent dune connexion tablie depuis lintrieur. Linconvnient vident est que votre passerelle nest pas accessible depuis Internet, mme dans les cas o vous aimeriez fournir des services comme un serveur SSH ou web.
Bloquer compltement les ports dangereux

Les lignes suivantes bloquent tout accs divers ports dangereux par le biais de linterface Internet. Dans la boucle for, quatre commandes iptables sont lances pour chaque numro de port. La premire rgle bloque le trac entrant TCP sur le port. La deuxime rgle bloque le trac sortant TCP. Les troisime et quatrime rgles fonctionnent de manire comparable pour le protocole UDP.
# extension de /etc/maconfig/iptables-firewall # bloquer compltement quelques ports # 23 (telnet) # 69 (tftp) # 135 (Microsoft DCOM RPC) # 139 (NetBIOS/Samba/etc.) # 445 (systme 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 ltablissement de connexion depuis lextrieur Mascarade

Une fois les rgles ci-dessus dnies, vous devez ajouter les rgles dnissant wall au script de pare-feu. Attention, celles-ci ne protgent pas la passerelle contre un accs provenant du rseau local. Comme lordinateur sert de passerelle Internet, il faut activer la mascarade. Les trois commandes modprobe ci-aprs sassurent que FTP fonctionne malgr la mascarade :

SCURIT DU RSEAU

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 mandatairecache

Si votre ordinateur fait ofce de serveur mandataire-cache transparent (voir la section 29.6), il faut ajouter une rgle supplmentaire :
# 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

Scuriser les interfaces Wi-Fi

Si votre serveur est connect un point daccs sans-l pour fournir ses services aux clients sans-l, il faut galement protger cette interface. Vous pouvez utiliser les mmes rgles que pour linterface Internet, ce qui fournit une protection acceptable. Cependant, le pare-feu ne bloque pas seulement les intrus mais aussi tous les clients lgitimes. La seule solution sense est de permettre aux clients Wi-Fi de se connecter uniquement par le biais dun 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 trac Wi-Fi lexception des paquets VPN et DHCP.

Journalisation
iptables permet de journaliser lefcacit de rgles indpendantes. Pour cela, donnez la rgle laction LOG. Pour quune rgle soit active et journalise, vous devez donc donner deux options -j : -j LOG et -j ACCEPT ou -j DROP. La journalisation est gre par syslogd dans les chiers usuels (/var/log/messages et /var/ log/warn). Par dfaut, peu dinformations sont journalises. Vous pouvez activer des messages supplmentaires avec diverses options -log-xxx (voir man iptables). Les lignes suivantes montrent comment les rgles 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 chiers de journalisation peuvent vite devenir normes. Ne journalisez que ce qui est ncessaire !

576

LINUX

Excuter automatiquement les rgles du filtre


Intgration InitV

Intgration la configuration PPP

/ppp/peers/ adsl

Pour lancer automatiquement les rgles de ltrage dans le cadre dInitV, vous devez enregistrer le script de ltres dans un endroit accessible pendant le processus InitV et lappeler par un script InitV. Inspirez-vous pour cela des scripts InitV de votre distribution. Vous pouvez aussi intgrer les rgles du pare-feu aux scripts /etc/ppp/ip-up.local et /etc/ ppp/ip-down-local qui sont dmarrs la mise en place et la terminaison de toute connexion PPP. Cela offre lavantage de pourvoir passer le nom de linterface au script (par exemple ppp0). De cette manire, le pare-feu peut obtenir dynamiquement le nom de linterface utilise, si celui-ci varie. Ces deux scripts ont six arguments : le premier est le nom de linterface (par exemple ppp0) et le sixime est lidentiant de la connexion PPP (option ipparam). Pour que tout fonctionne, vous devez modier plusieurs chiers : /ppp/peers/adsl, ip-up.local, ip-down.local et iptablesfirewall. Le chier /ppp/peers/adsl (qui peut sappeler autrement) contient les options de votre connexion Internet. Ajoutez-y loption ipparam si elle nexiste pas dj. Cela permet dutiliser une chane de caractres unique pour identier laccs Internet et le diffrencier des autres connexions PPP.
# dans /etc/ppp/peers/adsl ... ipparam "adsl"

ip-up.local

Vous devez crer le chier /etc/ppp/ip-up.local ou ltendre de cette manire :


#! /bin/sh # dmarrage du pare-feu # $1 est linterface PPP utilise (par exemple ppp0) # $6 contient la chane de caractres ipparam if [ "$6" = "adsl" ]; then /etc/maconfig/iptables-firewall $1 fi

ip-down.local

De cette manire, vous pouvez lancer le script iptables-firewall lorsque la connexion PPP ADSL est lance. Le script du pare-feu prend comme argument le nom de linterface. De la mme manire, crez ou tendez le chier /etc/ppp/ip-down.local :
#! /bin/sh # dmarrage du pare-feu if [ "$6" = "adsl" ]; then /etc/maconfig/iptables-firewall fi

iptablesfirewall

Le script du pare-feu doit tre modi pour prendre en compte linterface rseau indique en paramtre. La variable INET est maintenant dnie de manire dynamique.
#!/bin/sh # pare-feu # remise zro /etc/maconfig/iptables-reset # dterminer lemplacement de iptables et modprobe IPT=... MODPROBE=...

SCURIT DU RSEAU

577

# Interface rseau: linterface rseau Internet # est passe comme paramtre du script LAN=eth0 WLAN=eth1 INET=$1 # rgles du pare-feu lorsque linterface Internet est connecte # (y compris la mascarade) if [ $INET ]; then ... fi # rgles du pare-feu ne dpendant pas de laccs Internet, # par exemple scurisation de linterface Wi-Fi ...

Lorsque tout fonctionne, chaque fois quune interface PPP est connecte Internet, le parefeu est congur spciquement pour linterface PPP en question. Lorsque la connexion Internet est coupe, le pare-feu est redmarr, mais les commandes iptables spciques Internet sont omises.

29.6 Filtrage web (Squid)


Le programme squid est au cur de ce chapitre. Il sagit dun serveur mandataire-cache. Cela signie quil enregistre les pages web localement et quil en rgule laccs. Deux raisons peuvent justier la mise en place dun serveur mandataire-cache : Lacclration de laccs aux pages souvent consultes. Lorsque plusieurs personnes lisent des pages web en passant par le serveur mandataire-cache, on peut viter de transmettre plusieurs fois le mme chier. Cela acclre la lecture des pages qui sont souvent demandes et rduit le trac vers le fournisseur daccs Internet. Les conomies ralises ne sont gnralement que rduites car de nombreux sites web sont bass sur des pages dynamiques qui ne peuvent pas tre mises en cache. Le contrle daccs. Lutilisation de squid en tant que ltre web est de plus en plus importante. Squid peut bloquer des pages donnes certains utilisateurs, restreindre laccs web certaines heures, etc. Il se rvle idal pour les tablissements qui veulent limiter ou scuriser laccs Internet (par exemple les coles). Cette section se limite au contrle daccs par Squid et fournit quelques pointeurs pour la conguration de base. Vous trouverez plus dinformations dans le chier /etc/squid/ squid.conf. Le site web de Squid (http://www.squid-cache.org) contient galement un guide de conguration ainsi quune foire aux questions.

Configuration et dmarrage
Configuration minimale

Le comportement de squid est dni par /etc/squid/squid.conf. Le chier de conguration fourni avec squid est document de manire exhaustive et il est donc affreusement long

578

LINUX

(4 500 lignes). Crez une copie de ce chier an de constituer une documentation et supprimezen 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 chier est alors rduit une soixantaine de lignes. Par dfaut, squid.conf est congur de manire ne pouvoir tre utilis comme cache que pour lordinateur localhost. Selon la conguration de lordinateur local, cela ne fonctionne pas ncessairement : squid ne reconnat pas forcment que laccs provient de localhost. Les lignes suivantes montrent une conguration minimale possible pour squid. Le point de dpart tait la conguration de base de Squid version 2.6. Les modications effectues sont indiques en gras. cache_mem est la quantit de mmoire vive rserve pour les objets du cache. La ligne cache_dir est le rpertoire dans lequel les pages web sont enregistres. Les trois valeurs numriques indiquent la taille du cache en mgaoctets ainsi que le nombre de rpertoires et sous-rpertoires maximaux (de manire gnrale, plus lespace attribu au cache est gros, mieux cest). acl localnet dnit la variable localnet qui contient la plage dadresses du rseau local. Utilise avec http_access, elle permet aux autres ordinateurs du rseau local dutiliser le cache. Vous pouvez choisir un nom arbitraire la place de localnet.
# /etc/squid/squid.conf # Exemple de configuration # nom de lhte sur lequel squid est lanc visible_hostname mars.sol # Taille du cache: 64Mo en mmoire 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 lURL contient cgi-bin hierarchy_stoplist cgi-bin? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY # dure de vie des fichiers sans date dexpiration refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 # configuration du rseau local hosts_file /etc/hosts # Dfinitions 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

SCURIT DU RSEAU

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 daccs fournit son propre cache et si vous voulez ou devez lutiliser, indiquez son adresse IP et son port avec le mot cl cache_peer (comme dans lexemple suivant). Si vous ne connaissez pas le port ICP, essayez 0 ou 7. Si cela ne fonctionne pas, ajoutez loption supplmentaire 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 dun serveur local ne soient pas mises en cache, utilisez le mot cl no_cache :
# accs direct au serveur web local mars.sol acl mars dstdomain .mars .mars.sol no_cache deny mars

Il existe au moins une centaine doptions supplmentaires avec lesquelles vous pouvez contrler le comportement de Squid, par exemple pour viter de mettre en cache certaines pages, pour contrler la journalisation, etc. Pour plus dinformations, reportez-vous au fichier original squid.conf ou la documentation sur www.squid-cache.org.

580
Dmarrage/ arrt

LINUX

Squid est un dmon qui doit ventuellement tre dmarr explicitement. La commande correspondante varie selon la distribution. Si Squid est dj dmarr, vous pouvez lui faire relire son chier de conguration avec reload :
root# /etc/init.d/squid reload

Premier test

Squid cre alors divers rpertoires de cache dans /var/cache/squid ou dans /var/spool/ squid. Pour tester si un programme fonctionne, dmarrez un navigateur sur lordinateur local et modiez la conguration du serveur mandataire. Indiquez-y le nom de lordinateur (ici, mars.sol) et le numro de port 3 128. Sous Firefox, cela se fait en passant par le menu dition > Prfrences > Avanc > Rseau > Paramtres. Sous Konqueror, il faut aller dans Conguration > Congurer Konqueror > Serveur mandataire > Spcier manuellement la conguration du serveur mandataire (proxy). Chargez alors une page avec le navigateur web. Le chier /var/log/squid/access.log contient normalement tous les chiers enregistrs. Pour que les utilisateurs de votre rseau local puissent utiliser le cache, ils doivent galement passer par ces oprations pour le congurer dans leurs navigateurs web.

Configuration en tant que serveur mandataire-cache transparent


Jusquici, lutilisation du serveur mandataire se fait volontairement. squid est utilis uniquement lorsque les clients ajoutent la conguration du serveur mandataire dans leurs navigateurs. Sans cette modication, les utilisateurs court-circuitent le cache. Cette situation nest pas idale, et ce pour deux raisons. Dune part, pour de nombreux utilisateurs, changer les paramtres du cache est une exigence trop grande. Dautre part, Squid en tant que ltre reste sans effet sil suft aux utilisateurs de supprimer le paramtrage pour le contourner. Pour remdier cela, le noyau Linux peut tre congur pour transfrer tout le trac HTTP (qui transite habituellement sur le port 80) au serveur mandataire. Celui-ci est alors dsign sous le terme de "transparent". Cela signie que le cache est automatiquement utilis pour tous les accs HTTP. La conguration suivante suppose que squid est install sur lordinateur qui fait ofce de passerelle Internet. Nous supposons aussi que la connexion entre le serveur et les clients passe par linterface Ethernet eth2. Vous devez dabord congurer correctement votre noyau. Les fonctions Netlter suivantes doivent tre compiles directement dans le noyau : Connection Tracking, IP tables support, Full NAT et Redirect target support. Cest le cas pour les noyaux de toutes les distributions que jai testes. Il nest donc gnralement pas ncessaire de recompiler un noyau. Vous devez ensuite activer une fonction spciale du noyau pour permettre de transfrer les paquets IP :
root# echo 1 > /proc/sys/net/ipv4/ip_forward
Configuration de Squid

Configuration du noyau

Activation du transfert IP

Vous devez effectuer les modications suivantes :


# Modifications de /etc/squid/squid.conf httpd_accel_host virtual httpd_accel_port 80

SCURIT DU RSEAU

581

httpd_accel_with_proxy on httpd_accel_uses_host_header on

Puis, vous devez lancer /etc/init.d/squid reload.


Configuration de iptables

Vous devez aussi activer le transfert de paquets IP. Tous les paquets qui quittent lordinateur et qui sont adresss au port 80 doivent passer par le port de squid. La commande est coupe 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 rseau local passent automatiquement par squid pour consulter des pages web. Vriez que tout fonctionne en consultant /var/log/squid/ access.log aprs avoir accd au Web depuis un ordinateur client. Pour nir, ajoutez la commande iptables dans un script InitV lanc automatiquement au dmarrage de lordinateur. Sur mon serveur, la commande fait partie des scripts de parefeu.
En principe cette configuration fonctionne uniquement pour les clients du rseau local, mais pas pour lordinateur sur lequel le serveur mandataire est install. En dautres termes, la protection automatique nest pas valable pour lordinateur local, mais elle est valable pour tous les autres ordinateurs du rseau. Si vous souhaitez utiliser le serveur mandataire pour lordinateur local, vous devez modifier le paramtrage correspondant dans le navigateur web.
Exceptions

Il existe quelques sites web qui ne peuvent pas tre utiliss travers un serveur mandataire. Lorsque le serveur mandataire nest pas transparent, un utilisateur peut le contourner facilement (en le dsactivant ou en dnissant des exceptions). Pour un proxy transparent, lutilisateur na pas le choix. Squid ne permet pas non plus de transfrer des pages web prcises sans modication. Lorsque Squid reoit lordre de rcuprer une page web, il est dj trop tard. Pour pouvoir utiliser des pages problmatiques malgr le cache transparent, vous devez modier les rgles iptables an dviter que les requtes vers ces pages natteignent Squid. Le plus simple pour cela est de modier le script iptables avec quelques lignes de script.
#!/bin/sh # Extension du script de pare-feu # # transfrer 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 # transfrer toutes les autres adresses (serveur mandataire transparent) iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 \ -j REDIRECT --to-port 3128

582

LINUX

Tous les ouvrages iptables dconseillent lutilisation de rgles de pare-feu dpendant dune rsolution DNS. Si celle-ci ne fonctionne pas, un message derreur est renvoy. Dans ce cas concret, je nai cependant pas trouv dautre solution. Jinsiste sur le fait que cette mthode nest quune solution durgence. Si le script est lanc par InitV, la connexion Internet et la configuration du serveur de noms doivent fonctionner. Vous trouverez plus dinformations sur la configuration dun serveur mandataire-cache dans le Petit guide de mise en place dun mandataire transparent avec Linux et Squid ladresse http://www.traduc.org/docs/HOWTO/vf/TransparentProxy.html.

Rgles de contrle daccs


Grce la conguration minimale ci-dessus, tous les utilisateurs du rseau local utilisent le serveur mandataire-cache. squid fournit aussi des mcanismes trs ns de contrle daccs. Il faut dabord dnir des acl (Access Controls, contrles daccs). Ces rgles contiennent par exemple des adresses source (src, qui peut accder quoi ?), des heures (time, quelle heure est autoris laccs ?) ou des adresses cible (url_regex, quelles adresses peuvent ou non tre consultes ?)
# 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 cls dnis ci-dessus peuvent alors tre utiliss dans des commandes http_access-allow et -deny. Pour nir, une rgle deny-all indique que les accs qui ne se trouvent pas dans les cas indiqus sont interdits.
# localhost a toujours le droit daccder au web http_access allow localhost # mars a toujours le droit daccder au web http_access allow admin # Les ordinateurs de mynet peuvent accder 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, laccs au web est interdit http_access deny all

Filtre web avec DansGuardian


On peut bloquer des sites individuels avec squid.conf. Mais raliser un ltre web complet serait extrmement coteux. Pourquoi rinventer la roue ? Le programme DansGuardian (http://dansguardian.org/) permet de mettre en place un accs web avec une protection parentale de manire bien plus simple.

SCURIT DU RSEAU

583

La fonction de base du programme est danalyser les pages web la recherche de mots cls pornographiques et de bloquer la page en fonction du rsultat de la recherche. Le mcanisme est sufsamment intelligent pour ne pas ltrer toutes les pages contenant les mots "sexe" ou "seins". Comme DansGuardian prend en compte le contenu des pages, il est indpendant 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 tlchargement des virus les plus connus, il est install avec le ltre ClamAV. DansGuardian est un dmon, dmarr et arrt avec les commandes habituelles. Par dfaut, il attend des requtes 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 problme, elle est retransmise via le port 8 080 au navigateur web. La variante de conguration que nous proposons ici est plus lgante : DansGuardian traite toutes les requtes web sur le port 80 an quaucune conguration ne soit ncessaire du ct client. Le chier de conguration principal de DansGuardian est /etc/dansguardian/dansguardian.conf. Vous pouvez gnralement laisser ce chier tel quil est. Selon la distribution, le chier peut contenir la ligne UNCONFIGURED, que vous devez dsactiver avec un caractre de commentaires. Si vous souhaitez que les messages derreur soient afchs en franais, utilisez le paramtre language=french. Si votre rseau ne contient que des ordinateurs sous Linux, vous pouvez dsactiver le scanner de virus avec virusscan=off. Pour intgrer DansGuardian et Squid, il faut indiquer ladresse 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 ...

dansguardian. conf

Une fois le chier modi, faites-le relire par DansGuardian :


root# /etc/init.d/dansguardian reload
dansguardianf 1.conf

Le ltre lui-mme est congur dans /etc/dansguardian/dansguardianf1.conf. Ce chier dnit dabord divers chiers prcongurs de mots cls, de sites web bloqus, etc. Le paramtre naughtynesslimit contrle le degr de "malfaisance" partir duquel la page est bloque. Plus cette valeur est haute, plus le nombre de mots cls et de combinaisons de mots cls trouvs dans le texte est lev.
# /etc/dansguardian/dansguardianf1.conf (extraits) # Content filtering files location bannedphraselist = /etc/dansguardian/bannedphraselist weightedphraselist = /etc/dansguardian/weightedphraselist

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 dillusion sur lefficacit de DansGuardian. Mme un paramtre naughtynesslimit=50 (adapt aux jeunes enfants) noffre pas une protection complte envers les pages web pornographiques ; il ne prsente aucune protection envers les images pornographiques. La configuration par dfaut prend essentiellement en compte des mots cls en anglais. Pour la plupart des sites pornographiques, cela peut suffire. Toutefois, si vous souhaitez galement filtrer des pages de sites dextrme droite ou de sites incitant la violence, vous devrez mettre la main la pte. Jetez un il au fichier de configuration /etc/dansguardian/weightedphraselist et aux fichiers qui y sont dfinis. Indpendamment de cela, il nest pas trs 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 sapplique quaux 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 lducation et les explications.
Rgles supplmentaires et exceptions

En pratique il est souvent difcile de discriminer les pages uniquement sur des mots cls. Le tableau suivant dcrit quelques chiers du rpertoire /etc/dansguardian dans lesquels vous pouvez indiquer des sites web laisser passer ou ltrer.
bannedextensionlist bannedmimetypelist bannedsitelist bannedurllist exceptionsitelist exceptionsurllist exceptionphraselist greysitelist

bloque les chiers avec les extensions indiques bloque les types de chiers indiqus bloque entirement les sites web indiqus bloque les pages indiques accepte les sites web indiqus sans les contrler accepte les pages indiques sans les contrler mots cls positifs de base, accepte le site web, mais contrle le contenu texte

SCURIT DU RSEAU

585

bannedurllist et bannedsitelist peuvent se fonder sur les chiers du projet urlblacklist (http://urlblacklist.com/). Ce projet collecte divers liens dinnombrables sites web problmatiques, classs par catgories (par exemple drugs, porn, violence). Attention, urlblacklist est un service commercial. Les listes de ltres peuvent tre tlcharges gratuitement une fois an deffectuer des tests, mais les mises jour rgulires ne sont pas gratuites. Dans sa conguration par dfaut, DansGuardian bloque le tlchargement de chiers compresss, de chiers MP3, de chiers ISO, etc. Ces paramtres sont trop restrictifs pour une utilisation quotidienne de Linux et peuvent mme empcher un fonctionnement correct du gestionnaire de paquetages. Nhsitez pas commenter quelques types de chiers dans les chiers bannedmimetypelist et bannedextensionlist.
Configuration de Squid

Pour interfacer Squid avec DansGuardian, squid.conf doit contenir les lignes suivantes :
# 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 transparente

Par dfaut, DansGuardian fonctionne sur le port 8 080. Pour protger laccs au web de manire transparente sur le port 80, modiez le script de pare-feu comme suit :
#!/bin/sh # extension du script de pare-feu # # transfre tous les paquets adresss 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 nest pas la seule extension de Squid qui vise au contrle parental. Une alternative intressante est SquidGuard qui est un greffon de Squid fournissant diverses fonctions supplmentaires et dont la configuration via Squid est plus simple : http://www.squidguard.org/.

30

Serveur de rseau local (CUPS, NFS et Samba)


Ce chapitre dcrit la conguration de services rseau gnralement utiliss dans un rseau local. Vous apprendrez comment partager des chiers et des imprimantes au sein de votre organisation. Nous traiterons plus particulirement des points suivants : Systme dimpression (CUPS). Que votre imprimante soit branche un seul ordinateur ou utilise sur un rseau, un service soccupe de la communication avec elle. Pour la plupart des distributions, il sagit de CUPS. Partage de rpertoires par NFS. NFS (Network File System, systme de chiers rseau) permet de partager facilement des chiers entre des ordinateurs Unix/Linux. Partage de rpertoires et dimprimantes par Samba. Pour assurer la compatibilit des partages de chiers avec Windows, il faut utiliser Samba. Celui-ci permet de partager des rpertoires et des imprimantes sur un rseau via le protocole SMB.

30.1 CUPS Les fondamentaux


Le paquetage de programmes CUPS (Common Unix Printing System, systme dimpression commun sous Unix) sert traiter et grer les les dattente de tches dimpression, ainsi qu transformer les donnes imprimer au format de limprimante. CUPS, fourni par la plupart des distributions, est au cur de cette section, base sur la version 1.3. Vous vous demandez peut-tre pourquoi le thme de limpression, lmentaire, nest trait qu ce point avanc du livre. Cela est d au fait que sous Linux, limpression est gre par un service rseau. Selon la conguration, chaque imprimante peut tre utilise par tous les autres utilisateurs du rseau local. Lutilisation dune imprimante locale nest pas complique et fonctionne gnralement sans avoir lire cette section. Les pages suivantes sadressent aux utilisateurs qui souhaitent comprendre les bases et lhistoire du systme dimpression sous Linux.
Lorsquune imprimante est momentanment indisponible (par exemple, parce quelle est teinte), elle est mise en pause par CUPS. Ce dernier enregistre donc que limprimante ne peut pas tre utilise. Cependant, lorsque celle-ci est rallume ou reconnecte, CUPS ne saperoit pas ncessairement quelle est nouveau disponible. Il faut alors la ractiver explicitement. Toutes les interfaces utilisateur de CUPS le permettent, ainsi que les commandes cupsenable nomimprimante et lpadmin -E -p nomimprimante .

588

LINUX

Processus dimpression
PostScript

La philosophie dimpression sous Unix/Linux repose sur les imprimantes PostScript. PostScript est un langage de programmation pour dcrire le contenu des pages. Ce type dimprimantes attend des donnes dimpression dans ce format. La plupart des programmes dots dune fonction dimpression envoient des donnes PostScript au systme dimpression. Lavantage de PostScript sur les autres formats est que la description utilise un format vectoriel et quil fonctionne donc dans nimporte quelle rsolution. Limpression dun chier PostScript est dautant plus prcise que limprimante est de bonne qualit (rsolution leve). Cest pourquoi PostScript joue un rle dominant non seulement sous Unix, mais aussi dans toute lindustrie de limpression.
Sous Linux, il existe de nombreux programmes qui permettent de lire un document PostScript. Leur anctre est ghostview. Son interface nest cependant pas trs 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 nimporte quel outil de visualisation de PDF aprs avoir converti le fichier au format , PDF avec ps2pdf.

Priphriques dimpression

Il est extrmement simple dimprimer si votre imprimante comprend le PostScript. Il suft pour cela denvoyer le chier PostScript avec cp en tant que root sur le priphrique de linterface laquelle limprimante est connecte.
root# cp fichier.ps /dev/lp0 root# cp fichier.ps /dev/ttyS0 root# cp fichier.ps /dev/lp0

Ces trois lignes correspondent respectivement limpression sur le port parallle, sur le port srie et sur un port USB.
Systme dimpression

Tous les utilisateurs en dehors de root devraient cependant pouvoir imprimer, quils travaillent en local sur lordinateur ou sur une autre machine du rseau. Par ailleurs, aucun deux ne veut se battre avec les noms de priphriques, dautant quils ny ont probablement pas accs. Cest pourquoi un systme dimpression a t dvelopp. Il a plusieurs tches : fournir des commandes simples dimpression qui permettent daccder des noms dimprimantes plutt qu des noms de priphriques ; permettre tous les utilisateurs, y compris ceux du rseau, dimprimer ; permettre dajouter et de grer plusieurs imprimantes sur un ordinateur ; fournir un mcanisme de le dattente lorsque plusieurs tches sont lances en mme temps, de manire attendre que limprimante soit libre ; effectuer quelques tches annexes, comme des statistiques sur le systme dimpression. Le systme dimpression le plus simple et le plus moderne est, lheure actuelle, CUPS. Ses alternatives classiques, BSD-LPD et LPRng, ne seront pas traites dans cet ouvrage. Quel que soit le systme dimpression utilis sur votre ordinateur, la commande dimpression est toujours la mme :
utilisateur$ lpr -Pnom fichier

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

589

nom est le nom de limprimante (ou plus exactement, celui de la le dattente de limpression). Si vous omettez loption -P, le document est imprim sur limprimante par dfaut.
Filtre dimpression (GhostScript)

Nous avons jusquici dcrit la mise en uvre dune imprimante PostScript. En pratique, les imprimantes qui ne comprennent pas ce langage sont les plus nombreuses. Pour pouvoir les faire fonctionner sous Linux, il faut convertir les donnes PostScript au format de limprimante. Le programme GhostScript se charge de cette conversion. gs est appel par un ltre. Il sagit dun script qui traite les donnes dentre et renvoie les donnes de sortie. Le ltre pour le processus dimpression doit en particulier envoyer les bons paramtres gs : modle de limprimante, rsolution et taille de page souhaites, etc. Il transforme les donnes PostScript en chiers bitmap, page par page, et les renvoie limprimante, sans oublier dajouter aux donnes les commandes spciques ladite imprimante. GhostScript accde galement des pilotes dimprimantes externes. Le projet le plus important de pilotes pour Linux est Gutenprint (autrefois connu sous le nom de Gimp-Print), que vous trouverez ladresse http://gutenprint.sourceforge.net/.

Filtres de documents

Jusquici, PostScript est le seul format des chiers imprimer. Il est cependant courant de devoir imprimer un seul chier texte ou image. On peut bien sr le charger dans un diteur, qui limprime 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 systme dimpression tente de reconnatre le type de chiers imprimer. Lorsque cela fonctionne et quil ne sagit pas encore dun chier PostScript, le chier est transform au format PostScript avec le programme appropri. Le convertisseur est cependant appel par un script de ltre.

Rsum de la chane

Vous avez congur une imprimante jet dencre non PostScript sur votre ordinateur. Elle sappelle pluton. Vous aimeriez maintenant imprimer le chier monimage.png. Lancez par consquent la commande suivante :
utilisateur$ lpr -Ppluton monimage.png

Le processus dimpression suit alors ces tapes : 1. lpr envoie le chier au systme dimpression CUPS. 2. Celui-ci envoie le chier au systme de ltres. 3. Le ltre reconnat le type de chiers (PNG) et convertit limage bitmap au format PostScript. 4. Les donnes PostScript sont envoyes GhostScript, qui convertit le chier PostScript au format de donnes de limprimante pluton. 5. Lorsque pluton a termin toutes ses tches prcdentes, elle imprime monimage.png.

Configuration de base de CUPS


cupsd.conf

La conguration de base de CUPS est enregistre dans /etc/cups/cupsd.conf. Les paramtres par dfaut varient selon la distribution. Vous pouvez modier les principales options

590

LINUX

avec un programme de conguration ou linterface web localhost:631. Nous allons cependant dabord parler de la conguration manuelle de CUPS. La place manque pour dtailler tous les mots cls dune conguration cupsd.conf. Les exemples ci-aprs montrent le principe de la conguration et nont pas vocation servir de rfrence. Vous pourrez trouver une rfrence de tous les mots cls ladresse http://localhost:631/help/ref-cupsd-conf.html.
Attention, une modification de cupsd.conf nest valide quune fois CUPS redmarr. Le nom du script InitV correspondant diffre selon la distribution (cups, cupsd, cupsys, etc.).
root# /etc/init.d/cups* restart

Si vous utilisez CUPS sous SUSE, vous devez vous abstenir dutiliser des tabulations ; YaST peut, dans le cas contraire, dtruire votre configuration !
Paramtres essentiels

cupsd.conf commence par quelques paramtres essentiels, qui ressemblent par exemple ceux-ci :
# Paramtres 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 laccs rseau limprimante sur le rseau local Browsing On BrowseOrder allow,deny BrowseAllow @LOCAL BrowseAddress @LOCAL #Authentification par nom dutilisateur et mot de passe lorsquune #telle authentification est ncessaire DefaultAuthType Basic

Contrle daccs

Laccs plusieurs composants de CUPS est contrl par diverses sections <Location xxx>, ainsi que par des rgles <Policy> : <Location /> est la conguration de base pour tous les composants. <Location /admin> gre les droits dadministration sur linterface web. <Location /admin/conf> gre les droits de conguration sur linterface web. <Policy default> dnit les rgles pour les oprations de base. Lexemple de conguration suivant dnit un droit daccs toutes les fonctions de CUPS uniquement pour lordinateur local. Order allow,deny interdit par dfaut tout accs et dnit les rgles en lisant dabord les lignes Allow, puis les lignes Deny. Ladministration web sur localhost:631 nest galement accessible que pour localhost. Les modications de la conguration ncessitent lauthentication dun administrateur systme (root ou un utilisateur membre du groupe dni par le mot cl SystemGroup). Le bloc Policy contient des rgles sur les oprations accessibles aux diffrents utilisateurs (par exemple, pour arrter une tche dimpression dj lance).

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

591

# Gestion des droits daccs dans /etc/cups/cupsd.conf # Authentification par nom dutilisateur et mot de passe lorsquune # telle authentification est ncessaire DefaultAuthType Basic # Autorise un accs global au serveur CUPS pour localhost <Location /> Order allow,deny Allow localhost </Location> # Autorise ladministration web localhost <Location /admin> Order allow,deny Allow localhost </Location> # Autorise la configuration web localhost, mais demande une # authentification dun administrateur systme CUPS <Location /admin/conf> AuthType Basic Require user @SYSTEM Order allow,deny Allow localhost </Location> # Rgles pour laccs limprimante et aux tches dimpression <Policy default> # Les tches dimpression ne peuvent tre modifies que par leur # propritaire 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 tches administratives ncessitent quun 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 oprations sont autorises tous <Limit All> Order deny,allow </Limit> </Policy>

592
TCP-Wrapper

LINUX

Laccs CUPS est normalement enregistr dans /etc/cups/cupsd.conf. Il arrive cependant que CUPS soit compil avec la bibliothque TCP-Wrapper (comme sous SUSE). Vous pouvez vrier cela avec ldd :
user$ ldd /usr/sbin/cupsd ... libwrap.so.0 => /lib64/libwrap.so.0

Dans ce cas, CUPS ne fonctionne que lorsquil nest pas interdit dans /etc/hosts.deny ou autoris explicitement dans /etc/hosts.allow, ce qui est le cas par dfaut. Si vous modiez ces chiers, 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 serveur http, qui coute par dfaut sur le port 631. Pour tester cette fonction, allez ladresse http://localhost:631 avec votre navigateur (voir Figure 30.1).

Figure 30.1
Administration web de CUPS.

cupsd.conf

Le chier /etc/cups/cupsd.conf dnit si ladministration web est active, si elle peut tre utilise sur lordinateur local ou le rseau, et sil est ncessaire de sy connecter avec un identiant de compte systme et un mot de passe associ. La conguration de la section prcdente autorise uniquement les utilisateurs locaux grer CUPS via le Web (Listen localhost:631). Si vous dsirez faire galement fonctionner la conguration web sur le rseau local, vous devez modier cupsd.conf comme suit. Vous devez aussi vous assurer que le port 631 nest pas bloqu par un pare-feu.
# /etc/cups/cupsd.conf ... Port 631 Listen /var/run/cups/cups.sock

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

593

... <Location /admin> ... Order allow,deny Allow @LOCAL </Location> # Modifier la configuration ncessite lauthentification dun # administrateur systme de CUPS <Location /admin/conf> AuthType Basic Require user @SYSTEM Order allow,deny Allow @LOCAL </Location> ...

Commandes dadministration de CUPS


En gnral, vous utiliserez la bote de dialogue dimpression dun programme (OpenOfce.org, Firefox, etc.) pour imprimer, et les outils de Gnome ou de KDE pour grer les tches dimpression. Vous pouvez galement utiliser pour cela diverses commandes en ligne de commande. Celles-ci sont trs utiles lorsque vous dsirez automatiser lenvoi de tches dimpression.
Les commandes lpr, lpq, lprm et lpc ne sont pas spcifiques CUPS ; elles existent aussi dans BSD-LPD et LPRng. Il sagit dun dnominateur commun de tous les systmes dimpression, mais attention : les options peuvent diffrer dun systme un autre.
lpr

lpr permet dimprimer un chier. Si plusieurs imprimantes sont congures, indiquez avec loption -P sans espace le nom de la le dattente. Vous pouvez lomettre si vous utilisez limprimante par dfaut.
utilisateur$ lpr -Pnom fichier

On peut aussi utiliser lpr en conjonction avec un tube pour imprimer la sortie dune autre commande. La commande suivante imprime la liste de chiers renvoye par ls sur limprimante par dfaut :
utilisateur$ ls -l *.odt |lpr

Vous pouvez aussi utiliser, la place de lpr, la commande lp (sa syntaxe est explique dans man 1 lp).
lpq et lprm

Toutes les tches dimpression qui ne sont pas excutes immdiatement sont enregistres dans une le dattente (une le par imprimante). Vous pouvez afcher le contenu de cette le dattente avec lpq -Pnom.

594

LINUX

Pour supprimer les tches dimpression que vous avez vous-mme lances, utilisez lprm Pnom id en indiquant le nom de limprimante et le numro de la tche, que vous pouvez obtenir avec lpq.
utilisateur$ lpq HPLasJet1022 est prte et en cours dimpression Rang Propr. Tche Fichiers active michael 20 evince-print 1st michael 21 evince-print utilisateur$ lprm 20 utilisateur$ lprm 21
lpc

Taille totale 17408 octets 16384 octets

lpstat, lpinfo, lpadmin et lpoptions

lpc permet un contrle plus n sur lactivit de limprimante. 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 lances que par lutilisateur root. Pour quitter lpc, utilisez les commandes exit, bye ou quit. lpstat afche des informations sur toutes les imprimantes disponibles. lpinfo fournit une liste de tous les priphriques et pilotes dimpression. lpadmin permet dajouter ou de supprimer une imprimante. lpoptions afche les options des imprimantes CUPS et permet de les modier.
utilisateur$ lpoptions -o PageSize=A4

CUPS dsactive les imprimantes qui ne sont pas accessibles. Pour les ractiver, lancez les deux commandes suivantes :
utilisateur$ lpadmin -E -p nom utilisateur$ accept nom

Pour les dsactiver explicitement, utilisez la commande reject :


utilisateur$ reject nom

HP Linux Imaging and Printing (HPLIP)


HP dveloppe 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 dfaut. Le paquetage HPLIP contient divers pilotes et programmes supplmentaires pour la conguration et la maintenance des priphriques. Par exemple, hp-setup reconnat les appareils HP connects lordinateur et aide les connecter. hp-toolbox permet de connatre le niveau de remplissage des cartouches de nombreuses imprimantes jet dencre HP, une fonction que CUPS ne fournit pas. Lutilisation 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 fonctionnalits supplmentaires. HPLIP est troitement li CUPS. Les processus hpiod et hpssd, lancs lors du dmarrage du systme par le script InitV /etc/init.d/hplip, grent la communication avec les priphriques HP. Vous trouverez plus dinformations sur HPLIP ladresse http://hplip.sourceforge.net/.

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

595

30.2 CUPS Configuration dune imprimante


Pour congurer une imprimante, vous pouvez utiliser les outils intgrs Gnome et KDE, loutil de conguration web de CUPS ou les programmes fournis par votre distribution. Gnome : gnome-cups-manager KDE : module du centre de contrle CUPS : conguration web Debian, Ubuntu : outils KDE et Gnome Red Hat, Fedora : system-cong-printer SUSE : module YaST Matriel, Imprimantes La question dcisive de la conguration de limprimante est bien sr de savoir si elle est compatible avec Linux et avec la combinaison CUPS, GhostScript et leurs pilotes. La liste suivante rsume la compatibilit prvoir pour les diffrentes catgories dimprimantes : Imprimantes laser. Elles sont pour la plupart compatibles PostScript ou PCL (langage dimprimante de HP). Leur utilisation sous Linux est optimale. Cest galement valable pour la majorit des modles rseau. Imprimantes GDI/Windows. Ces imprimantes, gnralement bon march, sont prvues pour tre utilises sous Windows. Lide sous-jacente est quun programme Windows prpare la page imprimer sur lordinateur et lenvoie limprimante. Les pages sont souvent construites avec linterface graphique GDI dveloppe par Microsoft, do le nom dimprimante GDI. Malheureusement, le format des donnes des pages nest gnralement pas document. De nombreuses imprimantes de ce type ne sont donc pas prises en charge sous Linux. Imprimantes jet dencre et imprimantes photo. La prise en charge des imprimantes jet dencre dpend largement du modle et de la marque. Les imprimantes HP sont en gnral relativement bien prises en charge. Comme HP travaille beaucoup avec la communaut Linux, il existe un pilote libre pour la plupart des modles. Les modles les plus rcents peuvent cependant manquer dune base de donnes dimpression CUPS (chiers PPD). Les imprimantes jet dencre dautres fabricants posent souvent plus de problmes. Le site web http://mambo.kuhp.kyoto-u.ac.jp/~takushi propose des pilotes pour quelques imprimantes Canon et Epson. Linstallation peut cependant tre complique. Lorsque vous achetez une nouvelle imprimante, il est protable de jeter un il sur le site web http://www.freestandards.org/en/OpenPrinting qui recense dinnombrables informations sur le thme de limpression sous Linux. Il existe aussi une base de donnes de modles pris en charge sous Linux.
Certaines imprimantes pour lesquelles il nexiste pas de pilote libre disposent dun pilote commercial TurboPrint. Ce dernier permet dailleurs dobtenir de meilleurs rsultats pour certaines imprimantes photo. Vous trouverez des pilotes relativement bon march et une version gratuite, mais limite des pilotes sur le site web http://www.turboprint.de/en_p_turboprint.phtml .

Pilotes dimprimante

596
Fichiers PPD

LINUX

CUPS voit toutes les imprimantes comme une imprimante PostScript. Les paramtres spciques, comme la taille des marges non imprimables, la rsolution de limprimante, les commandes pour diffrentes fonctions (par exemple, les bacs dentre du papier) et autres particularits (impression en duplex), sont enregistrs dans des chiers PPD (PostScript Printer Denition, dnition dimprimantes PostScript). Ce format, dni par Adobe, est galement utilis pour les imprimantes sous Windows et Mac OS X. Comme toutes les imprimantes ne sont pas en ralit des imprimantes PostScript, les chiers CUPS PPD contiennent galement sous forme de commentaires la commande GhostScript, y compris toutes les options, avec lesquelles gs peut convertir les chiers PostScript dans le format de limprimante. Les lignes suivantes constituent quelques extraits dun chier PPD pour limprimante jet dencre 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 dune base de donnes ppds.dat qui contient toutes les imprimantes connues par CUPS. Le chier ppds.dat est cr lors de la conguration de limprimante et se trouve selon la distribution dans un rpertoire diffrent, par exemple /var/cache/cups. Si votre imprimante ne se trouve pas dans cette base de donnes et si vous ne trouvez pas de modle compatible, vous pouvez ventuellement trouver un chier .ppd sur Internet. Le script cupsomatic extrait du chier PPD de limprimante les paramtres GhostScript, puis appelle gs et convertit les donnes PostScript au format de limprimante.

Configuration dune imprimante locale


Indpendamment du programme de conguration utilis, les astuces suivantes devraient vous aider : La dtection automatique de limprimante ne peut fonctionner que lorsque celle-ci est allume. Si vous possdez plusieurs imprimantes, vous devez pendant la conguration dune imprimante donne teindre toutes les autres. Pour congurer manuellement une imprimante, vous devez au moins connatre linterface (parallle, srie, USB, rseau, etc.) et le modle. Celui-ci est choisi dans une norme base de donnes.

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

597

Si votre imprimante ny gure pas, essayez de trouver un modle compatible. Pour les imprimantes PostScript et PCL, vous pouvez choisir le fabricant Generic et indiquer le type de limprimante (PostScript ou PCL). Pour certaines imprimantes rcentes qui ne gurent pas encore dans la base de donnes de modles de CUPS, vous pouvez trouver un chier PPD sur Internet et le charger pendant la conguration. Attention, tous les chiers PPD ne sont pas compatibles avec CUPS. Un chier donn peut aussi demander une version trs rcente de CUPS. Pour de nombreux modles dimprimantes, il existe plusieurs pilotes. Deux raisons peuvent expliquer cela. Bon nombre dimprimantes prennent en charge diffrents standards. De plus, CUPS agrge plusieurs projets diffrents (GhostScript, GutenPrint, etc.), ce qui peut mener diffrents pilotes provenant de diffrents projets. Limprimante peut alors apparatre plusieurs fois sous diffrents noms. Il nest souvent pas facile de dire si le pilote X est meilleur que le pilote Y. La qualit de limpression dpend largement de ce que vous dsirez imprimer : texte, schmas techniques, photos, etc. Seules quelques expriences vous permettront de savoir quel pilote utiliser pour quelles donnes. La qualit dimpression dpend galement du paramtrage du pilote, par exemple la rsolution. Les pilotes ne se diffrencient pas seulement par la qualit, mais aussi par la vitesse dimpression. Pour imprimer du code, il nest pas forcment ncessaire dutiliser un pilote destin limpression de photos ! La plupart des imprimantes laser PostScript peuvent aussi tre congures via un mode de compatibilit pour se comporter comme une imprimante HP LaserJet. Les donnes dimpression sont alors converties dans le langage dimpression de HP et envoyes limprimante. Cela peut paratre lourd, mais la vitesse dimpression obtenue est dans de nombreux cas suprieure. En effet, pour limprimante, traiter des chiers PostScript est bien plus complexe que traiter des chiers LaserJet. La vitesse de traitement est plus faible que celle dun PC classique. Cette conguration a cependant un inconvnient : la qualit dimpression est en partie plus faible. La diffrence dpend principalement des polices utilises.

Configuration dune imprimante rseau (ct serveur)


Les termes "conguration dune imprimante rseau" sont souvent peu clairs. Cette section traite du cas dune imprimante tout fait normale branche sur un ordinateur et mise la disposition du reste du rseau via CUPS. La section suivante dcrit comment utiliser une imprimante dj connecte au rseau.
cupsd.conf

Nous supposons ici que limprimante est dj congure en local, cest--dire quil est possible dimprimer depuis lordinateur. Avant que dautres ordinateurs ne puissent lutiliser, il faut que les contrles daccs du serveur CUPS le permettent. Pour que toutes les imprimantes du rseau local sachent quelles imprimantes sont disponibles sur le rseau, il faut activer

598

LINUX

la fonction Browsing du serveur CUPS. Les modications ncessaires du chier cupsd.conf sont indiques dans le chier de conguration ci-aprs :
# /etc/cups/cupsd.conf ... Listen 631 Browsing On BrowseAddress @LOCAL ... # Permettre laccs CUPS dans le rseau local <Location /> Order allow,deny Allow @LOCAL </Location> ...

Listen 631 indique que CUPS communique sur le port rseau 631. Attention, le paramtrage par dfaut est Listen localhost:631, qui nautorise laccs qu lordinateur local. BrowseAdress @LOCAL sassure que les informations de CUPS sont envoyes sur toutes les interfaces rseau locales, mais pas sur les interfaces daccs Internet (PPP, etc.). Vous pouvez aussi indiquer une interface rseau particulire avec BrowseAddress @IF(eth0). cupsd.conf a de nombreux mots cls associs au parcours du rseau. Par exemple, BrowseAllow et BrowseDeny permettent dindiquer explicitement depuis quels ordinateurs les informations CUPS peuvent tre reues. Par dfaut, il ny a pas de restriction daccs et il est rarement ncessaire ou sens de modier les autres paramtres BrowseXxx. Allow @LOCAL permet de donner accs CUPS aux ordinateurs du rseau local. Noubliez pas de redmarrer CUPS pour que les modications soient prises en compte :
root# /etc/init.d/cups* restart

Pour quune imprimante locale soit galement utilise sur les ordinateurs Windows du rseau, elle doit tre partage par Samba (voir section 30.8).

Configuration dune imprimante rseau (ct client)


Aprs avoir dcrit comment partager une imprimante avec dautres membres du rseau, nous allons maintenant traiter de lopration inverse : envoyer des documents une imprimante qui nest pas connecte directement lordinateur, mais seulement disponible via le rseau. Il existe deux variantes : les imprimantes usuelles, connectes un autre ordinateur, et les vraies imprimantes rseau, qui disposent elles-mmes dune prise rseau et dun serveur dimpression intgr. Lorsque la connexion limprimante se fait par le biais dun autre ordinateur, on peut rencontrer 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).

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

599

Utiliser une imprimante IPP

La plupart des vraies imprimantes rseau connaissent au moins lun de ces protocoles. De plus, certains appareils prennent en charge divers protocoles supplmentaires : une API de socket (par exemple JetDirect dHP) sur le port IP 9100 ; AppSocket (par exemple Tektronix) ; un protocole spcique au fabricant. Les dtails de la conguration dpendent du protocole utilis pour les communications. La situation la plus simple correspond celle o CUPS et IPP sont disponibles des deux cts. Les imprimantes rpondant cette conguration sont visibles sans autre conguration du ct client et peuvent tre utilises immdiatement. CUPS ajoute toutes les imprimantes visibles sur le rseau au chier /etc/printcap. lpstat -v afche une liste de toutes les imprimantes disponibles. La commande suivante est lance sur lordinateur uranus. Il existe une imprimante locale, nomme DeskJet-5940, ainsi que deux imprimantes sur mars et saturne, nommes respectivement pluton et kyocera.
user@uranus$ priphrique priphrique priphrique lpstat -v pour DeskJet-5940: parallel:/dev/lp0 pour pluton: ipp://mars.sol:631/printers/pluton pour kyocera: ipp://saturn.esol:631/printers/kyocera

Ces trois imprimantes sont accessibles directement avec lpr -Pnom. Si plusieurs imprimantes ont le mme nom sur le rseau, elles doivent tre dsignes sous la forme nomimprimante@nomhte, par exemple lpr -Plp@jupiter.
Pour que les imprimantes CUPS soient visibles des autres ordinateurs dans le rseau local, CUPS doit tre configur sur les ordinateurs distants comme dans la section prcdente. Le port 631 ne doit pas tre bloqu par un pare-feu ! En principe, une imprimante IPP peut tre configure de manire pouvoir tre utilise en rseau, mais non visible automatiquement. Dans ce cas, vous devez configurer limprimante sur lordinateur local. Choisissez comme type dimprimante Imprimante rseau IPP et saisissez comme adresse ipp://nomhte/printers/ nomimprimante. Si limprimante distante est gre par Linux/CUPS, indiquez comme fabricant et modle Raw et Queue. Cela signifie que les donnes PostScript doivent tre envoyes telles quelles lordinateur distant qui se chargera du traitement des donnes pour limprimante.
Configurer dautres imprimantes rseau

Si limprimante rseau distante nest pas compatible avec IPP, elle doit tre congure du ct du client avant quil puisse lutiliser. Les programmes de conguration sen chargent comme pour une imprimante locale. Il faut cependant choisir, comme type dimprimante, Imprimante rseau. La suite de la conguration dpend du protocole : SMB (Windows/Samba). Vous devez indiquer le nom dhte de lordinateur, le nom de limprimante et ventuellement un nom dutilisateur et un mot de passe. Avant de pouvoir utiliser une imprimante Windows, vous devez installer les outils client de Samba. Selon la distribution, les outils client et serveur font tous partie du mme paquetage. LPD (Unix-LPD). Indiquez le nom de lordinateur et de limprimante, ainsi que celui de la le dattente. En cas de doute, il sagit souvent de lp ou lp0. Protocole de socket comme HP JetDirect. Indiquez le nom dhte et ladresse IP de limprimante, ainsi que le numro de port (en gnral, 9100).

600

LINUX

Certains programmes de conguration attendent les informations ci-aprs sous la forme dune adresse URI (la syntaxe est rsume dans le tableau qui suit). Les informations dtailles quant limprimante rseau (protocole, identiant de connexion, etc.) sont enregistres dans le chier /etc/cups/printers.conf. Les lignes suivantes montrent la conguration dune imprimante rseau 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 ladresse URI qui fournit le protocole et ladresse rseau. Le tableau suivant donne quelques exemples de syntaxe pour ces adresses.
Adresses URI de CUPS parallel:/dev/lp0 serial:/dev/ttyS0?baud=115200 usb:/dev/usb/lp0 lpd://nomhte/nomimprimante socket://nomhte:9100 smb://nomhte/imprimante smb://groupe/nomhte/imprimante smb://utilisateur:xxx@wg/hte/imprimante ipp://nomhte/printers/nomimprimante

imprimante locale (parallle) imprimante locale (srie) imprimante locale (USB) imprimante rseau LPD imprimante avec protocole de socket imprimante Windows imprimante Windows dans un groupe de travail imprimante Windows dans un groupe de travail avec authentification imprimante IPP

30.3 NFS
NFS (Network File System, systme de chiers rseau) permet un ordinateur de mettre disposition ses rpertoires locaux pour dautres ordinateurs du rseau. Cest la mthode la plus courante sous Unix/Linux de grer les rpertoires partags. Les fonctions de base de NFS sont intgres directement au noyau depuis la version 2.2, an datteindre des performances optimales. La plupart des distributions actuelles fournissent un noyau NFS. Il existe aussi un serveur NFS en espace utilisateur, indpendant du noyau.

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

601

Le noyau NFS prend en charge les versions 3 et 4 de NFS. Pour linstant, NFS4 nest pas largement diffus. NFS est implment avec des RPC (Remote Procedure Calls, appels de procdures 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 dmons NFS. Ils sont mis en uvre par des threads du noyau. portmap tablit la connexion entre le client et le serveur NFS, et soccupe de lallocation dynamique de ports UDP sur les clients. rpc.mountd traite les demandes de montage des clients. Vous avez normalement peu dattention porter ces programmes : ds lors que NFS est install et actif, tous les programmes ncessaires sont dmarrs par InitV.
Un guide pratique dtaill sur le thme de NFS, avec de nombreuses astuces doptimisation et de scurit, se trouve ladresse http://nfs.sourceforge.net/nfs-howto/.

Installation et configuration
Avant de congurer un serveur NFS, vous devez vous assurer que les diffrents paquetages sont installs. Par dfaut, ce nest gnralement pas le cas. Les noms des paquetages varient selon la distribution. Debian, Ubuntu Fedora, Red Hat, SUSE nfs-common, nfs-kernel-server, portmap nfs-utils, portmap

La conguration est regroupe dans trois chiers : /etc/exports, /etc/hosts.allow et /etc/ hosts.deny.
/etc/exports

Le chier /etc/exports est le chier central de conguration de NFS. Il dnit quel ordinateur a le droit daccder quel rpertoire. Lordinateur peut tre indiqu par son adresse IP ou son nom sur le rseau. 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 dordinateurs peuvent, de plus, contenir le caractre joker * (par exemple *.sol). Lexemple suivant indique que tous les clients dans le rseau IP 192.168.0.* ou nomms *.sol peuvent accder au rpertoire /usr/local, mais pas le modier. De plus, uranus.sol peut lire et modier le rpertoire /usr/share. La ligne /usr/local est spare en deux lignes pour des raisons de place.
# /etc/exports sur lordinateur 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)

602

LINUX

La syntaxe de /etc/exports est comparable celle des lignes qui prcdent. Le rpertoire et le nom dhte ou ladresse IP sont suivis doptions NFS entre parenthses. ro et rw indiquent si laccs nest autoris quen lecture ou en lecture/criture. sync et async dnissent le moment o le serveur NFS prend en compte les modications. Par dfaut, il sagit de sync : la modication est enregistre lorsque le chier est effectivement enregistr. async est une option plus rapide, mais nettement moins sre. man exports fournit une rfrence exhaustive de toutes les options. Si le serveur NFS est dj dmarr, les modications de /etc/exports ne seront prises en compte quaprs avoir lanc la commande exportfs :
root# exportfs -a
/etc/ hosts.allow et /etc/hosts.deny

Les chiers hosts.allow et hosts.deny indiquent quels ordinateurs ont le droit daccder au serveur NFS. Les informations de /etc/exports dnissent quels utilisateurs peuvent contacter le serveur NFS. Ils se situent en premire ligne de la protection des accs. Le serveur NFS soccupe des lignes portmap et mountd. Le serveur NFS est, comme tous les autres services rseau, lanc grce un script InitV. Le nom du script dpend de la distribution et peut sappeler 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$ utilisateur@uranus$ utilisateur@uranus$ utilisateur@uranus$ mkdir /test mount -t nfs mars:/usr/share /test ... umount /test

Dmarrage

Si ce nest pas le cas, vriez que NFS nest pas bloqu par un pare-feu. Attention, NFS utilise le protocole UDP et non TCP.
UID et GID

Un des gros problmes de NFS dans un petit rseau est que les utilisateurs de NFS doivent avoir les mmes identiants dutilisateur et de groupe. NFS utilise ces numros et les droits daccs en dpendent. Pour les gros rseaux, il existe souvent un serveur qui centralise ces informations. root a souvent un rle particulier. Il ne peut pas, pour des raisons de scurit, utiliser NFS comme un utilisateur normal. Il na que les droits de lutilisateur nobody. Si vous dsirez donner les droits usuels root, il faut utiliser loption no_root_squash.

NFS4
NFS4 est une implmentation compltement nouvelle du protocole. Il prend en charge les ACL et permet une authentication plus sre des utilisateurs. De plus, il utilise le port TCP 2049 et non UDP. Les chiers ne sont plus associs aux UID et GID des utilisateurs, mais une chane de caractres de la forme utilisateur@ordinateur. Il a cependant linconvnient dtre plus compliqu. Pour Linux et Sun, il existe peu de clients NFS4. Vous trouverez plus dinformations sur NFS4 sur les pages suivantes :

SERVEUR DE RSEAU 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 Windows et Unix/Linux. Son nom vient de labrviation SMB, qui signie Server Message Block. SMB est utilis sous Windows pour partager des chiers et des imprimantes sur un rseau. Sur les rseaux Windows, il existe souvent un serveur Windows pour fournir ces fonctionnalits tous les clients. Samba permet de mettre en place cela sur un serveur Linux. Cette solution est moins coteuse et souvent plus efcace et stable. Il nest cependant pas ncessaire de modier tout un rseau Windows pour pouvoir mettre en place Samba. Comme ce dernier peut tre ajout sans problme un ordinateur sous Linux, vous pouvez dune part accder des chiers et des imprimantes partages par des ordinateurs Windows et dautre part, servir vous-mme des chiers ou des imprimantes locales.
Cette section ne couvre que les fonctions de base de Samba 3.0. Si vous avez besoin de fonctions plus , avances, comme lauthentification via LDAP vous devez recourir dautres documentations, par exemple sur http://www.samba.org ou https://help.ubuntu.com/community/SettingUpSamba.

Protocole et services
Un prrequis de la conguration dun serveur Samba est que vous ayez une ide de la manire dont fonctionnent les rseaux Windows. Nous ne pouvons ici quen donner un bref aperu. Cette section a pour seul but de dclarer les fonctions de Samba et de les relier la terminologie Windows. Procurez-vous un bon livre sur la conguration du rseau sous Windows. Si vous vous intressez aux aspects plus techniques, http://www.samba.org/ samba/docs/using_samba/toc.html est un bon point de dpart. Labrviation NetBIOS vient du protocole Network Basic Input/Output System, systme basique dentres/sorties rseau, dvelopp 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 remplissait le mme rle que TCP/IP. Il tait autrefois utilis la place de TCP/IP sous Windows, mais na depuis plus beaucoup de signication. NetBIOS sert, entre autres, changer les noms dordinateurs (service de noms). Ces noms peuvent tre grs de manire centralise par un serveur de noms NetBIOS (NBNS) ou de manire dcentralise. Dans ce cas, chaque ordinateur envoie lorsquil dmarre un message tous les autres clients du rseau et leur indique sous quel nom il est accessible.

NetBIOS

NBNS

604
Datagrammes/ sessions

LINUX

WINS

NetBIOS utilise deux mcanismes de communication : le service de sessions et le service de datagrammes. Tous deux ont voir avec lchange de donnes entre deux ordinateurs. Le premier tablit une connexion xe entre deux ordinateurs. Dans le deuxime, la connexion nest au contraire pas xe : il ny a pas de vrication que les donnes arrivent dans le bon ordre. Le service de datagrammes a lavantage de pouvoir envoyer des donnes plusieurs ordinateurs en mme temps. Le NBNS est ralis grce 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 ( lexception des Windows 9x). Samba peut ainsi accder un DNS dj actif. La rsolution de noms fonctionne, la diffrence dUnix, sans serveur de noms explicite. Les paquets de datagrammes doivent tre envoys tous les ordinateurs du rseau. Cest pourquoi cette opration est de plus en plus inefcace au fur et mesure que le rseau grossit.
Les noms dordinateurs NetBIOS et TCP/IP sont indpendants. En thorie, un ordinateur peut avoir un nom diffrent par protocole. En pratique, on vitera videmment cette situation. Utiliser diffrents noms porte confusion et peut galement sopposer lutilisation de certaines fonctions.

Exploration du rseau

Un client Windows peut explorer le rseau pour savoir quels sont les autres ordinateurs prsents sur le rseau. Pour que tous les ordinateurs naient pas parcourir le rseau, un explorateur principal (Master Browser) se charge de cette tche. Dans les rseaux importants, il est aid par un ou plusieurs explorateurs de sauvegarde. Samba peut faire ofce dexplorateur. Il nest pas explicitement dni qui doit prendre le rle dexplorateur. Les ordinateurs qui se trouvent sur le rseau le ngocient dynamiquement en fonction de leur adaptation au rle en gnral, lordinateur avec le systme dexploitation le plus rcent est le mieux adapt. La liste dexploration nest malheureusement pas toujours synchrone avec ltat courant du rseau. Cela est d au fait que les clients grent un cache avec le dernier tat valide. Lactualisation de ce cache (F5 sous lExplorateur de Windows) ne fonctionne pas toujours ou peut demander un certain temps. Si vous ne trouvez pas un ordinateur alors que vous savez quil fonctionne, cela dnote probablement un problme dexploration.

Droits daccs et systmes de scurit


Initialement, Windows ntait pas conu comme un systme multi-utilisateur, ni comme un systme rseau. Cela a bien chang, mais les origines de Windows sont encore reconnaissables lorsquil sagit de savoir quels chiers un utilisateur peut accder et comment rgler ces droits daccs. Dun point de vue Unix, ces concepts peuvent paratre dconcertants. Le concept de partages dcrit les rpertoires ou les imprimantes qui sont mis la disposition dautres ordinateurs via NetBIOS. La forme la plus simple de contrle daccs est dassocier un mot de passe chaque rpertoire et imprimante. Vous pouvez aussi ouvrir compltement laccs des rpertoires ou des imprimantes donnes ; aucun mot de passe nest ncessaire, mais aucun contrle daccs nest fait. Tous les ordinateurs sous Windows partir de la version 3.11 prennent en charge cette scurit au niveau des partages.

Partages Scurit au niveau des partages

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

605

Lide est si simple quelle est encore trs utilise et tout fait envisageable dans les petits rseaux. Elle fonctionne sans notion dutilisateur (jusqu Windows 95, la connexion avec des noms dutilisateurs diffrents ntait pas prvue). Cette pratique a cependant un inconvnient : si dix ordinateurs partagent trois objets chacun, trente mots de passe diffrents sont ncessaires. Dans des rseaux plus importants, cela mne rapidement au chaos et la multiplication des Post-It sur les crans...
Scurit au niveau des utilisateurs

La scurit au niveau des utilisateurs suppose que ces derniers se connectent ct client avec un identiant et un mot de passe. Lorsquils dsirent utiliser des donnes du serveur, leur identiant et leur mot de passe courants servent leur attribuer des autorisations daccs. En plus de lauthentication correcte, il faut galement ce niveau que le client et le serveur appartiennent au mme groupe de travail. Par consquent, un rpertoire sur le serveur nest pas simplement associ un mot de passe. Il est li un utilisateur (ou une liste ou un groupe dutilisateurs). Le serveur a donc besoin dune base de donnes avec les noms dutilisateurs, les appartenances aux groupes et les mots de passe. Pour donner un exemple, supposons que lutilisateur X travaille sur lordinateur A. Pour que X puisse accder au serveur S, il doit tre dclar en tant quutilisateur sur S comme sur A (avec le mme identiant et le mme mot de passe). Supposons prsent que lordinateur A tombe en panne et que X passe sur lordinateur B. Pour quil puisse accder aux mmes donnes sur S, il doit galement tre cr sur lordinateur B (avec un mot de passe). Si X dcide de changer son mot de passe, cette modication doit tre rpercute sur le serveur S et tous les clients (A, B, etc.). La gestion dcentralise des mots de passe et de lauthentication est donc un problme perptuel avec ce concept. Les clients A, B, etc. accdent aux donnes du serveur au niveau utilisateur, mais ils peuvent utiliser entre eux une approche de scurit de partages. Il est galement possible que le client A partage, sans mot de passe, un rpertoire. Le client B peut alors utiliser ce rpertoire (quel que soit lutilisateur connect), partir du moment o il connat le mot de passe.

Domaines et Active Directory Que peut faire Samba ?

Les domaines et Active Directory permettent de centraliser lauthentication des utilisateurs sur le rseau. Nous ne parlerons pas ici de lutilisation de Samba dans ce type de conguration. Revenons maintenant Linux. Samba prend en charge les quatre modles de scurit : La scurit au niveau des partages peut tre reproduite, mais cest assez peu intuitif pour les administrateurs de Samba. Lutilisation de Samba comme serveur avec une scurit 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 scurit au niveau des domaines. Depuis la version 3.0, Samba peut sintgrer comme client dans un rseau Active Directory. La version 4 de Samba, attendue pour 2008, devrait lui permettre dtre utilis comme serveur de domaine Active Directory.

606

LINUX

Nous ne parlerons ici que de la scurit au niveau des partages et des utilisateurs. Pour congurer Samba au niveau des domaines ou mettre en uvre Active Directory, vous devrez trouver un ouvrage spcique Samba.

30.5 Client Samba


Gnome et KDE

Vous pouvez accder des partages rseau sous Linux, quil sagisse dordinateurs Windows ou de serveurs Samba. Le plus simple est dutiliser le gestionnaire de chiers de Gnome ou de KDE. Laccs des rpertoires rseau est si simple que les nombreuses limitations concernant la modication des chiers qui sy trouvent sont dautant plus agaantes. Dans certains cas, un double-clic sur un chier entrane des erreurs qui indiquent que ce dernier nexiste pas ou quil ne peut pas tre trouv. Cest bien sr absurde. En fait, de nombreux programmes ne savent pas ouvrir des chiers sur des partages Windows (par exemple Gimp). Dautres peuvent les ouvrir, mais ne savent pas les enregistrer. La meilleure intgration est la prise en charge transparente du protocole SMB par les programmes purement KDE. La solution ce problme est malheureusement assez inconfortable : copiez les chiers du rpertoire distant dans un rpertoire local, ditez-les et recopiez-les sur le rpertoire rseau. Vous pouvez aussi intgrer le rpertoire rseau avec le systme de chiers CIFS dans larborescence locale. On peut galement monter directement un rpertoire rseau avec le systme de chiers cifs dans larborescence locale (voir section 23.10).
Quelle que soit la mthode utilise, 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 smbclient). Il faut galement sassurer que le protocole SMB nest pas bloqu par un pare-feu. Les ports utiliss sont les ports TCP 135, 139 et 445, ainsi que les ports UDP 137 et 138.

CIFS

smbclient

On peut galement chercher des rpertoires Windows avec la commande smbclient. Celleci est peu confortable, mais elle est souvent pratique pour tracer les problmes Samba. Lexemple suivant montre toutes les ressources de lordinateur local mercure. Il ne sagit que dimprimantes. La deuxime partie du rsultat liste tous les groupes de travail visibles et indique quel ordinateur est matre de ces groupes. Il nest pas ncessaire de donner un mot de passe ; il suft de taper Entre, puisque nous ne cherchons pas ici accder des ressources protges 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

SERVEUR DE RSEAU 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 dutilisateur ou celui du groupe de travail de votre ordinateur ne correspond pas celui de lordinateur Windows ou du serveur Samba. La solution la plus simple est de donner ces informations comme paramtres supplmentaires smbclient. Le chier /etc/smb.conf propose plus de paramtres congurer. Il sert principalement congurer un serveur Samba, mais certains paramtres sont galement exploits par smbclient.
utilisateur$ smbclient -U utilisateur -W groupe -L venus

Vous pouvez aussi utiliser smbclient pour tlcharger des chiers. Vous devez dabord tablir une connexion avec le rpertoire partag sur lordinateur Windows ou Samba distant. Un mot de passe est alors gnralement demand. Vous pouvez, comme avec ftp, afcher le contenu du rpertoire avec ls, changer de rpertoire avec cd, tlcharger des chiers avec get et en transfrer sur le partage avec put. help renvoie la liste des commandes disponibles et man smbclient fournit une description dtaille 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=[Windows5.0] Server=[Windows2000 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 minimale

Le chier de conguration central pour Samba est /etc/samba/smb.conf. Il se compose dune section globale pour les paramtres de base, ainsi que de plusieurs autres sections pour le partage des ressources (rpertoires, imprimantes, etc.). Chaque section commence

608

LINUX

par une ligne du type [nom_ressource]. Le chier 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 rpertoire public et se trouve dans le groupe de travail SOL. Ce rpertoire contient les donnes du rpertoire /data/public de lordinateur local ce rpertoire doit donc exister et contenir quelques chiers des ns de test. On peut accder au serveur (security = share) et au rpertoire public (guest ok, guest only = yes) sans mot de passe. Les chiers ne sont cependant pas modiables : par dfaut, les rpertoires sont partags en lecture seule (read only = yes).
Chaque fois que lon modifie le fichier de configuration, le serveur Samba doit le recharger. Si le serveur fonctionne dj, il faut forcer cela par /etc/init.d/smb reload ou /etc/init.d/samba reload.
Dmarrage

Tests

Deux processus darrire-plan prsentent les services de Samba : nmbd sert la gestion interne et agit comme serveur de noms. Ce dmon gre aussi lexploration du rseau. Il peut au besoin faire ofce dexplorateur matre ou de serveur WINS. smbd est linterface pour les clients et leur donne accs aux rpertoires, aux imprimantes et la liste des ressources. Ces deux processus sont dmarrs par le systme InitV. Les noms des scripts InitV dpendent de votre distribution. Debian, Ubuntu samba dmarre les deux processus Red Hat, Fedora smb dmarre les deux processus SUSE smb dmarre smbd, nmb dmarre nmbd Pour tester si tout fonctionne, lancez sur le serveur la commande smbclient. Si vous avez utilis la conguration minimale propose, il nest pas ncessaire de saisir un mot de passe. Dans lexemple suivant, Samba est install sur lordinateur mars :
root# smbclient -L localhost Password: <Entre> 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

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

609

Lorsque cela fonctionne, vous devez vrier si le serveur Samba et le rpertoire public sont visibles par les clients Windows. Un mot de passe nest normalement pas ncessaire non plus dans ce cas. La Figure 30.2 montre le rpertoire sous Windows XP.

Figure 30.2
Le serveur Mars vu de lExplorateur Windows.

Vrificateur de syntaxe de smb.conf

Lorsque vous faites de grosses modications dans le chier smb.conf, il est prudent de vrier sa syntaxe avec testparm avant de redmarrer 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, loption -v afche une liste de tous les paramtres par dfaut pour toutes les options possibles. Cela peut tre pratique si vous ne savez pas quelles valeurs par dfaut ont les paramtres.
tat de Samba

smbstatus permet de connatre ltat courant de Samba, y compris les connexions actives :
root# smbstatus Samba version3.0.23 PID Username Group Machine ------------------------------------------------------------------Service pid machine Connected at -------------------------------------------------------

610

LINUX

IPC$ public

32292 32292

192.168.1.41 192.168.1.41

Sun Jul 13 12:30:03 2008 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 gnralement son tat et ses messages derreur dans les chiers /var/log/ samba/log.smbd et log.nmbd.

30.7 Samba Partager des rpertoires


Il existe de nombreuses possibilits de partager des rpertoires pour des utilisateurs individuels ou des groupes et dindiquer qui peut modier des chiers, en crer de nouveaux, etc. Cette section offre quelques exemples pour lesquels vous devez connatre les principes de conguration dans smb.conf.
Les gestionnaires de fichiers de KDE et de Gnome permettent de partager des rpertoires rseau. Cette fonctionnalit masque une modification de smb.conf. Daprs mon exprience, cela ne fonctionne pas toujours de manire satisfaisante et ncessite de toute faon une configuration de base correcte de smb.conf.

Scurit au niveau des partages


Faire fonctionner Samba avec une scurit au niveau des partages est rarement une bonne ide. Ce niveau de scurit nest utile que lorsque vous dsirez partager tous vos objets (rpertoires, imprimantes, etc.) sans mot de passe. Si vous souhaitez scuriser vos ressources par un identiant de connexion, la section suivante vous sera plus protable. Notre exemple de base la section 30.6 garantissait presque le succs du partage : laccs au serveur Samba et au rpertoire public fonctionne indpendamment de lidentiant du client et nest pas partag par un mot de passe. Samba associe chaque accs un rpertoire un utilisateur Linux. Les options guest ok et guest only assurent que tout le monde peut accder au rpertoire public sans mot de passe et que cet accs est toujours associ au compte correspondant guest. Il sagit normalement de lutilisateur Linux nobody, dont disposent automatiquement la majorit des distributions Linux. Vous pouvez dterminer le compte par dfaut pour guest avec cette commande :
root# testparm -s -v | grep "guest account" guest account = nobody

Rpertoire sans mot de passe

Pour que les clients Windows puissent effectivement accder au rpertoire public, il faut sassurer que lutilisateur nobody existe et que le rpertoire /data/public est accessible cet utilisateur. Loption guest account permet dassocier le compte guest un autre compte systme.

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

611

Rpertoires avec un mot de passe

On peut aussi scuriser un rpertoire avec un mot de passe au niveau partage. Le problme est quil nexiste pas de mthode simple de dnir ce mot de passe. Vous devez associer le rpertoire un compte Linux existant. Les commandes suivantes crent le nouvel utilisateur dummy1 et en font le propritaire du rpertoire /data/readwrite.
root# useradd -s /bin/false dummy1 root# chown -R dummy1:users /data/readwrite

smbpasswd permet de crer un mot de passe Samba pour dummy1, qui scurise laccs rseau au rpertoire readwrite.
root# smbpasswd -a dummy1 New SMB password: ******** Retype new SMB password: ******** Added user dummy1.

Les lignes suivantes montrent la conguration ncessaire dans smb.conf. Loption browseable assure que le rpertoire est visible de lordinateur client avant que laccs ne soit accord.
[readwrite] path = /data/readwrite user = dummy1 writeable = true browseable = true

Lauthentication fonctionne prsent en plusieurs tapes lopration est mme plus complexe en vrit ; vous trouverez des dtails dans la description de smb.conf. Ds quun client souhaite accder au rpertoire, Samba tente dabord de grer lauthentication avec le nom dutilisateur courant et le mot de passe. Si cela russit, laccs au rpertoire fonctionne pour ce compte. Si cela ne fonctionne pas (ce qui est gnralement le cas au niveau de scurit du partage), le mot de passe transfr est compar celui de lutilisateur dummy1. Sil est correct, laccs au rpertoire est autoris. Si cela ne fonctionne pas, une bote de dialogue apparat dans laquelle lutilisateur doit saisir un nom et un mot de passe. Lidentiant utilis na pas dimportance, car Samba utilise dans tous les cas dummy1 ; lauthentication nest faite que sur la base du mot de passe.
Lors de mes tests, je nai pas russi accder avec le paramtrage par dfaut un rpertoire en lecture/criture. Il semble que Samba ne comprenne pas le protocole NTLMv2 au niveau partage (mais cela fonctionne au niveau scurit des utilisateurs). Il faut modifier les paramtres de scurit de Vista pour accder un rpertoire en lecture/criture. Le paramtre correspondant se trouve, pour la plupart des versions de Vista, dans la configuration des stratgies locales de scurit. Choisissez dans le panneau de configuration Outils dadministration > Stratgie de scurit locale > Stratgies locales > Options de scurit et passez la valeur de Scurit rseau : Niveau

612

LINUX

dauthentification Lan Manager de Envoyer uniquement les rponses NTLM v.2 Envoyer LM et NTLM utiliser la scurit de session NTLM version 2 si ngocie. Sous Windows Vista Home, le programme de modification des politiques de scurit nexiste pas. Vous ne pouvez modifier la politique dauthentification 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.

Scurit au niveau utilisateur


Correspondance entre les noms dutilisateurs Windows et Linux

Sous Windows, les noms des utilisateurs sont des chanes de caractres arbitraires qui peuvent contenir jusqu 128 caractres. Sous Linux, elles se composent au maximum de huit caractres, sans caractre spcial, ni espace. Lorsquun utilisateur de Windows utilise un nom dutilisateur qui nest pas compatible avec un utilisateur Linux, il faut dnir lassociation dans un chier. Le nom de ce chier est dni dans smb.conf avec loption username map :
[global] ... username map = /etc/samba/smbusers

Chaque ligne du chier smbuser contient un nom dutilisateur Linux, le signe = et le nom dun ou de plusieurs utilisateurs de Windows. Vous pouvez aussi utiliser ce chier pour associer plusieurs utilisateurs Windows un utilisateur Linux. administrateur est souvent associ root, et guest nobody. Si lutilisateur peter a comme identiant 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 systme de scurit complet du systme. Assurez-vous donc que le fichier nest modifiable que par root !
Mots de passe

Avant que peter puisse effectivement accder des rpertoires, il doit sidentier. Pour cela, lorsque la connexion est tablie entre le client Windows et Samba, lidentiant Windows et un mot chiffr pour le mot de passe sont changs. Cette valeur ne permet pas de reconstruire le mot de passe. Samba ne peut donc vrier le mot de passe que sil existe un chier de mots de passe (le plus souvent, /etc/samba/smbpasswd) qui contient le mme mot chiffr. Ladministrateur du systme Linux doit donc ajouter une nouvelle ligne ce chier pour peter, ce que permet la commande smbpasswd. Indiquez comme mot de passe la mme chane de caractres que celle saisie par lutilisateur Peter Mayer sous Windows. Pour modier un mot de passe Samba existant, utilisez smbpasswd sans loption -a :
root# smbpasswd -a peter New SMB password: ****** Retype new SMB password: ****** Added user peter. Password changed for user peter.

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

613

Attention, cette commande ne fonctionne que lorsque peter existe sur le systme local. Dans le cas contraire, il faut lajouter avec useradd ou lun des outils prvus par la distribution. Lutilisateur peter a maintenant trois combinaisons identiant/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, lutilisateur peut accder de manire transparente aux ressources Samba. Si ce nest pas le cas, il doit saisir son mot de passe chaque fois quil dsire accder un rpertoire. Le mot de passe du compte systme sur le serveur Samba et le mot de passe Samba sont en revanche indpendants.
Rpertoires personnels

La scurit au niveau de lutilisateur correspond au modle de scurit de Linux ; elle est donc bien plus lgre mettre en place. La conguration par dfaut 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 associs au compte nobody. Ainsi, ils peuvent tous accder au serveur Samba et voir quels chiers sy trouvent. Les dossiers accessibles effectivement sont ceux dont loption guest ok = yes est active. Le groupe [homes] est une section spciale. Les rpertoires personnels des utilisateurs actifs sont visibles sous leur nom. Ces trois lignes conomisent une liste sans n de sections de cette forme :
[peter] writeable = true user = peter

Loption browseable = false nindique pas que lutilisateur ne peut pas voir son rpertoire. Elle vite juste que le rpertoire soit visible deux fois, une fois sous le nom de lutilisateur (par exemple peter) et une fois sous homes. Laccs au rpertoire personnel nest possible que lorsque lutilisateur dispose dun compte Linux avec un rpertoire personnel. Une condition supplmentaire est quil ait un mot de passe dans smb.conf.

614

LINUX

Loption map to guest = bad user dans la section [global] peut prsenter un risque de scurit. La valeur never pour cette option est plus sre. Elle fait en sorte que le serveur Samba soit entirement inaccessible aux utilisateurs qui ne sont pas correctement identifis. Laccs gnral tous les rpertoires personnels est galement problmatique du point de vue de la scurit. Si vous dsirez refuser cet accs certains utilisateurs, vous pouvez utiliser loption invalid users.
Rpertoires de groupes

Le rpertoire personnel nest accessible qu un utilisateur donn. Mais il est souvent utile de disposer dun rpertoire auquel les diffrents membres dun groupe peuvent accder. Pour cela, il faut dabord associer tous les comptes utilisateurs membres un groupe. Vous pouvez alors dnir dans smb.conf un rpertoire que tous les membres de ce groupe peuvent utiliser avec une syntaxe du type @groupe. Vous vitez ainsi de devoir numrer tous les membres du groupe, ce qui est bien sr galement possible.
[ventes] path = /data/ventes writeable = true browseable = true user = @ventes create mask = 0770 directory mask = 0770

Les droits daccs des rpertoires de groupes sont particulirement importants. Cela est aussi valable pour les chiers crs par les membres du groupe. Les deux options mask font en sorte que les chiers et les rpertoires soient accessibles par tous les membres du groupe.

30.8 Samba Imprimantes rseau


Samba permet aux utilisateurs de Windows daccder vos imprimantes sous Linux. La conguration est simple, mais suppose que le systme dimpression fonctionne dj en local. Pour donner accs tous les utilisateurs de smbpasswd aux imprimantes de /etc/printcap, il suft dajouter les lignes suivantes smb.conf :
# /etc/samba/smb.conf [global] ... printing = CUPS # accs 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 rpertoire printers. Loption path est utilise pour les chiers dimpression temporaires. Tous les utilisateurs doivent avoir le droit dcrire dans ce rpertoire, sans quoi ils ne peuvent pas imprimer.

SERVEUR DE RSEAU LOCAL (CUPS, NFS ET SAMBA)

615

Si vous dsirez ne partager quune imprimante donne, vous devez ajouter ces lignes. Cet exemple suppose que la le dattente de limprimante sappelle lp1 dans /etc/printcap et quelle 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 dimprimer (sans mot de passe), ajoutez la ligne guest ok = yes la conguration de limprimante.
Configuration du systme dimpression

Il existe plusieurs possibilits qui inuent sur lendroit o sont converties les donnes dimpression au format de limprimante. Le plus simple est de choisir le pilote de limprimante sous Windows lorsque vous congurez limprimante rseau. Cette conguration peut poser certains problmes. Il arrive que les donnes imprimer soient ltres deux fois. Par exemple, pour une imprimante congure comme une imprimante PostScript, il se peut que le code PostScript envoy par Windows soit interprt comme du code ASCII par Linux et que le rsultat de limpression soit du code PostScript explicite (commenant gnralement par deux caractres %). Lautre variante est de congurer limprimante sous Windows comme une imprimante PostScript, quel que soit son modle (y compris lorsquil ne sagit pas dune imprimante PostScript). Sous Linux, la le dattente correspond au modle rel de limprimante. Cela implique que le client Windows envoie des donnes PostScript au serveur Linux. Les donnes sont alors converties au format de limprimante. Elles sont donc converties deux fois, sous Windows au format PostScript et sous Linux au format de limprimante. Cette mthode est, entre autres, appuye par les dveloppeurs de CUPS qui ont mme dvelopp un pilote Windows cette n. Cette variante prsente deux inconvnients. Dune part, les pilotes sous Windows sont gnralement meilleurs que sous Linux. Cest particulirement vrai pour les imprimantes jet dencre. Vous obtiendrez donc de meilleurs rsultats si vous prparez les chiers sous Windows. De plus, la prparation de donnes dimpression est un processus coteux en temps. De nombreuses tches dimpression peuvent entraner une charge importante pour le serveur. Il est donc plus intressant deffectuer ces tches sur les clients de manire dcentralise.

Configuration des imprimantes sous Windows

Les imprimantes partages sont visibles dans lexplorateur Windows, mais ne peuvent pas tre utilises immdiatement. Il faut dabord installer la nouvelle imprimante. Pour cela, lancez le module Imprimantes et tlcopieurs du Panneau de conguration, puis Ajouter une imprimante et choisissez loption Une imprimante rseau ou une imprimante connecte un autre ordinateur. Toutes les imprimantes rseau disponibles devraient alors safcher. Si cela ne fonctionne pas, saisissez le nom de limprimante manuellement.

616

LINUX

Un second problme est que Windows afche gnralement un avertissement qui signale que le serveur ne fournit pas de pilote dimpression. Vous devez le valider avec OK et choisir le pilote dimpression dans la liste qui safche. Le pilote utiliser dpend de la conguration de limprimante sous Linux. Il serait plus lgant que Samba fournisse lui-mme le bon pilote, an de faciliter linstallation ct client. Ajoutez pour cela un rpertoire partag [print$] dans smb.conf qui pointe vers un rpertoire avec les chiers dinstallation. 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 chiers rsultants.
[print$] path = /var/lib/samba/drivers write list = @ntadmin root force group = ntadmin create mask = 0664 directory mask = 0775

Le seul problme est maintenant dinstaller le pilote dimprimante dans le rpertoire /var/ lib/samba/drivers. Cette tape relativement complique peut tre effectue depuis un ordinateur sous Windows dot du pilote dimprimante, ou depuis Linux, ce qui installe les pilotes CUPS ou PostScript librement disponibles. Les diffrentes oprations ncessaires linstallation des pilotes sont dcrites en dtail dans le Samba-HOWTO sur http://www.samba.org.

PARTIE 6 UTILISATION DE PLUSIEURS SYSTMES SIMULTANMENT

31

Lancer des programmes Windows (Wine, CrossOver)


la base, les programmes Windows ne fonctionnent pas sous Linux, car les bibliothques correspondantes nexistent pas. Plusieurs mthodes permettent nanmoins daccomplir limpossible : Wine. Cet acronyme signie Wine Is Not an Emulator, soit Wine nest pas un mulateur. Ce programme libre est cependant souvent dcrit comme un mulateur de Windows. Il sagit en fait dun ensemble de bibliothques qui contiennent toutes les fonctions de base des bibliothques Windows. Pour des raisons de licence, le code de Windows ne peut videmment pas tre copi par Wine ; des fonctions similaires sont donc dveloppes. Cela explique pourquoi le projet Wine vient de publier sa version 1.0 aprs 15 ans de dveloppement ! Il fonctionne sufsamment bien pour lancer des programmes Windows sous Linux. CrossOver et Cedega. CrossOver et Cedega sont deux variantes commerciales de Wine. CrossOver est un logiciel de lentreprise CodeWeavers, qui facilite linstallation et le dmarrage de programmes Windows. Il se positionne sur le march de la bureautique. Cedega, de lentreprise TransGaming, fournit diverses fonctions supplmentaires, en particulier les bibliothques 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 Windows. (Il existe videmment dautres raisons pour mettre en place des logiciels de virtualisation.) Vous pouvez alors lancer Windows dans une fentre et y installer vos programmes Windows prfrs. Terminal Server. Plutt que de lancer des programmes Windows en local, vous pouvez les lancer sur un ordinateur distant. Le programme safche cependant sur lordinateur Windows local. Les communications se font via un protocole rseau (VNC, NX, etc.). Lordinateur local fonctionne alors comme un simple terminal. Cette variante est particulirement intressante dans les rseaux importants : un serveur Windows correctement dimensionn permet tous les utilisateurs de Linux daccder un programme Windows. La conguration initiale est plus complexe que celle des autres solutions et les questions de licence doivent tre considres en gnral, il faut des licences multiutilisateur spciales pour que plusieurs utilisateurs puissent utiliser un programme commercial en mme temps. Cet ouvrage ne dcrit pas toutes ces possibilits. Dans ce chapitre, nous parlerons de Wine et de ses deux variantes commerciales les plus connues, CrossOver et Cedega. Les chapitres suivants dcrivent quelques programmes de virtualisation.

618
Limitations

LINUX

Avant de crier victoire, vous devez tre conscient de certaines limitations. Wine et CrossOver ne fonctionnent que sur des plateformes x86. Ces mmes limitations sappliquent la plupart des programmes de virtualisation. La compatibilit de Wine et de CrossOver avec Windows est limite. De nombreux programmes ne fonctionnent pas ou alors uniquement pour des fonctions basiques. Mais les performances sont gnralement au rendez-vous et, dans quelques rares cas, suprieures celles de la mme application sous Windows. Les programmes de virtualisation peuvent pallier certains problmes de compatibilit. Les fonctions ncessaires ne sont pas redveloppes : le systme dexploitation complet est lanc dans un environnement virtuel. Cela diminue largement les problmes de compatibilit, mais au dtriment des performances. De plus, le matriel ncessaire et, en particulier, la quantit de mmoire sont nettement plus importants. Lancer des programmes Windows sous Linux implique souvent des cots levs. Certains programmes ne sont pas libres (par exemple, CrossOver ou VMware). De plus, vous avez besoin dune licence pour le programme dmarrer (par exemple, Adobe Photoshop) et, dans le cas dun programme de virtualisation, dune licence pour le systme dexploitation (par exemple, Windows XP). Enn, signalons quune motivation courante pour passer Linux est la scurit accrue du systme. Si vous ne faites pas attention, vous pouvez rtablir le mme genre de problmes (virus, etc.) avec Wine et dautres programmes similaires que sous Windows.

31.1 Wine
La plupart des distributions fournissent un paquetage pour Wine, qui nest cependant pas install par dfaut. Cette section se base sur la version 1.1.2. Vous trouverez plus dinformations sur Wine aux adresses http://www.winehq.org/ et http://wine-wiki.org/.
Configuration

Gnralement, Wine fonctionne sans conguration pralable. Si vous rencontrez des problmes, le programme winecfg aide souvent les rsoudre (voir Figure 31.1). Vous pouvez y congurer diffrents lments audio et graphiques, associer des rpertoires diverses lettres de lecteurs Windows, etc. Longlet Applications permet de dnir quelle version de Windows est imite par Wine (par dfaut, il sagit de Windows 2000). Vous pouvez alors dnir des versions de Windows diffrentes pour vos programmes. Une fois Wine install, vous pouvez lancer un programme Windows avec la commande wine nom_du_programe.exe. Comme premier test, lancez le bloc-notes fourni avec Wine :
utilisateur$ wine /usr/lib/wine/notepad.exe.so

Installer et dmarrer des programmes Windows

Cela ne fonctionne que lorsque le programme souhait est install. Une installation dans la partition Windows de votre ordinateur nest gnralement pas dune grande aide, car les programmes Windows utilisent gnralement des bibliothques supplmentaires et des enregistrements dans la base de registres. Il faut donc linstaller localement pour Wine :
utilisateur$ cd rpertoire_des_fichiers_dinstallation utilisateur$ wine setup.exe

LANCER DES PROGRAMMES WINDOWS (WINE, CROSSOVER)

619

Figure 31.1
Configuration de Wine avec winecfg.

Si vous avez de la chance, linstallation fonctionne sans erreur. Cest souvent le cas lorsque vous installez de petits programmes populaires et anciens. Les programmes rcents, trs gros ou exotiques renverront pour la plupart des messages derreur obscurs. Le problme vient gnralement du fait que linstallation rclame une fonction ou une bibliothque Windows (DLL) qui nest pas encore implmente sous Wine. Une recherche sur Internet permet parfois de trouver quelques astuces pour dbloquer la situation. Sinon, il faut vous faire une raison : le programme ne fonctionne pas (encore) sous Wine. Un rapport derreur ladresse http://bugs.winehq.org aide les dveloppeurs de Wine remdier au problme dans le futur.
La base de donnes dapplication de Wine recense plus de 5 000 programmes, avec des informations sur la manire de les installer et sur la mesure dans laquelle ils fonctionnent. Cette base se trouve ladresse http://appdb.winehq.org/.

Lorsque linstallation se passe bien, Wine se termine sans indiquer o le programme a t install. La commande find peut savrer utile lorsquon lutilise, par exemple, pour trouver tous les chiers *.exe modis dans les 60 dernires minutes :
utilisateur$ find ~/.wine -cmin -60 -iname *.exe

Notez que Wine ne fournit ni bureau Windows, ni menu de dmarrage, barre des tches, gestionnaire de programmes, explorateur Windows, etc.

620
Transfert de donnes entre Wine et Linux

LINUX

Par dfaut, le lecteur C: de Windows est associ au rpertoire ~/.wine/drive_c et le lecteur Z: /. Vous pouvez, si ncessaire, dnir dautres lettres de lecteurs avec winecfg ou modier le chemin des lecteurs prexistants. Pour transfrer des donnes via le presse-papiers, pensez utiliser sous Windows les raccourcis Ctrl+C et Ctrl+V. Sous Linux, cest 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 dnies sous Linux pour les applications Windows. Cependant, cela ne fonctionne pas toujours. En revanche, les fonctions rseau ne posent aucun problme. Si votre ordinateur sous Linux a accs Internet, les applications Windows lances sous Wine y ont accs galement.

Installer Internet Explorer

Vous vous demandez peut-tre pourquoi installer lun des programmes rputs comme les moins srs sous Windows. Il y a deux raisons cela. Dune part, Microsoft utilise depuis plusieurs annes Internet Explorer pour installer diverses extensions du systme. Certains programmes Windows ne peuvent donc tre installs que lorsquune version rcente dInternet Explorer lest galement. Dautre part, les dveloppeurs web doivent, bon gr mal gr, tester leurs pages sous Internet Explorer linstaller localement sous Linux permet dviter de changer de systme dexploitation. Linstallation manuelle dInternet Explorer est relativement pnible. Le script ies4linux sen chargera pour vous. Il permet dinstaller IE6 et, si vous le choisissez, IE 5.5SP2 et 5.01SP2, ainsi que le greffon Flash9. La version courante dInternet Explorer, IE7, nest malheureusement pas encore prise en charge. Le script ies4linux permet cependant dutiliser le moteur de rendu dIE7 dans linterface dIE6. La procdure est assez complique et nest conseille quaux utilisateurs avancs. Vous trouverez plus dinformations ladresse http://www.tatanka.com.br/ies4linux/page/Fr/Page_DAccueil. Le script ncessite linstallation de Wine et cabextract. Ce dernier sert dcompresser des archives CAB (mthode classique pour crer des archives Microsoft). Attention, linstallation dInternet Explorer nest autorise que si vous disposez dune licence Windows ! Pour installer Internet Explorer, lancez les commandes suivantes. Choisissez la version dIE installer ; vous pouvez la tlcharger directement depuis le site web de Microsoft et linstaller 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 dinstallation afche un avertissement comme quoi votre version de Wine ne convient peut-tre pas ; vous pouvez lignorer.
Conclusion

Il est possible dinstaller et de faire fonctionner certains programmes Windows avec Wine. Ce dernier est nanmoins plutt destin aux utilisateurs avancs de Linux. Si vous ntes pas prt exprimenter quelques lments et chercher des solutions sur Internet, Wine ne vous conviendra pas.

LANCER DES PROGRAMMES WINDOWS (WINE, CROSSOVER)

621

Figure 31.2
Internet Explorer 6 sous Linux.

31.2 Drivs commerciaux de Wine


Il existe des drivs commerciaux de Wine, comme CrossOver et Cedega, qui visent faciliter linstallation de diffrents programmes. Ils rclament une licence payante, mais permettent parfois de gagner du temps par rapport une installation standard sous Wine. Celle-ci peut certes fonctionner, mais parfois au prix dun temps non ngligeable. De plus, ces socits commerciales fournissent une assistance utilisateur qui peut tre un gain apprciable.

CrossOver
CrossOver, de lentreprise CodeWeavers, est un driv commercial de Wine qui permet dinstaller facilement des programmes frquemment utiliss. Le rpertoire des applications prises en charge contient, entre autres, Microsoft Ofce (versions 97, 2000, XP, 2003 ; la prise en charge de la version 2007 est encore exprimentale), Adobe Photoshop 6 et 7, iTunes, FrameMaker, Lotus Notes, World of Warcraft, ainsi que les greffons de navigateur QuickTime, Shockwave et Windows Media Player. Vous trouverez plus dinformations sur CrossOver ladresse http://www.codeweavers.com/products/cxofce/. Vous pouvez galement tlcharger une version dvaluation de CrossOver ladresse http://www.codeweavers.com/products/cxlinux/download_trial/.

622
Installation

LINUX

Dans la plupart des cas, vous devez tlcharger le programme dinstallation de CrossOver depuis le site web de CodeWeavers. Positionnez son bit dexcution 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 dinstallation 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 dune installation locale, ces programmes se trouvent dans le rpertoire ~/cxoffice/ bin. Sinon, ils se trouvent dans /opt/cxoffice. Pour installer un programme Windows, lancez cxinstallwizard. Choisissez le programme souhait dans la liste, placez le CD dans le lecteur ou indiquez quel endroit se trouvent les chiers dinstallation. Linstallation fonctionne alors comme sous Windows. Si le programme installer ne se trouve pas dans la liste, choisissez loption Installer une application non supporte. Lorsque linstallation sest bien droule, les programmes peuvent tre lancs confortablement partir du nouveau menu Applications Windows.

Installer des programmes Windows

Cedega
Cedega, de lentreprise TransGaming, vise galement la facilit dinstallation, mais les applications concernes sont les jeux. Ceux ofciellement pris en charge comprennent Warcraft 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 tests et de leur tat. Vous trouverez plus dinformations ladresse http://www.cedega.com/. Cedega ne fournit pas de version dvaluation et fonctionne sur un systme de souscription qui permet, entre autres, de tlcharger le logiciel. Il existe galement un wiki non ofciel dinformations sur Cedega et sur les jeux pris en charge ladresse http://cedegawiki.sweetleafstudios.com/wiki/.

32

Virtualisation avec VMware, VirtualBox, QEMU et KVM


Ces dernires annes, les diffrentes techniques de virtualisation ont suscit un intrt croissant. Ce terme reprsente la simulation sur un ordinateur dune ou de plusieurs machines virtuelles et de leurs systmes dexploitation. Les applications sont varies : Excution simultane de Windows et de Linux. Il nest plus ncessaire de choisir lun de ces deux systmes. La virtualisation permet de les excuter sur le mme ordinateur. Le systme hte peut tre Windows ou Linux ; lautre fonctionne dans une fentre. Machines dassistance et de dveloppement. Les dveloppeurs dapplications Linux doivent souvent tester leurs produits sous diffrentes versions et distributions. Les employs dune entreprise ou dun service dassistance ont des besoins similaires : de nombreuses questions sont spciques une distribution. Au lieu de redmarrer sans cesse lordinateur 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 quun seul serveur ne suft plus pour les exploiter entirement. Les systmes de virtualisation permettent de runir plusieurs serveurs virtuels sur un ordinateur. Cela tait bien sr possible auparavant, mais avec certaines limitations Apache pouvait, par exemple, tre congur pour servir plusieurs adresses IP ou htes. La virtualisation de serveurs prsente, de plus, un avantage dcisif : les serveurs virtuels sont compltement indpendants les uns des autres. Un problme de scurit ou de stabilit sur un serveur donn na aucune inuence sur les autres. Ce type de virtualisation nest pas nouveau pour les supercalculateurs. La nouveaut vient de la mise disposition de ces techniques aux utilisateurs dun PC ordinaire. La virtualisation de serveurs est le segment pour lequel lintrt crot le plus vite. Jusqu rcemment, la virtualisation impliquait du matriel coteux (supercalculateurs) ou au moins, des logiciels chers (par exemple VMware). Cela a bien chang : les ordinateurs courants fournissent dsormais sufsamment de puissance de calcul pour exprimenter la virtualisation et de plus en plus de programmes de virtualisation sont disponibles librement ou gratuitement. Ce chapitre prsente 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 prsents ici sont si complexes quil faudrait y consacrer un livre entier. Cet ouvrage fournit les premiers lments ; vous trouverez des informations supplmentaires sur Internet. Notez galement que peu de domaines de Linux changent aussi vite que les systmes de virtualisation. Diverses mthodes se disputent lentre dans le noyau ofciel et plusieurs entreprises tentent de stablir comme standard pour la virtualisation. Ce chapitre est un aperu de la virtualisation sous Linux lt 2008.

624

LINUX

32.1 Notions de base


Hte et invits

Pour dcrire les systmes de virtualisation, les termes dhte (host) pour le systme de base et dinvits (guests) pour les systmes virtuels se sont imposs. Il existe diffrentes mthodes pour virtualiser des systmes dexploitation. La liste suivante rsume les techniques existantes et quelques programmes associs. Virtualisation complte (machines virtuelles, mulation). Le programme simule du matriel virtuel : processeur, mmoire vive, disque dur, carte rseau, etc. Du point de vue du systme invit, ce matriel semble exister rellement. Pour que cela fonctionne, le programme de lhte doit contrler le systme invit et remplacer certaines oprations par dautres. Cest cela que sert lhyperviseur (VMM ou Virtual Machines Monitor, moniteur de machines virtuelles). Celui-ci gre galement la mmoire, les processus et les fonctions proches du matriel. Avantages : la plupart des systmes dexploitation peuvent fonctionner sur une machine virtuelle. Ils nont pas besoin dtre modis. Inconvnients : cette solution est relativement lente. Programmes/entreprises : VMware, QEMU, Parallels, VirtualBox, Microsoft Virtual PC. Paravirtualisation. Lhte met galement disposition des machines virtuelles dans lesquelles les invits sont lancs. La diffrence est que les systmes invits sont modis pour la virtualisation et quils communiquent directement avec lhyperviseur. Avantages : cette solution est efcace. Inconvnients : les systmes dexploitation doivent tre modis pour le systme de virtualisation. Cest assez simple pour les systmes libres comme Linux, mais plus problmatique pour les systmes propritaires comme Windows. Programmes/entreprises : Xen, UML (User Mode Linux). Paravirtualisation avec prise en charge matrielle. Les processeurs modernes dIntel et dAMD contiennent des instructions matrielles pour faciliter la virtualisation, nommes Intel-VT (anciennement Vanderpool) pour Intel, et AMD-V (anciennement Pacica) pour AMD. Avantages : cette mthode est efcace et, selon limplmentation, ne demande pas de modication du systme invit. Inconvnients : elle ncessite des processeurs spciaux. Programmes/entreprises : KVM, Xen. Virtualisation au niveau du systme dexploitation. Cette technique est diffrencier des vraies machines virtuelles. Les systmes invits utilisent le mme noyau et une partie du systme de chiers de lhte. Elle permet cependant disoler lhte et ses invits, an dviter certains risques de scurit. Avantages : cette mthode est efcace et conomise des ressources (mmoire, disque dur, etc.). Inconvnients : elle nest adapte que lorsque lhte et ses invits utilisent le mme systme dexploitation et la mme version du noyau. Le systme dexploitation doit tre modi. Programmes/entreprises : OpenVZ, Virtuozzo, Linux VServer. Toutes ces mthodes, except la premire, ncessitent pour Linux une modication du noyau. lheure actuelle (mi-2008), seuls les composants de virtualisation de KVM et certaines

Techniques de virtualisation

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM

625

parties de Xen font partie du noyau Linux ofciel. Pour les autres, il faut modier le noyau avec un correctif non ofciel. Lorsque vous installez une distribution prvue pour Xen, le mainteneur de la distribution a ajout les fonctions Xen au noyau. Vous trouverez plus dinformations sur les diffrentes techniques de virtualisation aux adresses http://doc.ubuntu-fr.org/virtualisation et http://fr.wikipedia.org/wiki/Virtualisation. Pour dterminer si votre processeur dispose de fonctionnalits de virtualisation matrielles (Intel-VT ou AMD-V), lancez la commande egrep. Un processeur Intel Core2 avec deux curs renvoie le rsultat suivant. Si ce dernier est vide, le processeur ne prend pas en charge la virtualisation ou alors, les fonctions correspondantes sont dsactives dans le BIOS. Notez que ces lignes peuvent apparatre mme lorsque les fonctions sont prsentes, mais dsactives 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 matriels

Lmulation de matriels virtuels est par nature une opration complexe. Selon la mthode de virtualisation et limplmentation, vous vous heurterez un moment ou un autre aux frontires suivantes : Processeurs. Le systme hte peut bien sr accder compltement aux processeurs et curs de lordinateur. Cependant, peu de systmes de virtualisation sont capables dattribuer plus dun processeur un invit. Dans ce cas, les systmes SMP et multicurs naident donc qu excuter plusieurs invits en parallle de manire efcace. On ne peut pas lancer un invit 64 bits sur un systme hte 32 bits ( lexception dune mulation du processeur par QEMU, mais il sagit dun cas particulier). Par contre, si lhte est un systme 64 bits, il peut gnralement lancer des invits 32 ou 64 bits. Mmoire vive. La rgle de base snonce ainsi : votre ordinateur doit disposer de plus de mmoire que la somme de la mmoire ncessaire au systme hte et tous les invits en cours dexcution. Il faut donc prvoir plusieurs gigaoctets de mmoire vive. Disques durs. La plupart des systmes de virtualisation enregistrent le systme de chiers des invits dans de gros chiers dans le systme hte. Les invits naccdent donc pas directement au disque dur, mais indirectement via le systme de virtualisation. Les accs disque sont donc plus lents que sur lhte. Le facteur de ralentissement a pour valeur typique deux ou trois. Lecteurs CD/DVD. Laccs aux lecteurs CD et DVD est transmis de lhte aux invits, mais uniquement en lecture seule. Aucun systme de virtualisation ne permet la gravure de CD/DVD depuis le systme hte. La plupart des programmes de virtualisation permettent dassocier un chier ISO au lecteur CD/DVD. Plutt que dutiliser le lecteur rel, lhte accde un chier ISO.

626

LINUX

Cest particulirement pratique pour linstallation. Vous pouvez extraire une image ISO trs facilement partir dun CD :
root# dd if=/dev/scd0 of=fichier.iso bs=2048

Fonctions rseau. Le systme de virtualisation met la disposition des systmes invits linfrastructure rseau de lhte. Il existe divers procds pour lier la carte virtuelle la carte rseau relle. Nous utiliserons dans ce qui suit la nomenclature de VirtualBox. Attention, tous les programmes de virtualisation nutilisent pas les mmes possibilits et celles-ci peuvent tre nommes diffremment. Dans loption par dfaut, NAT (Network Address Translation), le systme de virtualisation met en place un serveur DHCP et des fonctions de mascarade pour ses invits. Ces derniers peuvent ainsi utiliser laccs Internet de lhte. Ladressage du rseau local de lhte et celui du rseau des invits sont disjoints ; il est gnralement impossible de faire communiquer ces deux rseaux. Loption Adaptateur rseau hte cre une carte rseau virtuelle sur le systme hte. Cette interface fonctionne en parallle avec vos interfaces habituelles. Lorsque linvit lutilise, cest comme si le systme hte et linvit taient connects physiquement par un cble rseau : lhte peut envoyer des donnes via linterface et en recevoir. Vous pouvez alors congurer des routes ou un pont entre linvit et le reste de votre rseau. Loption Rseau interne limite le rseau disponible vu des invits au systme hte et ventuellement aux autres systmes invits. Carte graphique. Pour utiliser efcacement les fonctions graphiques, il faut installer sur chaque systme invit un pilote spcial adapt au systme de virtualisation de lhte. Cependant, lors de nos tests, nous navons pas pu proter des fonctions 3D de la carte graphique sur un systme invit. Autrement dit, les graphismes 2D ont des performances dcentes, mais vous devrez probablement vous passer de fonctions 3D. Fonctions audio. La plupart des programmes de virtualisation fournissent une carte son virtuelle aux invits et transmettent la sortie audio au systme audio de lhte. Cela fonctionne sans problme si vos besoins sont raisonnables. Priphriques USB et matriel externe. Le clavier et la souris sont transmis de lhte linvit. Laccs aux priphriques externes dpend largement du systme de virtualisation. Les priphriques USB ne sont souvent pas pris en charge ou alors, avec de nombreuses limitations. Heure. Ce problme semble trivial, mais de nombreux systmes de virtualisation ont du mal grer lheure. Cela provient du fait que lheure est initialise par le systme hte lors du dmarrage de la machine, mais gre par la suite par les systmes invits. La gestion de lheure utilise gnralement le processeur pour dcompter le temps. Or, les processeurs modernes font dpendre leur frquence de la charge. Le systme hte le sait et peut corriger lheure en fonction de cette information. Le systme invit ne dispose pas de cette information. Cest pourquoi le droulement du temps sur les systmes invits peut sembler plus rapide que sur le systme hte.
Nous supposons ici que les systmes hte et invits partagent la mme architecture. Certains programmes, comme QEMU, sont capables dmuler du matriel diffrent. Cela rduit cependant largement les performances. On parle alors dmulation et non de virtualisation, mme si la frontire entre ces deux concepts est floue.

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM

627

change de donnes entre lhte et les invits

La principale restriction est quun invit ne peut pas accder directement un disque dur utilis par lhte. Deux systmes dexploitation ne peuvent pas contrler en mme temps un disque dur cela mnerait invitablement des pertes de donnes. Le systme de virtualisation de lhte simule donc un disque dur pour linvit et soccupe de le reproduire dans le chier du systme hte. Lhte ne peut donc pas non plus accder directement au systme de chiers des invits. Le moyen le plus rapide de partager des donnes est dutiliser des rpertoires partags. Le plus simple est de lancer un serveur NFS ou Samba sur lhte ou sur un ordinateur accessible par lhte et les invits. Certains programmes de virtualisation incluent des fonctions de ce type, mais, daprs mon exprience, cela apporte peu davantages et complique inutilement la conguration. De nombreux programmes de virtualisation permettent dchanger un texte marqu via le presse-papiers. Malheureusement, cela fonctionne plus ou moins bien. De plus, le pressepapiers se limite alors la copie de texte brut. Vous ne pourrez donc pas copier un diagramme Excel depuis un invit Windows vers un document OpenOfce.org sur lhte.

Compatibilit entre les systmes

la base, vous devez supposer que les systmes de virtualisation sont incompatibles les uns avec les autres. Un systme invit install sous VMware ne peut pas tre rutilis sous Xen (et rciproquement). Cette incompatibilit est due deux facteurs. Dune part, les formats des disques durs virtuels sont diffrents. Dautre part, les systmes de virtualisation font appel diffrents pilotes supplmentaires, diffrentes extensions de noyau, etc. Les programmes commerciaux sont gnralement en partie capables dimporter des systmes invits crs sous des systmes concurrents, mais cela entrane souvent des problmes. Des efforts ont t dploys pour dnir un format uni de systmes invits, mais leur succs nest pas garanti. La plupart des programmes de virtualisation permettent de dplacer un systme invit dune machine une autre. Avec VMware, on peut mme passer un systme invit dun hte Windows un hte Linux (et inversement). Une installation de systme invit peut donc tre utilise sur tous les systmes hte compatibles.

Quel produit dans quel but ?

Le monde de la virtualisation est souvent droutant pour les dbutants ; mme les professionnels ont parfois du mal suivre le dveloppement rapide de ces applications. Se dcider pour un produit revient se poser les questions suivantes : Quel est votre but ? Voulez-vous excuter Windows sous Linux ou Linux sous Windows ? Dsirez-vous tester divers systmes dexploitation sans redmarrer ? Visez-vous une plus grande scurit grce des environnements isols ? Voulez-vous lancer plusieurs serveurs Linux sur un ordinateur puissant ? Quelles sont vos conditions matrielles ? Votre processeur prend-il en charge la virtualisation matrielle ? Quattendez-vous de ladministration du systme virtuel ? Avez-vous besoin de fonctions spciales, comme la migration dun systme invit dun hte un autre ? Ce type de souhait mne presque ncessairement des solutions commerciales.

628

LINUX

Les dbutants peuvent faire leur premire exprience avec VMware Workstation (il existe une version dvaluation pour un mois) ou VirtualBox. Ces deux programmes facilitent les premiers pas grce 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 dadministration. Vous pouvez tester ces outils gratuitement dans openSUSE et Fedora. La question de savoir quel systme de virtualisation stablira comme standard est une question encore ouverte. KVM a de bonnes chances de son ct, car il est tabli dans le noyau ofciel. Il ncessite cependant un processeur avec des fonctions de virtualisation (Intel-VT ou AMD-V).

32.2 VMware Workstation, Player et Server


Peu dentreprises sont actives depuis aussi longtemps sur le march de la virtualisation pour PC que VMware. Son rle prcurseur et le haut degr de maturit de ses produits lui ont longtemps confr 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 dinformations, des versions de test et divers tlchargements ladresse http://www.vmware.com/. Notez que les produits VMware, y compris ceux fournis gracieusement, ne sont pas des produits libres. VMware Workstation est probablement le plus connu. Il permet de lancer un autre systme dexploitation dans une fentre. Malgr son prix lev et le nombre croissant dalternatives commerciales et gratuites, il reste pour de nombreux professionnels la solution pour permettre Windows et Linux de cohabiter sur le mme ordinateur. Techniquement, VMware Workstation se base sur une virtualisation complte. Il est donc compatible avec la plupart des systmes dexploitation, sans besoin matriel particulier Intel-VT et AMD-V ne sont pas ncessaires. VMware Workstation 6 prend galement en charge la paravirtualisation si les systmes Linux invits utilisent un noyau tendu avec les fonctions VMware VMI (Virtual Machine Interface, interface de machine virtuelle). Cela amliore les performances de la virtualisation. VMware Player et VMware Server sont deux alternatives gratuites VMware Workstation. Les fonctionnalits de ces produits sont restreintes, mais dans le cas de VMware Server, elles sont compenses par dautres fonctions supplmentaires. Ces solutions gratuites doivent tre considres comme une tentative de la part de VMware dtablir 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 systmes virtualiss peuvent fonctionner sans interface graphique. Vous pouvez nanmoins lutiliser pour faire tourner des systmes bureautiques classiques. VMware Player est une version restreinte de VMware Workstation. Il peut lancer des machines virtuelles, mais ne permet pas den crer de nouvelles, ni de modier la conguration dune machine existante. Linterface utilisateur ressemble celle de VMware Workstation. Cependant, elle ninclut pas les divers menus et botes de dialogue pour les fonctions spciques de Workstation.

VMware Workstation

VMware Player et Server

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM

629

Comparatif

Le tableau suivant compare ces trois logiciels.


VMware Workstation VMware Server vise le march des serveurs VMware Player permet de lancer des machines virtuelles prcdemment cres avec une interface simple propritaire, gratuite non non

But

vise le march bureautique ; sa principale utilisation est lexcution dun systme A sur un systme B propritaire, payante

Licence

propritaire, gratuite oui oui

Cration de machines oui virtuelles Dmarrage des machines virtuelles lamorage Rpertoires partags Dmarrage de plusieurs machines simultanment Avantage principal Inconvnient principal non

oui oui

non oui

non non

produit complet sans limitation prix

produit raisonnablement complet et gratuit complexit dutilisation

gratuit et simplicit dutilisation impossibilit de crer ou modier une machine virtuelle

32.3 VirtualBox
Depuis janvier 2007, VirtualBox (http://www.virtualbox.org) est une alternative intressante VMware Workstation. Ce programme fournit les mmes fonctions de base et une version GPL est disponible. Il fonctionne sur des htes Windows, Linux, Macintosh et OpenSolaris. Les systmes invits pris en charge comptent, entre autres, Windows (2000, XP, 2003 Server, Vista), Linux, FreeBSD, OpenBSD, Solaris, OS/2 et DOS. VirtualBox est moins mr que VMware Workstation. De nombreuses fonctions avances ne sont pas disponibles. Mais pour les tches de virtualisation de base, il suft 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 dbutants.
Versions

Sur le site web de VirtualBox, vous trouverez deux versions tlcharger : Version complte. Elle est gratuite pour les utilisateurs privs et universitaires, ainsi que pour lvaluation. Lutilisation commerciale de cette version ncessite cependant lachat 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 limite par rapport la version binaire : vous ne pouvez pas accder aux priphriques USB et iSCSI depuis une machine virtuelle, ni utiliser RDP (Remote Display Protocole)

630

LINUX

Prrequis

Installation de lhte

entre les machines virtuelles. Par ailleurs, si votre distribution ne fournit pas de paquetage pour VirtualBox, vous devez compiler vous-mme le logiciel. Cette section se base sur la version binaire VirtualBox 1.6.4, sur un systme hte Ubuntu 8.0.4, ainsi que sur les systmes invits openSUSE 10.2 et Windows XP. Pour installer VirtualBox, vous devez avoir install les chiers den-tte du noyau, ainsi que tous les outils de dveloppement de base. Ces lments sont ncessaires pour compiler des modules du noyau utiliss par VirtualBox. Si vous installez la version OSE de VirtualBox, celle-ci peut tre dj disponible dans la base de paquetages de votre distribution. Si ce nest pas le cas ou si vous prfrez utiliser la version binaire de VirtualBox, vous devez la tlcharger sur www.virtualbox.org. Vous trouverez sur le site web de VirtualBox des paquetages prts linstallation (Debian, Red Hat, SUSE, Ubuntu) ou un script universel dinstallation, 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. Linstallation se droule ensuite sans question supplmentaire. Le groupe vboxusers est cr. Seuls les utilisateurs de ce groupe peuvent accder au priphrique /dev/vboxdrv ncessaire pour lancer des machines virtuelles. La commande suivante ajoute lutilisateur michael au groupe vboxusers :
root# usermod -a -G vboxusers michael

Installer des systmes invits

Additions Client

Lorsque vous lancez le systme hte, le script InitV /etc/init.d/vboxdrv est lanc. Il charge le module noyau du mme nom et sassure que les conditions dutilisation de VirtualBox sont remplies. La commande VirtualBox lance linterface utilisateur de VirtualBox. Un assistant permet de crer de nouvelles machines virtuelles. Aprs le choix du type de systme dexploitation (par exemple, Linux avec un noyau 2.6) et de la taille souhaite de la mmoire vive, puis la cration dun disque dur virtuel, VirtualBox afche un rsum de tous les composants matriels. Vous pouvez alors ajouter des paramtres supplmentaires : changer le type daccs rseau ou indiquer un chier ISO comme source de donnes pour le lecteur CD/DVD (voir Figure 32.1). Par dfaut, laccs au rseau entre lhte et les invits fait appel du NAT. Le systme invit peut donc accder Internet, mais pas changer de donnes avec le rseau local. Une fois le systme install, vous pouvez alors le lancer dans une fentre du systme hte (voir Figure 32.2). Aprs linstallation du systme, vous devez installer les Additions Client. Il sagit dun ensemble de pilotes supplmentaires qui amliorent linteraction avec lhte (contrle de la souris plus lgant, rsolution de lcran plus importante, change de donnes via les rpertoires partags, etc.). Cette installation nest possible que lorsque le systme invit dispose doutils de dveloppement et des chiers den-tte de son noyau. Pour cela, jectez le CD/DVD ventuellement prsent et lancez Priphriques, Installer les Additions Client... Excutez le chier VBoxLinuxAdditions.run depuis le CD virtuel qui est alors mont dans le systme invit. De manire atypique, vous devez alors redmarrer le systme invit, qui peut disposer dune plus grande rsolution. Vous pouvez avoir modier la taille de la mmoire vido attribue linvit ou la conguration de X de linvit si la rsolution que vous souhaitez nest pas accessible.

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM

631

La machine virtuelle capture automatiquement le clavier et la souris ds que vous tapez une touche ou ds que vous cliquez. Par dfaut, vous pouvez rendre le focus avec la touche Ctrl droite. Ce paramtre est modiable dans la fentre principale de VirtualBox dans Fichier, Prfrences.

Figure 32.1
Configuration dune machine virtuelle dans VirtualBox.

Figure 32.2
openSUSE en tant que systme invit dans une machine virtuelle VirtualBox.

632
Rpertoires partags

LINUX

Une fois les Additions Client installs, vous pouvez partager un dossier sur lhte pour quun invit puisse y accder. Les rpertoires partags sont spciques chaque systme invit. Pour cela, il suft dajouter linvit dans les prfrences de la machine virtuelle dans longlet Rpertoires partags. Le champ Chemin du rpertoire est le rpertoire de la machine hte. Le champ Nom du rpertoire est le nom grce auquel linvit y accdera. Sur le systme invit, le rpertoire nest pas mont automatiquement, mais manuellement. Si le rpertoire est partag sous le nom partage, il faut lancer la commande suivante, en supposant que le rpertoire partage-vbox est dj cr :
root@invite# mount -t vboxsf partage /media/partage-vbox

Les rpertoires partags peuvent galement tre utiliss lorsque le systme invit est Windows. Le lecteur rseau monter est \\vboxsev\partage.

32.4 QEMU et KVM


Fin 2006, lextension du noyau KVM sest fait connatre par son entre dans le noyau ofciel 2.6.20. KVM est en soi un module de noyau relativement petit, dont laction principale sexerce avec le logiciel dmulation QEMU. Il ncessite un processeur avec des fonctions matrielles de virtualisation et constitue avec QEMU un systme de virtualisation matriel. Son lgance provient du fait quil ne gre pas lui-mme les tches classiques dun hyperviseur (par exemple, la gestion de la mmoire et des processus), mais quil utilise pour cela les fonctions standard du noyau Linux. Le module de noyau de KVM contient donc relativement peu de code. Comme QEMU est la base de KVM, cette section traite dabord de QEMU, puis sintresse KVM. QEMU mule divers processeurs et composants matriels de base dun ordinateur typique (carte rseau, lecteur CD, etc.). Il peut galement muler des processeurs incompatibles avec le processeur de lhte (ARM, Sparc, PowerPC, MIPS, etc.), ce qui se fait videmment au dtriment des performances. Nous ne traiterons ici que de lmulation des processeurs compatibles x86. Vous trouverez une description dtaille 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 dutiliser un assistant pour crer une nouvelle machine virtuelle, vous devez dabord crer un chier dimage pour le disque dur virtuel et passer tous les autres paramtres du matriel virtuel comme paramtres 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 cre le chier image. Vous pouvez indiquer le format de chier avec loption -f. qcow et qcow2 sont les formats standard de QEMU. Il en existe dautres, comme raw et vmdk (compatibles avec VMware Workstation 3 et 4). La taille du chier est indique en mgaoctets (nM) ou en gigaoctets (nG).
utilisateur$ qemu-img create -f qcow qemu.img 10G

QEMU

Lmulateur lui-mme est lanc avec la commande qemu ou qemu-xxx. qemu mule un processeur compatible x86, qemu-system-x86_64 sa variante 64 bits, qemu-sparc un processeur Sparc, etc. Toutes les commandes qemu ont la mme syntaxe :
utilisateur$ qemu [options] fichier-image

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM

633

qemu peut prendre de nombreuses options. La commande qemu sans paramtre en donne un rsum. Nous ne survolerons ici que les plus importantes : -boot a/c/d indique le support damorage (lecteur de disquettes, disque dur ou lecteur CD/DVD). Les lettres correspondent aux lecteurs DOS/Windows. Par dfaut, QEMU dmarre depuis le disque dur. -cdrom fichier-iso utilise lISO indique comme source de donnes pour le lecteur CD/DVD virtuel. -k langue indique la disposition clavier utiliser, comme fr (franais) et en-us (anglais US). Cette option nest ncessaire que dans de rares cas, lorsque qemu ninterprte pas correctement les codes clavier du systme hte. -localtime initialise lheure CMOS virtuelle du systme avec lheure locale (plutt que, par dfaut, avec lheure UTC). -m n indique la taille de la mmoire de la machine virtuelle (en mgaoctets). Par dfaut, les machines virtuelles disposent de 128 Mo de RAM. -net options congure le matriel rseau virtuel. Cette option nest ncessaire que lorsque la conguration par dfaut de QEMU (carte NE2000 et pile rseau en mode utilisateur) nest pas adapte. -no-acpi dsactive lACPI. -snapshot lance QEMU sans modier de manire permanente le chier image du disque dur. QEMU lance le systme mul dans une fentre simple sans menu, ni lment dutilisation. Pour contrler diverses fonctions, il faut utiliser des raccourcis clavier. Les plus importants sont recenss dans le tableau suivant.
Raccourcis clavier de QEMU c+a c+a+F c+a+1 c+a+2 c+a+3 c+a+S c+a+X rend le focus du clavier active/dsactive le mode plein cran affiche la sortie standard affiche le moniteur de QEMU affiche la console srie enregistre les modifications sur le fichier image (uniquement en mode snapshot) termine le programme

Essayer QEMU

Dans sa forme de base, QEMU ne permet de lancer des systmes modernes graphiques avec des performances dcentes que sur du matriel puissant. Pour les premiers tests, il vaut mieux tester une distribution Linux minimale. Les nostalgiques de DOS peuvent aussi effectuer ces tests avec FreeDOS (voir Figure 32.3). Le chier ISO de FreeDOS se trouve ladresse http://freedos.org.

634
Figure 32.3

LINUX

FreeDOS sous QEMU.

Les deux commandes suivantes crent un chier dimage pour le disque virtuel et dmarrent QEMU en utilisant limage ISO de FreeDOS comme support damorage.
utilisateur$ qemu-img create -f qcow qemu.img 500M utilisateur$ qemu -m 16 -boot d -cdrom fdbasecd.iso qemu.img

Lorsque linstallation sest bien droule, vous navez plus besoin de limage du CD et vous pouvez utiliser le disque dur virtuel pour dmarrer le systme :
utilisateur$ qemu -m 16 qemu.img

Jai galement install, de la mme manire, Ubuntu 8.04.1. Cela demande un peu plus de patience (et davantage de mmoire vive attribue QEMU). Le systme tait globalement utilisable, mais lancer des applications graphiques tait plutt pnible au vu des problmes de performances.
KQEMU

Le cas le plus frquent dutilisation de QEMU est lexcution de code x86 (invit) sur du matriel x86 (hte). Il nest donc pas ncessaire dmuler ce code ; on peut le lancer directement. Cest cela que sert le module noyau KQEMU. Il amliore de manire signicative les performances de QEMU, qui sont alors comparables celles de VMware, VirtualBox, etc. Vous trouverez plus dinformations sur KQEMU ladresse http://bellard.org/qemu/kqemu-tech.html. Vous pouvez avoir installer les modules de noyau KQEMU manuellement, aprs les avoir tlchargs 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 ncessaire de modier les permissions du module /dev/kqemu.

VIRTUALISATION AVEC VMWARE, VIRTUALBOX, QEMU ET KVM

635

KVM

Les fonctions de KVM sont rparties dans trois modules du noyau. Les fonctions de base se trouvent dans le module kvm, les fonctions spciques Intel-VT dans kvm-intel et les fonctions spciques AMD-V dans kvm-amd. Pour pouvoir utiliser KVM, vous devez charger le module KVM qui correspond votre matriel. 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, vriez que votre processeur prend bien en charge la virtualisation matrielle. Si cest le cas, elle peut tre dsactive au niveau du Bios, ce qui est donc galement un point vrier. Lutilisation des fonctions KVM ncessite daccder au priphrique /dev/kvm en lecture ou en criture. Dans de nombreuses distributions, cet accs nest autoris qu root. Il faut donc modier les droits daccs de /dev/kvm pour autoriser dautres utilisateurs lutiliser. Du point de vue de lutilisateur, KVM est une variante de QEMU qui accde aux modules noyau KVM. Il nest pas ncessaire dinstaller QEMU ; le paquetage KVM en contient une variante modie. Pour crer un nouveau chier image, vous avez cependant besoin de la commande qemu-img qui peut ntre disponible que dans le paquetage QEMU. KVM est dmarr, selon la distribution, avec kvm ou qemu-kvm. Il est nettement plus rapide que QEMU dans sa version de base, mais la diffrence est ngligeable par rapport QEMU utilis en parallle avec KQEMU. Vous trouverez dautres informations sur KVM sur le site http://kvm.qumranet.com/.

33

Xen
Ce chapitre est une introduction au systme de virtualisation Xen. Il mrite quon 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, prsents dans les chapitres prcdents, vous sont familiers.

33.1 Introduction
Xen est une infrastructure de virtualisation qui prend en charge deux formes de virtualisation et qui se diffrencie par quelques dtails techniques des autres systmes. Il est particulirement adapt la virtualisation de serveurs Linux. Le dveloppement de Xen a commenc en 2001 luniversit 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 distributions fournissent par dfaut des noyaux modis pour Xen.
Applications

Xen est conu principalement pour une utilisation serveur. Une utilisation bureautique comme celle que permettent VMware ou VirtualBox est possible, mais avec quelques limitations ; ce nest donc pas la solution optimale. Le plus courant est dutiliser la mme distribution pour le systme de base (le serveur Xen) et ses invits. Pour cela, vous installez par exemple SUSE Enterprise Server avec la prise en charge de Xen comme systme de base, puis vous utilisez Xen pour lancer diverses instances virtualises de cette distribution dans des environnements isols. Les outils de conguration des diffrentes distributions permettent gnralement dassister lutilisateur lorsquil cre des systmes invits. Ces outils sont galement utiles, car la gestion manuelle de Xen est relativement inconfortable : vous devez vous occuper des chiers de conguration, des priphriques rseau, etc. Une autre utilisation courante est de congurer un serveur Xen qui neffectue pas dautre tche que ladministration de Xen et laccs au matriel. Pour cela, il suft dinstaller une minidistribution, sans systme graphique, ni services rseau, comme Apache ou Samba.

Versions et environnement de test

Jai test Xen avec diverses distributions. Ce chapitre se base sur un systme hte Ubuntu 8.04.1 (32 bits), Xen 3.2.0 et un noyau 2.6.24. Tester Xen peut mener certaines instabilits. Il est donc conseill de sauvegarder votre disque dur avant de vous lancer, ou dutiliser une machine de tests.

638

LINUX

33.2 Dtails techniques


la base, la mise en uvre de Xen nest pas plus complique que celle de VMware Server, du moins en ce qui concerne les aspects pertinents pour lutilisateur et ladministrateur. Les chapitres prcdents nabordaient pas les dtails techniques des systmes de virtualisation, mais il vous faut certaines bases pour faire fonctionner Xen. Si vous ne comprenez pas comment il fonctionne, vous ne parviendrez pas le congurer correctement et aucun assistant nest fourni.

Variantes de la virtualisation
Paravirtualisation

Virtualisation matrielle

Xen est avant tout un systme de paravirtualisation : les machines virtuelles utilises ncessitent un noyau Linux modi. Lorsque ces prrequis sont remplis, Xen est plus efcace que VMware Workstation ou VMware Server. Cependant, en tant quoutil de paravirtualisation, Xen ne peut pas lancer de systme dexploitation sans prise en charge de Xen et en particulier, Windows. Depuis la version 3, Xen peut lancer des systmes non modis dans des HVM (Hardware Virtual Machines, machines virtuelles matrielles). Cela ncessite nanmoins une prise en charge matrielle (Intel VT ou AMD-V). Xen utilise pour cela une partie du code de QEMU ; de nombreux avantages et particularits de Xen disparaissent alors. Lorsque vous lisez dans la presse informatique que Xen peut maintenant excuter Windows, la forme de virtualisation considre napporte presque rien par rapport KVM/QEMU.

Architecture et terminologie
Au contraire des solutions de virtualisation prsentes prcdemment, qui fonctionnent comme des applications habituelles sur un systme hte normal, les fonctions de base de Xen sont implmentes dans une couche du noyau. Xen ne soccupe pas de dmarrer les invits : cest galement le travail de lhte. Du point de vue de Xen, le systme dexploitation de base se comporte comme un invit avec des privilges particuliers.

Figure 33.1
Virtualisation avec Xen.

dom0 et domU

La terminologie est galement diffrente. Au lieu de machines virtuelles, on parle sous Xen de domaines. Lors du dmarrage de lordinateur, Xen est dabord dmarr. Il dmarre ensuite le domaine 0. Dans ce dernier, le noyau modi pour Xen et une distribution ayant accs aux composants matriels (par exemple le systme graphique) sont lancs et contrlent tous les autres domaines Xen.

XEN

639
Les dsignations hte et invit sont encore valables dans Xen, mais avec quelques limitations. Pour tre exact, Xen est lui-mme lhte. Le systme qui serait dsign comme hte sur un autre systme de virtualisation est dsign par Xen comme domaine privilgi (Domain 0, abrg en dom0). Le dom0 est parfois galement dcrit comme serveur de machines virtuelles ou serveur Xen. Toutes les machines virtuelles supplmentaires (invits, dans la terminologie prcdente) fonctionnent dans des domaines non privilgis (domU). La Figure 33.1 rsume larchitecture de Xen. Vous pouvez lancer dans les domU dautres systmes dexploitation, soit de manire paravirtualise (lorsque le systme prend en charge Xen), soit avec une virtualisation matrielle. Nous nous limitons ici Linux.

Restrictions
Comme tout autre systme de virtualisation, Xen souffre galement de limitations, dont certaines sont lies au fait quil est optimis pour une utilisation serveur. Xen et tous les domaines doivent concorder et utiliser la mme 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 sapplique PAE (Physical Addressing Extensions, extensions dadressage physique), qui permet dadresser 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 saccorder sur ce point. Si ces rgles ne sont pas suivies, Xen termine le dmarrage dun domU par le message derreur error 22, invalid argument. Ces limitations ne sappliquent que pour la paravirtualisation et non pour les machines virtuelles HVM. Xen est incompatible avec certains pilotes matriels binaires (utiliss, 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 manire gnrale, Xen est, comme tous les systmes de virtualisation actuels, peu adapt aux graphismes 3D. Xen ne fournit pas de fonctions audio aux domaines non privilgis. La prise en charge dACPI et dAPM est trs limite. En particulier, les fonctions dconomie dnergie des ordinateurs portables sont largement inutilises. Les processeurs fonctionnent pleine frquence. Les cartes PCMCIA et CardBus ne peuvent pas tre utilises. Le dom0 ne peut fonctionner que sur un Linux ou un NetBSD. Windows, Solaris et les BSD ne peuvent tre lancs que dans des domU et souffrent souvent de diverses limitations ou ne fonctionnent quen virtualisation matrielle. Xen peut poser des problmes de compatibilit avec les pare-feu et dautres systmes de scurit (SELinux, AppArmor, etc.). Dans un domaine Xen, il est impossible dexcuter dautres programmes de virtualisation. Xen et le second programme de virtualisation veulent tous les deux grer la mmoire, les processus, etc.

640

LINUX

Cependant, le cas inverse fonctionne : vous pouvez essayer Xen dans une machine virtuelle VMware. Nen attendez cependant pas des foudres de performances...

Gestion du matriel
Xen fonctionne un niveau en dessous du noyau Linux et doit donc tre dmarr avant le noyau du systme dom0. Cest Xen, et non le noyau Linux, qui gre les ressources matrielles lmentaires (voir Figure 33.2). Il soccupe en particulier de la gestion de la mmoire, de lutilisation du processeur, des accs au disque dur et du systme rseau. Les systmes invits (domU) naccdent pas ces ressources par le pilote Linux standard, mais via des modules propres au matriel virtuel Xen. Ces pilotes sont une interface entre Xen et le noyau. Cest pourquoi Xen ne peut tre excut que sur des noyaux Linux modis. La situation est encore plus dlicate pour le dom0. Xen gre galement dans ce cas la mmoire vive et les processeurs. Le noyau du dom0 doit donc galement tre modi pour Xen. Les accs disque et lutilisation de la carte rseau incombent cependant au noyau du dom0 et fonctionnent comme dhabitude via les modules du noyau Linux avec les pilotes correspondants. Les systmes domU sont dpendants du bon fonctionnement des disques durs et de laccs au rseau du dom0. Le systme dom0 joue galement un rle privilgi pour laccs aux autres composants matriels. En gnral, ce systme est le seul accder aux cartes graphiques, audio et PCI, aux priphriques USB, etc. Il nest pas prvu que les systmes domU accdent directement ces composants. Il est cependant possible de bloquer certains priphriques PCI du dom0 et de les rserver une instance de domU. Cela ncessite une conguration spciale, que nous ne dtaillerons pas ici.

Figure 33.2
Gestion du matriel dans Xen.

Accs au rseau
La corrlation complexe entre le matriel, Xen, dom0 et domU se manifeste probablement le mieux dans le cadre de laccs au rseau. On pourrait crire un chapitre complet sur les diffrentes possibilits de conguration rseau dans Xen. Nous nous limitons ici la variante

XEN

641
la plus courante : le rseau pont (Bridged Networking). Tous les clients Xen (dom0 et domU) ont un accs direct un serveur externe ou un routeur qui, idalement, fait fonctionner un serveur DHCP. La Figure 33.3 illustre les nombreuses interfaces rseau que vous pouvez trouver dans une conguration Xen typique. Pendant le dmarrage de lordinateur, tout se passe normalement. Le noyau dom0 charge les modules du matriel physique et initialise eth0, eth1, etc. la n du processus InitV du systme dom0, le programme xend est dmarr. Il initialise les interfaces rseau spciques Xen. eth0 est renomm en peth0 et un pont rseau virtuel (xenbr0) est cr. Celui-ci tablit la connexion aux interfaces virtuelles vifn.m (vif signie virtual interface). Laccs au rseau de dom0 se fait via la nouvelle interface eth0, cble virtuellement avec vif0.0. Une fois le rseau compltement initialis, il ne sest apparemment rien pass pour dom0 : il accde au rseau, comme auparavant, avec eth0. Cette interface nest cependant plus associe directement au matriel, mais Xen. Les systmes domU accdent simplement au rseau via eth0. eth0 est alors associ au pilote rseau Xen (module xennet) qui tend le trac rseau vers le rseau local avec vifn.n et xenbr0. n est le numro didentiant de la machine virtuelle Xen. Les interfaces vifn.m sont cres automatiquement au dmarrage des domaines et supprimes lorsque les domaines correspondants sont arrts.

Dmarrage de lordinateur Initialisation du rseau via xend

Figure 33.3
Accs au rseau pour les domaines Xen.

Ce systme est modiable linni. Lorsque plusieurs cartes rseau sont prsentes sur lordinateur, plusieurs interfaces pethn et ethn sont cres dans le dom0. Lorsque les domU utilisent plusieurs cartes rseau, plusieurs interfaces vifn.m sont dnies dans le dom0. Il est galement possible dajouter des rseaux virtuels avec plusieurs ponts. Le rseau virtuel Xen est congur dans le chier /etc/xen/xendconfig.sxp.

642
ifconfig (dom0)

LINUX

ifconfig afche comme prvu une longue liste dinterfaces.


eth0 lo peth0 vif0.0 vif1.0 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 Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 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 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff BROADCAST MULTICAST MTU:1500 Metric:1 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

Accs au disque dur


Le systme dom0 accde tout fait usuellement son noyau sur le disque dur. Les systmes domU accdent au disque dur grce au module xenblk. Le noyau domU voit donc, par exemple, la partition (virtuelle) /dev/sda1. Celle-ci correspond gnralement une partition relle sur le disque dur du dom0 ou un chier dimage qui se trouve dans le systme de chiers du dom0. Le pilote xenblk connecte la partition virtuelle la partition relle. Laccs direct du domU une partition de disque dur est autoris uniquement lorsque cette partition nest utilise par aucun autre domaine (y compris dom0). Lorsque plusieurs domaines ont accs en mme temps une partition, les conflits et la corruption du systme de fichiers sont invitables.

Sortie graphique
Normalement, seul dom0 a accs la carte graphique et la sortie cran. Il existe des congurations spciales qui permettent un domU de communiquer directement avec la carte graphique, mais nous ne rentrerons pas ici dans les dtails de ce cas particulier. Cela est sufsant dans le cadre dune utilisation serveur. Pour communiquer avec la machine virtuelle sur laquelle fonctionne le serveur web, une simple connexion rseau suft. On peut galement administrer le domaine via ssh dans une fentre de console. Jusqu ce quun domU fonctionne correctement, il est cependant intressant de disposer dune interaction indpendante du rseau qui ne fonctionne ventuellement pas encore. Les possibilits suivantes soffrent vous : Console (texte). Xen peut rediriger la premire console texte du domU dans une fentre de console locale. Vous pouvez suivre le dmarrage du domU et vous connecter. Les consoles peuvent tre couples ds le dmarrage (xm create domaine -c) ou ultrieurement (xm console domaine). Cependant, ce principe ne fonctionne que pour une seule console, ce qui est en pratique trs limit. SDL (graphique). SDL (Simple DirectMedia Layer, couche DirectMedia simple) est une bibliothque qui accde directement diffrents lments multimdias (framebuffer 2D,

XEN

643
OpenGL, clavier, souris et systme audio). Xen utilise SDL pour afcher le systme graphique dun domU dans une fentre du dom0. VNC (graphique). Vous pouvez, comme alternative SDL, utiliser VNC pour afcher le systme graphique du domU. Xen dmarre un petit serveur VNC en mme temps que le domU lorsquil est congur pour cela.

33.3 Gestion des fichiers image


Comme nous lavons vu la section prcdente, Xen permet denregistrer physiquement des systmes domU de plusieurs manires : dans un chier image sur le systme dom0 local ou un serveur NFS, ainsi que sur un disque dur ou une partition inutilise. Laccs direct une partition est nettement plus efcace que lutilisation de chiers image. Cependant, ces derniers sont plus adapts aux premires exprimentations : il est facile de les crer, copier et supprimer. De plus, les besoins en place sont, du moins au dbut, nettement plus faibles. Xen prend en charge le format RAW et le format dimages de QEMU. Un chier RAW contient exactement les mmes donnes quune partition de disque dur. Cette section offre quelques astuces pour grer ce type dimages. Ces informations sont indpendantes 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 systme ext3 dans vos chiers image. Cela nest videmment pas ncessaire ; vous pouvez utiliser un autre systme de chiers. Pour crer un nouveau chier image correspondant une partition de 5 Go, lancez la commande dd suivante. Le chier est cr, mais il nest pas physiquement rempli de 0. ls -l montre quil a une taille de 5 Go, mais du indique quil nest pour linstant 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
Crer le systme de fichiers

Crer une image de fichier vide

Pour crer un systme de chiers sur le chier image, il faut lancer la commande mkfs. Celle-ci reconnat quil ne sagit pas dun priphrique de bloc (comme ce serait le cas sur une vraie partition) et demande, selon la version, conrmation. Le chier est alors format. du montre que le chier prend plus de place en raison des informations de gestion du systme de chiers.
root# mkfs.ext3 fichier.img mke2fs 1.40.8 (13-Mar-2008) fichier.img nest pas un priphrique spcial en mode bloc. Procder malgr tout ? (o,n) o root# du fichier.img 174372 fichier.img

644
Crer un fichier image partir dune partition

LINUX

Vous pouvez aussi directement crer une image partir dune partition. Il nest alors ncessaire ni de crer le chier, ni de le formater :
root# dd if=/dev/sda7 of=fichier.img

Utiliser le systme de fichiers dun fichier image

Attention, la partition source de la commande dd ne doit pas tre active ! On ne peut pas cloner la partition du systme dmarr. Il faut pour cela dmarrer lordinateur avec une autre distribution ou un systme live. Ds que Xen lance le systme domU dont le systme de chiers se trouve dans le chier image, vous pouvez accder au systme de chiers. Vous pouvez ouvrir une fentre Xen, installer un nouveau paquetage, etc. Vous pouvez aussi changer des chiers via le rseau entre le systme dom0, domU et les ordinateurs du rseau local. Vous pouvez cependant aussi utiliser le systme de chiers de limage lorsque domU nest pas lanc. Pour cela, il suft de le monter dans larborescence du systme avec mount. Il faut utiliser loption -o loop pour monter limage comme priphrique de bouclage.
root# mkdir /systeme-domu root# mount -t ext3 -o loop fichier.img /systeme-domu

Vous pouvez alors utiliser le systme de chiers de limage, mont dans le rpertoire /systeme-domu. Laccs est en lecture/criture. Vous pouvez donc modier le systme de chiers, par exemple pour corriger /etc/fstab. Il est souvent intressant de dmarrer un nouvel interprteur de commandes avec chroot. Cet interprteur utilise le systme de chiers de limage comme rpertoire 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

Redimensionner un systme de fichiers

Noubliez pas de dmonter limage avant denvisager de redmarrer le systme domU. resize2fs permet de redimensionner un systme de chiers. Pour le rtrcir, le systme doit tre inutilis. Dans tous les cas, vous devez auparavant lancer e2fsck. resize2fs adapte automatiquement la taille du chier image.
root# e2fsck fichier.img root# resize2fs -p fichier.img 3G ... Le systme de fichiers fichier.img a maintenant une taille de 786432 blocs. root# ls -l fichier.img ... 3221225472 ... fichier.img

Crer un fichier image dchange

Il est possible dajouter une partition virtuelle dchange un systme domU. Il suft de la 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 lespace de swap 1, taille = 104853 kB

XEN

645
33.4 Mettre en place le systme de base Xen (dom0)

Paquetages Xen

GRUB

Un systme de base Xen est souvent compos dune installation Linux standard. Certaines distributions savent galement installer directement les paquetages Xen lors de linstallation initiale. Pour mettre en place un systme de base Xen, la plupart des distributions proposent des paquetages, mme si ceux-ci ne font pas forcment partie des dpts de paquetages ofciels. Vous avez besoin des lments suivants : Xen (qui contient galement xend et divers autres programmes) ; la bibliothque Xen xenlib ; la bibliothque de virtualisation virtlib ; un noyau modi pour Xen, compatible avec la version de Xen (architecture CPU, PAE) ; un client VNC (qui se trouve gnralement dans le paquetage vnc). Pour dmarrer Xen, puis le noyau dom0, il faut adapter le chier de conguration de GRUB /boot/grub/menu.lst (LILO ne sait pas dmarrer Xen). Dans de nombreuses distributions, le gestionnaire de paquetages soccupe de la conguration de GRUB. Les lignes suivantes montrent un exemple de menu pour Xen. Noubliez pas dadapter les priphriques et noms de chiers votre propre systme. Vous devez indiquer dans la ligne kernel le chier de dmarrage de Xen et non le noyau Linux usuel. Les deux lignes module qui suivent fournissent le nom du noyau, les paramtres du noyau et le chier 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 mmoire du dom0, vous pouvez passer loption dom0_mem=n la ligne kernel. n est la limite suprieure de la mmoire utilisable par le dom0 (en mgaoctets). Au dmarrage suivant, vous verrez divers messages safcher. 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

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 excute votre systme Linux dans le domaine privilgi 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 dmarres avant le noyau Linux, diverses oprations de Xen se droulent tout la n. la n du processus InitV, le script xend est dmarr. Il lance le dmon de contrle de Xen du mme nom et met en place le rseau virtuel Xen. La conguration de base a lieu dans le chier /etc/xen/xend-config.sxp. Celui-ci contient, entre autres, tous les paramtres du rseau virtuel Xen. Dans la plupart des distributions, vous pouvez laisser le script tel quel lors de vos premires expriences ; sous Ubuntu, vous devez ventuellement rectier le paramtre network-script.
# /etc/xen/xend-config.sxp ... # utiliser un pont rseau (network-script network-bridge) (vif-script vif-bridge) ... # limite infrieure de RAM pour dom0 (dom0-min-mem 256)

Configuration

Le rpertoire /etc/xen contient divers scripts supplmentaires que vous navez gnralement pas besoin de modier, ainsi quun chier de conguration pour chaque systme domU. La cration de ces chiers de conguration est couverte dans la section suivante.

33.5 Crer des systmes invits (domU)


Lopration la plus difcile lors des premires expriences Xen est la cration dun domU. Avant de dtailler une installation, voici un rsum des impratifs dun systme domU fonctionnel : Systme de chiers. Le systme de chiers complet du systme domU doit se trouver dans un chier image ou une partition non utilise. Noyau. Le systme de chiers du dom0 (et non celui du domU) doit contenir un noyau compatible Xen et le chier initrd correspondant. Ces deux chiers sont ncessaires au

XEN

647
dmarrage du domaine. Xen lit ces deux chiers avant mme que le systme de chiers du domU ne soit activ. Comme des fonctions Xen sont excutes sous forme de modules (xenblk, xennet), les modules doivent se trouver dans le chier initrd. Vous ne pouvez omettre ce point que lorsque les fonctions Xen sont directement compiles dans le noyau. Le systme de chiers du domU doit contenir un rpertoire de modules correspondant au noyau (/lib/modules/version_noyau). Il tait dusage auparavant de mettre en place des noyaux monolithiques pour les systmes dom0 et domU. Cet usage nest plus de mise. La plupart des distributions fournissent maintenant un noyau Xen modulaire utilisable pour le dom0 et les domU. Fichiers de conguration. Tous les paramtres, quils concernent le matriel virtuel ou dautres lments du domaine, sont enregistrs dans le chier de conguration /etc/xen/ nom_de_domaine. Cette section prsente quelques exemples pour ce chier de conguration. Le problme de linstallation des systmes invits est que Xen ne peut lancer que des systmes dots dun noyau modi pour Xen. Les distributions courantes nutilisent pas de noyau de ce type pendant linstallation. Il nest donc pas possible deffectuer une installation habituelle depuis un CD ou un chier ISO. Les possibilits suivantes soffrent vous : Vous pouvez utiliser une image Xen prinstalle. Vous pouvez la tlcharger sur Internet, par exemple sur http://www.jailtime.org. Jai cependant eu de mauvaises expriences avec ce type de solution. Les images sont rarement compatibles avec une version de Xen et une architecture processeur donnes. Il manque souvent le noyau et le chier initrd. Vous pouvez lancer une installation classique sur une partition de disque, puis installer un noyau Xen et un chier initrd pour Xen. Une fois ces tapes effectues, quittez le systme et modiez quelques lments (par exemple, dans /etc/fstab). Si vous le dsirez, vous pouvez copier le systme de chiers dans un chier image avec dd. Pour nir, dmarrez Xen et accdez au domU directement sur la partition ou par le biais dun chier image. Vous pouvez aussi lancer linstallation dans QEMU et utiliser limage QEMU dans Xen. Lavantage de cette mthode est que vous navez pas quitter le systme qui fonctionne. Linstallation dure cependant plus longtemps. Certaines distributions (Fedora, Red Hat et SUSE) fournissent des outils pour lancer linstallation de manire paravirtualise dans Xen. Le programme dinstallation est pour cela charg depuis le rseau et lanc avec un noyau compatible avec Xen. Cette procdure dpend nanmoins largement de la distribution et de la version. Les utilisateurs de Debian peuvent mettre en place un systme Debian lmentaire avec debootstrap dans une partition monte dans un rpertoire. Aprs la conguration de base, il suft dajouter un noyau compatible avec Xen pour dmarrer le systme 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 linstallation dans un domaine HVM. Cette opration est comparable linstallation dune version de Windows.

Plusieurs chemins mnent Xen

648

LINUX

Installation de Fedora

Installation de la distribution

Noyau Xen

Fichier initrd

Dans cette section, nous utiliserons la mthode dinstallation de la distribution sur un partition du disque. Ce premier exemple pratique montre comment installer Fedora 9 comme systme invit dans Xen. (Notez que Fedora 9 ne fonctionne pas en tant que systme dom0, mais en tant que domU. Fedora 10 devrait fonctionner en tant que dom0.) La plupart des tapes sont valables pour lensemble des distributions ; certains dtails sont spciques la distribution ou la version. Dans ce qui suit, nous indiquons pour toutes les commandes sur quels systmes elles doivent tre lances. @domU spcie que les commandes sont lances sur le systme invit (quil soit dj lanc par Xen ou non), et @dom0 sur le systme hte. Redmarrez tout dabord lordinateur et crez une partition supplmentaire sur le disque dur. Si vous dsirez transfrer linstallation dans une image disque, la partition doit tre la plus petite possible (par exemple, 3 Go). Cela conomise ensuite du temps lorsque vous grerez le chier image. Installez ensuite votre distribution normalement. Pensez utiliser la mme architecture que votre systme Xen dom0 ! Linstallation dpend videmment de la manire dont vous comptez lutiliser dans Xen. Cependant, plus linstallation est rduite, plus elle est rapide mettre en place. Il est peu probable que vous ayez besoin dOpenOfce.org dans un systme Xen invit ; et si cest le cas, il sera toujours temps de linstaller. Lors de mes tests, jai dsactiv le pare-feu et SELinux. Cela minimise les sources possibles derreur si un problme survient. De plus, il est souvent opportun de dsinstaller tous les services qui ne sont pas ncessaires dans un environnement Xen (avahi, smartd, gpm, etc.), ou du moins den supprimer le dmarrage automatique. Certaines distributions permettent, pendant linstallation, dinstaller un noyau Xen en plus du noyau habituel. Dans le cas contraire, dmarrez le systme Linux et ajoutez le noyau Xen avec les outils de gestion de paquetages. Pour pouvoir dmarrer la distribution partir de Xen, vous avez besoin dun chier initrd. Or, celui cr lors de linstallation du noyau Xen de Fedora ne contient pas les modules xenblk et xennet. Il faut donc le rgnrer :
root@domU# cd /boot root@domU# mkinitrd --preload=xenblk --with=xennet \initrd-xen-fedora9 2.6.25-3.2.fc9.i686.xen

Redmarrage du dom0

Linstallation de linvit Fedora est alors termine. Redmarrez votre ordinateur et lancez le systme Xen (dom0). Si vous le dsirez, vous pouvez maintenant crer une image de linstallation 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 accder directement la partition de linstallation de Fedora. Nous supposons ici que Fedora est install dans la partition /dev/sda7. Dans tous les cas, il faut monter le systme invit dans larborescence courante avec, selon le cas, lune des deux commandes suivantes :
root@dom0# mount -t ext3 -o loop fedora.img /domu-filesys root@dom0# mount -t ext3 /dev/sda7 /domu-filesys

XEN

649
Pour que Xen puisse lancer le systme invit, il faut copier le noyau et le chier initrd de Fedora vers le systme dom0. Si vous envisagez dutiliser plusieurs invits Xen, il est prfrable de crer un sous-rpertoire de boot pour chaque noyau :
root@dom0# root@dom0# root@dom0# root@dom0# mkdir /boot/fedora cd /boot/fedora cp /domu-filesys/boot/vmlinuz-2.6.25-3.2.fc9.i686.xen . cp /domu-filesys/boot/initrd-xen-fedora9 .

Copier le noyau et le fichier initrd

/etc/fstab

Lorsque Fedora sera lanc par le biais de Xen, ses priphriques de disques recevront de nouveaux noms qui correspondent au chier de conguration de Xen. Il faut donc adapter le chier /etc/fstab :
root@dom0# jmacs /domu-filesys/etc/fstab

Le plus simple est dutiliser pour la partition racine lUUID de la partition comme identiant de montage. Pour obtenir cet UUID, il faut lancer la commande vol_id, suivie du nom du priphrique ou du chier. Cette commande peut tre lance quel que soit le systme auquel est attach le priphrique : lUUID ne change pas selon le systme auquel il est attach. Les premires expriences peuvent tre lances sans partition dchange. Il faut donc gnralement modier /etc/fstab selon ce schma :
# /etc/fstab dans le systme domU UUID=XXXX / ext3 devpts /dev/pts devpts tmpfs /dev/shm tmpfs proc /proc proc sysfs /sys sysfs
Fichier de configuration de Xen

defaults gid=5,mode=620 defaults defaults defaults

1 0 0 0 0

1 0 0 0 0

Pour nir la prparation, il faut crer un chier de conguration pour le nouveau domU dans le rpertoire /etc/xen. Lexemple suivant indique comment le nouveau domaine Xen doit sappeler, o se trouvent le noyau et le chier initrd (dans le systme dom0), quels paramtres il faut passer au noyau du domU et combien de RAM est attribue au domaine (en mgaoctets). La ligne root indique lemplacement du chier racine. Pour simplier lamorage, utilisez ici aussi lUUID de la partition ou du chier. La ligne disk indique lemplacement du chier image et le nom des priphriques pour domU. la place de xen-images, indiquez le rpertoire dans lequel se trouve le chier 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 sassure que le systme invit peut accder au rseau. Si lordinateur local fait fonctionner un serveur DHCP, le domU y rcupre une IP. Sinon, vous devez congurer linterface eth0 du domU avec ses propres outils de conguration. sdl=1 permet dafcher une fentre au dmarrage du systme invit, qui afche le contenu de son systme graphique (framebuffer). Pour les premires tentatives, vous pouvez vous en dispenser.
# /etc/xen/fedora dans le systme de fichiers du dom0 name = fedora kernel = /boot/fedora/vmlinuz-2.6.25-3.2.fc9.i686.xen

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 dmarrez le systme domU directement depuis la partition /dev/sda7, modiez la ligne disk comme suit :
# /etc/xen/fedora ... disk = [phy:sda7,sda1,w]
Premier dmarrage

Avant de dmarrer votre nouveau systme domU, vous devez dmonter son systme de chiers de larborescence du dom0 :
root@Dom0# cd root@Dom0# umount /domu-filesys

Pour nir, lancez dans une console xm create fedora -c. Cela lance le domaine fedora et lie le terminal Xen avec la console courante. Toutes les tches du domU (messages du noyau, etc.) safchent 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 ~]$

XEN

651
Pour connatre ltat de tous les domaines Xen, vous pouvez lancer la commande xm list. Ltat b signie blocked et indique que le systme na rien faire et quil attend des tches.
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

Problmes

Jai bien d lancer vingt fois xm create name -c avant que mon premier domaine domU ne se lance. Les sources derreur les plus frquentes sont les suivantes : Le noyau du domU est incompatible avec Xen (mauvaise architecture de processeur, prise en charge de PAE, message derreur error 22, invalid argument). Ni le noyau du domU, ni le chier initrd ne contiennent le pilote xenblk. Alors, le noyau du domU ne peut pas accder la partition racine, ce qui renvoie lerreur kernel panic - not syncing. Le noyau lanc par Xen ne correspond pas au rpertoire de modules /lib/modules/n du systme domU. Le noyau domU ne peut donc pas charger de modules. Dans ce cas, le dmarrage du systme commence normalement, mais les problmes surviennent pendant le processus InitV. Le systme domU utilise automatiquement lheure du dom0. Il ne sert donc rien dexcuter un serveur ntpd sur le domU. Si vous dsirez rgler lheure de ce systme indpendamment de lheure du dom0, vous devez ajouter la commande suivante dans le processus InitV :
root# echo 1 > /proc/sys/xend/independent_wallclock

Heure

Cloner un domU

Lorsque le systme fonctionne, vous pouvez le cloner sans problme. Arrtez le domU, copiez limage et le chier de conguration, puis modiez la ligne disk du nouveau chier de conguration. Cest tout ! Vous pouvez alors dmarrer deux systmes domU indpendamment lun de lautre.

Installation de Windows (HVM)


Vous pouvez aussi lancer Windows XP sous Xen si votre processeur prend en charge la virtualisation matrielle. Linstallation de Xen en mode HVM est plus simple que celle de Linux en paravirtualisation. Vous avez dabord besoin dun chier image pour le disque dur virtuel. De plus, il vaut mieux utiliser une image ISO du CD, plutt que le CD lui-mme lors de linstallation.
root@dom0# root@dom0# root@dom0# root@dom0# cd dd cd dd xen-images if=/dev/zero of=winxp.img bs=1 count=0 seek=4G iso-images if=/dev/scd0 of=winxp.iso

Le chier de conguration de Xen doit suivre le schma suivant. Les paramtres builder, kernel et device_model sassurent que Xen lance le mode HVM et non la paravirtualisation. device_model doit contenir, selon larchitecture du processeur du dom0, lib ou lib64.

652

LINUX

Le paramtre disk dnit cette fois deux paramtres : un chier image pour le disque virtuel et un chier ISO pour le lecteur CD. Windows voit ces deux lecteurs comme matres des deux canaux IDE. Attention, le mode HVM de Xen ne prend pas encore en charge laccs aux donnes via tap:aio:. Vous devez donc utiliser lcriture classique file:. boot demande Xen de dmarrer depuis le CD-ROM (lecteur D: dans la nomenclature Windows).
# /etc/xen/winxp dans le systme dom0 name builder kernel # memory disk boot vif sdl = winxp = hvm = /usr/lib/xen/boot/hvmloader /usr/lib64/xen/bin/qemu-dm (bei 64-Bit-Xen) = 256 = [ file:/\zsi{xen-images}/winxp.img,ioemu:hda,w, file:/\zsi{iso-images}/winxp_pro_with_sp2.iso,hdc:cdrom,r] = d = [ type=ioemu ] = 1

device_model = /usr/lib/xen/bin/qemu-dm

xm create dmarre linstallation. Une fentre HVMXEN souvre automatiquement ; elle reprsente le systme graphique du domU. Cette fentre se comporte comme QEMU : Ctrl+Alt rend le focus de la souris et du clavier, et Ctrl+Alt+F passe du mode fentre au mode plein cran (ce qui, dans mon environnement de test, mne un plantage systmatique de lordinateur). Attention, lorsque vous fermez la fentre, le systme domU steint brutalement (comme lors dune coupure de courant).
root@dom0# xm create winxp

Linstallation elle-mme se droule comme sur un ordinateur rel, mais plus lentement. Lorsque linstallation sest bien droule, modiez les paramtres disk et boot du chier de conguration. Vous pourrez ainsi dmarrer directement Windows depuis le disque dur virtuel C: et accder au lecteur CD physique du dom0.
# /etc/xen/winxp dans le systme 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 systme domU dmarr (SDL, VNC)


Lorsque le systme domU fonctionne avec une connexion rseau, lchange de donnes et le contrle peuvent seffectuer via le rseau (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 grer ces outils.

XEN

653
Si, pour une raison ou une autre, vous ne pouvez plus accder au domU, vous pouvez toujours larrter avec xm. Lidentiant du domaine sobtient avec xm list.
root@dom0# xm shutdown identifiant

Console Xen
La forme la plus simple dinteraction avec le systme domU est la console Xen. Si vous avez oubli loption -c en lanant votre domaine, vous pouvez vous connecter la console ultrieurement :
root@dom0# xm console nom_domaine

Cette commande donne souvent limpression quelle a t ignore. En fait, elle a bel et bien fonctionn. Appuyez sur Entre ; linvite de connexion du systme domU apparat alors dans la console. Pour sortir de la console, tapez la combinaison de touches Ctrl+] soit, sur un clavier franais, Ctrl+AltGr+). Le systme domU continue fonctionner, mais vous ne pouvez plus voir ce quil se passe dans la console.

SDL
Lorsque la conguration de Xen contient la ligne sdl=1, une fentre doit safcher immdiatement aprs le dmarrage avec le contenu de lcran (framebuffer). Lorsque le domU dmarre X, la fentre afche le systme graphique du systme. Pour que cela fonctionne, le chier de conguration de X du systme domU doit contenir les paramtres suivants. Les paramtres Identifier sont arbitraires, mais doivent correspondre ceux indiqus dans les sections Screen et ServerLayout.
# /etc/X11/xorg.conf dans le systme de fichiers du domU Section "Device" Identifier "<nom_priphrique>" 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 rouvrir la fentre SDL

Lorsquon ferme une fentre SDL, les domaines paravirtualiss continuent tourner, tandis que les domaines HVM sarrtent immdiatement. Lorsquun domaine paravirtualis fonctionne, vous pouvez rtablir la connexion SDL en lanant manuellement xen-sdlfb. Lidentiant du domaine sobtient avec xm list.
root@dom0# /usr/lib/xen/bin/xen-sdlfb --domid 10

654
VNC

LINUX

Xen possde un petit serveur VNC. Vous pouvez donc aussi afcher le contenu de lcran via VNC. Pour cela, le chier de conguration de Xen doit contenir la ligne vnc=1. Par dfaut, le serveur VNC de Xen utilise ladresse IP 127.0.0.1, les ports 5900, 5901, 5902, etc. et aucun mot de passe. Tous les paramtres de VNC peuvent tre modis globalement dans /etc/xen/xen-config.sxp ou individuellement pour chaque domaine. Attention, le paramtre utilis dans de nombreux exemples, vnclisten = 0.0.0.0, donne accs aux machines virtuelles pour tout le rseau local, ce qui peut reprsenter un risque de scurit.
# /etc/xen/domainname dans dom0 ... vnc = 1 vnclisten = "127.0.0.1" vncpasswd = "xxx"

Loption vncunused=0 permet dutiliser le numro de port 5900+n, o n est lidentiant du domaine. Vous pouvez, en plus de vncunused=0, indiquer le numro de port avec vncdisplay=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 mme conguration de X que pour SDL (voir ci-dessus). Lorsque le domU est dmarr, lancez vncviewer ainsi :
root@dom0# vncviewer localhost:5906

33.7 Syntaxe du fichier de configuration du domU


Cette section rsume les paramtres importants du chier de conguration dun domU (/etc/ xen/nom). builder = linux / hvm indique le type de domaine. linux est le paramtre par dfaut et reprsente un domaine paravirtualis. device_model = fichier doit contenir, pour les domaines HVM, /usr/lib[64]/xen/ bin/qemu-dm. disk = [chane1,chane2...] dcrit un ou plusieurs supports de donnes. La syntaxe de la chane est type:priphrique_rel,priphrique_virtuel,mode. type peut avoir la valeur phy (priphrique physique), tap:aio (accs un chier image via linterface tap) ou file (accs un chier image pour les domaines HVM). Les priphriques sont dcrits par leur nom sans /dev/. Les modes possibles sont r (lecture seule) et w (lecture/criture). Lexemple suivant dnit trois supports de donnes : une image pour la partition systme et une pour la partition dchange, ainsi que le lecteur CD de lhte pour le lecteur CD :

XEN

655
disk = [tap:aio:/repertoire/root.img,sda1,w, tap:aio:/repertoire/swap.img,sda2,w, phy:scd0,scd0,r]

extra = paramtre ajoute des paramtres optionnels au noyau Linux. kernel = fichier est le nom du chier du noyau Linux ou celui du chargeur HVM (souvent /usr/lib/xen/boot/hvmloader). memory = n indique la taille de la mmoire rserve pour le domaine en mgaoctets. name = nom est le nom du domaine. Ce nom est utilis pour la gestion dans le dom0. ramdisk = fichier est le nom du chier initrd pour le noyau Linux. root = priphrique est la partition systme de Linux. Il est intressant de passer ce paramtre via son UUID. sdl = 1 reprsente le systme graphique du domaine dans une fentre SDL. vcpus = n indique le nombre de processeurs virtuels. Par dfaut, le domaine est associ un seul processeur. vif = [chane1,chaine2...] dcrit une ou plusieurs interfaces rseau. Les chanes peuvent, dans le cas le plus simple, rester vides (interface par dfaut, DHCP). Les paramtres possibles sont type, mac, bridge et ip. Pour les interfaces HVM, il faut utiliser type=ioemu, comme dans lexemple suivant :
vif = [ type=ioemu, mac=01:23:45:67:89:ab, bridge=xenbr0 ]

vnc = 1 dmarre un serveur VNC avec le domaine. Les paramtres vnclisten et vncpasswd permettent de contrler sur quelle adresse le serveur peut tre contact et par quel mot de passe il est protg.

33.8 Administration de Xen


xm

La commande au cur de ladministration des domaines Xen est xm. Elle sert dmarrer et arrter des domaines, modier le matriel virtuel, etc. La liste suivante rsume les principales commandes xm. man xm en fournit une description plus dtaille. block-attach id rel virtuel mode associe au domaine indiqu le support de donnes rel sous le nom virtuel indiqu dans le mode souhait (ro ou rw). block-detach id-domaine id-priphrique supprime le support de donnes du domaine. block-list id afche une liste des priphriques attachs un domaine avec leurs identiants de priphrique. console id connecte la console actuelle avec la console Xen du domaine dj dmarr, dont le numro didentiant est indiqu. create [-c] fichier dmarre le domaine indiqu par le chier de conguration du rpertoire /etc/xen. Loption -c associe la console Xen du domaine directement la console courante.

656

LINUX

destroy id teint le domaine immdiatement (comme lors dune coupure de courant). dmesg afche les messages de Xen et du noyau. info afche des informations sur le systme Xen (numro de version, processeurs, utilisation de la mmoire, etc.). list afche une liste de tous les domaines lancs. Pour chacun deux, un tat est indiqu : r : running (dmarr, fonctionne) b : blocked (bloqu, attend une entre ou une sortie) p : paused (en pause) s : shutdown (en cours dextinction) c : crashed (plant) d : dying (mourant) network-attach id paramtre associe une nouvelle interface rseau au domaine. Cette interface est dcrite par les paramtres ip, mac, bridge et backend. network-detach id-domaine id-interface supprime linterface du domaine. network-list id afche les interfaces du domaine et les identiants associs. pause id met en pause le domaine indiqu. Il consomme toujours de la mmoire, mais ne demande plus de ressources processeur. shutdown [-w] id lance larrt du domaine. Loption -w sassure que xm attend la n de larrt. unpause id relance, aprs une pause, un domaine.
xentop

xentop est une variante de la commande top habituelle. Elle montre lutilisation mmoire, loccupation processeur et divers autres paramtres de tous les domaines lancs (y compris dom0). Lafchage est rgulirement actualis jusqu ce que vous terminiez le programme avec Q. Le script InitV /etc/init.d/xendomain enregistre, lors de larrt de lordinateur, ltat de tous les domaines lancs (xm save) et les ractive lors du redmarrage de lordinateur. Pour activer certains domaines chaque fois que lordinateur est dmarr (indpendamment de leur tat lors de larrt de lordinateur), crez des liens vers ces domaines dans /etc/xen/ auto :
root# cd /etc/xen/auto root# ln -s ../fichier_config .

Dmarrer et arrter automatiquement des domaines

Outils dadministration graphiques

Il existe diverses interfaces dadministration pour Xen, comme par exemple Xenman (voir http://xenman.sourceforge.net). SUSE et Red Hat ont des outils spciques aux distributions : le module YaST Systme, Virtualisation (paquetage yast-vm) et virt-manager.

ANNEXES

Rfrences thmatiques
Ce chapitre offre un rapide descriptif des principales commandes sous Linux. Pour une rfrence complte des commandes en question, utilisez man commande ou info commande (ou help commande sil sagit dune commande intgre linterprteur). Il se peut que certaines des commandes dcrites ici doivent tre installes sparment.

Gestion des fichiers


cat cd chgrp chmod chown cp file ln ls mkdir mv rm rmdir rsync tee afche un chier sur la sortie standard ; est aussi utilis pour grouper plusieurs chiers en un change de rpertoire modie lappartenance dun chier un groupe modie les bits daccs dun chier modie le propritaire dun chier copie un chier tente de dterminer le type dun chier cre des liens durs et symboliques afche le contenu dun rpertoire cre un nouveau rpertoire dplace un chier ou le renomme supprime un chier supprime un rpertoire vide synchronise des rpertoires duplique la sortie standard

ACL (listes de contrle daccs) et EA (attributs tendus)


attr chacl getfacl getfattr setfacl setfattr gre les attributs tendus dun chier gre les ACL dun chier value les ACL dun chier value les attributs tendus dun chier modie les ACL dun chier modie les attributs tendus dun chier

658

LINUX

Recherche de fichiers
beagle-query find grep locate updatedb whereis which cherche des chiers daprs leur contenu cherche des chiers daprs leur nom, taille, date, etc. cherche du texte dans un chier texte cherche des chiers dans une base de donnes prtablie actualise la base de donnes de locate cherche des chiers dans des rpertoires prdnis parcourt les rpertoires de PATH la recherche de commandes

Traitement de fichiers texte


cat csplit cut diff expand fold grep head iconv less more paste patch recode sed sort split strings tac tail tr uniq zcat zless zmore afche un chier sur la sortie standard ; est aussi utilis pour grouper plusieurs chiers en un dcoupe un chier en sections grce un sparateur extrait des colonnes de toutes les lignes dun texte compare deux textes remplace les tabulations par des espaces met en forme un chier une largeur donne cherche du texte dans un chier afche les premires lignes dun chier modie le jeu de caractres dun chier afche un chier page par page (avec retour arrire) afche un chier page par page (sans retour arrire) runit plusieurs chiers texte ligne ligne modie un chier selon un chier gnr par diff convertit un chier entre diffrents jeux de caractres dite les ux (diteur programmable) trie un chier spare un chier en morceaux dune taille donne afche les chanes de caractres dun chier binaire afche un chier dans lordre inverse (dernire ligne au dbut) afche les dernires lignes dun chier remplace les caractres indiqus par dautres caractres supprime les doublons dun chier afche un chier compress afche un chier compress page par page (avec retour arrire) afche un chier compress page par page (sans retour arrire)

RFRENCES THMATIQUES

659
dcompresse des chiers compresss avec bzip2 compresse des chiers ; plus performant que gzip archive des chiers indpendamment du systme de chiers compresse des chiers dcompresse des chiers compresss avec gzip compresse des chiers ; plus performant que compress contrle le fonctionnement dun disque magntique (avance, recul de bande, etc.) groupe plusieurs chiers et rpertoires dans un seul chier dcompresse des chiers compresss avec compress dcompresse une archive Zip cre une archive Zip (compatible avec Windows) afche le contenu dune archive Zip

Compresser et archiver des fichiers


bunzip2 bzip2 cpio compress gunzip gzip mt tar uncompress unzip zip zipinfo

Graver des CD/DVD


cdrdao cdrecord dvd+rw-format dvd+rw-mediainfo genisoimage growisofs mkisofs mkudffs wodim grave un CD en mode Disk-at-Once grave un CD ou un DVD formate un DVD+RW ou un DVD-RW afche des informations sur un support de donnes optique cre une image ISO (variante mkisofs) grave un DVD ou un disque Blue-Ray cre une image ISO cre un systme de chiers UDF (par exemple, sur un DVD-RAM) grave un CD ou un DVD (variante cdrecord)

Convertisseurs
a2ps convert convmv enscript epstopdf gs inconv mogrify mpage convertit un chier texte en format PostScript convertit un chier graphique vers diffrents formats modie le jeu de caractres dun nom de chier convertit un chier texte en format PostScript convertit un chier EPS en chier PDF convertit des chiers PostScript et PDF en format bitmap modie le jeu de caractres dun chier texte modie les paramtres dun chier image convertit un chier texte en format PostScript

660

LINUX

pdf2ps pdftk pdftops pdftotext ps2pdf recode

convertit un chier PDF en chier PostScript manipule des chiers PDF alternative psd2ps transforme un document PDF en texte brut convertit un chier PS en chier PDF modie le jeu de caractres dun chier texte

Gestion des programmes et des processus


bg chroot fg fuser halt kill killall ldconfig lsof nice nohup pidof ps pstree reboot renice sudo top passe un processus en arrire-plan (tche de fond) dmarre un interprteur de commandes avec un rpertoire racine diffrent passe un processus en avant-plan dtermine le programme qui accde un chier termine Linux et teint lordinateur envoie des signaux (gnralement pour terminer un processus) comparable kill, mais sapplique des noms de processus actualise le chier de cache de la recherche de bibliothques afche une liste de tous les chiers ouverts et des processus associs dmarre un programme avec une priorit modie dmarre un processus "indestructible" afche le numro de processus dun programme dmarr afche la liste des processus courants comparable ps, mais afche les rsultats sous forme arborescente termine Linux et redmarre lordinateur modie la priorit dun processus en cours dexcution lance un programme en tant que root afche une liste actualise rgulirement de tous les processus

Gestion des utilisateurs et des groupes


adduser addgroup chgrp chown chsh delgroup deluser groupadd groupdel groupmod groups cre un nouvel utilisateur (Debian) cre un nouveau groupe (Debian) modie lappartenance dun chier un groupe modie le propritaire dun chier modie linterprteur de commandes par dfaut dun utilisateur supprime un groupe (Debian) supprime un utilisateur (Debian) cre un nouveau groupe supprime un groupe modie les proprits dun groupe afche les groupes de lutilisateur courant

RFRENCES THMATIQUES

661
afche les identiants dutilisateur et de groupe de lutilisateur courant modie le groupe courant dun utilisateur cre plusieurs utilisateurs modie le mot de passe dun utilisateur ajoute un utilisateur supprime un utilisateur modie les proprits dun utilisateur

id newgrp newusers passwd useradd userdel usermod

Administration du systme de fichiers


badblocks dd df du dumpe2fs eject fdformat fdisk fsck fsck.type hdparm mdadm mkfifo mkfs mkfs.type mknod mkswap mount ntfsmount ntfs-3g pmount pumount smartctl swapoff swapon sync tune2fs teste si le support de donnes contient des secteurs dfectueux copie des blocs de donnes entre des priphriques (bas niveau) afche lespace libre dun disque dur dtermine la place ncessaire un rpertoire afche des informations internes sur un systme de chiers ext jecte un CD ou une disquette formate une disquette partitionne un disque dur rpare un systme de chiers rpare un systme de chiers du type indiqu modie les paramtres du disque dur gre les partitions RAID cre un chier FIFO (tube nomm) cre un systme de chiers cre un systme de chiers du type indiqu cre un chier de priphrique cre un chier ou une partition dchange monte un systme de chiers dans larborescence de rpertoires monte un systme de chiers NTFS dans larborescence de rpertoires (variante 1) monte un systme de chiers NTFS dans larborescence de rpertoires (variante 2) monte un support de donnes externe dans larborescence de rpertoires dmonte un support de donnes externe de larborescence de rpertoires contrle les fonctions SMART du disque dur dsactive un chier ou une partition dchange active un chier ou une partition dchange effectue toutes les oprations dcriture du tampon modie les paramtres systme dun systme de chiers ext

662

LINUX

umount vol_id volname

dmonte un systme de chiers de larborescence de rpertoires afche lUUID, le nom et dautres donnes dune partition afche le nom de volume dun CD

Gestion de paquetages
alien alternatives apt-cache apt-cdrom apt-get apt-key aptitude dpkg rpm update-alternatives yum zypper convertit des paquetages entre diffrents formats ajuste les liens de /etc/alternatives (Fedora, Red Hat) afche des informations sur les paquetages installs et disponibles ajoute un CD/DVD comme dpt de paquetages pour APT permet de grer des paquetages DEB rcupre la cl dun dpt de paquetages APT permet de grer des paquetages DEB (ds)installe ou actualise les paquetages DEB (ds)installe ou actualise les paquetages RPM ajuste les liens de /etc/alternatives permet de grer des paquetages RPM permet de grer des paquetages RPM (spcique SUSE)

Fonctions rseau
ftp host hostname ifconfig ifdown ifup iptables iwconfig iwlist netstat nmap ping route rsync scp sftp smbclient ssh traceroute wget transfre des chiers interactivement via FTP rsout les adresses IP et noms rseau afche et modie le nom de lordinateur local congure les interfaces rseau et afche leur tat dsactive une interface rseau active une interface rseau congure le ltre de paquets (pare-feu) de Linux congure les interfaces rseau sans l et afche leur tat afche des informations sur le contrleur et le rseau Wi-Fi afche des informations sur lactivit rseau de lordinateur local afche des informations sur lactivit rseau dun ordinateur distant teste la connexion rseau vers un autre ordinateur modie et afche les tables de routage IP synchronise des rpertoires rseau transfre des chiers de manire chiffre via SSH transfre des chiers de manire chiffre via SFTP transfre des chiers vers/depuis des partages Windows permet de se connecter dautres ordinateurs du rseau afche les tapes vers une adresse rseau tlcharge des chiers ou des rpertoires via FTP/HTTP

RFRENCES THMATIQUES

663
ajoute ou supprime une imprimante (CUPS) afche des informations sur les priphriques et pilotes dimpression disponibles (CUPS) afche les options dune imprimante et les modie (CUPS) afche le contenu dune le dimpression imprime un chier supprime une tche dimpression de la le afche des informations sur les imprimantes, les tches dimpression, etc. (CUPS)

Administration de limprimante
lpadmin lpinfo lpoptions lpq lpr lprm lpstat

Gestion du matriel
acpi free lshal lspci lsscsi lsusb pccardctl afche des informations sur ltat de la batterie afche lespace libre de la mmoire (mmoire vive et espace dchange) afche des informations sur la couche dabstraction matrielle HAL afche des informations sur les composants PCI afche des informations sur les priphriques SCSI connects afche des informations sur les priphriques USB connects contrle les cartes PCMCIA

Noyau et modules
depmod insmod lsmod modinfo modprobe rmmod sysctl actualise le chier de dpendances des modules modules.dep charge un module dans le noyau afche la liste de tous les modules chargs afche des informations sur un module charge un module et tous les modules dont il dpend dans le noyau supprime un module du noyau modie les paramtres du noyau

Dmarrage et arrt du systme


chkconfig grub invoke.rc lilo cre des liens InitV (Red Hat, Fedora) lance linterprteur de commandes GRUB (par exemple, pour installer le chargeur damorage) lance un script InitV (Debian, Ubuntu) installe le gestionnaire damorage LILO

664

LINUX

init insserv mkinitramfs mkinitrd service shutdown update-rc.d

passe dans un autre niveau dexcution cre des liens InitV (SUSE) cre un chier initrd pour le gestionnaire damorage (Ubuntu) cre un chier initrd pour le gestionnaire damorage lance un script InitV (Red Hat, Fedora) termine Linux cre des liens InitV (Debian, Ubuntu)

Terminal et console texte


echo printf reset setfont setterm afche une ligne de texte permet de mettre en forme une sortie comme en C nettoie le terminal modie la fonte du terminal modie divers paramtres du terminal

Aide en ligne
apropos help info man whatis afche les commandes relatives un thme afche la description dune commande de linterprteur de commandes dmarre le systme info afche la description dune commande afche une courte description dune commande

Divers
basename cksum date dirname dmesg expr ldd md5sum rdev sleep sum tty uname xargs dtermine le nom de chier dun chemin calcule la somme de contrle CRC dun chier afche la date et lheure dtermine le rpertoire dun chemin afche les messages du noyau, en particulier pendant le dmarrage excute des calculs et des comparaisons afche les bibliothques ncessaires dun programme calcule une somme de calcul dun chier modie quelques bits dans le noyau attend une dure dtermine calcule la somme de contrle dun chier afche le nom du priphrique du terminal courant afche le nom et le numro de version du systme dexploitation transmet la sortie standard comme argument dune autre commande

RFRENCES THMATIQUES

665
dnit un alias/raccourci dnit une variable denvironnement dnit une variable denvironnement dnit une variable locale une fonction nafche que les variables denvironnement lit une variable afche toutes les variables protges en criture afche toutes les variables connues de linterprteur dcale la liste de paramtres supprime un alias supprime une variable

bash Gestion des variables


alias declare export local printenv read readonly set shift unalias unset

bash Programmation
break case continue exit for function if local return source test until while termine une boucle prmaturment introduit une diffrenciation de cas fait limpasse sur le reste du corps de la boucle termine le programme shell introduit une boucle dnit une nouvelle fonction introduit une condition dnit une variable locale une fonction termine une fonction lance le chier shell indiqu value une condition introduit une boucle introduit une boucle

bash Commandes
dirs eval popd pushd trap ulimit wait afche la liste des rpertoires enregistrs value la commande indique passe dans le dernier rpertoire enregistr enregistre le rpertoire courant et passe dans un nouveau rpertoire lance une commande larrive dun signal contrle les ressources rclames par le shell attend la n dun processus en tche de fond

Sources d'information
Ce chapitre recense divers sites web utiles pour l'installation et la conguration des distributions Linux mentionnes dans cet ouvrage. Celles-ci sont numres dans l'ordre alphabtique.

Debian
Site web de Debian Communaut francophone Wiki Debian Manuel d'installation http://www.debian.org/ http://forum.debian-fr.org/ http://wiki.debian.org/ http://www.debian.org/releases/stable/installmanual

Fedora
Site web de Fedora Communaut francophone Wiki Fedora Wiki Fedora francophone Manuel d'installation http://www.fedoraproject.org/ http://www.fedora-fr.org/ https://fedoraproject.org/wiki/ http://doc.fedora-fr.org/wiki/ http://doc.fedora-fr.org/wiki/Guide_d'installation_de_Fedora_en _images

Mandriva
Site web de Mandriva Communaut francophone Wiki Mandriva Manuel d'installation http://www.mandriva.com/ http://www.mandriva.com/fr/communaute/bienvenue http://wiki.mandriva.com/ http://wiki.mandriva.com/fr/Installer_Mandriva_Linux

openSUSE
Site web d'openSUSE Communaut francophone Manuel d'installation http://www.opensuse.org/ http://fr.opensuse.org/ http://fr.opensuse.org/Documentation_utilisateurs/Installation

668

LINUX

Red Hat
Site web de Red Hat Red Hat France Manuel d'installation http://www.redhat.com http://www.redhat.fr/ 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 Site web de Kubuntu Site web de Xubuntu Site web d'Edubuntu Communaut francophone Manuel d'installation http://www.ubuntu.com/ http://www.kubuntu.org/ http://www.xubuntu.org/ http://edubuntu.org/ http://www.ubuntu-fr.org/ http://doc.ubuntu-fr.org/installation

Informations gnralistes
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 AFUL APRIL FSF France GNU http://www.linuxfr.org http://www.aful.org http://www.april.org http://www.fsffrance.org/ http://www.gnu.org/home.fr.html

Index
Symboles
$DISPLAY 220 $PATH 214 $PS1 285 . 182 .. 182 / 181 /bin 209 /boot 209 /dev 209 /dev/null 211 /dev/zero 211 /etc 209 /etc/adduser.conf 310 /etc/aliases 99 /etc/default 303 /etc/default/console-setup 306 /etc/default/rcS 307 /etc/deluser.conf 310 /etc/exports 601 /etc/fstab 423 CD 442 CIFS 449 cl USB 446 disque dur externe 446 DVD 442 exemple 423 ext3 429 LABEL 423 NFS 448 NTFS ntfs-3g 440 ntfsmount 439 pilote ntfs 438 option users 446 options 425 partition dchange 450 reiser4 433 reiserfs 433 SMBFS 449 syntaxe 423 systme de chiers 424 UUID 423, 446 vrication du systme de chiers 425 VFAT 437 xfs 435 /etc/group 312 /etc/gshadow 316 /etc/host.conf 506 /etc/hostname 509 /etc/hosts 505 /etc/iftab 510 /etc/init.d 476 /etc/init.d/ 225 reload 226 restart 226 start 225 stop 226 /etc/init.d/network 511, 512 /etc/init.d/networking 510 /etc/localtime 308 /etc/login.defs 314 /etc/logrotate.conf 335 /etc/logrotate.d/* 335 /etc/network/interfaces 510, 524 /etc/pam.d 317 /etc/passwd 310 /etc/rc.d 476 /etc/resolv.conf 503, 506 /etc/security 317 /etc/services 562 /etc/shadow 313 /etc/skel 311 /etc/syscong 303 /etc/syscong/clock 307 /etc/syscong/console 306 /etc/syscong/i18n 305 /etc/syscong/keyboard 305 /etc/syscong/network 508, 509, 512 /etc/syscong/network/ cong 526 /etc/syscong/networkscripts 511 /etc/syslog.conf 334 /etc/timezone 307 /home 182, 209 /lib 209 /lib/rmware 519 /lost+found 209 /media 209 /mnt 209 /opt 209 /proc 209 /proc/acpi 326 /proc/apm 327 /proc/asound 331 /proc/net/wireless 523 /root 182, 209 /sbin 210 /sbin/setsysfont 305 /share 210 /srv 210 /sys 210 /tmp 210 /usr 210 sous-rpertoires 210 /var 210 /var/adm/log 334 /var/log 334

Numriques
32 et 64 bits 26 3D 387 bureau 389 tester 388 802.11x (standards) 513

670
A

LINUX

AAC 161 abiword 134 AC-3 161 ACL ACL standard 208 commandes, rfrence 657 getfacl 207 masques 208 prrequis 206 setfacl 207 ACPI 326, 473 acpid 326 addgroup 309 adduser 309 Administation 301 Adobe Flash Player 90 Adobe Reader 89 Adresse IP 495, 496 MAC 495 ADSL 531 box 544 ip-down-local 576 ip-up.local 576 PPP 533 pppd 537 pppeoconf 533,534 PPPoA 537 PPPoE 537 PPTP 538 pptpcong 538 protocole 537 routeur 544 type de modem 533 Aide 41, 178 applications 48 commandes, rfrence 664 documentation 48 en franais 50 forums 49 groupes de discussion 41, 49 help 178 info 49, 178, 179 Linux Documentation Project 49

man 49, 178 paquetages 49 wikis 49 AIGLX 391, 392 comparaison avec XGL 392 conguration 392 prise en charge des pilotes graphiques 391 alacarte 54 alias 288 alien 355 alsactl 331 alsamixer 331 Amarok 164 Amorage journalisation 335 options du noyau 472 aplay 331 APM 327, 473 Appareils photo numriques 136 photo PTP 136 AppArmor 39 Applet, Java 92 APT 349 afchage dinformations 351 apt-cache 351 apt-get 349 aptitude 354 conguration 350 dpts 350 sur CD 350 installation de paquetages 351 mise jour 351 automatique 352 paquetages de code source 351 suppression 351 Synaptic 352 apt-cache 351 apt-get 349 installation 351 mise jour 351 paquetages de code source 351 suppression 351

aptitude, ligne de commande 354 arborescence 181, 209, 403 /bin 209 /boot 209 /dev 209 /etc 209 /home 209 /lib 209 /lost+found 209 /media 209 /mnt 209 /opt 209 /proc 209 /root 209 /sbin 210 /share 210 /srv 210 /sys 210 /tmp 210 /usr 210 /var 210 ajouter un systme de chiers 403 dplacement dans 182 racine 181 Architectures 325 32 et 64 bits 26 Archive 194 Ark 76 commandes, rfrence 659 le-roller 63 tar 195 unzip 196 zip 195 arecord 331 Ark 76 Arrt 47 du systme, commandes, rfrence 663 aRts 332 aRtsd 332 ASCII 319 ATA 404 ATAPI 404 Atheros 519 athn (interface) 521

INDEX

671
Voir Redirection substitution de commandes 294 succession de commandes 292 tche de fond 291 tee 290 ulimit 217 variables 297 commandes, rfrence 665 importantes 299 locales et globales 298 Batterie (portable) 326 Beagle 192 beagle-query 193 expressions de recherche 193 gnome-beagle-search 193 kerry 193 ligne de commande 193 beagle-query 193 bg 214 BitTorrent 248 clients 248 Bluetooth 330 BMP (format) 151 bogolter 95 bootloader 459 Brasero 63 Brevet logiciel 21 bunzip2 195 Bureau Gnome 52 KDE 68 Bureau 3D 358, 389 AIGLX 391, 392 Compiz Fusion 393 fonctions 389 prrequis 391 raccourcis clavier 390 XGL 391 Bureau virtuel 358 bzip2 195

ATSC A/52 161 Attribut tendu 206 getfattr 208 prrequis 206 setfattr 208 Audio 157 lecteurs 157 audiole 234 aufs 420 autofs 419 autofs4 419 Avahi 528

C
Cache web 577 Calc (OpenOfce) 126 Captive 440 Caractre accentu, nom de chier 181 tranger gucharmap 395 kcharselect 395 saisie 48, 380, 395 joker 185 problme 186 CardBus (PCMCIA) 329 Carte graphique, pilotes 360 CD /etc/fstab 442 audio 443 jection 442 erreur 442 ISO 9660 441 lecteur nom de priphrique 441 magicdev 445 montage 442 supermount 445 UDF 441 cd 182 CD audio 162 extraction 163, 233 gravure avec Serpentine 63 lecture 162 CD et DVD gravure Voir Gravure cdcd 164 cdda2wav 233 CDDB 162 cdparanoia 233 cdrdao 199 cdrecord 199 Cedega 622 Changement dutilisateur 46 Gnome 52 KDE 68

B
Banshee 165 baobab 63, 185 Base (OpenOfce) 130 bash 283 $HOME 299 $MAIL 299 $PATH 214, 299 $PS1 285, 299 $PWD 299 alias 288 bash_completion 287 calcul arithmtique 294 caractre joker 185, 293 commandes, rfrence 665 compltement 286 avanc 287 automatique 175 conguration du clavier 284 construction de chanes avec {} 294 invite de commande 285 mcanismes de substitution 293 rsum 296 programmation, commandes, rfrence 665 raccourcis clavier 174, 287 redirections rsum 291

672

LINUX

Character set 319 Chargeur damorage 459 dmarrage du noyau 460 installation 40 chat 536 chgrp 203 Chiffrement (e-mails) 100 chkcong 227, 478 chmod 202, 204 valeurs octales 204 chroot 644 CIFS 418, 448, 606 mount 448 utilisateur sans privilges 449 Clavier Compose 380 exemples 381 conguration 305 console texte 305 disposition 379 Gnome 65 gnome-keyboardproperties 381 modle 378 nodeadkeys 305 nombre de touches 28 problme 42, 43 QWERTY 42 raccourcis 47 touches de contrle 381 spciales 379 VerrMaj 380 VerrNum 379 xmodmap 380 Cl 101 prive 101 publique 101 Cl USB 443 etc/fstab 446 branchement chaud 444 conguration 444 D-BUS 444 dmonter 446 GRUB 470 hald 444 ivman 444

monter 445 performances 444 pmount 446 super-oppy 445 udev 444 Client rseau conguration 544, 553 Debian 553 dhcpcd 553 Fedora 553 network-admin 553 Red Hat 553 SUSE 553 system-congnetwork 553 Ubuntu 553 redmarrage 554 coda 418 Codec 158 CodeWeavers 621 CrossOver 621 Commande, en tche de fond 175 Compiz Fusion 393 conguration 393 gtk-window-decorator 393 kde-window-decorator 393 Compression 194 Ark 76 bunzip2 195 bzip2 195 commandes, rfrence 659 le-roller 63 gunzip 194 gzip 194 unzip 196 zip 195 Compte courrier lectronique 96 e-mail 96 cone 95, 99 Conguration 301 clavier (console texte) 305 console texte 304 crer un utilisateur 308 fuseau horaire 307 LAN 493

mot de passe 314 police 305 rseau 493 souris 306 Conguration dun client rseau 493 Conguration des langues 318 Connexion automatique 46, 63, 77 bureau 45 en mode texte 46 Gnome 52 KDE 68 langue 45 root 45 Connexion automatique Gnome 63 KDE 77 Console 173 dconnexion 173 fentre 174 Voir Terminal lancer des commandes 175 paquetage 306 passage en root 175 raccourcis 174 souris 175 Console texte 173 clavier 305 commandes, rfrence 664 conguration 304 connexion 173 dconnexion 173 gpm 175 nombre 173 passage entre les consoles 173 police 305 raccourcis clavier 174 souris 306 console.apps 317 console.perms 317 consolehelper 220 Contrle parental 577 DansGuardian 582 Contrleur Ethernet conguration 500

INDEX

673
MIME 97 signature 97, 100 Thunderbird 103 cp 184 CPU 325 cpufreq 325 cramfs 419 cron 227 /etc/crontab 227 /var/spool/cron 227 conguration 227 modication de la conguration 228 crontab 227 syntaxe 228 CrossOver 621 cxinstallwizard 622 installation 622 de programmes 622 CrossOver Ofce 134 CSS (Content Scrambling System) 159 CUPS 587 administration 593 web 592 cupsd.conf 592 ajouter une imprimante 594 conguration 589 d'une imprimante 595 contrle d'accs 590 cupsd.conf 589 cupsomatic 596 environnement interactif 594 chiers PPD 596 gestion de la le 593 HPLIP 594 imprimante rseau client 598 serveur 597 imprimer 593 informations 594 IPP 599 lpadmin 594 lpc 594 lpinfo 594 lpoptions 594 lpq 593 lpr 588, 593 lprm 593 lpstat 594 PPD 596 redmarrer 590 supprimer une imprimante 594 TCP Wrapper 592 URI 600 cupsd.conf 589 administration web 592 contrle d'accs 590 paremtres de base 590 cxinstallwizard 622

Convertisseur 231 audio et vido 232 audiole 234 CD audio 233 cdda2wav 233 cdparanoia 233 commandes, rfrence 659 convmv 235 documents 235 donnes EXIF 232 dos2unix 234 EMF 232 ffmpeg 234 FLAC 234 graphique 231 iconv 234 Image Magick 231 lame 233 librsvg 232 libtiff 232 libwmf 232 MP3 233 Netpbm 232 noms de chiers 235 OGG 233 oggenc 233 PDF 235 PostScript 235 RAW 232 recode 234 SVG 232 texte 234 TIFF 232 unix2dos 234 WMF 232 convmv 235 Cookies 83 Copier-coller 48 Courrier lectronique 95 chiffrement 100 compte 96 Evolution 110 Kontact 115 local 98

D
Damn Small Linux 14 DansGuardian 582 conguration 583 de Squid 585 dansguardian.conf 583 dansguardianf1.conf 583 ltre transparent 585 installation 583 personnalisation des rgles 584 Date 307 D-BUS 444 dbus-daemon 330 dd 199 DDC 359 Debian 11, 667 Firefox 80 Dcodeur 158 Dconnexion 46 Gnome 52 KDE 68 mode texte 47 delgroup 309

674

LINUX

deluser 309 Dmarrage 45 automatique 64 KDE 78 bureau 45 connexion automatique 46 langue 45 mode texte 46 Dmarrage du systme 459 commandes, rfrence 663 initrd 461 InitV 474 mode graphique 475 texte 475 modules du noyau 460 noyau 460 options damorage du noyau 472 processus 474 Dmon 223 arrt manuel 226 arrter 477, 478 cron 227 dmarrage automatique 226 manuel 225 dmarrer 477, 478 rechargement 226 redmarrage 226 suppression du dmarrage automatique 227 depmod 485 devices.map 464 Devil Linux 14 devpts 418 df 184, 421 dhcdbd 553 dhclient 504, 553 dhclient.conf 553 DHCP 496, 504, 541, 548, 554 adresse MAC 549 avantages 548 conguration des clients 544, 553 dhcpd 554 dnsmasq 550

fonctionnement interne 549 nom dhte des clients 549 dhcpcd 504, 554 dhcpd 554 adresses statiques 555 arrt 554 conguration 555 minimale 555 dmarrage 554 dhcpd.conf 555 journalisation 556 noms dhtes 555 redmarrage 554 dhcpd.conf 555 digiKam 143 disque dur 402 ATA 404 cache dcriture 455 conomies dnergie 456 espace 184 externe 443 /etc/fstab 446 branchement chaud 444 conguration 444 D-BUS 444 dmonter 446 fonctionnement manuel 445 GRUB 471 hald 444 ivman 444 monter 445 nom de priphrique 445 performances 444 pmount 446 subfs 445 submount 445 super-oppy 445 udev 444 UUID 446 hdparm 455 IDE 404 pilote 404 MBR 459 nomenclature 405 libata 405 pilote SCSI 405 nomenclature dans GRUB 464

occupation avec baobab 63 occupation avec KDE 73 optimiser 455 paramtres 455 partitionnement Voir Partitionnement PATA 404 performances 455 pilote 404 IDE 404 libata 404 SCSI 404 SATA 404 SCSI 404 SMART 456 surveillance 456 Disquette 443 damorage 469 formatage 443 GRUB 469 magicdev 445 mtools 443 supermount 445 Distribution 8 64 bits 26 commerciale 10 critres de choix 8, 11 disponibilit des mises jour 9 histoire 21 minimale 14 dmesg 334, 335, 502 DMZ 566 DNS 496, 541, 549 conguration des clients 506, 544, 553 dnsmasq 550, 551 serveur local avec dnsmasq 551 dnsmasq 550 /etc/hosts 550 adresses statiques 552 arrter 551 conguration des clients 553 conguration minimale 551 dmarrer 551 DNS 551

INDEX

675
spciaux 203 chgrp 203 chmod 202, 204 erreur dans les bits spciaux 204 groupe 202 Konqueror 73 lire 202 ls 202 modication 202, 204 du groupe 203 Nautilus 58 NTFS 436 prdnition 205 propritaire 202 sticky bit 204 sur priphrique 203 sur rpertoire 203 umask 205 du 185 DVB 170 dvb-apps 170 dvbscan 170 dvb-util 170 DVD /etc/fstab 442 chiffrement 22 jection 442 erreur 442 formatage 201 informations 201 ISO 9660 441 lecteur nom de priphrique 441 magicdev 445 montage 442 supermount 445 UDF 441 vido 443 lecture 163 dvd+rw-format 201 dvd+rw-mediainfo 201 dvd+rw-tools 200

DNS pour lordinateur local 552 dnsmasq.conf 550 journalisation 553 noms dhtes 552 redmarrer 551 serveur de noms 551 Documentation 48 applications 48 en franais 50 forums 49 groupes de discussion 49 info 49 Linux Documentation Project 49 man 49 paquetages 49 wikis 49 Dolphin 71 barres complmentaires 72 rpertoire rseau 72 supports de donnes 72 vues 71 dos2unix 234 dpkg 348 APT 348 installation 349 suppression 349 syntaxe 349 DRI 387 droits daccs 388 DRM 22, 159 Droit daccs 202, 308 ACL 206 Voir ACL afchage 183 attributs tendus Voir Attribut tendu bits daccs 202 setgid 204 setuid 203

E
e2label 431 EA commandes, rfrence 657 Voir Attribut tendu eBox 302 conomie dnergie 326 cran Voir Moniteur cran virtuel 357 diteur de texte 176 Elvis 176 Emacs 176, 263 gedit 63 Jed 176 Jmacs 176 Joe 177 Jove 176 Kate 77 KEdit 77 KWrite 77 nano 177 par dfaut 178 pico 177 Vi 176, 251 Vim 176, 251 Edubuntu 668 efs 417 Ekiga 79 El-Torito 441 Emacs 263 abrviations 273 caractres spciaux 281 casse 270 chargement de chier 264 conventions du clavier 267 copies de sauvegarde 265 correction des fautes de frappe 270 dmarrage 264

676

LINUX

Emacs (suite) dplacement du curseur 265, 268 crasement de texte 270 enregistrement 264 de la position du curseur 268 espaces et tabulations 270 fentre 276 indentation 271 dans du texte continu 272 insertion de texte 270 marquage de texte 269 mise en vidence de la syntaxe 278 mode ddition 266, 277 exemples 278 de saisie 281 info 266 majeur 277 mineur 277 texte 273 quitter 264 recherche de texte 273 expressions rationnelles 274 incrmentale 273 recherche et remplacement de texte 275 souris 267 suppression de texte 269 systme daide 266 taille des tabulations 271 tampon 276 texte continu 272 Unicode 278 sous Gnu EMACS 279 sous Xemacs 279 E-mail 95 chiffrement 100 compte 96 Evolution 110 Kontact 115 local 98 MIME 97 signature 97, 100 Thunderbird 103

mulation 624 Encapsulated PostScript 152 Encodeur 158 env 323 esd 332 EsounD 332 Espace disponible 421 ethtool 502 evince 63, 588 Evolution 110 synchronisation avec un PDA 114 EXIF 141, 144 exim 95 Explore2fs 432 exportfs 602 exports 601 ext 416, 428 ext2 35, 428 conversion vers ext3 430 ext2online 432 ext3 35, 428 /etc/fstab 429 accs depuis Windows 432 conversion depuis ext2 430 cration dun systme de chiers 429 e2label 431 Explore2fs 432 ext2online 432 fragmentation 432 fsck.ext3 431 journalisation 429 mthodes 429 mke2fs 429 nom de la partition 431 paramtres avancs 431 pilote ext sous Windows 433 redimensionnement 431 resize2fs 431 tune2fs 431 UUID 431 vrication du systme de chiers 430 intervalle 431 ext4 35, 428 Extracteur de CD audio 163

F
faillog 315 fast-user-switch-applet 52 FAT 435 fdisk 410, 445 augmentation de la taille dune partition 411 cration dune nouvelle partition 410 enregistrement des modications 410 exemple dutilisation 411 identiant de partition 410 nom des priphriques 445 raccourcis clavier 413 Fedora 11, 667 disponibilit des mises jour 9 droits daccs PAM 317 Fentre de console 174 Voir Terminal fetchmail 95 ffmpeg 234 fg 214 Fichier accs dun processus 216 afchage des droits daccs 183 arborescence 181 archive 194 bits setgid 204 setuid 203 spciaux 203 cach 181 caractres accentus 181 joker pour les noms 185 casse 181 chgrp 203 chmod 202, 204 compression 194 copie 184 dplacement 183 droits daccs 202

INDEX

677
cration 643 changes 644 monter 644 QEMU 643 RAW 643 redimensionner 644 swap 644 systme de chiers 643 Fichier ISO dd 199 gnration 198 mkisofs 198 montage 199 Nautilus 60 test 199 Fichier texte afchage 176 commandes, rfrence 658 diter 176 le-roller 63 Filtrage web DansGuardian 582 Squid 577 Filtre de paquets 560 nd 191 combiner avec grep 192 exemples 191 Firefox 79 MIME 84 plugins 88 XPI 85 xulrunner 85 Firewire 328 ac 234 FlashBlock 92 Fluendo 159 Fonctions dconomie dnergie 326 Font 321 Format maildir 100 Format mbox 99 Formatage 30 framebuffer 377 free 326 freedb 162 Frquence dhorloge 325 fsck.ext3 431 fsck.reiser4 434 fsck.reiserfs 434 F-Spot 145 fstab Voir /etc/fstab fsview 73 FTP 243 accs avec Nautilus 60 clients 245 commandes 245 ftp 244 exemple de session 244 Konqueror 74 FUSE 419 ntfsmount 438 Fuseau horaire 39, 307 glibc 308 fuser 216

espaces 181 excutable 213 fuser 216 gestion 182 Voir Gestion des chiers et rpertoires groupe 202 lien 188 dur 188 limite du nombre de caractres dans le nom 181 liste 183 modication des droits daccs 204 du groupe 203 priphrique 211 propritaire 202 recherche 189 avec Nautilus 58 renommage 183, 187 avec KRename 77 avec sed 187 suppression 184 avec Konqueror 73 avec Nautilus 59 transfert avec BitTottent 248 avec FTP 243 avec scp 241 par rsync 247 par SFTP 246 par wget 246 type 183 Fichier cach 181, 187 afchage dans Gnome 58 dans Konqueror 73 Fichier, commandes, rfrence 657 Fichier dchange 450 cration 451 Fichier journaux 334 Fichier image 643 partir dune partition 644 accs au systme de chier 644

G
gaim 79 gconf-editor 64 gdmsetup 64 gedit 63 Gentoo 12 Gestion de bases de donnes (Base) 130 Gestion de lnergie 326 Gestion des chiers commande, rfrence 657 Gestion des chiers et rpertoires 182 archive Voir Archive cd 182 compression Voir Compression copie de chier 184 de rpertoire 184

678

LINUX

Gestion des chiers et rpertoires (suite) cp 184 cration dun rpertoire 183 dplacement dun chier 183 dun rpertoire 183 dans larborescence 182 df 184 du 185 espace disque 184 lien 188 liste des chiers 183 ln 188 ls 183 mkdir 183 mv 183 recherche de chiers Voir Recherche de chiers renommage dun chier 183 dun rpertoire 183 rm 184 rmdir 183 sauvegarde 196 suppression dun rpertoire 183 de chier 184 de rpertoire 184 Gestion des processus commandes, rfrence 660 Gestion des utilisateurs et groupes commandes, rfrence 660 Gestionnaire damorage xfs 434 Gestionnaire de bureau 51, 358 Gestionnaire de fentres 358 KWin 70 Gestionnaire de chiers Dolphin 71 Gnome 56 Konqueror 72 Nautilus 56 getfacl 207 getfattr 208 GFS 419

ggv 588 GhostScript 589 ltre 589 ghostview 588 GID 311 GIF (format) 151 Gimp 149 EPS 152 impression 154 PostScript 152 Gimp-Print 589 GimpShop 150 gksu 220 gksudo 221 glibc fuseau horaire 308 GLX 387 glxgears 389 glxinfo 388 GMT (Greenwich Mean Time) 307 gnash 92 Gnome 51 alacarte 54 applet 54 liste des fentres 55 menu 54 zone de notication 55 baobab 63 Brasero 63 bureau 52 applet 54 espace de travail 55 liste des fentres 55 menu 54 tableau de bord 53 zone de notication 55 zone de travail 53 changement dutilisateur 52 clavier 65 client Samba 606 comparaison avec KDE 51 conguration 62, 64 connexion 52 automatique 63 dconnexion 52 dmarrage automatique 64 espace de travail 55

evince 63, 588 fast-user-switch-applet 52 le-roller 63 gconf-editor 64 gdmsetup 64 gedit 63 gestionnaire de chiers 56 GnomeBaker 63 gnome-beagle-search 193 gnome-control-center 62 gnome-cups-manager 595 gnome-help 178, 179 gnome-keybindingsproperties 65 gnome-keyboardproperties 65, 381 gnome-search-tool 58 gnome-terminal 62 gnome-volumeproperties 444 gparted 415 gtk-window-decorator 393 gucharmap 48, 395 impression 595 info 179 installation de polices 398 liste des fentres 55 man 178 menu 54 Nautilus Voir Nautilus programmes par dfaut 64 raccourcis clavier 48, 65 recherche de chier 58 seahorse 63 Serpentine 63 surveillance du systme 65 tableau de bord 53 terminal 62 zone de notication 55 zone de travail 53 Gnome Ofce 134 GnomeBaker 63 gnome-beagle-search 193 gnome-cd 162 gnome-control-center 62 gnome-cups-manager 595

INDEX

679
extension RockRidge 198 gnration dun chier ISO 198 GnomeBaker 63 growisofs 200 identiant SCSI du graveur 197 K3b 77 mkisofs 198 Nautilus 60 nom du priphrique 197 Serpentine 63 wodim 199 grep 192 combiner avec nd 192 groupadd 310 Groupes 312 administration 309 afchage 205 changement 205 commandes, rfrence 660 groups 205 mot de passe 316 newgrp 205 groups 205 growisofs 200 GRUB 459 actualisation automatique de la conguration 463 aide 462 color 465 commandes interactives 462 compltement automatique 462 conguration 461, 463 tester 468 couleur 465 default 465 dmarrer Linux 466 Windows 467 devices.map 464 fallback 465 chiers de conguration 463 gfxmenu 465 grub.conf 463 hiddenmenu 465 image de dmarrage 465 installation 468 sur un disque USB 470 sur une disquette 469 ligne de commande 462 menu dysfonctionnement 471 modier 462 pas dafchage 471 menu.lst 462, 463, 464 mot de passe 465 nomenclature des disques et partitions 464 nouveau noyau 490 options du noyau 462, 467 paramtres du noyau 460 password 465 plantage 471 problmes 471 rinstallation 468 splashimage 465 stage1 460 stage1_5 460 stage2 460 structure 460 test 468 timeout 465 update-grub 463 USB 470 utilisation 461 versions 459 Xen 645 xfs 434 grub.conf 463 GStreamer 332 gThumb 139 gtk-window-decorator 393 gucharmap 48, 395 gunzip 194 Gutenprint 589

gnome-help 178, 179 gnome-keybindingsproperties 65 gnome-keyboardproperties 65 gnome-language-selector 321 gnome-photo-printer 136 gnome-pilot 114 gnome-ppp 531 gnome-search-tool 58 gnome-system-monitor 215 gnome-system-tools 309 gnome-terminal 62, 174 gnome-volume-manager 330 gnome-volume-properties 444 GNU 20 GNU Emacs Voir Emacs 263 gnumeric 134 Google Desktop 193 gparted 415 GParted Live 408 gpasswd 316 GPG 102 Kgpg 77 gphoto2 136 GPL 18, 20 versions 18 gpm 175, 306 Graphismes 3D 387 bureau 389 tester 388 Gravure 197 Brasero 63 CD 199 cdrdao 199 cdrecord 199 commandes, rfrence 659 dd 199 DVD 200 dvd+rw-format 201 dvd+rw-mediainfo 201 dvd+rw-tools 200 extension Joliet 198

680
gv 588 gvim Voir vim gzip 194

LINUX

H
hald 329, 444 hal-device-manager 325 hdparm 455 Helix Player 166 help 178 Heure 307 HFS 417 HFS+ 417 Hibernate 326 hostname 508 hosts.allow 563 NFS 602 hosts.deny 563 NFS 602 Hotplug 329 HPFS 417 HPLIP 594 hp-toolbox 594 hwbrowser 325 hwclock 307

I
i.Link 328 i18n 319 Iceweasel 80 ICMP 494, 560 iconv 234 ID3 160 IDE 404 lecteur de bandes 333 pilote 404 IEEE 1394 328 ifcfg 511 ifcong 237, 501 ifrenew 512 iftab 510 ifup 512

Image Magick 231 convert 231 identify 232 mogrify 231 IMAP 97 Impress (OpenOfce) 127 Impression chane 589 compatibilit 597 HP LaserJet 597 conguration d'une imprimante 595 manuelle 596 CUPS 587 dtection automatique 596 chier PostScript 588 PPD 596 ltre 589 de documents 589 gestion de la le 593 GhostScript 589 Gimp-Print 589 gnome-cups-manager 595 Gutenprint 589 HPLIP 594 hp-toolbox 594 imprimante jet d'encre 595 GDI 595 laser 595 compatibilit HP 597 locale 596 PCL 595 photo 595 PostScript 595 rseau 597, 598 AppSocket 598 cupsd.conf 597 IPP 598, 599 Linux/Unix 598 LPD 599 Novell 598 SMB 599 socket 598, 599 Windows 598 Windows 595 informations 594 KDE 75

kprinter 75 lpadmin 594 lpc 594 lpinfo 594 lpoptions 594 lpq 593 lpr 588, 593 lprm 593 lpstat 594 priphrique 588 pilote 595, 597 Samba 615 PostScript 588 Samba 615 system-cong-printer 595 systme d'impression 588 TurboPrint 595 Imprimante, commandes, rfrence 663 Inbox 98 info 178, 179 Emacs 179 Gnome 179 KDE 179 raccourcis clavier 179 init 474 /etc/init.d 477 /etc/rc.d 477 chkcong 478 Debian 477 Fedora 478 gestion 478, 479 inittab 474 insserv 479 invoke-rc.d 477 niveau dexcution 474 Red Hat 478 script rc arrter 477, 478 dmarrer 477, 478 nomenclature 477 paramtres 477 scripts rc 477 service 478 SUSE 478 update-rc.d 478

INDEX

681
clavier 28 conguration dun rseau Wi-Fi 38 de base 37 de laccs Internet 39 du mode graphique 39 du rseau 38 cration des utilisateurs 37 dmarrage 27 mulation du 3e bouton 28 fuseau horaire 39 Gnome et KDE 37 langue 39 LVM 35 messages du noyau 28 mises jour 39 mot de passe root 37 outils de dveloppement 37 paquetages 36 par le rseau 41 pare-feu 39 partition damorage 33 dchanges 34, 35 de donnes 34 systme 33 partitionnement 31 nombre de partitions 33 premiers paramtres 27 prrequis 25 problme 41 RAID 35 rduction de la partition Windows 32 SELinux 39 services rseau 37 souris 28 sur un disque dur externe 40 systme de chiers 30, 35 taille des partitions 35 Interface 495 rseau 495 ifcong 237 liste 237 Internationalisation 318 Internet 531 ADSL 531 bases 493 iptables 576 modem 531 passerelle 543 RNIS 531 scurit 557 Internet Explorer 620 ies4linux 620 sous Wine 620 invoke.rc 225 reload 226 restart 226 start 225 stop 226 invoke-rc.d 477 IP 559 adresse 495, 496, 559 conit dadresse 545 ltre de paquets 560 ICMP 560 ports 559 dangereux 574 prive 545 protocole 560 TCP 560 UDP 560 valide sur le rseau mondial 545 iptables 567 blocage de ports dangereux 574 bloquer les connexions externes 571 chane 569 forward 569 input 569 output 569 postrouting 569 prerouting 569 DHCP 572 exceptions pour Squid 581 fonctionnement 569 InitV 576

initrd 461, 484, 490 contenu 491 crer un chier 490 mkinitramfs 491 mkinitrd 491 inittab 474, 475 bootwait 476 ctrlatltdel 476 initdefault 476 once 476 respawn 476 sysinit 476 wait 476 InitV 474 /etc/init.d 477 /etc/rc.d 477 chkcong 478 Debian 477 Fedora 478 gestion 478, 479 inittab 475 insserv 479 invoke-rc.d 477 iptables 576 journalisation 337 niveau dexcution 474 Red Hat 478 scripts 476 rc 477 arrter 477, 478 dmarrer 477, 478 nomenclature 477 paramtres 477 service 478 SUSE 478 update-rc.d 478 Xen 656 Inkscape 150 insmod 482 insserv 227, 479 Installation 25 AppArmor 39 chargeur damorage 40 choix des systmes de chiers 35

682

LINUX

iptables (suite) Internet 576 journalisation 575 mascarade 546 noyau 547 ordre des rgles 570 passerelle Internet 573 PPP 576 PPTP 572 remise zro 569 scuriser un client sansl 571 scuriser un client VPN 572 serveur mandataire transparent 581 services 573 table 568 lter 569 mangle 569 NAT 569 IPv6 499 IRC 79 ISO 9600 441 ISO 9660 417 El-Torito 441 Joliet 441 Rockridge 441 ISO-10646 (jeu de caractres) 319 ISO-8859, jeu de caractres 319 Istanbul 162 ivman 444 iwlist 524

Journalisation 334,558 amorage 335 iptables 575 systme de chiers 426 JPEG (format) 151

K
K3b 77 kacpid 326 kapmd 327 Kate 77 KAudioCreator 165 KCharMap 48 kcharselect 395 kcmshell 75, 77 KDE 67 administration distante 78 Ark 76 bote miniatures 71 bureau 68 changement dutilisateur 68 client Samba 606 comparaison avec Gnome 51 conguration 75, 78 connexion 68 automatique 77 dconnexion 68 dmarrage automatique 78 Dolphin Voir Dolphin espaces de travail 70 fsview 73 gestionnaire de fentres 70 de chiers 71 gravure 77 icne de connexion 78 impression 75, 595 info 179 installation de polices 398 K3b 77 Kate 77 KCharMap 48 kcharselect 395 kcmshell 75, 77 kde-window-decorator 393

J
Java, plugins 92 Jeu Cedega 622 de caractres 318, 319 jffs 419 jfs 417 Joe 177 raccourcis clavier 177 Joliet 198, 441

KEdit 77 kerry 193 kghostview 588 Kgpg 77 khelpcenter 178, 179 Klipper 77 kmenuedit 78 Konqueror Voir Konqueror konsole 76 KPDF 588 kprinter 75 KRename 77 KWalletManager 76 KWin 70 KWrite 77 liste des tches 70 man 178 menu 69 Okular 77, 588 Plasma 69 plasmodes 69 programmes par dfaut 78 qtparted 415 raccourcis clavier 48, 78 renommage de chiers 77 souris 67 supports de donnes 71 systemsettings 75 tableau de bord 69 terminal 76 version 4.0 67 zone de travail 69 kdesu 220 kde-window-decorator 393 KEdit 77 kerry 193 kghostview 588 Kgpg 77 khelpcenter 178, 179 kill 217 killall 217 KimDaBa 146 kioslave 330 KIPI 144, 146 Klipper 77 klogd 334

INDEX

683
LAN 493 LANG 322 Langue 39 problme 44 LC_ALL 322 LC_COLLATE 322 LC_CTYPE 322 LC_MESSAGES 322 LC_MONETARY 322 LC_NUMERIC 322 LC_PAPER 322 LC_TIME 322 Lecteur CD/DVD ATAPI 404 jection 442 erreur 442 nom de priphrique 441 nomenclature 406 virtualisation 625 Lecteurs de bandes 333 Lecture de CD audio 162 Lecture de DVD vido 163 less 176 raccourcis clavier 176 LGPL 18 libata 404 nomenclature des disques durs 405 libdbus 329 libmad 164 libogg 164 librsvg 232 libtiff 232 libvorbis 164 libwmf 232 Licence 17 autres licences libres 19 conit avec les logiciels propritaires 19 GPL 18 LGPL 18 Lien 188 diffrence entre lien symbolique et lien dur 188 dur 188 exemple 188 symbolique 188 LILO 461 xfs 434 Linux adaptation au multimedia 16 arrt 47 complexit 16 conguration 301 cot 16 dmarrage 45, 459 distributions 8 histoire 20 installation 25 noyau 6 prise en charge du matriel 7 programmes Windows 17 rapidit 14 ressources ncessaires 15 scurit 15 stabilit 16 versions 6 Liste de contrle daccs Voir ACL ln 188 loadkeys 305 locale 323 localhost 494, 505 Localisation 318 locate 190 base de donnes 190 updatedb 190 Logiciel libre 668 mises jour 558 logrotate 335 loop 419 loopback (interface) 495, 498

KMail 115 kmenuedit 78 kmod 481 Knoppix 12 KOfce 134 kolourpaint 150 Konqueror 72, 86 adresses spciales 74 afcher les chiers cachs 73 droits daccs 73 extensions 87 FTP 74 gestionnaire de chiers 72 images daperu 73 Java 87 navigateur web 74 occupation du disque dur 73 partage Windows 74 SSH 74 suppression de chier 73 vues 72 konsole 76, 174 Kontact 115 Konversation 79 Kopete 79 KPDF 588 KPhotoAlbum 146 kppp 532 kprinter 75 KQEMU 634 KRename 77 krita 150 ksysguard 215 Kubuntu 668 KVM 632, 635 modules noyau 635 KWalletManager 76 KWin 70 KWrite 77

L
l10n 319 lame 160, 233

684

LINUX

lpadmin 594 lpc 594 lpinfo 594 lpoptions 594 lpq 593 lpr 588, 593 lprm 593 lpstat 594 ls 183 bits spciaux 204 droits daccs 183 rsultats 183 lshal 325 lshw 325 lsmod 483 lsof 560 lspci 328 lsusb 328 lvcreate 454 lvextend 454 LVM 451 arrt 454 avantages 451 conguration 453 cration dun systme de chiers 454 extension physique 453 groupe de volumes 452 cration 453 identiant de partition 453 inconvnients 451 initialisation 453 LV 452 cration 454 lvcreate 454 lvextend 454 lvreduce 455 mise en place 453 partition systme 452 PD 453 PE 453 priphrique physique 453 PV 452 cration 453

pvcreate 453 redimensionnement 454 versions 452 VG 452 cration 453 vgchange 454 vgcreate 453 volume logique 452 cration 454 volume physique 452 cration 453 lvreduce 455 lynx 88

M
M3U 161 MAC 549 MAC (adresse) 495 Machine virtuelle 624 Macromedia Flash 90 madplayer 164 MadWi 519 magicdev 445 mail 99 maildir, format 100 man 178 contextes 178 Gnome 178 KDE 178 Konqueror 179 Manchot 21 Mandriva 12, 667 Mascarade 541, 545 activation automatique 547 dsactivation automatique 547 dsactiver 547 FTP 548, 574 iptables 546 principes 545 problmes 547 Masque de sous-rseau 495 Master Boot Record Voir MBR

Matriel commandes, rfrence 663 prise en charge 7 mbox, format 99 MBR 40, 459 chargeur damorage 459 Windows 460 Mmoire dchange 450 taille 450 Memtest86 326 Menu Gnome 54 KDE 69 menu.lst 462, 463, 464 color 465 default 465 fallback 465 gfxmenu 465 hiddenmenu 465 password 465 splashimage 465 timeout 465 Message du noyau pendant linstallation 28 Messagerie instantane 79 Microsoft, polices 398 MIME, Firefox 84 Mise en veille 326 mkdir 183 mkdosfs 436 mke2fs 429 mkfs.ext2 429 mkfs.ext3 429 chier image 643 mkfs.reiser4 433 mkfs.reiserfs 433 mkfs.xfs 435 mkinitramfs 491 mkinitrd 491 mkisofs 198 exemples 198 mknod 211 mkntfs 436 mode texte 46 modeline 371

INDEX

685
gestion 482 initrd 484, 490 insmod 482 iptables 547 kmod 481 KVM 635 liste 483 lsmod 483 modinfo 483 modprobe 482 modprobe.conf 485 modprobe.conf.dist 485 modprobe.conf.local 485 modprobe.d 485 modules.dep 485 non GPL 484 Red Hat 485 rmmod 483 SUSE 485 Ubuntu 485 version 482 versionnage 482 modules.dep 485 modutils 485 Moniteur 358 balayage horizontal 358 vertical 359 comparaison cathodique/ LCD 359 DDC 359 dbit vido 359 frquence 359 de pixels 359 horizontale 359 verticale 359 HSync 358 VSync 359 Mot de passe 313 changer 314 gestion avec KWalletManager 76 gestion avec seahorse 63 groupe 316 oubli 315 root 314 mount 421, 445 exemples 422 chier image 644 options 425 syntaxe 422 MP3 160 dcodeur 164 lecteur 164 MPEG-4 161 mpg123 164 mpg321 164 MPlayer 165 MTA (Mail Transfer Agent) 95 mtools 443 MTP 159 MUA (Mail User Agent) 95 mutt 95, 99 mv 183

Modem 531 arrter 537 authentication 536 chat 536 dmarrer 537 externe 532 Fedora 537 gnome-ppp 531 interne 532 kppp 532 network-admin 531 pppd 535 Red Hat 537 scanModem 534 USB 532 winmodem 534 Modes VGA 377 modinfo 483 modprobe 482, 501 modprobe.conf 485 alias 485 blacklist 486 exemple 486 include 486 install 486 options 486 remove 486 syntaxe 485 modprobe.conf.dist 485 modprobe.conf.local 485 modprobe.d 485 Module 481 binaire 484 chargement automatique 481 commandes, rfrence 663 compiler 487 outils de dveloppement 487 conguration 483 Debian 485 dpendances 484 depmod 485 Fedora 485 chier .map 485

N
Namesys 433 nano 177 raccourcis clavier 177 NAT 541, 545 principes 545 Nautilus 56 adresses spciales 59 afchage de chiers cachs 58 barre dadresse 57 latrale 57 connexion permanente un rpertoire rseau 61 copie de CD 60 de chiers 57 dmarrage 56 dplacement de chier 57

686

LINUX

Nautilus (suite) droits daccs 58 gestion de chiers ISO 60 gravure de CD/DVD 60 mode spatial 57 navigation 57 ouverture dun chier 57 partages Windows 60 recherche de chier 58 rpertoire FTP 60 rseau 60 supports externes 59 suppression de chier 59 Navigateur, Konqueror 74 Navigateur Internet 79 Firefox 79 Konqueror 86 lynx 88 NBNS 603 NCPFS 418 NDIS 519 NetBIOS 603 NBNS 603 Netpbm 232 netstat 560 options 560 network-admin 531, 533, 553 NetworkManager 526 newaliases 99 News Usenet 108 NFS 418, 447, 600 /etc/exports 601 /etc/fstab 448 conguration 601 dmarrage 602 exportfs 602 hosts.allow 602 hosts.deny 602 installation 601 mount 448 NFS4 602 nfsd 601 nfsd4 601 portmap 601

root 602 rpc.mountd 601 utilisateurs 602 nfsd 601 nfsd4 601 NIC 495 nice 218 niveau dexcution 474 inittab 474 par dfaut 475 nmap 560 nmap-frontend 560 Noatun 166 nodeadkeys 305 Nom dhte 494, 508 dutilisateur 311 de domaine 494 Novell 12 disponibilit des mises jour 9 Noyau 6, 481 caractristiques 6 code source 488 commandes, rfrence 663 compilation 487, 490 outils de dveloppement 488 compiler un module 487 composants 489 conguration 487, 489 existante 489 dmarrage 460 chier den-tte 487 histoire 20 initrd 490 installation 490 iptables 547 kmod 481 KVM 632, 635 make cong 489 make gcong 489 make menucong 489 make oldcong 489 make xcong 489 mascarade 546 messages 335

modulaire 489 modules 460, 481 gestion 482 versionnage 482 versions 482 monolithique 489 options damorage 467, 472 ACPI 473 APM 473 emergency 472 init 472 initrd 472 lapic 473 maxcpus 473 noapic 473 noht 473 noinitrd 472 nolapic 473 noresume 474 nosmp 473 pci 472 quiet 473 reboot 473 resume 474 ro 472 root 472 single 472 SMP 473 syntaxe 472 outils de conguration 489 paquet IP 567 paramtres damorage 460 serveur mandataire transparent 580 threads 224 transfert dIP 546, 580 version 482 versionnage des modules 482 Xen 648 NTFS 417, 436 /etc/fstab ntfs-3g 440 pilote ntfs 438 pilote ntfsmount 439 Captive 440 droits daccs 436 ux 440 formatage 436 mkntfs 436

INDEX

687
macros 132 numrotation des titres 124 polices 125 styles 122, 129 table des matires 125 tableau 123 vrication orthographique 124 vue des sources de donnes 132 Writer 122 OpenPGP 102 openSUSE 13, 667 disponibilit des mises jour 9 OpenXML 120 OSS 331 Outlook Express 100 Paragon 440 Paravirtualisation 624 prise en charge matrielle 624 Xen 638 Pare-feu 564 blocage de ports dangereux 574 bloquer les connexions externes 571 DHCP 572 distribution 565 DMZ 566 iptables 567 mandataire cache 575 mascarade 574 ordinateur local 566 personnel 564 passerelle Internet 573 PPTP 572 remise zro 569 rseau local 565 scuriser un client sans l 571 VPN 572 services 573 Squid 575 Partage Windows accs avec Nautilus 60 Konqueror 74 parted 413 cration dune partition 414 dmarrage 413 exemple dutilisation 414 interfaces graphiques 415 LVM 453 mkpart 414 rm 414 Parted Magic 408 Partition 28, 403 /etc/fstab 423 amorage 33 augmentation de taille 411

ntfs-3g 439 ntfsmount 438 ntfsprogs 438 outils 438 Paragon 440 pilotes 437 Captive 440 ntfs 437 ntfs-3g 439 ntfsmount 438 Paragon 440 streams 440 ntfs-3g 440 ux 440 streams 440 streams_interface 440 ntfsmount 438 ntfsprogs 438 Numrisation 137

O
OASIS 120 OCR 148 OFS 419 Ogg Vorbis 161 ogg123 164 oggenc 233 Okular 77, 588 OpenDocument 120 OpenGL 387 OpenOfce 119 alternatives 133 Base 130 Calc 126 champ 124 coupure des mots 124 export PDF 125, 129 formats de chiers 120 image 124 Impress 127 impression 125, 127, 129 index lexical 125 Java 119

P
PAM 316 droits daccs 317 Paquetages 339 administration centralise 340 alien 355 APT Voir APT choix linstallation 36 commandes, rfrence 662 conversion 355 DEB 348 APT Voir APT documentation 49 dpkg Voir dpkg formats 339 groupes prcongurs 36 systme de gestion 339 RPM Voir RPM

688

LINUX

Partition (suite) cration 410, 414 dchanges 34 df 421 donnes 34 change 450 espace disponible 421 formatage 30 identiant 410 monter /etc/fstab 423 manuellement 422 mount 421 nom 30 nombre maximal 29, 405 nomenclature dans GRUB 464 identiants 407 par chemin 407 par libell 407 par UUID 407 numrotation 406 par chemin 407 par identiant 407 par libell 407 par UUID 407 parted 413 schma de nommage hd-* 31 sd-* 30 swap 450 systme 33, 403 de chiers 30, 35 taille 35 test de cohrence 403 type 29 Partition damorage 33 Partition dchange 34, 450 /etc/fstab 450 cration 451 formatage 35 limite de taille 34 systme de chiers 35 Partition systme 33, 403 LVM 452

Partitionnement 28, 408 augmentation de la taille dune partition 411 compatibilit des programmes 409 cration dune nouvelle partition 410 fdisk 410 GParted Live 408 identiant dune partition 410 nombre maximal de partitions 29 Parted Magic 408 rduction de la partition Windows 32 rgles de base 408 systme de chiers 35 SystemRescueCD 408 taille des partitions 35 utilitaire 29 Windows Vista 408 Passerelle 496, 543 comparaison avec un routeur matriel 544 conguration des clients 503, 508, 548 installation 543 MSS clamping 546 pare-feu 573 scurit 546 PATA 404 Pav tactile 383 pccardctl 329 PC-Cards (PCMCIA) 329 PCI 328 PCM (volume) 332 PCMCIA 329 PDA 114 PDF Adobe Reader 89 evince 63 Okular 77 Priphrique accs bloc 211 caractre 211

cration dun chier 211 droits daccs 203 chier 211 mknod 211 nom du graveur 197 numro majeur 211 mineur 211 numros 211 type daccs 211 udev 211 PGP 102 Phonon 333 Photo numrique 136 pico 177 raccourcis clavier 177 Pidgin 79 pidof 216 Pilote ati 372 ATI/AMD 360, 372 atimisc 372 carte graphique 360 IDE 405 Intel 360, 374 non libre 360 nv 375 NVIDIA 360, 375 nvidia 375 noyau 376 nvidia-xcong 375 TwinView 376 r128 372 radeon 372, 373 radeonhd 372, 374 VIA 360 pine 95, 99 ping 238 Pluggable Authentication Modules 316 Plugins 88 Adobe Reader 89 Flash 90 Java 92 RealPlayer 166 pmount 446 PNG (format) 152

INDEX

689
PPP ip-down.local 576 iptables 576 ip-up.local 576 pppd 537 arrter 537, 538, 539 authentication 536 chat 536 dmarrer 537, 538, 539 Fedora 537 modem 535 options 536 Red Hat 537 pppoe 533, 537 carte rseau 537 pppd 537 pppoeconf 534 PPTP 538 carte rseau 538 pppd 538 pptpcong 538 pptpcong 538 Prrequis dinstallation espace disque 25 matriel 25 mmoire vive 25 processeur 25 Prsentations (Impression) 127 Presse-papiers, Klipper 77 Problme clavier 42, 43 dmarrage de lordinateur 43 de X 43 langue 44 Linux ne dmarre pas 43 matriel 42 plantage 42 unable to mount root fs 42 Windows ne dmarre pas 43 proc 418 Processeur 325 32 et 64 bits 26 virtualisation 625 Processus 213 accs un chier 216 bg 214 commandes, rfrence 660 consolehelper 220 crontab 227 darrire fond 214 davant-plan 214 dmarrer automatiquement 227 dmon 223 fg 214 fuser 216 gksudo 221 gnome-system-monitor 215 hirarchie 216 identiant 216 kill 217 killall 217 ksysguard 215 limite de taille 217 liste 214 nice 218 PID 216 pidof 216 priorits 218 ps 214 pstree 216 redirections 218 renice 218 sous une autre identit 219 su 219 sudo 220 tche de fond 214 terminer 217 threads du noyau 224 top 215, 217 tubes 218 ulimit 217 xkill 217 procmail 95 Programmation de macros (OpenOfce) 132

Polices 321 anti-aliasing 399 anti-crnelage 399 conguration 399 bitmap 394, 396 conguration sans serveur de fontes 397 console texte 305 fc-list 394 freetype 394 installation 398 GNOME 398 KDE 398 manuelle 398 polices Microsoft 398 Microsoft 398 nomenclature 395 OpenType 396 rpertoires 394 Speedo 396 TrueType 396 Type1 394, 396 Unicode 396 URW 396 vectorielles 394 X 394 xslfonts 394 POP 97 Portable, batterie 326 portmap 601 Ports (TCP/IP) 494 postx 95 PostScript 588 Evince 588 evince 63 ggv 588 ghostview 588 gv 588 kghostview 588 KPDE 588 Okular 77, 588 ps2pdf 588 PPD 596 cupsomatic 596 ppds.dat 596

690

LINUX

Programme commandes, rfrence 660 dmarrer 213 par dfaut Gnome 64 KDE 78 Proxy 83 ps 214 PS (format) 152 ps2pdf 588 PSD (format) 151 pstree 216 PTP (appareils photo) 136 pumount 446 pump 504 pvcreate 453

Q
QEMU 632 clavier 633 chier image 632 format 632 KQEMU 634 KVM 632 lecteur CD/DVD chier ISO 633 mmoire vive 633 priphrique damorage 633 options 633 qemu-img 632 raccourcis clavier 633 rseau 633 test 633 qemu-img 632 QEMY KVM 635 qmail 95 Qt 67 qtparted 415

R
Raccourci clavier 47 bureau 3D 390 Gnome 65 KDE 78

racine 181 rc reload 226 restart 226 start 226 stop 226 Real Audio 161 RealPlayer 166 Recherche de chiers 189 Beagle 192 commandes, rfrence 658 nd 191 nd et grep 192 Google Desktop 193 grep 192 locate 190 Nautilus 58 Tracker 193 whereis 189 which 189 recode 234 Reconnaissance de texte 148 Red Hat 12, 668 droits daccs PAM 317 Red Hat Enterprise Linux disponibilit des mises jour 9 Redirection 218, 289 entre standard 289 erreur standard 289 sortie standard 289 tee 290 tubes 290 nomms 290 mkfo 290 reiser4 416, 433 /etc/fstab 433 cration dun systme de chiers 433 fsck.reiser4 434 mkfs.reiser4 433 vrication du systme de chiers 434 reiserfs 416, 433 /etc/fstab 433 cration dun systme de chiers 433

fsck.reiserfs 434 label 434 mkfs.reiserfs 433 redimensionnement 434 resize_reiserfs 434 UUID 434 vrication du systme de chiers 434 reiserfstune 434 renice 218 Rpertoire . 182 .. 182 arborescence 209 bit setgid 204 changement de rpertoire courant 182 chgrp 203 chmod 202 copie 184 courant 182 cration 183 dplacement 183 droits daccs 203 FTP, accs avec Nautilus 60 gestion Voir Gestion des chiers et rpertoires parent 182 personnel 182, 310, 311 renommage 183 rseau connexion permanente avec Nautilus 61 Dolphin 72 sticky bit 204 suppression 183, 184 umask 205 Rseau /etc/services 562 accessibilit de localhost 238 accessiblit du rseau local 238 adresse IP 559 analyse 559 bases 493 BitTorrent 248

INDEX

691
scurit 557 serveur mandataire 577 SFTP 246 SHFS 242 Squid 577 ssh 240 TCP Wrapper 563 test de laccs Internet 238 de la passerelle 238 traceroute 239 traitement local 568 UDP 560 virtualisation 626 wget 246 xinetd 561 Rseau local 493 conguration 493 Rseau sans l 512 scurit 575 resize_reiserfs 434 resize2fs 431 Rhythmbox 167 rm 184 rmdir 183 rmmod 483 RNIS 531 network-admin 533 RockRidge 198, 441 root 45, 175, 219, 315 mot de passe 37 Route 239 commande 503 Routeur matriel comparaison avec une passerelle 544 rpc.mountd 601 RPM 340 architecture des paquetages 340 capacits 343 informations sur les paquetages 342 installation dun programme 342 mise jour de programmes 342 nommage des paquetages 340 problmes 341 dpendances 344 rpm 340 Yum Voir Yum Yumex 347 rpm 340 exemples 342 informations sur les paquetages 342 installation dun programme 342 mise jour de programmes 342 problmes de dpendances 344 syntaxe 342 rsync 196, 247 exemples 248

cache web 577 clients 544 commandes, rfrence 662 conguration linstallation 38 du contrleur Ethernet 500 contrle parental 577 DansGuardian 582 destine d'un paquet IP 568 diagnostic 237 disponibilit du serveur de noms 238 DMZ 566 tat 237 ltrage des entres 568 des sorties 568 des transferts 568 web 577 ltre de paquets 560 web 582 FTP 243 ICMP 560 ifcong 237 IP 559 iptables 567 liste des interfaces 237 lsof 560 netstat 560 NFS 600 nmap 560 parcours dans le noyau 567 pare-feu 564, 573 ping 238 ports 559 actifs 560 dangereux 574 postroutage NAT 568 protocole IP 560 routage 567 route 239 rsync 247 Samba 603 scp 241

S
S/MIME 102 Samba 603 CIFS 418, 606 client 606 conguration minimale 607 dmarrage 608 droits d'accs 604 tat 609 exploration du rseau 604 fonctionnalits 605 Gnome 606 impression 615 pilote 615 imprimante partage 615 KDE 606 NBNS 603

692

LINUX

Samba (suite) NetBIOS 603 NBNS 603 nmbd 608 NTLMv2 611 partage mot de passe 611 sans mot de passe 610 scurit 604, 610 protocoles 603 scurit 604 partage 604, 610 utilisateurs 605 services 603 smb.conf 607 vrication 609 smbclient 606 smbd 608 SMBFS 418 smbpasswd 611 smbstatus 609 test 608 testparm 609 username.map 612 utilisateurs 605, 612 version 4 605 Windows Vista 611 WINS 604 SANE 137 sane-nd-scanner 138 SATA 404 Sauvegarde automatisation 196 rsync 196 stratgie 196 Scan 170 scanimage 138 scanModem 534 Scanner 137 SCO 23 procs 23 scp 241 Scribus 134 SCSI 404 lecteur de bandes 333 seahorse 63

Scurit 557 client sans-l 571 DMZ 566 ltre de paquets 560 hosts.allow 563 hosts.deny 563 iptables 567 journalisation 558 mises jour 558 netstat 560 nmap 560 pare-feu 564 passerelle 573 ports actifs 560 dangereux 574 rseau sans-l 575 risques 565 services rseau 561 Squid 577 TCP Wrapper 563 xinetd 561, 563 sed 187 renommage de chier 187 SELinux 39 sendmail 95 Serpentine 63 Serveur de noms 496 de noms 549 mandataire 577 X 357 Service 478 arrter 477, 478 dmarrer 477, 478 reload 226 restart 226 scuriser 561 start 226 stop 226 xinetd 562 setfacl 207 setfattr 208 setfont 305 setgid 204 setuid 203 setupcon 306

SFTP 246 clients 246 shell 283 changement 284 dnition du shell par dfaut 284 SHFS 242 Shockwave for Director 92 siga 325 Signature (e-mails) 100 Skype 79 Slackware 13 SMART 456 surveillance automatique 457 test 457 smartd 457 smb.conf 607 vrication 609 smbclient 606 SMBFS 418, 448 mount 448 smbpasswd 611 smbstatus 609 SMP 473 SMTP 97 Software suspend 326 Son, ALSA 331 Sound Juicer 168 Souris 48, 382 console 175 copier-coller 48 mulation du 3e bouton 382 molette 382 pav tactile 383 ZAxisMapping 382 spamassassin 95 Squid 577 arrt 580 conguration 580 DansGuardian 585 clients 580 minimale 577 transparente 580 iptables 581 noyau 580 squid.conf 580 transfert IP 580

INDEX

693
Sun StarOfce 133 super-oppy 445 supermount 445 Support de donnes Dolphin 72 gestion sous Gnome 59 gestion sous KDE 71 Nautilus 59 Surveillance du systme Gnome 65 SUSE 12, 668 SUSE Enterprise Server disponibilit des mises jour 9 Suspend 326 Suspend to disk 326 Suspend2 (TuxOnIce) 327 swap 450 taille 450 swfdec 92 Synaptic 352, 383 dpts 353 installation de paquetages 352 problmes 353 sysfs 418 syslogd 334 system-cong-date 307 system-cong-language 321 system-cong-network 553 system-cong-printer 595 system-cong-users 309 Systme administation 301 Systme, dmarrage 459 Systme dexploitation 5 Systme de chiers 35, 421 /etc/fstab 423, 424 ajouter larborescence 403 aufs 420 auto 419 autofs 419 autofs4 419 chiffr 420 CIFS 418, 448 coda 418 commandes, rfrence 661 cramfs 419 dterminer les systmes disponibles 420 devpts 418 df 421 efs 417 ext 416, 428 ext2 35, 428 ext3 35, 428 ext4 35, 428 FAT 435 chier image 643 fragmentation 432 FUSE 419 GFS 419 HFS 417 HFS+ 417 HPFS 417 ISO9660 417 jffs 419 jfs 417 journalisation 426 limite de taille 428 loop 419 LVM 451, 454 magicdev 445 monter /etc/fstab 423 manuellement 422 mount 421 NCPFS 418 NFS 418, 447 none 420 NTFS 417, 436 OFS 419 proc 418 reiser4 416 reiserfs 416 rseau 447 SHFS 242 SMBFS 418, 448 subfs 445

contrle d'accs 582 dmarrage 580 exceptions 581 squid.conf 578 test 580 squid.conf 578 acl 578, 582 cache_dir 578 cache_mem 578 cache_peer 579 conguration transparente 580 http_access 578 ssh 220, 240 cl publique du serveur 240 dmarrage de commandes 240 identication par cls 242 Konqueror 74 session typique 240 ssh-agent 243 tunnel 242 X 241 ssh-agent 243 StarOfce 133 start 226 startx 363 sticky bit 204 Streaming 160 su 175, 219 gksu 220 kdesu 220 mode graphique 220 subfs 445 submount 445 sudo 220 /etc/sudoers 221 conguration 221 gksudo 221 sous SUSE 222 sous Ubuntu 222 Sun Java 92 StarOfce 133

694

LINUX

Systme de chiers (suite) supermount 445 sysfs 418 sysv 417 test de cohrence 403 tmpfs 418 type 403, 416 UDF 418 UFS 417 unionfs 420 usbfs 419 vrication automatique 427 vrication dans /etc/ fstab 425 vrication manuelle 427 VFAT 417, 435 virtuel 447 xfs 416, 434 Systme son (ALSA) 331 SystemRescueCD 408 systemsettings 75 sysv 417

T
Table de routage 495 Tableur (OpenOfce) 126 Tche Voir Processus Tche de fond 175 tar 195 tcd 164 TCP 560 TCP Wrapper 563 CUPS 592 prise en charge 564 TCP/IP 493 tee 290 Terminal 173 commandes, rfrence 664 dconnexion 173 gnome-terminal 62, 174 konsole 76, 174 lancer des commandes 175 passage en root 175 raccourcis 174 souris 175

xterm 174 testparm 609 Theora 162 Thunderbird 103 import depuis Windows 109 MIME 105 news Usenet 108 synchronisation avec Windows 109 TIFF (format) 152 time-admin 307 tmpfs 418 top 215 arrter un processus 217 modication de la prioirit 218 Totem 168 touch 205 touchpad 383 traceroute 239 Tracker 193 tracker-search-tool 193 Traitement de texte (OpenOfce) 122 TransGaming 622 Cedega 622 tube 218 tune2fs 431 Tux 21 TuxOnIce (Suspend2) 327 TwinView 376

U
Ubuntu 13, 668 disponibilit des mises jour 9 udev 211, 444, 509 UDF 418, 441 UDP 494, 560 UFS 417 UID 311 ulimit 217 umask 205 umount 446 uname 482 Unicode 319, 396

console 306 polices 396 Unicode Transfer Format 320 unionfs 420 Unix 5, 6 unix2dos 234 unzip 196 updatedb 190 update-grub 463 update-rc.d 227, 478 Upstart arrt 226 dmarrage 226 USB 328 usbfs 419 useradd 310 username.map 612 usernetctl 511 users-admin 309 UTC (Universal Time, Coordinated) 307 UTF-16 320 UTF-8 320 Utilisateurs 310 administration 308, 309 changement didentit 219 changement de groupe 205 commandes, rfrence 660 consolehelper 220 crer 308 gksudo 221 groupes 205 groups 205 newgrp 205 root 45, 219 sudo 220 UUID 407, 423, 435, 446 ext3 431 reiserfs 434 vol_id 446 xfs 435

V
Variable denvironnement $DISPLAY 220 $PATH 214

INDEX

695
numros de ligne 260 onglet 259 quitter 253 recherche de texte 258 caractres spciaux 258 recherche incrmentale 258 recherche et remplacement de texte 258 saisie efcace des commandes 260 sauvegardes 261 souris 261 suppression de texte 253, 255 tampon 259 texte continu 257 trucs et astuces 260 VirtualBox 629 Additions Clients 630 hte 630 installation 630 invits 630 prrequis 630 rpertoires partags 632 versions 629 complte 629 Open Source Edition 629 Virtualisation 623 32 et 64 bits 625 AMD-V 624 applications 623 au niveau du systme dexploitation 624 carte graphique 626 comparaison 627 compatibilit des machines virtuelles 627 complte 624 disques durs 625 change de donnes entre lhte et les invits 627 mulation 624 gestion du matriel 625 heure 626 hte 624 Intel VT 624 invit 624 KVM 632 lecteur CD/DVD 625 chier ISO 625 machine virtuelle 624 mmoire vive 625 paravirtualisation 624 prise en charge matrielle 624 priphriques externes 626 presse-papiers 627 processeur 625 QEMU 632 rseau 626 carte rseau virtuelle 626 NAT 626 rseau interne 626 son 626 techniques 624 USB 626 VirtualBox 629 VMware 628 Xen 637 VMware 134, 628 comparatif 629 Player 628 Server 628 Workstation 628 VoIP 79 vol_id 446 Vorbis 161 vorbiscomment 164 vorbis-tools 164

$PS1 285 VerrMaj 380 VerrNum 379 VESA 376 VFAT 417, 435 /etc/fstab 437 formatage 436 mkdosfs 436 VGA, modes 377 vgcreate 453 vi Voir vim Vido 157 lecteurs 157 Vidoprojecteur 383 conguration minimale 384 conguration multicrans 385 vim 251 changement de mode 253 commandes Linux 261 compltement automatique 257 copie de texte 256 correction des fautes de frappe 255 dplacement du curseur 254 dition de plusieurs chiers 259 enregistrement 253 de la position du curseur 255 espaces et tabulations 261 fentre 259 indentation 257 insertion multiple de texte 255 macros 261 marquage de texte 256 mode graphique 251 insertion 252 normal 252 visuel 256 nouveau chier 259

W
WAV 160 Webmin 302 wget 246 exemples 246 whereis 189 which 49, 189

696

LINUX

Wi-Fi 512 adaptateur 514 canal 515 conguration 524 ESSID 515 rmware 518 Managed Key 517 mode ad-hoc 515 mode gr 515 mode infrastructure 515 mode matre 515 NWID 515 pilote 518 point daccs 514 pont 514 PSK (Pre-Shared Key) 517 routeur 514 scurit 516, 575 SSID 515 WEP 516 Wireless-Tools 518 WPA 516, 521 WPA2 516, 521 Windows accs une partition ext3 432 chargeur damorage 460 dmarrer avec GRUB 467 MBR 460 pilote ext 433 problme de dmarrage 43 programmes sous Linux 617 problmes 618 Wine 618 rduction de la partition 32 Samba 603 Windows Vista NTLMv2 611 partitionnement 408 Samba 611 Windows XP, Xen 651 Wine 618 Cedega 622 conguration 618 CrossOver 621 drivs commerciaux 621 ies4linux 620

Internet Explorer 620 lancer un programme Windows 618 presse-papiers 620 transferts de donnes 620 winecfg 618 winecfg 618 winmodem 534 dtecter 534 scanModem 534 WINS 604 WLAN 512 wlann (interface) 521 WMA 161 WMV 162 wodim 199 workbone 164 wpa_supplicant 521 Writer (OpenOfce) 122

X
X 357, 385 3D 387 tester 388 AIGLX 392 anti-crnelage des polices conguration 399 arrt 362 bureau 3D 358, 389 AIGLX 392 virtuel 358 caractre tranger, saisie 380 clavier 377 conguration 377 disposition 379 gnome-keyboardproperties 381 modle 378 touche Compose 380 spciales 379 VerrMaj 380 VerrNum 379 Xkb 377 Xmodmap 377, 380 xorg.conf 378 Compiz Fusion 393

conguration 364 minimale 365 multi-crans 385 xorg.conf 365 connexion automatique 63 copier-coller 48 dmarrage automatique 43, 362 dmarrer manuellement 363 dsactivation du dmarrage automatique 362 DRI 387 droits daccs 388 cran virtuel 357 mulation du 3e bouton de la souris 382 framebuffer 377 gestionnaire de bureau 358 gestionnaire de fentre 358 GLX 387 glxgears 389 glxinfo 388 graphismes 3D 387 tester 388 journalisation 363 libGL 387 modes graphiques 371 modules dextension 357 OpenGL 387 pav tactile 382, 383 Synaptics 383 pilotes 360 ATI/AMD 372 ati 372 atimisc 372 r128 372 radeon 372, 373 radeonhd 372, 374 framebuffer 377 Intel 374 conguration 374 rsolution de lcran 374 NVIDIA 375 nv 375 nvidia 375 non libres 360 VGA 377 VESA 376

INDEX

697
/etc/fstab 649 administration 655 administration graphique 656 applications 637 architecture 638 carte graphique 642 conguration 646, 654 console 653 dmarrage automatique 656 disque dur 642 dom0 638 conguration 646 initrd du domU 649 interfaces rseau 642 noyau du domU 649 domaines 638 domU 639 cloner 651 conguration 649, 654 console 653 console texte 642 cration 646 dmarrage 650 automatique 656 exemple dinstallation 648 Fedora 648 heure 651 image prinstalle 647 initrd 648 installation de la distribution 648 installation du systme 647 interaction 652 noyau 648 SDL 642, 653 VNC 643, 654 Windows XP 651 chier image 643 formats 643 gestion du matriel 640 GRUB 645 HVM 638, 651 InitV 656 installation 645 noyau 648 paravirtualisation 638 problmes frquents 651 rseau 640 restrictions 639 SDL 653 virtualisation matrielle 638 VNC 654 Windows XP 651 xenblk 642 xend 641, 646 xend-cong.sxp 646 xenman 656 xentop 656 xm 650, 655 xend 641 rseau 641 xend-cong.sxp 646 xenman 656 xentop 656 xev 400 xfs 416, 434 /etc/fstab 435 cration dun systme de chiers 435 label 435 mkfs.xfs 435 redimensionnement 435 rparation du systme de chiers 435 vrication du systme de chiers 435 xfs_admin 435 xfs_check 435 xfs_growfs 435 xfs_admin 435 xfs_check 435 xfs_growfs 435 xfs_repair 435 xfs_xfs_repair 435 XGL 391 comparaison avec AIGLX 392 prise en charge des pilotes graphiques 391 xine 169

polices 394 raccourci clavier 47 redmarrage 362 rsolution 368 pilote Intel 374 saisie de caractres trangers 380 serveur 357 souris 48, 382 3e bouton 382 molette 382 pav tactile 383 Synaptics 383 touchpad 383 ZAxisMapping 382 startx 363 Synaptics 383 terminer 217 touche Compose 380 exemples 381 touchpad 383 TwinView 376 version 364 VESA 376 vidoprojecteur 383 conguration minimale 384 conguration multicrans 385 xev 400 Xinerama 358, 369 xkill 400 xlsfonts 400 xmodmap 400 xorg.conf 365 xrandr 400 xset 400 xterm 400 ZAxisMapping 382 Xandros 13 XCF (format) 151 XChat 79 XEmacs Voir Emacs Xen 637

698

LINUX

xine-check 169 Xinerama 358, 369, 385 xinetd 561 /etc/services 562 arrt 562 conguration 562 dmarrage 562 scurisation 563 service 562 xinetd.conf 562 xinetd.d 562 syntaxe des chiers 562 xinetd.conf 562 xinetd.d 562 syntaxe des chiers 562 Xkb 377 xkill 217, 400 xlsfonts 400 xm 650, 655 xmms 169 Xmodmap 377, 380, 400 xorg.conf carte graphique 367 clavier 378

conguration minimale 365 cran 366 modes graphiques 371 moniteur 366 nombre de couleurs 368 pilote 367 rsolution 368 sections 365 Device 367 Files 370, 397 Input Device 378 Module 370 Monitor 366 Screen 368 Display 368 ServerFlags 371 ServerLayout 369 Xinerama 369 XPI 85 xrandr 400 XSane 148 xset 400 xterm 174, 400 Xubuntu 668 XV 163 XviD 161

XWindow 357 systme 357

Y
Yum 344 /etc/yum.conf 345 conguration 345 conits de verrous 345 dpt de paquetage 346 exemples 346 mise jour de la distribution 346 mises jour automatiques 347 paquetages de code source 347 yumdownloader 347 Yumex 347

Z
Zeroconf 528 zip 195

Le Campus
8e dition

Table des matires


Quest-ce que Linux ? Installation Premiers pas sous Linux Gnome KDE Navigateurs Internet (Firefox, Konqueror) E-mail (Thunderbird, Evolution, Kontact) OpenOffice Appareils photo numriques, numrisation, gestion des photos Gimp Audio et vido La console Gestion des fichiers Gestion des processus Convertisseurs graphiques, audio et texte Outils rseau Vim Emacs et Xemacs Bash Configuration de base Gestion des logiciels et des paquetages Systme XWindow Administration du systme de fichiers Dmarrage du systme Noyau et modules Configurer laccs rseau (rseau local, Wi-Fi) Accs Internet Passerelle Internet (mascarade et DHCP) Scurit du rseau Serveur de rseau local (CUPS, NFS et Samba) Lancer des programmes Windows (Wine, CrossOver) Virtualisation avec VMware, VirtualBox, QEMU et KVM Xen Rfrences thmatiques Sources dinformations

Linux
Installation, configuration et applications
La bible de lutilisateur Linux enfin traduite !
Vritable outil de rfrence depuis plus de dix ans, cet ouvrage exceptionnel vous accompagnera au quotidien dans la dcouverte et la matrise de Linux. Que vous soyez dbutant ou confirm, vous y trouverez tout ce que vous avez besoin de savoir : installation, distributions, configuration du systme et des rseaux, outils et applications disponibles, mais galement commandes shell, gestion des paquetages, systmes de fichiers, noyau, outils dadministration, virtualisation, etc. Il couvre les distributions les plus rpandues, la majeure partie de leurs usages domestiques et les dernires nouveauts du monde Linux : bureaux 3D, KDE4, Xen. Une rfrence thmatique des commandes est fournie en fin douvrage. Ce guide, complet et accessible, vous donnera toutes les cls pour utiliser et surtout comprendre Linux, et fera de vous un inconditionnel de ce systme dexploitation libre et sr.
propos de lauteur
Michael Kofler a dj aid plusieurs gnrations dutilisateurs faire leurs premiers pas sous Linux. Ses ouvrages sur Linux, sur PHP 5 et sur MySQL font partie des livres les plus lus dans le domaine du logiciel libre.

Niveau : Tous niveaux Catgorie : Systme dexploitation Configuration : PC

Pearson Education France 47 bis, rue des Vinaigriers 75010 Paris Tl. : 01 72 74 90 00 Fax : 01 42 05 22 17 www.pearson.fr

ISBN : 978-2-7440-4088-7

You might also like