Académique Documents
Professionnel Documents
Culture Documents
Linux (WWW E-Booksland Com) PDF
Linux (WWW E-Booksland Com) PDF
8e édition
Linux
Installation, configuration
et applications
Michael Kofler
Linux Livre Page I Mardi, 23. septembre 2008 1:05 13
Linux
Installation, configuration
et administration des systèmes
Linux
Linux Livre Page II Mardi, 23. septembre 2008 1:05 13
Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de vous fournir une
information complète et fiable. Cependant, Pearson Education France n’assume de responsabilités, ni pour
son utilisation, ni pour les contrefaçons de brevets ou atteintes aux droits de tierces personnes qui pourraient
résulter de cette utilisation.
Les exemples ou les programmes présents dans cet ouvrage sont fournis pour illustrer les descriptions théo-
riques. Ils ne sont en aucun cas destinés à une utilisation commerciale ou professionnelle.
Pearson Education France ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages
de quelque nature que ce soit pouvant résulter de l’utilisation de ces exemples ou programmes.
Tous les noms de produits ou autres marques cités dans ce livre sont des marques déposées par leurs
propriétaires respectifs.
Publié par Pearson Education France Titre original : Linux - Installation, Konfiguration,
47 bis, rue des Vinaigriers Anwendung
75010 PARIS
Tél. : 01 72 74 90 00
www.pearson.fr Traduit et adapté de l’allemand
par Isabelle Hurbain-Palatin et Sandrine Burriel
Aucune représentation ou reproduction, même partielle, autre que celles prévues à l’article L. 122-5 2˚ et 3˚ a) du code
de la propriété intellectuelle ne peut être faite sans l’autorisation expresse de Pearson Education France ou, le cas
échéant, sans le respect des modalités prévues à l’article L. 122-10 dudit code.
No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including
photocopying, recording or by any information storage retrieval system, without permission from Pearson Education,
Inc.
Linux Livre Page III Mardi, 23. septembre 2008 1:05 13
Linux
Installation, configuration
et administration des systèmes
Linux
Michael Kofler
Linux Livre Page IV Mardi, 23. septembre 2008 1:05 13
Linux Livre Page V Mardi, 23. septembre 2008 1:05 13
Préface ...................................................................................................................... 1
Conception ..................................................................................................... 2
Ce que vous ne trouverez pas dans cet ouvrage............................................. 3
Styles utilisés dans ce livre ............................................................................ 3
2 Installation .............................................................................................................. 25
2.1 Prérequis ........................................................................................................ 25
32 ou 64 bits ? ............................................................................................... 26
2.2 Démarrage de l’installation de Linux .............................................................. 27
2.3 Bases du partitionnement du disque................................................................ 28
Systèmes de fichiers ...................................................................................... 30
Nom des partitions......................................................................................... 30
Linux Livre Page VI Mardi, 23. septembre 2008 1:05 13
VI LINUX
4 Gnome ...................................................................................................................... 51
4.1 Conception du bureau..................................................................................... 52
4.2 Nautilus .......................................................................................................... 56
Graver des CD et des DVD ........................................................................... 60
Accéder aux répertoires réseau...................................................................... 60
4.3 Programmes Gnome ....................................................................................... 62
4.4 Trucs et astuces............................................................................................... 63
5 KDE ........................................................................................................................... 67
5.1 Conception du bureau..................................................................................... 68
5.2 Dolphin........................................................................................................... 71
5.3 Konqueror ...................................................................................................... 72
Utilisation en tant que gestionnaire de fichiers ............................................. 72
Accès aux répertoires réseau ......................................................................... 74
Adresses spéciales ......................................................................................... 74
5.4 Applications KDE ........................................................................................... 75
5.5 Trucs et astuces............................................................................................... 77
Linux Livre Page VII Mardi, 23. septembre 2008 1:05 13
VIII LINUX
X LINUX
XII LINUX
XIV LINUX
XVI LINUX
XVIII LINUX
XX LINUX
Annexes
A Références thématiques ...................................................................................... 657
Gestion des fichiers ....................................................................................... 657
ACL (listes de contrôle d’accès) et EA (attributs étendus) ................................ 657
Recherche de fichiers..................................................................................... 658
Traitement de fichiers texte ........................................................................... 658
Compresser et archiver des fichiers ............................................................... 659
Graver des CD/DVD...................................................................................... 659
Convertisseurs ............................................................................................... 659
Gestion des programmes et des processus .................................................... 660
Gestion des utilisateurs et des groupes .......................................................... 660
Administration du système de fichiers .......................................................... 661
Gestion de paquetages ................................................................................... 662
Fonctions réseau ............................................................................................ 662
Administration de l’imprimante .................................................................... 663
Gestion du matériel ....................................................................................... 663
Noyau et modules .......................................................................................... 663
Démarrage et arrêt du système ...................................................................... 663
Terminal et console texte ............................................................................... 664
Aide en ligne ................................................................................................. 664
Divers............................................................................................................. 664
bash – Gestion des variables.......................................................................... 665
bash – Programmation ................................................................................... 665
bash – Commandes ........................................................................................ 665
Linux Livre Page XXI Mardi, 23. septembre 2008 1:05 13
Préface
Linux fait aujourd’hui partie, avec Microsoft Windows et Apple Mac OS X, des trois systèmes
d’exploitation les plus populaires et les plus importants sur le marché des ordinateurs per-
sonnels. Il a pu conquérir une part considérable du marché des serveurs, gagne lentement
mais sûrement en popularité sur le marché des ordinateurs de bureau et fait fonctionner de
nombreux systèmes embarqués (des appareils complets ne ressemblant pas à des ordinateurs).
Votre routeur ADSL ou Wi-Fi est probablement basé sur Linux.
Le préjugé selon lequel Linux serait difficile à utiliser est aujourd’hui dépassé. Son utilisa-
tion est évidemment différente de celle de Windows, mais le saut conceptuel n’est pas plus
important qu’entre Windows XP et Windows Vista, par exemple. De plus, la plupart des
distributions Linux sont gratuites et prouvées plus sûres que Windows. Vous n’aurez ainsi
aucun problème de virus ou de chevaux de Troie.
Cet ouvrage Si Linux est aussi simple à utiliser, pourquoi ce livre contient-il plus de 700 pages ? Il y a
plusieurs raisons à cela :
• Linux fait plus que remplacer Windows sur les ordinateurs de bureau. Il fournit
d’innombrables fonctionnalités et applications supplémentaires, depuis l’automatisa-
tion des tâches quotidiennes à la configuration de serveurs réseau. Les concepts de navi-
gation web, de courrier électronique et de suite bureautique vous sont sans doute
familiers, mais ces thèmes plus complexes demandent un traitement plus fouillé.
• Il n’existe pas un Linux, mais plusieurs distributions Linux. Pour simplifier, une distri-
bution est un ensemble de programmes autour de Linux. Les plus connues regroupent
Debian, Red Hat, SUSE, Mandriva et Ubuntu.
Cette diversité a de nombreux avantages, mais aussi un inconvénient majeur : certains
détails dépendent de la distribution. Ce livre essaie de suivre une approche aussi indé-
pendante de la distribution que possible. Il est cependant impossible d’éviter de traiter
de temps à autre des différentes variantes : ce qui fonctionne d’une manière sous SUSE
peut fonctionner différemment sous Debian.
• Pour finir, mon but est que vous utilisiez Linux, mais surtout que vous le compreniez.
Cet ouvrage peut sembler difficile d’accès : vous n’y trouverez pas de captures d’écran
légendées "Cliquez ici". L’objectif est plutôt d’expliquer les fondations de Linux et de
vous rapprocher de la philosophie Unix/Linux.
Si vous n’avez pas encore essayé Linux, il est temps de procéder à cette première expérience.
Linux Livre Page 2 Mardi, 23. septembre 2008 1:05 13
2 LINUX
Si vous le connaissez déjà, cet ouvrage répondra à de nombreuses questions et vous fera
évoluer vers le statut d’utilisateur avancé. Lorsque vous l’aurez lu, vous saurez créer des
règles de pare-feu avec iptables et mettre en place des machines virtuelles avec Xen. Vous
serez à l’aise avec Linux au point de pouvoir lire et comprendre n’importe quel ouvrage pro-
fessionnel sur Linux ou Unix, qu’il s’agisse d’un livre sur la configuration d’un serveur de
courrier électronique ou sur l’administration de réseaux hétérogènes. En résumé, ce livre
vous offre les fondations de vos connaissances sur Linux.
J’utilise moi-même Linux depuis environ 15 ans et je ne l’ai jamais regretté. Permettez-moi
de vous transmettre mon enthousiasme pour Linux !
Michael Kofler, juillet 2007
Conception
Ce livre se découpe en 6 parties, complétées de deux annexes :
• La Partie 1 (Chapitres 1 à 5) sert d’introduction et vous accompagne dans vos premiers
pas sous Linux, depuis l’installation jusqu’à l’utilisation des systèmes graphiques
Gnome et KDE.
• La Partie 2 (Chapitres 6 à 11) décrit les applications du système Linux. Vous trouverez
des trucs et astuces associés à la navigation web, aux clients de courrier électronique, au
travail bureautique avec OpenOffice.org, au tri des photos ou encore à la retouche photo
avec Gimp.
• La Partie 3 (Chapitres 12 à 19) s’intéresse aux fondations de Linux et à ses outils. Le livre
devient alors plus technique. Vous découvrirez comment parcourir le système de
fichiers, convertir les documents et les images dans un autre format, et utiliser efficacement
l’interpréteur de commandes bash.
• La Partie 4 (Chapitres 20 à 25) traite de la configuration. Que vous ayez des problèmes
avec votre matériel ou des besoins très spécifiques, vous apprendrez à administrer votre
système de fichiers, configurer votre système graphique (y compris les graphismes 3D
et le bureau 3D), installer et actualiser des paquets, modifier le démarrage de votre
système, ainsi qu’ajuster et compiler le noyau et ses modules.
• La Partie 5 (Chapitres 26 à 30) explique la configuration du réseau, depuis le client
(réseau local, réseau sans fil, modem, RNIS, ADSL) jusqu’au serveur (passerelle Internet,
DNS, NFS, Samba, etc.). Nous parlerons aussi de la sécurité et en particulier des pare-
feu qui empêchent toute intrusion dans votre réseau depuis l’extérieur.
Linux Livre Page 3 Mardi, 23. septembre 2008 1:05 13
PRÉFACE 3
4 LINUX
sudo Dans certaines distributions (par exemple, Ubuntu), le compte root est désactivé. Dans ce
cas, les commandes système sont lancées à l’aide de sudo. Vous devez alors donner votre
mot de passe, ce qui ne sera pas indiqué systématiquement dans le livre. Vous trouverez
plus d’informations sur sudo au Chapitre 14.
utilisateur$ sudo /etc/init.d/nfs restart
Password: *********
Commandes Si certaines commandes sont trop longues pour tenir sur une seule ligne, elles sont écrites
sur plusieurs
lignes sur plusieurs lignes, qui sont séparées par le caractère \. Vous pouvez dans ce cas taper la
commande en une ligne sans les caractères \ ou la séparer en plusieurs lignes comme dans
le livre. \ peut aussi être utilisé sous Linux comme caractère permettant d’exécuter une
commande de plusieurs lignes.
Linux Livre Page 5 Mardi, 23. septembre 2008 1:05 13
1.1 Introduction
Linux est un système d’exploitation comparable à Unix. La différence majeure
tient au fait que Linux peut être copié avec l’intégralité de son code source (pour
plus de détails sur les conditions sous lesquelles Linux et les programmes qu’il
contient peuvent être redistribués, voir section 1.4).
Système Un système d’exploitation est un ensemble de programmes prenant en charge les
d’exploitation
fonctions les plus basiques d’un ordinateur : l’interface entre l’utilisateur et la
machine (gestion du clavier, de l’écran, etc.), ainsi que la gestion des ressources
du système (capacité mémoire, disque dur, etc.). Un système d’exploitation est
nécessaire pour lancer des applications et enregistrer des données dans un fichier.
Au cours de l’histoire de l’informatique, différents systèmes d’exploitation ont été
développés. Jusqu’ici, vous avez probablement été en contact avec l’un des
nombreux systèmes d’exploitation Windows (3.1, 95, 98, SE, ME, NT, 2000, XP,
2003, Vista), voire avec leur prédécesseur, MS-DOS. On peut citer d’autres sys-
tèmes d’exploitation, comme ceux des ordinateurs Apple et des ordinateurs
déjà oubliés, Commodore Amiga et Atari ST.
Unix Bien avant tous ces systèmes d’exploitation, il y avait Unix. D’un point de vue
historique, ce dernier est considéré comme un système d’exploitation très
ancien. Pourtant, il s’agit d’un système moderne, équipé dès le départ de fonc-
tionnalités qui ne sont apparues sous une forme comparable chez Microsoft que
bien plus tard (avec Windows NT). Unix fournissait déjà un environnement
multitâche, une séparation des processus (et donc une plus grande stabilité),
des droits d’accès clairs pour les fichiers (et donc davantage de sécurité dans le
cadre d’un système multi-utilisateur), des fonctions réseau sophistiquées, etc.
Mais Unix n’offrait, il y a encore une ou deux décennies, qu’une interface
Linux Livre Page 6 Mardi, 23. septembre 2008 1:05 13
6 LINUX
utilisateur spartiate et avait des besoins matériels importants. C’est pourquoi Microsoft ou
Apple, malgré des systèmes d’exploitation moins spectaculaires, ont eu nettement plus de
succès qu’Unix, qui est resté cantonné aux stations de travail coûteuses en environnement
scientifique ou technique.
Linux Linux n’est en théorie qu’une nouvelle variante d’Unix. On compte au nombre de ses parti-
cularités la mise à disposition gratuite de son code source et la prise en charge de matériels
très divers. La large diffusion de Linux ces dernières années, ainsi que l’explosion d’Internet
et des besoins associés en serveurs stables, extensibles et performants ont offert une nouvelle
jeunesse au monde d’Unix, que l’on avait probablement enterré prématurément.
Unix est ici utilisé comme un terme générique qui regroupe divers systèmes d’exploitation dérivant
d’Unix. Leur nom se termine parfois en -ix (Irix, Xenix, etc.), mais ce n’est pas une règle absolue (HPUX,
Solaris, etc.). Ces noms sont généralement des marques déposées par leurs détenteurs respectifs. Unix
est lui-même une marque déposée. Les droits associés ont changé plusieurs fois de propriétaire ces
dernières années.
Vous pouvez installer plusieurs systèmes d’exploitation en parallèle sur votre ordinateur. Le menu de
démarrage vous offre alors le choix de démarrer l’un de ces systèmes, qu’il s’agisse de Windows, de
Linux ou d’un autre système d’exploitation. Vous pouvez de plus accéder à votre système de fichiers
Windows sous Linux.
Noyau
Le terme Linux ne recouvre, strictement parlant, que le noyau. Il s’agit de la partie la plus
interne d’un système d’exploitation, qui contient les fonctions les plus élémentaires comme
la gestion du disque, la gestion des processus et le contrôle du matériel. Les informations
contenues dans ce livre se basent sur le noyau 2.6.
Comme Linux est toujours activement développé, de nouvelles versions du noyau voient
constamment le jour. Mais n’ayez crainte : lorsque le noyau Linux fonctionne de manière
stable sur votre ordinateur, il est rare de devoir le modifier. La plupart des distributions
s’occupent des mises à jour de sécurité nécessaires.
Nous parlerons plus en détail du noyau et de ses caractéristiques au Chapitre 25. Nous
décrirons également comment compiler votre propre noyau.
Attention à ne pas confondre les différents numéros de version de Linux : le noyau en possède
un, tout comme les bibliothèques, les compilateurs, les programmes, les distributions, etc.
Tous ces numéros de version sont indépendants les uns des autres. La meilleure description
de votre système Linux est le nom et le numéro de version de votre distribution, par exemple
Ubuntu 8.04.
Caractéristiques du noyau
• Linux est un système multitâche (plusieurs processus peuvent fonctionner en même
temps), multi-utilisateur (plusieurs utilisateurs peuvent l’utiliser en même temps), qui
prend en charge la pagination (le transfert de données de la mémoire au disque dur
Linux Livre Page 7 Mardi, 23. septembre 2008 1:05 13
lorsqu’il n’y a plus assez de RAM à disposition), les bibliothèques partagées (celles qui
contiennent les fonctions du système ne sont chargées qu’une seule fois, même lorsque
plusieurs processus les utilisent), la communication interprocessus et le multitraitement
(souvent appelé SMP pour Symmetric Multi Processing, qui recouvre l’utilisation de
plusieurs processeurs ou cœurs de processeurs).
• Linux permet d’exploiter pratiquement toute la gamme de matériel PC. En dehors des
plateformes de type Intel, il existe également des versions pour d’innombrables archi-
tectures. Linux fonctionne aussi sur des stations de travail Sun, des ordinateurs Apple,
etc. Linux devient également de plus en plus populaires sur les systèmes embarqués,
qui ne sont pas à proprement parler des PC. Si vous possédez par exemple un routeur
Wi-Fi, il est possible qu’il tourne sous Linux !
• Linux permet d’utiliser de nombreux systèmes de fichiers. Le système ext3 est un des
plus fréquents. Les fonctions de journalisation s’assurent que le système peut être redé-
marré très rapidement après un arrêt inopiné (comme lors d’un orage). Les pertes de
données sont même dans ce cas improbables.
• Linux fournit également une large palette de protocoles réseau (TCP/IP, y compris
IPv6, IPsec, PPP, etc.).
8 LINUX
1.2 Distributions
Nous n’avons pas encore répondu complètement à la question initiale : "Qu’est-ce que
Linux ?". La plupart des utilisateurs s’intéressent peu au noyau, tant qu’il fonctionne et qu’il
prend en charge le matériel présent. Pour eux, le terme Linux regroupe un ensemble de pro-
grammes, généralement fournis par la distribution. C’est sous cette acception qu’est généra-
lement reconnu Linux : un noyau, auquel sont ajoutés de nombreux petits outils, les
environnements de bureau KDE et Gnome, différents paquetages de bureautique, le pro-
gramme graphique Gimp, d’innombrables langages de programmation et au moins autant
de programmes serveur (serveur web, serveur de courrier électronique, serveur de fichiers,
serveur d’impression, etc.).
Cette unité composée du noyau et de ses programmes complémentaires est appelée distri-
bution. Elle permet d’installer Linux rapidement et confortablement. Les distributions sont
pour la plupart disponibles à l’achat sous forme de CD ou de DVD et peuvent généralement
être téléchargées sur Internet. En raison de la taille des données (souvent plusieurs gigaoc-
tets), la copie d’une distribution ou son installation directement sur le réseau demande une
excellente connexion Internet.
Les distributions se différencient principalement sur ces points :
• Étendue et actualité. Le nombre, le choix et l’actualité des programmes et des bibliothèques
fournis diffèrent selon les distributions. Certaines se rengorgent du nombre de CD fournis.
Linux Livre Page 9 Mardi, 23. septembre 2008 1:05 13
Pour éviter aux utilisateurs de devoir changer trop souvent de CD lors de l’installation
ou des mises à jour ultérieures, certaines distributions fournissent également des DVD.
• Outils d’installation et de configuration. Les programmes d’installation, de configura-
tion et de maintenance du système aident à modifier les centaines de fichiers de configu-
ration du système de manière simple. Des outils fonctionnels pour l’installation et la
configuration représentent d’énormes économies de temps.
• Configuration du bureau (KDE, Gnome). La plupart des distributions offrent le choix à
l’utilisateur entre KDE, Gnome et d’éventuels autres gestionnaires de fenêtres. Certai-
nes différences existent également dans la configuration de détail de KDE ou de Gnome,
touchant à l’aspect extérieur, à l’ordre des menus, etc.
• Reconnaissance et configuration du matériel. Linux gère la majorité du matériel PC. Il est
donc agréable que les distributions détectent automatiquement le matériel et permettent
de l’utiliser immédiatement. Si cela ne fonctionne pas, il faut bien souvent en passer par
une configuration manuelle, ce que la plupart des utilisateurs de Linux redoutent.
• Systèmes de paquetages. On administre les applications grâce aux paquetages. Le sys-
tème de paquetages influe sur la facilité d’installation de programmes supplémentaires
et de mise à jour des programmes. Il existe principalement trois systèmes de paquetages
incompatibles entre eux : RPM (utilisé entre autres chez Mandriva, Red Hat et SUSE),
DEB (Debian, Ubuntu) et TGZ (Slackware).
• Maintenance et mises à jour de sécurité. Linux est un système très dynamique. Même
après la sortie d’une distribution, de nombreuses nouveautés importantes apparais-
sent : des failles de sécurité sont souvent découvertes dans divers programmes. Une
bonne distribution se différencie par le fait qu’il existe un système de mises à jour semi-
ou entièrement automatique pour les installer sans effort.
La période pendant laquelle les mises à jour de sécurité sont disponibles prend une
importance croissante. La règle de base est généralement celle-ci : plus la distribution
est chère, plus cette période est longue.
Voici quelques exemples : pour Fedora, cette période est d’environ 13 mois (un mois après la
sortie des deux versions suivantes) ; pour Ubuntu Linux, 18 mois en circuit normal et trois à
cinq ans pour les versions LTS (actuellement 6.04 et 8.04) ; pour openSUSE, deux ans ; pour
Red Hat Enterprise Linux, cinq ans ; et pour Novell/SUSE Enterprise Server, cinq ans.
Ces données étaient valables en 2007. Chercher la période de disponibilité des mises à jour
sur le site web des distributions est néanmoins fastidieux. En dehors des produits entreprise
les plus chers, aucune distribution ne veut apparemment indiquer la durée de la période
d’assistance. Mais en principe, vous ne pouvez utiliser une distribution de manière sûre
que pendant le laps de temps au cours duquel vous pouvez obtenir des mises à jour. Après
cette période, vous devez passer à une version plus récente pour des raisons de sécurité.
• Disponibilité des sources de paquetages. À quoi bon bénéficier du meilleur système
de paquetages et des mises à jour les plus actuelles si le dépôt de paquetages sur Inter-
net n’est disponible que la moitié du temps ou s’il est horriblement lent ? Il est malheu-
reusement difficile d’obtenir des références sur ce point. Les dépôts de paquetages de
petites distributions moins répandues sont souvent plus facilement accessibles que ceux
des grosses distributions, qui distribuent des mises à jour à des milliers d’utilisateurs
Linux Livre Page 10 Mardi, 23. septembre 2008 1:05 13
10 LINUX
La concurrence des distributions pour leur développement est stimulante ; installer des programmes non four-
nis par la distribution (en particulier, les programmes commerciaux) peut s’avérer délicat. Une bibliothèque
manquante ou trop ancienne est souvent la raison pour laquelle un programme ne se lance pas. Éliminer ce
type de problèmes est presque impossible, en particulier pour les débutants. Aujourd’hui, certaines entreprises
n’assurent l’assistance sur leurs produits que lorsqu’ils sont utilisés avec une distribution donnée (et la
distribution choisie diffère bien évidemment d’une entreprise à l’autre).
Pour éviter ce genre de problèmes, le projet Linux Standard Base a été créé. La spécification LSB définit
des règles qui sont un dénominateur commun à toutes les distributions qui font partie du projet LSB :
http://www.linuxbase.org.
12 LINUX
Une nouvelle version de Fedora sort environ tous les six mois. Les mises à jour sont fournies
jusqu’à un mois après la sortie des deux versions suivantes. La durée de vie d’une version
est donc d’environ 13 mois, ce qui est plutôt court. Red Hat fait clairement remarquer que
Fedora ne vise pas une utilisation commerciale. Au cours des dernières années, elle s’est éta-
blie comme une distribution moderne et incroyablement robuste, dont la courte durée de
mises à jour est le principal défaut.
Pour Red Hat, Fedora est une manière de tester les nouvelles fonctionnalités sans mettre en
péril la stabilité des versions entreprise. Les programmes qui font leurs preuves sont plus
tard intégrés à ces dernières. Pour les fans de Linux, l’intérêt de Fedora réside dans le fait
qu’elle joue un rôle de précurseur dans le développement technique de Linux. Les nouvelles
fonctionnalités de Linux se trouvent bien souvent d’abord dans Fedora, avant d’être reprises
dans les autres distributions.
Gentoo − Gentoo vise les développeurs et les utilisateurs qui désirent une flexibilité et un contrôle
www.gentoo.
org optimal de leur distribution. Sa particularité est que chaque paquetage de programme peut
être compilé et ainsi optimisé pour le matériel sur lequel il fonctionne. Les professionnels de
Linux peuvent bien sûr compiler leurs propres programmes sur n’importe quelle distri-
bution, mais Gentoo les assiste très bien grâce à des outils de configuration adaptés.
Knoppix − La spécificité de Knoppix est qu’elle ne doit pas nécessairement être installée sur le disque
www.knoppix.
net dur. Elle fonctionne directement depuis le live CD. Knoppix dérive de Debian. Parallèle-
ment au système original assemblé par Klaus Knopper, il existe d’innombrables variantes,
qui diffèrent de par les programmes (par exemple, pour des applications scientifiques) ou
les langues proposées (espagnol, japonais, etc.). La version la plus connue de Knoppix en
français, composée par le groupe Linux Azur, se nomme Kaella.
Il existe de nombreux autres systèmes "live", tels que Kantonix, Slax, Ubuntu, Mandriva
One, etc. C’est cependant Klaus Knopper qui a aidé à répandre ces systèmes.
Mandriva − Mandriva provient de la fusion entre Mandrake Linux (France) et Connectiva (Brésil). Man-
www.mandri
va.com drake Linux était l’une des plus grandes distributions aux côtés de Red Hat et de SUSE.
Aujourd’hui, sa popularité tend à décroître en dehors des pays d’origine (Mandriva reste
néanmoins très présente en France).
Novell − Novell, qui a acheté en novembre 2003 l’entreprise allemande SUSE, est actuellement le
www.novell.
com/linux numéro 2 du marché commercial de Linux. Tout comme Red Hat, Novell suit deux chemins.
D’une part, diverses distributions à destination des entreprises sont commercialisées sous
les noms Novell et SUSE. D’autre part, la distribution openSUSE est gratuite et vise les utili-
sateurs privés et les développeurs de Linux (voir ci-après).
Au printemps 2006, Novell a établi un accord avec Microsoft qui la protège des procès liés aux
brevets de Microsoft. Ce qui semble à première vue un grand pas en avant pour Linux est en fait
considéré d’un œil critique par de nombreux développeurs de logiciels libres : l’accord Novell/
Microsoft est-il le préalable à des procès sur les brevets envers d’autres entreprises Linux ?
Red Hat − Red Hat est l’entreprise Linux la plus réputée sur le plan international. Ses distributions
www.redhat.
com dominent le marché américain. Le système de paquetages basé sur le format RPM (déve-
loppé par Red Hat) a été repris par de nombreuses distributions.
Red Hat est particulièrement connue des entreprises. Les versions entreprise (RHEL ou Red
Hat Enterprise Linux) sont comparativement plus chères, mais offrent une grande stabilité et
Linux Livre Page 13 Mardi, 23. septembre 2008 1:05 13
une politique de mises à jour valable cinq ans. Les développeurs et les utilisateurs enthousias-
tes qui cherchent un système Red Hat gratuit peuvent se tourner vers Fedora (voir ci-dessus).
Slackware − Lancée en 1994, Slackware est l’une des plus anciennes distributions Linux. À l’époque, les
www.slack-
ware.com CD n’existaient pas et étaient remplacés par des douzaines de disquettes. Aujourd’hui,
Slackware ne parvient plus à concurrencer les autres distributions en ce qui concerne la
maintenance et l’installation. Elle conserve malgré tout de nombreux fans, qui préfèrent
la continuité et la stabilité à de jolis outils d’installation et de configuration.
SUSE/ SUSE était, jusqu’à son rachat par Novell, l’entreprise dominante du marché Linux euro-
openSUSE −
www.opensu péen, en particulier dans les pays germanophones. Cette marque déposée est utilisée pour
se.org diverses distributions commerciales de Novell. Il existe également la distribution gratuite
openSUSE, qui vise les utilisateurs privés et les développeurs de Linux.
Comme Fedora, openSUSE sert de laboratoire de développement et de test pour les ver-
sions entreprise. Le processus de développement a été réorganisé en 2005. Depuis cette
date, les bêta-tests, les listes de discussion et la base de données de bogues, ainsi que la
distribution terminée sont accessibles gratuitement. Contrairement à Fedora, openSUSE
est toujours disponible en tant que boîte contenant un manuel d’utilisation et une assis-
tance. La période de mises à jour de deux ans se démarque également de celle de Fedora,
plus minimaliste.
Ubuntu Ubuntu est une distribution récente très intéressante. Lancée en octobre 2004, elle est
aujourd’hui la distribution Linux la plus populaire. Une nouvelle version sort tous les six
mois et peut être utilisée pendant au moins 18 mois.
Basée sur Debian, Ubuntu est plus simple d’utilisation. Le média d’installation est parti-
culièrement petit : un seul CD suffit. Au besoin, d’innombrables paquetages peuvent être
installés depuis Internet. Ubuntu, ainsi que ses mises à jour, sont disponibles gratuitement.
Elle est commercialement prise en charge par l’entreprise Canonical (fondée par le sud-
africain Mark Shuttleworth et dont le siège se situe sur l’île de Man).
Ubuntu est basée sur Gnome, mais présente de nombreuses variantes comme Kubuntu
(avec KDE), Xubuntu (avec XFCE comme gestionnaire de fenêtres), Edubuntu (pour les écoles)
et Ubuntu Server (spécialisé dans les applications serveur).
Xandros Xandros est une distribution commerciale basée sur Corel (Corel a tenté d’entrer dans le
marché Linux en 1999, mais a échoué ; Xandros a racheté Corel Linux). Grâce à une utilisa-
tion simplifiée, elle vise surtout les débutants et les personnes venant de Windows. De nom-
breux tests l’ont décrite comme la distribution la plus accessible aux utilisateurs. Certaines
versions contiennent CrossOver Office, qui permet l’installation et l’utilisation de Microsoft
Office sous Linux. Xandros a récemment fait beaucoup parler d’elle, du fait de son installation
par défaut sur les PC ultraportables EEE d’Asus.
Vous trouverez sur les pages suivantes un aperçu des distributions les plus populaires du moment, qu’elles
soient commerciales ou non : http://www.distrowatch.com/ ; http://lwn.net/Distributions/ ; http:/
/www.linuxhq.com/dist.html
Linux Livre Page 14 Mardi, 23. septembre 2008 1:05 13
14 LINUX
Distributions minimales
En plus des "grosses" distributions présentées dans la section précédente, il existe sur Inter-
net d’innombrables assemblages de systèmes miniatures (pouvant même tenir sur une dis-
quette !). Ces distributions se basent pour la plupart sur des versions du noyau plus
anciennes et plus petites. Elles sont conçues avant tout pour des tâches spécialisées, qu’il
s’agisse de maintenance (système de secours) ou de systèmes utilisables sans installation
(qui se lancent directement depuis une ou plusieurs disquettes ou un CD). Celles-ci sont
pratiques pour utiliser Linux sur un ordinateur qui ne vous appartient pas et sur lequel
vous ne voulez ou pouvez pas partitionner le disque.
Devil Linux Devil Linux est un exemple typique de petite distribution Linux, qui vise à construire un
pare-feu, un routeur ou une passerelle Internet. Elle fonctionne directement depuis un CD ;
les paramètres de configuration sont enregistrés sur une disquette ou sur une clé USB (le
disque dur est donc accessoire !). Les besoins matériels sont également très restreints : un
processeur compatible avec un Intel 486 et 32 Mo de RAM suffisent.
Damn Small Damn Small Linux est une autre distribution minimale populaire. Elle tient sur un mini-CD
Linux
(environ 50 Mo), mais fournit toutes les fonctions de base d’une distribution de bureau.
Problème du choix
À l’issue des travaux nécessaires à cet ouvrage et après avoir installé de nombreuses distri-
butions Linux, mon rêve d’assembler tous les avantages d’une distribution sans payer le
prix de leurs inconvénients reste inassouvi.
Par conséquent, il est difficile de recommander une distribution donnée. Les débutants sous
Linux peuvent néanmoins d’abord utiliser une distribution très répandue, comme Fedora,
openSUSE, Ubuntu ou Mandriva, car ils n’auront aucun problème à trouver des informations
sur Internet, dans des livres ou dans la presse. Il est donc plus simple d’obtenir de l’aide en cas
de problème. Les distributions éprouvées sont également un bon choix en ce qui concerne les
aides à l’installation ou à la configuration de matériels inhabituels ou non standard. Pour finir,
elles facilitent largement la recherche de paquetages complémentaires ou de mises à jour.
Les utilisateurs de distributions commerciales doivent décider s’ils sont prêts à payer pour une
assistance professionnelle. Dans ce cas, leur choix peut s’orienter vers les leaders du marché Red
Hat et Novell. Les alternatives gratuites regroupent par exemple Debian, Ubuntu (en particulier,
les versions LTS) et les clones de Red Hat (CentOS, Scientific Linux ou encore White Box Linux).
générale valide. Le résultat dépend du système pour lequel le programme a été optimisé,
des versions de Windows et de Linux, du matériel utilisé, etc.
Linux utilise Il est vrai que Linux peut fonctionner sur un PC 486 avec quelques mégaoctets de RAM.
moins de
ressources Mais dans cette configuration, il ne fonctionne qu’en mode texte, avec tout de même plus de
que Windows fonctionnalités qu’une version de Windows tournant sur le même ordinateur.
Les choses sont néanmoins différentes lorsqu’on compare une distribution récente de Linux
avec Windows XP. Pour travailler confortablement dans un environnement graphique, tous
deux ont des besoins matériels relativement similaires.
Linux tient cependant la comparaison par rapport à Windows Vista, qui nécessite pour son
interface graphique complète une configuration matérielle énorme. Les effets 3D du bureau
fonctionnent sous Linux sur des ordinateurs plus anciens. On peut certes s’interroger sur la
nécessité de ces effets graphiques, que ce soit sous Linux ou sous Windows. Mais, dans tous
les cas, ils sont impressionnants. Un bureau sans effets 3D sera probablement démodé dans
deux à trois ans.
Linux est Tous les systèmes d’exploitation souffrent de problèmes de sécurité. En général, Linux s’en
plus sûr que
Windows sort plutôt bien, mais on trouve encore des failles de sécurité présentes depuis plusieurs
années sous Linux et d’autres Unix, y compris dans les programmes réseau. La sûreté de
Linux dépend également de son utilisation :
• Dans le cadre d’une utilisation bureautique, Linux est à l’inverse de Windows pratique-
ment exempt de virus. Il n’y a eu jusqu’ici aucun virus notable, alors que sous Windows,
ils paralysent régulièrement des entreprises entières. La raison principale est que
l’administration des droits sous Linux empêche les applications courantes d’endomma-
ger gravement le système. À la différence de Windows, il est également déconseillé sous
Linux de lancer des programmes avec des droits d’administrateur système lorsque
ceux-ci ne sont pas strictement nécessaires.
• Lorsque Linux est utilisé comme serveur réseau ou Internet, la sécurité dépend large-
ment de la maintenance du système. Ces dernières années, presque tous les problèmes
de sécurité ont été corrigés avant que le risque de sécurité ne soit connu et puisse être
utilisé par des pirates. Si vous actualisez régulièrement les logiciels de votre ordinateur,
les intrus ont peu de chances de pouvoir pénétrer dans votre système. La plupart des
distributions fournissent des outils qui facilitent de telles mises à jour.
Les grosses distributions Linux offrent en général un système de mises à jour pour plusieurs
années. Vous actualisez ainsi les programmes déjà installés dès qu’il existe une version plus
récente ou plus sûre. Le système de mises à jour fonctionne souvent très bien, mais nécessite
une bonne connexion à Internet : pour la plupart des distributions, il faut prévoir des dou-
zaines de téléchargements, parfois de plus d’une centaine de mégaoctets. Les produits
Microsoft disposent d’un système comparable de mises à jour depuis Windows XP SP2.
La sécurité des systèmes Linux dépend également de l’étendue de vos propres compéten-
ces. Si un débutant se précipite, configure un serveur Internet et le connecte au réseau, il ne
faut pas s’attendre à ce que ce serveur soit sécurisé de manière optimale. La littérature à ce
propos ne manque pas.
Linux Livre Page 16 Mardi, 23. septembre 2008 1:05 13
16 LINUX
Linux est plus Lorsque Linux est devenu populaire, Windows 95 commençait son avancée triomphale.
stable que
Windows L’assertion "Linux est plus stable que Windows" était alors facile à corroborer. Entre temps,
Microsoft a commercialisé des versions de Windows respectables et stables. Dans tous les
cas, les affirmations quant à la stabilité de Linux réclament une différentiation importante :
• Le noyau est en soi extraordinairement stable. Je travaille depuis de nombreuses années
sous Linux et j’ai rarement expérimenté un plantage complet du système d’exploitation
(il s’agissait en général d’un problème de matériel défectueux ou mal configuré). Les
utilisateurs qui se servent de Linux comme d’un serveur réseau parlent souvent de
temps de fonctionnement (uptime) de plusieurs mois. Cela signifie que le système peut
tourner pendant plus d’un an sans interruption et fournir ses services sans protester. Les
redémarrages font souvent suite à des mises à jour du noyau. La stabilité du système ne
fait donc aucun doute.
• En revanche, si on parle de Linux en tant que système complet avec les applications
associées (et donc d’une distribution complète, avec X, KDE ou Gnome, etc.), la stabilité
apparaît alors beaucoup moins bonne. En particulier, les grosses applications comme
OpenOffice.org ne sont pas à l’abri d’un plantage sous Linux. Les programmes serveur
fonctionnent cependant pour la plupart sans souci.
La stabilité de Linux dépend également de la manière dont il est utilisé. Les meilleurs résul-
tats sont généralement obtenus dans un contexte de serveur réseau ou de station de travail
dédiée au travail scientifique ou à la programmation. Plus les programmes s’approchent
d’une utilisation bureautique, plus vous risquez de connaître de mauvaises performances
en termes de stabilité.
Linux est Cette affirmation est facile à argumenter : Linux est disponible gratuitement. Elle est cepen-
moins cher
que Windows dant contestée chez Microsoft, qui indique qu’il faut aussi prendre en compte les coûts de
formation et autres (ce qui présuppose que la connaissance de Windows est innée, mais pas
celle de Linux). De plus, toutes les distributions Linux ne sont pas gratuites. De nombreuses
entreprises optent pour les offres plus chères de Red Hat ou de Novell, qui fournissent une
meilleure assistance, des mises à jour plus longues, de la maintenance, etc. Même si l’on
tient compte de ces éléments, l’argument économique de Linux n’est pas à nier.
Linux est Lorsqu’on achète un PC, Windows est généralement déjà préinstallé. L’installation de Linux
compliqué
à installer est donc une complication supplémentaire. Mais elle n’est pas plus compliquée que celle de
Windows (mais qui installe Windows soi-même de nos jours ?).
La prise en charge des matériels récents est cependant problématique ; elle est en général
meilleure sous Windows, car chaque fabricant de composants fournit un pilote Windows
pour ses périphériques. Les pilotes sous Linux doivent souvent être développés par la commu-
nauté, ce qui peut prendre du temps.
Linux est Ce préjugé est ancien, mais il n’est plus vrai, ou alors dans une très faible mesure. L’utilisa-
complexe
à utiliser tion de Linux est différente de celle de Windows, tout comme celle de Mac OS. La prise en
main de Linux n’est vraiment pas compliquée, mais la perte des habitudes prises sous Windows
peut parfois être difficile.
Linux n’est pas Cette affirmation dépend de ce que l’on entend par "applications multimédias".
adapté aux
applications • Linux peut lire ou coder les fichiers audio. Il peut aussi être utilisé comme enregistreur
multimédias numérique de vidéo, graveur de CD et de DVD, etc. Récupérer, modifier et imprimer
des images numériques ne pose également aucun problème.
Linux Livre Page 17 Mardi, 23. septembre 2008 1:05 13
• Pour l’instant, Linux ne possède pas de système de DRM (Digital Rights Management,
gestion des droits numériques), nécessaire pour exploiter les téléchargements légaux
audio et vidéo. La plupart des distributions Linux ne fournissent pas non plus par
défaut de lecteur DVD. Il existe des programmes sur Internet prévus pour cela, mais
leur légalité dépend des pays. De plus, l’utilisation des fonctions 3D des cartes graphi-
ques les plus récentes peut être difficile. Le matériel multimédia récent pose également
souvent problème sous Linux.
La tendance actuelle de l’industrie des médias est malheureusement de supprimer de plus
en plus de droits aux consommateurs et d’empêcher l’utilisation de Linux comme plate-
forme multimédia. Les brevets et les algorithmes de chiffrement empêchent les implémenta-
tions par des logiciels libres. C’est pourquoi Linux n’est pas adapté aux applications
multimédias.
Les pro- De nombreux programmes, comme Microsoft Office ou Adobe Photoshop, ne sont actuel-
grammes
Windows ne lement disponibles que pour Windows et Mac OS. Ce problème peut cependant être
fonctionnent contourné :
pas sous Linux
• Il existe pour de nombreux programmes des équivalents sous Linux, comme Open-
Office.org ou le programme graphique Gimp.
• Certains programmes peuvent être lancés sous Linux grâce à l’émulateur gratuit Wine.
Ce dernier est cependant peu intuitif et donc réservé aux utilisateurs chevronnés.
• CrossOver, basé sur Wine, augmente cette compatibilité. Il facilite l’installation et l’exé-
cution de la plupart des composants Office, ainsi que de quelques autres programmes.
• Les outils de virtualisation tels que VMware ou Xen vont même plus loin : ils émulent
un ordinateur complet. Vous pouvez y installer Windows et ainsi le lancer dans une
fenêtre. Cela fonctionne très bien, mais nécessite du matériel puissant (en particulier,
beaucoup de RAM) et il s’agit d’une solution relativement chère : vous avez besoin
d’une licence Windows, à laquelle s’ajoute éventuellement celle du programme de
virtualisation.
18 LINUX
etc.) pour survivre. Si le tarif n’est pas lié à des services, d’autres entreprises trouveront le
moyen d’offrir la même chose moins cher.
GPL (General Le but d’un développeur de logiciels libres est de parvenir à un système dont le code est
Public License)
librement accessible et qu’il le reste. Pour éviter les abus, de nombreux logiciels libres sont
sous licence GNU General Public License (GPL). La GPL s’appuie sur la Free Software
Foundation (FSF). Cette organisation, créée par Richard Stallman (souvent appelé RMS et
auteur entre autres de l’éditeur Emacs), a pour but de mettre à disposition du public des
logiciels libres de qualité.
Le principe de base de la GPL est que n’importe qui peut modifier le code et même vendre
le programme résultant, mais doit alors garantir aux utilisateurs/consommateurs les
mêmes droits : avoir le code source à disposition, pouvoir le modifier et le redistribuer
gratuitement. Tous les programmes GNU doivent être distribués avec le texte de la GPL.
Cette dernière ne doit pas être confondue avec le domaine public, où il n’existe aucune licence.
La GPL empêche donc que quelqu’un développe à partir d’un programme GPL et vende
cette nouvelle version sans fournir les modifications sous forme de code source. Chaque
modification profite donc à l’ensemble des utilisateurs.
Versions Les versions les plus utilisées de la GPL sont actuellement la GPL 1 (1985) et la GPL 2 (1991).
de la GPL
Sortie en juin 2007, la GPL 3 ne concerne pour l’instant que quelques projets. Les principales
nouveautés sont les suivantes :
• L’internationalisation. La GPL 3 devrait être compatible avec la législation de davan-
tage de pays.
• Les brevets logiciels. Lorsqu’un logiciel est développé et distribué sous GPL 3, ses
utilisateurs ne peuvent pas intenter de procès sur la base de brevets logiciels.
• Les DRM. La GPL 3 prend position contre les DRM et indique que celles-ci sont fonda-
mentalement incompatibles avec l’idée de la GPL.
L’adoption de la GPL 3 reste à voir. Par exemple, de nombreux développeurs du noyau, y
compris Linus Torvalds, s’opposent au passage du noyau sous GPL 3. Cela semble égale-
ment difficile en pratique : tous les développeurs ayant participé au noyau doivent s’accor-
der. De plus, certains développeurs de logiciels libres sont très critiques vis-à-vis des
nouveautés de la GPL 3, en particulier en ce qui concerne les brevets et les DRM. Vous trou-
verez plus d’informations sur la GPL 3 à l’adresse http://gplv3.fsf.org/.
LGPL (Lesser La LGPL (GNU Lesser GPL) est une variante de la GPL. La différence majeure est qu’une
General Public
License) bibliothèque sous licence LGPL peut être utilisée par des produits commerciaux, dont le
code n’est pas disponible gratuitement. Sans la LGPL, les bibliothèques sous GPL ne pour-
raient être utilisées que dans des programmes GPL, ce qui serait bien souvent une restriction
non désirée pour les programmes commerciaux.
Linux Livre Page 19 Mardi, 23. septembre 2008 1:05 13
Le maquis des licences gratuites plus ou moins libres est délicat à appréhender. La marge de concepts est
large entre l’interprétation parfois extrémiste de "libre" au sens de la GPL et les clauses limitatives de certaines
entreprises qui désirent appeler leur logiciel "libre" (puisque c’est moderne), mais qui veulent en réalité garder
tout contrôle sur leur code.
Pour plus d’informations sur les licences libres et open-source, reportez-vous à l’adresse
http://www.opensource.org.
20 LINUX
Le respect des règles de la GPL peut parfois être porté devant la justice. Divers cas d’entreprises
ayant utilisé des bibliothèques libres sans mettre à disposition leur code sont documentés sur le
site web http://gpl-violations.org. En général, un accord peut être atteint sans procès.
Problème Un problème se pose pour certains composants matériels (en particulier, les cartes graphi-
des pilotes
ques d’ATI ou de NVIDIA) : leurs pilotes se composent d’un petit module de noyau (libre)
et de divers programmes ou bibliothèques dont le code source n’est pas disponible (proprié-
taire). Le module du noyau n’a pour but que de fournir une interface entre le noyau et le
pilote propriétaire.
Pour la plupart des utilisateurs de Linux, ces pilotes sont une bonne chose : ils sont gratuits
et permettent d’utiliser du matériel pour lequel il n’existe aucun pilote complet. La raison
est que les fabricants de matériel refusent de fournir les informations nécessaires au déve-
loppement de pilotes, puisqu’elles sont la propriété de l’entreprise, qui ne désire pas les
offrir à la concurrence.
La question est donc de savoir dans quelle mesure ces pilotes, en raison des liens étroits avec
le noyau (qui est lui soumis à la GPL), violent la GPL. Beaucoup de développeurs ne les accep-
tent qu’à contrecœur. Une redistribution directe de ces pilotes avec des produits GPL n’est pas
possible ; l’utilisateur doit donc généralement les télécharger et les installer lui-même. Il existe
même des efforts visant à modifier le noyau pour que ce type de pilotes ne fonctionne plus.
Reste à savoir si cette conception des règles de la GPL profite ou nuit à l’idée du logiciel
libre. Les optimistes pensent qu’interdire ces pilotes obligerait les entreprises à développer
des pilotes libres ou à fournir les spécifications nécessaires à ce développement. Les pessi-
mistes craignent que le matériel concerné ne soit plus facilement utilisable. L’issue de ce
conflit n’est pour l’instant pas en vue.
Dès que le noyau Linux a été suffisamment développé pour que le compilateur C GNU
fonctionne, la palette des outils GNU est soudain devenue disponible pour Linux. Un sys-
tème complet était né du noyau brut, ce qui faisait de Linux un environnement de dévelop-
pement bien plus attractif. Les facteurs qui ont fait de Linux un environnement de
développement plus attractif ont été le système de fichiers de Minix, des logiciels réseau
provenant des Unix BSD, le système XWindow du MIT et le portage de XFree86, ainsi que
de nombreux logiciels libres comme LaTeX.
Linus Torvalds n’est donc pas la seule personne à l’origine de Linux (même si, sans lui, il n’exis-
terait probablement pas sous sa forme actuelle). Ce système a été développé par de nombreuses
personnes engagées qui ont produit du code libre pendant des années, que ce soit sur leur
temps libre, dans le cadre de leurs études d’informatique ou d’un emploi dans des entreprises
comme IBM ou HP. Le noyau Linux représente à lui seul plusieurs millions de lignes de code !
1994 : les Les étudiants passionnés d’informatique pouvaient télécharger, compiler et installer eux-
premières
distributions mêmes Linux et ses composants. Son utilisation s’est néanmoins largement développée
grâce aux premières distributions, qui empaquetaient des logiciels sur des disquettes ou des
CD-ROM et fournissaient un programme d’installation. Quatre distributions de cette époque
subsistent encore : Debian, Red Hat, Slackware et SUSE.
1996 : le En 1996, le manchot Tux devient le logo de Linux. Ils sont depuis inséparables.
manchot
1998 : Avec la déferlante Internet, Linux s’impose largement sur les serveurs. Une certaine reconnais-
Microsoft
déclare la sance de Linux vient avec la phrase de Steve Ballmer : "Microsoft is worried about free
guerre à Linux software..." ("Microsoft est inquiet face au logiciel libre…"). Un an plus tard, Red Hat fait
une entrée spectaculaire en bourse.
2002 : Linux Après l’achat de StarOffice par Sun et l’ouverture de son code source, OpenOffice.org 1.0
pour le bureau
voit le jour en 2002. Il s’agit d’une suite bureautique complète, avec une interface conforta-
ble (KDE ou Gnome). Elle rend Linux utilisable dans les bureaux et auprès du grand public.
Linux sort alors du marché des informaticiens et des serveurs, une étape que de nombreux
Unix propriétaires n’ont pas franchie. En 2003, la ville de Munich décide de remplacer
Windows NT par Linux sur ses postes.
Brevets logiciels
Les brevets logiciels protègent, aux États-Unis comme dans de nombreux pays, les idées,
concepts et algorithmes de logiciels. Des brevets sont déposés pour tout ce qui est imaginable,
Linux Livre Page 22 Mardi, 23. septembre 2008 1:05 13
22 LINUX
y compris des éléments triviaux comme l’affichage d’une barre de progression ou la célèbre
commande en un clic (Amazon). Leur abus et l’absurdité des durées de protection en com-
paraison de la vitesse d’évolution de l’informatique contribuent à alimenter la résistance
contre les brevets logiciels. Ainsi, un programme dépassant quelques lignes de code, quel
qu’il soit, peut violer un brevet logiciel quelque part dans le monde.
Les grandes entreprises avec des portefeuilles de brevets importants visent principalement
à éviter des actions réciproques (une sorte d’équilibre de la terreur), mais la communauté
libre et certains développeurs se sentent menacés par les brevets logiciels. Ils les considèrent
comme nuisibles pour le progrès et la concurrence. Les brevets logiciels pourraient être une
arme puissante pour Microsoft contre Linux − Microsoft n’a cependant jusqu’ici entrepris
aucune action en ce sens et doit lui-même lutter contre de nombreux procès liés aux brevets.
La décision de l’Office européen des brevets contre l’introduction des brevets logiciels en
Europe à l’été 2005 a été l’une des rares lueurs d’espoir. Mais, comme Linux est également
employé en dehors de l’Europe, les brevets logiciels limitent le champ d’action de beaucoup
de distributions : nombre d’entre elles, par exemple, ne fournissent pas de bibliothèques
pour lire des MP3 par peur des procès, car des algorithmes sont protégés par des brevets.
Chaque utilisateur doit donc installer lui-même les bibliothèques ou programmes corres-
pondants. Ce qui n’est que gênant dans le cas des fichiers MP3 pourrait dans le cadre
d’autres fonctions mener à de lourdes limitations des distributions Linux.
Ensemble de Mais la situation n’est pas sans espoir. En particulier, quelques entreprises pro-Linux comme
brevets de la
communauté IBM disposent d’importants portefeuilles de brevets. Certaines entreprises Linux ont elles-
libre mêmes commencé à collecter des brevets, en partie "offerts" par des entreprises pour des
usages libres. La situation est absurde : un droit des brevets mal conçu oblige la commu-
nauté libre à créer des brevets pour pouvoir se protéger contre des éventuels procès. Vous
trouverez des détails sur les outils de la communauté à l’encontre des brevets aux adresses
suivantes : http://www.patent-commons.org/ ; http://www.openinventionnetwork.com/
Multimédia et DRM
Chiffrement Le marché du multimédia est un autre problème. Par exemple, vous ne pouvez pas lire
des DVD
actuellement vos DVD achetés en toute légalité sous Linux. La limitation est juridique et
non technique. La plupart des DVD sont protégés par un algorithme de chiffrage plutôt pri-
mitif. Cette protection pourrait être facilement levée, mais dans de nombreux pays, la loi
interdit la distribution de la bibliothèque nécessaire et la description de son installation.
Les nouveaux disques HD-DVD et Blue-Ray, déjà prêts pour le marché, sont mieux proté-
gés. La protection s’applique à toute la chaîne des composants matériels (carte graphique,
moniteur, etc.). Les DVD haute résolution ne sont donc pas non plus lisibles sous Linux.
DRM La situation n’est pas meilleure pour les données (audio, vidéo et texte) protégées par des
(Digital Rights
Management) DRM. Ces dernières englobent tout dispositif visant à réduire l’utilisation des données, par
ou gestion exemple à une période de temps ou à un ordinateur donné. Cela a pour effet de les limiter à
des droits
numériques certains matériels (par exemple, l’iPod) ou systèmes d’exploitation (Windows ou Mac OS).
Les opposants aux DRM déclinent ce sigle en Digital Restriction Management − gestion des
restrictions numériques.
Linux Livre Page 23 Mardi, 23. septembre 2008 1:05 13
Développer des DRM dans le cadre de logiciels libres n’est pas simple : si le code d’un pro-
gramme pour déchiffrer des données protégées par DRM est accessible, il peut être modifié
pour supprimer la restriction des DRM. Le développement de DRM libres n’en est donc
qu’à ses débuts. Rien ne permet de dire que ces programmes pourront un jour être utilisés.
À l’heure actuelle, l’utilisation de contenus protégés par DRM est difficile sous Linux. Si
vous ne voulez pas utiliser de logiciels illégaux pour supprimer les protections, vous devez
attendre des programmes propriétaires provenant des fournisseurs des DRM. Il n’existe
pour l’instant aucun programme de ce type sous Linux. Pour iTunes, la solution est d’utiliser
CrossOver et la version Windows d’iTunes sous Linux.
Procès SCO
Le procès SCO est un véritable roman. Le 7 mars 2003, l’entreprise SCO a intenté un procès
à IBM. Elle l’accusait, entre autres, d’avoir inclus dans le noyau Linux du code d’Unix sous
copyright de SCO. Selon elle, toute utilisation de Linux à partir du noyau 2.4 était donc illé-
gale. Pour régulariser la situation, elle a demandé aux utilisateurs de Linux de payer une
licence spéciale, au prix fort. En dehors de Microsoft, SCO a trouvé peu de clients, de sorte
que l’offre de licence n’existe plus sur son site web.
IBM a réagi par un contre-procès, et Red Hat s’est joint à la bataille en intentant également
un procès à SCO.
De nombreux commentateurs voient dans ce mouvement une guerre par procuration, dans
laquelle Microsoft serait derrière SCO. D’autres pensent que cette dernière ne cherchait qu’à
augmenter sa valeur boursière.
Les développeurs de la communauté, y compris Linus Torvalds, ont adopté le point de vue
selon lequel les considérations de SCO ne s’appliquaient pas. SCO avait elle-même vendu
une distribution Linux et accepté la GPL. D’une manière générale, le fait qu’elle n’indiquait
pas précisément les lignes de code sujettes à copyright a été largement critiqué. Cette criti-
que a été renforcée par la déclaration à l’été 2006 du juge chargé de l’affaire, selon lequel les
deux tiers des points du procès étaient considérés comme nuls et non avenus.
Linux Livre Page 24 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 25 Mardi, 23. septembre 2008 1:05 13
Installation
2
Ce chapitre est un aperçu de l’installation d’un système Linux sur un PC doté d’un proces-
seur compatible Intel Pentium. Il ne s’attache pas à une distribution spécifique, mais parle
des étapes importantes de l’installation, comme le partitionnement du disque. Pour plus
d’informations, reportez-vous à l’Annexe B qui offre des liens vers la documentation des
processus d’installation de nombreuses distributions.
L’installation de Linux s’est grandement simplifiée ces dernières années. Dans le cas idéal
(matériel standard et espace disponible sur le disque dur), 30 minutes devraient suffire pour
obtenir un système fonctionnel. L’installation se complique néanmoins lorsque, comme sou-
vent, l’ordinateur dispose déjà d’un système d’exploitation Windows, qui doit être préservé.
Des problèmes liés au matériel peuvent également surgir lorsque celui-ci est très vieux, très
récent, ou dans le cas de certains ordinateurs portables.
2.1 Prérequis
Pour pouvoir installer Linux, quelques conditions sont nécessaires :
• Vous avez besoin d’un ordinateur avec un processeur compatible Intel Pentium. Tous les
processeurs 32 et 64 bits d’Intel et AMD (depuis le Pentium et le K6) appartiennent à cette
catégorie. Il existe également des distributions pour d’autres architectures de processeurs,
comme l’IBM PowerPC.
• Il faut suffisamment de mémoire vive. Pour utiliser les gestionnaires de bureau KDE et
Gnome confortablement, 256 Mo sont un minimum. Disposer de plus de mémoire est
évidemment un avantage.
• Une partition libre avec assez de place sur votre disque dur est également nécessaire.
La quantité d’espace disponible dépend de la distribution et des programmes à installer.
À l’heure actuelle, 5 à 8 Go sont une bonne valeur indicative.
• Votre matériel doit être reconnu et pris en charge par Linux. C’est aujourd’hui le cas de
la majorité du matériel standard. Les cartes graphiques les plus récentes, certaines car-
tes Wi-Fi, ainsi que certains ordinateurs portables peuvent poser problème. La plupart
des imprimantes GDI et des Winmodems ne sont pas non plus reconnus (voir section
1.1 pour des liens à propos du matériel).
• Certains programmes XWindow utilisent le bouton du milieu de la souris. Une souris à
trois boutons ou à molette est donc pratique. Celles à deux boutons peuvent émuler le
troisième en appuyant sur les deux boutons simultanément, ce qui est à la longue pénible.
Comme nous l’avons vu au chapitre précédent, il existe des distributions minimales qui fonctionnent avec des
besoins matériels plus réduits. Dans ce chapitre, nous considérons cependant que vous installez une distri-
bution "normale", comme Fedora, Debian, Kubuntu, Mandriva, Red Hat, SUSE ou Ubuntu.
Linux Livre Page 26 Mardi, 23. septembre 2008 1:05 13
26 LINUX
Si vous utilisez des programmes de virtualisation comme VirtualBox ou VMware, vous pouvez installer Linux
dans un environnement virtuel contenu dans Windows. Cela facilite l’installation, mais diminue les fonc-
tionnalités (accès limité au matériel, vitesse d’exécution réduite, etc.).
32 ou 64 bits ?
Avantages et De plus en plus d’ordinateurs portables ou de bureau contiennent un processeur 64 bits. La
inconvénients
principale différence avec les processeurs 32 bits est que ces derniers ne peuvent adresser
directement que 2 Go de mémoire. C’est donc un avantage lorsque vous avez plus de 2 Go
de RAM et que vous désirez faire fonctionner des programmes ayant de gros besoins en
mémoire et si vous utilisez une distribution 64 bits. En pratique, ces conditions sont
réunies sur les ordinateurs qui fonctionnent en tant que serveur réseau ou serveur de base
de données, ou faisant fonctionner plusieurs systèmes Linux en parallèle grâce à la virtua-
lisation. Pour une utilisation bureautique standard, l’architecture 64 bits offre peu d’avan-
tages et aucune amélioration sensible des performances (bien que l’on prétende souvent
l’inverse).
L’architecture 64 bits présente également certains inconvénients :
• La quantité de RAM et la place nécessaire sur le disque dur sont plus importantes.
• Certains programmes ne fonctionnent qu’en mode 32 bits. Pour les faire tourner sur un
système 64 bits, il faut installer d’innombrables bibliothèques en double (en ver-
sion 32 bits et 64 bits). Les distributions s’occupent du fonctionnement interne, mais la
solution n’est pas très élégante.
• Le troisième problème disparaît heureusement avec la montée en popularité des archi-
tectures 64 bits : pour certains composants matériels, il n’existe pas de pilote libre. Pour
utiliser ces composants, il faut installer les pilotes propriétaires du fabricant. Si celui-ci
ne fournit que des pilotes 32 bits, ils ne fonctionneront pas avec un système 64 bits. Vous
aurez alors le choix de ne pas faire fonctionner cet élément ou de réinstaller une distri-
bution 32 bits.
Distributions Les avantages des architectures 64 bits n’apparaissent, pour des raisons techniques, que
64 bits
lorsque toute la distribution, ou au moins la majorité des programmes et des bibliothèques
est en 64 bits. Une distribution universelle 32/64 bits est donc impossible. Il existe, en revan-
che, pour la plupart des distributions deux versions : une version 32 bits (souvent nommée
i386, i586, i686, selon les familles de processeurs Intel) et une version 64 bits (x86_64 ou
AMD64). SUSE fournit les deux versions sur un seul DVD double-couche, mais il s’agit tout
de même de deux versions différentes de la même distribution.
Les processeurs 64 bits courants sont rétrocompatibles avec les processeurs 32 bits. Il est
donc possible d’installer au choix sur une architecture 64 bits une distribution 32 ou 64 bits.
Cette décision est définitive : changer de modèle de distribution ne peut ensuite se faire
qu’en réinstallant le système.
Les ordinateurs et systèmes d’exploitation 64 bits seront probablement la norme dans quel-
ques années. Il sera alors rare de se demander s’il faut installer une version 32 ou 64 bits.
À l’heure actuelle, l’argumentation se résume ainsi : une distribution 64 bits ne présente
pour un utilisateur normal ni avantage, ni inconvénient majeur mais, comme 64 bits sonne
mieux que 32 bits, la version 64 bits est souvent installée.
Linux Livre Page 27 Mardi, 23. septembre 2008 1:05 13
INSTALLATION 27
Figure 2.1
Choix de la langue au
début d’une installation
de SUSE.
Linux Livre Page 28 Mardi, 23. septembre 2008 1:05 13
28 LINUX
Choix Certains programmes de configuration utilisent le nombre de touches comme signe distinctif
du clavier
des claviers. Voici quelques valeurs utiles pour déterminer le vôtre :
Clavier anglais sans touche Windows 101 touches
Clavier international sans touche Windows 102 touches
Clavier anglais avec touches Windows 104 touches
Clavier international avec touches Windows 105 touches
Vous pouvez aussi activer ou désactiver les touches mortes. Il s’agit, par exemple, des tou-
ches ` ou ~. Cette option n’active pas les touches en soi, mais la composition des lettres avec
ces touches.
Vous pouvez ainsi taper la lettre ? sous la forme ~ N. Pour saisir les signes directement (par
exemple ~), vous devez taper la touche correspondante suivie d’un espace.
La désactivation des touches mortes complique la saisie des caractères étrangers, mais
s’avère sensée si vous ne tapez pas de caractères spéciaux dans d’autres langues et correspond
aux usages sous Windows.
Configuration En général, les souris et les pointeurs de portables sont automatiquement reconnus. Si votre
de la souris
souris ne possède pas de molette, cochez l’option Emulate 3 Buttons (émulation du troi-
sième bouton). Ainsi, vous pourrez simuler le clic sur le troisième bouton en cliquant simul-
tanément sur les deux autres.
Messages La plupart des distributions affichent des messages du noyau lors du démarrage, mais vous
du noyau
pouvez les ignorer. Ils ne sont utiles que si le programme d’installation plante au démar-
rage.
Fonctionneme Les programmes d’installation fonctionnent eux-mêmes sous Linux. Par conséquent, un
nt interne
noyau minimal est chargé dès l’amorçage du support d’installation, ainsi que certains
modules matériels (disques durs, carte réseau, lecteur CD ou DVD). Si le programme
n’arrive pas à charger les bons modules, vous devez fournir les informations correspondantes.
INSTALLATION 29
installer dans des partitions différentes, afin d’éviter les doublons et les conflits dans les
noms de répertoires et de fichiers.
De plus, sous Linux, il est souvent utile de créer plusieurs partitions : par exemple, une pour
le système d’exploitation, une pour les données des utilisateurs et une autre appelée partition
d’échanges (équivalent au fichier d’échange sous Windows).
Types Il en existe trois types : les partitions primaires, les partitions étendues et les partitions
de partitions
logiques.
Un disque dur ne peut contenir que quatre partitions primaires. On peut cependant définir
l’une d’entre elles comme une partition étendue. Dans cette dernière, on peut créer plu-
sieurs partitions logiques.
Tout cela provient de la limite historique de quatre partitions primaires. Notez que certains
outils de partitionnement ne font pas la différence au niveau de l’interface utilisateur entre
les différents types de partitions et s’occupent eux-mêmes de leur répartition en interne.
Une partition étendue n’est qu’un conteneur pour des partitions logiques. On ne peut enre-
gistrer des données que sur les partitions primaires ou logiques.
Le terme "type de partition" est également utilisé dans un autre contexte. Chaque partition
se voit associer un nombre qui indique le système pour lequel elle est créée (par exemple,
Windows, Linux, Novell Netware, BSD, etc.) ou le rôle qui lui est attribué.
Nombre Le nombre de partitions dépend du type de disque dur (IDE, SATA, SCSI) et de la version de
maximal
de partitions Linux. Ce dernier peut en effet créer au maximum 16 partitions sur un disque, dont 12 par-
titions logiques. Les disques IDE sont une exception : avec le pilote correspondant sous
Linux, on peut créer 64 partitions (dont 60 logiques). Le pilote IDE est cependant de plus en
plus rarement utilisé au profit du pilote SCSI.
Aide Chaque système d’exploitation a son propre outil pour modifier la géométrie d’un disque.
au partition-
nement Sous Windows 9x/ME, le programme DOS FDISK est encore utilisé. Depuis Windows NT,
il existe un outil confortable avec une interface utilisateur graphique. L’accès à cet outil
dépend de la version de Windows. Sous Windows Vista, il faut lancer Panneau de confi-
guration, Système et maintenance, Outils d’administration, Gestion de l’ordinateur, Gestion
des disques. Sous Linux, il existe plusieurs programmes d’aide au partitionnement. Si
ceux-ci posent problème, les utilisateurs avancés peuvent utiliser les commandes fdisk
ou parted.
Il est très difficile de modifier rétrospectivement le partitionnement d’un disque. En général, le contenu d’une
partition est perdu lorsque sa taille est modifiée. Le déplacement de partitions n’est pas non plus prévu. Il
existe des programmes spéciaux, commerciaux ou gratuits, qui permettent d’effectuer cette tâche, mais avec
beaucoup de limitations. Il est donc conseillé de bien réfléchir au schéma de partitions dès le départ.
Les utilisateurs avancés de Linux savent dépasser ces limitations en utilisant le système LVM. Il s’agit d’une
couche intermédiaire entre les partitions et les systèmes de fichiers. Comme l’administration de LVM est rela-
tivement compliquée, cette option n’est pas proposée aux débutants.
Linux Livre Page 30 Mardi, 23. septembre 2008 1:05 13
30 LINUX
Systèmes de fichiers
Le partitionnement permet de réserver de la place sur un disque. Avant de pouvoir enre-
gistrer des données sur une partition, il faut créer un système de fichiers. Celui-ci contient
les fichiers et les informations de gestion associées. Windows et Linux proposent différents
systèmes :
• Sous Windows, on peut utiliser le système VFAT (Windows 9x et Windows ME) ou
NTFS, plus moderne (Windows NT/2000/XP/Vista).
• Sous Linux, le système ext3 est dominant. Les alternatives actuelles sont xfs et reiserfs
(voir section 23.6 pour plus d’informations).
La création d’un système de fichiers sur une partition s’appelle le formatage. Sous Windows,
on peut effectuer cette opération via un menu contextuel dans l’Explorateur ou avec le pro-
gramme FORMAT. Sous Linux, le programme d’installation s’occupe du formatage et
appelle en arrière-plan des commandes telles que mkfs.ext3 ou mkfs.xfs. Formater une
partition supprime toutes les données qui s’y trouvent.
Le partitionnement et le formatage de disques effacent, en général, les partitions concernées. Il existe quel-
ques exceptions et des outils spéciaux pour redimensionner les partitions sans perte.
INSTALLATION 31
Schéma hd-* Le schéma hd-* n’est utilisé que pour les disques durs IDE, lorsque Linux utilise l’ancien
pilote IDE. Le câblage physique des disques décide de leur nom. /dev/hda désigne le pre-
mier périphérique (maître) du premier canal IDE. /dev/hdb désigne le second périphérique
(esclave) du premier canal IDE. /dev/hdc et /dev/hdd désignent respectivement le maître et
l’esclave du second canal IDE. La numérotation des partitions est identique à celle du
schéma sd-*.
Cette désignation très technique des partitions ne vous servira normalement que lors de
l’installation et de l’administration. Au quotidien, les partitions actives sont disponibles
comme des répertoires. À l’inverse de Windows, il n’y a pas de lettre de lecteur.
Figure 2.2
Éditeur de partitions
de Fedora.
32 LINUX
Début 2007, le redimensionnement des partitions Windows Vista avec des programmes Linux posait
encore d’énormes problèmes. Lorsque vous lirez ce livre, toutes les distributions actuelles devraient être
compatibles avec Vista. Cependant, soyez prudent lorsque vous installez des distributions plus anciennes.
Il est plus sûr de redimensionner la partition avant l’installation, grâce aux outils fournis par Windows Vista.
Redimen- Si ce redimensionnement est impossible ou ne fonctionne pas, vous pouvez effectuer cette
sionnement
avant opération avec d’autres outils :
l’installation
• Directement sous Windows. Windows Vista propose un outil de réduction des partitions.
Lancez Panneau de configuration > Outils d’administration > Gestion de l’ordinateur >
Gestion des disques. Cliquez du bouton droit sur la partition et lancez Réduire le volume.
Les versions précédentes de Windows ne permettent pas de redimensionnement. Vous
pouvez supprimer et recréer la partition, mais cela en supprime tout le contenu.
• Avec un système Linux "live". Les systèmes live, tels que Knoppix, GParted ou Sys-
temRescueCD, contiennent différents programmes pour réduire les partitions Windows.
L’utilisation de ces outils est cependant complexe. L’outil le plus convivial est gparted
(voir Chapitre 23).
• Avec des programmes commerciaux. Vous pouvez aussi utiliser des outils com-
merciaux, plus confortables mais coûteux. Le plus connu est PartitionMagic de
Norton/Symantec : http://www.symantec.com/norton/products/overview.jsp?pcid
=sp&pvid=pm80.
Réinstaller Si votre ordinateur ne possède aucun système d’exploitation et si vous désirez installer Win-
Linux et
Windows dows et Linux, commencez par Windows. Son installation propose également de partition-
ner le disque dur. Dans ce cas, indiquez uniquement l’espace dont vous avez besoin (par
exemple 50 Go), et non l’ensemble du disque. Dans le doute, choisissez une valeur plus
petite : il est plus simple d’agrandir une partition que de la réduire.
Linux Livre Page 33 Mardi, 23. septembre 2008 1:05 13
INSTALLATION 33
Achat d’un Certains revendeurs, chez qui vous pouvez acheter un ordinateur sans Windows, peuvent
nouvel
ordinateur également partitionner le disque. Cela n’est guère possible si vous achetez votre machine
dans une grande chaîne − Windows sera alors préinstallé.
34 LINUX
système. Les données utilisées par le processus d’amorçage doivent être enregistrées sur
une partition avec un système de fichiers standard, typiquement ext2 ou ext3.
Dans le doute, la création d’une partition d’amorçage ne peut pas nuire. Toutefois, si vous
envisagez d’installer plusieurs distributions en parallèle sur votre disque, la séparation des
différentes partitions système et partitions d’amorçage associées crée une fragmentation
souvent peu claire du disque dur.
Partition Une partition de données permet de séparer les données système de vos propres données.
de données
Cela présente un avantage important : vous pourrez par la suite réinstaller une autre distri-
bution ou réinstaller votre système dans la partition système sans mettre en danger la partition
de données séparée.
On utilise généralement /home comme point de montage pour cette partition de données. Je
ne peux pas conseiller de taille pour cette partition, car elle dépend largement de l’utilisa-
tion de votre système Linux.
Partitions On peut encore diviser le disque en partitions supplémentaires. Si vous utilisez Linux en
supplémen-
taires tant que serveur réseau ou serveur de bases de données, vous pouvez modifier les partitions
du système pour séparer les données correspondantes.
Tant qu’il existe de l’espace non partitionné sur votre disque, augmenter le nombre et la
taille des partitions d’un système existant ne pose aucun problème. Si vous ne savez pas
comment répartir votre espace, vous pouvez toujours laisser une partie du disque vide.
Partition La partition d’échanges ou de swap est le pendant du fichier d’échanges sous Windows.
d’échanges
Lorsque Linux n’a pas assez de mémoire, il place dans cette partition le contenu de la RAM
qui n’est pas utilisée à cet instant. Utiliser une partition complète (et non un fichier comme
sous Windows) améliore les performances en termes de rapidité d’exécution. Linux peut
être configuré pour utiliser un fichier d’échanges au lieu d’une partition, mais ce fonction-
nement n’est ni courant, ni rapide.
À l’inverse des autres partitions, la partition d’échanges n’a pas de nom (pas de point de
montage). Elle est en effet utilisée directement et non via un système de fichiers.
Si vous avez beaucoup de RAM, il peut être tentant de se passer d’une partition d’échanges,
mais ce n’est pas conseillé. Lorsque Linux ne trouve plus de RAM, des processus en cours
d’exécution (programmes) doivent être arrêtés, sans que l’on puisse prévoir lesquels, ce qui
peut avoir des conséquences imprévues (voire provoquer un plantage). S’il existe une parti-
tion d’échanges, Linux ralentira beaucoup en raison du manque de mémoire, ce qui est cer-
tes désagréable, mais vous laissera une chance de réagir et de régler le problème en
terminant le programme fautif vous-même. La partition d’échanges ne sert donc pas tant de
réserve de mémoire que d’avertissement d’urgence.
La bonne taille d’une partition d’échanges se situe entre une et deux fois la taille de votre
mémoire vive − si vous avez beaucoup de RAM, une taille équivalente suffit. Si vous utilisez
la fonction Suspend to Disk de l’ordinateur, cette partition doit avoir au moins la taille de
votre RAM.
Sur les systèmes 32 bits, sa taille est limitée à 2 Go. Si vous avez besoin de plus d’espace,
vous devez créer plusieurs partitions d’échanges. Cela est cependant rarement utile : si vos
applications nécessitent autant d’espace, Linux passe sans cesse les données entre les parti-
tions d’échanges et la RAM, et n’est en pratique plus utilisable. Dans ce cas, il ne faut pas
ajouter de l’espace, mais de la RAM.
Linux Livre Page 35 Mardi, 23. septembre 2008 1:05 13
INSTALLATION 35
Résumé
Taille des partitions pour un usage privé
partition d’échanges (une à deux fois la taille de la RAM)
/ partition système (5 à 10 Go ; prévoir plus pour les développeurs)
/home partition de données (à adapter selon vos besoins)
36 LINUX
Figure 2.3
Choix des paquetages
lors d’une installation
de Fedora.
Les versions actuelles de Red Hat et de Fedora n’utilisent le CD/DVD comme source que pendant l’installa-
tion. Si vous avez besoin ensuite d’un autre programme, vous devez le télécharger depuis Internet. Cela fonc-
tionne sans problème et garantit que vous disposez de la version la plus récente. En revanche, une bonne
connexion à Internet est nécessaire. Si ce n’est pas le cas, il vaut mieux installer dès le début tous les paque-
tages dont vous êtes susceptibles d’avoir besoin.
Linux Livre Page 37 Mardi, 23. septembre 2008 1:05 13
INSTALLATION 37
38 LINUX
plusieurs utilisateurs, dotés chacun d’un mot de passe, et par la suite, en créer de nouveaux,
modifier les mots de passe, etc.
Les noms des utilisateurs doivent se composer d’un maximum de huit lettres ou chiffres.
Évitez les caractères accentués ou spéciaux − cela ne fonctionne pas toujours. Il est courant
d’utiliser uniquement des lettres minuscules, mais ce n’est pas une obligation.
Les mots de passe doivent contenir entre six et huit signes. Ils sont idéalement composés de
lettres majuscules, minuscules, chiffres et caractères spéciaux, comme +-*/_.,;:()[]. Évitez
les caractères accentués et ceux qui ne sont pas définis dans la table de caractères ASCII.
Dans de nombreuses distributions, il n’est pas possible de tester le clavier avant de taper les différents mots
de passe, en particulier root. Si vous n’arrivez pas à vous connecter à votre ordinateur après l’installation,
il peut s’agir d’un problème de clavier, par exemple toujours en QWERTY au moment de la saisie du mot de
passe.
Configuration Pour connecter votre ordinateur à un réseau local, il faut établir une configuration réseau.
réseau
Celle-ci peut être automatique s’il existe un serveur DHCP (serveur qui envoie aux ordina-
teurs du réseau leur configuration réseau). Dans ce cas, elle se réduit souvent à un clic sur la
bonne case et éventuellement à la saisie d’un nom d’ordinateur.
Lorsque vous configurez votre réseau manuellement, on vous demande les paramètres
suivants (pour plus d’informations, voir Chapitre 26) :
• Nom d’hôte et de domaine. Ils correspondent sous Windows au nom de l’ordinateur et
du groupe de travail. Dans un réseau local, le nom de domaine est généralement fourni.
Celui de l’hôte doit être unique. N’utilisez pas localhost, qui a une signification parti-
culière.
• Adresse IP de l’ordinateur. Il s’agit d’une chaîne de caractères sous la forme a.b.c.d (par
exemple 192.168.27.35) qui identifie l’ordinateur sur le réseau local. Les deux ou trois
premiers chiffres de l’adresse sont généralement fixés à l’avance ; les suivants doivent
être uniques sur le réseau.
• Masque de sous-réseau, adresse du réseau et de broadcast. Un réseau local est décrit
par deux ou trois masques. Par exemple, si le réseau s’étend sur tous les numéros
192.168.27.x, le masque de sous-réseau est 255.255.255.0 (ce qui est généralement le cas
pour les petits réseaux locaux). L’adresse du réseau est alors 192.168.27.0 et celle de broad-
cast 192.168.27.255.
• Adresse de la passerelle. Lorsqu’un ordinateur du réseau local fournit l’accès à Internet
à tous les autres ordinateurs du réseau, vous devez indiquer cette adresse.
• Adresse du serveur de noms. Le serveur de noms, ou DNS (Domain Name Server), sert à
résoudre les noms réseau en adresses IP. Il permet donc de taper dans un navigateur
http://www.yahoo.com et d’atteindre automatiquement l’ordinateur dont l’IP corres-
pond à ce nom. Il peut également servir à atteindre un ordinateur du réseau local s’il
permet la résolution des noms locaux. Lorsque les adresses du serveur de noms et de la
passerelle sont correctes, vous pouvez accéder à Internet.
Wi-Fi Configurer une carte Wi-Fi pendant l’installation n’est utile que si vous désirez utiliser
l’accès au réseau sans-fil pendant l’installation. En plus des paramètres précédents, vous
Linux Livre Page 39 Mardi, 23. septembre 2008 1:05 13
INSTALLATION 39
devez alors indiquer l’identifiant du réseau (SSID ou ESSID), le mode de chiffrement (WEP,
WPA ou WPA2) et le mot de passe. Lorsque le système fonctionne, le logiciel Network-
Manager est plus confortable à utiliser.
Accès à Si votre ordinateur ne fait pas partie d’un réseau local, vous accédez probablement à Inter-
Internet par
modem, RNIS net via un modem, une carte RNIS ou un modem ADSL. Ceux-ci ne fonctionnent d’emblée
ou ADSL que dans les cas simples. Il peut donc être sage de repousser la configuration d’Internet à
plus tard (voir Chapitre 27).
Pare-feu La plupart des distributions protègent l’accès au réseau ou à Internet grâce à un pare-feu.
Ce dernier laisse passer les connexions initiées par le poste, mais bloque les requêtes de
connexions entrantes, ce qui augmente significativement la sécurité. Si vous envisagez
de proposer des services réseau sur votre ordinateur (comme un serveur SSH ou web), vous
pouvez définir des exceptions pour ces services et permettre un accès depuis l’extérieur.
Nous parlerons de la mise en place d’un pare-feu au Chapitre 29.
SELinux, Certaines distributions ajoutent au pare-feu des systèmes de protection supplémentaires,
AppArmor
qui protègent les programmes importants contre d’éventuels dysfonctionnements. Red Hat
et Fedora fournissent SELinux, et SUSE, le système AppArmor. Si vous n’utilisez que les
programmes de votre distribution, SELinux et AppArmor fonctionnent sans problème. La
sécurité effective de ces systèmes est controversée, car ils sont encore neufs et peu utilisés en
pratique. Si vous envisagez d’installer des programmes réseau compilés par vos soins ou si
vos besoins de configuration s’éloignent de ceux prévus par la distribution, SELinux et
AppArmor peuvent poser problème. La solution est alors de les désactiver.
Mises à jour De nombreuses distributions proposent d’effectuer une mise à jour du système avant même
le premier démarrage, afin d’actualiser les programmes critiques concernant la sécurité de
l’ordinateur. Cela dépend bien sûr de la configuration de votre accès à Internet.
Mode La plupart des programmes d’installation configurent eux-mêmes XWindow pour toutes les
graphique
sorties graphiques. Les éléments critiques de cette configuration sont la reconnaissance de la
carte graphique et la saisie des paramètres du moniteur (résolution, fréquence), s’ils ne sont
pas reconnus.
Imprimante, Certaines distributions permettent de configurer une imprimante, une carte son et d’autres
scanner,
carte son périphériques matériels. Si tout fonctionne bien, rien ne s’y oppose. Mais en cas de pro-
blème, il vaut mieux reporter la configuration à plus tard (voir Chapitre 9 pour les scanners,
Chapitre 20 pour les cartes son et Chapitre 30 pour les imprimantes).
Fuseau horaire Afin de paramétrer correctement l’heure, le programme d’installation doit savoir si l’horloge
interne (CMOS, au niveau matériel) de l’ordinateur est réglée à l’heure locale ou en UTC (Uni-
versal Coordinated Time), et dans quel fuseau horaire vous vous trouvez. Si votre ordinateur dis-
pose d’un accès permanent à Internet, de nombreuses distributions peuvent être configurées
pour synchroniser l’heure avec un serveur de date (serveur NTP) sur Internet.
Langue En général, Linux s’installe dans la langue utilisée pendant l’installation − pour la plupart
des lecteurs de cet ouvrage, il s’agit donc du français. Il est conseillé d’installer également
les fichiers de langue anglaise (ce dont la plupart des distributions s’occupent par défaut).
Ainsi, vous êtes assuré d’avoir au moins le texte anglais s’il n’existe pas de traduction fran-
çaise.
Linux Livre Page 40 Mardi, 23. septembre 2008 1:05 13
40 LINUX
Si certaines personnes veulent utiliser votre ordinateur dans une autre langue que celle par
défaut, vous devez installer les paquetages de localisation correspondants. Vous pourrez
alors choisir la langue désirée lors de la connexion au système.
INSTALLATION 41
On peut aussi installer Linux sur une grosse clé USB, qui est alors reconnue comme disque
dur externe.
Installation Lors d’une installation réseau, les fichiers ne sont pas lus sur un CD ou un DVD, mais sur le
réseau
réseau. Il existe alors deux variantes qui se différencient par la manière dont l’installation
commence :
• Démarrage de l’installation avec un CD contenant le programme d’installation. Il confi-
gure la connexion au réseau et récupère ensuite toutes les données sur le réseau ou sur
Internet via FTP, HTTP, NFS ou SMB. Cette méthode est pratique pour les grosses distri-
butions disponibles gratuitement sur Internet, comme Debian ou openSUSE. Il n’est
alors pas nécessaire de télécharger des ISO volumineuses et de graver plusieurs CD ou
DVD ; il suffit de télécharger une ISO de CD de démarrage, ne dépassant généralement
pas les 50 Mo.
• Installation réseau. La "vraie" installation réseau implique que votre ordinateur puisse
lire ses données d’amorçage sur le réseau. C’est possible sur la plupart des cartes mères,
mais il faut le configurer dans le BIOS et mettre en place un serveur permettant ce type
d’utilisation.
Dans les deux cas, il faut prévoir une bonne connexion au réseau ou à Internet.
Problèmes de matériel
Si des composants matériels importants ne sont pas reconnus lors de l’installation, ou si leur
détection plante, il peut être utile de passer des paramètres au noyau (voir Chapitre 24).
Linux Livre Page 42 Mardi, 23. septembre 2008 1:05 13
42 LINUX
INSTALLATION 43
• Linux ne démarre pas. Lorsque l’ordinateur redémarre, il lance Windows sans poser de
question. Il ne semble pas y avoir trace de Linux.
Cause probable : l’installation de GRUB n’a pas fonctionné pour une raison ou une
autre.
Résolution : démarrez un système de maintenance ou un live CD et réinstallez GRUB
(voir Chapitre 24).
• Windows ne démarre pas. Après le démarrage, Linux se lance automatiquement. Il ne
semble pas y avoir trace de Windows.
Cause probable : l’installation de GRUB a fonctionné, mais Linux se lance automatique-
ment ou Windows n’apparaît pas dans le menu. Il est possible que le menu n’apparaisse
que lorsque l’utilisateur appuie sur Échap.
Résolution : si un menu s’affiche, choisissez windows avec les touches de direction et
appuyez sur Entrée. Dans le cas contraire, démarrez Linux et explorez la configuration
de GRUB pour y ajouter un élément de menu pour Windows (voir Chapitre 24).
• Ni Linux, ni Windows ne démarrent. GRUB est exécuté, mais affiche rapidement une
liste sans fin de messages d’erreur.
Cause probable : l’installation de GRUB est endommagée.
Résolution : démarrez un système de maintenance ou un live CD, et réinstallez GRUB
(voir Chapitre 24).
44 LINUX
46 LINUX
Figure 3.1
Écran de connexion
sous Ubuntu.
Connexion On peut configurer Gnome et KDE pour qu’ils démarrent automatiquement une session.
automatique
Cela est plus confortable, mais n’est pas optimal du point de vue de la sécurité (voir Chapi-
tres 4 et 5).
Connexion en On peut également accéder à de nombreuses fonctionnalités de Linux en mode texte. Une
mode texte
installation serveur supprimera souvent le système XWindow et son démarrage automatique
sera désactivé. Vous devrez donc vous connecter en mode texte (voir Chapitre 12).
Lorsque le système XWindow est installé, vous pouvez le démarrer depuis une console avec
la commande startx. Si cette dernière affiche des erreurs, X n’est pas bien configuré. Nous
expliquerons comment régler ce problème au Chapitre 22.
Déconnexion
Les menus KDE et Gnome proposent tous deux une commande pour se déconnecter. La
dénomination exacte varie selon les distributions et l’environnement. Elle termine tous les
programmes qui fonctionnent dans l’environnement graphique (enregistrez au préalable
tous vos fichiers) et ramène l’utilisateur à la boîte de connexion, à partir de laquelle il peut
se reconnecter ou éteindre l’ordinateur.
Changement Pour changer d’utilisateur, il faut théoriquement se déconnecter et se reconnecter sous un
d’utilisateur
sans autre nom. Gnome et KDE permettent cependant de le faire sans déconnexion. Pour cela, le
déconnexion système graphique est démarré une seconde fois (deux systèmes sont lancés en même
temps), ce qui nécessite plus de ressources. On peut alors changer d’utilisateur rapidement
avec un raccourci clavier.
Linux Livre Page 47 Mardi, 23. septembre 2008 1:05 13
Éteindre Linux
Les utilisateurs d’interface graphique ont une commande dans le menu pour éteindre l’ordi-
nateur ou une option dans la fenêtre de connexion. En mode texte, il faut utiliser la commande
shutdown -h now. Elle ne peut être exécutée que par root.
48 LINUX
Saisie de Si vous devez saisir des caractères dans une langue étrangère, il se peut que vous ne dispo-
caractères
étrangers siez pas de la touche correspondante sur votre clavier. Gnome et KDE fournissent tous deux
des outils de table de caractères : gucharmap sous Gnome, KCharMap sous KDE. Open-
Office.org a également une fenêtre qui permet la saisie de tels caractères.
Utilisation de la souris
Linux tend de plus en plus à s’orienter vers les conventions d’utilisation de Windows ou de
Mac OS. Il existe cependant certaines particularités relatives au bureau qui sont regroupées
dans cette section.
Clic simple ou Sous Gnome, il faut pour de nombreuses opérations (y compris l’ouverture d’un fichier)
clic double
double-cliquer sur l’élément concerné. Sous KDE, il est en revanche plus courant d’utiliser
le simple clic.
Copier et coller Dans presque tous les programmes Linux, vous pouvez copier et coller du texte à la souris.
du texte à la
souris Pour marquer le texte à copier, sélectionnez-le avec le bouton gauche. Le texte ainsi marqué est
copié dans un tampon. Lorsque vous appuierez ensuite sur le bouton du milieu, il sera collé à
l’endroit où le curseur se trouve, dans la même application ou dans une application différente.
Attention, lorsque vous serez habitué à ce fonctionnement, il sera difficile de vous en passer
− en particulier sous Windows.
Dans certaines grosses applications, comme Gimp ou OpenOffice.org, l’aide peut se trouver
dans un paquetage à part qui n’est pas installé par défaut.
man et info Pour de nombreuses commandes en mode texte, man nom ou info nom fournissent une des-
cription de la commande et une référence de la syntaxe. Nous en parlerons plus en détail au
Chapitre 12.
Documen- Sous Linux, les programmes sont installés sous forme de paquetages. Un paquetage
tation des
paquetages contient tous les fichiers nécessaires à une application et, bien souvent, des fichiers de
documentation. Celle-ci se trouve, selon la distribution, dans /usr/share/doc/nom_du_paque-
tage (sous Debian, Fedora, Red Hat et Ubuntu) ou /usr/share/doc/packages/
nom_du_paquetage (sous SUSE).
Que faire lorsque vous cherchez la documentation d’une commande sans savoir à quel
paquetage elle appartient ? La première étape est de trouver le nom exact de la commande.
Lancez pour cela la commande which -a commande :
utilisateur$ which -a cp
/bin/cp
Il faut ensuite déterminer à quel paquetage appartient le fichier. Cette opération dépend
de votre distribution. La commande suivante indique que cp fait partie du paquetage
coreutils :
utilisateur$ rpm -qf /bin/cp
coreutils-6.9.43
utilisateur$ dpkg -S /bin/cp
coreutils: /bin/cp
La commande rpm est utilisée dans les distributions Fedora, Red Hat, SUSE ou Mandriva, et
dpkg sous Debian et Ubuntu.
Forums et Il existe d’innombrables forums, wikis et pages web sur Linux, maintenus par les acteurs du
wikis sur
Internet marché et les utilisateurs enthousiastes. Une énumération serait ici inutile : une simple
recherche des termes "fedora forum" ou "ubuntu wiki" propose de nombreuses pages. En ce
qui concerne les questions spécifiques à une distribution, vous aurez plus de chances de
trouver votre bonheur si votre distribution est populaire.
Groupes de Les groupes de discussion sont principalement utilisés par des utilisateurs expérimentés de
discussion
Linux. Vous n’y trouverez peut-être pas de discussions courantes faciles à suivre, mais
vous pourrez chercher des informations dans les archives. En particulier, les problèmes
de configuration ou de matériel ont probablement été rencontrés par quelqu’un d’autre.
Le moteur de recherche le plus utilisé pour les groupes de discussion est Google :
http://groups.google.com.
Linux Docu- Le Linux Documentation Project (projet de documentation de Linux) a pour but de rassem-
mentation
Project bler la documentation autour de Linux. Vous trouverez plus d’informations à son sujet sur
la page du projet : http://www.tldp.org/.
La documentation se divise principalement en trois types : les HOWTO ou guides prati-
ques, les FAQ (Foires aux Questions) et les guides (sous forme de livres). Mais de nombreux
Linux Livre Page 50 Mardi, 23. septembre 2008 1:05 13
50 LINUX
textes du LDP ne sont plus maintenus et sont obsolètes. De plus en plus de projets de documen-
tation utilisent un wiki, que tous les utilisateurs peuvent le cas échéant corriger.
Une partie de la documentation du LDP est traduite en français par le projet http://www.tra-
duc.org. Les mêmes réserves quant à l’actualité des documentations s’appliquent, d’autant
plus qu’une traduction peut ne pas être à jour par rapport à la version originale.
Documen- Notons pour terminer deux sites utiles en français.
tations en
français Le premier, Léa Linux (http://www.lea-linux.org), est un site de documentation en fran-
çais. On y trouve énormément d’informations utiles, en particulier en ce qui concerne le
matériel. Tous les publics (du débutant au professionnel) sont visés par les différents articles du
site.
Le second, Unix Garden (http://www.unixgarden.com), est un site géré par les Éditions Dia-
mond qui éditent entre autres les magazines GNU/Linux Magazine France et Linux Pratique.
Unix Garden reprend, quelques mois après leur publication sous forme papier, les articles
de ces magazines. On peut donc y trouver des articles pratiques intéressants, même s’il ne
s’agit pas à proprement parler d’un site d’entraide ou de documentation.
Linux Livre Page 51 Mardi, 23. septembre 2008 1:05 13
Gnome
4
Lorsque vous travaillez sous Windows ou Mac OS, il n’existe qu’une seule interface utilisa-
teur qui fait partie du système d’exploitation. La situation est différente sous Linux. Le sys-
tème d’exploitation ne sert qu’aux opérations de base. L’interface utilisateur est un
programme situé un niveau au-dessus. Il existe de nombreux systèmes de bureau. Les plus
populaires sont actuellement Gnome et KDE (voir Chapitre 5).
Qu’il s’agisse de Gnome ou de KDE, les fonctions de base d’un gestionnaire de bureau sont
les mêmes et regroupent :
• la gestion du bureau, composé d’une ou deux barres (ou panneaux) contenant le menu
de démarrage, le gestionnaire de tâches et d’autres mini-applications ;
• un gestionnaire de fenêtres servant à régler le comportement des fenêtres (comment
changer de fenêtre active, comment les déplacer, etc.) ;
• de nombreuses applications et programmes de configuration.
Ce chapitre se consacre aux fonctions basiques de Gnome. Mais attention : deux instal-
lations de Gnome se ressemblent rarement. D’une part, une nouvelle version sort tous les six
à douze mois − mais les changements visibles pour les utilisateurs ont été plutôt modestes au
cours des dernières années. D’autre part, chaque distribution modifie Gnome à sa discrétion :
la construction du menu de démarrage, les effets graphiques du bureau et le choix des pro-
grammes et logiciels de configuration peuvent varier fortement. Ce chapitre se base sur la
version 2.22 de Gnome, telle que configurée dans Ubuntu 8.04.
De nombreux programmes ajoutant des fonctionnalités et des éléments graphiques au
bureau sont installés avec Gnome.
Gnome contre Pour des raisons historiques, il existe deux environnements de bureau concurrents sous
KDE
Linux. Le projet KDE se basait sur la bibliothèque Qt de l’entreprise TrollTech. Les premières
versions de Qt étaient considérées comme restrictives par rapport à la GPL (elle est depuis
complètement compatible). Une partie de la communauté Linux trouvait que ces restrictions
allaient trop loin et a fondé le projet concurrent Gnome.
La question de savoir lequel de Gnome ou de KDE est le meilleur gestionnaire de bureau
échauffe encore aujourd’hui les esprits. Les deux bureaux sont tout à fait adaptés à une uti-
lisation bureautique standard. Gnome est plus accessible et plus simple à apprendre, mais
KDE fournit aux utilisateurs avancés davantage de possibilités de configuration et de per-
sonnalisation. Ces derniers ont donc une préférence pour KDE, tandis que Gnome joue un
grand rôle dans l’environnement commercial de Linux (Red Hat et Novell sont plutôt orientés
vers Gnome).
De nombreuses distributions laissent à leurs utilisateurs le choix entre les bureaux et propo-
sent des paquetages pour les deux environnements. Il est donc possible d’installer les systèmes
en parallèle et de choisir un bureau lors de la connexion.
Linux Livre Page 52 Mardi, 23. septembre 2008 1:05 13
52 LINUX
Plus important encore : vous pouvez parfaitement utiliser ces deux programmes en paral-
lèle. Par exemple, si vous utilisez Gnome comme environnement de bureau, rien ne vous
empêche d’utiliser KDE K3b pour graver vos CD et DVD. Ils sont d’ailleurs compatibles entre
eux au point que même les commandes de glisser-déposer fonctionnent sans problème.
Travailler Gnome et KDE fournissent certes de nombreuses fonctionnalités, mais ils demandent des
sans environ-
nement de capacités assez importantes en termes de mémoire vive et de processeur. Sur les ordinateurs
bureau limités en ressources, il est préférable de se passer d’un environnement de bureau. Si vous
désirez une interface graphique, utilisez pour la gestion de vos fenêtres un gestionnaire de
fenêtres, comme XFCE. Il existe des distributions, comme Xubuntu, qui sont optimisées
pour ce choix de paquetages. Vous pouvez aussi choisir de fonctionner en mode texte. C’est
largement suffisant pour les serveurs réseau ou les pare-feu.
GNOME 53
Figure 4.1
Le bureau Gnome.
54 LINUX
On peut déplacer facilement les tableaux de bord à la souris. La plupart des applications
sont prévues pour des tableaux de bord horizontaux. Si ces derniers sont placés sur le côté
droit ou gauche de l’écran, cela peut mener à des résultats non optimaux.
Il est également possible de réunir les éléments des deux tableaux de bord par défaut dans
un seul. Les distributions de SUSE et de Novell sont configurées ainsi.
Applets Les applets sont des programmes exécutés dans les tableaux de bord. En plus de celles pré-
sentes par défaut, il en existe d’innombrables dont les plus importantes sont présentées ci-
après. Pour ajouter une applet à un tableau de bord, cliquez sur celui-ci du bouton droit et
lancez Ajouter au tableau de bord (voir Figure 4.2).
Figure 4.2
Ajouter des applets.
Vous pouvez modifier certaines propriétés des applets dans le menu contextuel qui s’ouvre
avec le bouton droit.
L’applet la plus importante est sans doute le menu Gnome (voir Figure 4.1). Il se compose
de trois groupes : Applications pour démarrer les programmes, Raccourcis pour ouvrir des
répertoires ou démarrer le gestionnaire de fichiers Nautilus, et Système pour configurer,
administrer et quitter le système.
La clarté de ce menu dépend largement de la configuration. Ubuntu est exemplaire, car le
menu ne contient que les programmes les plus utilisés. À l’inverse, la configuration de
base de Debian est systématique et exhaustive, redondante, et souvent déroutante pour
les débutants.
Vous pouvez glisser-déposer un programme souvent utilisé dans un endroit vide du tableau de bord. L’icône
qui apparaît vous permet de démarrer rapidement l’application en question.
Vous pouvez aussi modifier vous-même le menu. Pour cela, utilisez l’éditeur de menu alacarte qui se
trouve sous Ubuntu dans Système > Préférences > Menu principal. Il contient de nombreuses lignes que
vous pouvez activer ou désactiver. Vous pouvez aussi définir de nouveaux éléments de menu ou les grou-
per différemment.
Linux Livre Page 55 Mardi, 23. septembre 2008 1:05 13
GNOME 55
Novell, mécontent du menu Gnome, a développé son propre menu. Il facilite l’accès aux
programmes les plus utilisés, et aux documents et répertoires récemment ouverts (voir
Figure 4.3).
Figure 4.3
Variante du menu
Gnome fournie par
openSUSE 10.3.
Liste des L’applet Liste des fenêtres affiche une icône qui correspond à la barre des tâches de Windows.
fenêtres
Dans la boîte de dialogue de configuration, vous pouvez choisir si les fenêtres d’un programme
(par exemple, celles de Gimp ou les documents OpenOffice.org ouverts) doivent être groupées
par programme. Cela améliore la vue d’ensemble lorsque beaucoup de fenêtres sont ouvertes,
mais augmente le nombre de clics nécessaires pour changer de fenêtre.
Certains comportements des fenêtres, comme le déplacement, l’agrandissement ou la mini-
misation, dépendent du gestionnaire de fenêtre. Gnome en fournit plusieurs ; c’est géné-
ralement le programme metacity qui est utilisé par défaut.
Espaces de Les espaces de travail permettent de partager les fenêtres de programmes sur plusieurs
travail
bureaux virtuels et de passer d’un bureau à l’autre. Cela facilite le travail et améliore la vue
d’ensemble lorsque plusieurs fenêtres sont ouvertes simultanément. Vous pouvez, par
exemple, lancer le programme graphique Gimp sur son propre espace de travail. Ainsi, tou-
tes ses fenêtres seront sur un seul et même espace, tandis que les autres fenêtres seront sur
un second espace de travail.
L’applet Sélecteur d’espaces de travail gère des espaces de travail. Dans Préférences, vous
pouvez choisir le nombre d’espaces souhaité.
Il est possible de configurer une fenêtre donnée afin qu’elle soit visible sur tous les espaces
de travail. Ouvrez le menu de la fenêtre avec le bouton droit ou Alt+Espace, puis activez
l’option Toujours sur l’espace de travail visible.
Zone de Lorsque le tableau de bord affiche la zone de notification, les programmes en tâche de
notification
fond peuvent y laisser des notifications, par exemple lorsque de nouvelles mises à jour
Linux Livre Page 56 Mardi, 23. septembre 2008 1:05 13
56 LINUX
sont disponibles ou lorsqu’un nouveau courrier électronique est arrivé. Cette zone n’a en soi
aucune fonction ; il s’agit plutôt d’un conteneur pour les icônes des autres programmes.
4.2 Nautilus
Le programme Nautilus est le gestionnaire de fichiers de l’environnement de bureau
Gnome. Il permet d’accéder aux fichiers et répertoires de l’ordinateur, ainsi qu’aux lecteurs
externes et aux répertoires réseau, de graver des CD et des DVD, etc. Nautilus est un pro-
gramme plutôt universel (voir Figure 4.4).
Figure 4.4
Nautilus.
Cette section traite de l’utilisation de Nautilus, mais ne rentre pas dans les détails de la gestion des fichiers
sous Linux. Ce thème fait l’objet d’un chapitre complet, le Chapitre 13.
Démarrage On démarre généralement Nautilus depuis le menu Gnome en choisissant Raccourcis >
Dossier personnel. Le menu Raccourcis contient également des autres éléments qui facilitent
l’accès à d’autres répertoires.
Le gestionnaire de fichiers affiche par défaut le contenu du répertoire choisi sous forme de
symboles. Chaque fichier est représenté par une icône qui, pour certains, donne un aperçu
du contenu. Cet aperçu ne fonctionne par défaut que pour les fichiers locaux (et non pour
les répertoires réseau) et ceux relativement petits. Vous pouvez modifier ce comportement
dans Édition > Préférences > Aperçu.
Pour ne pas avoir à regénérer sans cesse les aperçus, Nautilus enregistre les images dans le
répertoire ~/.thumbnails. La plupart des programmes Gnome utilisent ce répertoire.
Linux Livre Page 57 Mardi, 23. septembre 2008 1:05 13
GNOME 57
Cliquez sur Affichage > Zoom avant et Affichage > Zoom arrière pour modifier la taille des
icônes. Pour afficher les informations détaillées des fichiers, choisissez Affichage > Voir en
tant que liste dans le menu.
Barre latérale Le panneau gauche de la fenêtre contient normalement une barre latérale, qui permet de
passer rapidement dans plusieurs répertoires importants (il s’agit de raccourcis). Vous pou-
vez cependant y afficher d’autres choses, comme l’arborescence des répertoires, des infor-
mations sur le répertoire courant ou une liste des derniers répertoires visités (Historique).
F9 masque ou affiche cette barre latérale.
Changer de Sous les diverses icônes, se trouvent des boutons qui permettent de changer rapidement de
répertoire
répertoire. Ils indiquent le chemin du répertoire courant (par exemple, en bas à gauche de la
Figure 4.4, le chemin est /usr/bin).
Nautilus peut aussi afficher un chemin complet en tant que barre d’adresse, ce qui facilite la
saisie rapide d’un autre répertoire. Il est possible de passer d’un mode à l’autre en cliquant
sur le bouton Bascule entre le mode à texte et à boutons de la barre d’emplacement (à gauche
de la barre en question).
Certaines distributions configurent Nautilus en mode spatial. Cela signifie que lorsqu’on change de réper-
toire, une nouvelle fenêtre s’ouvre. Certains développeurs de Gnome trouvent ce mode plus intuitif, mais
tous les utilisateurs ne sont pas de cet avis. Pour modifier ce comportement, activez l’option Toujours ouvrir
dans des fenêtres de navigation dans Édition > Préférences > Comportement.
Ouvrir des La plupart des fichiers s’ouvrent avec un double-clic. Le gestionnaire de fichiers ouvre automa-
fichiers
tiquement le programme correspondant. Si le type de fichier n’est pas connu, cliquez dessus du
bouton droit et lancez Ouvrir avec une autre application. S’ouvre alors une boîte de dialogue
dans laquelle vous pouvez choisir la plupart des programmes installés sur l’ordinateur.
Certains fichiers peuvent être ouverts avec plusieurs programmes. Par exemple, on peut
ouvrir les images avec un outil de visualisation, l’éditeur graphique Gimp ou Firefox. L’un
de ces programmes est défini par défaut. Pour le modifier, cliquez du bouton droit sur le
fichier, choisissez Propriétés > Ouvrir avec et indiquez le programme de votre choix. Cette
propriété s’appliquera à tous les fichiers du même type, comme par exemple tous les fichiers
PNG.
Déplacer et Les fichiers sélectionnés sont copiés avec Ctrl+C, coupés avec Ctrl+X (et supprimés de leur
copier des
fichiers endroit d’origine) et collés avec Ctrl+V.
Il est néanmoins plus simple de déplacer les fichiers à la souris, et non au clavier, en les pas-
sant d’une fenêtre du gestionnaire de fichiers à l’autre grâce à un glisser-déposer. Ils sont
alors normalement déplacés et non copiés. Mais il existe des exceptions à cette règle, lorsque
par exemple l’opération de glisser-déposer part d’un CD ou d’un lecteur réseau. Dans ce
cas, le curseur de la souris est agrémenté d’un symbole plus (+), pour que la signification de
l’opération soit claire.
Si vous désirez copier plutôt que déplacer des fichiers, appuyez pendant le glisser-déposer
sur la touche Ctrl. Si vous souhaitez que le navigateur vous demande quoi faire, commencez
Linux Livre Page 58 Mardi, 23. septembre 2008 1:05 13
58 LINUX
le glisser-déposer, puis appuyez sur Alt avant de déposer le fichier. Lorsque vous relâchez la
souris, un menu apparaît : vous pouvez alors copier ou déplacer le fichier, ou encore créer
un raccourci (lien).
Chercher des La commande Aller à > Recherche des fichiers offre une vue peu intuitive pour chercher des
fichiers
fichiers. Nautilus fait la liste de tous les fichiers dont le nom correspond au terme saisi dans
le champ de recherche. Il n’est pas possible d’effectuer une recherche sur le texte des
fichiers. Une limitation des résultats sur un type de documents donné est normalement pré-
vue, mais mes tests sous Ubuntu 8.04 n’ont pas été concluants à ce sujet. Notez que, par
défaut, le répertoire racine est parcouru (et non le répertoire courant).
Vous pouvez aussi utiliser la commande Raccourcis > Rechercher des fichiers dans le menu
Gnome. Cela lance le programme gnome-search-tool. Ce dernier permet d’utiliser davan-
tage de critères de recherche, mais il est relativement lent. Les outils de recherche tels que
Beagle ou Tracker sont bien plus efficaces (voir Chapitre 13).
Fichiers cachés Sous Linux, tous les fichiers et dossiers dont le nom commence par un point sont considérés
comme cachés. Cela signifie qu’ils ne sont pas affichés par le gestionnaire de fichiers, ni par
les boîtes de dialogue de choix de fichier. Ils contiennent souvent des paramètres de configura-
tion ou d’autres fichiers qui ne doivent pas être modifiés directement. L’accès direct à ces fichiers
n’est, en général, approprié que dans des cas exceptionnels (par exemple, lorsque vous dési-
rez faire une copie de sauvegarde de votre répertoire de courrier électronique ~/.mozilla-
thunderbird). Pour les afficher dans le gestionnaire de fichiers, cliquez dans le menu sur
Affichage > Afficher les fichiers cachés.
Droits d’accès Un utilisateur ne peut pas lire ou modifier tous les dossiers ou répertoires. Linux enregistre
donc pour chaque fichier et répertoire le propriétaire et les droits d’accès. Les concepts sous-
jacents seront expliqués au Chapitre 13. Pour modifier ces droits, cliquez du bouton droit
sur le fichier ou le répertoire, puis allez dans Propriétés, Permissions (voir Figure 4.5).
Figure 4.5
Permissions d’un fichier.
Linux Livre Page 59 Mardi, 23. septembre 2008 1:05 13
GNOME 59
Supprimer un Lorsque vous supprimez un fichier, il atterrit d’abord dans la corbeille. Vous pouvez voir le
fichier
contenu de cette dernière dans le gestionnaire de fichiers grâce à la commande Aller à > Cor-
beille, ou en cliquant directement sur son icône. Les fichiers ne sont supprimés que lorsque
vous les sélectionnez et appuyez sur Suppr.
Par défaut, le gestionnaire de fichiers ne permet pas de supprimer directement des fichiers.
Si c’est ce que vous souhaitez, dans la fenêtre Édition, Préférences, Comportement, activez
l’option Inclure une commande supprimer qui ignore la corbeille.
Supports Si vous insérez un CD ou un DVD, ou si vous branchez un lecteur USB, Firewire ou eSATA,
externes
une nouvelle fenêtre Nautilus s’ouvre automatiquement pour présenter le contenu de ce
nouveau support. Depuis Gnome 2.22, Nautilus se lance lui-même ou s’occupe de lancer un
programme adapté. Les paramètres associés sont définis dans la boîte de dialogue Édition,
Préférences, Supports.
N’oubliez pas de déconnecter explicitement les disques durs externes et les clés USB avant de les débran-
cher de l’ordinateur. Pour cela, cliquez du bouton droit sur l’icône du support et choisissez Démonter.
Adresses On peut indiquer des adresses spéciales dans le champ d’adresse de Nautilus ou dans Aller
spéciales de
Nautilus à > Emplacement. C’est souvent le moyen le plus rapide d’ouvrir des répertoires réseau
dans Nautilus. Le tableau suivant résume les adresses et protocoles importants :
La version 2.22 de Gnome peut avoir des problèmes sur les accès FTP et Samba qui ne fonctionnent plus
comme avant. L’affichage des polices et des thèmes ne fonctionne plus non plus. Espérons que les mises à
jour et la version 2.24 régleront ces problèmes.
Linux Livre Page 60 Mardi, 23. septembre 2008 1:05 13
60 LINUX
GNOME 61
Figure 4.6
On accède à un partage
Windows en cinq étapes.
anonyme ou via un identifiant et un mot de passe. Si vous le désirez, Nautilus peut enregistrer
les données de connexion pour accéder plus rapidement à un répertoire donné.
Connexion Pour faciliter l’accès à un répertoire réseau, vous pouvez aussi connecter le lecteur réseau de
permanente à
un répertoire manière permanente. Pour cela, lancez Raccourcis > Se connecter à un serveur..., puis choi-
réseau sissez le protocole réseau (partage Windows, FTP, WebDAV ou SSH par exemple) et indi-
quez les informations de connexion correspondantes (voir Figure 4.7). Gnome enregistre ces
informations, augmente le menu Raccourcis d’une nouvelle ligne et place une icône sur le
bureau. Il suffit alors d’un clic pour ouvrir le répertoire correspondant.
Figure 4.7
Connecter un partage
Windows de manière
permanente.
Linux Livre Page 62 Mardi, 23. septembre 2008 1:05 13
62 LINUX
Selon mes tests sous Ubuntu 8.04 et Fedora 9, tenter de connecter un répertoire réseau Windows génère
un message d’erreur. Deux icônes identiques apparaissent sur le bureau, mais disparaissent à la connexion
suivante. Espérons que ce problème sera bientôt réglé par une mise à jour de Gnome.
Les connexions réseau permanentes ne peuvent pas être modifiées. Pour les supprimer, cliquez du bouton
droit sur l’icône et lancez Démonter le volume.
Figure 4.8
Le centre de contrôle
de Gnome.
GNOME 63
Éditeur de L’éditeur de texte par défaut de Gnome est gedit. Ce programme est facile à prendre en
texte : gedit
main et très pratique pour les tâches simples.
Afficher des Lorsqu’on double-clique sur un fichier PDF ou PS, le programme Evince démarre et affiche
fichiers PDF
ou PostScript : le document. Vous pouvez le parcourir, imprimer des pages, etc. Les PDF plus complexes
evince s’afficheront mieux sous Adobe Reader (en particulier, les PDF comportant des champs à
remplir), qui est gratuit, mais pas libre.
Archiver Pour envoyer plusieurs fichiers par courrier électronique ou faire des copies de sauvegarde,
des fichiers :
file-roller il est souvent pratique de compresser plusieurs fichiers ou le contenu d’un répertoire. Pour
cela, on utilise le gestionnaire d’archives file-roller. Ce dernier permet également de
visualiser et de décompresser des archives.
Occupation du Pour connaître les éléments les plus coûteux en termes de place sur votre disque dur, lancez
disque dur :
baobab Applications, Accessoires, Analyseur d’utilisation des disques. Ce programme, appelé Bao-
bab, affiche sous une forme graphique les répertoires et sous-répertoires qui contiennent
beaucoup de fichiers. Les différents boutons de la barre permettent différentes analyses ;
notez qu’une analyse d’un système complet peut être assez longue.
Gestion des Divers programmes Gnome nécessitent la saisie d’identifiants utilisateur et de mots de
mots de passe
et des clés : passe. Pour que ces programmes n’aient pas à gérer eux-mêmes les mots de passe, leur
seahorse gestion est centralisée dans Gnome. Elle est utilisée entre autres dans Nautilus, Evolu-
tion et NetworkManager. La base de mots de passe est sécurisée par un mot de passe
maître, demandé lors de la première utilisation du programme. Les accès suivants à la
base sont autorisés sans nouvelle saisie de ce mot de passe. Pour supprimer un élément
de cette base de données, lancez le programme seahorse via le menu Système, Préféren-
ces, Chiffrement et trousseaux. seahorse peut aussi être utilisé pour gérer les clés GPG
et SSH.
Gravure Pour graver un CD audio, lancez Applications > Sons et vidéos > Serpentine Audio CD Crea-
de CD audio :
Serpentine tor. Serpentine ne fait pas partie de l’installation de base d’Ubuntu 8.04. Vous devrez donc
probablement l’installer vous-même grâce au gestionnaire de paquetages. Le fonctionne-
ment du programme est simple : ajoutez les fichiers audio par glisser-déposer, puis cliquez
sur Graver sur le disque.
Gravure de CD La gravure de CD intégrée à Nautilus est simple à utiliser, mais fournit peu de fonctions, par
de données :
GnomeBaker exemple pour graver des CD multisessions. Il faut pour cela utiliser des programmes plus
et Brasero avancés, tels que GnomeBaker ou Brasero.
64 LINUX
Si Gnome et KDE sont installés en parallèle sur votre ordinateur, il est probable que la connexion soit
gérée par KDM et non par GDM. Il faut alors configurer la connexion automatique avec le programme
KDE kcmshell . Pour savoir quel gestionnaire de connexion fonctionne, utilisez la commande
utilisateur$ ps ax |egrep ’gdm|kdm’
Dans les distributions SUSE et Novell, la configuration de cette fonctionnalité est indépendante du gestion-
naire de bureau. Elle est enregistrée dans le fichier /etc/sysconfig/displaymanager. Ne modifiez
donc pas la configuration via les outils KDE ou Gnome, mais par le biais de YaST, sans quoi les modifications
seront annulées à la première occasion.
Démarrage Lorsque vous vous déconnectez, les programmes sont arrêtés. Si vous désirez les redémar-
automatique
rer lors de votre prochaine connexion, lancez Système > Préférences > Sessions, puis activez
l’option Se souvenir automatiquement des applications en cours d’exécution lors de la
déconnexion.
Lorsque vous vous reconnecterez, tous les programmes en cours redémarreront. Certains
rechargent même les documents ouverts − mais cela ne fonctionne que pour les programmes
Gnome.
Gnome enregistre les programmes à démarrer automatiquement dans des fichiers .desktop
situés dans le répertoire ~/.configu/autostart. Les fichiers suivants sont pris en compte :
~/.config/autostart/*.desktop configuration personnelle
/usr/share/gnome/autostart/*.desktop configuration globale de Gnome
/etc/xdg/autostart/*.desktop configuration globale pour tous les bureaux, y
compris Gnome et KDE
Éditeur de La boîte de dialogue de configuration des programmes Gnome (en général Éditions > Préfé-
configuration
gconf-editor rences) ne contient que les options les plus importantes. Pour la plupart des utilisateurs, ces
options suffisent et les boîtes de configuration sont ainsi plus simples à utiliser.
Les utilisateurs avancés qui désirent accéder aux options supplémentaires peuvent lancer
l’éditeur de configuration gconf-editor, depuis un terminal ou l’outil d’exécution auquel
on accède grâce à Alt+F2.
La Figure 4.9 montre un exemple de l’éditeur de configuration. Si vous désirez que le gra-
veur de CD de Nautilus utilise la fonction burnproof de votre graveur, activez l’option apps/
nautilus-cd-burner/burnproof.
Définir les Par défaut, Gnome utilise Firefox comme navigateur web, Evolution comme programme de
programmes
par défaut courrier électronique et gnome-terminal comme programme de console. Si vous désirez
changer ces applications, allez dans Système > Préférences > Applications préférées, ou
dans le programme gnome-default-application-properties. Les applications associées
aux divers supports amovibles sont définies dans gnome-volume-properties (ou dans
Systèmes > Préférences > Périphériques et médias amovibles).
Linux Livre Page 65 Mardi, 23. septembre 2008 1:05 13
GNOME 65
Figure 4.9
gconf-editor.
Surveillance En général, j’aime savoir comment se porte mon système. J’ai donc placé sur mon tableau de
du système
bord les deux applets Moniteur système et Moniteur de changements de fréquence du pro-
cesseur. La première montre la charge processeur courante et, selon la configuration, l’utili-
sation de la mémoire, l’activité réseau, etc. La seconde indique la fréquence du processeur,
ce qui est pratique pour les processeurs dont la fréquence s’adapte à leur utilisation. Si vous
avez un ordinateur multiprocesseurs ou multicœurs, utilisez une applet par cœur de processeur.
Raccourcis Certaines opérations courantes peuvent être effectuées plus rapidement au clavier qu’à la
clavier
souris. Le programme gnome-keybindings-properties résume les différents raccourcis
clavier et permet d’en définir de nouveaux. On y accède grâce à Systèmes > Préférences >
Raccourcis clavier.
Configuration Le clavier est configuré via le système graphique X, mais les utilisateurs de Gnome peuvent
du clavier
surcharger cette configuration grâce à Système > Préférences > Clavier qui lance le pro-
gramme gnome-keyboard-properties. Les personnes travaillant en plusieurs langues sou-
haitent souvent changer facilement de clavier. Pour cela, le plus simple est d’utiliser l’applet
Indicateur de claviers.
Linux Livre Page 66 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 67 Mardi, 23. septembre 2008 1:05 13
KDE
5
KDE est une alternative populaire à l’environnement de bureau Gnome, présenté au chapi-
tre précédent. Il répond en principe aux mêmes besoins, mais se différencie par son aspect et
utilise en interne des bibliothèques et des protocoles différents. L’acronyme KDE, qui signi-
fiait au départ Kool Desktop Environment, s’est plus tard décliné en K Desktop Environment.
KDE fournit, comparativement à Gnome, plus de fonctionnalités et de possibilités de confi-
guration qui s’adressent plutôt aux utilisateurs expérimentés de Linux. Son utilisation est
un peu plus compliquée, ce qui explique pourquoi de nombreuses distributions se basent
par défaut sur Gnome. KDE est alors fourni en option. Mais ne vous laissez pas impression-
ner. Si votre distribution fournit les paquetages appropriés, rien ne s’oppose à une installa-
tion de KDE et de Gnome en parallèle. Vous pourrez alors choisir l’environnement que vous
désirez lancer lors de la connexion.
KDE se base sur Qt, une bibliothèque commerciale de l’entreprise TrollTech. Qt est sous
licence GPL dans le cadre de projets libres. Son utilisation commerciale n’est nécessaire que
lorsqu’elle est à la base d’un logiciel développé sous licence propriétaire.
Comme Gnome, KDE diffère largement d’une distribution à une autre, que ce soit au niveau
de l’écran de connexion, des éléments du menu de démarrage, du comportement du bureau
et du choix des programmes. Dans ce chapitre, nous nous baserons sur la version 4.0.3 de
KDE d’openSUSE 11. openSUSE 11 est, à l’heure où nous écrivons ces lignes, la distribution
qui offre les meilleurs paquetages de KDE 4.
KDE 4.0 Ces dernières années, les développeurs de KDE ont travaillé sur une toute nouvelle version du
bureau. La version 4.0, disponible en janvier 2008, a été la source de nombreuses déceptions. En
effet, elle ne proposait que les bases du futur système de bureau : diverses bibliothèques et inter-
faces, dont Phonon (une API multimédia) et Solid (interactions avec le matériel). Vous trouverez
plus d’informations à ce sujet aux adresses http://phonon.kde.org et http://solid.kde.org.
Malheureusement, de nombreuses applications de KDE 4.0 n’utilisent pas encore ces biblio-
thèques et font toujours appel à celles de KDE 3. De plus, les "vraies" applications KDE 4
laissent encore à désirer en termes de stabilité. En résumé, l’utilisation de KDE 4.0 n’est
conseillée qu’aux développeurs de KDE et aux passionnés. Elle ne fonctionnera probable-
ment bien que pour les versions 4.1, voire 4.2. En attendant, les utilisateurs ont le choix entre
un KDE 3.5, stable mais un peu daté, et Gnome.
KDE et la L’une des différences les plus frappantes entre KDE et les autres interfaces utilisateur est le
souris
comportement de la souris. Sous KDE, un seul clic (et non un double-clic) suffit pour ouvrir
des fichiers, ainsi que pour les opérations similaires. Cela peut être déroutant au départ,
mais permet de travailler de manière plus efficace et confortable. De plus, si vous ne vous
habituez pas au simple clic, vous pouvez reconfigurer KDE dans ce sens. Pour cela, lancez le
programme Configuration du système, puis choisissez le module Clavier & Souris, ouvrez
l’onglet Souris et activez l’option Utiliser le double-clic pour ouvrir les dossiers et les fichiers.
Linux Livre Page 68 Mardi, 23. septembre 2008 1:05 13
68 LINUX
Figure 5.1
Le bureau KDE.
Linux Livre Page 69 Mardi, 23. septembre 2008 1:05 13
KDE 69
Plasma La nouveauté graphique la plus visible de KDE 4 est Plasma. Ce composant permet de pla-
cer des objets interactifs sur le bureau ou le tableau de bord, et de les utiliser. Cette fonction-
nalité est comparable à celle de Dashboard d’Apple. De plus, Plasma est responsable de
l’affichage des icônes sur le bureau et le tableau de bord.
Zone de travail La zone de travail est au départ plutôt vide, en dehors de quelques icônes pour la corbeille,
des programmes importants et les supports de données externes. Vous pouvez créer
d’autres fichiers et répertoires sur le bureau − ils seront représentés sous la forme d’icônes.
Dans KDE 4, on peut lancer des petits programmes, appelés plasmoïdes, directement sur le
bureau. Vous pouvez les ajouter en quelques clics à partir de l’icône Plasma en haut à droite
de l’écran. Le choix est encore limité, mais cela évoluera probablement avec les prochaines
versions de KDE. L’horloge en haut à droite de la Figure 5.1 sur le bureau en est un exemple.
Si vous utilisez des icônes et des plasmoïdes sur votre bureau, le raccourci Ctrl+F12 peut
être utile : il minimise toutes les fenêtres et n’affiche que les éléments du bureau. Si vous
saisissez à nouveau ce raccourci, les fenêtres reviennent à leur position initiale.
La position et la taille des icônes et des plasmoïdes est enregistrée dans le fichier ~/.kde4/
share/config/plasma-appletrc. Lorsque vous créez des fichiers et des dossiers sur le
bureau, ils sont en réalité enregistrés dans ~/Desktop.
Tableaux de Un tableau de bord est une zone rectangulaire située sur l’un des côtés de l’écran (habituel-
bord
lement, en bas). Il n’a en soi aucune fonction ; il n’est qu’un conteneur de plasmoïdes. Cer-
tains éléments de base comme le menu et la barre des tâches sont, sous KDE 4, des
plasmoïdes. On peut donc, même si ce n’est pas courant, placer le menu, la liste des tâches
et d’autres contenus habituels du tableau de bord directement sur le bureau. L’avantage
principal du tableau de bord est qu’il n’est pas recouvert par les fenêtres.
Le menu contextuel Options pour tableau de bord > Paramètres du panneau permet d’en
modifier la taille et la position. Il est cependant déconseillé de le placer à droite ou à gauche,
car il n’est pas optimisé pour une représentation verticale.
Menu KDE Le plasmoïde le plus important est sans doute le menu KDE (voir Figure 5.2). Complètement
refondu depuis KDE 3, il se divise en cinq catégories :
• Favoris contient les principaux programmes de l’utilisateur. La liste n’est pas actualisée
automatiquement (en se basant, par exemple, sur la fréquence à laquelle les program-
mes sont utilisés). Il faut indiquer explicitement dans l’onglet Applications ceux qui
doivent s’y trouver à l’aide du menu contextuel.
• Applications contient une liste hiérarchisée de tous les programmes. La navigation est
différente de celle d’un menu habituel et demande un peu d’habitude.
• Poste de travail permet de lancer divers programmes d’administration et d’ouvrir cer-
tains répertoires importants : le répertoire personnel, le répertoire racine, la corbeille,
divers supports de données externes, etc.
• Utilisé récemment contient une liste des programmes, fichiers et répertoires utilisés
récemment.
• Quitter contient les commandes pour se déconnecter, changer d’utilisateur et redémarrer
l’ordinateur.
Linux Livre Page 70 Mardi, 23. septembre 2008 1:05 13
70 LINUX
Figure 5.2
Le menu KDE.
Indépendamment de ces catégories, le menu KDE contient une fonction de recherche. Elle
est particulièrement utile pour lancer des programmes rapidement sans avoir à naviguer
dans le menu Applications.
Selon la distribution, vous pouvez aussi utiliser l’ancienne forme du menu. Pour cela, cliquez du bouton droit
sur le bouton du menu et choisissez Passer au style de menu KDE classique.
Liste des Le plasmoïde Liste des tâches affiche une icône pour chaque fenêtre et correspond à la barre
tâches
des tâches de Windows. Malheureusement, il ne permet que des modifications de configu-
ration limitées, contrairement à celui sous KDE 3.
C’est le gestionnaire de fenêtres qui gère le comportement des fenêtres : déplacement,
agrandissement, minimisation, etc. Sous KDE, c’est le rôle du programme KWin. Le module
Comportement des fenêtres de la Configuration du système permet de modifier de nom-
breuses propriétés : ce que font les boutons de la souris lorsqu’on les utilise dans la barre de
titre d’une fenêtre, sous quels critères une nouvelle fenêtre est placée, le verrouillage éventuel
des fenêtres contre le déplacement, etc.
On peut aussi effectuer de nombreuses opérations sur les fenêtres au clavier. Les raccourcis cor-
respondants se trouvent dans le menu Clavier & Souris de l’outil de configuration du système.
Espaces de Les espaces de travail permettent de partager les fenêtres de programmes sur plusieurs
travail
bureaux virtuels et de passer d’un bureau à un autre. Cela facilite le travail et améliore la
vue d’ensemble lorsque plusieurs fenêtres sont ouvertes simultanément. La gestion de ces
espaces est déléguée au plasmoïde Bip (Configurer les mini-bureaux). La boîte de configuration
permet d’indiquer le nombre de bureaux souhaités, ainsi que d’autres options.
Pour les fenêtres importantes, on peut définir si elles doivent se trouver sur tous les bureaux
(et non sur un seul). Pour cela, activez l’option Vers le bureau, Tous les bureaux dans le
menu de la fenêtre.
Linux Livre Page 71 Mardi, 23. septembre 2008 1:05 13
KDE 71
Boîte à Lorsque le panneau contient une boîte à miniatures, les programmes en tâche de fond peu-
miniatures
vent afficher une notification dans le tableau de bord (par exemple, lorsqu’une mise à jour
est disponible ou qu’un courrier électronique vient d’arriver). Cette boîte se trouve généra-
lement à droite ou en bas du panneau. Elle n’a en soi aucune fonction : il s’agit d’un conteneur
où les autres programmes peuvent représenter une icône.
Notification Le plasmoïde Notification de nouveaux périphériques indique qu’un nouveau support de
de nouveaux
périphériques données est connecté et permet d’ouvrir le système de fichiers ou de démonter l’arbores-
cence correspondante.
5.2 Dolphin
Sous KDE, Dolphin est le gestionnaire de fichiers par défaut.
Vues En général, vous pouvez lancer Dolphin via le menu KDE dans Poste de travail, Dossier per-
sonnel. Au centre de la fenêtre s’affichent les fichiers pour lesquels il existe trois modes de
représentation (voir Figure 5.3) : Icônes, Détails et Colonnes. Le mode Colonnes affiche chaque
sous-répertoire dans une nouvelle colonne.
Figure 5.3
Les trois modes
de représentation
de Dolphin.
Le bouton Aperçu active, quel que soit le mode d’affichage, un aperçu des documents. La
taille de cet aperçu peut être modifiée dans Configuration > Configurer Dolphin > Modes de
vue > Icônes.
Pour les opérations de copie et de déplacement, on peut scinder la fenêtre horizontalement
ou verticalement, grâce au bouton Scinder.
Linux Livre Page 72 Mardi, 23. septembre 2008 1:05 13
72 LINUX
Le répertoire courant s’affiche dans une barre de navigation sous le menu. Ctrl+L permet de
basculer entre deux vues de cette barre : en tant que boutons, ce qui permet de changer rapi-
dement de répertoire, ou sous forme de texte, ce qui permet de saisir rapidement un nouveau
chemin. Indépendamment du mode de cette barre, F6 permet de saisir un nouveau chemin.
Barres À gauche, à droite et en bas du contenu de la fenêtre, vous pouvez afficher, à partir du menu
complémen-
taires Afficher, Barre ou grâce aux touches F4, F7, F9 et F11, un terminal, la hiérarchie des répertoi-
res, une liste des emplacements les plus souvent utilisés ou encore des informations sur un
fichier donné.
Accès aux Le menu KDE affiche dans le groupe Poste de travail, Stockage amovible, toutes les parti-
supports de
données tions montées, ainsi que les supports externes (CD, DVD, etc.). Lorsque vous connectez un
lecteur USB ou Firewire, le tableau de bord affiche l’information correspondante. Un clic
permet d’ouvrir le gestionnaire de fichiers et d’afficher le contenu du support. Avant de
débrancher le lecteur, vous devez lancer la commande Éjecter du menu contextuel ou Reti-
rer en toute sécurité dans la barre Emplacements de Dolphin. C’est la seule manière de
s’assurer que tous les fichiers sont fermés et qu’aucune perte de données ne surviendra.
Accès aux La barre Emplacement de Dolphin permet aussi d’accéder au réseau local. Mes tests n’ont
répertoires
réseau pas été concluants quant au parcours du réseau. En revanche, le fait d’indiquer directement
une adresse sous la forme smb://nom_du_serveur/répertoire fonctionne.
5.3 Konqueror
Le programme Konqueror est un gestionnaire de fichiers pour les utilisateurs avancés, un
navigateur web, un client réseau (FTP, SCP, répertoires Windows, etc.) et une visionneuse de
documents (images, fichiers d’aide, etc.).
En raison des nombreuses fonctions de Konqueror, son menu est malheureusement sur-
chargé et peu clair. De plus, mes tests ont mis en évidence une grande instabilité de Konque-
ror − de nombreuses opérations qui fonctionnaient sans problème sous KDE 3 sont
actuellement plus délicates sous KDE 4.
KDE 73
Figure 5.4
Konqueror en tant que
gestionnaire de fichiers.
Pour copier ou déplacer des fichiers, vous utiliserez souvent deux fenêtres de Konqueror. Il existe une alter-
native : vous pouvez aussi scinder une fenêtre en deux grâce à Fenêtre, Scinder la vue gauche/droite ou
Fenêtre, Scinder la vue haut/bas.
Images Konqueror peut afficher des images d’aperçu pour tous les formats de fichiers qu’il connaît
d’aperçu
(choisir Affichage, Aperçu dans le menu). On peut modifier la taille des icônes d’aperçu
grâce à Ctrl++ et Ctrl+–. Pour des raisons d’efficacité, les images d’aperçu ne s’affichent que
pour les fichiers dont la taille est inférieure à une taille donnée, limite que l’on peut modifier
dans Configuration > Configurer Konqueror > Aperçus & Méta-informations. Les images
sont mises en cache dans le répertoire ~/.thumbnails.
Fichiers cachés Pour afficher les fichiers cachés (dont le nom commence par un point), lancez Affichage >
Afficher les fichiers cachés.
Droits d’accès Un utilisateur ne peut pas lire ou modifier tous les dossiers ou répertoires. Linux enregistre
donc pour chaque fichier et répertoire le propriétaire et les droits d’accès. Les concepts sous-
jacents seront expliqués au Chapitre 13. Pour modifier ces droits, cliquez du bouton droit
sur le fichier ou le répertoire, puis allez dans Propriétés > Droits d’accès (voir Figure 5.5).
Supprimer Lorsque vous supprimez des fichiers et des dossiers, ceux-ci arrivent d’abord dans la cor-
des fichiers
beille. Vous pouvez en voir le contenu dans le gestionnaire de fichiers grâce à Aller > Corbeille.
Pour les supprimer définitivement, sélectionnez-les dans la corbeille et appuyez sur Suppr.
Pour les supprimer sans qu’ils passent par la corbeille, appuyez sur Maj+Suppr.
Utilisation du Si vous désirez savoir dans quels répertoires se trouvent les plus grosses quantités de don-
disque dur
nées, vous pouvez utiliser le mode Affichage de la taille de fichiers. Konqueror affiche un
graphique qui se compose de rectangles, dont la surface représente la taille des fichiers.
Ce graphique peut aussi s’afficher sans les éléments spécifiques à Konqueror, grâce à la
commande fsview.
Linux Livre Page 74 Mardi, 23. septembre 2008 1:05 13
74 LINUX
Figure 5.5
Droits d’accès à un fichier.
Adresses spéciales
La liste suivante indique les adresses spéciales les plus importantes de Konqueror.
KDE 75
Réseau
http://www.pearson.fr adresse web
ftp://utilisateur@mars/répertoire serveur FTP sur l’ordinateur mars
sftp://utilisateur@mars/répertoire serveur SFTP sur l’ordinateur mars
fish://utilisateur@mars/répertoire accès SSH à l’ordinateur mars
smb://mars/partage partage Windows
Aide
man:ls page de manuel de la commande ls
info:emacs page info du programme emacs
help:kmail aide KDE du programme kmail
Autres
applications:/ liste de tous les programmes
fonts:/ liste de toutes les polices
remote:/ navigateur réseau
settings:/ module de configuration du centre de contrôle
76 LINUX
Figure 5.6
Le centre de contrôle
de KDE.
La commande kprinter peut également remplacer lpr. Elle imprime le fichier ou les don-
nées qui lui sont passées via un redirecteur pipe, |. La boîte de dialogue KDE d’impression
s’affiche alors.
utilisateur$ kprinter fichier
utilisateur$ ls -l | kprinter
Archiver des Konqueror permet de visualiser et d’extraire les fichiers qui se terminent par *.tar.gz,
fichiers : Ark
*.tgz et *.zip. Cependant, vous ne pouvez pas créer de nouvelle archive ou en modifier
une existante par ce biais. Pour cela, il faut utiliser Ark, qui fonctionne d’une manière tout à
fait comparable à WinZip.
Application konsole permet de lancer un ou plusieurs interpréteurs de commandes dans une console
de terminal :
Konsole texte. Vous pouvez passer d’un terminal à un autre avec Maj et les flèches de direction.
Ctrl+Maj et les flèches de direction permettent de changer l’ordre des onglets. Pour créer un
nouvel onglet, double-cliquez dans la barre.
Notez la possibilité, fort pratique, de copier des noms de fichiers par glisser-déplacer depuis
Konqueror.
Gestion des Lorsque vous remplissez un formulaire de connexion pour la première fois (par exemple, lors-
mots de
passe : que vous utilisez un outil web de courrier électronique comme IMP), un assistant de configura-
KWallet- tion du gestionnaire de portefeuilles apparaît. Le programme KWalletManager aide à sécuriser
Manager
les données. Lors d’une utilisation ultérieure de la même page, il remplira le formulaire pour
vous. Il est également utilisé pour centraliser les mots de passe et autres informations critiques
dans KMail/Kontact, dans NetworkManager et dans divers autres programmes KDE.
L’accès à ces données, chiffrées dans KWalletManager, est sécurisé grâce à un mot de
passe maître. Lors d’une session KDE, il suffit de saisir une seule fois le mot de passe maître.
Lors de la première utilisation de KWalletManager, un assistant vous aide à la configuration
de base du programme. Celle-ci se limite à valider l’utilisation de KWalletManager comme
Linux Livre Page 77 Mardi, 23. septembre 2008 1:05 13
KDE 77
gestionnaire de mots de passe et à saisir un mot de passe maître. Pour des raisons de sécu-
rité, ce dernier doit être différent du mot de passe associé au compte.
PDF et Lorsque vous cliquez sur un fichier *.pdf ou *.ps, le programme Okular se lance et affiche
PostScript :
Okular le document. Vous pouvez alors le parcourir, imprimer des pages, etc.
Gestion des Si vous utilisez des clés GPG pour chiffrer ou signer vos courriers électroniques, ou dans
clés GPG :
Kgpg d’autres programmes, il est utile de disposer d’un outil central de gestion des clés. Sous
KDE, c’est le programme Kgpg qui s’en charge.
Éditeurs de Selon la distribution, trois éditeurs de texte peuvent être installés avec KDE : KEdit, KWrite
texte : KEdit,
KWrite, Kate et Kate. Les deux premiers sont simples à utiliser, mais ne fournissent que les fonctions de
base. Kate se positionne comme un éditeur pour les programmeurs et les utilisateurs avan-
cés. Vous pouvez regrouper plusieurs fichiers ouverts dans une session, replier des parties
de code (fonctions, classes), etc.
Presse- Le programme Klipper est normalement lancé sous KDE. Son fonctionnement de base est de
papiers :
Klipper mémoriser le dernier élément inséré dans le presse-papiers. Le contenu de cet élément est ana-
lysé et peut déclencher des actions. Par exemple, un élément commençant par http:// peut
entraîner l’ouverture d’une fenêtre qui permet d’ouvrir l’adresse web dans un navigateur.
Renommage KRename permet de renommer efficacement des fichiers, de les numéroter ou encore de
de fichiers :
KRename modifier des informations, telles que la date. On peut utiliser à cette fin les expressions
rationnelles. Avant toute opération, KRename affiche un résumé des anciens et des nouveaux
noms de fichiers.
Gravure de CD K3b est le programme de gravure le plus polyvalent sous Linux. Sa multitude de fonctions attire
et de DVD :
K3b même certains utilisateurs convaincus de Gnome. Il permet de graver des CD et des DVD, y
compris multisessions, avec de nombreuses options. On peut aussi copier des CD et des DVD,
ou encore graver des images ISO. K3b n’est pas encore porté complètement sous KDE 4 et utilise
des bibliothèques KDE 3. Le grand nombre d’options et de boîtes de dialogue disponibles peut
paraître effrayant à première vue, mais les choix par défaut sont généralement sensés.
Si Gnome et KDE sont installés en parallèle sur votre ordinateur, il est probable que la connexion soit gérée par
KDM et non par GDM. Il faut alors configurer la connexion automatique avec le programme KDE kcmshell.
Pour savoir quel gestionnaire de connexion fonctionne, utilisez la commande
utilisateur$ ps ax |egrep ’gdm|kdm’
Linux Livre Page 78 Mardi, 23. septembre 2008 1:05 13
78 LINUX
Dans les distributions SUSE et Novell, la configuration de cette fonctionnalité est indépendante du gestion-
naire de bureau. Elle est enregistrée dans le fichier /etc/sysconfig/displaymanager. Ne modifiez
donc pas la configuration via les outils KDE ou Gnome, mais par le biais de YaST, sans quoi les modifications
seront annulées à la première occasion.
Démarrage Lorsque vous vous déconnectez, les programmes sont arrêtés. À la connexion suivante,
automatique
KDE tente de les redémarrer et de rétablir la session. Pour les programmes KDE, cela fonc-
tionne relativement bien. Pour d’autres, cela fonctionne avec certaines limitations (par
exemple, le document ouvert n’est pas rechargé), voire pas du tout. Les détails de ce compor-
tement se règlent dans le module Avancé > Gestionnaire de session.
Indépendamment de la session, vous pouvez enregistrer les programmes à démarrer automati-
quement dans le répertoire ~/.kde[4]. KDE s’attend à trouver dans ce dossier des fichiers
*.desktop qui définissent le programme à lancer. Il arrive qu’un programme soit alors lancé en
double : une fois pour le rétablissement de la session et une fois par le démarrage automatique.
KDE utilise plusieurs répertoires pour connaître les applications à lancer :
~/.kde[4]/Autostart/ configuration personnelle
/usr/share/autostart/ configuration globale de KDE
/etc/xdg/autostart/ configuration globale pour tous les bureaux, y compris Gnome
et KDE
Administration Lorsque vous avez un problème avec votre ordinateur, par exemple lorsqu’un programme
distante
ne fonctionne pas correctement, un ami peut vous aider grâce à l’administration à distance.
Il peut ainsi voir dans une fenêtre de son ordinateur le contenu de votre écran et utiliser tous
les programmes avec la souris et le clavier.
Répertoires de La plupart des programmes KDE enregistrent leurs options dans des fichiers du réper-
configuration
toire ~/.kde/ ou ~/.kde4/. Plusieurs sous-répertoires sont créés, et en particulier les
répertoires suivants :
~/.kde[4]/Autostart/ configuration personnelle du démarrage automatique
~/.kde[4]/share/config/ paramètres de configuration
~/.kde[4]/share/apps/ fichiers spécifiques aux programmes
Icône de L’écran de connexion peut associer une petite image à chaque utilisateur. Pour la modifier,
connexion
lancez la commande kcmshell kcm_useraccount. Vous pouvez changer votre mot de passe,
l’icône de connexion, ainsi que d’autres paramètres personnels. L’icône de connexion est
enregistrée au format PNG dans le fichier ~/.face.icon.
Définir les Par défaut, KDE utilise Konqueror comme navigateur web, Kontact comme programme de
programmes
par défaut courrier électronique et Konsole comme programme de console. Si vous désirez changer ces
applications, allez dans le module Applications par défaut de la Configuration du système.
Raccourcis Certaines opérations courantes peuvent être effectuées plus rapidement au clavier qu’à la
clavier
souris. Des raccourcis peuvent s’afficher et être modifiés dans le module Clavier & Souris >
Raccourcis clavier.
Vous pouvez aussi définir des raccourcis pour démarrer des programmes. Utilisez pour cela
kmenuedit et associez un raccourci clavier à un élément du menu KDE.
Linux Livre Page 79 Mardi, 23. septembre 2008 1:05 13
Navigateurs Internet
6 (Firefox, Konqueror)
Ce chapitre se focalise essentiellement sur les deux navigateurs Internet les plus
populaires sous Linux, Firefox et Konqueror. Si je n’aborderai que brièvement
leur utilisation (vous savez déjà comment naviguer sur le Web), vous trouverez
en revanche ici des astuces de configuration, d’installation de greffons (Adobe
Reader, Flash, Java), etc.
E-mail, FTP, Les clients de lecture et de composition d’e-mails seront présentés au prochain
SSH
chapitre. Vous trouverez au Chapitre 16 les astuces concernant le téléchar-
gement de fichiers par FTP, wget et Torrent, et celles traitant de la manipulation
de SSH et scp.
Messagerie Les services Internet IRC (Internet Relay Chat) et IM (messagerie instantanée ou Ins-
instantanée,
VoIP tant Messaging) ne seront pas traités dans le cadre de cet ouvrage : dans les deux
cas, il s’agit de formes de communication dynamiques impliquant un contact
direct entre les interlocuteurs (c’est-à-dire que les deux personnes doivent être en
ligne simultanément). Si vous souhaitez utiliser uniquement IRC, le programme
XChat (http://www.xchat.org/) est un bon choix. Les programmes Kopete (http://
kopete.kde.org/) et Konversation (sous KDE) ainsi que Pidgin (http://www.pid-
gin.im/) (sous Gnome et anciennement connu sous le nom gaim) sont quant à eux
des clients universels qui prennent en charge divers protocoles de messagerie ins-
tantanée en plus d’IRC (par exemple AIM, ICQ, MSN et Yahoo!) [http://lwn.net/
Articles/216456/ (article en anglais)].
Un autre point que nous laisserons de côté dans cet ouvrage est le sujet de la
Voix sur IP (abrégé en VoIP) et de la téléphonie sur Internet. Le programme le
plus connu pour cet usage est le logiciel commercial Skype (http://
www.skype.com/download/skype/linux/). La version Linux en est gratuite,
mais elle est quelque peu obsolète comparée à son homologue Windows. Ekiga
(http://ekiga.org/) est, par exemple, une alternative open-source intéressante à
Skype.
6.1 Firefox
Histoire Firefox peut se réjouir d’une adoption croissante sous Windows, mais il est éga-
et nom
lement et de très loin le navigateur Internet le plus populaire sous Linux. Voici,
rapidement, quelques mots présentant l’origine du logiciel : en 1998, la société
Netscape a "libéré" le code source de Netscape Navigator, qui est donc devenu
un projet open-source. Dans le cadre du projet Mozilla a vu le jour la suite appli-
cative Mozilla, qui comprenait un navigateur web, un client de courrier électro-
nique et de news, ainsi qu’un éditeur HTML, le tout en une seule application.
En 2002, parce que le code était devenu illisible, les développeurs ont décidé
Linux Livre Page 80 Mardi, 23. septembre 2008 1:05 13
80 LINUX
d’en séparer les différents composants. Depuis lors, le nouveau logiciel Mozilla Firefox ne
contient que les fonctionnalités de navigation web, tandis que le logiciel Mozilla Thunder-
bird (que nous présentons au chapitre suivant) gère les fonctionnalités de courrier électroni-
que et de news. D’autres rejetons de ce projet, que nous ne présentons pas dans cet ouvrage,
sont l’éditeur HTML Nvu et l’agenda Mozilla Sunbird.
Certains développeurs du projet Mozilla, sceptiques quant à la séparation des fonctionnali-
tés, ont fondé un nouveau projet dénommé Seamonkey et destiné à unifier de nouveau tou-
tes ces fonctions dans un même logiciel. AOL a par ailleurs un temps proposé sa propre
version personnalisée, fondée sur le code de Mozilla. Ce chapitre ne s’intéressera toutefois
qu’à la version 3.0 de l’outil Mozilla Firefox en tant que tel.
Firefox et Par le passé, les termes de licence plutôt drastiques du projet Firefox ont causé des remous
Debian
chez bien des développeurs Linux : bien qu’il s’agisse de code open-source, un programme
ne peut s’appeler Firefox que s’il contient du code source "officiel" produit par les déve-
loppeurs Firefox. Ce qui a en particulier conduit à des problèmes fréquents lors des mises à
jour : de nombreuses distributions Linux proposaient une version de Firefox intégrée à la
distribution et lui ajoutaient toutes les mises à jour de sécurité au fur et à mesure, plutôt que
systématiquement contraindre leurs utilisateurs à mettre à niveau leur installation vers la
dernière version de Firefox. De telles mises à jour de sécurité ne répondaient toutefois pas
aux conditions d’utilisation de la licence Firefox.
Même si, sur ce point, les camps de Linux et Firefox sont parvenus à un compromis grâce à Mark
Shuttleworth (Ubuntu), Debian a choisi d’intégrer le navigateur Web Firefox et le client de cour-
rier électronique Thunderbird à sa distribution sous des noms qui lui sont propres. Ainsi, sous
Debian, Firefox s’appelle Iceweasel et Thunderbird s’appelle Icedope. Ceci permet à Debian de
proposer des modifications du code ou des icônes propres sans avoir à se préoccuper de Firefox.
Fonctionnalités de base
L’utilisation du navigateur ne présente rien de nouveau par rapport à ce à quoi vous êtes
habitué avec n’importe quel autre navigateur : vous cliquez sur des liens, enregistrez des
signets pour les pages importantes, etc. Je ne reviendrai pas ici sur ces fonctionnalités élémen-
taires, je pense que vous les maîtrisez déjà.
Comme tous les navigateurs Internet modernes, Firefox peut ouvrir plusieurs pages au sein
d’une même fenêtre, à l’aide des onglets. Pour ouvrir une nouvelle sous-fenêtre, on utilise
soit la combinaison de touches Ctrl+T, soit un clic droit de la souris sur un lien pour choisir
Ouvrir le lien dans un nouvel onglet, dans le menu contextuel qui apparaît. Les combinai-
sons de touche Ctrl+PgPréc ou Ctrl+PgSuiv permettent de passer d’un onglet à l’autre.
Ctrl+W permet de fermer l’onglet courant.
Fenêtres De nombreux sites web utilisent JavaScript pour ouvrir des fenêtres "pop-up" de publicité.
pop-up
Firefox l’empêche dans la plupart des cas et affiche un avertissement sous la barre d’adresse.
Si vous le souhaitez, vous pouvez, en cliquant sur cet avertissement, autoriser l’ouverture
de la fenêtre pop-up qui a été bloquée ou autoriser systématiquement les fenêtres pop-up
pour le site web concerné. Par exemple, le système de gestion des comptes en ligne de ma
banque ne fonctionne que par fenêtre pop-up. J’ai donc exclu le site de ma banque de la
protection contre les fenêtres pop-up.
Linux Livre Page 81 Mardi, 23. septembre 2008 1:05 13
Figure 6.1
Le navigateur
web Firefox.
Pour configurer la gestion des fenêtres pop-up ainsi que la liste des sites autorisés, passez
par la boîte de dialogue Édition > Préférences > Contenu.
Affichage des Firefox tente de reconnaître automatiquement le jeu de caractères des pages web, ce qui
caractères
étrangers fonctionne généralement bien. Dans certains cas rares, toutefois, le navigateur échoue et
affiche alors mal les caractères étrangers (y compris les caractères accentués français, par
exemple). Dans de tels cas, vous devez participer à la reconnaissance du jeu de caractères.
Essayez par exemple de choisir Affichage > Encodage des caractères > Unicode (UTF-8) ou
> Occidental (ISO-8859-1).
Recherche Édition > Rechercher ou la combinaison de touches Ctrl+F permettent d’ouvrir une boîte de
de texte
dialogue de recherche. Plus rapide encore, toutefois, la combinaison / A B C permet de loca-
liser le texte abc. Ctrl+G réitère la recherche. Utiliser ’ A B C constitue une variante qui permet
de rechercher des liens contenant le texte abc.
Recherche web Pour effectuer une recherche Google, plutôt que vous rendre sur la page www.google.com
ou www.google.fr, vous pouvez saisir le mot-clé de votre recherche directement dans le
champ figurant à droite de la barre de navigation. Outre Google, d’autres moteurs de
recherche y sont également préconfigurés. Le menu de sélection vous permet également
de définir un nouveau moteur de recherche. L’entrée de menu Ajouter des moteurs de
recherche vous conduit à une page du site Firefox grâce à laquelle vous intégrerez au menu
de recherche, en un seul clic de souris sur le lien correspondant, le moteur que vous aurez
choisi parmi un grand nombre de moteurs de recherche populaires proposés.
Marque-pages Vous pouvez consulter les marque-pages dans Firefox dans trois endroits différents : par le biais
(Bookmarks)
du menu Marque-pages, dans une barre d’outils (Affichage > Barre d’outils) ou dans le panneau
latéral, que vous pouvez activer ou désactiver par la combinaison de touches Ctrl+B. Pour enre-
gistrer un nouveau signet, vous utiliserez au choix la combinaison de touches Ctrl+D ou un glis-
ser-déposer de l’adresse courante dans la barre de signets ou dans le panneau latéral.
Lorsque vous souhaitez réorganiser vos signets, passez par Marque-pages > Gérer les mar-
que-pages. Une même boîte de dialogue vous permet d’effacer, de déplacer, de renommer,
de trier, d’exporter ou d’importer tous vos marque-pages. En interne à Firefox, les marque-
pages sont stockés dans une base de données SQLite correspondant au fichier :
~/.mozilla/firefox/nnnn.default/places.sqlite
Linux Livre Page 82 Mardi, 23. septembre 2008 1:05 13
82 LINUX
Marque-pages Les marque-pages intelligents sont une nouveauté de Firefox 3 : ils vous donnent un accès
intelligents
rapide aux dix signets les plus utilisés et aux dix derniers marque-pages enregistrés.
Flux RSS De nombreux sites web présentent régulièrement des nouveautés et proposent également
des liens vers les articles sous la forme de flux RSS. Il s’agit là de fichiers XML spécialement
mis en forme qui, à chaque nouveauté, proposent une description succincte ainsi qu’un lien.
Firefox peut présenter un flux RSS de ce type sous la forme de marque-pages dynamiques. Le
contenu du marque-page se met à jour automatiquement lorsque de nouvelles informations
sont disponibles. À chaque site web proposant un flux RSS, Firefox présente au côté droit de la
barre d’adresse un symbole orange ("S’abonner à cette page..."). Cliquez sur ce symbole et
confirmez ensuite la boîte de dialogue de configuration. Le marque-page dynamique apparaît
maintenant comme un groupe de marque-pages renvoyant aux entrées effectives du flux.
Historique Firefox conserve pour quelques jours le nom et l’adresse de chaque site web consulté. Cet
historique de navigation peut être affiché dans le panneau latéral par le biais de la combinai-
son de touches Ctrl+H, où vous pouvez également effectuer des recherches. Vous modifie-
rez la durée de stockage des pages visitées, qui est en standard configurée à 90 jours, dans
Édition > Préférences > Vie privée.
Téléchar- Pour télécharger un fichier sur votre ordinateur, il suffit dans la plupart des cas de cliquer sur le
gements
lien correspondant. Firefox vous demande alors si vous souhaitez ouvrir le fichier à l’aide d’un
programme externe ou l’enregistrer sur le disque dur. Si cela ne fonctionne pas, effectuez un
clic droit sur le lien et choisissez Enregistrer la cible sous. Pour les téléchargements dont la
durée dépasse quelques secondes, une boîte de dialogue d’état apparaît automatiquement.
Par défaut, les téléchargements Firefox sont enregistrés dans le dossier ~/Desktop. Si vous
souhaitez indiquer manuellement l’emplacement à chaque téléchargement, ouvrez Édition
> Préférences > Général et activez l’option Me demander où enregistrer chaque fichier.
Mots de passe Lorsque vous remplissez des formulaires de connexion (par exemple pour utiliser un ser-
vice de webmail), une boîte de dialogue apparaît qui vous demande si les informations de
connexion doivent être enregistrées. Cela vous épargne le fait de devoir saisir à nouveau
toutes les informations à la visite suivante.
Ce confort possède naturellement un prix : lorsqu’une personne étrangère a accès à votre ordi-
nateur, Firefox lui donne également accès à tous les sites web sécurisés par un mot de passe. Par
conséquent, vous pouvez protéger tous les mots de passe enregistrés par le biais d’un mot de
passe dit principal. Celui-ci sert à protéger l’ensemble des autres mots de passe. Par la suite,
vous devrez saisir le mot de passe principal à chaque session lorsque Firefox accède pour la
première fois à la base de données des mots de passe. Pour définir ce mot de passe,
ouvrez Édition > Préférences > Sécurité et activez l’option Utiliser un mot de passe principal.
Impressions Avant de lancer l’impression, vous pouvez choisir par le biais de Fichier > Mise en page la taille
du papier ainsi que l’orientation du document (portrait ou paysage). Fichier > Aperçu avant
impression vous permet d’avoir une idée de la mise en forme avant l’impression effective.
Fichier > Imprimer lance l’impression de la page et vous permet de choisir l’imprimante sou-
haitée ainsi que l’échelle à appliquer ou encore diverses options pour l’impression des cadres.
Dans de nombreuses distributions, Firefox utilise le format de papier américain US Letter, ce qui peut (sui-
vant l’imprimante) conduire à des problèmes en Europe. Pour fixer le format standard au format A4, ouvrez
Linux Livre Page 83 Mardi, 23. septembre 2008 1:05 13
Mises à jour Vous êtes peut-être familiarisé avec les mises à jour automatiques de Firefox disponibles
de Firefox
dans la version Windows. Sous Linux, ce type de mise à jour n’est pas possible. Ici, c’est
l’outil de gestion centralisée des paquetages qui gère l’ensemble des mises à jour. La plupart
des distributions Linux proposent un paquetage Firefox mis à jour à chaque fois qu’une
mise à jour Firefox est publiée.
Configuration
Fichiers de Firefox génère à son premier lancement le répertoire ~/.mozilla/firefox/profil.default,
configuration
où profil est une chaîne de caractères aléatoire. Dans ce répertoire, Firefox enregistre tous
les paramètres, les marque-pages, le cache, etc.
Proxy (serveur Si votre ordinateur est connecté à Internet ou à un réseau local mais que vous ne parveniez
mandataire)
pas à naviguer sur le Web, il est possible que votre réseau local utilise un serveur proxy, ou
serveur mandataire. C’est un ordinateur placé entre votre PC et Internet. Il sert de stockage
intermédiaire et accélère ainsi l’accès à des pages fréquemment consultées. Le proxy peut
également servir à bloquer l’accès à certaines pages données ou à journaliser tous les accès
web. Nous verrons au Chapitre 29 comment mettre en place un serveur proxy sous Linux.
Pour utiliser un serveur mandataire avec Firefox, ouvrez la boîte de dialogue Édition > Pré-
férences > Avancé, onglet Réseau puis bouton Paramètres, et renseignez l’adresse obliga-
toire du ou des serveurs proxy. En règle générale, il suffit de remplir les champs
correspondant aux serveurs proxy HTTP et FTP. Le numéro de port approprié est le 8080. Si
vous ne connaissez pas l’adresse de votre proxy, contactez votre administrateur système.
Taille des Si la taille des caractères d’une page donnée est trop grande ou trop petite à votre goût, vous
caractères
pouvez jouer sur le facteur d’agrandissement au moyen des combinaisons de touches
Ctrl++ ou Ctrl+–. Vous pouvez également faire tourner la molette de votre souris tout en
appuyant sur la touche Ctrl.
Pour modifier de façon permanente la taille par défaut des caractères, ouvrez la boîte de dialo-
gue Édition > Préférences > Contenu et configurez-y la police par défaut et sa taille d’affichage.
Le bouton Avancé vous permet aussi de paramétrer une taille minimale pour les polices.
Java et Par défaut, Java et JavaScript sont activés. Vous trouverez les options correspondantes dans
JavaScript
la boîte de dialogue Édition > Préférences > Contenu. Toutefois, Java ne fonctionnera que si
un environnement Java est installé conjointement à un greffon Mozilla (voir un peu plus
loin dans ce chapitre).
Cookies Les cookies sont de minuscules fichiers stockés sur votre ordinateur. Ils permettent à un
site web de vous reconnaître lors d’une visite ultérieure et d’enregistrer des informations
contextuelles. Par ailleurs, les cookies sont fréquemment nécessaires dans le cadre de
transactions commerciales (identification, panier d’achats).
Les cookies ne sont pas dangereux et améliorent dans bien des cas le confort de navigation.
Par conséquent, Firefox accepte par défaut les cookies de la majorité des sites web. L’usage
des cookies peut toutefois, dans une certaine mesure, être détourné pour garder une trace des
Linux Livre Page 84 Mardi, 23. septembre 2008 1:05 13
84 LINUX
sites web que vous consultez. Pour cette raison, la boîte de dialogue Édition > Préférences >
Vie privée permet de refuser la totalité ou une partie des cookies.
Cache local Firefox gère un cache local dans lequel sont enregistrées les dernières pages web, images,
etc. consultées. Si vous ouvrez ultérieurement la même page web et qu’elle n’ait pas changé
entre-temps, cette page peut alors être chargée directement depuis le cache local, ce qui est
naturellement beaucoup plus rapide. Par défaut, 50 Mo d’espace disque sont réservés pour
le cache. Vous pouvez augmenter ou diminuer ce volume par le biais de l’option Édition >
Préférences > Avancé > Réseau > Stockage hors connexion ; et également y vider le contenu
du cache. Dans la fenêtre principale, l’adresse about:cache vous renvoie la liste de tous les
fichiers actuellement stockés dans le cache.
about:config Vous pouvez modifier les paramètres de configuration essentiels grâce au confort des boîtes
de dialogue proposées par Édition > Préférences. Il existe par ailleurs d’innombrables options
supplémentaires, plus rarement utilisées. Lorsque vous saisissez l’adresse about:config dans
la barre d’adresse de Firefox, puis que vous appuyez sur la touche Entrée (voir Figure 6.2),
vous obtenez une liste alphabétique de ces options ainsi que leurs valeurs courantes. Le
champ de texte Filtre vous permet de limiter la liste des options affichées à celles correspon-
dant au texte fourni. Pour modifier la valeur d’une option, effectuez un double-clic sur celle-ci.
Figure 6.2
Configuration de Firefox.
Bouton central Firefox propose une fonctionnalité particulièrement utile vous permettant d’ouvrir rapidement
de la souris
des URL fournies sous la forme de texte (et non de liens). Pour ce faire, sélectionnez l’adresse en
question à l’aide de la souris. Il vous suffit alors de cliquer sur le bouton central de la souris
pour ouvrir directement l’adresse, entre-temps enregistrée dans le presse-papiers.
Sur certaines distributions, en particulier Ubuntu, cette fonctionnalité est malheureusement
désactivée. Pour l’activer, saisissez dans la barre d’URL l’adresse about:config et recherchez
ensuite l’option middlemouse.content-LoadURL. Un double-clic sur cette option vous permet
alors de la faire basculer de la valeur false à la valeur true.
MIME L’acronyme MIME signifie Multipurpose Internet Mail Extensions. MIME sert à indiquer au
navigateur web quel programme celui-ci doit lancer lorsque vous cliquez sur le lien corres-
pondant à un fichier MP3 ou PDF. Firefox prend en compte les paramètres MIME généraux
de Linux ainsi que les informations MIME de tous les greffons installés (voir un peu plus
loin dans ce chapitre). Le fichier XML ~/.mozilla/firefox/profil/mimeTypes.rdf (difficile
à lire) contient des paramètres supplémentaires pour la gestion des types MIME.
La boîte de dialogue Ouvrir (qui apparaît systématiquement lorsque Firefox reconnaît un
type MIME mais ne parvient pas à identifier le programme associé) est la méthode la plus
simple pour enregistrer de nouveaux paramètres MIME ou modifier des paramètres exis-
tants. Vous pouvez alors choisir un programme parmi la liste proposée ou fournir le chemin
Linux Livre Page 85 Mardi, 23. septembre 2008 1:05 13
complet d’un autre programme (sous Linux, la plupart des programmes sont situés dans le
répertoire /usr/bin).
La boîte de dialogue Édition > Préférences > Applications vous donne une vue d’ensemble de
tous les paramètres MIME spécifiques à Firefox. Vous pouvez également y modifier ou suppri-
mer des paramètres existants, mais non y ajouter de nouvelles entrées (voir Figure 6.3).
Figure 6.3
Paramètres MIME
de Firefox.
Xulrunner La plupart des distributions installent des paquets distincts pour Firefox (l’interface utilisa-
teur) et xulrunner (l’exécutable de rendu). Les fichiers xulrunner sont responsables de la pré-
sentation effective des pages web, c’est-à-dire de leur rendu. XUL est l’acronyme de XML
User Interfaces Language et comprend, outre l’exécutable de rendu à proprement parler (qui
se trouve dans la bibliothèque Gecko), divers composants supplémentaires.
La séparation entre Firefox et xulrunner présente l’avantage de permettre à d’autres pro-
grammes devant également assurer le rendu de pages HTML (par exemple le client e-mail
Thunderbird) d’accéder au paquetage commun xulrunner. Par le passé, chaque programme
devait installer son propre exécutable de rendu. Ceci conduisait donc à des redondances et
à des problèmes de maintenance.
86 LINUX
La boîte de dialogue Outils > Modules complémentaires > Catalogue propose quelques-
unes des extensions les plus populaires en téléchargement direct. Vous trouverez par
ailleurs des extensions supplémentaires en cliquant sur le lien Parcourir tous les modules
complémentaires, qui conduit à la page suivante : https://addons.mozilla.org/fr/firefox
Pour installer des extensions, il vous suffit alors de cliquer sur le lien du fichier XPI corres-
pondant. De nombreuses extensions ne prennent effet que lorsque vous relancez Firefox.
Outils > Modules complémentaires > Extensions vous donne un aperçu de toutes les exten-
sions déjà installées et vous permet également de les désinstaller.
Ubuntu propose certaines des extensions les plus populaires dans des paquetages propres. Ceci présente
l’avantage de pouvoir installer et mettre à jour ces extensions dans le cadre de la gestion des paquetages
d’Ubuntu (lien Obtenir les extensions Ubuntu dans la boîte de dialogue Outils > Modules complémentaires
> Catalogue).
Avant l’exécution du code d’installation XPI, Firefox vous adresse un avertissement : les fichiers XPI peuvent éga-
lement contenir du code malveillant. Prenez cet avertissement très au sérieux. Les risques potentiels posés par
les extensions Firefox sont comparables à ceux des fichiers ActiveX de Microsoft Internet Explorer ! N’installez
pas une extension si vous n’êtes pas convaincu de sa nécessité et de sa sécurité.
Par défaut, Firefox autorise l’installation de fichiers XPI provenant uniquement des sites web
addons.mozilla.org et update.mozilla.org. Si vous souhaitez accepter d’autres sites web ou d’autres
sources de fichiers XPI, vous devrez modifier dans la boîte de dialogue Édition > Préférences > Sécurité le
paramétrage correspondant à l’option Prévenir lorsque les sites essaient d’installer des modules complé-
mentaires.
6.2 Konqueror
Le programme Konqueror, déjà présenté au chapitre relatif à KDE, est un navigateur univer-
sel. Il permet de présenter des fichiers locaux, des pages web, des répertoires FTP, des ima-
ges, etc. Nous n’allons toutefois décrire ici que quelques particularités relatives à son
utilisation en tant que navigateur web.
Configuration Il n’existe probablement aucun autre navigateur sur lequel vous puissiez modifier autant de
paramètres de configuration. La boîte de dialogue accessible par Configuration > Configurer
Konqueror présente 18 modules, chacun comprenant lui-même plusieurs pages de paramètres !
Recherche Outre les recherches web traditionnelles, que vous pouvez effectuer de la même manière
rapide
que sur tout autre navigateur dans un champ de texte, vous pouvez aussi rechercher un
terme directement depuis la barre d’adresse. Des raccourcis spéciaux sont définis à cet
effet. Si, par exemple, vous saisissez dans la barre d’adresse gg:abc, une recherche sur le
terme abc est effectuée dans http://www.google.com. Vous pouvez compléter la liste des
raccourcis existants avec vos propres entrées par le biais du module de configuration Raccourcis
Web.
Mots de passe Konqueror enregistre les mots de passe et les informations de connexion dans le système de
gestion des mots de passe Kwallet de KDE (voir Chapitre 5).
Linux Livre Page 87 Mardi, 23. septembre 2008 1:05 13
Figure 6.4
Konqueror en tant
que navigateur web.
Extensions Konqueror utilise en règle générale les mêmes extensions que Mozilla (mais on parle dans le
cadre de Konqueror de "modules externes"). Lorsque celles-ci ne fonctionnent pas, jetez un
coup d’œil au module de configuration Modules externes : vous pourrez y vérifier quelles
extensions Konqueror a identifiées et configurer dans quels répertoires rechercher des
extensions. Le bouton Rechercher de nouveaux modules externes vous permet d’importer
dans la liste des extensions disponibles pour Konqueror celles que vous venez d’installer et
qui n’y apparaissent pas encore.
Lorsque Konqueror identifie certaines extensions Firefox et d’autres non, la cause probable
en est que Konqueror ignore le nouveau répertoire d’extensions xulrunner. Vous devez alors
ajouter (suivant votre distribution) le répertoire /usr/lib/xulrunner/plugins ou /usr/lib/
xulrunner-addons/plugins.
Outre les extensions Firefox, Konqueror propose également des extensions propres, spécifi-
ques à KDE. Parmi les fonctionnalités les plus populaires, on trouve la traduction des pages
web, une fonctionnalité de rafraîchissement automatique (Auto-refresh) des pages web
après un temps donné, ainsi qu’un afficheur DOM permettant de visualiser la structure
HTML d’une page web. Ces extensions doivent, bien souvent, être installées séparément.
Sur Fedora, elles sont par exemple regroupées dans le paquetage konq-plugins.
Java Konqueror n’utilise pas directement l’extension Java mais fait appel à KJAS (KDE Java applet
server, fichier kjavaappletviewer.so). KJAS lance lui-même l’interpréteur Java et donc le pro-
gramme java. Si Konqueror rencontre des difficultés pour trouver ce fichier, vous pouvez en
obtenir le chemin complet par le biais de la commande which java, puis copier le résultat de
cette commande dans le module de configuration de Konqueror intitulé Java et JavaScript.
88 LINUX
justement les programmes elinks, lynx et w3m. Par ailleurs, vous pouvez également utiliser
ces programmes pour convertir des documents HTML en texte simple.
L’utilisation de ces trois programmes est similaire. Les pages de manuel ainsi que le système
d’aide intégré documentent leurs nombreuses options ainsi que leurs raccourcis clavier.
Pour des raisons de place, je ne présenterai donc ici à titre d’exemple que le programme le
plus connu, Lynx.
Lynx L’utilisation de Lynx est simple : vous lancez en général ce programme avec, en paramètre,
l’URL d’un site web ou le chemin d’un fichier HTML. Lynx charge le document et présente
la première page, où les titres et liens sont identifiés par des couleurs différentes. Lorsque
vous lancez Lynx avec l’option -use_mouse, vous pouvez également faire appel à la souris :
un clic gauche vous permet de suivre un lien, le bouton central affiche un menu contextuel,
tandis que le bouton droit vous permet de revenir à la page précédente.
Par défaut, Lynx utilise pour l’affichage le jeu de caractères Latin-1. Pour représenter cor-
rectement les caractères spéciaux dans une console Unicode, saisissez également l’option
-display_charset=utf-8.
La commande suivante vous montre comment utiliser Lynx pour convertir du HTML en
texte simple :
utilisateur$ lynx -dump source.html > cible.txt
Adobe Reader
Adobe Reader est un programme qui permet de consulter des documents PDF. Il existe à cet
effet divers autres programmes Linux (Evince dans l’environnement Gnome, KPDF et Okular
dans KDE, ghostscript, etc.), mais Adobe Reader présente plusieurs avantages :
• meilleure qualité de rendu ;
• fonctionnalité d’impression sophistiquée ;
• confort d’utilisation ;
• diverses fonctionnalités supplémentaires (saisie de formulaires PDF, possibilité de réaliser
des modifications simples sur certains fichiers PDF spéciaux).
Le lecteur Adobe Reader est certes disponible gratuitement sur Internet mais, pour des rai-
sons de licence, la plupart des distributions ne sont pas en mesure d’intégrer des paquetages
Adobe Reader officiels à leur produit. Pour cette raison, vous devrez dans la très grande
majorité des cas télécharger directement le programme depuis le site web d’Adobe et l’ins-
taller manuellement.
Installation Vous trouverez à l’adresse suivante une version 32 bits du lecteur Adobe Reader sous la
manuelle
forme d’un paquetage Debian, d’un paquetage RPM ou d’une archive tar :
http://www.adobe.com/products/acrobat/readstep2_allversions.html
Linux Livre Page 90 Mardi, 23. septembre 2008 1:05 13
90 LINUX
Ces trois variantes comprennent également le plugin Firefox ainsi que la prise en charge du
JavaScript.
Pour installer le paquetage Debian ou RPM, procédez comme à l’accoutumée avec la com-
mande dpkg -i ou rpm -i. Pour installer l’archive TAR, exécutez dans une console la série
de commandes ci-après :
root# tar xzf Desktop/AdobeReader_n.n.tar.gz
root# cd AdobeReader
root# ./INSTALL
Adobe Reader prend en charge JavaScript. Ce langage de script peut être utilisé pour de nombreuses
fonctionnalités utiles, mais il présente également un risque de sécurité potentiel et peut servir à envoyer
des informations à la lecture d’un document PDF. Ceci constitue une invasion de votre vie privée. Vous
pouvez consulter sur ce site (en anglais) des informations supplémentaires à ce propos :
http://lwn.net/Articles/129729/
Pour désactiver JavaScript au sein d’Adobe Reader, ouvrez la boîte de dialogue Édition > Préférences >
JavaScript et décochez l’option correspondante.
Adobe/Macromedia Flash
Le lecteur Adobe Flash Player (autrefois dénommé Macromedia Flash) permet de jouer des
animations Flash. Ce programme est conçu comme un plugin, c’est-à-dire que les anima-
tions apparaissent directement dans le navigateur web (souvent à l’intérieur même d’une
page dont les autres éléments sont statiques). Flash est, le plus souvent, utilisé pour de la
publicité. Il existe toutefois des applications utiles de Flash, par exemple pour lire des
vidéos, utiliser des cartes interactives, etc. De nombreux sites web (mal conçus) ne peuvent
par ailleurs être consultés qu’avec Flash.
Installation Le plugin Adobe Flash est, comme Adobe Reader, disponible gratuitement, mais pour le
moment uniquement en version 32 bits. Malheureusement, ses termes de licence empêchent la
plupart des distributions de mettre à la disposition des utilisateurs le paquetage correspondant.
SUSE et Mandriva, qui ont contracté des accords avec Adobe, sont toutefois deux exceptions
à cette règle.
Linux Livre Page 91 Mardi, 23. septembre 2008 1:05 13
Lorsque vous voulez supprimer Flash, il vous suffit d’effacer le fichier libflashplayer.so
des répertoires /usr/lib/mozilla/plugins et ~/.mozilla/plugins.
Si vous utilisez la version 64 bits de Fedora 9, le plugin Flash 32 bits ne fonctionnera
qu’après l’installation de quelques paquetages supplémentaires, ainsi que la déclaration
explicite du plugin auprès de nspluginwrapper.
Tester Flash Après avoir redémarré Firefox, ouvrez la page suivante pour tester votre installation :
http://www.adobe.com/shockwave/welcome/
Figure 6.5
Tester Flash.
Linux Livre Page 92 Mardi, 23. septembre 2008 1:05 13
92 LINUX
Cette page de test contient deux animations (voir Figure 6.5) : la première est basée sur
Shockwave for Director (ou, plus simplement, Shockwave), la seconde, sur Shockwave
Flash (ou, plus simplement, Flash). Comme vous n’avez installé que le plugin Flash, seul le
second élément de cette page de test fonctionne. Il n’existe malheureusement aucun plugin
Shockwave pour Linux.
FlashBlock Aussi sympathiques que soient les animations Flash, leur omniprésence pour la publicité
devient particulièrement pesante. C’est ici qu’intervient l’extension Firefox FlashBlock. Tous
les objets Flash d’une page web apparaissent alors sous la forme de boutons "f" : l’animation
se lance uniquement lorsque vous cliquez sur l’un de ces boutons (voir Figure 6.6). Vous
trouverez cette extension Firefox particulièrement utile en saisissant flashblock dans le
champ de recherche de la boîte de dialogue Outils > Modules complémentaires > Catalogue.
Vous pourrez alors installer l’extension en cliquant sur le bouton Ajouter à Firefox... Pour
que l’installation prenne effet, vous devrez relancer Firefox.
Figure 6.6
FlashBlock en pratique.
gnash et Les composants logiciels importants qui ne sont pas distribués sous licence libre sont une
swfdec
épine dans le pied de la communauté open-source. Il n’est donc pas surprenant qu’il existe
également des alternatives open-source à Flash, à savoir Gnu flash movie player (abrégé en
gnash), ainsi que la bibliothèque swfdec. Ces deux projets comptent également un plugin
pour navigateur web. Ils ne sauraient toutefois constituer un substitut à part entière du
plugin Flash d’origine, dans la mesure où ils présentent encore des limitations non négligea-
bles en termes de compatibilité et de qualité de rendu. Vous trouverez davantage d’informations
sur ces deux projets aux adresses :
http://www.gnu.org/software/gnash/ ; http://swfdec.freedesktop.org/wiki/
Sun Java
Pour être en mesure d’utiliser des applets Java dans votre navigateur web, vous aurez
besoin d’un plugin Java. Suivant votre distribution, vous aurez le choix entre, d’une part, la
version d’origine de Sun (qui n’est toutefois disponible qu’en version 32 bits et ne peut col-
laborer avec l’outil nspluginwrapper) et, d’autre part, deux implémentations open-source
fondées sur IcedTea ou OpenJDK. Bien que la qualité de ces deux solutions open-source soit
devenue, avec le temps, satisfaisante et qu’OpenJDK couvre environ 99 % des fonctionnali-
tés de Sun Java, les utilisateurs de distributions 32 bits préfèrent généralement utiliser la
Linux Livre Page 93 Mardi, 23. septembre 2008 1:05 13
version de Sun. Pour l’utilisateur d’une distribution 64 bits souhaitant bénéficier de Java
dans son navigateur web, OpenJDK est la solution à privilégier.
Depuis 2006/2007, Sun a non seulement passé la majeure partie du code de Java sous
licence GPL, mais également facilité de manière substantielle la redistribution de l’outil Sun
Java d’origine. Certaines distributions peuvent donc proposer des paquetages Sun Java que
vous pouvez installer sans difficulté avec votre gestionnaire de paquetages (par exemple
openSUSE ou Ubuntu).
Installation S’il n’existe aucun paquetage Sun Java pour votre distribution, vous devrez mettre la main à
la pâte. Vous trouverez sur le site web ci-après les fichiers d’installation pour les systèmes 32
et 64 bits, au choix sous la forme d’un paquetage RPM ou d’une archive auto-extractible :
http://www.java.com/fr/download/manual.jsp
Pour les distributions proposant un système de gestion des paquetages RPM, il vous suffit alors
d’exécuter la commande rpmi -i nom_du_paquetage pour mener à bien l’installation. Sur toute
autre distribution, vous devrez exécuter la série de commandes présentée ci-après :
root# mkdir /usr/local/java
root# cd /usr/local/java
root# chmod u+x jre-6u6-linux-i586.bin
root# ./jre-6u6-linux-i586.bin
Au cours de l’installation, un accord de licence vous sera présenté. Pour en interrompre l’affi-
chage, appuyez sur la touche Q ; pour confirmer votre accord, saisissez yes puis appuyez sur la
touche Entrée. L’installation se poursuit alors sans nécessiter d’intervention supplémentaire de
votre part. Toutefois, le fichier de plugin Java n’est pas installé dans le répertoire de plugins
Mozilla. Vous devez donc mettre en place vous-même un lien symbolique :
root# cd /usr/lib/mozilla/plugins/
root# ln -s /usr/local/java/jre1.6.0_06/plugin/i386/ns7/libjavaplugin_oji.so .
Si vous avez installé Java sous la forme d’un paquetage RPM, les fichiers Java se trouvent alors
dans le répertoire /usr/java. La commande ln correspondante a alors l’allure suivante :
root# cd /usr/lib/mozilla/plugins/
root# ln -s /usr/java/jre1.6.0_06/plugin/i386/ns7/libjavaplugin_oji.so .
Test Pour confirmer que tout fonctionne correctement, ouvrez la page web suivante dans votre
navigateur. Une applet avec le petit bonhomme dansant doit normalement apparaître. Cette
applet vous renseigne également sur la version de Java installée (voir Figure 6.7).
http://www.java.com/fr/download/help/testvm.xml
Il est possible d’installer en parallèle plusieurs environnements Java. Il ne doit toutefois y avoir qu’un seul
plugin Java pour votre navigateur web ! Si vous installez Sun Java mais que vous souhaitiez conserver un
environnement Java open-source existant, vous devrez alors désinstaller le paquetage de plugin correspon-
dant (par exemple sur Fedora, java-1.6.0-openjdk-plugin ).
Linux Livre Page 94 Mardi, 23. septembre 2008 1:05 13
94 LINUX
Figure 6.7
Page de test
pour le plugin Java.
Linux Livre Page 95 Mardi, 23. septembre 2008 1:05 13
7.1 Bases
Du point de vue de l’utilisateur, il est trivial d’envoyer et de recevoir des e-mails. C’est tou-
tefois loin d’être le cas de tous les mécanismes intervenant en coulisse. Cette section vise
Linux Livre Page 96 Mardi, 23. septembre 2008 1:05 13
96 LINUX
Bien souvent, on utilise l’adresse e-mail en guise d’identifiant de connexion à la boîte aux
lettres. Dans de nombreux cas, l’identifiant de connexion au serveur SMTP et le mot de
passe sont les mêmes que ceux de la boîte aux lettres. Il n’est pas rare non plus qu’aucune
authentification ne soit nécessaire au niveau du serveur SMTP ou que l’authentification
auprès du serveur de courrier entrant suffise pour se connecter au serveur sortant. Les
comptes e-mails conçus pour être lus dans un navigateur web (webmail) requièrent souvent
de modifier préalablement certaines options de sécurité pour permettre une utilisation en
mode POP ou IMAP.
Lignes d’en- Au début de chaque e-mail figurent un certain nombre de lignes d’en-tête comprenant les
tête
adresses de l’émetteur et du destinataire, l’objet, ainsi que diverses autres informations.
Lors de la configuration de votre compte, vous pouvez pour de nombreux clients e-mails configurer le
numéro de port associé à POP, IMAP et SMTP. Ce n’est toutefois que rarement nécessaire car ce sont géné-
ralement les valeurs standard qui sont utilisées (POP = 110, IMAP = 143, SMTP = 25). Vous trouverez au
chapitre 29 une explication sur les ports et leur utilisation.
Linux Livre Page 98 Mardi, 23. septembre 2008 1:05 13
98 LINUX
Courrier local
Traditionnellement, Unix et Linux utilisent les e-mails comme un moyen de communication
locale. De nombreux services réseau consignent ainsi les erreurs survenues non seulement
dans un fichier journal mais également par envoi d’e-mails à l’utilisateur root. Du fait que de
nombreux utilisateurs de Linux ne remarquent jamais l’existence de tels e-mails, le courrier
local devient de plus en plus passé de mode. De nombreuses distributions utilisent toutefois
encore ce système pour émettre divers avertissements (par exemple Red Hat et Fedora). Pour
être en mesure de lire ces e-mails, vous devez connaître le mécanisme qui les sous-tend.
L’émission de courrier local intervient entièrement indépendamment de votre client de courrier
et fonctionne uniquement parce que, sur de nombreuses distributions Linux, un logiciel
d’envoi d’e-mails (ou, a minima, d’émission locale) tel que sendmail est installé par défaut.
Inbox "Émission locale" signifie que le courrier est ajouté à la fin du fichier /var/spool/mail/
nom_d_utilisateur. Ce fichier, au format mbox, contient pour chaque utilisateur tous les nou-
veaux courriers (c’est-à-dire tous ceux qui n’ont pas encore été consultés). On désigne donc
plus simplement ce fichier par l’appellation Inbox. Par ailleurs, le logiciel fetchmail mentionné
ci-dessus ajoute à cet Inbox les courriers récupérés depuis un serveur POP externe.
Lire des Le risque que vous ne soyez jamais amené à voir ces e-mails est grand, et ce pour deux rai-
courriers
locaux sons : tout d’abord, la majorité des clients de courrier graphiques ignorent /var/spool/
mail/nom_d_utilisateur ; par ailleurs, les e-mails système sont majoritairement adressés à
l’utilisateur root, tandis que vous travaillez généralement en tant qu’utilisateur normal.
Linux Livre Page 99 Mardi, 23. septembre 2008 1:05 13
La solution au premier problème consiste à utiliser, pour lire le courrier local, un pro-
gramme qui prend en considération /var/spool/mail/nom_d_utilisateur. C’est le cas, entre
autres, de tous les logiciels de courrier en mode texte (par exemple cone, mail, mutt et pine).
Pour contourner le second obstacle, vous avez le choix entre deux méthodes : soit vous vous
identifiez en tant qu’utilisateur root (su -l ou sudo -s) avant de lancer un logiciel de cour-
rier en mode texte, soit vous ajoutez au fichier /etc/aliases une ligne redirigeant tous les
e-mails adressés à root vers votre propre boîte aux lettres locale.
mutt Pour lire les e-mails locaux, vous disposez du client en mode texte mutt, installé par défaut
sur Red Hat et Fedora et disponible pour l’ensemble des autres distributions. Dans une
console, commencez par exécuter la commande su -l pour vous identifier en tant qu’utili-
sateur root, puis lancez le programme avec la commande mutt. Les titres de tous les e-mails
apparaissent alors sur la page principale : à l’aide des flèches du clavier, vous pouvez vous
déplacer dans la boîte aux lettres. La touche Entrée affiche le texte complet de l’e-mail sélec-
tionné. La touche Espace vous permet de parcourir le contenu du courrier. La touche J vous
permet de passer à l’e-mail suivant, tandis que la touche I vous ramène à la boîte aux lettres.
La touche ? affiche un texte d’aide présentant les principaux raccourcis clavier. La touche Q
permet de quitter le programme.
/etc/aliases Il est naturellement bien plus élégant de rediriger tous les e-mails adressés à l’utilisateur
root vers la boîte aux lettres de l’utilisateur normalement responsable de l’administration
de la machine. Lorsque sendmail est installé comme MTA, il vous suffit pour cela d’ajouter
à la fin du fichier /etc/aliases une ligne construite sur le modèle suivant. À l’avenir, l’utili-
sateur kofler recevra tous les e-mails adressés à root.
# à la fin de /etc/aliases
...
root: kofler
Cette modification prendra effet seulement après que vous aurez exécuté la commande
newaliases. Pour lire les e-mails, vous pouvez maintenant vous passer de la commande su
-l ; vous devrez en revanche toujours faire appel à un programme capable de lire la boîte
aux lettres locale. Outre les outils en mode texte tels que mutt, Evolution et Kontact entrent
également dans cette catégorie (cela nécessite toutefois de configurer un compte supplé-
mentaire en conséquence). Malheureusement, ce n’est plus le cas de Thunderbird depuis sa
version 2.
100 LINUX
Si vous avez installé le programme mutt, vous pourrez obtenir avec la commande man mbox
davantage d’informations sur ce format. Il est également documenté sur Internet, par exemple
à la page : http://www.qmail.org/qmail-manual-html/man5/mbox.html
La plupart des clients e-mails génèrent, outre les fichiers mbox, des fichiers supplémentaires
de gestion indexant les fichiers de boîtes aux lettres. Ces fichiers permettent un accès plus
rapide aux e-mails individuels, mais ils sont incompatibles d’un client à l’autre.
La prise en charge (quand elle existe) des hiérarchies de répertoires de courrier et sa mise en
œuvre dépendent également du client de courrier. Il n’existe pas de standard commun sur
ce point.
Le format mbox facilite le passage d’un client e-mails à un autre. En règle générale, il vous
suffit pour cela de copier les fichiers mbox (sans les fichiers de gestion) dans le répertoire où
le nouveau client e-mail s’attend à les trouver.
Format maildir Outre le format mbox, de nombreux clients e-mails (par exemple Kontact/KMail) prennent
également en charge le format maildir. Avec ce format, chaque e-mail est enregistré dans un
fichier propre. Une boîte aux lettres est donc alors constituée de tous les fichiers d’un même
répertoire. L’avantage évident de ce format est qu’il permet d’effacer plus facilement des
courriers individuels.
Autres formats Sous Windows, il n’est naturellement pas question de trouver un standard commun pour la
sauvegarde des e-mails. Il existe certes quelques programmes Windows utilisant le format
mbox, mais une majorité d’entre eux reposent sur leur propre format d’enregistrement.
Si vous souhaitez importer vos e-mails depuis un ordinateur Windows vers un système
Linux, vous devrez les convertir au format mbox. Par chance, plusieurs clients de courrier
disposent d’outils d’aide à la conversion justement pour ces cas de figure (c’est par exemple
le cas de Thunderbird et de Kontact). En outre, il existe divers programmes de conversion
spécialisés (il vous suffit par exemple de rechercher sur Internet les termes mbox conversion
outlook eudora). En règle générale, il est judicieux, avant de lancer une quelconque conver-
sion, de compresser les répertoires de courrier. Tous les e-mails effacés seront alors effectivement
supprimés des fichiers de boîte aux lettres.
Pour un utilisateur d’Outlook Express sous Windows souhaitant passer à Thunderbird sous Linux, il faut
passer par une étape intermédiaire et installer tout d’abord la version Windows de Thunderbird. De cette
manière, les e-mails peuvent être importés depuis Outlook Express. Il suffit ensuite de copier le répertoire de
courrier résultant vers Linux.
de signer et de chiffrer les e-mails et peuvent naturellement aussi gérer la réception des
e-mails signés et chiffrés.
Malgré les avantages indéniables que représentent la signature et le chiffrement des e-mails,
en pratique vous ne rencontrerez que rarement de tels courriers. La perte de confort occa-
sionnée, la gestion relativement complexe du chiffrement ainsi que l’incompatibilité entre
les deux standards utilisés (PGP et S/MIME) constituent des obstacles notoires au dévelop-
pement de ces pratiques.
Clé Pour la signature et le chiffrement, on utilise une clé. Une clé électronique est tout simplement
un code numérique très long.
Clé publique Pour la signature et le chiffrement des e-mails, on procède de manière dite asymétrique.
et clé privée
Chaque clé est donc constituée de deux parties : d’une part la clé privée, qui n’est normale-
ment enregistrée que sur le disque dur de son propriétaire, d’autre part la clé publique, qui
est par exemple publiée sur Internet. La particularité de ce fonctionnement asymétrique
réside dans le fait qu’une partie de la clé est utilisée pour la signature ou le chiffrement, tandis
que l’autre partie de la clé sert à contrôler la signature ou à déchiffrer.
Signer Signer un e-mail signifie qu’une somme de contrôle est calculée avant l’envoi du courrier. Cette
somme de contrôle est chiffrée et, à partir de celle-ci, le destinataire peut vérifier que l’e-mail
provient effectivement de l’expéditeur annoncé et qu’il n’a pas été manipulé depuis son envoi.
Lorsque vous signez un e-mail, votre client de courrier utilise votre clé privée. Pour le
contrôle de la signature, la clé publique est toutefois suffisante. Cela signifie que vous seul
pouvez signer vos e-mails (car vous êtes l’unique propriétaire de votre clé privée).
N’importe qui peut en revanche contrôler l’authenticité des e-mails que vous avez signés,
car n’importe qui peut accéder à votre clé publique sur Internet.
N’importe qui peut lire les e-mails que vous avez signés, même si le destinataire de votre
e-mail ne connaît pas votre clé publique ou s’il utilise un client de courrier sans fonctionna-
lité de signature (par exemple une interface webmail). Dans de tels cas, le code de signature
figure en fin du courrier. Ce code n’empêche pas la lecture du contenu effectif de l’e-mail.
Un destinataire ne pouvant pas gérer les signatures ne peut toutefois vérifier que vous êtes
bien l’auteur de l’e-mail.
Chiffrement Le chiffrement d’un e-mail signifie que le courrier est envoyé non pas en texte clair mais
sous forme chiffrée. Personne ne peut lire le contenu de ce courrier à moins de connaître la
clé permettant de le déchiffrer.
Pour le chiffrement, on utilise la clé publique du destinataire du courrier. Par conséquent, si
vous souhaitez envoyer un e-mail à Alice, vous devez préalablement connaître la clé publi-
que d’Alice. Le courrier ainsi chiffré ne peut alors être déchiffré qu’à l’aide de la clé privée
du destinataire. Alice étant le seul détenteur de cette clé privée, elle est la seule à pouvoir le
lire : même si vous êtes l’auteur du message, vous ne pouvez plus le lire !
Votre e-mail chiffré ne peut être lu que par son destinataire, qui possède la partie privée de
la clé dont la partie publique a servi au chiffrement. Lorsque le destinataire perd ou efface
accidentellement sa clé privée ou lorsqu’il utilise un client de courrier sans fonctionnalités
de chiffrement, il ne voit apparaître qu’une longue liste de chiffres et de codes. Le courrier
n’a donc aucun sens.
Linux Livre Page 102 Mardi, 23. septembre 2008 1:05 13
102 LINUX
PGP et S/MIME Il serait bien trop simple de n’avoir qu’une seule méthode pour la signature, le chiffrement
et la gestion des clés ! Il existe deux méthodes établies, aussi sûres l’une que l’autre :
• PGP, GPG, OpenPGP. À l’origine se trouvait le projet logiciel PGP (Pretty Good Privacy).
PGP étant devenu un produit commercial, la communauté open-source a lancé sa pro-
pre implémentation compatible avec PGP, GPG (GNU Privacy Guard). Enfin, OpenPGP
est un standard Internet public correspondant aussi bien à PGP qu’à GPG.
Par défaut, PGP ne permet de signer ou de chiffrer que le courrier lui-même. Si vous
souhaitez également signer ou chiffrer les pièces jointes, vous devez utiliser sa variante
PGP/MIME.
L’aspect le plus remarquable de PGP, d’un point de vue utilisateur, est probablement la
facilité avec laquelle il permet de générer soi-même les clés. Pour cette raison, PGP est
adapté pour l’utilisation aussi bien dans de grandes entreprises que dans des PME.
Même au sein du monde Linux et open-source, PGP domine le marché. Gnome aussi bien
que KDE proposent des outils arrivés à maturité technique pour la gestion des clés. Malheu-
reusement, de nombreux clients de courrier sous Windows ne prennent pas en charge PGP
ou, pour certains, seulement après l’installation de greffons ou d’extensions.
• S/MIME. S/MIME (Secure Multipurpose Internet Mail Extension) se fonde sur d’autres
algorithmes de chiffrement. En guise de clé S/MIME, on doit utiliser ce que l’on désigne
par le terme de certificat X.509.
Des documents signés ou chiffrés par S/MIME ont, vis-à-vis de certaines organisations
publiques, la même valeur qu’un document papier signé. Ceci vaut toutefois unique-
ment lorsque le certificat X.509 utilisé a été émis par une autorité de confiance autorisée
(CA ou Certificate Authority) après contrôle de données d’identification personnelles
(par exemple le passeport). De tels certificats sont par conséquent très coûteux, du fait
de l’important travail administratif requis, mais ils sont beaucoup plus fiables que les
certificats créés manuellement.
S/MIME est très répandu dans le monde Windows et il est également pris en charge par
les trois clients de courrier présentés dans ce chapitre (même s’il est en partie moins bien
géré que PGP). L’obstacle principal pour les utilisateurs privés réside probablement
dans la difficulté à générer sa propre clé S/MIME.
Malheureusement, ces deux modes de fonctionnement sont incompatibles entre eux. Un
courrier chiffré par PGP ne peut être lu au moyen de S/MIME, et vice versa. Il existe certes
des clients de courrier qui gèrent les deux mécanismes de chiffrement, mais dans ce cas vous
aurez besoin d’une clé différente pour chaque mécanisme. De surcroît, un courrier ne peut être
chiffré que par une seule méthode, pas les deux à la fois. Pour faire simple et court : en l’état
actuel, PGP offre tout le nécessaire pour communiquer de façon sûre et sans surcoût. L’avantage
de S/MIME est la valeur juridique que confère l’utilisation des certificats X.509 qualifiés.
Gestion La plupart des clients de courrier peuvent gérer eux-mêmes les clés nécessaires à l’envoi et
des clés
à la réception de courrier, voire générer au besoin une nouvelle clé. Toutefois, comme les
clés peuvent également servir dans d’autres contextes, il est pratique de séparer la gestion
des clés du client de courrier. À cet effet, Gnome propose le programme Seahorse, tandis
que KDE propose KGpg et Kleopatra (pour S/MIME).
La tâche principale en terme de gestion des clés consiste à rassembler les clés publiques de
tous vos interlocuteurs au sein d’un "porte-clés". À l’import d’une nouvelle clé, vous devez
Linux Livre Page 103 Mardi, 23. septembre 2008 1:05 13
la "signer". Cela signifie que vous êtes convaincu que la clé importée provient effectivement
de la bonne personne. Si vous travaillez avec des clés PGP, vous trouverez tous les fichiers de
gestion dans le répertoire ~/.gnupg.
7.2 Thunderbird
Le client de courrier Thunderbird émane, comme Firefox, du projet Mozilla. Même s’il est
intégré à la quasi-totalité des distributions, il n’est que rarement installé. En effet, aussi bien
Gnome que KDE possèdent leur propre programme qu’ils établissent comme client de cour-
rier par défaut (voir les deux sections suivantes). Personnellement, je préfère Thunderbird
pour diverses raisons :
• Thunderbird est un client de courrier épuré. Cela rend son utilisation plus claire.
• Le programme est également disponible pour Windows et convient donc aux utilisateurs
souhaitant gérer leur archive de courrier dans un format compatible Windows.
• Le filtre antispam fonctionne bien et est facile à utiliser.
Cette section présente la version 2.0 de Thunderbird.
Installation Sur de nombreuses distributions, Thunderbird est partagé en plusieurs paquets. L’un d’eux
contient les fonctionnalités de base, tandis que les autres paquets contiennent les textes des
menus et boîtes de dialogue dans différentes langues. N’oubliez donc pas d’installer aussi le
paquetage francophone ! Dans Gnome et KDE, vous devrez ensuite établir Thunderbird en tant
que client de courrier par défaut (voir les chapitres 4 et 5 sur les environnements de bureau).
104 LINUX
Figure 7.1
Configuration
d’un compte dans
Thunderbird.
Fonctionnalités de base
Une fois la configuration terminée apparaît la fenêtre de courrier Thunderbird. Lorsque vous
cliquez pour la première fois sur le bouton Relever ou que vous utilisez la combinaison de tou-
ches Maj+Alt+T pour récupérer vos nouveaux e-mails, vous devrez fournir le mot de passe de
votre boîte aux lettres. Thunderbird enregistre votre mot de passe, après un avertissement de
sécurité, dans un fichier de configuration. Tout comme pour Firefox, il est fortement conseillé
de protéger les mots de passe par le biais d’un mot de passe principal que vous pourrez confi-
gurer en passant par les menus Édition > Préférences > Confidentialité > Mots de passe.
Lire des Les nouveaux e-mails sont déposés dans le dossier Courrier entrant (voir Figure 7.2). D’un
e-mails
double-clic sur l’un des éléments de la liste affichée, vous ouvrez une nouvelle fenêtre pour
consulter l’e-mail correspondant. Ceci vous permet de lire plus confortablement les e-mails
plus volumineux. Les fichiers et images contenus dans les e-mails HTML ne sont pas chargés,
par sécurité : au besoin, utilisez le bouton Télécharger les images.
Linux Livre Page 105 Mardi, 23. septembre 2008 1:05 13
Figure 7.2
Gestion des e-mails.
Afficher les fils Lorsque plusieurs courriers provenant de la même discussion (par exemple le courrier d’origine
de discussion
ainsi que diverses réponses et réactions d’autres personnes) figurent dans un même dossier, il
est possible de les afficher suivant une structure arborescente par le biais des menus Affichage >
Trier par > Discussions groupées. Le flux de courriers est ainsi affiché de manière plus synthé-
tique (et l’on voit donc plus facilement qui a répondu à quel courrier et à quelle date).
Pièces jointes Souvent, les e-mails contiennent des pièces jointes, c’est-à-dire des fichiers distincts du cour-
rier à proprement parler. Ils sont indiqués dans la liste des e-mails par un petit trombone.
Dans le courrier, vous pouvez ouvrir les pièces jointes par un double-clic ou faire appel au
menu contextuel pour enregistrer les fichiers localement, les supprimer de l’e-mail ou
encore les détacher. "Détacher" signifie ici que le fichier est d’abord enregistré en local puis
effacé du message. C’est donc une solution pratique lorsque vous ne souhaitez conserver
que le texte d’un e-mail mais pas les pièces jointes, parfois extrêmement volumineuses.
Thunderbird sait, grâce à la configuration MIME, quel programme il doit utiliser pour
ouvrir un fichier d’un type donné. MIME est l’acronyme de Multipurpose Internet Mail Exten-
sions. Thunderbird tient compte des paramètres MIME généraux de Linux (voir le Chapitre 13
sur ce point) ainsi que des paramètres qui lui sont propres, enregistrés dans le fichier
XML ~/.thunderbird/xxxxxxxx.default/mimeTypes.rdf. Il n’est toutefois pas possible
d’ajouter de nouveaux types de données à Thunderbird. Lorsque celui-ci ne reconnaît pas
un type de fichier, vous devez enregistrer la pièce jointe en tant que fichier puis ouvrir celui-
ci par le biais du gestionnaire de fichiers de votre environnement de bureau.
Rédiger Dans la fenêtre de rédaction d’un e-mail, vous trouverez un grand nombre de boutons de
un e-mail
mise en forme et d’insertion d’objets divers. Les menus Insérer et Format proposent encore
davantage de possibilités. Attention, toutefois, à un point : les e-mails construits de cette
manière sont envoyés au format HTML. De nombreux utilisateurs refusent tout simplement
de tels e-mails ou considèrent qu’ils présentent un risque de sécurité. Thunderbird
Linux Livre Page 106 Mardi, 23. septembre 2008 1:05 13
106 LINUX
manière, les e-mails soupçonnés d’être du spam seront conservés dans le dossier "Courrier
entrant" mais seront identifiés par une icône "spam".
Figure 7.3
Configurer le filtre
antispam.
Pour faire progresser la reconnaissance du spam, vous devez passer quelques jours à "entraî-
ner" votre filtre. Pendant cette période, pour chaque e-mail que Thunderbird n’aura pas correc-
tement identifié comme spam, cliquez sur le bouton Indésirable. Il est encore plus efficace pour
cela d’utiliser le clavier : la touche J permet de classer un e-mail en tant que spam, tandis que la
combinaison Maj+J permet de lever le marquage "indésirable" sur un courrier acceptable.
Le filtrage antispam ne fonctionne que pour les e-mails reçus après activation du filtre. Pour
traiter les courriers figurant déjà dans le dossier courant, passez par le menu Outils > Traquer
les indésirables dans le dossier.
Indépendamment du filtrage antispam, vous pouvez définir des règles de filtrage supplé-
mentaires par le biais du menu Outils > Filtres de messages... De cette manière, vous pouvez
automatiquement marquer ou déplacer vers un répertoire donné tous les e-mails entrants
répondant à un critère donné. C’est une fonctionnalité particulièrement pratique pour traiter
automatiquement les e-mails provenant de listes de diffusion.
108 LINUX
extensions conçues pour lui de celles prévues pour Thunderbird. Les extensions ne sont
effectivement utilisables qu’après avoir relancé Thunderbird.
Signer/chiffrer Les fonctionnalités de chiffrement pour S/MIME sont intégrées par défaut dans Thunder-
des e-mails
bird. Vous trouverez tous les éléments de configuration nécessaires dans la boîte de dialo-
gue Édition > Paramètres des comptes > Sécurité. Le bouton Afficher les certificats vous
conduit à une boîte de dialogue de gestion des certificats X.509, jouant le rôle de clés dans le
cadre de S/MIME.
Pour pouvoir lire ou rédiger dans Thunderbird des e-mails chiffrés ou signés par PGP, vous
devez ajouter le module complémentaire Enigmail. Vous trouverez le fichier XPI correspon-
dant sur le site web d’Add-ons mentionné ci-dessus. Ce module nécessite toutefois que
gnupg soit préalablement installé sur l’ordinateur. C’est le cas pour la majorité des distribu-
tions. Toutes les fonctionnalités de chiffrement sont alors accessibles depuis le menu
OpenPGP dans la fenêtre principale ainsi que dans la fenêtre Écrire.
Lire/rédiger Avec Thunderbird, vous pouvez également lire et rédiger des messages des groupes de
des news
news Usenet. Pour ce faire, configurez un nouveau Compte forums de discussion par le
biais des menus Édition > Paramètres des comptes > Ajouter un compte. Vous devrez alors
fournir l’adresse d’un serveur de news auquel vous avez accès. La plupart des fournisseurs
d’accès Internet vous mettent à disposition un tel serveur. Vous pourrez ensuite accéder à ce
compte dans la fenêtre principale de Thunderbird et vous abonner à des groupes de discussion.
Vous pourrez alors lire et rédiger les messages exactement comme des e-mails.
Si vous souhaitez uniquement lire les messages et y effectuer des recherches, il est préférable d’utiliser
pour cela Google. L’avantage de Google est qu’il vous permet également d’accéder à des messages
anciens. Sur les serveurs de news, les messages ne sont conservés que quelques semaines, pour des raisons
de place. http://groups.google.com
Icône du Thunderbird vous informe de l’arrivée d’un nouveau courrier par un bip sonore et en fai-
tableau de
bord pour sant apparaître en surimpression quelques informations synthétiques sur le courrier en
signaler un question. Les options correspondant à cette fonctionnalité se trouvent dans la boîte de dialo-
nouvel e-mail
gue Édition > Préférences > Général. Personnellement, toutefois, je préférerais que Thun-
derbird fasse apparaître une petite icône dans le tableau de bord Gnome ou KDE dès qu’un
nouvel e-mail est disponible. Thunderbird n’en est étonnamment pas capable. Il existe
toutefois un module complémentaire assurant cette fonctionnalité :
http://moztraybiff.mozdev.org/
Dictionnaires À la rédaction d’un e-mail, Thunderbird souligne les mots qu’il suppose être erronés. Cette
fonctionnalité ainsi que la langue par défaut sont activées par le biais des menus Édition >
Préférences > Rédaction > Orthographe. Les langues disponibles sont toutefois limitées à
celles pour lesquelles un dictionnaire a été installé. Certaines distributions sont livrées avec
les fichiers de dictionnaires nécessaires pour les principales langues ou, a minima, mettent à
la disposition des utilisateurs les paquetages correspondants. Si ce n’est pas le cas de votre
distribution, vous pouvez également installer manuellement le dictionnaire nécessaire.
Pour ce faire, téléchargez le fichier XPI correspondant depuis le site web suivant et installez-
le exactement comme un module complémentaire :
https://addons.mozilla.org/fr/thunderbird/browse/type:3
Linux Livre Page 109 Mardi, 23. septembre 2008 1:05 13
Ce passage s’adresse aux utilisateurs de Linux ayant déjà une certaine expérience derrière eux et s’applique à
Thunderbird 2.0. On ne peut pas encore prédire si et comment une synchronisation des répertoires d’e-mails
fonctionnera dans les versions futures de Thunderbird.
Sur mon ordinateur de test, la synchronisation des e-mails fonctionne depuis un peu plus de un an et elle est
également passée avec succès de la version 1.5 à la version 2.0. Cette méthode n’est toutefois pas exempte de
problèmes. Thunderbird est toujours persuadé qu’il doit réindexer les e-mails de chaque dossier ; il oublie fré-
quemment le dernier ordre de classement défini ; etc. Une certaine prudence est par ailleurs de rigueur. Une sau-
vegarde régulière du répertoire complet, même sans synchronisation avec Windows, devrait aller de soi. Lorsque
vous réalisez votre sauvegarde, n’oubliez pas de fermer Thunderbird !
Linux Livre Page 110 Mardi, 23. septembre 2008 1:05 13
110 LINUX
Dans ce qui suit, je pars du principe que vous avez jusqu’à présent géré vos e-mails avec
Thunderbird sous Windows. Vous souhaitez maintenant accéder aux courriers avec Thun-
derbird sous Linux. Du moment que vous avez accès en écriture, depuis Linux, sur votre
partition Windows comprenant les e-mails, vous n’avez pas besoin de modifier quoi que ce
soit dans Windows. C’est le cas si vous utilisez un système de fichiers VFAT sous Windows
ou si vous avez mis en place le pilote ntfs-3g sous Linux (qui vous permet d’écrire sur un
système de fichiers NTFS, voir le Chapitre 25 sur ce sujet).
Lancez Thunderbird sous Linux et configurez un nouveau compte pour votre service de
courrier. Avant de télécharger le moindre e-mail, ouvrez la boîte de dialogue Édition > Para-
mètres des comptes > Paramètres du serveur et modifiez le Répertoire local. Renseignez-y le
chemin du répertoire dans lequel sont enregistrés les e-mails sous Windows. Procédez exac-
tement de la même manière pour le répertoire du pseudo-compte Dossiers locaux (les "Dos-
siers locaux" définissent l’endroit où sont enregistrés tous les courriers entrants ainsi que
tous les dossiers de courrier que vous avez créés). Et c’est fini !
Si vous n’avez pas accès en écriture, depuis Linux, au dossier d’e-mails de Windows, vous
devrez copier le répertoire d’e-mails en question vers un nouveau répertoire hébergé sur
une partition VFAT (opération à réaliser sous Windows). Ensuite, ouvrez Thunderbird sous
Windows et modifiez les paramètres du serveur de manière que Thunderbird lise et enregistre
tous les e-mails depuis ce nouvel emplacement.
Synchroniser Pour synchroniser également le carnet d’adresses, fermez Thunderbird sous Linux et
le carnet
d’adresses passez dans le répertoire ~/.thunderbird/xxxxxx.xxx.default. Commencez par y faire
une copie de sauvegarde du fichier abook.mab et créez ensuite un lien vers le fichier équi-
valent sous Windows (ce qui suppose là encore que vous ayez accès en écriture au sys-
tème de fichiers Windows). Vous trouverez davantage d’astuces sur ce point à l’adresse
suivante :
http://kb.mozillazine.org/Sharing_address_books
Configuration Lorsque vous accédez à plusieurs comptes e-mail depuis Thunderbird, il est particulière-
d’un compte
ment fastidieux de reconfigurer chaque compte lors d’un passage de Windows à Linux. Le
module complémentaire Accountex facilite quelque peu cette tâche. Vous trouverez
Accountex sur le site web des extensions Thunderbird que nous avons déjà mentionnées :
https://addons.mozilla.org/fr/thunderbird
7.3 Evolution
Le logiciel Evolution, développé par la société Ximian (qui a depuis été intégrée à la société
Novell), a été conçu comme une alternative à Microsoft Outlook. Non seulement Evolution
peut être utilisé pour la lecture et la rédaction d’e-mails, mais il propose également des fonc-
tionnalités de gestion des adresses et rendez-vous, la synchronisation de ces données avec
un PDA compatible Palm ainsi qu’avec un serveur Microsoft Exchange, le chiffrement des e-
mails avec PGP ou S/MIME, etc. Evolution réunit toutes ces fonctionnalités sous une même
interface utilisateur : le client de courrier par défaut de l’environnement de bureau Gnome.
Il n’est donc pas étonnant que son adoption ait connu un fort développement.
Linux Livre Page 111 Mardi, 23. septembre 2008 1:05 13
Les utilisateurs avancés de Linux restent néanmoins quelque peu sceptiques vis-à-vis de ce
logiciel. Ceci est en particulier dû au fait qu’Evolution a, par le passé, toujours connu des
problèmes de stabilité et de rapidité, ce qui a nui à son image.
Fonctionnalités de base
Lire des Lorsque vous cliquez pour la première fois sur le bouton Envoyer/Recevoir ou que vous
e-mails
appuyez sur la touche F9 pour télécharger les nouveaux e-mails, vous devez fournir le mot
de passe pour votre boîte aux lettres.
Linux Livre Page 112 Mardi, 23. septembre 2008 1:05 13
112 LINUX
Figure 7.4
Configuration d’un
compte dans Evolution.
Les nouveaux e-mails sont rassemblés dans le dossier local intitulé Boîte de réception (voir
Figure 7.5). La liste des courriers apparaît dans la partie supérieure de la fenêtre, tandis que le
texte du courrier sélectionné est affiché dans la partie inférieure. D’un double-clic sur un élément
de la liste, vous pouvez ouvrir un courrier dans une fenêtre distincte, ce qui en facilite la lecture.
Figure 7.5
Gestion des e-mails
dans Evolution.
Lorsque plusieurs courriers provenant de la même discussion figurent dans un même dos-
sier, il est possible de les afficher suivant une structure arborescente par le biais des menus
Affichage > Grouper par fils de discussion. Avec cette vue, vous pouvez immédiatement
identifier qui a répondu à quel courrier et à quelle date.
Envoyer Vous pouvez rédiger un nouveau courrier avec la combinaison de touches Ctrl+N et
des e-mails
l’envoyer avec Ctrl+Entrée. Au premier envoi, Evolution vous demande le mot de passe
Linux Livre Page 113 Mardi, 23. septembre 2008 1:05 13
d’accès au serveur SMTP devant gérer l’envoi du courrier. Vous pouvez répondre à des
e-mails déjà reçus grâce à la combinaison de touches Ctrl+R (répondre à l’auteur) ou
Ctrl+Maj+R (répondre à tous). Ctrl+F vous permet de faire suivre un courrier à un autre
destinataire. L’e-mail d’origine est alors ajouté en tant que pièce jointe.
Courriers au Il existe fondamentalement deux types d’e-mails : les courriers au format texte simple, sans
format HTML
mise en forme, et les messages HTML avec toutes les possibilités de mise en forme que pro-
pose le HTML (différentes tailles, couleurs, etc. de polices). Les courriers au format HTML
ont toutefois, par le passé, conduit à des problèmes de sécurité avec de nombreux logiciels
de courrier (particulièrement avec Microsoft Outlook). De nombreux utilisateurs refusent
donc tout simplement de tels e-mails ou considèrent qu’ils présentent un risque de sécurité.
Pour des raisons de sécurité, Evolution ne charge aucun des fichiers (donc aucune image) uti-
lisés dans un e-mail au format HTML. Vous pouvez modifier ce comportement par le biais de
la boîte de dialogue Édition > Préférences > Préférences du courriel > Courriel HTML.
Par défaut, vous ne pouvez rédiger dans Evolution que des e-mails au format texte simple.
Pour écrire des courriers au format HTML, choisissez Format > HTML dans la fenêtre de
rédaction. Divers boutons et menus de mise en forme et d’insertion vous permettront alors
d’appliquer toutes les modifications que vous souhaitez.
Si vous souhaitez rédiger systématiquement vos e-mails au format HTML, passez par les
menus Édition > Préférences et, dans la boîte de dialogue Préférences de l’éditeur > Général,
cochez l’option Formater les messages en HTML.
Rechercher Evolution présente, directement sous la barre d’outils, un champ permettant d’effectuer des
des e-mails
recherches rapides parmi les e-mails. Si vous utilisez régulièrement les mêmes critères de
recherche, il peut être intéressant de créer un dossier de recherche (ou "dossier virtuel").
Pour ce faire, passez par Édition > Dossiers de recherche ou Recherche > Créer un dossier de
recherche à partir d’une recherche...
Filtrage Evolution utilise automatiquement spamassassin pour l’identification des e-mails indésira-
antispam
bles, à condition que ce logiciel soit installé. Pour appliquer le filtrage antispam sur les cour-
riers existant déjà dans un dossier, sélectionnez l’ensemble des e-mails avec Ctrl+A puis
exécutez Message > Filtrer le pourriel. Cette opération peut prendre un temps important sur
les dossiers comprenant beaucoup de courriers. Les courriers identifiés comme spam sont
déplacés dans le dossier Pourriels.
Le filtre antispam est initialement assez prudent pour éviter de classer indûment comme
pourriel des e-mails qui ne le sont pas. Pour cette raison, il est souvent nécessaire, durant les
premières semaines, d’indiquer manuellement pour chaque courrier s’il s’agit d’un spam.
Pour ce faire, sélectionnez l’e-mail en question et cliquez sur le bouton Pourriel ou utilisez la
combinaison de touches Ctrl+J. Le filtre antispam tente de découvrir dans le courrier ainsi
marqué un motif qui pourra l’aider, par la suite, à correctement trier les e-mails. Ainsi, le
filtrage antispam s’améliore continuellement.
À l’occasion, il arrive malheureusement qu’un courrier soit indûment classé comme spam. Vous devez par
conséquent jeter un coup d’œil régulier au dossier Pourriel afin de vérifier s’il s’y trouve de tels e-mails.
Linux Livre Page 114 Mardi, 23. septembre 2008 1:05 13
114 LINUX
Pour éviter que cette identification erronée ne se reproduise, cliquez sur le bouton Non pourriel pour le
courrier concerné.
D’après mon expérience, le filtrage antispam d’Evolution fonctionne moins bien que celui de Thunderbird.
Il ne peut rivaliser avec celui de Thunderbird ni en terme de rapidité de traitement ni en vitesse d’appren-
tissage.
Filtres Outre le filtrage antispam, Evolution peut, grâce à des règles de filtrage, déplacer automati-
quement des e-mails vers certains dossiers ou même effacer des courriers. C’est pratique
lorsque vous avez un grand nombre d’e-mails à traiter et que vous souhaitez organiser
ceux-ci suivant un motif particulier (par exemple la présence d’un mot donné dans le sujet).
C’est typiquement le cas lorsque vous êtes abonné à plusieurs listes de diffusion.
La méthode la plus simple pour définir une nouvelle règle de filtrage consiste à sélectionner
le courriel puis à exécuter Message > Créer une règle > Filtrer sur la liste de diffusion. Lors-
que Evolution ne parvient pas à reconnaître correctement la règle de filtrage, vous pouvez la
modifier ou lui ajouter des critères.
Fonctionnalités supplémentaires
Gestion des Le carnet d’adresses d’Evolution est, en réalité, un véritable système de gestion des contacts
adresses et
contacts dans lequel vous pouvez enregistrer un grand nombre d’informations en plus du nom et de
l’adresse e-mail. Vous pouvez accéder au carnet d’adresses soit par le biais des menus Affi-
chage > Fenêtre > Contacts, soit plus rapidement par la combinaison de touches Ctrl+F2.
Fichier > Importer > Importer un seul fichier vous permet d’importer des fichiers de carnet
d’adresses au format LDIF (Lightweight Directory Interchange Format). Malheureusement,
c’est le seul format pris en charge.
Calendrier et Le module Calendriers vous permet de gérer vos rendez-vous. Les rendez-vous peuvent
gestion des
rendez-vous être présentés dans diverses vues : tous les rendez-vous d’une journée, d’une semaine
ouvrée, d’une semaine complète ou d’un mois. Vous pouvez personnaliser de nombreux
détails de présentation (par exemple les horaires de travail habituels ou les couleurs des
polices) par le biais d’Édition > Préférences > Calendriers et tâches.
Pour créer un nouveau rendez-vous, passez par les menus Fichier > Nouveau > Rendez-
vous ou double-cliquez sur l’emplacement correspondant au rendez-vous dans le calen-
drier. Pour les rendez-vous devant se répéter à intervalles réguliers (chaque semaine, mois,
année, etc.), renseignez l’intervalle dans la boîte de dialogue à l’aide du bouton Récurrence,
et précisez au besoin une date de fin pour cette répétition.
Liste de tâches Evolution compte également un module de gestion de tâches (une sorte de to do-list). Vous pou-
vez afficher les tâches soit dans une vue propre, soit comme partie intégrante du calendrier.
Synchroni- Pour tout possesseur de PDA, il est naturellement intéressant de pouvoir synchroniser ses
sation avec
un PDA données avec Evolution. Cette possibilité existe de fait pour les PDA compatibles Palm.
Avant la première synchronisation, vous devez configurer le périphérique par le biais d’Édi-
tion > Options de synchronisation. En coulisse, c’est le programme gnome-pilot qui est
chargé de la configuration et du transfert des données. Mon expérience montre toutefois
que la synchronisation ne fonctionne pas de manière très fiable, ce qui rend cet outil plus
adapté aux expérimentateurs qu’à ceux qui souhaitent l’utiliser quotidiennement.
Linux Livre Page 115 Mardi, 23. septembre 2008 1:05 13
7.4 Kontact
Kontact est un programme universel de gestion des e-mails, contacts, rendez-vous, tâches,
notifications ainsi que pour l’affichage de flux RSS. Kontact propose, comme Evolution, une
synchronisation des données avec un PDA. De fait, Kontact n’est qu’une interface utilisateur
unifiée pour différents programmes KDE fonctionnant en coulisse.
Cette section se focalise sur le composant e-mail derrière lequel se cache le programme
KMail. Attention au fait que le menu de Kontact change suivant le composant actif ! Les
indications de menu qui suivent ici ne valent que lorsque le composant de courrier est actif.
Si vous n’êtes intéressé que par les fonctionnalités d’e-mail, vous pouvez également lancer
KMail en tant que programme autonome.
Des trois logiciels de courrier présentés dans ce chapitre, Kontact (et Kmail) est celui dont
l’orientation technique est la plus forte. Ce programme présente d’innombrables fonction-
nalités et permet aux utilisateurs avancés de Linux de travailler très efficacement. Son utili-
sation n’est toutefois pas toujours très intuitive. Par conséquent, ce logiciel n’est pas
forcément le plus conseillé pour les débutants sous Linux.
Configuration Configuration > Configurer KMail vous conduit à une boîte de dialogue de configuration. Par
d’un compte
défaut, le système a configuré une "identité par défaut". Le bouton Modifier vous permet ici de
configurer vos nom et adresse e-mail effectifs ainsi que, au besoin, d’autres options.
La configuration effective du compte a lieu dans le module Comptes. Vous devez y configu-
rer au moins un compte de réception et un compte d’envoi. Pour commencer, en général,
vous utiliserez le bouton Ajouter pour configurer la boîte aux lettres entrante de votre ser-
veur POP ou IMAP. Pour le courrier sortant est prévu le programme sendmail, mais il n’est
en règle générale configuré que pour l’émission de courrier local. Par conséquent, vous
devez configurer une boîte aux lettres SMTP supplémentaire (voir Figure 7.6), que vous pouvez
sélectionner comme boîte aux lettres par défaut.
Figure 7.6
Configuration d’un
compte dans Kontact.
Dès que vous quittez la boîte de dialogue de configuration, Kontact enregistre les mots de
passe dans une base de données centrale par le biais de KDEWallet. Par conséquent, vous
devez fournir le mot de passe maître pour KDEWallet (voir Chapitre 5).
Linux Livre Page 116 Mardi, 23. septembre 2008 1:05 13
116 LINUX
Lire des Les nouveaux e-mails sont rassemblés dans le dossier Boîte de réception. La liste des cour-
e-mails
riers apparaît dans la partie supérieure de la fenêtre, tandis que le contenu de l’e-mail sélec-
tionné est affiché dans la partie inférieure. Au besoin, vous pouvez ouvrir un courrier dans
une fenêtre séparée en double-cliquant dessus dans la liste.
Les e-mails HTML ont, par le passé, conduit à des problèmes de sécurité avec de nombreux
clients de courrier. Par conséquent, pour de tels e-mails, KMail ne présente par défaut
qu’une version texte ou le code source HTML. Si vous souhaitez consulter l’e-mail avec sa
mise en forme HTML complète, vous devez cliquer sur le lien correspondant.
Si vous souhaitez afficher systématiquement les e-mails HTML en tant que tels, passez par
Dossier > Préférer le HTML au texte brut. Ce paramétrage ne vaut toutefois que pour le dossier
en cours.
KMail présente à côté de chaque message une barre verticale qui, suivant le type d’e-mail,
indique "Message HTML" ou "Message non HTML". Si cette barre vous dérange, vous pou-
vez la désactiver par le biais de la boîte de dialogue Configuration > Configurer KMail >
Apparence > Fenêtre des messages (décochez l’option Afficher la barre d’état pour les mes-
sages HTML). La partie inférieure de la zone d’affichage du courrier indique les parties
constitutives de l’e-mail. Si ces informations ne vous intéressent pas, choisissez l’option Ne
jamais afficher pour l’élément Configuration > Configurer KMail > Apparence > Disposition
> Affichage de la structure du message.
Figure 7.7
Gérer les e-mails
avec Kontact.
Rédiger un Un nouvel e-mail est, par défaut, rédigé en texte brut. Si vous souhaitez appliquer une mise
e-mail
en forme HTML, passez par Options > Formatage (HTML). Une fois le courrier rédigé, vous
pouvez l’envoyer avec la combinaison de touches Ctrl+Entrée.
Pour répondre à un courrier, vous pouvez utiliser les touches R (répondre à l’auteur) et A
(répondre à tous). Le texte complet de l’e-mail est automatiquement inséré en citation dans
Linux Livre Page 117 Mardi, 23. septembre 2008 1:05 13
la réponse (chaque ligne est donc précédée du caractère >). Si vous ne souhaitez rappeler
dans votre réponse qu’une partie du message d’origine, sélectionnez la partie correspon-
dante dans l’e-mail avant de faire appel à une commande Répondre.
KMail exécute automatiquement une vérification orthographique et colore tous les mots
non reconnus en rouge. Affichage > Dictionnaire vous permet de choisir le dictionnaire
approprié parmi plusieurs (anglais, français, etc.).
Spam KMail n’intègre aucun outil d’identification du spam mais peut déléguer cette tâche à
d’autres programmes. Un assistant auquel vous pouvez accéder par Outils > Assistant de
gestion des messages non sollicités vous aide à configurer un filtre antispam. Vous n’avez
qu’à choisir un des programmes de gestion du spam installé sur votre ordinateur et l’assis-
tant gère tout le reste. Les courriers identifiés comme indésirables seront dès lors envoyés
directement vers la Corbeille. Comme avec les autres logiciels de courrier, l’efficacité du fil-
trage augmente lorsque vous corrigez les erreurs d’identification en marquant manuellement
un courrier comme indésirable ou non.
Linux Livre Page 118 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 119 Mardi, 23. septembre 2008 1:05 13
OpenOffice
8
OpenOffice est le plus puissant et le plus populaire de tous les paquetages bureautiques
libres disponibles sous Linux. Ses principaux avantages sont les suivants :
• Une grande compatibilité avec Microsoft Office jusqu’à sa version 2003 ; cela concerne
aussi bien l’utilisation de la suite que l’import et l’export de fichiers.
• Une prise en charge des systèmes d’exploitation Linux, Windows, Mac OS et Sun Solaris ;
cela permet ainsi d’échanger sans difficulté des documents dans des environnements
hétérogènes ; il n’existe pas encore de version OpenOffice officielle pour Mac OS, mais
les utilisateurs de Mac peuvent toutefois installer le portage gratuit NeoOffice.
• Des fonctionnalités très larges, y compris pour des tâches avancées (par exemple la
rédaction d’une thèse).
• Sa stabilité, sa sûreté et sa maturité.
Ce chapitre décrit tout d’abord quelques particularités d’OpenOffice 2n, puis présentera
rapidement chacun des composants Writer, Calc, Impress et Base. De façon générale, je pars
dans ce chapitre du principe que vous maîtrisez les fonctionnalités de base d’Office. La
place manque ici pour expliquer comment passer le texte en gras ou comment fonctionnent
les formules dans un tableur. Nous ne pouvons que vous conseiller de vous procurer un
livre entièrement dédié à OpenOffice ou à StarOffice, ce que vous pourrez trouver dans
n’importe quelle librairie.
OpenOffice est disponible pour la quasi-totalité des distributions et peut être installé sim-
plement à l’aide du gestionnaire de paquetages. Si ce n’est pas le cas ou si vous souhaitez
installer une version plus récente, vous devrez récupérer les fichiers d’installation depuis le
site officiel : http://www.openoffice.org
OpenOffice n’est en aucun cas l’unique paquetage bureautique pour Linux. Les principales
alternatives seront rapidement présentées dans la dernière section de ce chapitre.
8.1 Introduction
Avant de présenter chacun des composants OpenOffice dans les sections suivantes de ce
chapitre, nous donnons ici quelques informations générales sur le paquetage OpenOffice.
Java Quelques fonctionnalités d’OpenOffice requièrent la présence de Java. Pour cette raison,
vous devez installer avant OpenOffice une version récente de Java. De nombreuses distribu-
tions proposent par défaut des paquetages Java. Si ce n’est pas le cas de la vôtre, vous pou-
vez télécharger gratuitement la dernière version de l’environnement d’exécution Java de
Sun (J2SE JRE) depuis le site web suivant : http://java.sun.com/j2se/downloads.html
OpenOffice reconnaît automatiquement l’environnement Java disponible lors de l’installation.
Si vous mettez en place Java après avoir installé OpenOffice, vous devrez paramétrer Java
manuellement par le biais de la boîte de dialogue Outils > Options > OpenOffice > Java.
Linux Livre Page 120 Mardi, 23. septembre 2008 1:05 13
120 LINUX
Lancement du Si vous travaillez sous KDE ou Gnome, le menu de démarrage correspondant devrait com-
programme
prendre les icônes OpenOffice dès l’installation terminée. Si ces icônes manquent, vous pouvez
naturellement aussi lancer les composants d’OpenOffice par la ligne de commande :
ooffice, oowriter, oocalc, ooimpress, oobase
Les noms des commandes varient sur certaines distributions. Quoi qu’il en soit, chacune de
ces commandes lance un seul et même programme qui contient l’ensemble des composants
de traitement de texte, tableur, présentation, etc. Pour cette raison, le lancement initial peut
sembler un peu long. Si vous avez ouvert plusieurs composants OpenOffice simultanément,
il n’y a en réalité qu’un seul programme qui s’exécute en coulisse. Vous n’avez donc pas
besoin de vous inquiéter : chacune des fenêtres OpenOffice ouvertes ne requiert pas une
quantité de RAM abusive.
Formats de Avec OpenOffice, vous pouvez ouvrir et enregistrer vos documents dans plusieurs formats
fichiers
OpenOffice de fichiers différents. Les trois formats principaux sont les suivants :
• Format OpenDocument ou OASIS (*.odt pour les fichiers de texte, *.ods pour les
feuilles de calcul, *.odp pour les présentations). Ce format a été introduit avec Open-
Office 2.0. C’est le format par défaut et qui devrait être utilisé autant que possible. Il faut
toutefois veiller, lors de l’échange de documents, à ce que le destinataire du fichier dis-
pose au moins d’OpenOffice 1.1.5 ou de StarOffice 9 s’il doit travailler sur ces fichiers.
OASIS est l’acronyme d’Organization for the Advancement of Structured Information
Standards.
• Format OpenOffice 1.n (*.sxw, *.sxc, *.sxi). Ce format était le format par défaut pour
OpenOffice 1.0 et 1.1, ainsi que pour StarOffice 7 et 8.
• Format Microsoft Office (*.doc, *.xls, *.ppt). Ce format est adapté pour l’échange de
fichiers avec des utilisateurs de Microsoft Office.
Depuis sa version 2.3, OpenOffice peut également ouvrir des fichiers Office 2007 (for-
mat OpenXML, *.docx, *.xlsx, *.pptx) mais non enregistrer dans ce format. Si vous
souhaitez ou devez rester compatible avec le monde Microsoft, utilisez simplement
pour enregistrer vos documents le format Office passé.
La section suivante présentera quelques remarques supplémentaires sur la compatibilité
avec MS-Office.
Vous devriez autant que possible utiliser le format OpenDocument. C’est le seul format qui
permet de garantir l’absence de changements à l’ouverture ou à l’enregistrement. Si vous
choisissez d’enregistrer votre document sous un autre format, une demande de confirmation
de sécurité apparaît automatiquement.
Intégration Par défaut, OpenOffice utilise ses propres boîtes de dialogue pour le chargement et l’enre-
à l’environ-
nement de gistrement de fichiers. Pour faire en sorte qu’OpenOffice utilise plutôt les éléments de dialo-
bureau gue standard de votre environnement de bureau et qu’il s’intègre ainsi plus
harmonieusement à KDE ou à Gnome, vous pouvez désactiver l’option Utiliser les boîtes de
dialogue OpenOffice.org dans la fenêtre de configuration Outils > Options > OpenOffice >
Général. Cette option n’est toutefois disponible que si OpenOffice peut effectivement utiliser
les boîtes de dialogue de l’environnement de bureau courant.
Dossiers Les versions récentes d’OpenOffice vous permettent de travailler directement sur des
réseau
Windows fichiers provenant de répertoires réseau Windows et Samba (vous pouvez donc les ouvrir
Linux Livre Page 121 Mardi, 23. septembre 2008 1:05 13
OPENOFFICE 121
par double-clic dans votre gestionnaire de fichiers et enregistrer ultérieurement les modifi-
cations apportées).
Ceci ne fonctionne toutefois pas sur les anciennes versions d’OpenOffice. Pour modifier des
documents Office hébergés sur un réseau Windows, vous avez deux possibilités :
• copier préalablement le fichier vers un répertoire local, utiliser cette copie pour la modi-
fier puis recopier le fichier résultant dans le répertoire réseau à l’aide du gestionnaire de
fichiers ;
• monter le répertoire réseau Windows dans le système de fichiers Linux à l’aide de mount
(voir Chapitre 23) ; ceci nécessite toutefois de posséder les droits root.
122 LINUX
OPENOFFICE 123
Figure 8.1
La fenêtre OpenOffice
standard avec Styles et
mise en forme.
Pour appliquer un style à un élément de texte donné, sélectionnez le texte puis double-
cliquez, dans Styles et mise en forme, sur le style choisi. Vous pouvez aussi modifier un style
par le biais du menu contextuel, d’un clic droit sur son intitulé dans Styles et mise en forme.
Vous pouvez enfin définir vos propres styles en sélectionnant l’élément de texte dont la mise
en forme doit être enregistrée, puis en cliquant dans Styles et mise en forme sur le bouton
Nouveau style à partir de la sélection. Attention, toutefois, au fait que les modifications
apportées aux styles ne peuvent être annulées (contrairement à beaucoup d’autres opérations)
par le biais des touches Ctrl+Z. Vous devez donc les enregistrer régulièrement.
Tabulations et OpenOffice prévoit par défaut des intervalles de 1,25 cm pour les tabulations. Vous pouvez
tableaux
toutefois modifier ce comportement par le biais de l’onglet Tabulations dans la boîte de dia-
logue Format > Paragraphe. La touche Tab insère une tabulation dans la ligne en cours, ce
qui suffit pour les tableaux très simples.
Pour les tableaux plus complexes, vous devrez utiliser le menu Insertion > Tableau. Vous
pouvez modifier diverses propriétés du tableau par le biais du menu Propriétés du tableau
(dans la fenêtre de gestion des tableaux ou dans le menu contextuel).
Pour insérer des cellules depuis Calc dans Writer, copiez les cellules concernées dans Calc à
l’aide des touches Ctrl+C. Pour les insérer dans Writer en tant que tableau, utilisez le menu
Édition > Collage spécial puis Texte non formaté. Les données apparaissent alors sous forme
de texte tabulé, que vous pouvez transformer en tableau par le biais de Tableau > Convertir
> Texte en tableau (en choisissant, dans la boîte de dialogue de conversion, la tabulation
comme caractère séparateur). Si vous cherchez à insérer directement les cellules dans Writer,
Linux Livre Page 124 Mardi, 23. septembre 2008 1:05 13
124 LINUX
vous produirez non pas un tableau classique mais un objet OLE dont les données sont liées
au fichier d’origine : ce type de liaison n’est que rarement utilisé.
Titres Si votre document est structuré en chapitres et sections, les titres doivent être mis en forme
numérotés
à l’aide des styles Titre 1 à Titre 10 (ce qui facilite par ailleurs la génération d’une table des
matières). Ces titres ne comprennent toutefois pas de numérotation : pour insérer des numé-
ros, utilisez le menu Outils > Numérotation des chapitres. La boîte de dialogue qui apparaît
vous permet de configurer la numérotation pour chacun des niveaux envisagés.
Vérification OpenOffice n’intègre pas directement de dictionnaire pour la vérification orthographique. Il
orthogra-
phique existe toutefois de nombreux dictionnaires disponibles sur Internet (voire livrés avec votre
distribution) que vous pouvez installer. Le menu Fichier > Assistants > Installer de nouveaux
dictionnaires peut également vous aider dans cette tâche.
Veillez à configurer correctement la langue du texte pour assurer un bon fonctionnement de
la vérification orthographique. La langue standard est configurée par le biais d’Outils >
Options > Paramètres linguistiques > Langue. Pour les textes multilingues, Format > Carac-
tères permet de définir la langue avec une granularité plus fine.
Coupure OpenOffice permet de couper les mots soit manuellement, soit automatiquement. Pour lan-
des mots
cer la coupure manuelle, passez par le menu Outils > Langue > Coupure des mots. OpenOf-
fice ajoute alors les tirets soit à l’ensemble du texte situé après le curseur, soit sur une partie
du texte préalablement sélectionnée (vous pouvez aussi utiliser les touches Ctrl+"moins"
pour insérer une coupure manuelle). Chaque coupure doit être confirmée mais vous pouvez
désactiver ce fonctionnement dans Outils > Options > Paramètres linguistiques > Linguistique.
La coupure automatique est nettement plus pratique à utiliser. Toutefois, seuls les paragraphes
pour lesquels l’option de coupure automatique (Format > Paragraphe > Enchaînements) a
été activée seront traités par ce biais.
Insérer Pour insérer une image dans un document, utilisez les menus Insertion > Image > À partir
des images
d’un fichier. Dans la boîte de dialogue de sélection du fichier, vous pouvez basculer entre
deux modes différents grâce à la discrète option Lien :
• Insérer l’image dans le texte. Lorsque Lien n’est pas cochée, le fichier graphique est
intégré au fichier OpenOffice à l’enregistrement. Cela signifie que la taille du fichier
augmente avec le volume de chaque image et le nombre total de celles-ci. La transmis-
sion de tels documents ne pose toutefois aucun problème puisque toutes les images sont
intégrées au fichier.
• Insérer un lien vers le fichier. Lorsque Lien est cochée, OpenOffice n’enregistre effective-
ment dans le fichier que le chemin vers l’image. Cette méthode est recommandée pour les
documents comprenant beaucoup d’images. Attention, toutefois, au fait qu’elle nécessite
de réactualiser tous les liens si l’emplacement du document ou des images change.
Champs Les champs sont des formules ou des variables qui peuvent être insérées dans le texte.
À l’impression, c’est la valeur correspondante qui apparaît dans le texte. Les champs vous
permettent de numéroter automatiquement des figures, d’afficher automatiquement la date
d’impression en en-tête, de créer des séries de lettres standard avec quelques éléments person-
nalisés, etc.
Vous pouvez utiliser Insertion > Champ pour quelques-uns des champs les plus couram-
ment utilisés (numéros de page, date, etc.). Pour disposer d’autres champs, passez par le
sous-menu Autres (Ctrl+F2). OpenOffice peut afficher le nom ou la valeur des champs :
Linux Livre Page 125 Mardi, 23. septembre 2008 1:05 13
OPENOFFICE 125
pour basculer d’un mode à l’autre, utilisez les menus Affichage > Noms de champs ou, plus
rapidement, la combinaison de touches Ctrl+F9 (si vous ne travaillez pas sous KDE).
Table des Lorsque vous souhaitez ajouter une table des matières à votre document, utilisez les styles
matières
de titres Titre 1 à Titre 10. De cette manière, vous pouvez construire la table des matières
avec un minimum de travail : il vous suffit alors de passer par les menus Insertion > Index >
Index puis de sélectionner le type Table des matières. Précisez que la table des matières doit
être fondée sur la structure et, au besoin, limitez le nombre de niveaux (trois est un bon
choix, quatre, un maximum) pour garder la lisibilité de la table. L’onglet Entrées vous per-
met de définir plus précisément la mise en forme de chaque ligne. Pour mettre à jour la table
des matières après avoir modifié le document, effectuez un clic droit dessus et, dans le menu
contextuel, sélectionnez Actualiser l’index.
Index lexical La première étape de la création d’un index consiste à définir les mots à indexer. Le plus
simple est pour cela de sélectionner les mots concernés, puis de passer par les menus Inser-
tion > Index > Entrée. Une boîte de dialogue s’ouvre alors avec, dans le champ Entrée, le
texte sélectionné. Cliquez sur Insérer pour confirmer la nouvelle entrée. Pour définir
d’autres entrées, gardez cette boîte de dialogue ouverte et marquez les mots à mesure que
vous avancez : dès que vous revenez à la boîte de dialogue, le champ Entrée contient le mot
que vous venez de sélectionner. Si vous souhaitez modifier l’intitulé exact de l’entrée, saisissez
le nouveau texte dans le champ.
Les mots pour lesquels une entrée d’index a été définie apparaissent désormais en gris. Le
texte de l’entrée apparaît lorsque vous passez la souris sur le surlignement gris. Une fois
que toutes les entrées sont définies, la création de l’index effectif est alors très simple : pas-
sez par les menus Insertion > Index > Index et choisissez dans la boîte de dialogue le type
Index lexical. Et c’est terminé ! Comme pour la table des matières, vous pouvez modifier ou
actualiser l’index par le biais du menu contextuel.
Impression L’impression par Fichier > Imprimer (Ctrl+P) ne pose en général pas de problème. La boîte
de dialogue vous permet au besoin de préciser quelles pages imprimer ou quelle imprimante
utiliser, et le bouton Options vous donne accès à plus de possibilités.
Pour imprimer au format paysage, vous devez passer par le format de page : Format > Page
> Page pour activer l’option Orientation paysage. Attention au fait qu’un tel paramètre est
prévu dans la boîte de dialogue d’impression, mais qu’il est généralement ignoré !
Export PDF Depuis la version 1.1, OpenOffice permet d’exporter des fichiers directement au format PDF
grâce à Fichier > Exporter au format PDF. Toutes les polices (sauf les polices standard PostS-
cript) sont insérées directement dans le fichier PDF : plus vous utilisez de polices, plus le
document devient donc volumineux. Il n’est pas possible de configurer les paramètres de
l’export PDF.
Gestion des Depuis sa version 2.0, OpenOffice est en mesure d’utiliser sans configuration particulière
polices
l’ensemble des polices disponibles sur votre ordinateur. Pour les polices PostScript, il existe
toutefois une limitation : OpenOffice ne peut les utiliser correctement que si les fichiers de
métrique *.afm des polices sont également installés dans le même fichier que les fichiers
*.pfa ou *.pfb.
Linux Livre Page 126 Mardi, 23. septembre 2008 1:05 13
126 LINUX
Il n’est pas possible de garantir un rendu exactement identique d’un même document sur deux ordinateurs
différents. Suivant les polices installées, la mise en page peut être très légèrement modifiée : lorsque la pré-
sentation doit absolument être identique quel que soit le lecteur, vous devez transmettre vos documents au
format PDF.
OPENOFFICE 127
• Données > Pilote de données est une fonctionnalité avancée. L’idée sous-jacente est
d’utiliser au moins deux critères pour classer les données et de calculer des sous-totaux
intermédiaires.
Format de Calc connaît deux formes de présentation de page : Affichage > Normal correspond à l’affi-
page
chage habituel dans lequel une seule page est visible. Affichage > Aperçu des sauts de page
propose toutefois une vue plus synthétique : l’ensemble du tableau est présenté et les limi-
tes de page sont clairement indiquées. De surcroît, le numéro de chaque page apparaît en
gris en surimpression.
Pour basculer entre les orientations Portrait et Paysage, ainsi que pour configurer de nom-
breuses autres options, vous devrez passer par le menu Format > Page. Ce paramétrage vaut
pour l’ensemble du fichier (donc pour toutes les feuilles de calcul). Si vous souhaitez une mise
en page spécifique pour certaines feuilles de calcul, vous devrez faire appel à Styles et
mise en forme pour créer des styles de page particuliers correspondant à votre besoin.
Impression Par défaut, toutes les feuilles de calcul non vides sont imprimées. Si vous ne souhaitez
imprimer que la feuille de calcul active ou les feuilles de calcul sélectionnées, activez
l’option Imprimer uniquement les feuilles sélectionnées dans la boîte de dialogue Outils >
Options > Calc > Impression.
Si vous ne souhaitez pas imprimer la totalité de la feuille de calcul, vous pouvez déterminer par
le biais de Format > Zones d’impression la section à imprimer. La zone d’impression définie
couramment apparaît alors en couleur dans le mode d’affichage Aperçu des sauts de page.
Pour l’impression d’un document sur plusieurs pages, il est souhaitable de répéter sur cha-
que page les cellules de titres pour les lignes et colonnes. Pour ce faire, configurez en consé-
quence les champs Ligne à répéter et Colonne à répéter dans la boîte de dialogue Format >
Zones d’impression > Éditer.
128 LINUX
Pour choisir la mise en page de la diapo, il vous suffit de cliquer sur l’icône correspondante
dans le panneau Mise en page qui se trouve à droite de la fenêtre (voir Figure 8.2). Cette
mise en page détermine la structure globale de la page. Le panneau de droite de la fenêtre
(panneau des tâches) vous permet non seulement de définir la mise en page de la diaposi-
tive en cours, mais également de gérer des transitions et animations ou de définir des pages
maîtresses.
Figure 8.2
La fenêtre
Impress standard.
Les mises en page prédéfinies sont en fait des variations de structures constituées de quatre
éléments de base : titre, sous-titre, texte (ou plan) et objets à insérer (images, tableaux Calc, etc.).
Avant de pouvoir saisir un texte dans un cadre, vous devez cliquer sur ce cadre. Pour les lis-
tes à puces, il existe une particularité : si vous placez le curseur en début de ligne ou que
vous sélectionniez plusieurs lignes, vous pouvez modifier le niveau d’indentation et le type
de puce par le biais des touches Tab et Maj+Tab. La taille de la police et la mise en forme du
texte sont également modifiées en conséquence. Pour saisir un texte sans puce, cliquez sur le
bouton (Dés)activer les puces dans la barre d’outils.
Le panneau de gauche de la fenêtre vous permet de naviguer rapidement d’une diapositive
à l’autre. Vous pouvez par ailleurs y définir pour chaque page un intitulé plus parlant : pour
ce faire, cliquez sur la diapositive concernée du bouton droit de la souris et choisissez
Renommer la diapo.
Visionner le Pour démarrer la présentation, il vous suffit d’appuyer sur la touche F5. Dès que la présen-
diaporama
tation est lancée, vous pouvez la parcourir à l’aide des touches Entrée, Espace ou des flèches
du clavier. Un simple clic de souris vous amène à la page suivante, le bouton droit de la souris,
à la page précédente. Echap met fin à la présentation en cours.
La combinaison de touches Maj+Ctrl+F5 permet d’afficher la fenêtre de navigation en cours
de présentation, ce qui est utile si vous souhaitez passer à une diapositive ultérieure sans
devoir parcourir toutes les pages intermédiaires.
Normalement, le changement de page nécessite un clic de souris ou une touche du clavier.
Pour automatiser le passage à la diapositive suivante, choisissez la vue Trieuse de diapositi-
ves. Dans le panneau des tâches, choisissez alors le domaine Transition et activez-y l’option
Linux Livre Page 129 Mardi, 23. septembre 2008 1:05 13
OPENOFFICE 129
130 LINUX
Figure 8.3
Le composant de gestion
de bases de données
Base.
Base vous permet aussi bien de créer une nouvelle base de données dans le format propre à
OpenOffice que d’établir une connexion à une base de données existante (en particulier des
bases MySQL).
Assistant de Pour ouvrir un nouveau projet de base de données, passez par les menus Fichier > Nouveau >
base de
données Base de données. La première boîte de dialogue vous propose soit de créer une nouvelle base,
soit d’ouvrir un fichier existant, soit d’accéder à une base existante. Les boîtes de dialogue sui-
vantes dépendent du choix effectué ici et vous permettent au besoin de tester la configuration
de votre ordinateur (un pilote spécial est par exemple nécessaire pour se connecter à une base
de données MySQL : l’assistant peut vous servir à vérifier que ce pilote est bien installé).
Ce n’est qu’une fois toutes les étapes de l’assistant parcourues que la fenêtre de Base appa-
raît. Elle intègre les quatre modules Tables, Requêtes, Formulaires et Rapports dans la fenê-
tre principale. Si vous avez ouvert un fichier existant ou accédé à une base de données
existante, les tables correspondantes apparaissent également sur cette page. Vous devrez en
revanche créer vous-même les requêtes et autres objets de bases de données. Vous pouvez
afficher le contenu de la table courante en sélectionnant Document dans la liste déroulante
qui apparaît en bas à droite de la fenêtre.
Tables Le module Tables fournit une liste de toutes les tables et vues disponibles. Diverses possibi-
lités d’édition vous sont offertes, par exemple :
• Ouvrir une table. Un double-clic sur le nom de la table en ouvre la vue. Vous pouvez
alors parcourir celle-ci, insérer, modifier ou effacer des données. Et également sélectionner
Linux Livre Page 131 Mardi, 23. septembre 2008 1:05 13
OPENOFFICE 131
des lignes dans la table à l’aide des touches Ctrl ou Maj pour les copier dans le presse-
papiers ou les insérer par glisser-déposer dans d’autres documents OpenOffice.
• Créer une nouvelle table. Vous pouvez créer une nouvelle table, au choix, à l’aide d’un
éditeur simple (mode ébauche) ou à l’aide d’un assistant. L’assistant vous permet de
choisir parmi différentes configurations de tables prédéfinies, ce qui peut vous écono-
miser un temps certain.
• Personnaliser une table. Le menu contextuel Modifier vous permet d’accéder à la vue
d’une table en mode ébauche. Vous pouvez alors y insérer des colonnes, en modifier ou
en supprimer, etc.
• Copier des données dans le presse-papiers. L’entrée de menu contextuel Copier copie
l’ensemble des données de la table courante dans le presse-papiers. Il est alors possible
d’insérer ces données dans d’autres documents OpenOffice.
• Créer une nouvelle vue. Ce point conduit à un éditeur de requêtes pour créer une nou-
velle requête. Une nouvelle vue sera alors créée à partir de cette requête et stockée dans
la base de données.
• Supprimer une table ou une vue. Le menu contextuel vous permet aussi d’effacer des
objets. Attention au fait que, si vous avez établi une connexion sur une base de données
existante et que vous en effaciez une table, celle-ci est irrémédiablement détruite : l’opé-
ration s’effectue bien dans la base et non sur une copie locale des données !
Requêtes Le module Requêtes est l’élément le plus intéressant de Base : il vous permet de créer de
nouvelles requêtes à l’aide d’un assistant ou en mode ébauche. L’assistant n’est toutefois
adapté que pour construire des requêtes traitant des données qui proviennent d’une unique
table. Le mode ébauche est donc en général plus adapté.
Dans la fenêtre de création de requête, vous pouvez insérer par double-clic toutes les tables
dont les données doivent être utilisées dans la requête. L’étape suivante consiste à transférer
par glisser-déposer tous les champs de jointure entre les tables.
Formulaires, Les modules Formulaires et Rapports, ainsi que le menu Outils, vous donnent accès à de
rapports et
fonctionnalités nombreuses fonctionnalités supplémentaires que nous ne pouvons qu’effleurer ici. Le pro-
additionnelles blème est que ces fonctionnalités sont relativement nouvelles et manquent donc de matu-
rité, ce qui peut conduire à des difficultés même dans des situations très simples.
Le module Formulaires vous permet de créer des formulaires de saisie et d’édition. De tels
formulaires facilitent la saisie et l’édition des données de la base, plutôt que travailler direc-
tement dans les tables. Pour la création de formulaires, Base vous offre le choix entre le
mode ébauche et un assistant (recommandé pour les utilisateurs débutants).
Le module Rapports vous permet de définir un rapport de base de données à l’aide d’un
assistant. Grâce aux rapports, vous présenterez de manière plus agréable une table, une vue
ou une requête. Les rapports ne peuvent travailler que sur les données provenant d’un
même objet de base de données. Si vous souhaitez générer un rapport sur des données pro-
venant de plusieurs tables, vous devez tout d’abord créer une requête appropriée puis en
extraire un rapport. Il n’est pas possible de modifier ultérieurement un rapport : le menu
contextuel Modifier ouvre certes le rapport dans Writer, mais vous ne pouvez y apporter
que des modifications mineures de mise en page.
Linux Livre Page 132 Mardi, 23. septembre 2008 1:05 13
132 LINUX
Outils > Relations devrait vous conduire à un éditeur dans lequel vous pouvez paramétrer
les jointures entre les tables d’une base de données si jamais Base ne les reconnaît pas par
lui-même. Ce menu conduit toutefois dans divers cas à une erreur du type "La base de données
ne supporte pas les relations !".
Outils > Gestion des utilisateurs affiche une boîte de dialogue pour la gestion des utilisateurs
dans MySQL, mais dont les informations sont généralement erronées. Mon expérience a mon-
tré que cette boîte de dialogue cause plus de mal que de bien : tenez-vous-en donc à l’écart !
Vue des Indépendamment du composant Base, il existe dans OpenOffice une vue des sources de
sources de
données données. Vous pouvez faire apparaître ou disparaître cette vue à l’aide de la touche F4 ou
du menu Affichage > Sources de données et ainsi insérer des informations depuis des bases
de données externes dans Calc, Writer, etc.
Cette vue présente toutes les sources de données connues de Base. Pour définir une nouvelle
source de données, passez par le menu Fichier > Nouveau > Base de données. Vous pourrez
au besoin définir la correspondance entre le nom de la source de données et le fichier Base
grâce à la boîte de dialogue Outils > Options > Base > Bases de données.
Dans cette vue des sources de données, vous pouvez sélectionner une table ou une requête
et travailler par double-clic. Vous insérerez la table complète ou certaines lignes seulement
(préalablement sélectionnées avec la souris et les touches Ctrl ou Maj) dans une feuille de
calcul ou un document texte.
OPENOFFICE 133
cela représente par exemple un danger potentiel : n’exécutez jamais une macro d’origine
inconnue si vous utilisez OpenOffice en tant qu’utilisateur root !).
À l’ouverture d’un document contenant du code Basic, OpenOffice demande systématique-
ment si le code doit être exécuté. Vous pouvez d’ailleurs indiquer si le répertoire d’où pro-
vient le fichier est considéré comme sûr, ce qui conduit à ne plus afficher l’avertissement
pour tout fichier de ce répertoire. Il est possible de modifier tous ces paramètres (et d’autres)
par le biais de la boîte de dialogue Outils > Options > OpenOffice > Sécurité. L’avertis-
sement apparaît également à l’import de fichiers MS-Office, même s’il n’a guère de sens vu
que le code VBA dans son ensemble est automatiquement commenté.
Enregistrer Le menu Outils > Macros > Enregistrer une macro vous permet de consigner dans une nouvelle
une macro
macro toutes les opérations conduites à partir de ce moment. L’enregistrement démarre automa-
tiquement et se termine lorsque vous cliquez sur le bouton Terminer l’enregistrement. Vous
devez ensuite indiquer dans quel fichier (parmi tous ceux ouverts) la macro doit être enregistrée.
Dans le fichier concerné, choisissez la bibliothèque de votre choix (il peut en exister plusieurs
mais Standard est toujours présente) puis renseignez le nom choisi pour le module. La structu-
ration en bibliothèques et modules permet de faciliter l’organisation d’un code volumineux.
Vous pouvez également enregistrer les macros dans Mes macros plutôt que dans les fichiers :
celles-ci sont alors toujours disponibles, indépendamment du fichier OpenOffice actuelle-
ment ouvert. En interne, ces macros sont enregistrées sous la forme d’un fichier de texte
dans ~/.openoffice/user/basic/Standard.
Exécuter Outils > Macros > Exécuter la macro vous conduit à une boîte de dialogue où vous pouvez
des macros
sélectionner la macro de votre choix parmi toutes celles disponibles et lancer son exécution.
Raccourcis La boîte de dialogue Outils > Personnaliser > Clavier vous permet d’associer à chaque
clavier
macro un raccourci clavier. Mes macros y sont classées dans User.
Modifier Si vous souhaitez consulter ou modifier le code d’une macro, choisissez la macro dans
une macro
Outils > Macros > Gérer les macros et cliquez ensuite sur le bouton Éditer. Vous êtes alors
conduit à l’environnement de développement Basic, où vous pouvez choisir la bibliothèque
et le fichier souhaités. Vous y créerez également vos propres macros.
134 LINUX
Pour gérer vos photos, vous pouvez naturellement aussi faire appel à votre gestionnaire de
fichiers (Nautilus, Konqueror). Toutefois, ces programmes proposent à l’heure actuelle
moins de fonctionnalités de traitement et d’options de présentation.
Si vous souhaitez approfondir le sujet de la gestion des images et aller au-delà de l’optimi-
sation du contraste ou d’un redimensionnement de vos photos, vous devriez jeter un coup
Linux Livre Page 136 Mardi, 23. septembre 2008 1:05 13
136 LINUX
9.2 Numérisation
Les scanners existant à l’heure actuelle sont, pour la plupart, connectés par une interface
USB ; les anciens modèles utilisaient également les ports parallèle ou SCSI. Fondamentale-
ment, Linux peut prendre en charge ces trois types de connexions, mais c’est le modèle de
scanner qui détermine s’il pourra être géré correctement par Linux ou non. Renseignez-vous
impérativement au moment de l’achat pour savoir si l’appareil est compatible avec Linux :
http://www.sane-project.org/sane-supported-devices.html
Configuration C’est le paquetage SANE (Scanner Access Now Easy) qui assure l’accès au scanner. Dans
de SANE
de nombreux cas, votre scanner sera reconnu dès le branchement par le programme de
numérisation (XSane ou Kooka, par exemple). Si ce n’est pas le cas, vous devrez préala-
blement configurer SANE. Sur certaines distributions, vous disposez d’outils de configu-
ration pour vous aider dans cette tâche (par exemple, sur SUSE, le module YaST Matériel
> Scanner).
Linux Livre Page 138 Mardi, 23. septembre 2008 1:05 13
138 LINUX
Si aucun outil de configuration de ce type n’est disponible, vous devrez modifier manuel-
lement le fichier de configuration situé dans le répertoire /etc/sane.d/*. Ce répertoire
contient un fichier pour chaque fabricant de scanners, dans lesquels vous ne devriez norma-
lement trouver que quelques entrées à chaque fois. Les quelques lignes suivantes montrent
par exemple le contenu du fichier epson.conf. Elles suffisent pour reconnaître tous les scanners
USB et SCSI de la marque Epson pris en charge par le système.
# /etc/sane.d/epson.conf
usb
scsi EPSON
scsi "EPSON SC"
Les appareils très récents peuvent poser des problèmes si leur numéro d’identifiant ne
figure pas encore dans la base de données USB de la base de matériel pour Linux. Dans
de tels cas, vous devrez déterminer le numéro d’identifiant à l’aide de la commande
lsusb puis, comme dans l’exemple qui suit, ajouter une ligne dans le fichier de configuration
concerné :
utilisateur$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 04b8:010b Seiko Epson Corp. Perfection 1240
...
# Complément dans /etc/sane.d/epson.conf
usb 0x04b8 0x010b
Sane ne prend en considération que les fichiers de fabricants figurant dans /etc/sane.d/dll.conf .
Lorsque SANE ne reconnaît pas votre scanner alors qu’il doit en principe le prendre en charge (vérifiez bien
ce point), vous devriez jeter un coup d’œil à dll.conf et y vérifier si le nom du fabricant de votre scanner
n’est pas commenté.
Numériser Normalement, vous ne communiquerez pas directement avec la bibliothèque SANE pour
avec SANE
numériser des images, mais vous utiliserez une des interfaces utilisateur disponibles. La
plus populaire est Xsane (voir un peu plus loin dans ce chapitre), mais il existe également
Kooka pour KDE. Si vous souhaitez automatiser la numérisation par un script, vous trouverez
la commande scanimage dans le paquetage sane-utils.
Linux Livre Page 139 Mardi, 23. septembre 2008 1:05 13
9.3 gThumb
Le programme gThumb était, jusqu’à la version 2.20 de Gnome, l’outil par défaut pour le
transfert de photos depuis des appareils numériques ainsi que pour la gestion des images.
Les forces de ce logiciel résident dans la gestion systématique des images qu’il propose :
vous pouvez commenter, classer et insérer dans des catalogues toutes les images. Ces infor-
mations complémentaires peuvent par ailleurs faire l’objet de recherches.
Import de Lorsque l’environnement de bureau Gnome est correctement configuré et que votre appareil
photographies
est reconnu, une boîte de dialogue apparaît automatiquement lorsque vous branchez
l’appareil photo pour vous demander si vous souhaitez importer les images. Choisir Impor-
ter des photos lance alors le programme gThumb. Suivant le type d’appareil apparaît alors
soit une boîte de dialogue, soit un aperçu des images disponibles (dont la génération peut
prendre un certain temps). Pour transférer les images depuis l’aperçu vers le disque dur
local, passez par le menu Fichier > Importer des photos.
Dans la boîte de dialogue d’import, sélectionnez les photos à importer à l’aide de la souris
ou de la combinaison de touches Ctrl+A (voir Figure 9.1). Par défaut, gThumb enregistre les
photos importées dans un nouveau répertoire de votre dossier personnel, dont le nom est
constitué à partir de la date et de l’heure courantes. En revanche, si vous renseignez une
valeur dans le champ Film, les images seront enregistrées dans le dossier photos/
nom_du_film au lieu de cet emplacement par défaut. Vous pouvez ensuite affecter les photos
importées à une ou à plusieurs catégories.
Figure 9.1
Importer des photos
avec gThumb.
Linux Livre Page 140 Mardi, 23. septembre 2008 1:05 13
140 LINUX
En option, vous pouvez indiquer si les images doivent être effacées de l’appareil après leur
transfert et si les noms de fichiers originaux doivent être conservés. Normalement, gThumb
attribue aux fichiers de nouveaux noms de la forme 000001.jpg, 000002.jpg, etc.
Lorsque vous devez importer un grand nombre de photos, il est possible que la caméra s’éteigne (par mesure
d’économie d’énergie) au cours du transfert. S’ensuivent des messages d’erreur, des fichiers d’images défec-
tueux ou vides. Une solution : effacez les fichiers problématiques de votre ordinateur, rallumez l’appareil
photo et importez à nouveau les images dont le transfert a été interrompu. Avec de nombreux appareils
photo, vous pouvez contourner le mode d’économie d’énergie en appuyant de temps à autre sur un des bou-
tons de l’appareil durant le transfert.
Si la boîte de dialogue n’apparaît pas automatiquement lorsque vous branchez un appareil photo
(n’oubliez pas d’allumer l’appareil !), lancez le programme gThumb à la main et passez par le menu Fichier
> Importer des photos ; cliquez alors sur l’icône en forme d’appareil photo et sélectionnez vous-même le
modèle de votre appareil. Si vous ne trouvez ni votre appareil ni un modèle qui lui soit compatible dans la
longue liste proposée, essayez l’option USB PTP Class Camera. Si cela ne donne aucun résultat, c’est que
gThumb ne peut pas communiquer avec votre appareil. Dans ce cas, vous devrez lire directement le
contenu de la carte mémoire à l’aide d’un lecteur de cartes.
Gestion des gThumb connaît trois modes d’affichage, parmi lesquels vous pourrez basculer à l’aide des
images
boutons correspondants, du menu Affichage ou des touches Alt+1 à Alt+3 :
• L’affichage par dossiers. gThumb vous permet de sélectionner, dans le panneau de gau-
che, un répertoire du disque dur et affiche dans la partie droite un aperçu de toutes les
photos qu’il contient (voir Figure 9.2).
• L’affichage par catalogue. gThumb présente dans le panneau de gauche tous les catalo-
gues et bibliothèques définis (dont nous parlerons davantage un peu plus loin) et, dans
la partie droite, un aperçu de toutes les photos s’y trouvant.
• L’affichage par image. gThumb présente une image en taille maximale. Les boutons Précé-
dent et Suivant ou les touches Page précédente et Page suivante vous permettent de passer
d’une photo à l’autre. Vous pouvez appliquer des traitements (correction des couleurs,
redimensionnement, etc.) à l’image courante grâce aux commandes du menu Image.
Figure 9.2
Affichage par dossier
avec la sous-fenêtre
d’informations détaillées.
Linux Livre Page 141 Mardi, 23. septembre 2008 1:05 13
L’affichage par dossier et par catalogue est adapté pour sélectionner et copier/déplacer/modi-
fier plusieurs images. Ces vues fournissent également un bon aperçu lorsqu’il y a beaucoup
d’images. Affichage > Afficher/Cacher > Aperçu de l’image vous permet d’ouvrir une sous-
fenêtre supplémentaire présentant au choix (à l’aide des icônes figurant à côté du nom du
fichier) un aperçu de plus grande taille pour l’image sélectionnée, les propriétés EXIF du fichier
(données de luminosité, contraste, etc.) ou encore un commentaire optionnel (voir Figure 9.2).
Orienter La première étape dans le traitement d’un grand nombre de photos consiste généralement à
correctement
les photo- corriger, le cas échéant, l’orientation des images. Suivant le niveau de sophistication de
graphies votre appareil photo, cela peut aller très vite ou nécessiter un certain travail manuel :
• Tourner automatiquement les images. De nombreux appareils photo enregistrent, en
même temps que la photo, la position dans laquelle celle-ci a été prise. Si c’est le cas de
votre appareil, sélectionnez l’ensemble des images du dossier courant avec les touches
Ctrl+A puis exécutez l’opération Outils > Pivoter les images : activez les options Apply
to all images (appliquer à toutes les images) et Apply physical transform (appliquer la
transformation physique) avant de cliquer sur le bouton Appliquer.
• Pivoter manuellement les images. Si l’étape précédente n’a aucun effet, vous devrez inter-
venir manuellement et avez pour cela le choix entre deux manières de procéder. La
méthode la plus simple consiste à sélectionner à nouveau l’ensemble des photos par le
biais de Ctrl+A, puis d’exécuter Outils > Pivoter les images. Vous pouvez alors corriger
l’orientation de l’image courante et enregistrer la modification à l’aide du bouton Appli-
quer. L’image suivante apparaît alors dans la boîte de dialogue. Pour les images qui n’ont
pas besoin d’être corrigées, cliquez sur Appliquer sans pivoter préalablement l’image. De
cette manière, vous parcourez l’ensemble des images et corrigez celles qui le nécessitent.
Il est toutefois plus efficace de sélectionner préalablement toutes les images devant
subir une rotation identique (par exemple 90˚ à droite). Appelez à nouveau Outils >
Pivoter les images et corrigez la première image. Avant de cliquer sur le bouton Appli-
quer, activez l’option Apply to all images (qui devrait, de fait, s’intituler Appliquer à
toutes les images sélectionnées).
La rotation des images au format JPEG s’effectue sans la moindre perte de qualité. Nor-
malement, toute modification à une image JPEG implique une légère dégradation, car
les images doivent être compressées à chaque enregistrement. Cette règle n’est toutefois
pas valable pour les rotations d’un facteur multiple de 90˚, grâce à un algorithme intel-
ligent.
Catégories, Il est fondamentalement judicieux d’enregistrer les images correspondant à des thèmes diffé-
commentaires,
catalogues et rents dans des répertoires ou sous-répertoires dédiés (par exemple photos/2007/Noël ou pho-
bibliothèques tos/2008/Vacances_au_Japon). Ce système de regroupement simple ne suffit toutefois plus
pour retrouver rapidement une photo lorsque le nombre total de celles-ci atteint des propor-
tions importantes. gThumb propose par conséquent d’autres solutions pour identifier les ima-
ges. Cela implique naturellement des efforts supplémentaires de votre part, mais pour
lesquels vous serez récompensé dès que vous utiliserez pour la première fois Édition > Search.
• Catégories. Chaque image peut être affectée à une ou à plusieurs catégories. Pour ce
faire, sélectionnez les images concernées, exécutez Édition > Catégories et choisissez la
Linux Livre Page 142 Mardi, 23. septembre 2008 1:05 13
142 LINUX
ou les catégories concernant les images. gThumb connaît un certain nombre de caté-
gories standard (anniversaire, famille, vacances, etc.) que vous compléterez par vos
propres catégories.
• Commentaires. Édition > Comment vous permet d’enregistrer un texte court relatif aux
images sélectionnées.
• Catalogues. Un catalogue fonctionne comme une liste d’images qui, en réalité, peuvent
être enregistrées dans des répertoires différents. Pour définir un nouveau catalogue,
activez la vue Catalogue et ouvrez ensuite Fichier > Nouveau catalogue. Revenez
ensuite à la vue par dossiers, sélectionnez quelques images et exécutez Édition > Ajouter
au catalogue.
Les catalogues peuvent sembler identiques à des répertoires, mais ils se comportent dif-
féremment. Les images ne sont pas copiées lors de l’insertion à un catalogue. Au lieu de
cela, le chemin des images sélectionnées est ajouté à la liste d’éléments du catalogue. Les
catalogues offrent donc une méthode de regroupement d’images respectueuse de
l’espace disque. L’aide en ligne compare un catalogue gThumb à une liste de lecture
pour un lecteur audio.
• Bibliothèques. Lorsque vous avez défini plusieurs catalogues, vous pouvez les rassem-
bler au sein de bibliothèques. Pour ce faire, exécutez Fichier > Nouvelle bibliothèque en
vue par dossiers. Cliquez ensuite du bouton droit de la souris sur un catalogue et sélec-
tionnez Déplacer, pour l’affecter à une bibliothèque.
Les informations relatives aux catégories, commentaires, catalogues et bibliothèques sont enregistrées non
pas dans les fichiers d’image directement mais dans des fichiers complémentaires. Par conséquent, ces don-
nées ne peuvent être utilisées que par gThumb et pas par d’autres programmes. La correspondance entre
images et informations complémentaires est perdue lorsque les images sont renommées ou déplacées vers
d’autres répertoires !
Traitement En vue image, gThumb peut également réaliser des opérations simples de traitement des
d’images
images (redimensionner l’image, optimiser la luminosité, supprimer les yeux rouges, etc.).
Toutes les commandes correspondantes se trouvent dans le menu Image.
Fonctionnalités gThumb propose encore diverses fonctionnalités que nous ne pouvons que mentionner ici
additionnelles
faute de place :
• Le bouton Diaporama lance une présentation automatique de l’ensemble des photos
contenues dans le répertoire courant. Le programme passe donc en mode plein écran.
Édition > Préférences > Diaporama vous permet de fixer la durée de présentation des
images, d’activer un mode aléatoire, etc. La touche Echap met fin au diaporama.
• Outils > Utiliser l’image comme papier peint définit l’image en cours comme fond
d’écran.
• Outils > Convert Format génère des copies des images sélectionnées vers un autre format
(JPEG, PNG, TGA ou TIFF).
• Outils > Change Date établit la date de création des images sélectionnées à une date
particulière ou ramène cette valeur à la date de création originelle.
Linux Livre Page 143 Mardi, 23. septembre 2008 1:05 13
• Outils > Create Index Image génère des images d’index pour les photos sélectionnées.
Le bouton Style vous permet de paramétrer diverses caractéristiques des images
d’index, par exemple le nombre d’images réduites par page (par défaut, trois lignes et
quatre colonnes), la taille des images réduites (par défaut 128 × 128 pixels), etc.
• Édition > Renommer permet de donner de nouveaux noms aux images sélectionnées
(par exemple suivant un format particulier tel que 001.jpg, 002.jpg, etc.).
• Fichier > Write To CD grave les images sélectionnées ou la totalité du répertoire courant
sur un CD ou un DVD. La commande se contente de transmettre les images au gestionnaire
de fichiers.
9.4 digiKam
digiKam est un programme KDE aux multiples facettes et qui permet d’importer des photos
depuis un appareil numérique, de gérer les images et de réaliser certains traitements de
base. Comme gThumb, ce programme offre plusieurs moyens de classer les images. digi-
Kam peut être étendu au moyen d’un système de greffons. Grâce à ceux-ci, il peut travailler
directement sur les fichiers RAW, gérer des profils de couleurs, appliquer divers filtres sur
les images, etc.
Au premier lancement du programme, vous devez définir un répertoire de base pour vos
images (par défaut, ~/Pictures. Au besoin, vous pouvez modifier ultérieurement ce réper-
toire par le biais de Configuration > Configurer digiKam > Albums.
Import de Avant de tenter le premier transfert de photos, vous devez procéder à une étape de
photographies
configuration. Dans la plupart des cas, il suffit de cliquer sur le bouton Détecter automati-
quement de la boîte de dialogue Configuration > Configurer digiKam > Appareils photo.
L’appareil apparaît alors dans le menu intitulé Appareil photo. Lorsque vous exécutez
Appareil photo > Nom_de_l_appareil ou Appareil photo > Nom_de_la_carte_mémoire, digi-
Kam génère un aperçu de toutes les images. Le bouton Transférer vous permet d’importer
l’ensemble ou une sélection des images dans le sous-répertoire Nom_d_album du répertoire
de base.
Gestion des digiKam ne vous permet de gérer que les images qui se trouvent dans le répertoire de base.
images
Vous devrez donc y copier toutes les images qui auraient été jusqu’à présent stockées
ailleurs (Album > Importer).
digiKam désigne chaque répertoire du répertoire de base comme un album. Alternative-
ment, vous pouvez aussi rechercher des images en vue par date (voir Figure 9.3). Un clic de
souris sur une image sélectionnée permet de l’agrandir, un second clic vous ramène à la vue
par album. Les éléments du menu Image vous permettent de modifier ou d’ajouter divers
commentaires, caractéristiques et mots-clés supplémentaires pour l’image. Ces données
supplémentaires, qui seront très utiles ultérieurement lors des recherches d’images, sont
enregistrées non pas directement dans les images mais dans le fichier digikam3.db qui se
trouve dans le répertoire de base. Le panneau droit de la fenêtre principale vous permet de
filtrer les images par étiquette.
Linux Livre Page 144 Mardi, 23. septembre 2008 1:05 13
144 LINUX
Figure 9.3
Gestion des images
avec digiKam.
Pivoter les Tant que l’appareil enregistre l’orientation des images dans les fichiers EXIF, Image > Corri-
images
ger l’orientation EXIF devrait vous permettre de corriger l’orientation pour toutes les ima-
ges du répertoire courant qui en auraient besoin. Si cela ne fonctionne pas, les combinaisons
de touches Ctrl+Maj+Flèche gauche ou Ctrl+Maj+Flèche droite permettent de pivoter les
images sélectionnées de 90˚ vers la gauche ou vers la droite.
Traitement En vue par dossiers, vous ne pouvez réaliser que des opérations élémentaires (par exemple
d’images
pivoter les images). Le menu contextuel Édition vous offre toutefois des possibilités plus
avancées. digiKam affiche alors l’image dans une nouvelle fenêtre, où vous pouvez l’enca-
drer, lui donner un titre, en optimiser les couleurs et la luminosité, y supprimer les yeux rou-
ges, la redimensionner, etc. Les modifications sont normalement enregistrées directement
dans le fichier. Si vous ne souhaitez pas en perdre la version originelle, enregistrez la version
corrigée par le biais de Menu > Enregistrer sous.
Fonctionnalités La plupart des fonctionnalités supplémentaires sont accessibles depuis le menu Outils. Vous
supplémen-
taires pouvez y convertir ou modifier par lot toutes les images sélectionnées, lancer un afficheur
en mode pleine page, exporter des images vers un iPod, etc. Le menu Album > Export pré-
sente également des fonctions supplémentaires. Vous y trouverez des commandes pour gra-
ver un CD de photos, transférer des images vers ou depuis un serveur Flickr, générer une
galerie HTML, etc.
De très nombreuses fonctionnalités de digiKam sont conçues sous la forme de greffons
KIPI (KDE Image Plugin Interface). Lorsque vous ne trouvez pas certaines fonctionnalités
individuelles dans digiKam, vérifiez si les greffons sont installés et activés dans les boîtes
de dialogue Configuration > Configurer digiKam > Modules externes KIPI et > Éditeur
d’images.
Linux Livre Page 145 Mardi, 23. septembre 2008 1:05 13
9.5 F-Spot
Le programme F-Spot (voir Figure 9.4) est le nouveau programme par défaut pour la ges-
tion des images depuis la version 2.22 de Gnome. Mes impressions quant à ce programme
étaient plutôt partagées. D’un côté, F-Spot possède une interface bien adaptée et quelques
idées intéressantes : par exemple, toute modification sur des images n’est jamais enregistrée
directement dans le fichier d’origine mais l’est dans des "versions". Vous pouvez ainsi bas-
culer à tout moment entre la version d’origine et la version modifiée d’une image et n’avez
pas à vous inquiéter d’enregistrer par erreur des modifications irréversibles dans l’original.
L’organisation des images suivant un axe temporel est également une particularité intéres-
sante, surtout lorsque le nombre d’images augmente.
Figure 9.4
Gestion d’images
avec F-Spot.
Mais, d’un autre côté, ce programme se distingue aussi par quelques lourdeurs : F-Spot ne
peut gérer que les images qu’il a préalablement "importées". Normalement, les images sont
copiées à l’import vers le répertoire ~/Photos, où est créé un sous-répertoire pour chaque date
de création de photos. Si vous avez déjà organisé vos images sur votre disque dur, vous pou-
vez renoncer à toute copie physique lors de l’import : dans ce cas, F-Spot enregistre diverses
informations dans sa propre base de données (fichier ~/.gnome2/f-spot/photos.db).
On constate que F-Spot n’est pas encore tout à fait arrivé à maturité. Son utilisation peut se
révéler irritante : il n’existe par exemple aucune fonction Annuler directe pour le traitement
des images, non plus qu’une information claire indiquant s’il existe plusieurs versions
d’une même image. Les changements d’affichage font constamment perdre de vue l’image
en cours. De surcroît, c’est un programme exigeant en matière de ressources. Tant qu’il
s’exécute, la charge CPU est toujours proche de 100 % alors qu’il est parfois difficile de com-
prendre ce que fait vraiment le programme (certaines critiques rendent la dépendance du
programme à la bibliothèque Mono responsable de cette gourmandise).
Linux Livre Page 146 Mardi, 23. septembre 2008 1:05 13
146 LINUX
Pour faire court, certains utilisateurs disposant d’un ordinateur rapide apprécieront cet outil
pour ses fonctionnalités innovantes. Les autres, insatisfaits par les concepts peu habituels et
l’implémentation encore problématique de cet outil, devront revenir à gThumb ou trouver
un autre programme à utiliser.
Utilisation F-Spot se comporte différemment suivant la façon dont il a été lancé. L’une des variantes
consiste à ouvrir une image depuis le gestionnaire de fichiers par le menu contextuel Ouvrir
avec > F-Spot. Dans ce cas, l’interface utilisateur de F-Spot est très limitée. Vous pouvez affi-
cher et pivoter l’image, mais aucun autre traitement n’est disponible. Fichier > Ouvrir le
dossier conduit aux autres images du répertoire courant.
Pour pouvoir utiliser F-Spot avec l’ensemble de ses fonctionnalités, vous devez le lancer
directement depuis le menu Gnome ou KDE ou par la commande f-spot. Importez ensuite
les images que vous souhaitez y gérer. F-Spot affiche alors un aperçu des images. Vous pou-
vez modifier la taille de l’aperçu par le biais de la règle en bas à droite. Un double-clic sur
une image conduit au mode d’édition. Les modifications apportées à une image sont enregis-
trées dans un nouveau fichier qui se trouve dans le même répertoire que l’original. Au nom
d’origine est ajouté un complément indiquant la version. C’est la liste déroulante Version, en
bas à gauche, qui indique quelles versions d’une image sont disponibles. Fichier > Version vous
permet de basculer d’une version à l’autre. Pour revenir à une version antérieure, sélectionnez
la version à annuler et effacez-la par le menu Fichier > Supprimer la version.
Pour mieux organiser vos images, vous pouvez leur attribuer par glisser-déposer des éti-
quettes. F-Spot prévoit par défaut cinq étiquettes (Favoris, Masqué, Lieu, Personnes, Événe-
ments). Vous pouvez définir les étiquettes de votre choix, affecter plusieurs étiquettes à une
même image, etc. Un double-clic sur une de ces étiquettes restreint l’affichage aux images
portant effectivement cette étiquette. Pour afficher à nouveau toutes les photos, vous devez
supprimer le filtre Rechercher.
9.6 KPhotoAlbum
KPhotoAlbum (anciennement KimDaBa) est un autre programme de gestion des images et
vidéos. Ses points forts sont ses fonctionnalités puissantes de recherche et d’organisation.
Pour l’enregistrement des données relatives aux images, KPhotoAlbum utilise une base de
données SQLite. KPhotoAlbum est, par divers aspects, l’homologue de F-Spot pour KDE.
Toutefois, il n’est pas tout à fait aussi fonctionnel.
KPhotoAlbum présuppose que tous les fichiers images et vidéos se trouvent dans un réper-
toire de base (par défaut ~/Images). Ce répertoire est mis en place au premier lancement s’il
n’existe pas encore. Vous devrez y copier manuellement des images existantes (KPhotoAl-
bum ne prévoit étonnamment pas de fonctionnalité d’import de photos). Chaque fois que le
contenu de ce répertoire est modifié, KPhotoAlbum doit resynchroniser sa base de données :
pour ce faire, exécutez Maintenance > Rescan for images.
KPhotoAlbum accède aux mêmes modules KIPI que digiKam. Vérifiez donc préalablement
que ces plugins sont installés (en général, il s’agit du paquetage kipi-plugins).
Donner des L’utilisation de KPhotoAlbum n’est intéressante que si vous vous donnez la peine de fournir
informations
contextuelles pour toutes les images (ou, a minima, pour un grand nombre d’entre elles) des informations
contextuelles. Qui ou quoi figure sur cette image ? Où a-t-elle été prise ? À quelle catégorie
Linux Livre Page 147 Mardi, 23. septembre 2008 1:05 13
appartient-elle ? Pour fournir ces informations, commencez par sélectionner une ou plusieurs
images puis, par le menu contextuel, exécutez Set properties for individual images ou Set
properties for multiple images at a time. Vous arrivez alors à la boîte de dialogue présen-
tée à la Figure 9.5. Saisissez-y les informations de votre choix. L’utilisation de cette boîte
de dialogue est étonnamment efficace et la procédure pour chaque image ne dure que
quelques secondes. Le classement d’une base de données d’images complète peut toute-
fois prendre un certain temps.
Figure 9.5
Classer des images
dans KPhotoAlbum.
Rechercher Une fois que les informations contextuelles sont disponibles pour toutes les images, il est
des images
possible de rechercher des images dans la fenêtre principale de KPhotoAlbum en quelques
clics de souris, toujours suivant le modèle : "me montrer uniquement les images sur lesquel-
les on peut voir un jardin et qui ont été prises au Japon". La recherche parmi les aperçus est
de surcroît facilitée par une échelle de temps.
Figure 9.6
Aperçu des images
dans KPhotoAlbum.
Linux Livre Page 148 Mardi, 23. septembre 2008 1:05 13
148 LINUX
9.7 XSane
XSane est un programme aussi confortable que riche en fonctionnalités pour scanner des
images. Avant de scanner la première image, basculez du mode Noir et blanc soit vers
Niveaux de gris, soit vers Couleurs, puis choisissez la résolution souhaitée. Par défaut,
XSane utilise la valeur 72 DPI, ce qui est une résolution très faible.
Le bouton Acquisition de l’aperçu de la fenêtre Aperçu vous permet d’exécuter une première
numérisation. Grâce au bouton Sélectionne l’aire visible, vous pouvez limiter le domaine
scanné à la taille de votre choix. Si vous souhaitez exécuter une balance des blancs, sélection-
nez avec la pipette Choisissez un point blanc sur un point blanc et Choisissez un point noir sur
un point noir. Les pros de la numérisation pourront entreprendre des corrections de couleurs
plus poussées à l’aide de l’histogramme (Fenêtre > Montrer l’histogramme).
Le bouton Numériser de la fenêtre principale vous permet de réaliser le scan effectif dans la
résolution choisie. XSane présente le résultat du scan dans une nouvelle fenêtre où vous
pouvez pivoter l’image, l’adoucir et en modifier l’échelle. Filtres > Déparasiter l’image tente
de supprimer les erreurs de numérisation et les parasites que peut présenter l’image. Pour
les images volumineuses, ce processus risque de prendre un temps relativement long et
n’aboutit que rarement à une amélioration notoire de la qualité de l’image. Enfin, vous pouvez
enregistrer votre image à l’aide de Fichier > Enregistrer.
Produire des images de haute qualité est un art en soi. L’aide de XSane renvoie vers quelques sites web pré-
sentant des astuces à ce sujet.
Il est encore plus délicat de réaliser ultérieurement des impressions de qualité des images scannées. La plu-
part du temps, l’image numérisée doit préalablement être optimisée par le biais d’un logiciel de traitement
d’images tel que Gimp. Si vous rencontrez des difficultés avec les motifs de type moiré, essayez le filtre Flou
> Flou gaussien ou Amélioration > Antiparasites.
Reconnais- Si le programme gocr (du paquetage éponyme) est installé, vous pouvez exécuter une
sance de texte
reconnaissance de texte sur l’image scannée. Le texte reconnu est enregistré dans un fichier
propre (en général out.txt). Mes expériences avec cette fonctionnalité ont toutefois été
décevantes.
Linux Livre Page 149 Mardi, 23. septembre 2008 1:05 13
Gimp
10
Derrière l'acronyme Gimp (Gnu Image Manipulation Program) se cache un logiciel de traite-
ment qui présente de nombreuses fonctionnalités comparables à celles du logiciel commer-
cial Adobe Photoshop. Il existe toutefois une différence notable entre les deux : Gimp est un
logiciel libre sous licence GPL. Gimp vous permet, entre autres :
• d'ouvrir et d'enregistrer des fichiers bitmap dans différents formats (parmi lesquels GIF,
JPEG, PNG ou TIFF) ;
• d'importer des fichiers PostScript (EPS/PS) et Photoshop (PSD) ;
• de retravailler des photographies et images numérisées (modifier la luminosité, le
contraste, les couleurs, etc.) ;
• d'appliquer divers filtres (par exemple pour améliorer l'image, créer des effets d'optique,
etc.) ;
• de sélectionner une partie d'une image, de la découper, de la traiter séparément et de la
coller dans d'autres images (montage photo) ;
• d'insérer de nouveaux éléments graphiques dans une image (lignes, motifs de remplis-
sage, texte, etc.) ;
• d'automatiser des opérations Gimp ;
• de réaliser des traitements par lots sur un grand volume de fichiers ;
• d'imprimer et d'enregistrer les images résultantes (en tant que fichiers bitmap, PostScript
ou encore dans le format propre de Gimp, XCF, qui enregistre non seulement l'image,
mais aussi des informations sur les modifications apportées : masques, calques, etc.).
Ce chapitre est une introduction très rapide à Gimp, sur la base de sa version 2.4. Certaines
distributions proposent encore la version 2.2, qui ne diffère que très peu de la version 2.4 : ce
chapitre devrait donc, à quelques rares exceptions près (certains raccourcis clavier ont été
entre-temps modifiés), s'appliquer aussi à Gimp 2.2. Vous devez toutefois veiller, si vous tra-
vaillez avec Gimp 2.4, à enregistrer régulièrement vos documents : cette nouvelle version
n'est pas encore aussi robuste que la 2.2.
Comme il ne nous est pas possible de décrire en détail toutes les fonctionnalités de Gimp, ce
chapitre ne vous présente qu'un survol des fonctionnalités essentielles. Pour vous documen-
ter de façon plus approfondie sur le sujet, vous pourrez trouver de nombreux ouvrages sur
Gimp ainsi que des sites très complets, par exemple : http://www.gimp.org/ ; http://
www.gimp.org/docs/ ; http://gimp-savvy.com/ ; http://manuel.gimp.org/
Assimiler les fonctionnalités de Gimp n'est toutefois que la première étape. Il est également
essentiel de comprendre comment mettre en pratique ces fonctions de manière appropriée.
Avant de pouvoir faire imprimer vos travaux en format poster, vous devrez aussi vous préoc-
cuper de calibrer votre écran et votre imprimante : un ouvrage sur les bases du graphisme
pourra donc également se révéler un investissement judicieux pour tout utilisateur de Gimp.
Linux Livre Page 150 Mardi, 23. septembre 2008 1:05 13
150 LINUX
Rêve et réalité Gimp est un logiciel polyvalent et très puissant. Toutefois, il existe un risque non négligea-
ble que vos premières expériences soient décevantes et vous conduisent à l'effacer rapide-
ment de votre disque dur. Il existe deux raisons à cela : d'une part, ce logiciel demande un
temps d'appropriation et un apprentissage intensif avant de pouvoir être utilisé de manière
efficace ; d'autre part, Gimp est gourmand en ressources matérielles. Pour travailler confor-
tablement, vous aurez besoin de suffisamment de mémoire, d'un processeur rapide et d'un
écran large.
Gimp est fréquemment décrit comme une alternative gratuite, différente mais aux fonction-
nalités équivalentes à Photoshop, ce qui contribue à forger des espoirs ultérieurement
déçus. Cette description est un peu trop superficielle :
• L'utilisation de Gimp diffère sur certaines parties très notoirement de celle de Pho-
toshop. Les vrais fans de Gimp affirmeront naturellement que leur logiciel favori est
plus intuitif et plus efficace. C'est vrai pour certaines fonctionnalités, mais d'autres
donnent la nette impression que le logiciel a été conçu par des techniciens, pour des
techniciens. De surcroît, il est souvent difficile pour les utilisateurs de Photoshop
migrant vers Gimp de localiser les fonctions recherchées dans l'imbrication des
menus.
• Il est plus difficile de générer des fichiers (PostScript) pour une impression profession-
nelle avec Gimp qu'avec d'autres logiciels. La génération d'images comprenant des tons
directs ou couleurs d'accompagnement (format d'image en couleurs directes) est en
théorie possible, mais les fonctions associées offrent peu de confort. Il manque une prise
en charge directe des couleurs Pantone, mais ce point devrait être résolu à l'avenir par la
mise à disposition de greffons commerciaux.
Alternatives Si Gimp vous paraît trop complexe, les logiciels de gestion d'images présentés au Chapitre 9
à Gimp
vous proposent également quelques fonctions élémentaires de traitement graphique. Si
vous n'avez besoin que d'optimiser rapidement le contraste d'une image, ces outils vous
suffiront largement.
Si vous recherchez un logiciel simple de dessin du type Microsoft Paint, un coup d'œil au
programme KDE kolourpaint devrait se révéler intéressant.
En termes de complexité et de fonctionnalités, krita se situe à mi-chemin entre Gimp et
kolourpaint. Ce programme fait partie de la suite bureautique KDE. Elle conjugue une uti-
lisation relativement simple avec des fonctionnalités avancées (y compris la gestion des calques
et de très nombreux filtres).
Si vous ne souhaitez pas renoncer aux fonctionnalités de Gimp, mais que vous recherchiez une
utilisation proche de Photoshop, prenez le temps de tester le portage GimpShop.
Les commandes de conversion d'images vers différents formats seront présentées au Chapi-
tre 15.
Gimp et toutes les alternatives que nous venons de présenter sont des logiciels de traite-
ment d'images bitmap (travaillant sur des pixels). Il existe également sous Linux divers
programmes de dessin vectoriel : le composant OpenOffice Draw, le logiciel Inkscape ou
encore krita.
Linux Livre Page 151 Mardi, 23. septembre 2008 1:05 13
GIMP 151
Cette astuce vaut pour tous les formats pris en charge par Gimp : lorsque, à l'enregistrement, vous ajoutez
l'extension *.gz ou *.bz2, le fichier est de surcroît compressé. Ceci n'a toutefois de sens que pour les formats
de fichiers non comprimés par ailleurs.
Les fichiers portant cette extension seront automatiquement décompressés à l'ouverture. bzip2 compresse
un peu mieux que gzip, mais il est notoirement plus lent.
XCF et PSD XCF est le format de fichier propre à Gimp. C'est le seul format pour lequel toutes les infor-
mations de travail et de construction de l'image (calques, masques, sélection en cours, etc.)
sont effectivement enregistrées. Lorsque vous travaillez sur une image, XCF est le seul format
réellement adapté pour les copies de travail.
Le format PSD est l'homologue du format XCF pour Photoshop.
Formats Les formats bitmap ne permettent d'enregistrer qu'un seul calque. Si votre image est consti-
bitmap
tuée de plusieurs calques, ceux-ci doivent être fusionnés à l'enregistrement. Si vous rouvrez
ultérieurement ce fichier, seul cet unique calque fusionné sera disponible : vous aurez perdu
toute possibilité de modifier l'image. Pour cette raison, un avertissement est affiché avant
l'enregistrement effectif du fichier et vous devez confirmer la fusion en cliquant sur le bou-
ton Exporter. Vous devez obligatoirement enregistrer aussi votre travail au format Gimp
XCF si vous souhaitez pouvoir le modifier ultérieurement sans contrainte !
• BMP. Ce format sert uniquement pour l'échange de fichiers avec le monde Microsoft
Windows.
• GIF. Le format GIF est adapté pour l'enregistrement de petites images et animations lors-
que l'on cherche à économiser l'espace disque. Les bitmaps sont comprimés de manière
efficace et sans perte, mais ils sont limités à 256 couleurs. Ce format gère la transparence.
Pour enregistrer des images Gimp en tant que GIF, vous devez préalablement les passer
en mode 256 couleurs à l'aide du menu Image > Mode > Couleurs indexées.
• JPEG. Ce format se distingue par un algorithme de compression très efficace particuliè-
rement adapté pour les photographies (nettement moins pour les captures d'écran ou le
dessin technique). La compression JPEG s'effectue avec perte de qualité, c'est-à-dire que
les images JPEG diffèrent des originaux. Ces différences ne sont en général pas visibles
à l'œil nu lorsque le facteur de qualité choisi à l'enregistrement est suffisamment élevé.
La valeur par défaut (75 %) est généralement raisonnable. Pour les images très détaillées
ou avec des contours très marqués, vous devriez passer cette valeur à 90 %.
Lorsque vous ouvrez, modifiez puis enregistrez une image JPEG à plusieurs reprises, la qualité diminue à
chaque fois. Si les pertes occasionnées par la compression sont, à la première application de l'algorithme,
Linux Livre Page 152 Mardi, 23. septembre 2008 1:05 13
152 LINUX
à peine visibles à l'œil nu, les modifications s'accumulent ensuite de façon peu esthétique. Le format JPEG
n'est donc absolument pas adapté pour faire des copies de travail ! Enregistrez uniquement l'image finale
au format JPEG et archivez une copie XCF du fichier de travail !
• PNG. Ce format a été conçu comme un successeur de GIF et il lui est à tout point de vue
supérieur : pas de limitation à 256 couleurs, malgré une compression de meilleure qua-
lité et sans perte, etc. De plus, la majorité des navigateurs web utilisés aujourd'hui peut
gérer sans problème les images PNG.
• TIFF. Ce format est apprécié des graphistes professionnels. Les images sont enregistrées
sans perte. Grâce à l'algorithme de compression LZW, la taille des fichiers pour les cap-
tures d'écran ou les dessins techniques devient très faible. Toutefois, Microsoft Word
rencontre des problèmes pour l'affichage et l'impression de fichiers compressés en tant
que TIFF.
Il existe de nombreuses variantes du format TIFF, ce qui occasionne des problèmes à
l'échange de fichiers TIFF entre programmes différents.
PostScript Normalement, vous ne devez enregistrer des images au format PostScript que lorsque vous
(PS, EPS)
souhaitez utiliser le fichier résultant dans un autre logiciel (par exemple un logiciel de trai-
tement de texte). Vous disposez alors de deux options intéressantes :
EPS (Encapsulated PostScript) signifie qu'un commentaire est enregistré au début du fichier
PostScript pour fournir les dimensions exactes de l'image. Cette information est obligatoire
pour pouvoir insérer correctement l'illustration dans un autre programme. Les fichiers PostS-
cript conçus pour être ultérieurement utilisés dans d'autres logiciels (et non simplement pour
l'impression) reçoivent en général l'extension de fichier *.eps (et non simplement *.ps).
Aperçu signifie qu'en plus des commandes PostScript un bitmap est enregistré. Cela permet
également de générer un aperçu dans les programmes n'ayant pas accès à un interpréteur
PostScript. Le bitmap d'aperçu augmente notablement la taille du fichier sans pour autant
ajouter d'informations utiles pour l'impression. N'activez donc cette option que si vous sou-
haitez utiliser les fichiers PostScript sur un ordinateur Windows (qui ne possède aucune
capacité d'aperçu des PostScript).
Gimp peut également importer les fichiers PostScript et PDF. Il fait appel pour cela à l'inter-
préteur PostScript Ghostscript (voir aussi le Chapitre 15 à ce sujet). Pour une bonne qualité
graphique, les éléments décisifs sont une résolution adaptée (donc suffisamment élevée) et
l'option de lissage.
GIMP 153
d'outils apparaissant suivant les besoins (voir aussi le menu Fichier > Dialogues). Ceci
conduit fréquemment à avoir cinq ou six fenêtres Gimp ouvertes simultanément, parfois
même davantage (voir Figure 10.1). Si vous avez lancé d'autres programmes en plus de
Gimp, la fenêtre peut rapidement devenir surchargée et donc inutilisable.
Figure 10.1
À gauche, la fenêtre
principale de Gimp ;
au centre, deux fenêtres
d'outils ; à droite,
une fenêtre d'image.
154 LINUX
Impression
Fichier > Imprimer vous conduit à une boîte de dialogue quelque peu difficile à lire (voir
Figure 10.2). Si cette commande n'est pas disponible, vous devrez installer (suivant votre distri-
bution) le paquetage gimp-print ou gutenprint-plugin. Si la boîte de dialogue apparaît en lan-
gue anglaise, vous devrez en outre installer le paquetage de localisation correspondant (par
exemple, sur Ubuntu, language-pack-fr). La traduction peut toutefois se révéler incomplète.
Figure 10.2
La boîte de dialogue
d'impression de Gimp.
GIMP 155
156 LINUX
quatre flèches en forme de croix). Vous pouvez utiliser autant de guides que vous le souhaitez
et également les combiner à la grille magnétique (Affichage > Aligner sur la grille).
Boîte à outils La fenêtre principale de Gimp héberge toujours la boîte à outils. Il s'agit d'une palette d'icônes
représentant les outils de Gimp. Tous les outils peuvent également être activés par le biais du
clavier. Les raccourcis clavier sont donnés dans le menu Outils de la fenêtre d'image.
Pour chaque outil, il existe une boîte de dialogue de paramétrage. Cette boîte de dialogue
est normalement affichée comme un élément de la fenêtre principale de Gimp, mais elle
peut également en être détachée. Si le dialogue de paramétrage n'apparaît pas, ouvrez-le en
double-cliquant sur l'icône de l'outil correspondant.
Dialogues De nombreuses fonctionnalités de base sont affectées par les paramètres des dialogues Pin-
ceau (crayon et pinceau) et Remplissage (motif de remplissage). Ces boîtes de dialogue sont
accessibles par la commande Dialogues du menu contextuel.
Tous les dialogues (mais pas la fenêtre d'image) peuvent être déplacés et amarrés les uns
aux autres par glisser-déposer. Vous pouvez ainsi garder une vue d'ensemble des fenêtres
lorsque celles-ci sont nombreuses.
Détacher Lorsque vous utilisez fréquemment un sous-menu particulier (par exemple Image > Trans-
des menus
former), vous pouvez tout simplement lui attribuer son propre dialogue. Pour cela, ouvrez
le menu dans la fenêtre d'image par le biais du menu contextuel. Ce n'est que là (et non dans
le menu principal) qu'apparaît en haut du menu une ligne pointillée. Dès que vous cliquez
dessus, le menu se voit affecter sa propre fenêtre.
Couleurs Toutes les commandes de peinture et de dessin utilisent les couleurs de premier plan et
d'arrière-plan définies dans la boîte à outils. Vous pouvez ouvrir le dialogue permettant de
modifier ces couleurs d'un double-clic sur le champ de couleur correspondant. La petite
icône en bas à gauche rétablit les couleurs par défaut noir et blanc ; la double flèche intervertit
couleur de premier plan et couleur d'arrière-plan.
Annuler Ctrl+Z vous permet d'annuler les cinq dernières opérations, Ctrl+Y permet de les rétablir.
et refaire
La boîte de dialogue de configuration Édition > Préférences > Environnement vous permet
de fixer le nombre d'annulations autorisées (attention au fait que l'espace mémoire requis
peut rapidement gonfler !).
La boîte de dialogue Édition > Historique d'annulation vous donne un accès facile aux der-
nières opérations effectuées. La fenêtre présente chacune des étapes réalisées avec un aperçu
de l'image résultant de l'opération correspondante. Un clic de souris vous permet de revenir
à un état antérieur.
Paramètres De nombreux effets et paramètres sont pilotés par une règle. Ces règles sont toutefois diffi-
configurés
par règles ciles à utiliser précisément avec la souris. Utilisez plutôt les flèches du clavier !
Vues Il est souvent pratique de disposer, en plus d'un agrandi ou d'une réduction d'une image, d'une
seconde vue à l'échelle 1:1. Pour ce faire, il vous suffit d'ouvrir avec Affichage > Nouvelle vue
une seconde fenêtre présentant l'image en cours. Vous pouvez alors y configurer l'agrandisse-
ment indépendamment de la première fenêtre, afficher la sélection (Ctrl+T) ainsi que les guides
(Maj+Ctrl+T). Vous aurez alors une bonne idée du résultat final de votre travail.
Système d'aide Avec de nombreuses distributions, le système d'aide de Gimp n'est pas installé par défaut
pour des raisons de place. Avant de pouvoir utiliser l'aide, vous devrez donc installer les
paquetages gimp-helpbrowser, gimp-help-common et gimp-help-fr. Pour lancer l'aide, utilisez la
touche F1 ou le menu Aide.
Linux Livre Page 157 Mardi, 23. septembre 2008 1:05 13
Audio et vidéo
11
Ce chapitre explique comment, sous Linux et dans le respect de la légalité, vous pouvez
écouter des CD et fichiers audio, lire des DVD et fichiers vidéo et regarder la télévision avec
DVB-T. Je suppose ici que le système audio et vidéo de votre distribution fonctionne (voir le
Chapitre 22). C’est en général le cas avec la majorité des distributions si vous utilisez du
matériel standard.
Après une présentation rapide des principaux lecteurs de CD, je m’intéresserai aux codecs
audio et vidéo, ainsi qu’au cryptage des DVD. Les codecs constituent le fondement du stockage
et de la lecture de fichiers audio et vidéo sous forme compressée. Le cryptage des DVD est le
principal obstacle qu’a placé l’industrie des médias sur le chemin des utilisateurs souhaitant
lire leurs DVD sous Linux. Une dernière section traitera de la télévision numérique (DVB).
Après cette introduction quelque peu théorique, je vous présenterai les principaux lecteurs
audio et vidéo pour Linux. De nombreux programmes sont conçus pour être universels et
ils remplissent donc plusieurs rôles, bien au-delà du simple "lecteur de MP3". Ils permettent
de modifier les informations relatives à des fichiers, flux, lecteurs de données ou cartes TV,
extraire ("ripper") des CD audio, etc.
• Amarok, lecteur audio de KDE ;
• Banshee, lecteur audio de Gnome (repose sur la bibliothèque Mono) ;
• KAudioCreator, logiciel d’extraction de CD de KDE ;
• MPlayer, lecteur audio et vidéo ;
• Noatun, lecteur audio de KDE ;
• RealPlayer/Helix Player, lecteur audio et vidéo ;
• Rhythmbox, lecteur audio de Gnome ;
• Sound Juicer, logiciel d’extraction de CD pour Gnome ;
• Totem, lecteur par défaut de l’environnement Gnome ;
• XMMS, lecteur audio simple ;
• Xine, lecteur audio et vidéo.
Lorsque vous configurez Gnome ou KDE comme environnement de bureau, vous pouvez
déterminer vous-même quel est le programme de lecture par défaut pour un format donné
(voir les Chapitres 4 et 5 à ce sujet). Un conseil supplémentaire : si vous recherchez avant
tout un lecteur simple pour écouter des fichiers locaux, tenez-vous le plus loin possible des
programmes surchargés de fonctionnalités. Personnellement, mon lecteur favori est XMMS
lorsque je souhaite écouter l’ensemble des fichiers MP3 ou OGG d’un même répertoire. Cela
ne nécessite qu’une courte commande à saisir dans la console et je n’ai pas besoin de me
compliquer la vie avec des listes de lecture ni avec l’importation de fichiers audio ou une
demi-douzaine de boîtes de dialogue de configuration à remplir...
Linux Livre Page 158 Mardi, 23. septembre 2008 1:05 13
158 LINUX
Multimédia On pourrait écrire bien davantage encore sur le sujet du multimédia sous Linux : parmi les
pour
utilisateurs sujets importants à évoquer, on trouverait la synchronisation avec un iPod, la capture audio,
avancés la réception de télévision analogique, la programmation d’enregistrements vidéo, le son
multicanaux, le montage audio ou vidéo, Midi, l’utilisation d’un ordinateur sous Linux
comme serveur audio et vidéo, etc. Comme je ne suis toutefois pas un expert en matière de
multimédia et que je ne suis pas convaincu que Linux soit la meilleure plate-forme pour cet
usage, je préfère vous renvoyer aux sites web thématiques suivants :
http://audacity.sourceforge.net/ logiciel de montage son
http://sound.condorow.net/ logiciels audio et MIDI pour Linux
http://lwn.net/Articles/182954/ présentation d’Audio-Stream-Grabber
http://www.linuxtv.org/ regarder la télévision avec DVB
http://www.exploits.org/v4l/ collection de liens Video for Linux
http://www.pierrox.net/dvr/ magnétoscope numérique
http://www.mythtv.org/ Linux comme ordinateur pour regarder la télévision
http://freevo.sourceforge.net/ Linux comme station multimédia personnelle
http://64studio.com/ distribution multimédia 64 bits
11.1 Bases
Glossaire
Encodeur Un encodeur transforme un fichier audio ou vidéo non compressé en un format compressé
(par exemple MP3, OGG ou MPEG-4). La tâche de l’encodeur est de parvenir à un compro-
mis entre taille du fichier compressé et qualité du résultat, ce qui demande beaucoup de
calculs et peut donc être très lent.
Décodeur Le décodeur est responsable de l’opération inverse, à savoir la décompression du fichier
vers un format non compressé (voir Chapitre 15) ou vers un format que la carte audio ou
vidéo peut rendre. Chaque lecteur audio ou vidéo doit donc faire appel à un décodeur
spécialisé pour le format de fichier à lire.
Codec Le fonctionnement par encodeur/décodeur est généralement décrit par le terme de codec.
Dans le langage courant, toutefois, ce mot désigne plus simplement la bibliothèque ou le
module/greffon de codage/décodage d’un format audio ou vidéo particulier.
Il existe un vaste éventail de codecs, dont le décodeur est généralement disponible gratuite-
ment pour Windows et Mac OS. La situation est un peu plus compliquée sous Linux. Vous
pourrez trouver, pour beaucoup de codecs populaires, une version open-source du déco-
deur et même parfois de l’encodeur, mais le statut juridique de ces programmes ou biblio-
thèques est problématique lorsque les codecs sont protégés par des licences et des brevets.
Pour les ordinateurs de type i386, il est également possible d’utiliser sous Linux les codecs
prévus pour Windows (un wrapper permet de rendre utilisables sous Linux les fonctions
prévues pour Windows). La situation juridique n’est ici guère plus claire, dans la mesure où
ces codecs gratuitement disponibles pour Windows ne prévoient pas de termes de redistri-
bution, encore moins d’utilisation sous Linux.
Linux Livre Page 159 Mardi, 23. septembre 2008 1:05 13
Cette situation juridique complexe (qui, de surcroît, dépend du pays) conduit à ce que la
plupart des distributions ne soient livrées qu’avec relativement peu de codecs. Vous pour-
rez toutefois trouver en téléchargement sur Internet, pour la plupart des distributions, les
implémentations open-source des principaux codecs, ainsi qu’une collection des codecs
Windows essentiels (w32codecs ou win32codecs).
Une autre solution possible à ce dilemme juridique consiste à se procurer des codecs sous
licence officielle comme en propose la société Fluendo (naturellement contre rémunération).
Ces paquetages ne sont toutefois disponibles que pour le système audio GStreamer et sont
donc incompatibles avec la majorité des programmes présentés dans ce chapitre.
Cryptage, CSS L’industrie multimédia a voulu éviter dans le domaine vidéo un désastre comparable à celui
causé par la diffusion massive de fichiers MP3 sur les systèmes d’échange. Par conséquent,
une majorité des DVD vidéo sont cryptés par l’algorithme CSS (Content Scrambling System).
La protection résultante s’est toutefois montrée très limitée. Le cryptage est très simple et a
été rapidement contourné.
Bien plus d’énergie a en revanche été dépensée pour criminaliser toutes les techniques
open-source de décryptage. Pour cette raison, l’utilisation de la bibliothèque de décryptage
est illégale dans de nombreux pays.
En mai 2007, une cour de justice finlandaise a jugé en première instance que CSS était "inef-
ficace" et a par conséquent autorisé le contournement de CSS. Nous en sommes hélas encore
loin : en France, le décryptage de DVD reste interdit et je ne peux donc ici fournir d’infor-
mations ou de liens relatifs à la bibliothèque permettant de le faire.
Mettons toutefois les choses au point : il ne s’agit pas ici de copie illégale ! Je n’ai tout sim-
plement pas le droit d’expliquer comment vous pouvez lire sous Linux vos DVD achetés
légalement, ce qui est par ailleurs une évidence sous Windows.
CSS ne représentait toutefois que la première étape : les DVD HD et Bluray présentent un
mécanisme de protection plus fort et partiellement implémenté au niveau du matériel (par
exemple sur la carte graphique). Même si ces mesures de protection ont été ou seront
contournées, c’est devenu de plus en plus difficile. De façon générale, l’industrie des médias
fait à l’heure actuelle tout ce qui est en son pouvoir pour compliquer la lecture de supports
vidéo sur un ordinateur. La seule consolation pour les amateurs de Linux est que les utilisateurs
de Windows ont également de plus en plus de peine à lire un DVD HD ou Bluray.
La lecture de vidéos sous Linux pose donc des problèmes moins techniques que juridiques.
Une majorité des habitués de Linux parviendront néanmoins à configurer leur système de
façon satisfaisante à l’aide de Google. Mais, pour le débutant, il est plus pratique de brancher
un lecteur de DVD bon marché sur la télévision ou sur un écran d’ordinateur dédié.
DRM (MTP) DRM est l’acronyme de Digital Rights Management, traduit en français par MTP ou mesures
techniques de protection. Elles permettent de lier à un matériel donné la lecture d’un fichier
audio ou vidéo. Le fichier peut être copié, mais non lu, sur un autre ordinateur. Les MTP
sont pour le moment principalement mises en œuvre sur les fichiers audio (par exemple sur
les fichiers téléchargés depuis la boutique iTunes d’Apple) mais elles devraient jouer un rôle
croissant à l’avenir dans le cadre des téléchargements vidéo, des livres électroniques, etc.
Les utilisateurs de Linux sont quasiment complètement exclus de l’utilisation légale des
Linux Livre Page 160 Mardi, 23. septembre 2008 1:05 13
160 LINUX
fichiers protégés par MTP, et aucune amélioration ne se profile à l’horizon. Essayez, autant
que possible, de n’acheter que des fichiers de musique et de vidéo libres de MTP !
Streaming Pour écouter la radio en direct depuis Internet, de nombreuses stations de radio proposent
un flux continu. Ainsi, la restitution peut démarrer dès le début de la transmission. Le télé-
chargement n’est pas prévu dans ce cadre, souvent pour des raisons de licences. De nom-
breux lecteurs audio permettent toutefois d’enregistrer dans un fichier le flux audio en cours
de lecture.
162 LINUX
WMV Microsoft a également développé ses propres codecs Vidéo sous le nom Windows Media
Video. Les versions 1 à 3 de WMV présentent des caractéristiques comparables à MPEG-4
mais prennent en charge les MTP.
Theora Theora est l’homologue d’Ogg Vorbis pour la vidéo. Le codec Theora présente également
des caractéristiques comparables à MPEG-4, mais il est basé uniquement sur du code open-
source et est donc librement disponible, à l’adresse suivante : http://www.theora.org/
Pour générer vous-même des vidéos Theora (par exemple pour documenter des procédures
informatiques) vous pouvez utiliser le logiciel Gnome Istanbul :
http://live.gnome.org/Istanbul
Si le port 8880 est bloqué par un pare-feu, vous pouvez également vous connecter au serveur
par un port HTTP : Adresse : freedb.freedb.org, IP-Port : 80, CGI-Script : ~cddb/cddb.cgi
Extracteur Les programmes d’extraction lisent les pistes d’un CD audio sous forme numérique, ce qui
est plus complexe qu’il n’y paraît au premier abord. Même si les pistes du CD sont également
sous forme numérique, celle-ci diffère du format utilisé pour un CD de données. Toute erreur
de lecture est quasiment impossible à corriger car le lecteur matériel ne peut localiser l’empla-
cement exact où reprendre. La vitesse d’extraction ainsi que la qualité des fichiers résultants
(au format WAV) dépendent fortement de la qualité du lecteur de CD/DVD utilisé.
Pour faciliter l’extraction de CD audio et la conversion des fichiers WAV vers d’autres for-
mats plus appropriés (MP3, OGG), on utilisera en général une interface graphique. La sec-
tion suivante vous en présentera quelques-uns parmi les plus populaires. Vous pouvez
également utiliser, sous KDE, le programme universel Konqueror (voir Chapitre 5). Si vous
souhaitez automatiser le processus par le biais d’un script, les outils en ligne de commande
cdda2wav/icedax et cdparanoia deviendront vos compagnons (voir Chapitre 15).
164 LINUX
Figure 11.1
Amarok.
166 LINUX
mplayer adresse lance la version minimaliste, sans interface graphique, tandis que gmplayer
adresse ouvre la version avec interface graphique simple (voir Figure 11.2). Dans certaines
distributions, gmplayer possède son propre paquet intitulé mplayer-gui. Si votre carte gra-
phique n’est pas compatible XVideo, vous devez fournir au lancement l’option -vo x11 (ce
qui demande toutefois beaucoup plus de calculs).
Figure 11.2
MPlayer (lecteur audio,
vidéo et TV).
licence de distribution, mais également par les codecs fournis : Helix Player ne gérant que
les formats libres, RealPlayer se révèle donc plus intéressant.
Installation Pour la plupart des distributions, il n’existe pas de paquetage RealPlayer. Vous devez donc
installer le programme manuellement, ce qui n’est toutefois pas difficile. Vous pouvez télé-
charger le paquetage RPM ou le fichier *.bin de la version 11 sur le site suivant :
http://www.real.com/linux
Pour installer le paquetage RPM, procédez comme à l’accoutumée avec rpm -i. Dans les
autres cas, téléchargez le fichier *.bin et exécutez les commandes suivantes, en répondant à
toutes les questions par la touche Entrée :
root# chmod u+x RealPlayer10GOLD.bin
root# ./RealPlayer10GOLD.bin
Version 64 bits RealPlayer n’est à l’heure actuelle disponible qu’en version 32 bits. Sur une distribution
64 bits, vous devrez faire appel à une version 64 bits de test non officielle, qui cause réguliè-
rement des problèmes. Vous trouverez cette version 64 bits à l’adresse suivante :
http://forms.helixcommunity.org/helix/builds/?category=realplay-current
Il est toutefois plus simple, dans ce cas, de renoncer à RealPlayer et d’utiliser plutôt un lec-
teur open-source compatible Real (MPlayer et le greffon Mozilla correspondant sont une
bonne alternative).
Problème avec Lorsque le plugin Firefox du lecteur Totem est installé, celui-ci cherche systématiquement
Totem
(et sans succès) à lire tout fichier Real, même si RealPlayer est installé : pour résoudre ce
problème, désinstallez le paquetage totem-mozplugin ou totem-mozilla.
Problème de Sur certaines distributions, RealPlayer est malheureusement incompatible avec le système
compatibilité
avec le audio. Il ne peut jouer de musique que si aucun autre programme ne mobilise le système audio
système audio (l’inverse est également vérifié).
168 LINUX
Rhythmbox est simple à utiliser : vous pouvez choisir un genre, un interprète et/ou un
album, puis lancer la lecture en cliquant sur le bouton Lire (voir Figure 11.3). Rhythmbox lit
alors l’ensemble des titres apparaissant dans la liste.
Figure 11.3
Rhythmbox.
Vous pouvez configurer la hiérarchie de répertoires et le format audio à l’aide du menu Édition
> Préférences. Si le format de votre choix n’est pas disponible, vous devez configurer un nou-
veau profil. La commande figurant dans le champ Pipeline GStreamer est la plus importante.
L’exemple suivant permet de générer des fichiers MP3 avec lame et peut vous servir de modèle :
audio/x-raw-int,rate=44100,channels=2 ! lame name=enc mode=0 vbr-quality=6 ! id3v2mux
lecture des DVD : Totem a rencontré des problèmes avec l’affichage des menus du DVD, le
choix des langues, la navigation, etc.
xmms
xmms est un lecteur quelque peu ancien. Même s’il n’est plus maintenu, il est encore très
répandu. Il est possible de modifier son apparence à l’aide d’habillages ou "skins" (en parti-
culier les habillages compatibles Winamp). xmms fait également montre d’une grande
Linux Livre Page 170 Mardi, 23. septembre 2008 1:05 13
170 LINUX
souplesse au niveau de ses fonctionnalités, qui peuvent être étendues à l’aide de greffons. Si
xmms ne parvient pas à gérer un format audio particulier, vérifiez dans votre gestionnaire
de paquetages si le greffon xmms correspondant est bien installé.
Les éléments d’interface sont très petits, ce qui demande de bons yeux et une grande préci-
sion à la souris. Il est toutefois plus simple de doubler la taille de la fenêtre à l’aide des tou-
ches Ctrl+D. La configuration s’effectue par menu contextuel (bouton droit de la souris). Si
xmms n’arrive pas à présenter correctement les titres au format Unicode, activez l’option
Utiliser les jeux de polices dans Options > Préférences > Polices.
xmms est compatible avec de nombreux systèmes audio de Linux. S’il affiche un message
d’erreur indiquant que la sortie audio n’est pas disponible, choisissez un autre greffon de
sortie dans Option > Préférences (Ctrl+P).
Si vous ne trouvez pas de fichier correspondant à votre localisation, vous devrez générer
vous-même le fichier en question, ce qui nécessitera une recherche pour identifier la
Linux Livre Page 171 Mardi, 23. septembre 2008 1:05 13
fréquence du transpondeur le plus proche. La page suivante est une bonne source d’infor-
mations (même si elles ne sont pas toujours actualisées) :
http://www.the-media-channel.com/dvb-t/
Générez alors un fichier fondé sur le modèle suivant (en règle générale, vous n’aurez besoin
de modifier que la fréquence, ici 858 MHz) :
utilisateur$ cat at-Schoeckl
# DVB-T Graz/Schoeckl
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 858000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE
Lancer le Ceci étant fait, vous n’avez plus qu’à copier channels.conf vers le répertoire de configuration de
lecteur DVB
votre lecteur DVB (par exemple MPlayer ou xine) :
utilisateur$ cp channels.conf .mplayer/
utilisateur$ cp channels.conf .xine/
Lancez enfin le programme de votre choix. Vous pouvez sélectionner directement la chaîne
souhaitée par le biais de dvb://, par exemple dvb://ORF1 (voir Figure 11.4). Attention à bien
respecter les majuscules et minuscules !
utilisateur$ gmplayer dvb://
utilisateur$ cp xine dvb://
Linux Livre Page 172 Mardi, 23. septembre 2008 1:05 13
172 LINUX
Figure 11.4
Regarder la télévision
avec xine et DVB-T.
Linux Livre Page 173 Mardi, 23. septembre 2008 1:05 13
La console
12
Jusqu’ici, nous vous avons présenté Linux comme un système bureautique. Ses
programmes diffèrent certes de ceux que vous utilisez sous Windows ou
Mac OS X, mais ils remplissent les mêmes tâches et l’on s’y habitue rapidement.
Mais Linux ne s’arrête pas là. Il existe encore tout un pan qui peut sembler
effrayant à première vue : les utilisateurs avancés lancent des commandes dans
une console texte et récupèrent les résultats sous forme de texte. La souris ne
joue qu’un rôle accessoire et les interfaces utilisateur sont obsolètes.
Quiconque ayant appris à utiliser une console peut accomplir efficacement de
nombreuses tâches. Vous pouvez connecter des commandes les unes aux autres,
lancer des tâches en arrière-fond ou automatiquement, créer des scripts, etc.
Toutes ces possibilités sont à portée de main, que ce soit en local ou sur le réseau.
Les utilisateurs qui exploitent principalement les applications bureautiques
auront plus rarement l’occasion d’utiliser des programmes en console que les
programmeurs ou les administrateurs système. Mais, dans tous les cas, la
console fait partie des outils de base que chaque utilisateur doit connaître. Vous
en comprendrez la raison lorsque que votre système graphique ne démarrera
pas à cause d’un problème de configuration ou lorsque vous voudrez administrer
vos serveurs distants.
Vous pouvez lancer une commande dans une console. Pendant que celle-ci tourne, vous pou-
vez faire autre chose dans une deuxième console. Vous pouvez aussi vous connecter en tant
que root dans une console pour effectuer des tâches administratives, tout en modifiant un
fichier dans une autre console connectée avec votre identifiant sans privilège. Les consoles
fonctionnent indépendamment les unes des autres.
Linux Livre Page 174 Mardi, 23. septembre 2008 1:05 13
174 LINUX
Figure 12.1
Une fenêtre de console.
Dans un terminal, vous pouvez travailler comme sur une console texte. La seule différence
est qu’il est plus confortable de faire défiler le texte.
Raccourcis Dans une console texte ou un terminal, divers raccourcis clavier permettent de travailler plus
clavier
importants confortablement. Le tableau suivant résume les plus importants. Ils ne sont valables que si vous
utilisez l’interpréteur de commandes Bash, ce qui est le cas dans la plupart des distributions.
LA CONSOLE 175
Cet exemple illustre la manière dont les commandes et leurs résultats sont représentés. uti-
lisateur$ indique que la commande est lancée par un utilisateur normal. Si la ligne com-
mence par root#, c’est qu’elle doit être lancée par un administrateur système. utilisateur$
et root# représentent l’invite du système et s’affichent automatiquement. Il ne faut pas saisir
ces caractères (seuls les caractères en gras doivent être saisis).
Votre ordinateur affichera probablement une autre chaîne que utilisateur$ ou root#. Cette
dernière peut par exemple contenir le nom du répertoire courant ou celui de l’ordinateur.
Il arrive que la place manque pour afficher une commande sur une seule ligne. Dans ce cas,
la commande est découpée en plusieurs lignes séparées par des caractères \. On écrira par
exemple :
root# mkinitrd --with=reiserfs /boot/initrd-2.6.16-1.2111_FC5.img \
2.6.16-1.2111_FC5
Vous pouvez saisir cette commande sur plusieurs lignes et les séparer, comme ici, par des
caractères \. Vous pouvez aussi joindre les lignes ; dans ce cas, le caractère \ ne doit pas être
saisi.
Lancer des On peut aussi lancer des commandes en tâche de fond. Cela signifie que vous n’avez pas à
commandes en
tâche de fond attendre que le programme se termine pour lancer de nouvelles commandes. Pour cela, sai-
sissez à la fin de la ligne le caractère &. C’est particulièrement utile si vous désirez ouvrir un
programme graphique à partir d’un terminal (par exemple, firefox &).
Travailler en Sous Linux, il n’est pas courant de travailler en tant que root (c’est-à-dire avec des droits
tant que root
d’administrateur système). Lorsque vous êtes connecté en tant qu’utilisateur non privilégié,
plusieurs méthodes vous permettent de lancer des commandes en tant que root. Dans de
nombreuses distributions, il suffit de taper dans une fenêtre de terminal la commande su -l (il
Linux Livre Page 176 Mardi, 23. septembre 2008 1:05 13
176 LINUX
faut bien sûr connaître le mot de passe root). Vous pouvez alors lancer des commandes
texte en tant que root. Exit ou Ctrl+D permettent de revenir à l’utilisateur d’origine (sous
Ubuntu, on utilise à la place de su la commande sudo).
La première commande affiche le fichier fichier page par page et la seconde, le contenu du
répertoire page par page.
Lorsque vous affichez un fichier qui contient des données binaires avec less, il arrive que la console en
soit déréglée et que les caractères qui s’affichent ne correspondent plus aux caractères réels. Pour corriger
cela, lancez la commande reset.
Éditeurs de texte
Sous KDE et Gnome, il existe des éditeurs de texte confortables avec un comportement
intuitif, comme kate ou gedit. Dans une console texte, ces programmes ne sont pas utilisa-
bles : vous avez besoin d’un éditeur qui fonctionne entièrement en mode texte. Cette section
présente les éditeurs les plus populaires dans cette catégorie. L’éditeur installé par défaut
dépend de votre distribution.
Emacs, Jove, Ces éditeurs sont des dérivés d’Emacs (voir Chapitre 18).
Jed et Jmacs
Vi, Vim et Elvis Ces éditeurs sont des dérivés de Vi (voir Chapitre 17).
Linux Livre Page 177 Mardi, 23. septembre 2008 1:05 13
LA CONSOLE 177
Joe joe est un éditeur très simple. Les raccourcis clavier sont comparables à ceux du programme
Wordstar.
man joe permet d’afficher une description de toutes les commandes de joe. Ce programme
peut aussi être démarré sous le nom jmacs ou jpico. Les raccourcis clavier sont alors compa-
tibles, respectivement avec Emacs et Pico.
nano et pico Ces éditeurs, bien que plus modestes en termes de fonctionnalités, sont simples à utiliser. Les deux
lignes en bas de l’écran affichent les commandes à disposition de l’utilisateur (voir Figure 12.2).
Figure 12.2
L’éditeur nano dans
une fenêtre de console.
La plupart des distributions actuelles fournissent nano. pico n’est plus distribué aussi largement
qu’auparavant, car sa licence n’est pas entièrement libre. nano, qui lui n’a pas de problème
de licence, est compatible avec pico.
Linux Livre Page 178 Mardi, 23. septembre 2008 1:05 13
178 LINUX
Définir l’éditeur Certains programmes lancent un éditeur par défaut. Il s’agit le plus souvent de l’éditeur Vi.
par défaut
Si vous désirez en changer, vous devez définir les variables d’environnement EDITOR et
VISUAL dans /etc/profile ou dans ~/.profile.
# À insérer dans /etc/profile ou dans ~/.profile
export EDITOR=/usr/bin/jmacs
export VISUAL=$EDITOR
Sous KDE et Gnome, vous pouvez aussi afficher les pages de manuel à l’aide d’un navigateur d’aide ou d’un
navigateur web. Les exemples suivants montrent comment afficher la page de manuel de ls et la liste de tou-
tes les pages disponibles :
utilisateur$ gnome-help man:ls
utilisateur$ khelpcenter man:ls
utilisateur$ khelpcenter ’man:(index)’
Linux Livre Page 179 Mardi, 23. septembre 2008 1:05 13
LA CONSOLE 179
Le programme Konqueror peut également, sous KDE, afficher des pages de manuel appelées grâce à
#commande.
Pages info Les pages de manuel ont l’inconvénient d’être difficiles à structurer. Le format info offre
une alternative intéressante, notamment pour les textes d’aide très longs.
On appelle info avec la commande info commande. Si on le lance sans paramètres, les différents
thèmes d’aide s’affichent.
Sa structure plus claire présente cependant un inconvénient : la navigation dans les pages
info est peu pratique, car il n’existe aucun mécanisme de recherche.
Vous pouvez aussi utiliser l’éditeur emacs ou xemacs pour lire les pages info. Les différentes sections sont
alors accessibles par un clic. Une autre alternative est le programme pinfo.
Sous KDE et Gnome, vous pouvez lire les pages info grâce au système d’aide intégré. Les exemples sui-
vants montrent comment afficher respectivement la page info d’Emacs et le sommaire de toutes les pages
info :
utilisateur$ gnome-help info:emacs
utilisateur$ gnome-help toc:info
utilisateur$ khelpcenter ’info:/emacs’
utilisateur$ khelpcenter ’info:/dir’
Linux Livre Page 180 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 181 Mardi, 23. septembre 2008 1:05 13
Répertoires
Arborescence Sous Linux, l’arborescence commence par le caractère /. Les lettres de lecteur comme C:
de répertoires
n’ont plus de sens et ne sont d’ailleurs plus possibles. Dans cet ouvrage, nous considérons
que tous les répertoires suivants se situent en-dessous dans l’arborescence ; le répertoire
racine se trouve donc tout en haut. Certains ouvrages adoptent la convention inverse, ce qui
Linux Livre Page 182 Mardi, 23. septembre 2008 1:05 13
182 LINUX
correspond mieux à la structure d’arbre (la racine en bas, les ramifications vers le haut), mais
c’est une terminologie peu courante.
Répertoire Comme nous l’avons vu au Chapitre 3, une fois connecté, vous accédez directement à votre
personnel
répertoire personnel ou répertoire home. Les fichiers et répertoires qui s’y trouvent vous
appartiennent. Les autres utilisateurs (à l’exception de root) ne peuvent ni les modifier, ni
les supprimer.
Le répertoire personnel se trouve généralement dans l’arborescence à l’emplacement /home/
identifiant_utilisateur (à l’exception de root, pour lequel le répertoire personnel est /root).
Il serait certes pénible d’avoir à saisir ce chemin systématiquement ; c’est pourquoi le réper-
toire personnel est accessible grâce au raccourci ~ (caractère tilde). Vous pouvez également
utiliser le raccourci ~identifiant pour accéder aux comptes des autres utilisateurs.
Répertoires . Dans chaque répertoire, il existe deux sous-répertoires particuliers qui servent à gérer la hié-
et ..
rarchie des répertoires. Le répertoire nommé . est un lien vers le répertoire courant et le
répertoire .. est un lien vers le répertoire parent.
Les deux commandes suivantes montrent comment utiliser ces répertoires. La première
copie le fichier /etc/fstab dans le répertoire courant. Si celui-ci est /home/nom, le chemin du
nouveau fichier est /home/nom/fstab.
utilisateur$ cp /etc/fstab .
Dans le second exemple, nous commençons par nous déplacer dans le répertoire ~/linux
avec la commande cd. La commande cp crée une copie de sauvegarde du fichier
partie3.odt dans le répertoire parent sous le nom partie3.odt.bak.
utilisateur$ cd ~/linux
utilisateur$ cp partie3.odt ../partie3.odt.bak
Liste des ls affiche une liste de tous les fichiers du répertoire courant. Si vous souhaitez aussi afficher
fichiers (ls)
les fichiers cachés, utilisez l’option -a. Si vous désirez afficher d’autres informations, telles
que la taille du fichier ou le propriétaire, utilisez l’option -l. Par défaut, le résultat de ls est
trié alphabétiquement. Pour trier la liste par date de dernière modification, par taille ou par
extension, utilisez respectivement les options -t, -S et -X. La commande suivante affiche
tous les fichiers *.png dans le répertoire figures, triés par taille (dans l’ordre décroissant).
utilisateur$ $ ls -l -S figures/*.png
-rw-r--r-- 1 michael users 58865 2008-03-08 12:53 ./these-gantt.png
-rw-r--r-- 1 michael users 53417 2008-07-19 17:08 ./schedule.png
-rw-r--r-- 1 michael users 42516 2008-06-27 12:44 ./dct-vect.png
-rw-r--r-- 1 michael users 30792 2008-03-28 14:09 ./interpol-luma.png
-rw-r--r-- 1 michael users 18984 2008-04-04 16:39 ./filter-samples.png
-rw-r--r-- 1 michael users 16834 2008-03-29 11:15 ./transform.png
-rw-r--r-- 1 michael users 15341 2008-03-24 11:25 ./4ss.png
-rw-r--r-- 1 michael users 14177 2008-04-04 16:33 ./filter-block.png
...
Il s’agit du fichier 4ss.png, modifié la dernière fois le 24 mars 2008 à 11h25. Il a une taille de
15 341 octets et appartient à un utilisateur dont l’identifiant est michael dans le groupe users.
Les dix caractères en débit de ligne indiquent le type de fichier et les droits d’accès. Le
fichier peut être de cinq types différents : - indique un fichier normal, d un répertoire (direc-
tory), b ou c un fichier de périphérique (de type bloc ou caractère), l un lien symbolique. Les
trois caractères suivants (rwx) précisent si le propriétaire peut lire, modifier et exécuter le
fichier. Les caractères suivants fournissent des informations similaires pour les membres du
groupe et tous les autres utilisateurs du système. Le chiffre situé après ce groupe de dix
caractères indique le nombre de liens durs vers le fichier. Nous parlerons plus tard des liens
durs et des droits d’accès.
La plupart des distributions configurent ls pour qu’il affiche les fichiers et répertoires dans
différentes couleurs selon leur type. Si ce n’est pas votre cas, vous pouvez activer ce compor-
tement avec l’option --color.
ls n’affiche normalement que les fichiers présents dans le répertoire courant. Si vous désirez
afficher ceux des sous-répertoires, utilisez l’option -R. Cette option, signifiant "récursif",
s’applique à de nombreuses commandes sous Linux. La commande suivante fait la liste de
tous les fichiers de tous les sous-répertoires (y compris les répertoires et fichiers cachés).
Linux Livre Page 184 Mardi, 23. septembre 2008 1:05 13
184 LINUX
Cette liste est généralement très longue. C’est pour cette raison que l’on transfère le résultat
de la commande vers less grâce à | less :
utilisateur$ ls -alR | less
Copier des La commande cp nom1 nom2 copie le fichier nom1 sous le nom nom2. Pour copier plusieurs
fichiers
fichiers, appelez la commande cp nom1 nom2 ... répertoire_cible. Les commandes suivantes
passent dans le répertoire linux, créent un répertoire bak et y copient tous les fichiers *.odt.
utilisateur$ cd linux
utilisateur$ mkdir bak
utilisateur$ cp *.odt bak/
Pour copier tout un répertoire, ainsi que son contenu, utilisez cp -a. Dans l’exemple sui-
vant, cd sans argument permet d’aller dans le répertoire personnel. La deuxième commande
crée une copie complète du répertoire linux sous le nom linux-bak.
utilisateur$ cd
utilisateur$ cp -a linux linux-bak
Supprimer des rm fichier supprime le fichier indiqué irrévocablement. Par défaut, rm ne peut être utilisé
fichiers et des
dossiers que pour les fichiers, et non pour les répertoires. Pour ces derniers, la commande rmdir
répertoire est prévue, mais elle ne fonctionne que lorsque le répertoire est vide. En prati-
que, on utilise donc le plus souvent les options -rf de rm. Cette commande supprime tous
les sous-répertoires et fichiers de manière récursive et sans demander de confirmation. Par
conséquent, rm -rf est une commande très dangereuse ! La commande suivante supprime
la copie de sauvegarde créée au paragraphe précédent :
utilisateur$ rm -rf linux-bak/
Le programme baobab, fourni dans les versions récentes de Gnome, est un outil confortable pour afficher
la taille des fichiers et des répertoires de manière graphique. Dans KDE, cette vue est intégrée à Konqueror.
Caractères joker
On souhaite souvent exécuter des commandes sur un ensemble de fichiers − par exemple,
tous les fichiers se terminant par .odt. Pour cela, on utilise des caractères joker dans les
paramètres des commandes Linux.
186 LINUX
Extension Le fait que l’extension des caractères joker soit gérée par l’interpréteur de commandes, et non
gérée par
l’interpréteur directement par la commande, ne présente pas que des avantages. Par exemple, ls -R *.odt
de commandes ne renvoie pas tous les fichiers *.odt des sous-répertoires du répertoire courant.
La raison est simple : l’interpréteur de commandes étend le motif *.odt dans le répertoire
courant et passe à ls la liste des fichiers trouvés. Par conséquent, si vous n’avez pas de
répertoire se terminant par .odt, ls a terminé et l’option -R ne peut rien y faire.
Linux Livre Page 187 Mardi, 23. septembre 2008 1:05 13
Pour ce type de recherche, il faut utiliser la commande find, dont nous parlerons plus tard :
utilisateur$ find . -name ’*.odt’
Renommer Il n’est pas possible de renommer tous les fichiers *.x en *.y avec la commande mv *.x
des fichiers
*.y. La raison est la même que dans le paragraphe précédent. Le motif *.x est remplacé
par la liste de tous les fichiers correspondants et il n’existe pas de fichier correspondant à
*.y. La commande mv a donc pour paramètres une liste de fichiers se terminant par *.x et
l’expression *.y − et elle ne sait pas comment traiter ces arguments. mv ne sait de toute
façon traiter plusieurs arguments à la fois que quand le dernier argument est un réper-
toire.
Renommer Les utilisateurs avancés d’Unix ont évidemment trouvé une parade à ces problèmes : ils uti-
des fichiers
avec sed lisent l’éditeur de flux sed. Comme il est complexe à utiliser, les exemples ci-dessous s’appa-
rentent plutôt à de la programmation de l’interpréteur de commandes.
Dans ce premier exemple, ls fournit la liste des fichiers qui doivent être renommés et la
passe à sed. Celui-ci construit une liste de commandes cp grâce à la commande s (recherche
d’expressions régulières et remplacement), puis transmet ces commandes à un nouvel inter-
préteur de commandes qui les lance. Tous les fichiers *.xxx sont alors copiés dans des
fichiers *.yyy.
utilisateur$ ls *.xxx | sed ’s/\(.*\)\.xxx$/cp & \1.yyy/’ | sh
Une autre possibilité est de formuler cela sous la forme d’une boucle − nous supposons que
l’interpréteur de commandes utilisé est Bash. Cette commande copie tous les fichiers *.txt
dans des fichiers *.txt~ (le caractère ~ en fin de fichier est souvent utilisé pour les fichiers de
sauvegarde).
utilisateur$ for i in *.txt; do cp $i $i~; done
Fichiers cachés
Sous Linux, les fichiers commençant par un point sont considérés comme des fichiers
cachés. * ne renvoie donc pas vraiment tous les fichiers d’un répertoire : ceux qui débutent
par un point sont ignorés.
.* permet certes de récupérer les fichiers cachés, mais aussi les répertoires . et .. (réper-
toire courant et répertoire parent). Selon la commande utilisée, cette syntaxe peut être
fatale.
On peut utiliser le motif .[!.]*. Celui-ci représente tous les noms de fichiers dont le premier
caractère est un point, dont le deuxième caractère existe et n’est pas un point, et qui ont un
nombre arbitraire de caractères arbitraires.
utilisateur$ echo .[!.]*
188 LINUX
13.2 Liens
Les liens permettent d’accéder à un même fichier depuis différents endroits du système de
fichiers, sans que ce fichier ne soit physiquement enregistré plusieurs fois. Ils permettent
d’éviter la redondance. Ils sont particulièrement courants dans les répertoires /bin et /lib −
vous pouvez par exemple le voir en explorant /usr/bin ou /usr/lib avec ls -l.
Pour comprendre le concept de lien, le plus simple est de partir d’un exemple. Supposons
qu’un répertoire test contienne le fichier abc. La commande ln abc xyz semble créer un
nouveau fichier xyz. En réalité, abc et xyz sont deux liens vers le même fichier. Pour le véri-
fier, utilisez la commande ls -l. La deuxième colonne indique le nombre de liens associés à
un fichier donné (dans notre cas, deux). Si vous utilisez également l’option -i, vous pouvez
voir que les deux fichiers correspondent au même inode (ce terme sera expliqué plus tard),
ce qui prouve qu’il s’agit bien du même fichier sur le système de fichiers.
utilisateur$ ls -li
13713417 -rw-r--r-- 1 michael users 205 2008-06-26 15:34 abc
utilisateur$ ln abc xyz
utilisateur$ ls -li
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 abc
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 xyz
Lorsque vous modifiez l’un des deux fichiers, l’autre est automatiquement modifié
(puisqu’il ne s’agit en fait que d’un seul et même fichier). Si vous supprimez l’un des deux,
vous ne faites que réduire le nombre de liens.
Des résultats étranges peuvent se produire lorsque vous modifiez avec un éditeur de texte un fichier avec un
lien dur : le lien pointe, après le premier enregistrement, sur le fichier de sauvegarde et, après le second enre-
gistrement, dans le vide.
La raison est la suivante : certains éditeurs créent un fichier de sauvegarde lors de l’enregistrement. Ce der-
nier est un renommage du fichier original, par exemple abc en abc~. Le fichier modifié est alors un fichier
nouvellement créé, avec un nouvel inode et sans lien. Pour éviter cela, utilisez des liens symboliques.
Liens Il existe deux types de liens. L’exemple ci-dessus a mis en place des liens durs, créés par
symboliques
défaut par la commande ln. Si vous utilisez l’option -s, vous créez un lien symbolique. Ces
liens ont l’avantage de pouvoir être utilisés sur un disque physique différent de celui du
fichier et de pouvoir également être appliqués à des répertoires (ces deux possibilités ne
sont pas offertes par des liens durs).
ls affiche le fichier d’origine des liens symboliques. En revanche, il n’existe pas de compteur
pour le nombre de liens associés au fichier d’origine.
La différence interne entre un lien symbolique et un lien dur est que le premier enregistre le
chemin du fichier lié, tandis que le second enregistre l’inode du fichier.
utilisateur$ ln -s abc efg
utilisateur$ ls -li
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 abc
13713415 lrwxrwxrwx 1 michael users 3 2008-06-26 16:01 efg -> abc
13713417 -rw-r--r-- 2 michael users 205 2008-06-26 15:34 xyz
Linux Livre Page 189 Mardi, 23. septembre 2008 1:05 13
Pour créer un lien symbolique, vous devez vous trouver dans le répertoire qui contiendra le lien. Sinon, il
arrive que le lien ne pointe pas vers l’endroit souhaité.
Les liens symboliques se comportent également différemment des liens durs. Supprimer le
fichier d’origine (en l’occurrence abc) ne modifie pas le lien vers ce fichier (efg), mais celui-
ci pointe alors vers un emplacement vide. Inversement, si le lien symbolique est supprimé,
cela n’a aucune influence sur le fichier d’origine.
On peut aussi créer un lien symbolique vers un répertoire. Cela peut cependant causer quel-
ques confusions, car toute l’arborescence pointée par le lien symbolique semble recopiée. En
fait, le lien vers le répertoire n’est qu’un chemin d’accès supplémentaire aux mêmes fichiers
et sous-répertoires.
Essayez, autant que possible, de ne pas utiliser de chemins absolus, mais relatifs, lorsque
vous créez un lien symbolique. Ainsi, vous éviterez des problèmes si le répertoire est monté
par NFS ou si vous déplacez des répertoires.
Les liens symboliques et les liens durs ont chacun leurs avantages. Les premiers sont
plus simples à gérer, tandis que les seconds demandent moins de place disque et sont plus
rapides.
Recherche de fichiers
beagle-query cherche des fichiers selon leur contenu
grep cherche du texte dans un fichier texte
find cherche des fichiers selon leur nom, leur date, leur taille, etc.
locate cherche des fichiers selon leur nom
whereis cherche des fichiers dans des répertoires prédéfinis
which cherche des programmes dans les répertoires de la variable d’environnement PATH
which et whereis
which cherche la commande passée en argument. Il renvoie le nom complet de la commande
lorsque son nom est indiqué sans information de chemin.
Il parcourt les répertoires de la variable d’environnement PATH et est donc extrêmement
rapide. Cette variable contient une liste de répertoires dans lesquels on peut trouver des
Linux Livre Page 190 Mardi, 23. septembre 2008 1:05 13
190 LINUX
programmes. Notez qu’elle contient généralement plus de répertoires pour root que pour
un utilisateur normal.
utilisateur$ which emacs
/usr/bin/emacs
whereis parcourt tous les répertoires usuels pour les fichiers exécutables, les fichiers de
configuration, les pages de manuel et le code source, afin de trouver le nom de fichier indi-
qué. Il couvre plus de répertoires que which et ne se limite pas aux programmes. Cependant,
il n’indique que les fichiers qui se trouvent dans les répertoires prédéfinis pour whereis
(voir à ce sujet man whereis).
utilisateur$ whereis fstab
fstab: fstab: /etc/fstab /etc/fstab.pre-uuid /usr/include/fstab.h /usr/share/
➥man/man5/fstab.5.gz
locate
locate motif affiche les fichiers dont le nom complet (chemin + nom de fichier) correspond
au motif passé en argument. La recherche est très rapide car locate, plutôt que de parcourir
le système de fichiers, accède à une base de données qui contient tous les noms de fichiers
du système. Certaines distributions n’affichent que les fichiers auxquels l’utilisateur a effec-
tivement accès. Lancez locate en tant que root lorsque vous cherchez des fichiers système.
Exemple La commande suivante cherche le fichier de configuration de X, xorg.conf :
utilisateur$ locate xorg.conf
/etc/X11/xorg.conf
/etc/X11/xorg.conf.backup
/etc/X11/xorg.conf~
/usr/share/man/man5/xorg.conf.5.gz
On peut utiliser des caractères joker. Ainsi, locate ’*dvips’ ne renverra que les fichiers
dont le nom se termine par dvips.
updatedb La qualité des résultats de la recherche dépend largement de la qualité de la base de don-
nées de locate. La plupart des distributions lancent la commande updatedb pour mettre à
jour cette base au moins une fois par jour. Il est aussi possible de la lancer manuellement de
temps à autre. Cela nécessite cependant des droits root.
find et grep
find est une commande à la fois extrêmement puissante et complexe pour chercher des
fichiers. Elle prend en argument différents critères de recherche (motif pour le nom du
fichier, date de création ou de dernier accès, etc.). man find fournit une référence complète
de toutes les options de find. Les exemples suivants vous permettront de faire vos premiers
pas avec find. Notez qu’il est plutôt long à s’exécuter, car il parcourt des pans entiers du
système de fichiers, répertoire après répertoire.
find La commande find, sans paramètre supplémentaire, affiche une liste de tous les fichiers
dans le répertoire courant et ses sous-répertoires.
Linux Livre Page 191 Mardi, 23. septembre 2008 1:05 13
La commande suivante cherche tous les fichiers qui commencent par .e dans le répertoire
courant et ses sous-répertoires :
utilisateur$ find -name ’.e*’
./.emacs.d
./.emacs~
...
./linux-2.6.19.2/linux/scripts/mod/.elfconfig.h.cmd
...
./.emacs
./.eclipse
Cet exemple cherche dans le répertoire /usr/share/texmf tous les fichiers *.tex présents
dans un répertoire qui se termine par latex :
utilisateur$ find /usr/share/texmf -path ’*latex/*.tex’
/usr/share/texmf/ptex/platex/base/plnews03.tex
/usr/share/texmf/ptex/platex/base/kinsoku.tex
/usr/share/texmf/ptex/platex/base/plnews08.tex
/usr/share/texmf/ptex/platex/base/pldoc.tex
...
L’exemple suivant affiche tous les répertoires contenus dans /etc/. Les fichiers réguliers ne
sont pas montrés. La liste est triée alphabétiquement avec sort.
root# find /etc -type d | sort
/etc
/etc/acpi
/etc/acpi/events
/etc/alternatives
/etc/apache2
/etc/apache2/conf.d
...
La commande suivante affiche tous les fichiers des sous-répertoires de /home qui appartien-
nent aux utilisateurs du groupe users et qui ont été modifiés au cours des cinq derniers
jours. -ctime +5 affiche les fichiers modifiés il y a plus de cinq jours, et -ctime 5 ceux modifiés
il y a exactement cinq jours.
root# find /home -group users -ctime -5
...
Cette commande supprime tous les fichiers de sauvegarde dans le répertoire courant et ses
sous-répertoires. Une liste est construite avec les résultats de find, puis elle est passée à rm :
utilisateur$ rm $(find . -name ’*~’)
Si find renvoie beaucoup de fichiers, il se peut que la commande ci-dessus affiche une
erreur : la ligne de commande étendue est trop longue par rapport à la taille maximale auto-
risée. Dans ce cas, vous devez utiliser l’option -exec de find, ou la commande xargs. Reportez-
vous aux pages de manuel man find et man xargs pour plus d’informations à ce sujet.
Linux Livre Page 192 Mardi, 23. septembre 2008 1:05 13
192 LINUX
grep La commande grep parcourt un fichier texte à la recherche d’un motif de recherche. Selon les
options, elle affiche les lignes du fichier correspondant ou le nombre de lignes concernées.
Le motif de recherche est une expression rationnelle.
La commande suivante cherche la chaîne de caractères "emacs" dans tous les fichiers *.tex
du répertoire. Une liste de toutes les lignes correspondantes (préfixées par le nom du fichier)
s’affiche à l’écran.
utilisateur$ grep emacs *.tex
Cet exemple compte le nombre de fois que la fonction arctan est utilisée dans les fichiers *.c
du répertoire :
utilisateur$ grep -c arctan\(.*\) *.c
grep -v renvoie comme résultat toutes les lignes qui ne contiennent pas le motif de recher-
che. Dans l’exemple suivant, grep supprime toutes les lignes qui commencent par le carac-
tère # dans le fichier configfile. La commande cat supprime toutes les lignes vides.
Le résultat est enregistré dans le fichier nocomments.
utilisateur$ grep -v ’^#’ configfile | cat -s > nocomments
Combiner find Combiner find et grep permet de mener des recherches particulièrement efficaces. Cet
et grep
exemple affiche tous les fichiers *.tex qui contiennent la chaîne de caractères "emacs" :
utilisateur$ find -name ’*.tex’ -type f -exec grep -q emacs {} \; -print
La commande suivante affiche tous les fichiers du répertoire courant, dont la taille est infé-
rieure à 10 Ko et dont le contenu correspond à l’expression rationnelle case.*in. La liste des
fichiers trouvés est enregistrée dans le fichier resultat.
utilisateur$ find -name ’*’ -maxdepth 1 -size -10k \
> -exec grep -q case.*in {} \; -print > resultat
Beagle
Beagle est un outil de recherche relativement récent, qui fournit certains avantages en plus
de ceux des outils traités ci-dessus :
• La recherche est rapide ; elle s’appuie comme locate sur un fichier d’index.
• L’index de recherche est actualisé à chaque modification de fichiers ; il est donc toujours
à jour.
• La recherche inclut le contenu des fichiers. Alors que la combinaison find/grep se limite
aux fichiers texte, Beagle permet de gérer davantage de formats : documents Open-
Office.org, pages Web (y compris le cache de Konqueror), courriers électroniques
(KMail et Evolution), fichiers PDF, etc.
Beagle présente néanmoins certains inconvénients. Il est développé en C# et nécessite donc
d’installer Mono. Son fichier d’index est très volumineux. Il existe des formats que Beagle ne
prend pas encore en compte, comme les courriers électroniques de Thunderbird ou les
fichiers LaTeX. Les systèmes de données NFS posent également problème : ils peuvent être
parcourus, mais cela prend du temps et on ne peut pas actualiser automatiquement l’index.
Linux Livre Page 193 Mardi, 23. septembre 2008 1:05 13
Beagle possède une interface graphique pour Gnome, nommée gnome-beagle-search et qui
s’ouvre avec F12, et une interface graphique pour KDE, nommée kerry. Beagle peut aussi être
intégré directement à Nautilus et Firefox. Il existe une extension KIO de Konqueror, qui permet
de lancer des recherches sous la forme beagle:expression de recherche.
Tracker
Si Beagle ne vous satisfait pas, Tracker est une alternative de plus en plus populaire. Ce pro-
gramme est relativement récent et donc moins mûr que Beagle, mais il a d’ores et déjà la
réputation d’être plus efficace.
Après l’installation, vous devez vous déconnecter, puis vous reconnecter. Une fois que vous
avez laissé à Tracker le temps d’indexer votre système de fichiers, vous pouvez lancer une
recherche avec tracker-search-tool. Si vous travaillez sous Gnome, vous pouvez aussi
l’utiliser directement dans Nautilus avec le bouton Rechercher.
Tracker enregistre les données d’index dans le répertoire ~/.cache/tracker. Par défaut,
seuls les fichiers du répertoire personnel sont indexés. Si cela ne vous convient pas, vous
pouvez modifier la configuration avec tracker-preferences.
Lorsque j’ai testé ce programme, il ne prenait pas encore en charge les données de Thunderbird.
Il ignorait également mes fichiers LaTeX et PostScript.
Google Desktop
Google a également lancé une version bêta de son outil de recherche local déjà bien établi
sous Windows. Son succès sous Linux reste cependant à confirmer. D’une part, il ne s’agit
pas d’un logiciel libre. D’autre part, la version Windows de Google Desktop a déjà entraîné
de nombreuses questions quant à la confidentialité des données et il est probable que cet
élément préoccupe également les utilisateurs de la version Linux.
Linux Livre Page 194 Mardi, 23. septembre 2008 1:05 13
194 LINUX
Installation Google fournit des paquetages RPM et DEB en téléchargement, ainsi qu’un dépôt de paque-
tages qui permet d’actualiser automatiquement les paquetages avec APT, YUM et autres
(deuxième lien).
http://desktop.google.com/linux/ ; http://www.google.com/linuxrepositories/
Utilisation Google Desktop est activé lors de la connexion à Gnome ou KDE. Il lance en tâche de fond
l’indexation des données (programme gdl_inderxer). Par défaut, seul le répertoire person-
nel, ainsi que les répertoires man et info sont parcourus. L’indexation de départ fonctionne
avec une priorité très basse et interfère peu avec le fonctionnement de l’ordinateur, mais elle
peut durer plusieurs heures. L’index est enregistré dans ~/.google/desktop. La recherche et
la modification des paramètres sont gérées par une interface web pour laquelle Google
Desktop lance un petit serveur web sur le port 33555.
gzip et gunzip gzip compresse le fichier fourni en paramètre et le nomme nom.gz. gunzip effectue l’opé-
ration inverse. Les deux commandes utilisent l’algorithme LZ77-Lempel-Ziv, qui est sur-
tout efficace pour les fichiers texte (et nettement moins pour les fichiers audio ou vidéo).
La compression est sans perte − après la décompression, le fichier d’origine est restauré.
Les commandes suivantes illustrent son utilisation :
utilisateur$ ls -l licence.txt
... 17718 2003-02-09 18:25 licence.txt
utilisateur$ gzip licence.txt
utilisateur$ ls -l licence.txt.gz
... 6502 2003-02-09 18:25 licence.txt.gz
utilisateur$ gunzip licence.txt.gz
bzip2 et bzip2 et bunzip2 sont une alternative à gzip et gunzip. Ces commandes présentent l’avan-
bunzip2
tage de mieux compresser les fichiers, mais l’inconvénient de s’exécuter plus lentement.
Linux Livre Page 195 Mardi, 23. septembre 2008 1:05 13
tar tar est la commande de référence pour rassembler plusieurs fichiers dans une archive, qui
peut ensuite être compressée à l’aide de gzip ou bzip2.
La commande suivante regroupe les fichiers du répertoire livre dans l’archive compressée
livre.tgz. En ce qui concerne les options, c indique à tar qu’il doit créer une archive. z
signifie "zip" : le fichier doit être compressé avec gzip. f signifie "file" (fichier) : cette option
donne le nom du fichier à créer, généralement avec l’extension .tar.gz ou .tgz.
utilisateur$ tar -czf livre.tgz livre/
tar -tzf affiche le contenu d’une archive. Les fichiers qu’elle contient sont dans un ordre
aléatoire. La plupart des distributions permettent également de voir ce contenu avec less.
utilisateur$ tar -tzf livre.tgz/
livre/
livre/chap4.txt
livre/chap2.txt
livre/annexeA.txt
...
Si l’archive est compressée avec bzip2 et non avec gzip, utilisez l’option j à la place de z.
zip tar est le format de prédilection des archives sous Linux. Mais si vous désirez communi-
quer avec des utilisateurs de Windows, le format Zip est probablement plus judicieux. La
commande suivante compresse tous les fichiers HTML du répertoire dans le fichier
monarchive.zip :
utilisateur$ zip monarchive.zip *.html
196 LINUX
Sauvegardes (rsync)
Les disques durs ne vivent pas éternellement, les ordinateurs portables peuvent être volés et
un rm -rf malencontreux peut provoquer des dégâts importants. Il est donc impossible de
se passer de sauvegardes régulières de vos données.
Il existe un nombre virtuellement illimité de stratégies de sauvegarde. Je me limite donc à
présenter la commande rsync, qui permet de synchroniser des arborescences de répertoires,
par exemple pour enregistrer des données sur un disque externe.
rsync Au départ, rsync a été conçu pour synchroniser des répertoires sur un réseau. Nous nous
intéressons ici à la copie entre deux disques locaux.
La commande suivante copie tous les fichiers *.odt d’un répertoire vers un second réper-
toire. Contrairement à cp, les fichiers déjà présents (par exemple, depuis la sauvegarde pré-
cédente) et non modifiés ne sont pas recopiés. Pour une petite sauvegarde, cela ne change
pas grand-chose, mais lorsqu’il s’agit d’arborescences de plusieurs gigaoctets, la différence
se fait rapidement sentir.
utilisateur$ rsync rep1/*.odt rep2/
Pour synchroniser un répertoire complet, ainsi que ses sous-répertoires, utilisez l’option -a
qui est un raccourci pour une longue suite d’options (-rlptgoD). Elle traite récursivement
tous les sous-répertoires et tente de préserver au mieux les informations relatives aux
fichiers (propriétaire, groupe, date de la dernière modification, etc.). Si rep2 n’existe pas
encore, le répertoire est créé.
utilisateur$ rsync -a rep1/ rep2/
Par défaut, rsync copie tous les nouveaux fichiers et ceux modifiés, mais ne supprime rien.
Si vous souhaitez que les fichiers supprimés dans rep1 le soient aussi dans rep2, passez
l’option --delete. Attention, cette option est dangereuse : si vous effacez accidentellement
un répertoire, il le sera également sur le disque de sauvegarde à la prochaine sauvegarde.
Cependant, sur la durée, il est difficile d’éviter d’utiliser l’option --delete si on ne veut pas
conserver de fichiers inutiles pendant des années.
Si vous désirez avoir un retour sur les fichiers modifiés et sur la vitesse de transfert des données,
utilisez l’option -v.
Automatiser Plutôt que de saisir à chaque fois la commande rsync, il vaut mieux l’encapsuler dans un
les sauve-
gardes petit script shell. On évite ainsi les fautes de frappe.
Voici un exemple d’utilisation de ce script :
#!/bin/sh
mount /backup # monte le répertoire NFS de sauvegarde
rsync -av --delete /rep1/* /backup/machineX/rep1/
rsync -av --delete /rep2/* /backup/machineX/rep2/
Voici ma stratégie personnelle de sauvegarde. Tous mes ordinateurs sont de temps en temps connectés à un
serveur central. Je synchronise une fois par semaine mes répertoires de données personnels avec le répertoire
correspondant sur le serveur grâce à rsync. Pour les fichiers importants sur lesquels je travaille, la sauvegarde
Linux Livre Page 197 Mardi, 23. septembre 2008 1:05 13
est lancée tous les jours. Les fichiers à sauvegarder se trouvent donc sur deux disques durs indépendants l’un
de l’autre.
Une fois par mois, je synchronise toute la partition de données du serveur avec un disque dur USB. De
plus, je crée des CD ou des DVD de sauvegarde par projet (par exemple, les fichiers d’un livre ou les photos
numériques de l’année). Ces dix dernières années, j’ai déploré la perte de quelques disques durs suite à des
défauts matériels, mais jamais de perte de données conséquente.
Autres Il existe bien sûr d’autres solutions pour effectuer des sauvegardes :
solutions de
sauvegarde • Les commandes pour graver des CD et des DVD seront présentées à la section 13.5.
• La commande rdiff-backup est une alternative intéressante à rsync :
http://www.nongnu.org/rdiff-backup/.
• Il existe aussi diverses interfaces graphiques de sauvegarde, même si aucun standard de
fait ne s’impose actuellement. Voici deux exemples : sbackup (http://sbackup.source-
forge.net) et unison (http://www.cis.upenn.edu/~bcpierce/unison).
• En plus de ces programmes libres, il existe des solutions propriétaires comme Arkeia,
un système client/serveur pensé pour des réseaux complets.
Que vous graviez des CD ou des DVD, assurez-vous que votre distribution Linux ne monte pas le lecteur dans
l’arborescence de répertoires et n’y accède pas. Selon la distribution, différents mécanismes de montage auto-
matique des CD et des DVD interfèrent avec la gravure.
D’après mon expérience, l’utilisation de lecteurs externes (USB, Firewire) entraîne des problèmes plus fré-
quents que celle d’un lecteur interne. Cela est vrai pour Linux, mais aussi pour Windows. Si vous souhaitez
absolument utiliser un lecteur externe, réduisez la vitesse de gravure.
Linux Livre Page 198 Mardi, 23. septembre 2008 1:05 13
198 LINUX
Ce troisième exemple montre comment faire pour que le répertoire master soit lui-même un
répertoire de l’ISO (option -graft-point) :
utilisateur$ mkisofs -o /tmp/master.iso -r -graft-points /master=/master
Linux Livre Page 199 Mardi, 23. septembre 2008 1:05 13
Si vous n’utilisez pas l’option -r, assurez-vous que tous les fichiers du répertoire à graver appartiennent à
root et qu’ils sont lisibles par tous :
utilisateur$ chown -R root.root /master
utilisateur$ chmod -R a+r /master
dd Pour copier sans modification un CD ou un DVD de données (cela ne fonctionne pas
pour un CD audio), une seule commande dd suffit pour obtenir le fichier ISO correspon-
dant. /dev/cdrom représente le nom de périphérique de votre lecteur CD ou DVD, ce qui
dépend de votre distribution.
utilisateur$ dd if=/dev/cdrom of=/usr/local/iso.ing bs=2048
Tester une Le périphérique de bouclage (loopback device) du noyau Linux permet de considérer un
image ISO
fichier comme un système de fichiers et de le monter dans l’arborescence avec mount. Cette
fonctionnalité est gérée par le module de noyau loop qui est fourni par toutes les distribu-
tions courantes. La commande suivante monte le fichier master.iso dans le système de
fichiers en mode lecture seule :
root# mkdir /iso-test
root# mount -t iso9660 -o loop,ro /tmp/master.iso /isotest/
Graver des CD
cdrecord et cdrecord a longtemps été le programme de référence pour graver des CD. Développé par
wodim
Jörg Schilling, il faisait partie, jusqu’en 2006, de presque toutes les distributions. À l’été 2006,
Jörg Schilling a utilisé, pour certaines parties du paquetage, la licence CDDL, que de nom-
breux développeurs de Linux considèrent comme incompatible avec la GPL. La dernière
version de cdrecord, entièrement sous GPL, a donc été utilisée comme base d’une nouvelle
application, wodim, qui fait partie du projet cdrkit.
Actuellement, de nombreuses distributions fournissent wodim ; /usr/bin/cdrecord est souvent
un lien vers wodim.
Avant de graver un CD, vous avez besoin d’une image ISO, créée normalement avec mkisofs
ou genisoimage. Les deux commandes suivantes simulent d’abord la gravure (avec l’option
-dummy), puis l’effectuent :
root# cdrecord -dummy -v speed=16 dev=/dev/scd0 iso.img
root# cdrecord -v speed=16 dev=/dev/scd0 iso.img
Cet exemple permet de graver un CD audio. Les données sont sous la forme de fichiers wav,
qui sont traités dans l’ordre alphabétique. Si vous désirez utiliser un ordre différent, vous
devez indiquer explicitement la liste des fichiers.
root# cdrecord -v speed=16 dev=0,5,0 -pad -dao -audio *.wav
cdrdao La commande cdrdao est une alternative à cdrecord/wodim. Elle est moins polyvalente, mais
fournit plus d’options pour lire et écrire des CD audio.
Pour écrire un CD audio, cdrdao a besoin d’un fichier TOC. Ce dernier est une sorte de table
des matières du CD indiquant quelles données sont enregistrées dans quel format.
Linux Livre Page 200 Mardi, 23. septembre 2008 1:05 13
200 LINUX
En pratique, cdrdao est généralement utilisé pour copier des CD audio. La première com-
mande crée les fichiers data.bin et data.toc (contenu du CD et table des matières) et la
seconde écrit ces données sur un CD. Les périphériques doivent être indiqués par le biais
d’un triplet de chiffres, grâce à readcd -scanbus.
root# cd tmp/
root# cdrdao read-cd --device 0,0,0 data.toc
root# cdrdao write --device 0,0,0 --buffers 64 data.toc
Si votre machine a deux lecteurs et qu’elle est suffisamment rapide, vous pouvez aussi
copier le CD en une seule commande :
root# cdrdao copy --source-device 0,0,0 --device 0,1,0 --buffers 64
Vérifier des CD La commande suivante compare le contenu du CD-ROM et celui du répertoire master, à la
de données
fois fichier par fichier et octet par octet. Les différences sont résumées dans le fichier
diff.log du répertoire personnel. /media/cdrom représente le répertoire dans lequel est
monté le CD.
root# diff -qrd /master /media/cdrom >& ~/diff.log
Attention : il faut éjecter et remettre le DVD dans& le lecteur avant de créer une nouvelle session.
La lecture des DVD multisessions peut poser problème sur certains lecteurs. Pour les DVD-RW, il faut utiliser
le mode restricted overwrite (voir dvd+rw-format).
Certains lecteurs DVD ne gèrent pas les DVD+RW (qu’ils soient mono- ou multisessions). Les commandes sui-
vantes permettent parfois de contourner ce problème :
utilisateur$ dvd+rw-format -lead-out /dev/sr0
utilisateur$ dvd+rw-booktype -dvd-rom -media /dev/sr0
Si vous désirez écrire une image ISO déjà existante, utilisez la syntaxe -Z périphéri-
que=fichieriso :
utilisateur$ growisofs -Z /dev/sr0=donnees.iso
dvd+rw- Les DVD+RW et DVD-RW doivent être formatés avant la première utilisation, ce que permet
format
dvd+rw-format :
utilisateur$ dvd+rw-format /dev/sr0
Ce qui se passe en détail dépend du type de support. Pour les DVD+RW, seul le début du
disque est formaté. Par conséquent, si le formatage s’arrête à 11,5 % (ou avant 100 %), il ne
s’agit pas d’une erreur. Le formatage en deçà de cette zone est automatiquement effectué
par le lecteur lorsqu’il faut écrire sur cette zone du DVD.
Les DVD-RW sont par défaut formatés en mode restricted overwrite. Ce dernier permet de
réécrire sur une zone déjà écrite du disque. Il n’est donc pas nécessaire de reformater un
DVD-RW à chaque écriture.
Vous pouvez aussi formater un DVD-RW en mode incremental sequential avec l’option
-blank. Les DVD-RW sortant d’usine sont généralement déjà formatés ainsi. Ce mode est
particulièrement adapté aux DVD vidéo et améliore la compatibilité avec de nombreux lec-
teurs. Cependant, growisofs ne sait pas réécrire de données dans ce mode. Il faut donc
reformater le disque à chaque utilisation, ce qui prend beaucoup de temps.
En résumé, pour faciliter le travail à growisofs, il faut formater les DVD-RW avec dvd+rw-
format sans l’option -blank.
Le formatage ne supprime pas les données physiquement. Si, pour des raisons de respect de la vie privée,
vous désirez les effacer, lancez growisofs -Z device=/dev/zero . Le support sera alors réécrit avec des 0.
dvd+rw- Vous possédez un DVD, mais vous ne savez pas de quel type il s’agit, si le disque est déjà
mediainfo
écrit, dans quel mode et avec combien de sessions. Dans ce cas, vous pouvez lancer la
commande dvd+rw-mediainfo :
utilisateur$ dvd+rw-mediainfo /dev/sr0
INQUIRY: [_NEC ][DVD_RW ND-1300A ][1.07]
GET [CURRENT] CONFIGURATION:
Mounted Media: 1Ah, DVD+RW
GET PERFORMANCE:
Speed Descriptor#0: 00/221280 Reading@7.8x Writing@2.3x
Linux Livre Page 202 Mardi, 23. septembre 2008 1:05 13
202 LINUX
En voici une brève explication. Le premier caractère indique le type de fichier : - pour un
fichier régulier, d pour un répertoire, l pour un lien symbolique, etc. Ce fichier peut être lu
et modifié par son propriétaire, michael. Comme il s’agit d’un fichier texte, le premier bit x
est désactivé : le fichier ne peut pas être exécuté. Tous les autres utilisateurs, qu’ils soient
membres du groupe users ou non, peuvent le lire (mais pas le modifier).
Si Michael souhaite que seuls les membres du groupe users puissent lire le fichier, il doit
désactiver le dernier bit r :
michael$ chmod o-r lisezmoi.txt
michael$ ls -l lisezmoi.txt
-rw-r----- 1 michael users 7484 2008-02-19 12:45 lisezmoi.txt
Linux Livre Page 203 Mardi, 23. septembre 2008 1:05 13
Supposons à présent que l’accès au fichier soit restreint à deux utilisateurs, michael et kate.
Il faut pour cela créer un nouveau groupe auquel seuls Michael et Kate appartiennent, par
exemple doc. L’appartenance du fichier au groupe doit ensuite être modifiée grâce à chgrp :
michael$ chgrp doc lisezmoi.txt
michael$ ls -l lisezmoi.txt
-rw-r----- 1 michael doc 7484 2008-02-19 12:45 lisezmoi.txt
Droits d’accès Les 9 bits d’accès sont également valides pour les répertoires, mais leur signification est dif-
sur des
répertoires férente. Le bit r permet aux utilisateurs de voir le contenu d’un répertoire avec ls. Le bit x
leur permet d’aller dans ce répertoire. Lorsque x et w sont actifs, de nouveaux fichiers peuvent
être créés dans le répertoire.
Droits d’accès Sous Linux, on accède à divers composants matériels (lecteur de disquette, imprimante,
sur des
périphériques modem, interface série, lecteur de bandes, etc.) via les périphériques.
Pour définir, de manière ciblée, quel utilisateur a le droit d’accéder à quels périphériques,
ceux-ci sont répartis en divers groupes d’utilisateurs. Par exemple, les périphériques /dev/
ttyS* pour les ports série appartiennent souvent au groupe uucp ou dialout :
utilisateur$ ls -l /dev/sda
crw-rw---- 1 root dialout 4, 65 2008-06-17 22:14 /dev/ttyS1
Bits spéciaux
Le sens des trois fois 3 bits rwxrwxrwx est simple à comprendre. En plus de ces bits, certaines
informations supplémentaires peuvent être enregistrées. La connaissance de ces bits spéciaux
n’est généralement nécessaire qu’aux administrateurs système.
Bit setuid Le bit setuid, ou bit suid, fait en sorte qu’un programme soit toujours lancé comme s’il était
démarré par son propriétaire. Ce dernier est souvent root ; ainsi, le programme peut être
lancé comme s’il l’était par root.
Ce bit est utilisé pour donner aux utilisateurs sans privilège des droits qui ne s’appliquent
qu’à l’exécution d’un programme donné. Cela peut néanmoins facilement représenter un risque
de sécurité, en particulier lorsque le programme exécuté démarre d’autres programmes.
C’est pourquoi il vaut mieux éviter autant que possible l’utilisation des bits setuid. La com-
mande mount peut constituer l’une des rares exceptions à cette règle :
utilisateur$ ls -l /bin/mount
-rwsr-xr-x 1 root root 81368 2008-04-29 13:57 /bin/mount
ls -l affiche, à la place du bit x, la lettre s. La valeur octale du bit setuid est 4000.
Linux Livre Page 204 Mardi, 23. septembre 2008 1:05 13
204 LINUX
Bit setgid Le bit setgid a un comportement comparable au bit setuid, à ceci près qu’il s’applique aux
groupes et non au propriétaire de l’exécutable. ls -l affiche pour le programme correspon-
dant la lettre s à la place de la lettre x dans les bits d’accès du groupe. La valeur octale du bit
est 2000.
Pour les répertoires, le bit setgid fait en sorte que les fichiers créés dans le répertoire appar-
tiennent au groupe du répertoire (et non, comme souvent, au groupe de l’utilisateur qui crée
le fichier).
Sticky bit Le sticky bit s’applique aux répertoires. Il fait en sorte que chaque utilisateur pouvant modi-
fier les fichiers du répertoire ne puisse supprimer que ses propres fichiers (et non ceux des
autres utilisateurs). Ce bit est par exemple activé sur le répertoire /tmp. Tous les utilisateurs
peuvent créer des fichiers temporaires. Il faut, en revanche, éviter que les utilisateurs puissent
renommer ou supprimer des fichiers qui ne leur appartiennent pas.
ls -l affiche pour le répertoire correspondant la lettre t à la place de la lettre x dans les bits
d’accès de l’utilisateur. La valeur octale du bit est 1000. Attention : la signification du sticky
bit est spécifique à Linux ; d’autres variantes d’Unix peuvent lui associer un sens différent.
utilisateur$ ls -ld /tmp/
drwxrwxrwt 20 root root 8192 2008-06-30 11:59 /tmp/
Bits spéciaux Lorsque vous lancez la commande ls -l, il arrive que les bits spéciaux s’affichent sous la
dans ls
forme S ou T. Il ne s’agit pas de bits spéciaux supplémentaires, mais d’une indication : les bits
setuid, setgid ou sticky ont été mal utilisés. S signifie que le bit setuid ou setgid est positionné,
mais que le bit x ne l’est pas (setuid et setgid n’ont alors pas de sens). T signifie que le sticky bit
est positionné, mais que le répertoire n’a pas le bit d’accès x pour le groupe "autres".
Pour restreindre la modification d’un fichier à son propriétaire, la syntaxe utilisée sera :
utilisateur$ chmod og-w fichier
chmod permet également d’activer les bits setuid (u+s), setgid (g+s) et sticky (+t).
L’option -R offre la possibilité d’effectuer un chmod récursif (en parcourant des répertoires).
Valeurs octales À la place des lettres, on peut aussi indiquer trois ou quatre octets sous forme de chiffres. À
chaque bit u, g et o est associé un chiffre. Chaque chiffre est l’addition de valeurs : 4, 2 et 1
pour r, w et x. Ainsi, 660 correspond à rw-rw---- et 777 à rwxrwxrwx. Les bits setuid, setgid et
sticky ont respectivement pour valeurs 4000, 2000 et 1000 − par exemple, chmod 1777 corres-
pond à tous les accès sur un répertoire pour tout le monde, mais avec le sticky bit.
Linux Livre Page 205 Mardi, 23. septembre 2008 1:05 13
michael appartient à de nombreux autres groupes (ce que l’on peut voir avec la commande
groups). Pour créer un fichier sans qu’il appartienne au groupe primaire, il faut changer
de groupe actif grâce à la commande newgrp :
michael$ groups
users adm dialout cdrom floppy audio dip video plugdev lpadmin scanner
michael$ newgroup audio
michael$ touch monFichier2
michael$ ls -l monFichier2
-rw-r--r-- 1 michael audio 0 2008-06-30 14:49 monFichier2
Bits d’accès La gestion des bits d’accès est un peu plus compliquée. Par défaut, les nouveaux fichiers
reçoivent les bits d’accès rw-rw-rw (soit, en octal, 666) et sont lisibles et modifiables par tout
le monde. Les nouveaux fichiers exécutables (créés par un compilateur) reçoivent les bits
rwxrwxrwx (soit, en octal, 777) et sont donc de plus exécutables par tout le monde.
Ces paramètres de base sont cependant généralement trop libéraux pour la plupart des uti-
lisateurs. C’est pourquoi tous les interpréteurs de commandes proposent un umask. Il s’agit
d’une valeur numérique qui indique les bits qui doivent être retirés des bits d’accès par
défaut.
Le plus souvent, le masque 022 (----w--w-) est utilisé. Les nouveaux fichiers reçoivent donc
les bits d’accès 666-022 = 644 (rw-r--r--), et les nouveaux programmes le masque 777-022 =
755 (rwxr-wr-x). Vous pouvez connaître la valeur courante du masque grâce à la commande
umask (qui permet également de modifier le masque) :
michael$ umask
0022
Le paramétrage par défaut du masque se trouve dans le fichier de configuration des inter-
préteurs de commandes. Pour Bash, il s’agit généralement du fichier /etc/profile ou /etc/
bashrc. Les valeurs qui y sont définies peuvent être redéfinies dans le fichier ~/.bashrc de
chaque utilisateur.
Linux Livre Page 206 Mardi, 23. septembre 2008 1:05 13
206 LINUX
Ce n’est pas parce que les ACL fournissent davantage de possibilités qu’il faut se débarrasser de la ges-
tion de droits conventionnelle ! Pour les administrateurs avancés de réseaux étendus, elles améliorent
la sécurité ou, au minimum, facilitent la gestion. Mais pour la plupart des utilisateurs de Linux, la ges-
tion habituelle des droits suffit amplement. Une utilisation incorrecte des ACL peut entraîner des failles
de sécurité. C’est pourquoi elles sont rarement proposées par défaut dans les distributions.
De plus, de nombreuses commandes et programmes ne les gèrent pas correctement. Un fichier copié peut
alors soudain perdre les informations ACL de l’original. Par ailleurs, la plupart des gestionnaires de fichiers
ne savent ni lire, ni modifier les ACL (Konqueror est une exception).
Samba est de loin le programme le plus important profitant réellement des ACL. Grâce aux ACL, les droits
d’accès Windows peuvent être reproduits sous Linux.
Attributs Les attributs étendus (EA, Extended Attributes) sont étroitement liés aux ACL. Ils permettent
étendus
d’enregistrer, pour chaque fichier, des paires attribut/valeur. Vous pouvez, par exemple,
associer à un fichier texte l’attribut charset et la valeur utf8 pour enregistrer le jeu de carac-
tères utilisé par ce fichier. Cela ne présente un avantage que lorsqu’il existe des programmes
capables d’exploiter ces informations. Les attributs étendus doivent être activés lors du
montage des systèmes de fichiers ext2/3 avec l’option user_xattr. Les attributs étendus
sont, par exemple, utilisés par le programme de recherche Beagle.
Vous trouverez plus de détails sur les ACL et les attributs étendus dans les pages de manuel
acl, getfacl, setfacl, attr(5), getfattr et setattr. Les adresses suivantes peuvent également
être des sources d’informations intéressantes :
http://www.unixgarden.com/index.php/administration-systeme/initiation-aux-listes-de-
controle-d’acces-acl-et-aux-attributs-etendus-ea-sous-linux ; http://www.suse.de/~agruen/
(en anglais) ; http://acl.bestbits.at/ (en anglais).
Prérequis Dans l’exemple suivant, on suppose que le paquetage attr et les commandes attr, get-
fattr et setfattr sont installés et que vous travaillez dans un système où les ACL et les
Linux Livre Page 207 Mardi, 23. septembre 2008 1:05 13
EA sont activés. Dans le cas d’un système de fichiers ext3, le résultat de mount doit res-
sembler à ceci :
utilisateur$ mount
...
/dev/hdc5 on /test type ext3 (rw,acl,user_xattr)
...
Si ce n’est pas le cas, les exemples suivants rencontreront une erreur du type "Opération non
supportée". Il faut alors modifier les options de mount dans /etc/fstab et remonter le sys-
tème de fichiers. Le Chapitre 23 sur l’administration des systèmes de fichiers traite de cette
problématique.
setfacl setfacl permet uniquement de définir des droits d’accès supplémentaires. Les commandes
suivantes donnent à l’utilisateur isa et au groupe doc des droits en lecture et en modification
sur le fichier, et suppriment tout accès à l’utilisateur pierre :
michael$ setfacl -m isa:rw fichier1
michael$ setfacl -m g:doc:rw fichier1
michael$ setfacl -m pierre:- fichier1
La liste de droits affichée par getfacl est maintenant plus longue. ls affiche les droits
d’accès du masque ACL dans la partie du groupe. Les lettres des bits d’accès sont suivies du
caractère + qui indique qu’il existe des règles ACL.
michael$ getfacl fichier1
# file: fichier1
# owner: michael
# group: users
user::rw-
user:isa:rw-
Linux Livre Page 208 Mardi, 23. septembre 2008 1:05 13
208 LINUX
user:pierre:---
group::r--
group:doc:rw-
mask::rw-
other::r--
michael$ ls -l fichier1
-rw-rw-r--+ 1 michael users 0 2008-06-30 17:03 fichier1
Les ACL sont typiquement utilisées lorsque vous désirez donner des droits à un utilisateur
sur vos fichiers, sans pour autant les rendre accessibles à d’autres (par exemple un groupe).
Normalement, vous devez pour cela demander à un administrateur de créer un nouveau
groupe pour vous-même et l’autre utilisateur. Les ACL permettent de se passer de cette
étape.
Masques ACL Les masques ACL limitent les droits qui peuvent être donnés par des règles ACL. Par exem-
ple, si vous définissez le masque ACL à r, aucune règle ACL ne peut définir de droits en écri-
ture ou en exécution à un utilisateur. Le masque ACL a donc priorité sur les règles ACL. Il
n’a cependant aucune incidence sur les droits d’accès traditionnels de l’utilisateur et du
groupe sur le fichier.
Chaque modification d’une règle ACL entraîne la mise à jour du masque de manière que
toutes les règles ACL existantes soient comprises dans le masque. Celui-ci s’affiche dans
getfacl et ls -l.
Vous pouvez définir explicitement un masque grâce à la syntaxe setfacl -m m:rwx, afin de
limiter les droits des ACL. Mais attention, ce masque n’est valable que jusqu’à la prochaine
définition d’ACL, qui renouvelle le masque.
ACL standard Pour les répertoires, vous pouvez définir un deuxième jeu de règles : l’ACL standard. Celle-
ci ne s’applique pas aux accès du répertoire ; elle définit le motif d’ACL pour les nouveaux
fichiers.
Attributs étendus
setfattr et Les exemples suivants montrent comment enregistrer des attributs avec setfattr et les lire
getfattr
avec getfattr. Le nombre d’attributs par fichier dans un système de fichiers ext2 est limité.
michael$ touch fichier2
michael$ setfattr -n user.language -v fr fichier2
michael$ setfattr --name=user.charset --value=utf8 fichier2
michael$ getfattr -d fichier2
# file: fichier2
user.charset="utf8"
user.language="fr"
getfattr n’affiche normalement que les attributs dont le nom commence par user. Si vous
désirez voir d’autres attributs, vous devez indiquer leur nom avec l’option -n ou un motif
avec l’option -m.
utilisateur$ getfattr -n security.selinux -d fichier2
# file: fichier2
security.selinux="user_u:object_r:user_home_t:s0^000"
Linux Livre Page 209 Mardi, 23. septembre 2008 1:05 13
210 LINUX
Le répertoire /usr
/usr/bin programmes exécutables
/usr/games jeux et parfois un lien vers /usr/share/games
/usr/include fichiers "include" de C
/usr/lib[64] bibliothèques, parmi lesquelles de nombreux sous-répertoires pour le compilateur C,
divers langages de programmation et de gros paquetages comme emacs ou LaTeX
/usr/local applications et données qui ne font pas partie de la distribution
/usr/sbin programmes exécutables par root
/usr/share fichiers indépendants de l’architecture et documentation
/usr/src code source de Linux, voire d’autres programmes
/usr/tmp lien vers /var/tmp (fichiers temporaires)
Linux Livre Page 211 Mardi, 23. septembre 2008 1:05 13
212 LINUX
Ce n’est que lors du démarrage d’un fichier de programme qu’un processus (ou une tâche) est
créé par le noyau Linux. Le titre de cette section devrait donc être "Démarrer des programmes
et des commandes, gérer et arrêter des processus".
Fichiers *.exe Une question surgit de temps à autre : où sont les fichiers *.exe sous Linux ? La réponse est :
il n’y en a pas. Les programmes exécutables sont identifiés par l’existence de leur bit d’accès
x. L’extension *.exe comme sous Windows serait donc redondante.
Cette réponse n’est plus tout à fait vraie, car il existe maintenant quelques fichiers *.exe iso-
lés sur de nombreux systèmes Linux. Il s’agit de programmes développés dans le langage
C# et exécutés par les bibliothèques Mono, qui sont une implémentation libre du framework
.NET de Microsoft.
214 LINUX
Console texte, Vous pouvez aussi démarrer un programme dans une fenêtre d’interpréteur de commandes
fenêtre de
shell (par exemple xterm ou konsole) ou une console texte. Saisissez le nom du programme et
appuyez sur Entrée. Les utilisateurs avancés de Linux utilisent souvent cette méthode, car
taper quelques lettres est souvent plus rapide que de chercher le programme dans le menu.
Il suffit normalement de taper le nom du programme. L’interpréteur de commandes effectue
alors une recherche dans tous les répertoires listés dans la variable d’environnement PATH.
Voici un exemple de cette variable :
utilisateur$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
Lorsque vous désirez lancer un programme qui ne se trouve pas dans l’un de ces répertoi-
res, vous devez indiquer le chemin complet du fichier. C’est également valable pour les pro-
grammes du répertoire courant, pour lesquels il faut préfixer le chemin d’un point (par
exemple ./monprogramme).
Si vous avez oublié le &, vous pouvez passer le programme en tâche de fond rétrospectivement.
Pour cela, interrompez le programme avec Ctrl+Z et réactivez-le avec bg :
user$ xemacs
Ctrl+Z
[1]+ Stopped xemacs
utilisateur$ bg
[1]+ xemacs &
L’exemple suivant affiche la liste de tous les processus, très réduite pour des questions de
place :
utilisateur$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:07 /sbin/init
2 ? S< 0:00 [kthreadd]
3 ? S< 0:14 [migration/0]
4 ? S< 8:14 [ksoftirqd/0]
...
31097 pts/7 S+ 0:20 gqview
31389 ? S< 0:00 [kjournald]
32405 ? S 0:01 xterm -font -*-fixed-medium-r-*-*-18-*-*-*-*-*-*-*
32406 pts/4 Ss 0:00 bash
top top est une commande plus pratique que ps : elle trie les processus en fonction de leur occu-
pation processeur et affiche ceux qui sont actifs en premier. Ce programme donne aussi un
aperçu de l’occupation de la mémoire. La liste des processus est actualisée régulièrement
jusqu’à ce que vous quittiez le programme avec Q. Les lignes suivantes montrent un système
en cours de fonctionnement :
top - 12:36:49 up 13 days, 14:22, 8 users, load average: 0.20, 0.33, 0.35
Tasks: 145 total, 1 running, 143 sleeping, 0 stopped, 1 zombie
Cpu(s): 5.7%us, 1.3%sy, 0.0%ni, 93.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1554740k total, 1483176k used, 71564k free, 62632k buffers
Swap: 1542200k total, 132644k used, 1409556k free, 449100k cached
...
La valeur dans la colonne PID indique le numéro du processus. Ce numéro permet d’arrêter
un processus qui échappe à votre contrôle ou qui tourne en arrière-plan.
Les processus peuvent avoir plusieurs états. Les plus courants sont R (running, en cours de
fonctionnement) et S (sleeping, où le programme n’a rien à faire et attend une entrée). Les
programmes peuvent aussi être temporairement interrompus ; ils ont alors l’état T (stopped).
top permet également de saisir des commandes interactives. Vous pouvez y stopper des
processus (K, kill) ou en changer la priorité (R, renice).
Alternatives Il existe des alternatives graphiques à la commande texte top, par exemple ksysguard sous
graphiques à
top KDE ou gnome-system-monitor sous Gnome.
Linux Livre Page 216 Mardi, 23. septembre 2008 1:05 13
216 LINUX
Établir le Lorsque vous désirez connaître le numéro d’un processus, utilisez pidof. Lorsqu’il existe
numéro d’un
processus plusieurs processus avec le même nom, pidof affiche une liste de numéros :
utilisateur$ pidof xterm
32405 27972 26086 25931 17330 15169
Pour savoir quel programme accède à un répertoire ou à un fichier donné, lancez la com-
mande fuser. Un répertoire est aussi considéré comme utilisé lorsqu’un programme y est
lancé. La commande suivante montre que bash utilise le répertoire /media/dvd :
root# fuser -v /media/dvd
USER PID ACCESS COMMAND
/media/dvd michael 2183 ..c.. bash
root Kernel mount /media/dvd
L’accès au fichier ne s’affiche que lorsque le programme accède réellement au fichier. Cela
peut ne pas être le cas pour un éditeur de texte qui charge tout le fichier, puis le ferme. Il rouvre
brièvement le fichier le temps de l’enregistrer.
Fichiers PID Certaines tâches de fond enregistrent dans le répertoire /var/run un fichier PID (par exem-
ple /var/run/httpd.pid). La première ligne de ce fichier est le numéro du processus ; les
lignes suivantes peuvent contenir des informations d’état, comme les interfaces réseau utili-
sées. Ces fichiers permettent de terminer un processus ciblé via un script InitV, y compris
lorsque plusieurs processus du même nom coexistent.
kill ne peut être utilisée que pour les processus appartenant à l’utilisateur qui les lance.
Seul root peut arrêter n’importe quel processus.
top top permet également d’arrêter un processus : tapez K, le numéro du processus et le signal
souhaité.
killall killall est plus confortable, car il prend comme argument le nom du programme et non le
numéro du processus. En revanche, il termine tous les programmes ayant le même nom :
root# killall -9 firefox
xkill Sous X, vous pouvez également lancer xkill dans une fenêtre de terminal et cliquer sur la
fenêtre du programme à terminer. xkill envoie le signal 9.
Sous KDE, vous pouvez lancer cette commande grâce à Ctrl+Alt+Échap. En cas d’erreur,
utilisez Échap pour l’interrompre.
Processus Il arrive que xkill ferme une fenêtre, mais que le processus ou des parties de ce processus
persistants
continuent à fonctionner. Assurez-vous avec top ou ps que le programme est bien terminé.
Si ce n’est pas le cas, terminez manuellement les processus restants.
Blocage de la Il est extrêmement désagréable qu’un programme X entraîne lors d’un plantage le blocage
souris ou du
clavier de la souris ou du clavier. L’ordinateur ne réagit alors presque plus.
Dans ce cas, la combinaison de touches Ctrl+Alt+F1 peut aider. Si elle réussit, vous passez dans
la première console texte. Vous pouvez alors vous connecter et terminer le programme fautif.
Si le clavier est complètement bloqué, il reste la solution de se connecter via le réseau en SSH
et de terminer le processus de cette manière. Mais cela n’est possible que si vous travaillez
dans un réseau local et si l’ordinateur dispose de sshd.
Si X reste bloqué, vous pouvez essayer de terminer X lui-même, puis de lancer la commande
shutdown. Toutes ces méthodes valent mieux que d’appuyer sur Reset, ce qui peut mener à
des pertes de données.
Limiter la taille Les programmes lancés via un interpréteur de commandes (ou les commandes lancées à
des processus
partir d’une fenêtre de terminal) peuvent être limités par ulimit, en ce qui concerne leur uti-
lisation mémoire, la taille des fichiers créés, etc. Cette commande est généralement configu-
rée dans /etc/profile. Vous trouverez des informations complémentaires sur ulimit dans
man bash.
Linux Livre Page 218 Mardi, 23. septembre 2008 1:05 13
218 LINUX
renice permet de modifier la priorité d’un programme déjà lancé. Elle prend pour paramè-
tre un identifiant de processus, obtenu avec top ou ps. Vous trouverez plus de détails à pro-
pos de renice dans man renice. top permet également, grâce à la commande R, de modifier
interactivement la priorité d’un processus. Seul root peut lancer des processus avec une
priorité supérieure à 0 (donc négative).
Redirections et tubes
Presque tous les programmes texte (commandes) attendent des entrées sur l’entrée standard
(par défaut, le clavier) et renvoient des sorties sur la sortie standard (le texte s’affiche dans la
console ou la fenêtre de terminal). On peut rediriger l’entrée et la sortie, ce qui offre de nom-
breuses possibilités. Par exemple, cette commande enregistre la liste de tous les fichiers du
répertoire xy dans le fichier z :
utilisateur$ ls xy > z
Les tubes, ou pipes, permettent d’utiliser la sortie d’une commande comme entrée de la com-
mande suivante. Dans cet exemple, grep filtre la liste de tous les paquetages installés sur la
chaîne "mysql", indépendamment de la casse, puis sort trie cette liste.
En d’autres termes, la sortie de la commande rpm est transmise grâce au caractère | à la
deuxième commande grep, qui transmet elle-même sa sortie avec un deuxième caractère | à
sort.
utilisateur$ rpm -qa | grep -i mysql | sort
mysql-5.0.18-2.1
mysql-connector-odbc-3.51.12-1.2.1
MySQL-python-1.2.0-3.2.2
mysql-server-5.0.18-2.1
perl-DBD-MySQL-3.0002-2.2.2
php-mysql-5.1.2-5
Linux Livre Page 219 Mardi, 23. septembre 2008 1:05 13
De nombreuses distributions sont configurées de manière que vous n’ayez pas à penser à su ou sudo. Lors-
que vous démarrez un outil d’administration, une boîte de dialogue de mot de passe s’affiche automatique-
ment.
Les bits suid et guid offrent une première possibilité d’indiquer aux programmes que quiconque peut les
lancer comme s’il était root. La différence principale avec sudo est que ces bits d’accès s’appliquent à tous
les utilisateurs, tandis que les utilisateurs de sudo doivent être déclarés explicitement dans le fichier /etc/
sudoers.
su Bien souvent, le besoin se limite à lancer rapidement une commande en tant que root. Quit-
ter X se révèle alors inconfortable. Le plus simple pour changer d’utilisateur dans une fenê-
tre de terminal est d’utiliser la commande su nom. Si vous ne lancez pas cette commande en
tant que root, le mot de passe du compte utilisateur correspondant vous est demandé. Vous
pouvez alors, dans la fenêtre de terminal, lancer des commandes sous le nom fourni jusqu’à
ce que vous repassiez en mode normal avec exit ou Ctrl+D.
Les lignes suivantes montrent comment un utilisateur peut se connecter brièvement en tant
que root, monter une partition dans l’arborescence et se déconnecter :
utilisateur$ su -l root
Mot de passe : xxx
root# mount -t ext2 /test /dev/hdc7
root# Ctrl+D
utilisateur$ ls /test
Pour que su soit un remplacement complet d’une connexion en tant que root, vous devez
utiliser l’option -l. Ainsi, tous les fichiers de démarrage du compte (en particulier, la définition
correcte de PATH) sont relus.
Linux Livre Page 220 Mardi, 23. septembre 2008 1:05 13
220 LINUX
kdesu Sous KDE, le plus simple pour démarrer des programmes X avec des droits administrateur
est kdesu. Ce programme affiche une fenêtre de dialogue pour saisir le mot de passe root.
utilisateur$ kdesu kate /etc/fstab
kdesu ne fonctionne que lorsque le démon kdesud est lancé. Il l’est généralement lors du
démarrage de KDE. Les options de kdesu sont disponibles avec kdesu -help-all. Dans cer-
taines distributions, kdesu est directement intégré au menu KDE. Dans ce cas, si vous
démarrez un programme qui demande des droits d’administration, la fenêtre de connexion
de kdesu apparaît automatiquement.
gksu La contrepartie de kdesu sous Gnome s’appelle gksu. Il fonctionne sans processus d’arrière-
plan. man gksu offre un résumé des options disponibles.
consolehelper Dans certaines distributions, consolehelper peut être utilisé à la place de gksu. Ce pro-
gramme est également une boîte de dialogue de mot de passe, mais il est mis en œuvre de
manière complètement différente. L’idée de base est que les outils d’administration sont ins-
tallés dans un répertoire qui n’est accessible qu’à root. Pour les utilisateurs normaux, le
nom de l’exécutable est un lien vers consolehelper. La commande suivante montre une
configuration de ce type pour system-config-network (configuration du réseau pour Red
Hat) :
utilisateur$ ls -l /usr/sbin/system-config-network \
/usr/bin/system-config-network
-rwxr-xr-x ... root root /usr/sbin/system-config-network
lrwxrwxrwx ... root root /usr/bin/system-config-network -> consolehelper
root. sudo enregistre dans le journal /var/log/messages tous les programmes lancés, ainsi
que les tentatives qui ont échoué.
sudo garde le mot de passe pendant 15 minutes. Si vous lancez une nouvelle commande
pendant cet intervalle, votre mot de passe ne vous sera pas redemandé − cette durée peut
être paramétrée dans /etc/sudoers avec le mot clé timestamp_timeout.
Configuration La configuration de sudo est définie dans le fichier /etc/sudoers. Il se divise en trois colon-
nes qui décrivent quels utilisateurs de quels ordinateurs ont le droit de démarrer quels pro-
grammes. La ligne suivante signifie que l’utilisateur catherine sur l’ordinateur uranus peut
lancer la commande /sbin/fdisk. Le mot clé ALL indique que catherine peut la lancer sous
n’importe quel compte valide : root, news, lp, etc.
# dans /etc/sudoers
catherine uranus=(ALL) /sbin/fdisk
On peut donner à un utilisateur les droits sudo sans qu’il ait à saisir son mot de passe. La ligne ressem-
ble alors à ceci :
michael ALL=(ALL) NOPASSWD: ALL
Cette solution représente un risque de sécurité, mais quiconque doit effectuer régulièrement des tâches
administratives en appréciera le confort. Attention, l’option NOPASSWD n’est valable que lorsque aucune
autre ligne de sudoers ne demande un mot de passe pour le même utilisateur. Cette astuce fonctionne
également pour les groupes.
Applications Catherine peut maintenant lancer fdisk de la manière suivante. Elle doit saisir, comme mot
de passe, celui associé au compte catherine et indiquer le chemin complet de fdisk, si ce
dernier n’est pas dans l’un des répertoires de la variable d’environnement PATH de cathe-
rine. fdisk se lance alors avec le compte root. Pour choisir un autre compte pour l’exécution,
on peut utiliser sudo -u compte.
catherine$ sudo /sbin/fdisk /dev/sda
[sudo] password for catherine: xxxxxxx
Lancer Lorsqu’il faut lancer plusieurs tâches administratives, il devient fastidieux de préfixer cha-
plusieurs
commandes que commande avec sudo. Il est plus élégant de passer en mode root avec sudo -s -H. Toutes
avec sudo les commandes sont alors lancées en tant que root. On sort de ce mode grâce à Ctrl+D.
gksudo Lorsque vous démarrez des programmes d’administration sous X, certaines distributions
lancent gksudo. Ce dernier permet de saisir le mot de passe dans une boîte de dialogue et
lance le programme souhaité.
222 LINUX
La première ligne se sépare en trois éléments. !lecture indique à sudo de ne pas afficher
d’avertissement à l’utilisateur lorsqu’il lance la commande sudo. tty_tickets fait en sorte
que le mot de passe ne soit retenu que pour les commandes lancées dans une console don-
née. !fqdn permet d’indiquer des noms réseau non pleinement qualifiés − ce qui est néces-
saire pour que sudo puisse fonctionner sans serveur de noms.
La deuxième ligne donne à root un accès illimité à tous les programmes. Elle est plutôt inu-
tile sous Ubuntu, puisque la connexion en root n’est pas possible.
La troisième est la plus importante : elle permet aux membres du groupe admin d’appeler
tous les programmes.
Par défaut, seul le premier utilisateur (créé lors de l’installation) est membre du groupe
admin. Lorsque vous créez un nouvel utilisateur, celui-ci doit être explicitement ajouté à ce
groupe.
Les deux premières lignes ont trait aux variables d’environnement une fois l’accès sudo
autorisé. La deuxième ligne a en particulier pour effet de supprimer la variable DISPLAY, ce
qui interdit l’exécution de programmes X.
Defaults targetpw signifie que le mot de passe pour le compte cible doit être saisi avant que
la commande ne puisse être lancée (en général, mot de passe root). La ligne ALL ALL=(ALL)
ALL permet à tous les utilisateurs de lancer n’importe quelle commande une fois le bon mot
de passe saisi.
Linux Livre Page 223 Mardi, 23. septembre 2008 1:05 13
224 LINUX
Threads du noyau
En plus des services réseau habituels comme httpd (Apache), il existe de nombreux proces-
sus qui ne sont pas vraiment des programmes, mais des morceaux de processus (threads) du
noyau. Lorsque vous tapez ps axu, vous pouvez les reconnaître par leur nom qui se trouve
entre crochets. Certains sont suivis d’un numéro qui désigne le processeur concerné. Ainsi,
kblockd/0 gère le tampon des périphériques bloc pour le premier processeur, kblockd/1
pour le deuxième, etc.
La plupart des threads du noyau gèrent les tâches de bas niveau du système d’exploitation
(gestion de la mémoire, des processus, occupation du processeur, etc.). Ils sont principale-
ment lancés lors de l’initialisation au début du démarrage du système. Les applications
normales ne nécessitent pas de configuration spéciale à ce niveau.
226 LINUX
Sous SUSE :
root# rcnom start
Sous SUSE :
root# rcnom stop
Sous SUSE :
root# rcnom reload/restart
Démarrage Lorsqu’un service réseau est mis en place correctement, il est d’usage de le démarrer auto-
automatique
matiquement lors de l’amorçage de l’ordinateur et de l’arrêter lors de l’extinction de la
machine. Sous certaines distributions (Debian, Ubuntu), les services sont configurés ainsi
dès qu’ils sont installés à partir du paquet. Sous d’autres, ce n’est pas le cas, pour des raisons
de sécurité − le démarrage automatique doit donc être activé manuellement.
Sous Debian, update-rc.d crée les liens de démarrage et d’arrêt InitV avec le numéro d’exé-
cution par défaut 20. Si vous désirez utiliser d’autres nombres, indiquez-les avec n1 et n2
(voir Chapitre 24).
Linux Livre Page 227 Mardi, 23. septembre 2008 1:05 13
Sous Red Hat et Fedora, la commande chkconfig suffit dans de nombreux cas. La seconde
commande n’est nécessaire que lorsque le script InitV ne contient pas d’information sur le
niveau d’exécution du service (presque toujours 3 et 5, voir Chapitre 24).
Sous Debian et Ubuntu :
root# update-rc.d nom defaults [n1 n2]
Sous SUSE :
root# insserv nom
Supprimer le Les commandes suivantes suppriment le démarrage automatique ultérieur des services.
démarrage
automatique Lorsque le système fonctionne, il n’est pas arrêté ; il faut pour cela lancer la commande stop
correspondante.
Sous Debian et Ubuntu :
root# update-rc.d -f nom remove
Sous SUSE :
root# insserv -r nom
228 LINUX
crontab Le fichier /etc/crontab contient des enregistrements sous forme de lignes pour les programmes
à lancer. La syntaxe ressemble à ceci :
min heure jour mois joursemaine utilisateur commande
Colonnes de crontab
min indique à quelle minute (0-59) le programme doit être lancé
heure indique l’heure (0-23)
jour indique le jour dans le mois (0-31)
mois indique le mois (0-12)
joursemaine indique le jour de la semaine (0-7, 0 et 7 signifient dimanche)
utilisateur indique pour quel utilisateur est lancée la commande (root le plus souvent)
commande indique la commande à lancer
Une étoile dans l’un des cinq premiers champs indique que ce champ doit être ignoré. Ainsi,
15 * * * * signifie qu’il faut lancer la commande 15 minutes après l’heure pleine, toutes les
heures, tous les jours, tous les mois, indépendamment du jour de la semaine. 29 0 * * 6
indique qu’il faut la lancer tous les samedis à 0:29.
Ces champs comprennent également une syntaxe du type */n. Celle-ci signifie que la com-
mande doit être lancée toutes les n minutes/heures, etc. Ainsi, */15 * * * * indique qu’elle
est lancée tous les quarts d’heure (à x:00, x:15, x:30 et x:45).
La documentation n’est pas claire sur la signification de 0 pour le jour du mois et le mois
(voir man 5 crontab).
Les fichiers /var/spool/cron/tabs/utilisateur ont le même format que crontab. La seule
différence est qu’il n’y a pas de colonne utilisateur.
Modifier la configuration
Pour changer la configuration globale de cron, vous pouvez modifier directement le fichier
/etc/crontab et les fichiers de /etc/cron* avec un éditeur de texte. Pour ajouter une ligne
spécifique à un utilisateur, vous devez utiliser la commande crontab -e. L’éditeur par
défaut de la variable d’environnement EDITOR est alors lancé.
cron.hourly, Dans la plupart des distributions, /etc/crontab ne contient que peu d’entrées qui lancent
.daily, .weekly,
.monthly tous les fichiers de script de /etc/cron.hourly/* toutes les heures, ceux de /etc/
cron.daily/* tous les jours, etc. Sous Red Hat, /etc/crontab ressemble à ceci :
# /etc/crontab sur Red Hat
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Linux Livre Page 229 Mardi, 23. septembre 2008 1:05 13
La configuration de cron s’en trouve considérablement simplifiée. Dans la plupart des cas, il
suffit alors de copier le script à lancer dans l’un des quatre répertoires /etc/cron.xxx pour
que les commandes qui s’y trouvent soient lancées.
Modifier directement /etc/crontab n’est alors nécessaire que lorsque vous voulez changer
les heures prédéfinies (attention, le fichier /etc/crontab peut être écrasé lors d’une mise à
jour de la distribution).
Pendant mon travail sur cet ouvrage, j’ai synchronisé le répertoire de ce livre et mon réper-
toire de sauvegarde (sur un autre disque dur) une fois par jour. Cela tient en un script de
trois lignes :
#!/bin/sh
#/etc/cron.d/daily/backup-linux-book
rsync -r ~michael/linux/* /backup/linux
Lorsque vous désirez éviter qu’une tâche cron ne se lance à un moment critique (par exemple, lorsque vous
gravez un DVD), il suffit de désactiver cron avec /etc/init.d cron stop .
Linux Livre Page 230 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 231 Mardi, 23. septembre 2008 1:05 13
Divers paramètres de l’image (taille, nombre de couleurs, taux de compression, etc.) peuvent
être modifiés par le biais d’une centaine d’options :
utilisateur$ convert -resize 100x100 image.jpg image.png
utilisateur$ convert -type Grayscale image.jpg image.eps
utilisateur$ convert -quality 80 image.bmp image.jpg
mogrify fonctionne comme convert, mais transforme directement le fichier plutôt que d’en
créer un nouveau :
utilisateur$ mogrify -resize 50% test.jpg
Les autres commandes d’Image Magick comprennent compare pour comparer deux images
et conjure pour lancer des commandes de transformation d’images du Magick Scripting
Language (MSL, langage de script Magick). identify affiche une description d’un fichier
Linux Livre Page 232 Mardi, 23. septembre 2008 1:05 13
232 LINUX
image (format, taille, etc.). import crée une copie d’écran et l’enregistre dans un fichier.
montage forme une seule image avec plusieurs.
utilisateur$ identify -verbose bateau.png
Image: bateau.png
Format: PNG (Portable Network Graphics)
Class: DirectClass
Geometry: 416x244+0+0
Type: TrueColorMatte
Endianess: Undefined
Colorspace: RGB
Depth: 8-bit
...
Les programmeurs peuvent aussi utiliser Image Magick en tant que bibliothèque. La docu-
mentation complète de toutes les commandes se trouve sur le site web http://www.image-
magick.org/.
Netpbm L’approche de Netpbm (anciennement Portable Bitmap Utilities) est différente de celle
d’Image Magick. En effet, chaque fichier doit d’abord être transformé au format interne
PNM ou PBM. L’exemple suivant montre comment transformer un fichier TIFF en fichier
PNG, où l’espace de couleurs de l’image est normalisé (pnmnorm) :
utilisateur$ tifftopnm image.tif | pnmnorm | pnmtops -noturn -rle \
-scale 0.5 > image.eps
Netpbm contient environ 200 commandes ; vous en trouverez une description à l’adresse
http://netpbm.sourceforge.net/doc/.
Bibliothèque Le paquetage libtiff contient la bibliothèque éponyme, ainsi que diverses commandes
libtiff
pour modifier et convertir des fichiers TIFF. Les principales commandes de conversion sont
bmp2tiff, gif2tiff, tiff2pdf et tiff2ps. Pour manipuler les fichiers TIFF, les commandes
tiffcp, tiffinfo ou encore tiffsplit peuvent s’avérer utiles.
Bibliothèque Le paquetage libwmf contient la bibliothèque du même nom, ainsi que certaines comman-
libwmf
des pour traiter les fichiers WMF et EMF (Windows Metafile et Enhanced Metafile). Les princi-
pales commandes de conversion sont wmf2eps, wmf2svg, ainsi que wmf2gd (conversion vers
les formats JPEG et PNG).
Convertisseur Le paquetage librsvg2 ou librsvg2-bin contient les commandes rsvg et rsvg-convert, qui
SVG
servent à transformer les fichiers SVG (Scalable Vector Graphics) dans un format bitmap.
EXIF Il existe plusieurs bibliothèques et commandes pour modifier les données EXIF des fichiers
JPEG, par exemple exif, exiftran, exiv2 ou encore jhead.
Fichiers RAW Certains appareils photo numériques permettent d’enregistrer des images sans perte de
qualité au format RAW spécifié par le fabricant. Pour transformer ces fichiers en images
conventionnelles, on peut utiliser la commande dcraw du paquetage du même nom.
Cette section présente quelques exemples de commandes. Vous trouverez plus d’informations
et des références d’options grâce à man commande.
Extraction de Ces outils servent à extraire un CD de manière efficace et sans perte de qualité vers le disque
CD audio
dur. Les commandes les plus populaires sont cdparanoia et cdda2wav, ainsi que le projet
dérivé icedax. cdparanoia a la réputation d’avoir de bons résultats lorsque le CD est rayé
ou présente des problèmes similaires. Les deux commandes fournissent d’innombrables
paramètres.
Voici deux exemples. La commande suivante lit la piste 3 d’un CD qui se trouve dans le premier
lecteur CD SCSI. Le fichier résultant est nommé audio.wav.
root# cdda2wav -D /dev/scd0 -t 3
Le second exemple lit la piste 4 du CD dans le même lecteur. Le résultat est le fichier
cdda.wav dans le répertoire local :
root# cdparanoia -d /dev/scd0 "4"
Codage MP3 En raison des problèmes de brevets évoqués au Chapitre 11, il existe encore peu de distri-
butions Linux dotées d’un codeur MP3. Divers codeurs sont cependant disponibles sur
Internet en tant que paquetages supplémentaires. Le programme le plus connu est lame :
http://lame.sourceforge.net/index.php.
Son utilisation est très simple : lame entree.wav sortie.mp3 crée à partir du fichier en
entrée un fichier MP3. L’opération, en particulier la qualité du fichier MP3, est paramétrée
grâce à de nombreuses options.
MP3 -> OGG Les commandes listées précédemment peuvent être combinées, par exemple pour transfor-
mer un fichier MP3 au format Ogg-Vorbis. Attention, ce type de transformation induit
toujours une perte de qualité et doit être évité autant que possible.
utilisateur$ mpeg321 -s in.mp3 -w - |oggenc - -o out.ogg
Linux Livre Page 234 Mardi, 23. septembre 2008 1:05 13
234 LINUX
Malheureusement, les tags Info (ID3) sont également perdus dans cette opération. Pour éviter
cela, on peut aussi utiliser un script de conversion MP3-Ogg (comme mp32ogg).
FLAC FLAC signifie Free Lossless Audio Codec, codec audio libre sans perte. Les fichiers FLAC sont
plus volumineux que les fichiers MP3 ou Ogg, mais plus petits que les WAV. L’avantage
principal de FLAC par rapport à MP3 ou Ogg est qu’il code les fichiers audio sans perte.
Pour coder et décoder ces fichiers, on utilise la commande flac.
Bibliothèque Le paquetage audiofile implémente les fonctions importantes de la bibliothèque AudioFile
AudioFile
du fabricant SGI. La commande la plus intéressante est sfconvert, qui permet de convertir
des fichiers audio entre les formats aiff, aifc, next et wave. sfinfo essaie de déterminer
dans quel format se trouve un fichier audio.
Conversion La commande ffmpeg du paquetage du même nom convertit les fichiers audio et vidéo d’un
vidéo (ffmpeg)
format à un autre. La liste des formats pris en charge est longue et on peut l’obtenir avec
ffmpeg -formats.
utilisateur$ ffmpeg -i in.avi out.mpg
La commande permet aussi de préparer des données audio et vidéo pour les graver sur un
DVD. Un exemple est fourni dans man ffmpeg.
Comme le montre l’exemple suivant, recode peut aussi modifier les caractères de fin de ligne.
Cette commande convertit tous les caractères de fin de ligne du fichier fichierwin (CR puis LF,
soit Carriage Return puis Line Feed) en caractères conventionnels sous Linux (LF) :
utilisateur$ recode latin1/cr-lf..latin1 < fichierwin > fichierlinux
convmv modifie le nom, mais pas le contenu des fichiers. L’option --notest est obligatoire
pour que la conversion ait effectivement lieu.
Cette commande essaie de reconnaître elle-même les fichiers qui ont déjà un nom en UTF-8
et ne propose dans ce cas pas de renommage. Si vous désirez désactiver cette fonctionnalité,
utilisez l’option --nosmart.
236 LINUX
• Le paquetage psutils fournit diverses commandes pour gérer les fichiers PostScript.
On notera en particulier psbook, qui permet de réordonner les pages d’un texte afin qu’il
puisse être imprimé en livre, ou encore psnup, qui regroupe plusieurs pages réduites sur
une seule feuille.
• pdftk (PDF-Toolkit) fournit des fonctions comparables à psutils pour les fichiers PDF.
• pdftotext extrait le texte d’un fichier PDF et l’enregistre dans un fichier texte. Le format
et les images sont alors perdus.
Linux Livre Page 237 Mardi, 23. septembre 2008 1:05 13
Outils réseau
16
Ce chapitre présente les différentes commandes pour utiliser et gérer les fonctions et services
élémentaires d’un réseau. Vous apprendrez comment vous connecter à un autre ordinateur
du réseau avec ssh, comment transférer des données avec wget ou rsync, etc.
Il existe, pour certaines de ces commandes, une interface utilisateur graphique. Cependant,
comme dans les chapitres précédents, nous donnons ici la priorité aux commandes texte.
Certaines commandes ne peuvent être utilisées qu’en root ou en sudo. D’autres peuvent être
lancées par un utilisateur conventionnel, mais ne sont généralement pas à sa disposition − la
variable d’environnement PATH ne contient pas le chemin des commandes en question. Il
peut donc être nécessaire de saisir le chemin complet, généralement /sbin ou /usr/sbin. Par
exemple, pour lancer la commande ifconfig sous Fedora en tant qu’utilisateur non root, il
faut la saisir sous la forme /sbin/ifconfig.
238 LINUX
Si l’interface eth0 ne s’affiche pas, la carte réseau n’est pas activée. Les outils de configura-
tion de votre distribution permettent de remédier à cette situation. Vous pouvez aussi l’acti-
ver manuellement, par exemple avec ifconfig eth0 192.168.0.2. Si une erreur du type
"eth1: ERREUR en récupérant les signaux de l’interface: Aucun périphérique de ce type" s’affiche, le
module du noyau permettant de gérer la carte réseau est probablement manquant.
Tester ping envoie un petit paquet réseau une fois par seconde à une adresse fournie en paramètre.
l’accessibilité
de localhost Lorsqu’un ordinateur s’y trouve, il envoie une réponse (qui peut cependant être masquée
par un pare-feu). ping fonctionne tant qu’il n’est pas interrompu par Ctrl+C. Il permet donc
de tester si une connexion peut être établie entre l’ordinateur local et un autre ordinateur.
Il vaut mieux commencer par tester ping localhost pour voir si l’interface de bouclage lo et
les fonctions réseau élémentaires de l’ordinateur fonctionnent. Cela devrait être le cas,
même si vous n’avez pas de carte réseau (localhost désigne toujours l’ordinateur local).
utilisateur$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.030 ms
...
Tester Lorsque vous indiquez, à la place de localhost, l’adresse IP d’un autre ordinateur du réseau
l’accessibilité
du réseau local local, vous testez si ce réseau fonctionne. -c 2 fait en sorte que seuls deux paquets soient
envoyés et évite que ping continue indéfiniment.
utilisateur$ ping -c 2 192.168.1.4
PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data.
64 bytes from 192.168.1.4: icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from 192.168.1.4: icmp_seq=2 ttl=64 time=0.031 ms
Lorsqu’il existe un serveur de noms sur le réseau local qui associe l’adresse IP 192.168.1.4 à
un nom (ou lorsque le fichier /etc/hosts gère cette tâche), vous pouvez utiliser le nom de
l’ordinateur à la place de son adresse IP :
utilisateur$ ping -c 2 mars
PING mars.sol (192.168.1.4) 56(84) bytes of data.
64 bytes from mars.sol(192.168.1.4): icmp_seq=1 ttl=64 time=0.133 ms
64 bytes from mars.sol (192.168.1.4): icmp_seq=2 ttl=64 time=0.127 ms
Tester l’accès à Vous pouvez ensuite vérifier si votre accès à Internet fonctionne. La commande suivante
Internet
teste en même temps deux aspects de la configuration du réseau : la disponibilité du serveur
de noms et le fonctionnement de la passerelle.
utilisateur$ ping -c 2 www.yahoo.fr
PING www.euro.yahoo-eu1.akadns.net (87.248.120.129) 56(84) bytes of data.
64 bytes from www.vip.ch1.yahoo.com (87.248.120.129): icmp_seq=1 ttl=51
time=35.7 ms
Linux Livre Page 239 Mardi, 23. septembre 2008 1:05 13
• Si un seul ordinateur sert de passerelle à un réseau local complet, il est possible que vous
ayez oublié d’activer la mascarade. Dans ce cas, l’accès à Internet ne fonctionne pas pour le
réseau local. La configuration d’une passerelle Internet est détaillée au Chapitre 26.
Suivre le traceroute permet de connaître le chemin parcouru par un paquet réseau émis par votre ordi-
chemin des
paquets IP nateur vers un autre ordinateur et le temps qu’il met à parcourir chaque étape du chemin. Par
défaut, la commande effectue trois tentatives et affiche les trois durées correspondantes.
La commande ne fonctionne pas si l’une des étapes a un pare-feu qui bloque le port UDP
33434 utilisé par traceroute. Dans ce cas, traceroute n’affiche pour cette étape et les étapes
suivantes que trois étoiles.
Les lignes suivantes montrent le chemin entre mon ordinateur et google.fr :
utilisateur$ traceroute google.fr
traceroute to google.fr (216.239.59.104), 30 hops max, 40 byte packets
1 gateway (192.168.1.1) 0.438 ms 0.626 ms 0.819 ms
2 166-59-186-195.bluewin.ch (195.186.59.166) 25.807 ms 25.964 ms 26.145 ms
...
10 72.14.198.57 (72.14.198.57) 29.364 ms 30.086 ms 31.558 ms
...
16 216.239.59.104 (216.239.59.104) 61.008 ms 61.301 ms 62.771 ms
240 LINUX
Le prérequis pour utiliser ssh est qu’un serveur SSH, c’est-à-dire le programme sshd, fonctionne sur le
second ordinateur. Pour certaines distributions Linux, c’est le cas par défaut. Pour d’autres, il faut installer le
programme − il s’agit souvent du paquetage openssh-server. Si vos ordinateurs sont équipés de pare-
feu, ceux-ci ne doivent pas bloquer le port 22.
Session shell Si vous êtes sur l’ordinateur uranus et que vous désirez lancer une session shell sur mars, il
typique
suffit de lancer la commande suivante :
utilisateur@uranus$ ssh mars
utilisateur@mars’s password: xxx
Lorsque vous vous connectez pour la première fois à un autre ordinateur, un avertissement
de ce type apparaît :
The authenticity of host ’mars (192.168.1.10)’ can’t be established.
RSA1 key fingerprint is 1e:0e:15:ad:6f:64:88:60:ec:21:f1:4b:b7:68:f4:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’mars,192.168.1.10’ (RSA1) to the list of known hosts.
Cela signifie que ssh n’est pas sûr de pouvoir faire confiance à l’ordinateur mars doté de
l’adresse IP 192.168.1.10. Il se pourrait en effet qu’un ordinateur étranger se fasse passer pour
mars. Si vous répondez à la question par yes, ssh enregistre le nom, l’adresse et l’empreinte RSA
(code pour identifier de manière unique l’ordinateur) dans ~/.ssh/known_hosts.
Si vous souhaitez vous connecter à mars sous un autre identifiant que celui sous lequel vous
travaillez sur uranus (par exemple, en tant que root), ajoutez l’option -l :
utilisateur@uranus$ ssh -l root mars
root@mars’s password: xxx
Lancer des Plutôt que d’utiliser ssh de manière interactive, vous pouvez n’exécuter qu’une commande
commandes
sur l’ordinateur distant. Il suffit de passer la commande et ses paramètres comme paramètres
de la commande ssh. ssh est terminé après cette commande.
utilisateur@uranus$ ssh mars commande options
utilisateur@mars’s password: xxx
Cette possibilité a priori triviale ouvre de larges horizons. Vous pouvez, par exemple, lancer
sur un ordinateur distant la commande tar, transférer l’archive créée à la sortie standard (en
utilisant un tiret - après l’option -f) et rediriger la sortie standard vers l’entrée d’une
seconde commande tar, cette fois-ci locale, avec un tube |. Vous pouvez ainsi déplacer
une arborescence complète via SSH.
Linux Livre Page 241 Mardi, 23. septembre 2008 1:05 13
La commande suivante montre comment je copie le répertoire htdocs de mon serveur web
kofler.cc vers le répertoire local ~/bak :
utilisateur$ ssh kofler.cc tar -cf - htdocs |tar -xC ~/bak/ -f -
utilisateur@kofler.cc’s password: xxxxx
SSH et X On peut aussi lancer un programme X dans une session SSH. Il est alors lancé sur l’ordina-
teur distant, mais s’affiche sur l’ordinateur local et comprend toutes les saisies du clavier et
de la souris. Comme le protocole X fonctionne à travers le réseau, une bonne connexion
réseau est nécessaire pour pouvoir travailler confortablement.
Pour lancer des programmes X avec ssh, il faut passer l’option -X. Le serveur doit avoir la
ligne ForwardX11 yes dans le fichier de configuration /etc/sshd_config pour que le transfert
fonctionne. ssh s’occupe alors lui-même de la gestion de la variable DISPLAY.
Les commandes suivantes lancent l’éditeur xemacs sur l’ordinateur mars. La fenêtre de l’édi-
teur s’affiche cependant sur l’ordinateur uranus, où elle peut être utilisée. Cela fonctionne
même lorsque le serveur X de mars ne fonctionne pas (par exemple, en niveau d’exécution
3). Toutes les bibliothèques X doivent néanmoins être installées.
utilisateur@uranus$ ssh -X mars
utilisateur@mars’s password: xxx
utilisateur@mars$ xemacs &
Copier des La commande scp permet de copier des fichiers via SSH sur un réseau. La syntaxe ressemble
fichiers de
manière sûre à celle-ci :
avec scp
utilisateur$ scp [[utilisateur1@]hote1:]fichier1 \
[[utilisateur2@]hote2:][fichier2]
fichier1 est copié de l’ordinateur hote1 vers l’ordinateur hote2 et enregistré sous le nom
fichier2. Voici quelques remarques quant aux nombreux éléments optionnels de la com-
mande :
• hote1 et hote2 peuvent être omis lorsqu’ils désignent l’ordinateur local (localhost).
• Il n’est pas nécessaire d’indiquer utilisateur1 lorsqu’il s’agit de l’utilisateur actif.
• Il n’est pas nécessaire d’indiquer utilisateur2 lorsqu’il s’agit de l’utilisateur courant
d’hote1 ou de utilisateur1.
• fichier1 peut être un répertoire. Il faut alors passer l’option -r pour que tout le réper-
toire et ses sous-répertoires soient pris en compte.
• Il n’est pas nécessaire d’indiquer fichier2 lorsque le nom du fichier ne doit pas être
modifié. Le fichier est alors copié dans le répertoire personnel de utilisateur2.
On peut aussi indiquer un répertoire à la place de fichier2. ~ représente le répertoire
personnel de utilisateur2.
Par exemple, si l’utilisateur michael travaille sur l’ordinateur uranus et veut transférer le
fichier abc.txt dans le répertoire ~/efg de mars, la commande scp à saisir est celle-ci :
michael@uranus$ scp abc.txt mars:~/efg/
michael@mars’s password: xxx
Linux Livre Page 242 Mardi, 23. septembre 2008 1:05 13
242 LINUX
SFTP SFTP (Secure FTP) est une variante plus sûre du protocole FTP basée sur SSH. Nous traiterons
de SFTP à la section 16.3.
Système de Le site web http://shfs.sourceforge.net fournit du code pour un module du noyau qui met
fichiers SHFS
en place un système de fichiers basé sur SSH. L’utilisation de shfs est plus confortable que
d’innombrables commandes scp et bien plus sûre que NFS − même s’il est plus lent.
Le module shfs est à l’heure actuelle rarement fourni par les distributions. Vous devez
donc le compiler vous-même. Après make et make install, la commande suivante devrait
fonctionner :
root# mount -t shfs utilisateur@mars /test
Cette commande monte le répertoire racine de l’ordinateur mars (et non le répertoire person-
nel de utilisateur !) dans le répertoire local /test. mount appelle la commande shfsmount, qui
s’occupe de passer les bonnes options.
Tunnels SSH Les utilisateurs avancés peuvent également créer des tunnels avec SSH. Ils permettent de
transférer tous les paquets IP envoyés à un port donné. Ils fournissent donc un chemin sécu-
risé pour les paquets entre deux ordinateurs, même lorsqu’un pare-feu se trouve entre les
deux machines.
Si le tunnel est créé depuis l’ordinateur client, il faut utiliser l’option -L port_local:hôte_dis-
tant:port_distant. Par exemple, la commande suivante fait correspondre le port 3306 de
mars au port 3307 de l’ordinateur local. La commande démarre également une session SSH,
ce que l’on peut éviter avec l’option -N lorsque seul le tunnel (sans connexion au shell) est
désiré. Si vous souhaitez vous connecter à mars avec un autre utilisateur, utilisez comme
précédemment l’option -l.
utilisateur@uranus$ ssh -L 3307:mars:3306 mars
utilisateur@mars’s password: xxxx
Le tunnel reste ouvert jusqu’à ce que la session SSH soit terminée avec Ctrl+D. Si vous avez
lancé ssh avec l’option -N, le programme doit être arrêté avec Ctrl+C.
3306 est le port habituel de MySQL. Vous pouvez désormais accéder au serveur MySQL qui
fonctionne sur mars via le port 3307 d’uranus. Il faut pour cela indiquer le port 3307 et le nom
d’hôte 127.0.0.1 pour effectivement utiliser ce tunnel :
utilisateur@uranus$ mysql -u identifiantmysql -P 3307 -h 127.0.0.1 -p
Enter password: xxxxx
Pour que cela fonctionne, il faut bien sûr que MySQL accepte les connexions réseau, ainsi
que la combinaison identifiant de connexion/hôte.
Lorsque vous lancez ssh-keygen, vous devez saisir un mot de passe. Il s’agit en fait d’une
phrase de passe, c’est-à-dire du texte libre pouvant se composer de plusieurs mots. La clé
privée est chiffrée avec cette phrase de passe.
Copiez la clé publique avec scp sur l’ordinateur cible et ajoutez-la au fichier ~/.ssh/
authorized_keys − si ce fichier n’existe pas encore, créez-le. Renouvelez cette étape sur tous
les ordinateurs auxquels vous vous connectez en SSH.
Lorsque vous ouvrez une connexion vers l’ordinateur cible, ssh accède aux informations
des clés. Le mot de passe à saisir n’est alors plus celui du compte, mais celui de la clé. Vous
n’avez alors rien gagné en termes de confort.
Il serait tentant de ne pas saisir de mot de passe lorsque ssh-keygen crée les clés. Cela per-
met en effet une connexion sans mot de passe à l’ordinateur distant, mais n’importe qui
peut lire et utiliser votre clé privée. La sécurité de tous les ordinateurs sur lesquels vous
avez transféré votre clé publique dépend alors de votre clé privée. Si celle-ci est subtilisée,
un attaquant aura accès à vos comptes sur toutes ces machines !
ssh-agent est une solution plus sûre et confortable. Ce programme gère toutes les clés privées
d’un utilisateur (il n’en existe généralement qu’une seule). On le lance avec :
utilisateur$ eval $(ssh-agent)
Les variables d’environnement de la console courante sont alors modifiées. ssh-agent fonc-
tionne en processus d’arrière-plan. ssh-add permet d’ajouter une clé privée :
utilisateur$ ssh-add ~/ssh/id_rsa
Enter passphrase for /home/utilisateur/.ssh/id_rsa: xxxxx
ssh utilise alors la clé gérée par ssh-agent. Vous n’aurez plus à saisir le mot de passe pour la
clé, ni à taper la phrase de passe à chaque connexion : il vous suffira de la saisir une seule
fois. L’avantage de ssh-agent est qu’il est limité à une seule console grâce à la portée des
variables d’environnement.
L’utilisation de SSH sans mot de passe est donc soit peu sûre (clé privée sans mot de passe),
soit lourde (ssh-agent). Par conséquent, la configuration n’est rentable que si vous utilisez
ssh fréquemment.
244 LINUX
L’inconvénient de FTP est que le nom d’utilisateur et le mot de passe sont transférés en clair.
SFTP (Secure FTP) est une alternative plus sûre basée sur SSH. HTTP, le protocole de transfert
des pages web, est également souvent utilisé comme alternative à FTP.
Dans cette section, nous parlerons de l’utilisation de FTP du point de vue du client.
Commande L’ancêtre de tous les clients FTP est la commande texte ftp. Comme elle transfère par défaut
FTP
les fichiers depuis et vers le répertoire courant, il faut, avant de la lancer, passer dans le
répertoire de travail souhaité avec cd. La session FTP est ensuite initialisée avec ftp utili-
sateur@serveurftp ou, plus simplement, ftp serveurftp. Si vous désirez utiliser le mode
anonyme, indiquez anonymous comme nom d’utilisateur.
Une fois la connexion établie et le mot de passe saisi, vous pouvez naviguer dans les réper-
toires du serveur FTP grâce aux commandes cd, pwd et ls. Pour télécharger un fichier depuis
le serveur vers votre ordinateur, lancez get fichier. Son nom n’est pas modifié. Vous pou-
vez aussi transférer un fichier depuis votre répertoire courant vers un répertoire du serveur
FTP avec la commande put. Cela ne fonctionne que si vous avez des droits en écriture sur le
répertoire distant. Sur un FTP anonyme, ces droits sont généralement limités à un seul
répertoire, par exemple /pub/incoming. On ferme une session FTP avec la commande quit
ou bye.
Avant de télécharger un fichier, vous devez passer en mode binaire. En mode texte, FTP interprète tous les
fichiers en tant que texte et tente de les convertir au format de l’ordinateur destinataire. Les fichiers binaires
ne nécessitent pas une telle conversion. La plupart des serveurs FTP sont cependant configurés en mode
binaire par défaut.
Les lignes suivantes montrent le téléchargement du noyau Linux depuis un serveur FTP :
utilisateur$ cd ~/src
utilisateur$ ftp ftp.kernel.org
Connected to zeus-pub.kernel.org.
220 Welcome to ftp.kernel.org.
Name (ftp.kernel.org:michael): anonymous
331 Please specify the password.
Password: nom@monsite.fr
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub/linux/kernel/v2.6
250 Directory successfully changed.
ftp> get linux-2.6.25.tar.bz2
local: linux-2.6.25.tar.bz2 remote: linux-2.6.25.tar.bz2
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for linux-2.6.25.tar.bz2 (48601689
bytes).
226 File send OK.
48601689 bytes received in 26.85 secs (1767.6 kB/s)
ftp> quit
221 Goodbye.
Linux Livre Page 245 Mardi, 23. septembre 2008 1:05 13
Commandes FTP
? affiche une liste des commandes FTP
! permet d’exécuter des commandes shell
ascii passe en mode texte
binary passe en mode binaire
bye termine la session FTP
cd rep passe dans le répertoire indiqué
close ferme la connexion au serveur FTP
get fichier télécharge un fichier depuis le serveur vers l’ordinateur local
help commande affiche un court message d’aide sur la commande indiquée
lcd rep passe dans le répertoire indiqué sur l’ordinateur local
ls affiche le contenu du répertoire courant sur le serveur
lls affiche le contenu du répertoire courant sur l’ordinateur local
mget motif télécharge tous les fichiers de l’archive FTP dont le nom correspond au motif
open ouvre la connexion à un ordinateur distant
prompt active/désactive la confirmation du téléchargement de chaque fichier avec mget
put fichier transfère un fichier depuis le répertoire local vers le serveur FTP
quit quitte FTP
reget fichier relance le téléchargement d’un fichier déjà partiellement téléchargé
user permet une nouvelle connexion
Autres La commande ftp n’est pas très confortable à utiliser, mais il existe de nombreuses alter-
programmes
FTP natives :
• Navigateurs web et gestionnaires de fichiers. Ces derniers peuvent être utilisés pour
des téléchargements FTP. Certains programmes permettent même de transférer des
fichiers vers un serveur (par exemple, Nautilus et Konqueror).
• Clients FTP graphiques. Des programmes comme kbear (KDE) ou gftp (Gnome) sont
prévus pour les tâches FTP typiques. Ils fournissent des fonctions spéciales, comme des
signets, la gestion des mots de passe, le téléchargement en parallèle de plusieurs
fichiers, la synchronisation de dossiers, etc.
• ncftp. Cette alternative est également un client en mode texte, mais il est plus confortable à
utiliser.
• sftp. Ce programme est aussi minimaliste que ftp, mais nettement plus sûr. Cependant,
l’ordinateur distant doit faire fonctionner un serveur SSH et non FTP.
• wget, rsync, mirror et sitecopy. Ces commandes permettent de télécharger des arbores-
cences FTP entières.
Linux Livre Page 246 Mardi, 23. septembre 2008 1:05 13
246 LINUX
Si vous souhaitez utiliser FTP en étant identifié, de nombreux clients FTP comprennent la syntaxe :
ftp://utilisateur:motdepasse@serveur
Certains clients ne fonctionnent pas bien lorsqu’un pare-feu se trouve entre votre ordinateur et le serveur
FTP, ou lorsque vous êtes dans un réseau local connecté à Internet via une mascarade. Dans ce cas, passer
le client en mode passif résout souvent le problème. Il n’existe cependant pas de commande standard ;
vous devez lire la documentation de votre client. La plupart des clients reconnaissent une telle situation et acti-
vent automatiquement le mode passif.
wget
L’interactivité de la commande ftp rend l’automatisation des téléchargements peu pratique
(par exemple, dans un script). Elle est de toute façon peu flexible. On ne peut pas, par exem-
ple, reprendre un téléchargement là où il a été interrompu. La commande wget a été conçue
pour le téléchargement de gros fichiers et répertoires. Elle comprend les protocoles FTP,
HTTP et HTTPS. man wget fournit une référence de la syntaxe des principales options.
Exemples Sous sa forme la plus basique, wget télécharge simplement le fichier donné en argument :
utilisateur$ wget ftp://serveur.fr/nom.abc
Lorsque le téléchargement est, pour une raison ou une autre, interrompu, il peut être repris
avec l’option -c :
utilisateur$ wget -c ftp://serveur.fr/nom.abc
Il arrive qu’un téléchargement prenne plusieurs heures. Il est alors tentant de lancer le télé-
chargement pendant la nuit. La commande suivante s’assure que le fichier se trouve effec-
tivement sur l’ordinateur le lendemain matin. L’option -t 1000 essaie de relancer le
téléchargement jusqu’à 1 000 fois en cas de déconnexion. --retry-connrefused tente de
Linux Livre Page 247 Mardi, 23. septembre 2008 1:05 13
relancer la connexion même après une erreur connection refused. Cette option est pratique
lorsque le serveur de téléchargement est peu fiable et qu’il n’est indisponible que pour de
courtes durées.
utilisateur$ wget -t 1000 --retry-connrefused http://serveur/nom.iso
La commande suivante télécharge tous les fichiers importants afin de pouvoir lire la page
web hors ligne. Voici ce que signifient les options :
• -p charge les fichiers CSS et les images.
• -k modifie en arrière-plan les liens des fichiers pour qu’ils pointent vers des fichiers
locaux.
• -E ajoute à tous les fichiers de script téléchargés (ASP, PHP, etc.) l’extension .html.
• -H suit également les liens vers les sites web externes.
utilisateur$ wget -p -k -E -H http://siteweb.fr/page.html
Lorsqu’on désire lire un site web complet en ligne, l’option -r (téléchargement récursif),
éventuellement limitée à quelques niveaux avec l’option -l, est très pratique :
utilisateur$ wget -r -l 4 -p -E -k http://siteweb.fr
rsync
Nous avons déjà présenté la commande rsync au Chapitre 13. Elle permet de copier et de
synchroniser des arborescences complètes de répertoires. Elle présente un certain nombre
d’avantages par rapport à la commande cp :
• rsync gère particulièrement bien la synchronisation de répertoires distants, y compris
lorsque la liaison est lente. Elle ne transfère que les données modifiées.
• Elle peut, pour sécuriser les transferts, travailler avec SSH.
• Elle fournit d’innombrables options qui vont au-delà des possibilités offertes par cp. On
peut, par exemple, supprimer tous les fichiers du répertoire cible qui n’existent plus
dans le répertoire source.
Utilisation Pour que rsync puisse synchroniser deux ordinateurs en réseau, elle doit être installée sur
dans un réseau
les deux ordinateurs. Les deux instances de rsync peuvent communiquer de deux manières
différentes :
• Elles peuvent utiliser un shell, le plus souvent SSH. Cela présente l’avantage de chiffrer
le transfert des données. Pour que cela fonctionne, il faut que SSH soit installé sur les
deux ordinateurs. De plus, il faut que l’ordinateur distant fasse fonctionner un serveur
SSH pour permettre les connexions en SSH.
• rsync peut aussi fonctionner en tant que démon sur l’ordinateur distant. Le serveur
rsync est configuré dans le fichier /etc/rsyncd.conf (voir la page de manuel correspon-
dante) et lancé par un script InitV (généralement /etc/init.d/rsyncd). Nous ne traiterons
pas ici de ce scénario client/serveur.
Linux Livre Page 248 Mardi, 23. septembre 2008 1:05 13
248 LINUX
Exemples Tous les exemples supposent que rsync communique par SSH. Pour cela, vous devez passer
l’option -e ssh à la commande rsync. Avant de commencer, assurez-vous que vous pouvez
vous connecter en SSH à l’ordinateur distant.
Pour les connexions réseau lentes, vous pouvez utiliser l’option -z. Celle-ci compresse les
échanges de données de rsync. Cela induit cependant une charge processeur plus impor-
tante sur les deux ordinateurs et ne garantit donc pas une synchronisation plus rapide.
Les répertoires source et cible doivent être indiqués avec la syntaxe hote:répertoire ou
utilisateur@hote:repertoire, si l’utilisateur courant n’est pas celui qu’il faut utiliser.
La commande suivante synchronise le répertoire rep1 du répertoire personnel de utilisa-
teur sur l’ordinateur saturne.sol, et le répertoire rep2 sur mars.sol. La saisie du mot de
passe est gérée par SSH (mot de passe de utilisateur sur mars.sol).
utilisateur@saturne.sol$ rsync -e ssh -az rep1/ mars.sol:rep2/
utilisateur@mars.sol’s password: xxxxx
rsync peut aussi télécharger des fichiers depuis un ordinateur distant sur l’ordinateur local.
Cette commande synchronise les répertoires dans l’autre sens :
utilisateur@saturne.sol$ rsync -e ssh -az mars.sol:rep2/ rep3/
utilisateur@mars.sol’s password: xxxxx
Lorsque rsync est appelée par un script de sauvegarde, la saisie interactive du mot de passe
peut s’avérer gênante. Nous avons vu à la section 16.2 comment se connecter en SSH sans
mot de passe ; il suffit d’adapter ces solutions au compte servant à la sauvegarde.
BitTorrent
BitTorrent est un protocole pour télécharger efficacement des fichiers volumineux désirés
par de nombreux utilisateurs. L’idée de base est simple : les données ne sont pas téléchar-
gées depuis un serveur central, mais depuis tous les ordinateurs du réseau qui disposent
d’au moins une partie du fichier. Cela signifie aussi que, lorsque vous téléchargez un fichier via
BitTorrent, vous le mettez à disposition de tous les autres utilisateurs de BitTorrent, au moins
pendant le temps de votre téléchargement (et, idéalement, une fois ce dernier terminé).
Dans le cadre de Linux, BitTorrent est généralement utilisé pour distribuer des images de
DVD de distributions. Lorsqu’une nouvelle version sort, des milliers d’utilisateurs cherchent
à télécharger ce même fichier. Cela surcharge bien souvent les serveurs FTP ou HTTP. BitTorrent
permet d’augmenter sensiblement la vitesse de téléchargement dans ce type de cas.
Fichiers Les téléchargements BitTorrent sont propagés par le biais de fichiers .torrent. Il s’agit de
.torrent
fichiers binaires relativement petits, contenant entre autres des sommes de contrôle pour
d’innombrables morceaux de fichiers. Cela permet de ne pas devoir télécharger les données
du fichier de manière séquentielle, mais en fonction des morceaux disponibles sur le réseau
et en parallèle.
Clients Les clients BitTorrent sont des programmes qui gèrent les téléchargements et mettent à dis-
BitTorrent
position les fichiers téléchargés sur le réseau BitTorrent. Les clients populaires comprennent
BitTorrent, KTorrent (KDE) ou Transmission (Gnome, à partir de la version 2.22). KTorrent
montre les parties du fichier déjà téléchargées (voir Figure 16.1). Pour lancer des téléchar-
gements dans une console, qu’il s’agisse d’une interface interactive ou d’un programme
Linux Livre Page 249 Mardi, 23. septembre 2008 1:05 13
Figure 16.1
Téléchargements avec
KTorrent.
Linux Livre Page 250 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 251 Mardi, 23. septembre 2008 1:05 13
Vim
17
Ce chapitre présente l’éditeur Vi, et plus particulièrement son implémentation libre Vim (Vi
Improved, Vi amélioré). Faisons tout de même une remarque préliminaire qui s’applique éga-
lement au chapitre suivant sur Emacs et XEmacs : ils ont en commun d’être relativement dif-
ficiles à maîtriser. Seuls les utilisateurs qui éditent beaucoup de texte, code ou documents
HTML y trouveront leur intérêt − pour eux, un éditeur de texte est un outil courant et indis-
pensable. Les éditeurs Vim, Emacs et XEmacs fournissent des possibilités presque infinies.
Autrement dit, ce chapitre s’adresse aux utilisateurs pour lesquels un contrôle total sur la
configuration et la programmation de l’éditeur est plus important qu’une jolie interface uti-
lisateur. Quiconque modifie occasionnellement un fichier de configuration et se contente
d’OpenOffice.org, de Firefox et d’autres programmes bureautiques trouvera sans doute
Kate (KDE), Gedit (Gnome) ou un autre petit éditeur pour la console largement suffisants.
Reste la sempiternelle question : Vi ou Emacs/XEmacs ? Les deux programmes font partie
des fondations de l’histoire d’Unix/Linux. Ils proposent d’innombrables fonctions spécia-
les, comme la coloration syntaxique pour de nombreux langages de programmation et types
de documents, ou la recherche avec des expressions rationnelles. Cette question entraîne
souvent d’interminables discussions entre les partisans des deux camps et ne peut pas être
tranchée de façon objective.
À titre personnel, les éditeurs Emacs/XEmacs me paraissent plus intuitifs et plus simples à
utiliser. Sous Vi, le passage du mode standard au mode d’édition peut mener à une confu-
sion certaine, surtout au début. Mais Vi et les éditeurs de la même famille sont un standard
de fait sous Unix/Linux. Il demande moins de ressources et est souvent présent sur les sys-
tèmes de secours minimaux (sur lesquels il n’y a plus de place pour Emacs). Mieux vaut de
toute façon connaître les fonctions de base des deux éditeurs.
L’éditeur Vi original est un programme commercial et n’est pas disponible sous Linux. Vim
est un programme libre, compatible avec Vi et qui fournit de nombreuses améliorations et
extensions. On le lance généralement grâce à vi ou vim.
Version 7 Ce chapitre se base sur la version 7 de Vim. Les distributions Linux plus anciennes fournis-
sent encore une version 6.n. Comme la plupart des nouveautés de la version 7 sont des fonc-
tions avancées, la grande majorité des informations de ce chapitre est également valable
pour les versions plus anciennes de Vim. La seule exception importante est la fenêtre à
onglets, qui n’est disponible que pour la version 7.
Vim en mode On lance généralement Vim dans une console texte ou une fenêtre de terminal. Si vous dési-
graphique
rez un menu et des barres de défilement décentes, vous pouvez essayer gvim (voir
Figure 17.1). Cette variante graphique doit généralement être installée en plus ; le paquetage
s’appelle vim-X11.
Liens Ce chapitre n’est qu’une rapide présentation de Vim. Le tutoriel vimtutor est très utile pour
les débutants. Cette commande lance vim avec un texte d’aide en français, qui contient une
introduction et de nombreux exemples.
Linux Livre Page 252 Mardi, 23. septembre 2008 1:05 13
252 LINUX
Figure 17.1
La variante graphique
de l’éditeur Vim.
Les liens suivants pointent vers diverses ressources intéressantes : http://www.vim.org/, site
web de Vim ; http://www.eng.hawaii.edu/Tutor/vi.html, tutoriel ; http://vimdoc.source-
forge.net/vimfaq.html, FAQ ; http://tnerual.eriogerg.free.fr/vim.html, résumé des principaux
raccourcis ; http://www.truth.sk/vim/vimbook-OPL.pdf, livre de 500 pages sur Vim en PDF.
Le principal développeur de Vim, Bram Moolenaar, le décrit comme du "charityware" : Vim est gratuit sous
une licence GPL. Les utilisateurs réguliers sont cependant priés d’envoyer des remerciements sous forme de
dons destinés à une association d’aide aux enfants en Ouganda. Vous trouverez plus d’informations à ce
sujet dans Vim avec la commande Esc :help uganda Entrée.
Lorsqu’on passe du mode insertion au mode normal, le curseur se déplace d’un caractère vers la gau-
che. Ce comportement est décrit dans la FAQ de Vim et ne peut pas être modifié. Pour lancer une seule
commande sans quitter le mode insertion, ni modifier la position du curseur, vous pouvez la lancer avec
Ctrl+O.
Linux Livre Page 253 Mardi, 23. septembre 2008 1:05 13
VIM 253
Supprimer du Dans le mode insertion, vous pouvez supprimer des caractères isolés avec Suppr et Retour
texte
Arrière. Pour supprimer des mots, des lignes ou des paragraphes, vous devez passer en mode
normal avec Échap. Dans ce mode, D+W supprime un mot et D+D une ligne complète. Si vous
préfixez ces commandes d’un nombre, la commande de suppression est répétée le nombre de
fois indiqué. Par exemple, 5+D+D supprime 5 lignes. . répète la dernière commande exécutée.
P (paste, coller) colle le texte supprimé à l’emplacement du curseur. Maj+P l’insère avant la
position courante du curseur. U (undo, annuler) annule la dernière modification. Ctrl+R
rétablit la modification annulée. Vim 6 ne pouvait annuler que la dernière modification et un
nouvel appui sur U la rétablissait.
Enregistrer et Pour enregistrer le fichier modifié, passez en mode normal avec Échap et tapez la com-
quitter
mande :w Entrée. :q Entrée ferme l’éditeur si tous les fichiers ouverts sont enregistrés. :q!
Entrée permet de le fermer même si les dernières modifications n’ont pas été enregistrées.
:wq Entrée combine l’enregistrement et la fin du programme.
Commandes élémentaires
Changement de mode
I active le mode insertion
A active le mode insertion ; la saisie commence au caractère suivant
q active le mode normal ou interrompt la commande courante
Aide
Vim dispose d’une aide en ligne plutôt complète (mais uniquement en anglais). Pour affi-
cher la page de démarrage de l’aide, tapez F1 dans n’importe quel mode. Vous pouvez aussi
saisir :help en mode normal ou :help thème. Pour savoir quels thèmes contiennent le mot
clé abc, saisissez :help abc Ctrl+D.
Linux Livre Page 254 Mardi, 23. septembre 2008 1:05 13
254 LINUX
Fenêtre d’aide La fenêtre d’aide s’affiche dans sa propre zone dans Vim. On appelle cette partie une fenêtre
− il ne s’agit cependant pas d’une fenêtre indépendante au sens du système graphique de
Linux. Vous pouvez la fermer avec :q. Vous pouvez aussi la laisser ouverte et continuer à
travailler sur votre texte. Vous pouvez changer de fenêtre active avec Ctrl+W+W.
Navigation Dans l’aide, les liens et les autres thèmes sont mis en évidence (par exemple, dans une autre
dans l’aide
couleur ou entourés de caractères |). Pour passer à un thème, placez le curseur sur le mot clé
et tapez Ctrl+]. Si la souris est activée, il suffit de double-cliquer sur le thème pour le consulter.
Ctrl+T permet de revenir à la page précédente.
Déplacement du curseur
En mode normal et en mode insertion
Touches de direction comportement habituel
Une particularité de Vim est que la touche de déplacement vers la gauche au début d’une
ligne ne déplace pas le curseur à la fin de la ligne précédente. De même, la touche de dépla-
cement vers la droite en fin de ligne ne passe pas à la ligne suivante. Pour activer ce compor-
tement, lancez en mode normal la commande :set whichwrap=b,s,<,>,[,]. Vous pouvez
aussi copier cette commande dans ~/.vimrc.
Linux Livre Page 255 Mardi, 23. septembre 2008 1:05 13
VIM 255
Enregistrer la M lettre enregistre la position courante du curseur et ’ lettre permet de le déplacer à la position
position du
curseur enregistrée.
Vim enregistre automatiquement la position du curseur lorsque celui-ci est de nouveau
déplacé. ’ ’ permet de retourner à cette position. ’ ’ une seconde fois permet de revenir à la
dernière position. ’ [ et ’ ] déplacent le curseur respectivement au début et à la fin de la der-
nière section modifiée.
Où suis-je ? En mode insertion, Vim affiche à droite de la ligne d’état la ligne et la colonne courantes,
ainsi qu’un pourcentage qui indique dans quelle section du texte vous vous trouvez − par
exemple, 92 % signifie que vous êtes dans les dix derniers pour cent). Si vous êtes perdu,
Ctrl+G affiche dans la ligne d’état le nom du fichier, l’état (par exemple "Modifié"), le nombre
total de lignes et la position relative du curseur dans le texte.
Supprimer du texte
Uniquement en mode insertion
DN comportement habituel
En mode normal
X supprime le caractère sous le curseur ou le texte marqué
s+X supprime le caractère précédant le curseur
DD supprime la ligne courante
D commande de curseur supprime le texte correspondant à la commande de déplacement du
curseur
D$ supprime jusqu’à la fin de la ligne
DB supprime le mot précédent
DW supprime le mot suivant
Le texte est en fait transféré dans un registre de copie. Le dernier texte supprimé peut être
recopié sous le curseur avec Maj+P et après la position du curseur avec P.
Les commandes C (change, changer) sont une manière un peu particulière de supprimer du
texte et de le remplacer par du nouveau texte. C+W supprime le mot courant et active le
mode insertion. Il suffit alors de saisir le même mot et de terminer la saisie avec Échap. C
fonctionne de la même manière pour les autres touches du curseur.
Linux Livre Page 256 Mardi, 23. septembre 2008 1:05 13
256 LINUX
Copier du Vous pouvez aussi copier du texte dans le registre de copie sans le supprimer. Le tableau sui-
texte
vant résume les commandes correspondantes (qui sont toutes spécifiques au mode normal).
Marquer du Certaines commandes supposent qu’une zone du texte soit marquée. Il existe trois modes de
texte
marquage que vous pouvez activer (au point de départ du marquage) et désactiver avec V,
Maj+V et Ctrl+V. Lorsque l’un de ces modes est actif, la ligne d’état de Vim contient le texte
-- VISUEL --. Vous pouvez ensuite déplacer le curseur à la fin de la zone ou étendre le mar-
quage grâce à des commandes spéciales qui ne s’appliquent qu’à l’intérieur d’un mode de
marquage. La zone marquée est mise en évidence par un mode vidéo inverse ou des couleurs.
Marquer du texte
V (dés)active le mode de marquage par caractère
s+V (dés)active le mode de marquage par ligne
c+V (dés)active le mode de marquage par bloc
AW étend le marquage d’un mot
AS étend le marquage d’une phrase
AP étend le marquage d’un paragraphe
AB étend le marquage d’un niveau de parenthèses
A s+B étend le marquage d’un niveau d’accolades
GV rétablit le marquage du dernier texte marqué
O échange la position du curseur entre le début et la fin du marquage
Tant que le mode de marquage est actif, plusieurs commandes sont à votre disposition pour
modifier le texte en question. Le tableau suivant en présente quelques exemples.
VIM 257
Indenter des Lorsqu’on édite du code, il est important de l’indenter correctement. Les commandes élé-
lignes
mentaires sont > > et < <. Elles déplacent la ligne actuelle d’une tabulation, dans un sens ou
dans l’autre. Lorsque plusieurs lignes sont marquées, vous pouvez aussi modifier un bloc
complet. Il suffit alors de taper une seule fois < ou >. :set shiftwidth=n modifie la taille des
tabulations (normalement huit caractères).
Vim peut aussi indenter automatiquement les lignes pendant la saisie. Il faut pour cela acti-
ver un mode d’indentation, par exemple avec :set cindent. Les fonctions de base sont les
suivantes :
• autoindent indente la ligne suivante comme la ligne précédente.
• smartindent fonctionne comme autoindent, mais gère également les accolades. Pour
que Vim reconnaisse correctement les accolades fermantes, elles doivent être saisies au
début d’une nouvelle ligne. La taille de l’indentation après les accolades (normalement
huit caractères) peut être modifiée avec l’option shiftwidth. Le texte précédemment
marqué peut être réindenté avec =.
• cident fonctionne comme smartindent, mais reconnaît également diverses structures de
code C et C++. Le mécanisme d’indentation peut alors être modifié via différentes
options (voir :help C-indenting).
Texte continu Vim est préconfiguré de manière que la composition du code et la modification de fichiers
de configuration fonctionnent bien. C’est pour cela qu’il ne coupe pas automatiquement les
lignes − vous devez passer à la ligne avec Entrée. Vous pouvez cependant aussi l’utiliser
pour composer des textes, par exemple des courriers électroniques. Le tableau suivant
résume quelques commandes et options pour l’édition de texte continu.
258 LINUX
Casse Par défaut, Vim prend en compte la casse lors d’une recherche. Si ce n’est pas le comporte-
ment que vous désirez, préfixez le motif de recherche avec /c (ne fonctionne que pour cette
recherche) ou lancez :set ignorecase (s’applique à toutes les recherches futures).
Recherche :set incsearch active la recherche incrémentale. Vim déplace le curseur pendant la saisie
incrémentale
de / terme au premier emplacement correspondant. Entrée termine la recherche et Échap
l’interrompt. Après la recherche, toutes les occurrences restent marquées dans le texte
jusqu’à la recherche suivante, ou jusqu’à l’exécution de :nohlsearch.
Chercher et Pour remplacer toutes les occurrences du texte abc par efg sans confirmation, lancez la
remplacer
commande :%s/abc/efg/g en mode normal. ’ ’ permet de revenir au début de la recher-
che. Le tableau suivant résume quelques variantes de la commande chercher/remplacer.
Lorsque Vim demande une confirmation, vous pouvez répondre Y ou N pour chaque
occurrence, afin d’indiquer si le texte doit effectivement être remplacé ou non. Q inter-
rompt l’opération et A remplace toutes les occurrences suivantes. Dans l’expression de
remplacement, vous pouvez faire référence au nième atome du motif de recherche avec
\n. L’aide en ligne :help substitute présente des astuces supplémentaires et de nom-
breux exemples.
Chercher et remplacer
: %s/abc/efg/g remplace toutes les occurrences de abc par efg sans confirmation
: %s/abc/efg/gc remplace toutes les occurrences de abc par efg avec confirmation
: %s/abc/efg/gi remplace sans prendre en compte la casse
Linux Livre Page 259 Mardi, 23. septembre 2008 1:05 13
VIM 259
Figure 17.2
Trois fichiers dans une
fenêtre à trois onglets.
Charger un Vous pouvez charger un nouveau fichier grâce à :new fichier si vous travaillez avec des
nouveau
fichier fenêtres, ou :tabnew fichier si vous travaillez avec des onglets.
Linux Livre Page 260 Mardi, 23. septembre 2008 1:05 13
260 LINUX
Vous pouvez indiquer dès le démarrage du programme plusieurs fichiers, par exemple avec
vim fichier1 fichier2 fichier3. Par défaut, le premier s’affiche et les autres sont chargés
dans un tampon non visible. Si vous désirez ouvrir chaque fichier dans une fenêtre ou un
onglet, vous devez passer respectivement l’option -o ou -p.
Le tableau suivant résume les principales commandes pour charger et enregistrer des
fichiers, passer entre des fenêtres ou des onglets, etc.
VIM 261
Créer des Par défaut, Vim ne crée pas de sauvegarde à l’enregistrement (pas de copie du fichier origi-
sauvegardes
nal). Si vous souhaitez activer ce comportement, lancez en mode normal :set backup. La
sauvegarde est nommée anciennom~. Pour activer les sauvegardes à un niveau général, ajoutez
set backup dans ~/.vimrc.
Activer la Lorsque vous utilisez Vim dans une console texte ou une fenêtre de terminal, la gestion
souris
de la souris est limitée à son fonctionnement sous X : vous pouvez copier du texte et le coller
à la position courante du curseur, mais vous ne pouvez pas par exemple repositionner le
curseur.
Pour que la souris soit plus utile sous Vim, vous pouvez utiliser la version graphique, gvim,
ou lancer en mode standard la commande :set mouse=a. Cela permet de modifier la posi-
tion courante du curseur avec un clic de souris, de choisir la fenêtre Vim active, d’utiliser la
molette de la souris, etc.
Ce mode a cependant un inconvénient : le bouton du milieu ne colle que le dernier texte
supprimé dans Vim. On ne peut plus copier de texte entre Vim et les autres programmes
avec ce bouton. On peut cependant appuyer en même temps sur Maj, ce qui permet de réta-
blir le comportement habituel. Attention cependant : il faut que le mode Insertion soit actif,
sans quoi les caractères copiés par la souris sont interprétés comme des commandes, ce qui
peut éventuellement mal tourner.
Insérer des Pour que Vim insère des espaces à la place des tabulations, lancez la commande :set
espaces à la
place des expandtab ou copiez cette directive dans ~/.vimrc. Pour transformer toutes les tabulations
tabulations par le nombre correspondant d’espaces dans un fichier modifié précédemment, lancez
:retab. Pour effectuer l’opération inverse, utilisez les commandes :set unexpandtab, puis
:retab!.
Définir des Vous savez déjà que . répète la dernière commande. Pour répéter plusieurs fois une suite de
macros
commandes, vous pouvez définir une macro. Passez pour cela dans le mode Macro avec Q
et un caractère, qui indique le nom de la macro (plus exactement, le nom du registre dans
lequel se trouve la macro). Vous pourrez alors lancer la macro avec @ nom_de_la_macro − les
macros ne sont pas enregistrées lorsque vous quittez Vim.
Par exemple, la suite de touches suivante définit la macro a qui ajoute le caractère " au début
et à la fin d’un mot :
Q A B I " Échap E A " Échap Q
Lorsque le curseur se trouve dans un mot, vous pouvez maintenant taper @ A pour l’entou-
rer de guillemets. @ @ répète la dernière commande sans que vous deviez vous souvenir de
son nom de macro ou de registre.
Lancer des Pour lancer une commande sans quitter Vim, lancez dans le mode normal :!nom de la com-
commandes
Linux mande, par exemple :!ls pour obtenir une liste des fichiers du répertoire courant. Vim affiche le
résultat de la commande et Entrée permet de retourner à l’éditeur.
Pour lancer plusieurs commandes, vous pouvez lancer avec :sh un nouvel interpréteur de
commandes. Lorsque vous tapez Ctrl+D, vous revenez à l’éditeur.
Linux Livre Page 262 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 263 Mardi, 23. septembre 2008 1:05 13
Emacs et XEmacs
18
Il serait réducteur de décrire Emacs comme un simple éditeur. Il permet certes d’éditer du texte,
mais c’est aussi un environnement de développement complet pour les programmeurs, doté
d’un client de courrier électronique, d’un lecteur Usenet, etc. Pour certains utilisateurs, Emacs
est comparable à un système d’exploitation dans lequel toutes les fonctions du travail quoti-
dien sont rassemblées. Une fois que vous serez habitué à Emacs, vous ne pourrez plus utiliser
d’autres éditeurs. J’ai d’ailleurs écrit cet ouvrage entièrement avec Emacs...
Mais il possède aussi ses parts d’ombre. L’utilisation d’Emacs peut sembler à première vue
effrayante. Elle regorge de séquences Ctrl+ et Alt+ pour appeler un nombre incalculable de
commandes. Une blague courante, mais pas forcément injustifiée, est qu’Emacs signifie en
réalité Escape Meta Alt Control Shift (Échap Méta Alt Contrôle Majuscule). L’interface utilisa-
teur (menus, barres de boutons) paraît obsolète ; la localisation en français est globalement
inexistante ; modifier la configuration (par exemple, l’utilisation d’une autre police) s’avère
laborieux… En résumé, Emacs est un éditeur pour les professionnels qui sont prêts à investir
du temps de formation et qui ne s’arrêtent pas à l’aspect extérieur.
Figure 18.1
GNU Emacs.
Travailler avec GNU Emacs ou XEmacs est essentiellement une affaire de goût. Le pro-
gramme est lancé avec les commandes emacs ou xemacs. Les deux programmes sont très sta-
bles et contiennent de nombreuses extensions et une documentation très riche. XEmacs
utilise plus de place sur le disque dur et nettement plus de mémoire. À titre personnel, je
Linux Livre Page 264 Mardi, 23. septembre 2008 1:05 13
264 LINUX
préfère GNU Emacs, car XEmacs m’a déjà posé plusieurs problèmes mystérieux alors que
j’éditais des fichiers Unicode.
Figure 18.2
Xemacs.
En plus de ces deux versions d’Emacs, il existe quelques variantes plus petites : jed, jmacs,
jove et zile sont globalement des miniversions très utilisables. Leur principal avantage est
qu’elles sont nettement moins gourmandes en ressources, ce qui en fait des applications
idéales pour les systèmes d’urgence ou des ordinateurs plus anciens avec des processeurs
lents et peu de mémoire.
Liens Vous trouverez plus d’informations sur GNU Emacs et XEmacs sur Internet :
http://www.gnu.org/software/emacs/emacs.html site web officiel de GNU Emacs
http://www.xemacs.org site web officiel de XEmacs
http://refcards.com/refcard/gnu-emacs-gildeas raccourcis clavier de GNU Emacs
http://refcards.com/refcard/xemacs-wingb raccourcis clavier de XEmacs
http://www.emacswiki.org/ wiki multilingue sur Emacs
Copies de Emacs crée lors de l’enregistrement une copie de sauvegarde, nommée nom~, qui contient le
sauvegarde
texte original. De plus, il enregistre à intervalles réguliers le contenu du texte dans le fichier
#nom#. Vous pouvez reprendre ce fichier lorsque votre travail est interrompu par un orage
ou lorsque vous n’avez pas pu fermer proprement Emacs pour une raison ou une autre.
Les fichiers # sont enregistrés dans le jeu de caractères interne d’Emacs et non dans celui de
votre fichier. Vous devez donc, pour récupérer le fichier, utiliser la commande Alt+X+reco-
ver-session. Vous pouvez aussi charger le fichier et modifier son jeu de caractères avec
Ctrl+X+Entrée+F+jeu de caractères.
Commandes élémentaires
Vous pouvez déplacer le curseur avec les touches de direction et PgPréc/PgSuiv. Si cela ne
fonctionne pas − par exemple, si Emacs est démarré dans un terminal mal configuré −, utilisez
les commandes suivantes :
Vous pouvez saisir du texte à n’importe quel endroit. Suppr et Retour Arrière permettent de
supprimer un caractère. Vous pouvez aussi utiliser Ctrl+D pour supprimer un caractère à la
position du curseur.
Ctrl+X+U et Ctrl+_ permettent d’annuler les dernières modifications. Cette fonction d’annulation fonc-
tionne pour des commandes d’une complexité arbitraire et est pratiquement illimitée.
Linux Livre Page 266 Mardi, 23. septembre 2008 1:05 13
266 LINUX
Lorsque vous faites une erreur dans la saisie d’une commande, vous pouvez annuler la
commande avec Ctrl+G. C’est particulièrement pratique lorsque vous appuyez par erreur
sur Échap.
Système d’aide
Emacs fournit de nombreuses commandes pour appeler le système d’aide. La plus importante
pour commencer est F1+T (tutoriel). Ctrl+X+B+Entrée permet de revenir au texte original.
Lorsque plusieurs sections de texte (fenêtres) restent ouvertes après avoir lancé l’aide, vous
pouvez déplacer le curseur dans la fenêtre suivante avec Ctrl+X+O. Ctrl+X+0 (zéro) ferme la
fenêtre courante, Ctrl+X+1 ferme toutes les fenêtres à part la fenêtre courante. Ces trois com-
mandes permettent de passer de la fenêtre d’aide à la fenêtre de texte et vice versa, puis de
fermer la fenêtre d’aide lorsque vous avez terminé.
Si en revanche le texte d’aide s’affiche dans la fenêtre entière, vous pouvez revenir à votre
propre texte avec Ctrl+X+B+Entrée. Emacs gère plusieurs textes (par exemple, votre texte et
le texte d’aide) par le biais de tampons, dont nous parlerons plus tard.
La principale source d’informations à propos d’Emacs est le système info interne, qui fait
office de manuel officiel. Certaines distributions le fournissent au format HTML pour qu’il
soit plus facile à lire.
Mode info Le système d’aide d’Emacs repose sur le format GNU Info. Pour lire ce texte, Emacs active le
mode info. Ce dernier fournit quelques raccourcis clavier supplémentaires. Vous pouvez
aussi suivre les liens ou les éléments de menus avec le bouton du milieu de la souris. L permet
de revenir à la dernière page vue.
18.2 Bases
Modes Emacs connaît plusieurs modes d’édition, dans lesquels sont définies des commandes sup-
d’édition
plémentaires pour éditer des fichiers spécifiques. Il faut différencier les modes majeurs et
mineurs. Un seul mode majeur peut être actif à la fois, tandis que plusieurs modes mineurs
peuvent coexister.
Les modes majeurs contiennent, entre autres, des modes pour presque tous les langages de
programmation (C, C++, Java, etc.), ainsi que le mode LaTeX pour modifier des fichiers
Linux Livre Page 267 Mardi, 23. septembre 2008 1:05 13
268 LINUX
Options de Lorsque vous démarrez Emacs sous X, vous pouvez utiliser de nombreux paramètres pour
démarrage
les couleurs, le jeu de caractères, etc. Le tableau ci-dessous recense les principales options.
La page de manuel d’Emacs en offre une référence complète.
Déplacement du curseur
a+F / a+B déplace le curseur d’un mot vers l’avant et vers l’arrière
c+A / c+E place le curseur au début ou à la fin de la ligne
a+A / a+E place le curseur au début ou à la fin du paragraphe
c+V / a+V déplace le curseur d’une page vers le bas ou vers le haut
a+< / a+> déplace le curseur au début ou à la fin d’un texte
c+L déplace le texte pour que le curseur se trouve au milieu de l’écran
a+G n e place le curseur à la ligne n
Déplacements Emacs est capable de répéter plusieurs fois une commande. Vous devez d’abord saisir
multiples du
curseur Alt+n, où n est un nombre arbitraire. Les chiffres doivent être saisis dans le clavier alphanu-
mérique, et non dans le pavé numérique à droite du clavier. Alt doit être pressé pendant
toute la saisie de votre nombre. Pour finir, saisissez la commande. Vous pouvez, par exemple,
descendre de plusieurs pages dans un texte avec Alt+n+PgSuiv. Ce comportement peut
aussi être utilisé pour saisir du texte. Par exemple, Alt+60+– dessine une ligne.
Où suis-je ? Pour savoir sur quelle ligne vous vous trouvez, saisissez Alt+X+what-line+Entrée. Emacs
affiche alors le numéro de ligne courant dans la dernière ligne de l’écran. Vous pouvez aussi affi-
cher ce numéro de façon permanente avec Alt+X+line-number-mode+Entrée. Cependant,
cela ne fonctionne pas pour les textes très longs (de plusieurs mégaoctets). La colonne s’affi-
che de la même manière en activant column-number-mode.
Enregistrer la Il est souvent souhaitable, lorsqu’on travaille sur un texte long, de pouvoir passer rapide-
position du
curseur dans ment d’un emplacement à un autre du texte. Pour cela, on peut enregistrer la position cou-
des registres rante du curseur dans un registre. Ce dernier est un emplacement de sauvegarde désigné
Linux Livre Page 269 Mardi, 23. septembre 2008 1:05 13
par un caractère (lettre ou chiffre). Pour revenir au point enregistré, indiquez le nom du
registre. Notez cependant que les registres ne sont pas enregistrés lorsqu’on quitte Emacs.
Lorsque vous exécutez plusieurs fois l’une de ces commandes, Ctrl+Y colle l’ensemble du
texte supprimé par cette série de commandes. Ctrl+Y peut être lancé plusieurs fois et à des
endroits arbitraires du texte. Cette commande permet de coller le texte précédemment supprimé
à un autre endroit.
Les commandes indiquées sont peu souples, car la quantité de texte à supprimer est fixée.
Pour supprimer une section complète, vous devez d’abord la marquer. Pour cela, tapez
Ctrl+Espace au début ou à la fin de la section à marquer. Ce marquage reste invisible, mais
Emacs affiche le message Mark set. La zone marquée se trouve entre le point de marquage
et la position courante du curseur de texte.
Si vous ne vous habituez pas au marquage avec Ctrl+Espace, vous pouvez, sous GNU Emacs,
activer le marquage habituel de Windows avec Maj. Pour cela, lancez la commande Alt+X+pc-
selection-mode. Sous XEmacs, le mode correspondant est automatiquement activé.
Marquer du texte
c+z place une marque (invisible)
c+W supprime le texte entre la marque et le curseur
c+X c+X échange la position du curseur et de la marque
Linux Livre Page 270 Mardi, 23. septembre 2008 1:05 13
270 LINUX
Casse
a+C passe la lettre sous le curseur en majuscule, et toutes les lettres suivantes du mot
en minuscules
a+L passe toutes les lettres du mot à partir du curseur en minuscules
a+U passe toutes les lettres du mot à partir du curseur en majuscules
a+- a+C passe la première lettre du mot en majuscule, le reste en minuscules ; si le curseur
est au début d’un mot, s’applique au mot précédent
a+- a+L passe toutes les lettres du mot jusqu’au curseur en minuscules ; si le curseur est
au début d’un mot, s’applique au mot précédent
a+- a+U passe toutes les lettres du mot jusqu’au curseur en majuscules ; si le curseur est
au début d’un mot, s’applique au mot précédent
c+X c+L passe la zone entre la marque et le curseur en minuscules
c+X c+U passe la zone entre la marque et le curseur en majuscules
Fautes de Une faute de frappe fréquente est l’échange de deux lettres. Ctrl+T permet de corriger ce
frappe
type d’erreur. Le curseur doit se trouver sur la deuxième lettre.
Alt+T permet, de la même manière, d’échanger deux mots. Lorsque le curseur se trouve au
début d’un mot, celui-ci est échangé avec le mot précédent. Si le curseur est n’importe où
ailleurs dans le mot, alors il est échangé avec le mot suivant. L’appui successif de plusieurs
Alt+T éloigne le premier mot du second.
Ctrl+X Ctrl+T permet d’échanger la ligne courante avec la ligne précédente. L’exécution succes-
sive de plusieurs de ces raccourcis éloigne la première ligne de plus en plus vers le bas.
Tabulations
Par défaut, lorsqu’on édite un texte ASCII normal, Tab insère un caractère tabulation. Les
tabulations ne sont pas visibles. Pour savoir s’il s’agit d’une tabulation ou de plusieurs espa-
ces, observez le comportement du curseur : lorsque celui-ci se déplace par "sauts", c’est une
tabulation.
Linux Livre Page 271 Mardi, 23. septembre 2008 1:05 13
En fonction du texte modifié (par exemple un fichier *.tex), (X)Emacs passe automatique-
ment dans le mode d’édition correspondant. Certains modes redéfinissent quelques tou-
ches. C’est particulièrement vrai pour Tab. En mode C, si on appuie sur cette touche, elle
indente la ligne en fonction de la structure du programme. En mode LaTeX, elle n’a aucun
effet. Lorsque Tab ne se comporte pas comme vous le désirez, le mode d’édition est proba-
blement en cause. Il existe cependant différentes possibilités pour insérer des tabulations :
• Ctrl+Q+Tab permet d’insérer une tabulation, indépendamment du mode.
• Alt+I permet, indépendamment du mode d’édition, d’insérer un caractère tabulation ou
plusieurs espaces (cela se règle dans indent-tab-mode).
• Alt+X+fundamental-mode permet de désactiver le mode d’édition courant. Tab fonc-
tionne alors comme dans tout autre programme, mais vous perdez aussi toutes les fonctions
associées au mode d’édition.
Taille des Par défaut, les tabulations ont une largeur de huit caractères. Alt+X+set-variable tab-width
tabulations
permet de modifier cette valeur par défaut. Si vous travaillez toujours avec la même taille de
tabulations, vous pouvez modifier ce paramètre dans le fichier de configuration ~/.emacs.
Passage entre Certains modes d’Emacs remplacent automatiquement les longues suites d’espaces par des
espaces et
tabulations tabulations. Alt+X tabify permet de remplacer toutes les séries d’espaces de la zone marquée
par des caractères tabulation. Alt+X untabify a le comportement inverse.
Indentation de texte
c+X t indente le texte marqué d’un espace
a+- c+X t désindente le texte marqué d’un espace
Commandes de rectangles
c+X R O remplit la zone d’espaces (en décalant le reste du texte)
c+X R K supprime le rectangle
c+X R Y insère le rectangle supprimé à la position du curseur
a+X string-rectangle remplace chaque ligne du rectangle par une chaîne
Linux Livre Page 272 Mardi, 23. septembre 2008 1:05 13
272 LINUX
Emacs a également quelques modes d’édition dans lesquels l’indentation est effectuée auto-
matiquement. Par exemple, le mode C ajoute ou supprime des espaces après les accolades.
Indentation Pour saisir plusieurs paragraphes de texte indenté, vous pouvez définir la position de la
dans du texte
continu première colonne en tapant plusieurs espaces ou tabulations dans une ligne vide, qui défini-
ront la taille de l’indentation de votre texte. Lancez ensuite le raccourci Ctrl+X .. Le pro-
gramme indente alors dès la deuxième ligne du paragraphe toutes les lignes comme la
première.
Cette opération ne fonctionne que pour le texte qui n’est pas encore saisi. Pour indenter du
texte déjà saisi, il faut définir l’indentation avec Ctrl+X+., puis lancer Alt+Q. Pour désactiver
la largeur de l’indentation, placez le curseur au début de la ligne avec Ctrl+X+..
La commande Ctrl+X+. enregistre en fait tous les caractères qui se trouvent entre la position courante du
curseur et le début de la ligne. Ces derniers sont ensuite ajoutés automatiquement au début des nouvelles
lignes créées par la coupure du paragraphe. Vous pouvez utiliser cela pour préfixer toutes les lignes d’une
chaîne de caractères donnée (par exemple >).
Pour remettre en forme de plus grandes quantités de texte indenté différemment, la com-
mande Alt+X+fill-individual-paragraphs+Entrée peut s’avérer utile. Elle met en forme la
zone entre la marque et la position du curseur. L’indentation courante est alors préservée.
Linux Livre Page 273 Mardi, 23. septembre 2008 1:05 13
Mode texte Si vous utilisez beaucoup d’indentations, le mode texte est plus confortable que les procédu-
res décrites ci-dessus. Vous pouvez l’activer avec Alt+X+text-mode+Entrée. Pour éditer du
texte continu dans ce mode, activez le mode mineur correspondant, Alt+X+auto-fill-mode.
La seule nouveauté du mode texte est qu’Emacs indente automatiquement chaque nouvelle
ligne comme la précédente. Alt+Q, pour la coupure automatique, gère également l’indentation
du paragraphe par rapport à la première ligne.
Mode texte
a+X text-mode active le mode texte
a+X auto-fill-mode active le mode mineur pour le texte continu
a+Q procède à une coupure manuelle des lignes et conserve l’indentation de la
première sur le paragraphe.
a+S centre la ligne courante
a+s+S centre le paragraphe courant
Pour centrer une ligne ou un paragraphe sans avoir à passer dans le mode texte, vous pou-
vez lancer la commande correspondante depuis un autre mode grâce à Alt+X+center-line
et Alt+X+center-paragraph.
Abréviations Une des particularités d’Emacs est que vous pouvez étendre des abréviations sans prérequis
particulier. Indiquez les premières lettres d’un mot et saisissez Alt+/. Emacs cherche
d’abord dans le texte précédent, puis dans le texte suivant et enfin, dans tous les fichiers
ouverts, les mots qui débutent par ces lettres. Plusieurs appuis sur Alt+/ permettent de faire
défiler les différents complètements possibles.
274 LINUX
contenant "rech". Si vous ne saisissez que des minuscules, la recherche est indépendante
de la casse.
Si vous changez d’avis et décidez de chercher "recréer", il suffit de supprimer le "h" avec
Retour Arrière. Emacs revient alors au premier mot (à partir de la position du curseur au
début de la recherche) qui contient "rec". La saisie de "r" passe le curseur au premier mot qui
contient "recr".
Si vous tapez Entrée ou une touche du curseur, Emacs considère que la recherche est finie et
place le curseur à l’emplacement trouvé. La position du curseur au début de la recherche est
enregistrée par la marque. Vous pouvez y retourner avec Ctrl+X Ctrl+X. La répétition de
cette commande vous ramène au résultat de la recherche.
Vous pouvez reprendre la recherche en tapant deux fois Ctrl+S pour passer à l’occurrence
suivante. Pour chercher la chaîne vers l’arrière, tapez Ctrl+R à la place de Ctrl+S.
Recherche incrémentale
c+S recherche incrémentale vers l’avant
c+R recherche incrémentale vers l’arrière
a+P récupère la recherche précédente dans l’historique
a+N récupère la recherche suivante dans l’historique
c+G interrompt la recherche
c+X c+X échange la position de la marque (début de la recherche) et celle du curseur
Pour recommencer une recherche, vous pouvez naviguer dans l’historique après avoir tapé
Ctrl+S grâce à Alt+P et Alt+N.
Les paires de parenthèses \( et \) n’ont pas d’influence sur la recherche en soi. Les caractères
correspondant à ce groupe peuvent néanmoins être rappelés dans le motif de remplacement
(voir paragraphe suivant).
Chercher et remplacer
Emacs différencie également, dans le cas du remplacement, la commande normale de la
commande étendue avec des motifs de recherche. Lorsqu’on remplace un texte, la lettre ini-
tiale des mots est dans la même casse que celle qu’elle remplace lorsque le texte de rempla-
cement est entièrement en minuscules. Les fonctions de recherche et de remplacement ne
fonctionnent pas pour les textes de recherche sur plusieurs lignes, car les caractères joker *
et + ne prennent pas en compte les passages à la ligne.
Recherche et remplacement
a+% recherche et remplacement sans motif
a+x query_replace-r e recherche et remplacement avec motif
\& référence au texte trouvé complet
\1 référence au premier atome entre \(...\)
Pour mieux comprendre comment fonctionnent les atomes dans la fonction de recher-
che/remplacement, le plus simple est de donner un exemple. Si on remplace
Linux-Part 3-CH-18 Page 276 Mercredi, 24. septembre 2008 7:15 07
276 LINUX
Sous Emacs, la notion de fenêtre n’a rien à voir avec celle de fenêtre X : elle représente une partie d’une
fenêtre X. Si vous désirez ouvrir une autre fenêtre X (par exemple, pour travailler confortablement entre
deux morceaux de code), vous pouvez la créer dans le menu File, New Frame (GNU Emacs) ou View, New
Frame (XEmacs).
Les commandes suivantes s’appliquent à la fenêtre courante (dans laquelle se trouve le curseur).
Ces commandes changent le tampon affiché dans la fenêtre.
Linux Livre Page 277 Mardi, 23. septembre 2008 1:05 13
Commandes du tampon
c+X B e active le dernier tampon utilisé
c+X B nom e active le tampon indiqué
c+X c+B affiche dans une fenêtre la liste de tous les tampons
c+X K nom e ferme le tampon indiqué ; lorsque le tampon contient des données non
enregistrées, demande confirmation
Commandes de fenêtre
c+X O passe à la fenêtre suivante
c+X 0 ferme la fenêtre courante
c+X 1 ferme toutes les fenêtres, à part la fenêtre courante
c+X 2 sépare la fenêtre courante en deux zones horizontales
c+X 3 sépare la fenêtre courante en deux zones verticales
Le tampon n’est pas modifié lorsqu’on ferme une fenêtre. Il devient invisible, mais reste en
mémoire et peut être affiché de nouveau.
278 LINUX
Emacs tente de reconnaître automatiquement, d’après l’extension du fichier et le contenu des premières
lignes, le type de fichier et active le mode correspondant. Si cela ne fonctionne pas, vous devez activer le
mode comme indiqué ci-dessus.
Lorsque le mode n’est pas automatiquement détecté, vous pouvez ajouter dans la première ligne du fichier
un commentaire contenant les caractères *-* nom *-*. nom est le nom du mode souhaité (par exemple
*-* html *-*).
Mise en L’élément le plus remarquable du mode d’édition est la mise en évidence de la syntaxe. Les
évidence de la
syntaxe commandes ou les commentaires sont distingués par des couleurs ou des attributs de
police. Le code ou certains documents deviennent ainsi nettement plus lisibles.
La mise en évidence de la syntaxe est généralement désactivée pour des raisons de perfor-
mances. Pour l’activer dans un document, vous devez lancer le mode correspondant
Alt+X+font-lock-mode : Emacs analyse le texte entier et marque les éléments qu’il trouve. Il
arrive, après une modification du texte, que la reconnaissance de la syntaxe ne fonctionne
plus. Pour la remettre d’aplomb, relancez Alt+X+font-lock-mode.
18.10 Unicode
Les versions actuelles d’Emacs et de XEmacs sont en principe compatibles avec Unicode,
mais en pratique, diverses limitations et problèmes se posent encore. Les deux variantes
d’Emacs gèrent UTF-8 ; XEmacs gère de plus UTF-7 et UTF-16.
L’édition de fichiers Unicode implique que le paquetage d’extensions Mule (Multilingual
Enhancement, améliorations multilingues) soit installé. Les commandes Mule peuvent être
lancées sous GNU Emacs avec Options, Mule et sous XEmacs avec Edit, Multilingual. Une
prise en charge avancée d’Unicode est disponible dans le paquetage Mule-UCS.
Linux Livre Page 279 Mardi, 23. septembre 2008 1:05 13
Les deux versions d’Emacs prévoient de passer à une gestion interne du texte complètement
en Unicode, probablement à partir de la version 23. Il se peut donc que quelques-unes des
fonctions décrites ici ne fonctionnent plus ou différemment dans les versions futures d’Emacs.
Aide Ctrl+H Maj+C+Entrée indique le codage du tampon courant. Ctrl+U Ctrl+X+= indique le
code du caractère sous le curseur.
XEmacs et Unicode
Il peut être nécessaire de définir explicitement la prise en charge d’Unicode dans XEmacs en
ajoutant ces lignes dans le fichier de configuration :
(require ’un-define)
(set-coding-priority-list ’(utf-8))
(set-coding-category-system ’utf-8 ’utf-8)
Linux Livre Page 280 Mardi, 23. septembre 2008 1:05 13
280 LINUX
Indiquer En plus des raccourcis clavier de GNU Emacs, XEmacs dispose également de raccourcis
explicitement
le jeu de avec Ctrl U, plus confortables. La commande suivante permet d’indiquer explicitement le
caractères jeu de caractères à utiliser pour ouvrir un fichier :
Ctrl+U Ctrl+X Ctrl+F+fichier+Entrée+codage+Entrée
Les codages disponibles s’affichent dans une liste avec Tab. Le tableau suivant donne quelques
exemples. XEmacs reconnaît, à la différence d’Emacs, les codages UTF-7 et UTF-16.
Pour enregistrer un fichier, XEmacs utilise le même jeu de caractères que celui utilisé lors du
chargement. Si vous désirez modifier le jeu de caractères à ce moment, vous pouvez utiliser la
commande suivante. Attention cependant, il arrive que le passage d’un codage à un autre ne
soit pas pris en charge. Il vaut alors mieux utiliser la commande recode (voir section 15.3).
Ctrl+U Ctrl+X Ctrl+W nom_du_fichier Entrée codage Entrée
Barre d’état Le jeu de caractères utilisé est indiqué dans les premiers caractères de la barre d’état. Le
tableau suivant donne quelques exemples, qui diffèrent de GNU Emacs :
Vous trouverez davantage d’informations sur le codage des textes et la gestion de différents jeux de caractères
dans le chapitre Mule du manuel Emacs-Lisp. Vous pouvez aussi le lire sur Internet à l’adresse http://
www.xemacs.org/Documentation/21.5/html/lispref_64.html.
Le manuel Mule-UCS fournit des informations spécifiques à Unicode à l’adresse
http://www.xemacs.org/Documentation/packages/html/mule-ucs.html.
Linux Livre Page 281 Mardi, 23. septembre 2008 1:05 13
bash
19
Ce chapitre traite de bash, bourne again shell. Ce programme permet de lancer des comman-
des dans une fenêtre de console ou une console texte. bash est également un interpréteur de
commandes. Il fournit donc un langage de programmation qui peut être utilisé pour déve-
lopper des programmes shell (scripts shell).
Utiliser un interpréteur de commandes est intéressant pour tous ceux qui souhaitent lancer
des programmes non seulement par le biais des menus KDE ou Gnome, mais aussi via le cla-
vier. Cela semble à première vue peu pratique, mais offre de nombreuses possibilités, par
exemple la combinaison de plusieurs commandes ou l’enregistrement des résultats d’une
commande dans un fichier.
Ce chapitre présente l’environnement de bash, la redirection des entrées et des sorties, la com-
munication entre plusieurs processus (tubes, substitution des commandes) et l’utilisation de
variables.
Il existe pour bash une page de manuel très complète (man bash) et un fichier info tout aussi complet
(info bash). Certaines distributions fournissent également le fichier bashref.html qui présente le même
contenu dans un format plus lisible. Ce fichier est également disponible sur Internet à l’adresse http://
www.gnu.org/software/bash/manual/bash.html.
Ce chapitre décrit les versions 3.n de Bash (presque toutes les informations sont également valables pour
les version 2.n). Si vous ne savez pas quelle version de Bash vous utilisez, lancez la commande suivante :
utilisateur$ echo $BASH_VERSION
3.2.39(1)-release
Linux Livre Page 284 Mardi, 23. septembre 2008 1:05 13
284 LINUX
BASH 285
Ce fichier définit la fonction readline, utilisée en interne par bash pour traiter les entrées du
clavier. Les trois premières lignes assurent que les caractères 8 bits sont reconnus lors de la
saisie, qu’ils ne sont pas transformés en un autre caractère et qu’ils s’affichent. Les trois
lignes suivantes définissent le comportement des touches Home, Suppr et Fin.
Les modifications ne sont prises en compte qu’au démarrage d’un nouveau shell : vous
devez vous déconnecter et vous reconnecter à une console texte ou démarrer une nouvelle
fenêtre de console sous X. Pour tester, il est plus pratique de lancer simplement la com-
mande bash. Un nouvel interpréteur est alors lancé et vous pouvez revenir à l’ancien shell
avec exit. Cela est particulièrement avantageux lorsque la configuration n’a pas le résultat
escompté − l’ancien interpréteur a encore les associations de touches précédentes. Sous X,
les fonctions du clavier dépendent aussi de la configuration de X (voir Chapitre 22).
Invite de Au début de chaque ligne du shell, certains éléments s’affichent en fonction de la distribution : le
commande
nom de l’ordinateur, celui de l’utilisateur et/ou le répertoire courant. La chaîne de caractères se
termine généralement par $ ou > (pour les utilisateurs réguliers) ou par # (root).
Cette chaîne est définie par la variable d’environnement PS1, qui peut être définie dans /etc/
bash.bashrc ou /etc/bashrc. Sans autre configuration, PS1="\s-\v$". Dans ce cas, bash
affiche le nom de l’interpréteur et le numéro de version.
Vous pouvez modifier PS1 dans ~/.profile. Par exemple, si PS1="\w \$", l’invite de com-
mande est simplement le répertoire courant.
À la place ou en plus de PS1, la variable PROMPT_COMMAND peut être définie. Celle-ci contient
une commande lancée avant chaque affichage de PS1.
Les codes utilisables dans la variable PS1 (par exemple, \w comme raccourci pour le répertoire courant) sont
décrits dans la documentation de Bash.
286 LINUX
xemacs est le nom de mon éditeur préféré et command.tex un fichier LaTeX. Pour étendre xem,
bash cherche dans tous les répertoires de la variable PATH le programme correspondant.
Pour étendre le nom du fichier, seul le répertoire courant est considéré.
Le complètement fonctionne également pour les noms de fichiers préfixés par plusieurs
répertoires.
utilisateur$ ls /usr/sh Tab
S’il n’est pas possible de compléter l’élément de manière unique (signal sonore), vous pou-
vez taper à nouveau Tab. bash affiche alors dans les lignes qui suivent tous les complètements
possibles. Par exemple,
utilisateur$ e Tab Tab
liste toutes les commandes qui commencent par e. Vous pouvez alors reprendre votre saisie.
Les programmes et les commandes présents dans le répertoire courant ne sont étendus par le complètement
de commandes que lorsque le répertoire courant se trouve dans la variable PATH. echo $PATH affiche cette
variable. Le répertoire courant est abrégé en . .
Dans la plupart des distributions Linux, . ne fait pas partie de la variable PATH pour des raisons de sécurité.
Afin de lancer des commandes dans le répertoire courant, il faut donc saisir ./commande.
BASH 287
bash fournit un mécanisme de complètement similaire pour le nom des répertoires person-
nels (~mi Tab renvoie sur mon ordinateur ~michael/) et les noms de variables ($PAT Tab
renvoie $PATH).
Extensions Lorsqu’on lance la commande latex nom. Tab, seuls les fichiers se terminant par .tex sont
spécifiques
aux proposés. man nom Tab ne renvoie que les éléments pour lesquels il existe une page de
programmes manuel. Cela fonctionne pour de nombreuses commandes pour lesquelles le choix de fichiers
possibles ou de paramètres est restreint. C’est pratique, car seuls les fichiers ou paramètres
cohérents sont pris en compte pour le complètement.
La commande bash complete gère cela. De nombreuses distributions disposent d’une confi-
guration énorme pour complete, mais qui n’est installée qu’en partie ou qui doit l’être expli-
citement (par exemple, sous Fedora avec le paquetage bash-completion). La commande
complete sans autre paramètre affiche toutes les règles connues. La configuration se trouve
généralement dans l’un des fichiers suivants :
• /etc/bash_completion ;
• /etc/bash_completion.d/* ;
• /etc/profile.d/complete.bash ;
• /etc/profile.d/bash_completion.sh.
Pour définir des règles de complètement supplémentaires, vous devez comprendre la syntaxe peu
courante de complete . help complete et man bash en offrent une courte description. Pour en
savoir plus, vous pouvez consulter http://www.caliban.org/bash/index.shtml et http://
www.minet.net/spip/spip.php?article93.
288 LINUX
Coller le Le raccourci Alt+. est plus simple à comprendre avec un exemple. Supposons que vous ayez
dernier
paramètre copié un fichier (cp fichier1 fichier2). Vous voulez maintenant supprimer la copie. Plutôt
que de taper rm fichier2, vous pouvez taper rm, puis Alt+.. bash récupère alors automati-
quement le dernier paramètre de la commande. Plusieurs appuis sur Alt+. permettent de
naviguer dans l’historique des paramètres.
Chercher une Ctrl+R requiert également une explication supplémentaire. Ce raccourci permet de chercher
commande
une commande déjà saisie. Tapez, au début de la ligne, Ctrl+R et les premiers caractères de
la commande recherchée. bash affiche alors la dernière commande utilisée qui commence
par les lettres saisies. Plusieurs appuis sur Ctrl+R permettent de passer entre les différentes
commandes correspondantes. Ctrl+S fonctionne comme Ctrl+R, mais passe les commandes
dans l’ordre inverse. Entrée, Tab et les touches de direction interrompent la recherche et
lancent la commande ou modifient la ligne trouvée.
Certaines consoles comprennent Ctrl+S comme l’ordre d’arrêter momentanément l’affichage. Ctrl+Q redé-
marre cet affichage. Si votre console l’interprète ainsi, vous ne pouvez chercher des commandes qu’avec
Ctrl+R.
Les raccourcis clavier de bash proviennent de la bibliothèque readline, utilisée par bash pour traiter les
entrées. D’autres raccourcis sont indiqués dans man readline.
Alias
La commande alias permet d’économiser quelques touches lorsqu’on saisit des comman-
des. Elle définit des raccourcis. Lors du traitement de la ligne de commande, l’interpréteur
vérifie si le premier mot est un alias. Si c’est le cas, il est étendu au texte complet.
Les alias pour une combinaison de raccourcis ou des noms de fichiers ne sont pas valides,
car bash ne cherche pas à remplacer les autres termes de la ligne de commande. bash
reconnaît cependant les cas particuliers où plusieurs programmes sont appelés (tubes, substi-
tution de commande, exécution de plusieurs commandes à la suite avec ;) et remplace les
alias par les commandes correspondantes.
utilisateur$ alias cdb=’cd ~michael/livrelinux’
Cette commande définit l’abréviation cdb qui me permet de passer rapidement dans un
répertoire que j’utilise beaucoup.
Linux Livre Page 289 Mardi, 23. septembre 2008 1:05 13
BASH 289
Les appels à alias peuvent également être imbriqués. Notez aussi que les raccourcis définis
ont priorité sur les commandes du même nom. On peut ainsi définir des alias pour éviter
l’appel à certaines commandes :
utilisateur$ alias more=less
Les alias peuvent être supprimés avec la commande unalias. Ils sont valables jusqu’à ce que
l’utilisateur quitte l’interpréteur de commandes (donc, au plus tard, jusqu’à la déconnexion
de l’utilisateur). Si vous utilisez fréquemment certains alias, vous pouvez les ajouter dans
les fichiers .profile et .bashrc de votre répertoire personnel.
Dans de nombreuses distributions, divers alias sont prédéfinis. Par exemple, rm peut être un
raccourci vers rm -i. La commande alias sans paramètre envoie la liste de toutes les com-
mandes définies par alias. Les lignes suivantes indiquent à quels endroits sont définis les
alias sous Fedora, SUSE et Ubuntu :
Fedora /etc/bashrc /etc/profile.d/*.sh ~/.bashrc
SUSE /etc/bashrc.bashrc ~/.bashrc
Ubuntu /etc/bashrc ~/.bashrc
Les scripts shell permettent également des applications comparables à celles des alias. Ils
ont l’avantage de comprendre les paramètres ($1, $2, etc.) et d’être plus souples.
19.4 Redirections
Lorsqu’on lance des commandes sous bash, il existe trois fichiers spéciaux. Il ne s’agit pas à
proprement parler de fichiers en soi, mais de descripteurs de fichiers qui sont gérés par le
système d’exploitation comme des fichiers.
• Entrée standard. Le programme déjà lancé (par exemple, bash ou une commande déjà
lancée) lit ses entrées depuis l’entrée standard. Il s’agit généralement du clavier.
• Sortie standard. Toutes les sorties du programme (par exemple, la liste de tous les
fichiers par ls) sont dirigées vers la sortie standard. Il s’agit généralement de la fenêtre
de terminal ou de la console texte.
• Erreur standard. Les messages d’erreur sont généralement envoyés sur l’erreur standard,
qui bien souvent s’affiche sur le terminal courant.
Tout cela semble évident − si ce n’était pas le cas, où devraient être envoyés les saisies du
clavier, les résultats et les messages d’erreur, sinon sur l’écran ? Il faut cependant remarquer
que l’on peut rediriger la sortie ou l’entrée standard.
Par exemple, supposons que vous ne souhaitiez pas afficher le contenu d’un répertoire,
mais l’enregistrer dans un fichier. La sortie standard doit alors être redirigée dans un vrai
fichier. Dans bash, on utilise pour cela le caractère > :
utilisateur$ ls *.tex > liste
Le fichier liste contient après cette commande une liste de tous les fichiers *.tex du réper-
toire courant. Ce type de redirection est probablement le plus courant. Il en existe plusieurs
Linux Livre Page 290 Mardi, 23. septembre 2008 1:05 13
290 LINUX
variantes : 2> fichier enregistre tous les messages d’erreur dans le fichier indiqué. >& fichier
et &> fichier enregistrent la sortie et les messages d’erreur d’une commande dans le fichier
indiqué. L’opérateur double >> signifie que les éléments sont ajoutés à la fin d’un fichier déjà
existant (> écrase le fichier).
Les entrées sont redirigées avec le caractère < fichier : les commandes qui attendent une
saisie au clavier peuvent lire le fichier à la place de cette saisie.
On ne peut pas traiter un fichier et écrire le résultat en même temps dans ce même fichier ! sort
fichier > fichier ou sort < fichier > fichier n’ont pour seul effet que de vider le fichier !
Tubes
Les tubes, ou pipes, sont construits avec le caractère |. La sortie de la première commande est
alors fournie comme entrée de la seconde. En pratique, les tubes sont souvent utilisés avec
la commande less, afin d’afficher de longs résultats page par page.
utilisateur$ ls -l |less
À la place des tubes, vous pouvez aussi utiliser des fichiers FIFO. FIFO signifie first in, first
out (premier entré, premier sorti) et réalise un tube sous la forme d’un fichier nommé. Ces
fichiers sont bien plus lourds que les tubes, mais ils rendent clair l’effet exact d’un tube. En
pratique, ils sont utilisés pour que deux programmes indépendants puissent communiquer.
utilisateur$ mkfifo fifo
utilisateur$ ls -l > fifo &
utilisateur$ less < fifo
Les trois commandes ci-dessus créent un fichier FIFO. ls est ensuite lancé comme processus
d’arrière-plan. Il écrit ses résultats dans le fichier. less lit dans ce fichier les données et les
affiche à l’écran.
Les tubes ne sont indiqués que lorsque les commandes lisent leurs entrées sur l’entrée standard. Si ce n’est
pas le cas, vous pouvez obtenir des résultats similaires grâce à des substitutions de commandes ou grâce à
xargs.
BASH 291
Il en résulte deux fichiers identiques liste1 et liste2. La commande ci-dessus est un simple
exemple. Il peut être plus délicat, mais plus utile, de comprendre l’exemple suivant :
utilisateur$ ls -l |tee liste1 |sort -k 5 -n > liste2
liste1 contient le contenu "normal" du répertoire renvoyé et trié par ls. La copie de cette
sortie est redirigée vers sort qui la trie selon la taille du fichier (cinquième colonne) et l’enre-
gistre dans le fichier liste2.
Résumé de la syntaxe
292 LINUX
pouvez immédiatement reprendre la main sur le terminal, sans attendre que la commande
soit terminée.
utilisateur$ find / -name ’*sh’ > resultat &
[1] 334
La commande ci-dessus cherche, dans tout le système de fichiers, des fichiers dont le nom se
termine par les lettres "sh". La liste est enregistrée dans le fichier resultat. Comme la com-
mande est lancée en tâche de fond, le terminal rend la main immédiatement. [1] 334 signi-
fie que la tâche de fond a pour identifiant de processus 334. Ce numéro peut être utile pour
terminer prématurément la tâche avec kill. Le numéro entre crochets indique le numéro du
processus en tâche de fond dans l’interpréteur de commandes courant, ce qui n’a généralement
aucun intérêt.
Si vous avez oublié le caractère &, vous pouvez passer le programme en tâche de fond rétrospectivement. Pour
cela, interrompez le programme avec Ctrl+Z et relancez-le avec bg.
Lancer On peut aussi ajouter une commande après le caractère &. Dans ce cas, la première tâche est
plusieurs
commandes lancée en arrière-plan et la seconde au premier plan. L’exemple suivant réutilise la com-
mande find décrite ci-dessus, mais on affiche cette fois-ci le contenu du répertoire courant
avec ls :
utilsateur$ find / -name ’*sh’ > resultat & ls
Si on saisit un point-virgule à la place de &, les commandes sont lancées l’une après l’autre
en avant-plan :
utilisateur$ ls; date
La commande affiche le contenu du répertoire, puis la date. Pour rediriger l’ensemble de ces
informations dans un fichier, les deux commandes doivent être regroupées entre paren-
thèses. Elles sont alors lancées dans un même shell (sans parenthèses, un nouveau shell est
lancé pour chaque commande).
utilisateur$ (ls; date) > fichier
fichier contient maintenant la liste de fichiers fournie par ls, ainsi que la date fournie par
date.
Les opérateurs && et || servent à lancer des commandes en fonction du résultat d’une autre
commande.
utilisateur$ commande1 && commande2
Cette ligne lance d’abord commande1. Si cette commande fonctionne sans problème (pas
d’erreur, code de retour 0), commande2 est lancée.
À l’inverse, dans la ligne qui suit, commande2 n’est lancée que si commande1 renvoie une
erreur (code de retour différent de 0) :
utilisateur$ commande1 || commande2
Linux Livre Page 293 Mardi, 23. septembre 2008 1:05 13
BASH 293
294 LINUX
Comme la construction des noms de fichiers n’est pas gérée par les différents programmes,
mais par bash, les résultats peuvent être différents de ce à quoi vous vous attendez. Par
exemple, ls * affiche une liste sans fin de fichiers, même lorsque le dossier courant n’en
contient que quelques-uns. La commande ls reçoit une liste de fichiers et de répertoires.
Mais lorsqu’on lui passe un nom de répertoire, elle affiche le contenu complet de ce réper-
toire ! Si vous désirez afficher une liste de tous les fichiers et répertoires correspondant à un
motif, vous devez passer l’option -d. Celle-ci cache le contenu des répertoires passés en
paramètre.
Pour savoir comment bash fonctionne en interne, lancez la commande set -x. bash affiche
alors, avant de lancer toute commande, comment la commande est évaluée, éventuellement
avec les options et tous les noms de fichiers étendus.
Construction bash compose toutes les combinaisons de chaînes possibles avec les chaînes qu’il reçoit entre
de chaînes
avec {} accolades. partie{1,2a,2b} est donc étendu en partie1 partie2a partie2b. L’extension
d’accolades économise de la saisie lorsqu’on accède à des fichiers qui ont des noms similaires.
Par rapport à des caractères joker comme ? ou *, les accolades ont l’avantage de construire
également des noms de fichiers qui n’existent pas encore, ce qui est pratique, par exemple
pour mkdir.
utilisateur$ echo {a,b}{1,2,3}
a1 a2 a3 b1 b2 b3
utilisateur$ echo {ab,cd}{123,456,789}-{I,II}
ab123-I ab123-II ab456-I ab456-II ab789-I ab789-II
cd123-I cd123-II cd456-I cd456-II cd789-I cd789-II
Depuis Bash 3.0, la syntaxe {a..b} est valide, où a et b sont des chiffres ou des lettres. Les
exemples suivants expliquent le fonctionnement de cette syntaxe :
utilisateur$ echo {1..5}
1 2 3 4 5
utilisateur$ echo {z..t}
z y x w v u t
Calcul Normalement, bash ne sait pas faire de calculs. Par exemple, lorsqu’on saisit 2+3, il faut
d’expressions
arithmétiques les entourer de crochets et les préfixer d’un caractère $ pour que l’interpréteur effectue le
avec [] calcul :
utilisateur$ echo $[2+3]
5
Dans les crochets, la plupart des opérateurs de C sont autorisés : +, -, *, et / pour les quatre
opérations de base, % pour le modulo, ==, !=, <, <=, >, >= pour la comparaison, << et >> pour
les décalages de bits, !, && et || pour les NON, ET et OU logiques, etc. Ces opérateurs sont
valables pour des entiers sur 32 bits (nombres entre +/- 2147483648).
La commande expr fournit une autre méthode pour effectuer des calculs. Il s’agit d’une
commande Linux indépendante de bash.
Substitution La substitution de commandes permet de passer le résultat d’une commande à l’intérieur
de commandes
d’une autre commande. Cette commande doit être entourée de deux caractères `. $(com-
mande) est une syntaxe alternative. Celle-ci est préférable pour éviter la confusion avec
d’autres caractères (par exemple " ou ’) et entrelacer des commandes.
Linux Livre Page 295 Mardi, 23. septembre 2008 1:05 13
BASH 295
La commande considérée est donc remplacée par son résultat. Cette substitution permet
d’entrelacer l’appel de plusieurs commandes, où chaque commande renvoie son résultat à
d’autres commandes. Les deux commandes identiques suivantes éclaircissent ce mécanisme
très puissant :
utilisateur$ ls -lgo `find /usr/share -name ’*README*’`
utilisateur$ ls -lgo $(find /usr/share -name ’*README*’)
find /usr/share -name ’*README*’ est la première commande exécutée. Son résultat est
une liste de tous les fichiers qui contiennent la chaîne README dans leur nom dans le réper-
toire /usr/share. Cette liste remplace la commande find dans la commande originale.
La commande devient donc :
utilisateur$ ls -lgo /usr/share/a2ps/ppd/README \
> /usr/share/a2ps/README ...
Il ne serait pas possible d’obtenir ce résultat avec un simple tube. ls n’attend pas une entrée
sur l’entrée standard et ignore donc l’information renvoyée par find sur un tube. La com-
mande find /usr/share -name ’*README*’ |ls -l ne fonctionne pas ; elle affiche le résultat
du répertoire courant.
Il existe cependant une autre solution qui ne fait pas appel à la substitution de commandes.
xargs transforme les données de l’entrée standard en paramètres de la commande donnée
en argument de xargs. Le résultat précédent s’obtient donc également avec :
utilisateur$ find /usr/share -name ’*README*’ | xargs ls -l
xargs présente également un avantage du fait qu’il existe une limite de taille des données à
traiter. xargs appelle en effet la commande plusieurs fois et passe les arguments de l’entrée
standard en plusieurs étapes. La substitution est limitée par la taille maximale d’une ligne
de commande (généralement plusieurs milliers de signes).
Les noms de fichiers contenant des espaces posent problèmes. Pour les éviter, passez à find
l’option -print0 et à xargs l’option --null.
Caractères Comme presque tous les caractères, à l’exception des chiffres et des lettres, ont une significa-
joker dans des
chaînes de tion particulière pour bash, il semble impossible de les utiliser dans des chaînes de caractè-
caractères res ou des noms de fichiers. Ce problème est résolu par deux méthodes. Le caractère spécial
peut être préfixé d’une barre oblique inverse (\) ou la chaîne complète peut être encadrée
par des apostrophes ou des guillemets. La commande suivante permet ainsi de supprimer
les fichiers nommés ab* et $cd :
utilisateur$ rm ’ab* $cd’
296 LINUX
Les guillemets ont un comportement différent des apostrophes. Ils sont moins restrictifs
et interprètent certains caractères spéciaux, en l’occurrence $, \ et `. Une chaîne de carac-
tères entourée de guillemets verra ainsi les variables du shell qui s’y trouvent étendues :
utilisateur$ echo "Ceci est le chemin d’accès : $PATH"
Ceci est le chemin d’accès : /usr/local/bin::/usr/bin:/bin:/usr/bin/X11:/usr/
games
Si, à la place des guillemets, on utilise des apostrophes, la chaîne s’affiche sans transfor-
mation.
Mécanismes de substitution
Caractères joker pour les noms de fichiers
? exactement un caractère arbitraire
* nombre arbitraire (y compris 0) de caractères arbitraires (mais pas de fichiers
.*)
[abc] un des caractères entre crochets
[a-f] un des caractères de l’intervalle
[!abc] aucun des caractères entre crochets
[^abc] aucun des caractères entre crochets
~ répertoire personnel
. répertoire courant
.. répertoire parent
Construction de chaînes
ab{1,2,3} renvoie ab1 ab2 ab3
a{1..4} renvoie a1 a2 a3 a4
Arithmétique
$[3*4] calcul, renvoie 12
Substitution de commandes
`commande` remplace la commande par son résultat
$(commande) remplace la commande par son résultat
BASH 297
19.7 Variables
Les fonctionnalités de bash et de nombreux autres programmes sont définies par des varia-
bles du shell. Elles sont comparables à celles d’autres langages de programmation, à ceci
près qu’elles ne peuvent contenir que des chaînes de caractères. On assigne une variable
avec l’opérateur d’assignation =. Pour afficher le contenu d’une variable, le plus simple est
d’utiliser echo, suivi du nom de la variable préfixé d’un $ :
utilisateur$ var=abc
utilisateur$ echo $var
abc
Lorsque la valeur de la variable contient des espaces ou d’autres caractères spéciaux, il faut
l’entourer d’apostrophes ou de guillemets :
utilisateur$ var=’abc efg’
On peut concaténer les variables les unes aux autres en les assignant. L’exemple suivant
définit une variable a contenant son ancienne valeur, suivie de la chaîne xxx et de son
ancienne valeur :
utilisateur$ a=3
utilisateur$ a=$a’xxx’$a
utilisateur$ echo $a
3xxx3
L’exemple suivant étend la variable PATH (qui contient tous les répertoires parcourus pour
chercher un programme à exécuter) du sous-répertoire bin du répertoire personnel. Cela
permet de lancer les commandes qui s’y trouvent sans devoir saisir le chemin complet.
utilisateur$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
utilisateur$ PATH=$PATH’:/home/michael/bin’
utilisateur$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/michael/bin
Lorsque le résultat d’une commande doit être enregistré dans une commande, utilisez la
substitution de commandes, comme $(commande). L’exemple suivant enregistre le répertoire
courant dans la variable a :
utilisateur$ a=$(pwd)
utilisateur$ echo $a
/home/michael
Linux Livre Page 298 Mardi, 23. septembre 2008 1:05 13
298 LINUX
Le contenu de la variable n’est enregistré que dans l’interpréteur courant. Les variables sont
perdues lorsque vous quittez le shell (au plus tard lorsque vous éteignez l’ordinateur).
Pour enregistrer certaines variables de manière permanente, ajoutez-les à /etc/profile ou
~/.profile. Ces deux fichiers sont exécutés au démarrage de bash.
Pour enregistrer le contenu d’une variable dans un fichier, le plus simple est de rediriger la
sortie de echo :
utilisateur$ echo $var > fichier
Si vous définissez des variables pour qu’elles modifient le comportement d’autres commandes, ces variables
doivent toujours être globales. Pour qu’elles exploitent le mécanisme de substitution du shell et pour déclarer
des variables globales, vous devez assigner les variables avec x=... et les définir comme globales avec
export x.
L’attribution des variables n’est valable que pour un seul shell. Si vous travaillez dans plusieurs terminaux ou
fenêtres de terminal, les shells qui s’y trouvent sont indépendants les uns des autres. Modifier la valeur
d’une variable dans un shell n’a aucune influence sur sa valeur dans un autre shell. Vous pouvez définir les
variables fréquemment utilisées dans votre fichier .profile, exécuté à chaque démarrage de l’interpréteur de
commandes.
Linux Livre Page 299 Mardi, 23. septembre 2008 1:05 13
BASH 299
Variables importantes
En principe, vous pouvez définir autant de variables arbitraires que vous le souhaitez. Il est
cependant préférable d’éviter les noms de variables prédéfinis, souvent utilisés par bash et
d’autres commandes. Modifier ces variables sans contrôle peut entraîner des problèmes
dans le traitement de commandes, dans la recherche de fichiers, etc. Cette liste décrit les
principales variables de l’interpréteur de commandes dans l’ordre alphabétique.
• BASH contient le nom de fichier de bash.
• glob_dot_filenames définit l’extension des caractères Joker : si la variable existe (et a
une valeur arbitraire), * renvoie également les fichiers qui commencent par un .. unset
glob_dot_filenames supprime ce comportement.
• HOME contient le chemin du répertoire personnel, par exemple /home/michael.
• LOGNAME contient l’identifiant de connexion (nom de l’utilisateur).
• HOSTNAME contient le nom d’hôte (nom de l’ordinateur).
• MAIL contient le chemin du répertoire où sont enregistrés les courriers électroniques
lorsqu’ils arrivent.
• MANPATH contient le chemin de tous les répertoires où se trouvent des pages de manuel.
• OLDPATH contient le chemin du dernier répertoire actif.
• PATH contient une liste de répertoires. Lorsque bash doit lancer une commande, il la
cherche dans tous les répertoires énumérés dans PATH. Les répertoires sont séparés par
des caractères deux-points.
PATH est défini dans /etc/profile. Pour ajouter un répertoire à PATH, modifiez /etc/
profile avec une ligne de cette forme :
PATH=$PATH:/opt/kde/bin
Pour des raisons de sécurité (éviter l’exécution de programmes malicieux dans le réper-
toire courant), PATH ne contient généralement pas le répertoire courant. Si vous souhai-
tez lancer des programmes du répertoire courant sans avoir à taper ./, ajoutez . à la
variable PATH.
• PROMPT_COMMAND peut contenir une commande lancée avant chaque affichage de l’invite
de commande par bash.
• PS1 contient une chaîne de caractères, dont le contenu s’affiche à chaque début de ligne
(invite de commande). Cette chaîne comprend, entre autres, les combinaisons suivan-
tes : \t indique l’heure, \d la date, \w le répertoire courant, \W la dernière partie du
répertoire courant (soit X11 pour /usr/bin/X11), \u le nom d’utilisateur, \h le nom de
l’ordinateur et \$ le caractère d’invite ($ pour un utilisateur standard, # pour root)
• PS2 contient la chaîne de caractères affichée aux lignes suivant la première dans les com-
mandes en plusieurs lignes (par exemple, lorsque la première ligne se termine par \). Sa
valeur classique est ">".
• PWD contient le nom du répertoire courant.
Linux Livre Page 300 Mardi, 23. septembre 2008 1:05 13
300 LINUX
En plus des variables décrites dans cette section, il existe d’innombrables variables d’envi-
ronnement, définies par le shell ou les différents programmes. Vous pouvez en afficher la
liste avec printenv | sort.
Configuration de base
20
Ce chapitre est le premier d’une longue série traitant des différents aspects de la
configuration de Linux. Après avoir donné quelques informations introductives,
nous y présenterons les fonctions élémentaires suivantes :
• la configuration des consoles en mode texte ;
• le paramétrage de la date et de l’heure ;
• l’administration des utilisateurs ;
• l’internationalisation, les jeux de caractères, Unicode ;
• une synthèse rapide sur la configuration du matériel ;
• les rouages internes de la gestion du matériel ;
• les fichiers de journalisation.
Les chapitres suivants s’intéresseront à la gestion des paquetages, l’administra-
tion des bibliothèques système, la configuration du système graphique (X),
l’administration du système de fichiers, l’amorçage (GRUB, Init-V) ainsi que la
gestion du noyau et de ses modules.
20.1 Introduction
Ce chapitre ainsi que ceux qui suivent vous offrent un aperçu de ce que réali-
sent, en coulisses, les programmes de configuration de Linux. Vous devez com-
prendre tous les tenants et aboutissants de la configuration. Par conséquent,
vous trouverez dans ce chapitre une grande quantité d’informations de fond
sur le fonctionnement du système dans son ensemble.
Malheureusement, les différentes distributions se distinguent par de nombreux
détails de configuration. Dans cet ouvrage, je tente de décrire les points com-
muns au plus grand nombre de systèmes Linux possible. Il se peut toutefois que
votre distribution présente justement quelques détails légèrement différents de
ce que vous aurez lu ici. Dans de tels cas, pensez à jeter un coup d’œil à la docu-
mentation.
Même si cela peut vous sembler d’un certain inconfort, je reste néanmoins per-
suadé qu’il est préférable de proposer des solutions génériques plutôt qu’un
livre sur l’administration de Red Hat, un autre pour l’administration de SUSE,
etc. C’est d’autant plus vrai que les distributions individuelles changent d’une
version à l’autre. Vous devrez également apprendre, d’une façon ou d’une
autre, à consulter et comprendre par vous-même les pages de manuels, d’aide
en ligne, qui sont bien souvent disponibles seulement en anglais. Ce livre ne
Linux Livre Page 302 Mardi, 23. septembre 2008 1:05 13
302 LINUX
remplacera pas le manuel d’origine ou des tutoriels pas à pas, mais il vise à vous donner des
connaissances fondamentales.
Mais où est Jusqu’à présent, celui que l’on nomme "l’administrateur système" était peut-être une per-
l’adminis-
trateur sonne anonyme qui vous venait en aide occasionnellement (souvent contrainte et surchar-
système ? gée de travail). Si vous ne travaillez pas dans une grande entreprise, l’administrateur n’est
bien souvent qu’un concept abstrait issu d’ouvrages ayant pour devise "si quelque chose ne
fonctionne plus, consultez votre administrateur système".
Si vous avez installé vous-même Linux sur votre ordinateur, ce point de vue change légè-
rement : vous êtes vous-même l’administrateur système ! Toutefois, que cette idée ne
vous effraie pas : l’administrateur système est tout simplement la personne responsable
de la configuration de l’ordinateur. Tant qu’il s’agit de fonctions de base de Linux, ce peut
être n’importe qui ! Il est toutefois naturel, de temps à autre, de devoir jeter un œil dans cet
ouvrage ou toute autre source d’informations sur Linux.
Outils de La plupart des distributions proposent des programmes de configuration d’un grand
configuration
confort que vous pouvez utiliser aussi bien pendant qu’après l’installation : drakconf sous
Mandriva, divers programmes dénommés system-xxx sous Red Hat, YaST sous SUSE, etc.
En cas de problème de configuration, vous devez toujours faire appel en premier lieu à ces
outils ! Ils sont optimisés spécialement pour votre distribution et vous épargnent bien du
travail et des difficultés.
Outre ces outils de configuration spécifiques à une distribution, il existe également des pro-
grammes indépendants de toute distribution. Leur représentant le plus populaire à l’heure
actuelle est Webmin. Il présente en outre un avantage de taille : intégralement utilisable via
une interface web, il est donc idéal pour l’administration distante.
http://www.webmin.com/
Le programme eBox, relativement récent, paraît très prometteur. Il est spécialement conçu
pour l’administration des fonctionnalités réseau des systèmes Debian :
http://www.ebox-platform.com/
Ces outils posent toutefois un problème : la société ou l’organisation produisant votre distri-
bution ne sont pas directement responsables de leur maintenance. Les outils de configura-
tion indépendants d’une distribution sont donc toujours légèrement en retard par rapport
aux nouvelles versions d’une distribution et aux modifications que celle-ci introduit.
Administration Jusqu’à présent, je suis parti du principe que vous souhaitiez configurer un ordinateur indi-
réseau
viduel (l’ordinateur local). Si votre travail d’administrateur consiste à gérer des centaines
d’ordinateurs sous Linux, les outils de configuration présentés ci-dessus sont pour le moins
inefficaces. À leur place, vous aurez besoin de programmes permettant de configurer de
manière centralisée un groupe d’ordinateurs à la fois. Vous pourrez ainsi envisager sereine-
ment d’installer sur tous les postes une nouvelle version d’OpenOffice, d’activer de nouvel-
les règles de pare-feu sur tous les ordinateurs directement connectés à Internet, etc.
La liste ci-après présente un certain nombre de ces outils. Ils se différencient non seulement
au niveau des fonctionnalités proposées, mais également et de façon assez marquée par leur
coût. Il n’est pas possible d’entrer ici plus en détail sur ces produits, pour des questions de
place mais aussi parce que je n’ai aucune expérience pratique de ces programmes.
http://www.redhat.com/rhn/ (Red Hat, commercial) ; http://www.novell.com/products/
zenworks/(Novell/SUSE, commercial) ; http://www.informatik.uni-koeln.de/fai/ (installation
Linux Livre Page 303 Mardi, 23. septembre 2008 1:05 13
304 LINUX
Lorsque vous modifiez les fichiers de configuration, veillez bien à ce que la dernière ligne se termine elle
aussi par un retour chariot (touche Entrée). De nombreux programmes Linux ne traitent pas correctement
les fichiers lorsque le caractère de fin de ligne manque sur la dernière ligne. Ceci vaut naturellement aussi
lorsque vous travaillez avec plusieurs éditeurs de texte.
Rechercher des Si vous ne parvenez pas à trouver un fichier de configuration donné dans votre distribution,
fichiers de
configuration plusieurs causes sont envisageables : il est possible que les paquetages logiciels sous-jacents
ne soient tout simplement pas installés, ou les fichiers de configuration se trouvent, sur
votre distribution, dans un autre répertoire que celui attendu. Pour vos recherches, utilisez
les commandes suivantes (voir Annexe B) :
locate :
find :
grep :
La commande suivante montre comment vous pouvez rechercher dans le répertoire /etc et
dans l’ensemble de ses sous-répertoires tous les fichiers dont le contenu (pas le nom du
fichier) présente le mot abcde :
root# cd /etc
root# find -type f -exec grep -q abcde {} \; -print
Durant la rédaction de cet ouvrage, j’ai régulièrement recherché dans la distribution x où se paramétrait la
fonctionnalité y ou l’emplacement du programme z. J’aurais donc pu être amené à taper la commande ci-
dessus des centaines de fois mais, pour gagner du temps et m’épargner cette répétition fastidieuse, j’ai
rédigé le miniscript grepall pour prendre en charge cette tâche. Reportez-vous au Chapitre 19 pour les
détails relatifs à ce script ainsi qu’une introduction à la programmation Bash.
Activer une Dans un certain nombre de programmes, les modifications apportées au fichier de configu-
nouvelle
configuration ration ne prennent effet que lorsque vous relancez le programme ou que vous lui indiquez
explicitement de recharger le fichier de configuration. Pour ce faire, vous aurez générale-
ment besoin de l’une ou l’autre des deux commandes suivantes (pour les détails, reportez-
vous au Chapitre 14) :
root# /etc/init.d/nom_de_la_fonction restart
root# /etc/init.d/nom_de_la_fonction reload
À l’amorçage du système, la table de correspondance clavier est chargée par le script InitV
/etc/rc.d/rc.sysinit (Fedora, Red Hat) ou /etc/init.d/kbd (SUSE). C’est le fichier de
configuration /etc/sysconfig/keyboard qui, dans ce cadre, détermine quelle table est effec-
tivement chargée.
setfont setfont charge une police de caractères pour la console. Les fichiers sous-jacents associés se
trouvent dans le répertoire /lib/kbd/consolefonts (Fedora, Red Hat) ou dans /usr/share/
kbd/consolefonts (SUSE). Ainsi, par exemple, iso01.16 est une police pour le jeu de carac-
tères ISO-Latin-A, dans laquelle chaque caractère est représenté sur 16 pixels de hauteur.
iso01.08 et iso01.14 en sont des variantes présentant respectivement chaque caractère sur
8 et 14 pixels de hauteur. Les caractères sont donc plus petits et vous pouvez ainsi afficher
davantage de lignes à la fois.
root# setfont iso01.14
306 LINUX
Dans le cas de SUSE, la police de la console est mise en place via /etc/init.d/kbd. Ce script
analyse /etc/sysconfig/console. Par défaut, c’est la police lat9w-16.psfu qui est utilisée :
outre les caractères Latin-1, elle comprend également le symbole Euro.
Fondamentalement, les consoles sont compatibles avec l’Unicode. Néanmoins, le nombre
maximal de caractères possibles pour les polices de la console est très restreint (256 ou 512).
Par conséquent, les polices de console ne peuvent utiliser qu’une petite partie de l’ensemble
des caractères Unicode.
# Clavier
XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""
XKBOPTIONS="lv3:ralt_switch"
Ce fichier est analysé par le script /bin/setupcon, lui-même exécuté deux fois lors de
l’amorçage du système : une fois par le biais de /etc/init.d/keyboard-setup et une
seconde fois par le biais de /etc/init.d/console-setup.
Il est intéressant de noter comment sont traitées les quatre variables du clavier : elles sont
analysées par le script ckbcomp. Celui-ci génère, à partir des fichiers de clavier X, une table
de correspondance pour le clavier qui est alors activée comme avec kbd par le biais de la
commande loadkeys.
gpm est, en règle générale, lancé par le processus InitV (voir Chapitre 24). La configuration
s’effectue, suivant la distribution, dans /etc/gmp.conf ou dans /etc/sysconfig/mouse : le
plus souvent, il n’est pas nécessaire de modifier les paramètres par défaut. Pour lancer
manuellement le programme, exécutez la commande suivante :
root# /etc/init.d/gpm start
308 LINUX
Plutôt que récupérer l’heure CMOS de votre ordinateur, notoirement imprécise, vous pouvez égale-
ment obtenir cette information de serveurs de temps beaucoup plus fiables hébergés soit sur Internet,
soit sur votre réseau local. Ceci présuppose toutefois l’existence d’une connexion permanente à Inter-
net ou au serveur de temps local : c’est la solution idéale pour un ordinateur qui reste allumé en per-
manence.
Paramétrage Pour que les commandes du type ls, ou le gestionnaire de fichiers de KDE ou Gnome, puissent
du fuseau
horaire reconvertir l’heure GMT vers l’heure locale de l’ordinateur et l’afficher, chaque programme
doit savoir dans quel fuseau horaire se trouve l’ordinateur.
La plupart des programmes Linux utilisent pour cela des fonctions de la bibliothèque glibc.
Cette bibliothèque consulte le fichier /etc/localtime. Ce fichier constitue en fait une copie
d’un fichier de fuseau horaire hébergé dans le répertoire /usr/share/zoneinfo. /etc/local-
time peut également être un lien symbolique vers un fichier de fuseau horaire.
Pour que la gestion des droits d’accès fonctionne, avec chaque fichier sont enregistrés un propriétaire, un
groupe propriétaire ainsi que des droits d’accès sous forme binaire. Du fait que les programmes sont égale-
ment des fichiers et que l’accès aux composants matériels s’effectue également souvent par le biais des
fichiers de périphériques, ce mécanisme est très générique.
Dans ce chapitre, nous n’aborderons que la gestion des utilisateurs et des groupes. Les conséquences de
ce système pour la gestion des fichiers et l’exécution des processus sont abordées respectivement aux Cha-
pitres 13 et 14. Vous trouverez donc dans ces chapitres des informations de base sur l’utilisation des droits
d’accès binaires enregistrés avec chaque fichier. Vous y trouverez aussi des astuces pour exécuter des pro-
grammes système sans pour autant posséder les droits de l’utilisateur root.
Programmes En principe, vous pouvez en tant qu’utilisateur root assurer la gestion manuelle de vos uti-
de confi-
guration lisateurs si vous modifiez directement les fichiers décrits dans cette section. Il est toutefois
plus confortable et plus sûr de faire appel pour cela aux outils de gestion des utilisateurs et
des groupes fournis avec la plupart des distributions :
Linux Livre Page 309 Mardi, 23. septembre 2008 1:05 13
Vous remarquerez très certainement que, pour plusieurs tâches, il existe deux commandes
différentes (par exemple adduser et useradd). adduser, addgroup, deluser et delgroup sont de
Linux Livre Page 310 Mardi, 23. septembre 2008 1:05 13
310 LINUX
fait des extensions spécifiques à Debian pour les commandes d’origine useradd, groupadd,
etc. Sous Debian, Ubuntu et les autres distributions basées sur Debian, ces commandes
obéissent aux règles définies dans /etc/adduser.conf et /etc/deluser.conf.
Red Hat et Fedora se chargent quant à elles d’ajouter à la confusion ambiante : les comman-
des adduser, addgroup, deluser et delgroup y sont également disponibles. Toutefois, il s’agit
non pas des mêmes commandes que propose Debian, mais de liens vers useradd, groupadd,
userdel et groupdel. De ce fait, adduser possède sous Fedora la même syntaxe que useradd
(mais une syntaxe différente de celle d’adduser sous Debian !).
SUSE/Novell suit également son propre chemin : les commandes adduser/-group et delu-
ser/-group n’y sont pas disponibles. Au lieu de groupadd/-del/-mod et useradd/-del/-mod,
on y utilise une implémentation propre à la distribution qui reste compatible avec les
commandes des autres distributions sur la plupart (mais non la totalité) des options.
Les lignes qui suivent illustrent quelques définitions d’utilisateurs dans le fichier /etc/passwd
sous Ubuntu :
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
Linux Livre Page 311 Mardi, 23. septembre 2008 1:05 13
mail:x:8:8:mail:/var/mail:/bin/sh
...
kofler:x:1000:1000:Michael Kofler,,,:/home/kofler:/bin/bash
huber:x:1001:1001:Herbert Huber,,,:/home/huber:/bin/bash
Le nom du fichier, passwd, laisse à penser que les mots de passe y sont également enregis-
trés. Ce fut le cas par le passé mais, entre-temps, c’est devenu plutôt rare. Au lieu des mots
de passe, le fichier /etc/passwd ne contient que le caractère x. Les informations de mot de
passe (naturellement chiffrées) sont enregistrées dans le fichier distinct /etc/shadow.
Nom Le nom d’utilisateur ne devrait être constitué que de lettres minuscules (chiffres et lettres
d’utilisateur
US-ASCII) et ne doit pas dépasser huit caractères. Il est certes envisageable, en principe,
d’utiliser des caractères non ASCII et de dépasser huit caractères, mais cela peut engendrer
des problèmes avec certains programmes. Pour le nom complet, enregistré séparément, ces
restrictions n’ont pas cours.
UID et GID Le numéro UID (User Identification ou identifiant utilisateur) sert à l’identification interne de
l’utilisateur. Le numéro est enregistré comme information supplémentaire avec chaque
fichier de manière à expliciter le propriétaire du fichier.
Il existe des règles pour l’attribution des numéros UID : root possède toujours l’identifiant
UID=0. Pour les services et démons, les numéros UID sont sur la plupart des distributions
compris entre 1 et 999 (Red Hat et Fedora, ainsi que quelques autres distributions, utilisent
encore les anciennes règles définissant un domaine de valeurs compris entre 1 et 499). Pour
les utilisateurs usuels, les numéros d’identifiants sont par conséquent attribués à partir de
1 000 (500 sur Red Hat et Fedora).
Le numéro GID (Group Identification ou identifiant de groupe) indique à quel groupe appartient
l’utilisateur. La section suivante donnera plus d’informations sur les groupes.
Répertoire Le répertoire personnel est l’emplacement dans lequel un utilisateur peut enregistrer ses
personnel
données personnelles. Pour les utilisateurs usuels, ce répertoire correspond habituellement
au chemin /home/nom_d_utilisateur. Dans le répertoire personnel sont également enregis-
trés les paramètres de configuration personnels de l’utilisateur pour divers programmes.
Par exemple, le fichier .emacs contient les paramètres de configuration pour l’éditeur
Emacs. Du fait que le nom de tels fichiers de configuration commence la plupart du temps
par un point, ils sont invisibles. Vous pouvez toutefois les afficher avec la commande ls -la.
Pour que les nouveaux utilisateurs disposent immédiatement d’une configuration standard
sensée pour les programmes essentiels, on doit, à la création d’un nouvel utilisateur, copier
tous les fichiers du répertoire /etc/skel vers le nouveau répertoire personnel. De nombreux
programmes de création d’utilisateurs gèrent automatiquement cette étape. Le contenu de
/etc/skel représente donc la configuration par défaut pour tout nouvel utilisateur.
Shell Le shell est un interpréteur grâce auquel l’utilisateur peut, une fois connecté, exécuter des
commandes. Du fait que Linux propose différents interpréteurs, vous devez en choisir un et
indiquer votre choix dans le fichier passwd. Sous Linux, il s’agit en général du shell bash, que
nous décrivons en détail au Chapitre 19. On doit indiquer dans le fichier passwd le chemin
complet du shell, par exemple /bin/bash.
Linux Livre Page 312 Mardi, 23. septembre 2008 1:05 13
312 LINUX
Les lignes qui suivent proviennent du fichier group d’un système Ubuntu :
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:kofler
...
dialout:x:20:cupsys,kofler,huber
...
users:x:100:
admin:x:114:kofler
...
kofler:x:1000:
huber:x:1001:
...
On ne peut toutefois en tirer parti que dans le cadre d’une administration système
appropriée.
Sur de nombreuses installations Linux où les groupes d’utilisateurs n’ont, bien souvent,
aucun fichier en commun ou qui utilisent pour la gestion de projets communs des outils
spécialisés du type CVS (Concurrent Versioning System), le choix du groupe primaire entre le
groupe commun users ou les noms d’utilisateurs individuels n’a aucune importance.
Mots de passe
Les mots de passe Linux ne peuvent être constitués que de caractères ASCII (aucun caractère
étranger n’est autorisé !). Pour des raisons de sécurité, les mots de passe doivent contenir aussi
bien des majuscules que des minuscules, ainsi qu’au moins un chiffre.
Les mots de passe sont enregistrés sous Linux sous une forme chiffrée qui ne permet aucune
reconstruction du mot de passe. L’algorithme DES utilisé pour cela ne prend en compte que
huit caractères, ce qui rend pour le moment inutile le choix de mots de passe plus longs. Ce
point pourra toutefois faire l’objet de changements à l’avenir. Le code chiffré ne permet au
système que de tester si le mot de passe que vous avez saisi correspond à celui enregistré.
Tapez man 3 crypt pour obtenir plus de détails sur la procédure de chiffrement.
Les programmes permettant de "craquer" (c’est-à-dire de déchiffrer) des mots de passe
empruntent le chemin inverse : ils testent tout simplement des millions de mots de passe aléa-
toires (la plupart du temps des mots du dictionnaire combinés avec des chiffres) pour voir si
le mot de passe chiffré correspond. Du fait que beaucoup d’utilisateurs utilisent des mots
de passe trop simples et que les ordinateurs deviennent de plus en plus rapides, cette
méthode permet fréquemment d’aboutir au résultat souhaité, ce qui est peu rassurant.
Pour compliquer quelque peu la vie des pirates cherchant à accéder à votre système,
dans les systèmes Linux récents le mot de passe chiffré est enregistré non plus directement dans
/etc/passwd mais dans le fichier séparé /etc/shadow. L’avantage est que ce fichier peut être
lu seulement par root (/etc/passwd et /etc/group doivent être lisibles pour tous les utilisa-
teurs du système car ils contiennent des informations d’administration de base ; avec /etc/
shadow, il suffit en revanche que le fichier soit accessible seulement aux programmes de véri-
fication et de modification des mots de passe ; un pirate tentant d’accéder à votre ordinateur
doit donc tout d’abord obtenir un accès root à votre machine avant de pouvoir lire les mots
de passe chiffrés).
Pour le fichier shadow, le format suivant est utilisé :
NomDUtilisateur:MotDePasseChiffre:d1:d2:d3:d4:d5:d6:reserved
Les lignes qui suivent vous présentent un extrait d’un fichier shadow :
root:$1$v/BiTkAA$o7ccAO18X0suOtXXNw3Qm1:13528:0:99999:7:::
daemon:*:13479:0:99999:7:::
bin:*:13479:0:99999:7:::
sys:*:13479:0:99999:7:::
...
kofler:$1$mT.09dkO$O69fx51MRPXVcNrgp05GK1:13479:0:99999:7:::
Linux Livre Page 314 Mardi, 23. septembre 2008 1:05 13
314 LINUX
Si les utilisateurs normaux ne peuvent modifier que leur propre mot de passe, l’utilisateur
root peut également modifier les mots de passe de tout autre utilisateur :
root# passwd hofer
New password: ******
Re-enter new password: ******
Password changed.
Que faire lorsque vous avez oublié votre mot de passe root ? Dans ce cas, vous devrez amorcer votre système
avec une disquette d’installation ou de sauvetage, ou encore avec un CD amorçable (par exemple Knoppix).
Créez alors un nouveau répertoire avec mkdir dans la RAM de votre système d’installation ou de sauvetage,
et montez-y la partition sur laquelle se trouve votre système Linux :
root# mount -t ext3 /dev/xxx /rep
Vous avez maintenant accès au fichier /rep/etc/shadow et vous pouvez y effacer le mot de passe root
(tous les caractères compris entre le premier et le second caractère "deux-points") ou le remplacer par le mot de
passe chiffré (mais connu) d’un autre utilisateur.
L’ouverture d’une session root sans mot de passe n’est possible, de par les paramètres de sécurité de
/etc/pam.d/common-auth , que dans une console texte. Vous pouvez alors y saisir un nouveau mot
de passe root au prochain amorçage à l’aide de la commande passwd, de manière à pouvoir ensuite
travailler en tant qu’utilisateur root dans votre environnement graphique X.
Si vous souhaitez empêcher d’autres utilisateurs de modifier le mot de passe root suivant la méthode
exposée ici, vous devez désactiver dans le BIOS de votre ordinateur tout médium d’amorçage autre
que le premier disque dur (de manière qu’il ne soit pas possible d’amorcer depuis une disquette, un
CD ou une clé USB) et sécuriser le BIOS par un mot de passe. Mot de passe que vous ne pouvez
toutefois vous permettre d’oublier... Une autre possibilité consiste à chiffrer entièrement la partition
système.
faillog Suivant le paramétrage figurant dans /etc/login.defs, toutes les tentatives d’ouverture de
session ayant échoué sont enregistrées dans le fichier journal /var/log/faillog. Contrairement
à de nombreux autres fichiers journaux, c’est ici un format binaire qui est utilisé.
La commande faillog -u nom vous permet de vérifier, pour un utilisateur donné, combien
de tentatives de connexion ont échoué depuis sa dernière connexion réussie.
faillog -u nom -m max vous permet de fixer un nombre maximal d’échecs autorisés pour
les ouvertures de session d’un utilisateur donné. Si ce nombre est dépassé, l’identifiant
correspondant est bloqué jusqu’à être à nouveau autorisé par l’utilisateur root par le
biais de la commande faillog -u nom -r (le nombre d’échecs enregistrés est alors réini-
tialisé).
Vous pouvez également établir le nombre maximal d’échecs autorisés pour l’ensemble des
utilisateurs par le biais de faillog -m max. Toutefois, vous devriez toujours exécuter aussi
faillog -u root -m 0 de manière à exclure l’utilisateur root de cette mesure. Dans le cas
contraire, vous pourriez ne plus être en mesure de vous connecter en tant qu’administrateur
si un autre utilisateur a tenté sans succès de se connecter en tant que root et a atteint la
limite fixée.
Linux Livre Page 316 Mardi, 23. septembre 2008 1:05 13
316 LINUX
Mots de passe Comme pour les utilisateurs, il est possible de définir des mots de passe pour les groupes
de groupe
(avec la commande gpasswd). Toutefois, s’il est fortement conseillé d’imposer des mots de
passe aux utilisateurs, cela devient superflu au niveau des groupes. Leur inconvénient prin-
cipal est que tous les membres d’un même groupe doivent connaître le mot de passe en
question, ce qui alourdit encore l’administration.
Si toutefois des mots de passe de groupe doivent être mis en place, ils sont habituellement
enregistrés dans le fichier /etc/gshadow. Un utilisateur doit alors fournir le mot de passe de
groupe lorsqu’il cherche à changer de groupe actif par le biais de la commande newgrp. Le
groupe actif détermine à quel groupe appartiennent de nouveaux fichiers à leur création.
kofler est le nom d’utilisateur. 1000 est l’identifiant d’utilisateur (UID), 1000, l’identifiant de
groupe primaire (GID), Michael Kofler, le nom complet (utilisé pour les e-mails, les groupes
de news, etc.), /home/kofler, le répertoire personnel de l’utilisateur, et /bin/bash, son shell.
L’identifiant UID doit être unique car il joue un rôle important dans la gestion des droits
d’accès aux fichiers.
La ligne correspondante dans /etc/shadow, contenant les informations de mot de passe,
possède l’allure suivante :
# une ligne de /etc/shadow
kofler:$1$mT.09dkO$O69fx51MRPXVcNrgp05GK1:13479:0:99999:7:::
La chaîne de caractères qui suit kofler: est le mot de passe chiffré. Si l’on renonce à cette chaîne
de caractères, le nom d’utilisateur peut être utilisé sans mot de passe. Si, au lieu de la chaîne de
caractères, figure un symbole * ou !, l’ouverture de session est verrouillée pour cet utilisateur.
Le numéro d’identifiant GID figurant dans /etc/passwd doit correspondre à un groupe figu-
rant dans /etc/group. Pour de nombreuses distributions, chaque utilisateur usuel se voit
affecté à un groupe portant le même intitulé que le nom d’utilisateur :
# une ligne de /etc/group
kofler:x:1000:
mots de passe. Au lieu de cela, toutes ces commandes peuvent utiliser PAM. La page sui-
vante propose une documentation complète sur PAM, même si elle date un peu :
http://www.kernel.org/pub/linux/libs/pam/
PAM offre le choix entre plusieurs modules d’authentification. Le module standard gère
l’authentification en analysant le fichier /etc/shadow que nous avons déjà mentionné (ges-
tion des utilisateurs locaux). Il existe par ailleurs divers modules PAM pour l’authentification
des utilisateurs sur un serveur centralisé (voir la section suivante).
Configuration La configuration générale de PAM intervient par le biais de plusieurs fichiers hébergés dans le
répertoire /etc/security. Toutefois, pour la plupart des distributions, ces fichiers ne contien-
nent que des lignes commentées.
De surcroît, pour chaque programme accédant à PAM il existe un fichier de configuration
propre dans le répertoire /etc/pam.d. C’est par exemple ainsi que fonctionnent les programmes
passwd, gdm, kdm, ssd, su et sudo.
Modification Sur certaines distributions (par exemple Red Hat, Fedora jusqu’à sa version 7), PAM est
des droits
d’accès à configuré de façon que les droits d’accès sur divers fichiers de périphériques soient modifiés
travers PAM automatiquement à l’ouverture de session. C’est utile pour permettre aux utilisateurs usuels
d’accéder à des CD et DVD, de communiquer avec leur appareil photo numérique ou avec
leur PDA, etc. (Au lieu de cela, SUSE repose sur le démon resmgrd. Debian et Ubuntu affec-
tent les fichiers de périphériques à des groupes, de manière que le contrôle d’accès s’effectue
par le biais de l’appartenance à un groupe.)
Ce sont les fichiers /etc/security/console.perms.d qui gèrent la modification automatique
des droits d’accès à la première ouverture de session. Les modifications restent en place jusqu’à
déconnexion de l’utilisateur. À la connexion suivante, de nouvelles modifications sont mises en
place. C’est ainsi que l’on évite les conflits lorsque plusieurs utilisateurs sont connectés simulta-
nément au système. Le premier à s’être connecté garde la main jusqu’à sa déconnexion.
La structure des fichiers console.perms suit l’exemple fourni par les lignes suivantes. Vous
obtiendrez des informations détaillées avec la commande man console.perms.
# /etc/security/console.perms.d/50-default.perms (Red Hat, Fedora)
<sound>=/dev/dsp* /dev/audio* /dev/midi* /dev/mixer* /dev/sequencer* \
/dev/sound/* /dev/beep /dev/snd/* /dev/adsp*
<cdrom>=/dev/cdrom* /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*
<pilot>=/dev/pilot
...
<console> 0600 <sound> 0600 root
<console> 0600 <cdrom> 0660 root.disk
<console> 0600 <pilot> 0660 root.uucp
...
Droits Une particularité supplémentaire de Red Hat et Fedora est que les utilisateurs usuels s’iden-
d’exécution
pour certaines tifiant dans la console texte peuvent faire appel à de nombreux outils de configuration
commandes sans pour autant devoir fournir le mot de passe root. Cela concerne par exemple les com-
mandes halt, poweroff, reboot et setup. Divers fichiers de configuration situés dans le
répertoire /etc/security/console.apps gèrent ces droits supplémentaires.
Linux Livre Page 318 Mardi, 23. septembre 2008 1:05 13
318 LINUX
320 LINUX
Unicode régit uniquement l’affectation d’un code à un caractère et non la façon dont ce
code est enregistré. La solution la plus simple, au premier abord, consisterait donc à
représenter chaque caractère par deux octets (c’est-à-dire 16 bits). Ce format est désigné
par l’appellation UTF-16 (UTF représentant Unicode Transfer Format). Elle présente tou-
tefois deux inconvénients : tout d’abord, elle double l’espace de stockage requis, et ce
même lorsque l’on cherche à enregistrer majoritairement des caractères européens ou
même uniquement ASCII-US. De plus, l’octet de code 0 intervient à différents emplace-
ments dans les chaînes de caractères Unicode : de nombreux programmes C, serveurs
de courrier électronique, etc. considèrent toutefois que l’octet 0 marque la fin d’une
chaîne de caractères.
Par conséquent, il existe aussi d’autres manières de représenter des textes Unicode.
L’alternative de loin la plus populaire à UTF-16 est UTF-8. Dans ce cadre, tous les carac-
tères ASCII-US (7 bits) sont représentés comme précédemment par un unique octet dont
le bit de poids fort est 0. Tous les autres caractères Unicode sont représentés par des
chaînes d’octets comprenant de 2 à 4 octets. L’inconvénient le plus visible de ce format
est l’absence de rapport entre le nombre d’octets et le nombre de caractères du docu-
ment. Du fait de sa compatibilité croissante avec des programmes existants et d’une
série d’autres avantages, UTF-8 s’est établi comme le standard sous Unix/Linux (tandis
que, sous Microsoft Windows, c’est fréquemment l’UTF-16 qui est employé). Lorsque
l’on parle d’Unicode dans le contexte de Linux, il s’agit implicitement dans la plupart
des cas d’Unicode au format UTF-8.
Par défaut, le jeu de caractères Unicode UTF-8 est maintenant appliqué dans la quasi-
totalité des distributions.
Effets du jeu Le jeu de caractères actif détermine comment sont codés les caractères dans les fichiers de
de caractères
texte mais aussi dans les noms de fichiers. Les systèmes de fichiers de Linux s’adaptent à
chaque jeu de caractères. Comme nom de fichier, toute chaîne de caractères se terminant par
l’octet 0 est valide. Suivant le jeu de caractères en vigueur, la série et le nombre d’octets uti-
lisés pour représenter un nom de fichier comme àèù.txt pourront toutefois prendre des
valeurs très différentes ! Si le jeu de caractères courant est Latin-1, ce nom peut être repré-
senté par 7 octets (plus un huitième pour l’octet 0). Si, en revanche, c’est le jeu de caractères
Unicode/UTF-8 qui est utilisé, le nom du fichier comptera 10 octets (car il faut 2 octets pour
représenter chacun des caractères à, è et ù).
Il existe toute une série de programmes qui fonctionnent indépendamment du jeu de carac-
tères ou gèrent indifféremment différents jeux de caractères : par exemple, les logiciels de
courrier électronique ou les navigateurs Internet peuvent tous présenter des e-mails et
pages web rédigés dans un jeu de caractères autre que le jeu courant. Pour que cela fonc-
tionne, chaque e-mail ou chaque page web contient des informations sur le jeu de caractères
utilisé. Les outils de traitement de texte modernes enregistrent en général le texte dans un
jeu de caractères Unicode ou utilisent un code qui leur est propre. Même les éditeurs de
texte du type Emacs ou XEmacs sont en mesure de travailler sur des fichiers de texte dans
différents encodages et de les enregistrer.
Problèmes liés Les problèmes surviennent le plus fréquemment lorsque des utilisateurs échangent des
aux jeux de
caractères fichiers (de texte, entre autres) alors qu’émetteur et destinataire utilisent des jeux de carac-
tères différents. Supposons, par exemple, qu’un utilisateur d’une distribution Linux sous
Linux Livre Page 321 Mardi, 23. septembre 2008 1:05 13
Unicode compose à l’aide d’un éditeur un fichier de texte comprenant des caractères étran-
gers. Imaginons maintenant qu’un utilisateur d’une autre distribution Linux, au jeu de
caractères Latin, doive travailler sur ce fichier : il constatera, à sa grande surprise, que tous
les caractères non ASCII s’afficheront de façon erronée. Il est toutefois simple, dans la plu-
part des cas, de résoudre de tels problèmes à l’aide des commandes recode ou iconv (voir
Chapitre 12).
Les noms des fichiers ne sont pas épargnés par de tels problèmes : si vous enregistrez un
fichier sous le nom äöü.txt dans une distribution U (Unicode), que vous redémarriez votre
ordinateur sous la distribution L (Latin) et que vous observiez le fichier, vous verrez appa-
raître une chaîne de caractères qui ressemble davantage à äöÃ.txt. La meilleure solution
consiste ici à modifier le jeu de caractères utilisé dans l’une ou l’autre des distributions, de
manière qu’un même jeu de caractères soit utilisé dans les deux cas. Si vous envisagez
de modifier le jeu de caractères pour les noms d’un grand nombre de fichiers existants, la
commande convmv décrite au Chapitre 12 pourra vous être utile.
Police (font) La police ne doit pas être confondue avec le jeu de caractères. Elle détermine la façon
dont un caractère donné est affiché à l’écran. Il existe donc pour cela diverses polices (par
exemple Arial, Courier, Helvetica, Palatino, pour ne citer que quelques-unes des plus
connues).
Naturellement, les polices et les jeux de caractères ne sont pas indépendants les uns des
autres : avant de pouvoir afficher correctement à l’écran un caractère de code 234, le jeu de
caractères utilisé pour encoder ce symbole doit être clair. C’est le jeu de caractères qui
répond en effet à la question de savoir quel caractère se cache derrière le code 234. Plusieurs
des anciennes polices X étaient limitées à 256 caractères et donc disponibles dans plusieurs
versions distinctes pour différents jeux de caractères. Les polices récentes (TrueType, Post-
Script) peuvent en revanche contenir davantage de caractères et sont en règle générale compa-
tibles avec plusieurs jeux de caractères.
322 LINUX
Fichiers de Naturellement, l’emplacement où sont enregistrés les paramètres de configuration varie lui
configuration
aussi suivant les distributions :
Debian, Ubuntu /etc/default/local
Red Hat, Fedora /etc/sysconfig/i18n
SUSE /etc/sysconfig/language
De nombreuses distributions tiennent en outre compte de paramètres spécifiques à l’utilisateur,
stockés dans ~/.i18n.
Variables LC En interne, la localisation et le jeu de caractères sont contrôlés par des variables d’environ-
et LANG
nement telles que LC_CTYPE et LANG. La bibliothèque glibc, utilisée dans la quasi-totalité des
programmes Linux, se charge d’analyser ces variables.
La localisation peut s’effectuer par catégorie. Pour une configuration correcte, vous pourriez
par exemple choisir d’utiliser le format français pour les dates et heures, tout en affichant les
messages d’erreur en anglais. Le tableau suivant présente les variables essentielles.
Naturellement, tous les programmes ne tiennent pas compte de l’intégralité des catégories
(bon nombre d’entre eux ignorent même totalement les variables LC_). Lorsque des catégo-
ries individuelles ne sont pas paramétrées, les programmes utilisent comme valeur par
défaut C ou POSIX. Cela signifie que les messages d’erreur apparaissent en anglais, les dates
et heures au format américain, etc.
Plutôt que configurer individuellement chacune des variables exposées ici, vous pouvez
tout simplement paramétrer la variable LANG. De cette manière, toutes les variables non défi-
nies utilisent la valeur par défaut définie par LANG. Seule la variable LC_COLLATE conserve
la valeur par défaut POSIX. Pour la plupart des distributions, la configuration globale de la
langue s’effectue par la variable LANG.
Plus puissante encore que LANG est la variable LC_ALL. Lorsque cette variable est configurée,
sa valeur s’applique à toutes les catégories, indépendamment des valeurs attribuées par
ailleurs aux variables LC_ ou LANG.
Pour la plupart des programmes, les messages d’erreur et autres textes utilisés se trouvent
dans un répertoire dédié pour chaque langue : /usr/share/locale/langue/LC_MESSAGES.
KDE utilise en règle générale ses propres répertoires, par exemple /opt/kde3/share/
Linux Livre Page 323 Mardi, 23. septembre 2008 1:05 13
Pour vérifier la localisation, vous pouvez également exécuter de façon erronée une com-
mande de votre choix. Le message d’erreur affiché devrait apparaître dans la langue confi-
gurée. Lorsque LANG est configuré à la valeur fr_FR, le message d’erreur de la commande
mount devrait apparaître comme à l’exemple suivant. Sur certaines distributions, toutefois,
seuls les messages d’erreur en langue anglaise sont installés et ce test peut ne pas fonctionner.
utilisateur$ mount /xy
mount: ne peut repérer /xy dans /etc/fstab ou /etc/mtab
env Si vous souhaitez pouvoir exécuter une commande particulière avec un paramétrage de lan-
gue différent du système, sans pour autant devoir modifier la configuration dans son
ensemble, l’idéal consiste à utiliser la commande env. Cette commande reçoit une série de
variables et les valeurs associées, ainsi que la commande à exécuter en tenant compte des
variables de localisation fournies :
utilisateur$ env LANG=C mount /xy
mount: can’t find /xy in /etc/fstab or /etc/mtab
Si, malgré la modification apportée au paramètre LANG, le message d’erreur apparaît tou-
jours dans la langue du système plutôt qu’en anglais, essayez aussi de changer le paramé-
trage de la variable LANGUAGE :
utilisateur$ env LANG=C LANGUAGE=C mount /xy
mount: can’t find /xy in /etc/fstab or /etc/mtab
Valeurs Vous pouvez obtenir une liste de toutes les valeurs possibles pour les variables de localisa-
possibles pour
les paramètres tion à l’aide de la commande locale -a. La notation habituellement utilisée est de la forme
LC/LANG x_y, où x représente la langue sur deux caractères et y représente le pays sur deux caractères.
Pour la langue française utilisée en France, vous devrez donc utiliser fr_FR (fr_BE pour la
Belgique, fr_CA pour le Canada, etc.). Pour le paramétrage en langue anglaise standard, on
peut utiliser l’abréviation C.
Linux Livre Page 324 Mardi, 23. septembre 2008 1:05 13
324 LINUX
Les versions récentes de la glibc comprennent également le paramétrage exprimé par fran-
çais ou french. Le fichier /usr/share/locale/locale.alias contient un tableau décrivant
toutes les abréviations autorisées pour les noms de localisation complets.
Paquetages de L’affichage correct des menus, boîtes de dialogue, messages d’erreur, textes d’aide, etc. dans
localisation
la langue souhaitée dépend de fait de l’installation des fichiers de localisation nécessaires.
Pour des raisons d’espace disque, ce n’est souvent le cas que pour une ou deux langues (par
exemple anglais et français). Si vous souhaitez également utiliser votre distribution en lan-
gue allemande, vous devrez installer les paquetages supplémentaires correspondants pour
Gnome, KDE, OpenOffice, Firefox, etc. Pour SUSE et Ubuntu, les outils de configuration
présentés dans l’introduction de ce chapitre pourront vous aider ; pour les autres distributions,
toutefois, vous devrez procéder manuellement.
Tous les programmes Linux ne sont pas nécessairement traduits dans chaque langue. Il y a
des lacunes particulièrement importantes au niveau de la documentation en ligne (pages de
manuel, manuels, systèmes d’aide). Lorsque les fichiers de localisation correspondants font
défaut, Linux présente la version anglophone du texte.
Paramétrage Le jeu de caractères est paramétré conjointement à la localisation. Le jeu de caractères suit le
du jeu de
caractères code du pays dont il est séparé par un point, par exemple fr_FR.ISO-8859-1 ou fr_FR.utf8.
Renseignez-vous avant l’achat sur la compatibilité de votre nouveau matériel avec Linux ! Il ne suffit pas
pour cela de consulter le vendeur : celui-ci n’en a en général aucune idée, voire il vous fournira des infor-
mations erronées. Jetez un coup d’œil aux pages habituelles dédiées au matériel avec Linux (voir Chapi-
tre 1). Effectuez des recherches sur http://groups.google.com avec comme mots-clés linux
modèle_matériel. Vous trouverez invariablement des messages dans lesquels des utilisateurs de Linux
demandent comment configurer le composant XY sous Linux. À cet égard, les magazines orientés Linux
sont également et par nature une meilleure source d’informations que les livres, qui ne sont actualisés de
manière exhaustive que tous les deux ou trois ans.
Fichiers de On accède à la plupart des composants matériels par le biais de fichiers de périphériques
périphériques
(devices), par exemple /dev/sda pour un disque dur SATA. Les fichiers de périphériques sont
Linux Livre Page 325 Mardi, 23. septembre 2008 1:05 13
générés dynamiquement, suivant les besoins, par le système udev. Vous trouverez au Chapi-
tre 13 une liste des principaux fichiers de périphériques Linux.
Fichiers /proc Pour de nombreux composants, les systèmes de fichiers virtuels des répertoires /proc et /sys
et /sys
fournissent des informations détaillées. Vous trouverez un aperçu de ces fichiers de matériel
au Chapitre 23.
Modules Les pilotes des innombrables composants matériels se trouvent dans les modules du noyau.
noyau
Une partie de ces modules est chargée à l’amorçage du système, le reste uniquement lorsque
le besoin s’en fait sentir. Si le chargement automatique de modules ne fonctionne pas, vous
devriez jeter un coup d’œil aux fichiers /etc/modprobe.conf ou /etc/modprobe.conf.d/*. La
gestion des modules et le rôle de ces fichiers sont décrits au Chapitre 23.
Les messages du noyau indiquent quels événements interviennent au chargement des
modules et si le matériel a pu effectivement être initialisé avec succès. Pour consulter ces
messages, utilisez la commande dmesg.
Synthèse Quelques distributions proposent des outils donnant une synthèse du matériel disponible :
du matériel
citons par exemple lshw (Mandriva, Ubuntu), siga (SUSE) ou encore hwbrowser (Fedora,
Red Hat). lshal et son interface graphique Gnome hal-device-manager fournissent des
informations similaires.
Processeur et mémoire
Ce livre ne traite que les ordinateurs équipés d’un processeur de type Intel Pentium, c’est-à-
dire, exprimé plus simplement, les processeurs Intel et AMD à 32 et 64 bits. Il existe toutefois
des versions de Linux pour les nombreuses autres architectures de processeurs existantes (par
exemple pour PowerPC).
Le fichier /proc/cpuinfo vous renseigne sur les processeurs utilisés dans votre ordinateur.
L’exemple suivant (quelque peu raccourci) provient d’un ordinateur équipé d’un proces-
seur Intel Dual-Core. Linux considère chacun des cœurs comme un processeur indépen-
dant. La ligne model name présente la fréquence d’horloge maximale, tandis que la ligne cpu
MHz donne la fréquence d’horloge effectivement utilisée.
utilisateur$ cat /proc/cpuinfo
processor : 0
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 1596.000
...
processor : 1
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 1596.000
...
Dans le cas des processeurs à fréquence variable, les modules cpufreq sont responsables de
la réduction de fréquence destinée à économiser l’énergie. La documentation du noyau
Linux Livre Page 326 Mardi, 23. septembre 2008 1:05 13
326 LINUX
disponible dans le répertoire cpu-freq (voir aussi Chapitre 25) fournit davantage d’informa-
tions sur les fondements de ce système. Les fichiers du répertoire :
/sys/devices/system/cpu/cpun/cpufreq/
fournissent des renseignements sur l’état courant du système ainsi que sur les possibilités
de contrôle.
Mémoire La commande free vous renvoie des informations sur la mémoire disponible. Lorsque vous
(RAM)
supposez que votre ordinateur rencontre des problèmes matériels au niveau de la RAM
(secteurs défectueux, etc.), le programme Memtest86 est une bonne solution pour tester la
RAM. Avec de nombreuses distributions, vous pouvez lancer ce programme à l’amorçage
du système ou à partir du CD/DVD d’installation. Si toutefois cela ne fonctionne pas chez
vous, vous trouverez sur le site web suivant une image ISO vous permettant de graver un
CD amorçable : http://www.memtest86.com/
Mon expérience personnelle des différents modes de veille est malheureusement essentiellement négative. Si
la tentative de réactivation ne se soldait pas par une erreur, il était fréquent de ne pas pouvoir sortir l’ordina-
teur de son mode de veille. La seule solution consistait alors à réinitialiser ou à éteindre puis rallumer manuel-
lement l’ordinateur. Sur mon ordinateur portable IBM, le mode de veille a toujours fonctionné de façon
satisfaisante avec plusieurs distributions.
Testez les fonctions Suspend avec la plus grande prudence. Sécurisez préalablement toutes vos données,
exécutez la commande sync et démontez tous les systèmes de fichiers non indispensables de l’arbores-
cence du système !
Lorsque la mise en veille prolongée (suspend to disk) ne fonctionne pas, TuxOnIce (anciennement
Suspend2) peut se révéler utile dans certains cas. Cette implémentation de Suspend n’est pas encore par-
venue à intégrer le noyau officiel et elle n’est donc pas livrée avec la majeure partie des distributions. Pour
ceux que la compilation manuelle des modules requis n’effraie pas, un coup d’œil à la page suivante
devrait être intéressant : http://www.tuxonice.net/
APM APM est l’acronyme d’Advanced Power Management (gestion avancée de l’énergie) et il est le
prédécesseur d’ACPI. Vous ne devriez rencontrer APM que sur des ordinateurs et portables
relativement anciens. Dans ce cas, le fichier /proc/apm devrait vous renvoyer des informa-
tions sur l’état courant de l’alimentation. De surcroît, le processus kapmd est lancé au démar-
rage de l’ordinateur : il peut effectuer diverses opérations suivant l’état de la batterie
(afficher des messages d’avertissement, éteindre l’ordinateur, etc.).
Pour le contrôle manuel des fonctionnalités APM, faites appel à la commande apm. Utilisée
sans paramètre, la commande renseigne sur l’état d’alimentation courant (branché/débran-
ché, charge de la batterie). apm -S place l’ordinateur en mode Standby. Avec de nombreux
ordinateurs, toutefois, cela consiste simplement à éteindre l’écran. Éventuellement, la fré-
quence du processeur est également diminuée et les disques durs, éteints. Il suffit d’appuyer
sur une touche pour sortir l’ordinateur de sa veille.
apm -s active le mode Suspend. Si tout fonctionne correctement, l’ordinateur est alors entiè-
rement mis hors tension et n’a donc plus besoin que de très peu d’énergie. Le contenu de la
RAM est conservé de manière à pouvoir reprendre le travail immédiatement après la remise
sous tension. L’ordinateur peut être remis sous tension par le biais d’une combinaison de
touches dépendant du fabricant.
328 LINUX
330 LINUX
programmes. Lorsque des informations doivent être échangées entre plusieurs pro-
grammes à la fois, le programme dbus-daemon doit être utilisé en guise de "central télé-
phonique". La page web suivante constitue une introduction au fonctionnement interne
de D-Bus :
http://dbus.freedesktop.org/doc/dbus-tutorial.html
• Sous KDE 3, kioslave media:/ attend les informations en provenance de D-Bus et réagit
en conséquence. Sous KDE 4, le nouveau framework Solid est responsable du traite-
ment des informations en provenance de HAL et de D-Bus. Jusqu’à la version 2.20 de
Gnome, c’est gnome-volume-manager qui prenait en charge cette tâche (configuration par
le biais de gnome-volume-properties). À partir de la version 2.22, c’est Nautilus qui gère
les supports de stockage externes conjointement avec PolicyKit ; la configuration
s’effectue alors par le biais d’Éditer > Préférences > Volumes.
La configuration de HAL, de D-Bus et d’udev (que vous trouverez dans les répertoires /etc/hal, /etc/
dbus-1 et /etc/udev ) est décisive pour le bon fonctionnement de l’ensemble. De par la complexité
élevée que cela représente, vous êtes guidé par votre distribution dans la configuration du système
Hotplug. Seuls les experts Linux pourront s’en sortir en cas de problème lors d’une modification de la
configuration. Vous trouverez plus de détails sur ce sujet sur les pages suivantes :
http://webcvs.freedesktop.org/hal/hal/doc/spec/hal-linux26.png?view=co
http://qa.mandriva.com/twiki/bin/view/Main/HotPluggableHardwareRemovableMedia
http://www.freedesktop.org/wiki/Software/hal
http://www.redhat.com/magazine/003jan05/features/hal/
http://www.reactivated.net/writing_udev_rules.html
http://www.linuxformat.co.uk/pdfs/LXF66.tut_udev.pdf
Le remplacement de HAL par le DeviceKit est envisagé à une date indéterminée, mais pour le moment les
paris sont ouverts pour savoir si et quand une distribution franchira le pas :
http://lists.freedesktop.org/archives/hal/2008-May/011560.html
http://fedoraproject.org/wiki/Features/DeviceKit
Interfaces réseau
Pour la configuration des cartes Ethernet, du Wi-Fi, des modems analogiques, des cartes
RNIS et des modems ADSL, reportez-vous aux Chapitres 26 et 27.
Bluetooth Bluetooth est une méthode de communication radio entre périphériques matériels. Blue-
tooth possède une portée plus réduite que le Wi-Fi et est plus généralement utilisé pour les
téléphones portables, PDA et autres petits périphériques électroniques. Linux prend égale-
ment en charge Bluetooth mais, n’ayant pas pu tester moi-même la gestion du matériel
Bluetooth, je ne peux que vous renvoyer aux pages suivantes :
http://www.bluez.org/ ; http://www.holtmann.org/linux/bluetooth/ (collection de liens).
Linux Livre Page 331 Mardi, 23. septembre 2008 1:05 13
Commandes ALSA
alsactl enregistre ou charge tous les paramètres ALSA (volume, etc.)
alsamixer modifie le volume ou le niveau d’entrée de divers canaux audio ALSA
aplay lit un fichier audio
arecord enregistre un fichier audio
Linux Livre Page 332 Mardi, 23. septembre 2008 1:05 13
332 LINUX
Si les haut-parleurs restent silencieux, c’est bien souvent que l’un des réglages de volume est à 0. Pour une
utilisation standard, trois canaux sont importants : le volume principal pilote le niveau sonore du signal glo-
bal ; le volume PCM indique le niveau sonore des données audio générées par les programmes et insérées
dans le signal global (PCM est l’acronyme de Pulse Code Modulation : tous les lecteurs de MP3 utilisent, par
exemple, le canal PCM) ; enfin, le volume du CD indique le niveau sonore correspondant aux données
provenant directement du lecteur de CD (ce qui présuppose que le lecteur de CD et la carte audio soient
connectés par le biais d’un câble !).
Bibliothèques De nombreux programmes audio n’utilisent pas directement ALSA mais accèdent à des
audio
bibliothèques audio, un serveur de son, etc. Cette couche intermédiaire entre le système
ALSA (de bas niveau) et l’application audio effective doit faciliter la programmation, rendre
les applications audio utilisables à travers le réseau et assurer la coopération de programmes
audio s’exécutant simultanément.
Toutefois, le problème est qu’il n’existe pour le moment aucune architecture audio unifiée
au-dessus d’ALSA : KDE et Gnome ont chacun suivi leur propre chemin. Les applications
audio exigeantes, pour lesquelles les bibliothèques audio existantes sont insuffisantes, doi-
vent réimplémenter elles-mêmes des fonctionnalités audio élémentaires. Il est extrêmement
difficile de développer des logiciels audio capables de fonctionner indépendamment de
l’environnement de bureau de manière simple. Pour les programmeurs de la société Adobe,
les problèmes audio avaient même justifié la lenteur des développements pour le plugin
Flash Linux.
La liste qui suit présente rapidement quelques-uns des systèmes audio actuellement dispo-
nibles :
• aRts. aRts est l’acronyme d’analog real-time synthesizer et c’est la base audio pour KDE
2.n et 3.n. aRts est constitué d’une série de modules pour générer, filtrer, fusionner, etc.
les données audio. Les programmes KDE accèdent à aRts par le biais du démon aRtsd,
qui est lancé en même temps que KDE. Les programmes qui ne sont pas compatibles
avec aRts mais qui accèdent directement aux périphériques du module son du noyau
sont automatiquement redirigés par le biais de artsdsp. aRts n’est toutefois plus maintenu
et il deviendra obsolète avec la sortie de KDE 4.
• EsounD. EsounD (Enlightened Sound Daemon) était l’homologue d’aRts pour Gnome.
Les programmes compatibles avec EsounD envoient les données audio au démon esd,
qui est lancé en même temps que Gnome. EsounD a rencontré un sort comparable à
celui d’aRts : il est certes toujours installé avec Gnome pour des raisons de compati-
bilité, mais la plupart des applications audio reposent maintenant sur GStreamer.
• GStreamer. La bibliothèque GStreamer est un framework multimédia complet (audio et
vidéo) utilisé par de nombreux programmes Gnome. Grâce à son architecture par gref-
fons, il est très modulaire et peut être facilement étendu. Les codecs de différents for-
mats audio et vidéo sont également disponibles en tant que greffons. Contrairement à
aRts et EsounD, GStreamer ne comprend pas de démon pour la gestion du son. C’est
ALSA qui est directement responsable de la tâche principale, à savoir gérer plusieurs
signaux audio. Vous trouverez davantage d’informations sur la page suivante :
http://www.gstreamer.net
Linux Livre Page 333 Mardi, 23. septembre 2008 1:05 13
• Phonon. Le système audio servant de base à KDE 4 est Phonon. Cette bibliothèque doit
proposer une interface de programmation (API) unifiée pour l’utilisation de fonctionna-
lités audio tout en reposant, comme GStreamer, sur des bibliothèques audio et vidéo
existantes. L’objectif ici consiste à ce que les programmeurs d’applications audio et
vidéo sous KDE n’aient plus à se préoccuper de la compatibilité avec tous les moteurs
imaginables, mais qu’ils puissent accéder à ce moteur par le biais d’une interface cen-
trale. On ne peut pour le moment prévoir jusqu’à quel point cela sera possible sans
perte de fonctionnalités et d’efficacité. Le site web Phonon renseigne sur l’état actuel du
projet : http://phonon.kde.org/
• PulseAudio. PulseAudio est un serveur de son capable de fonctionner à travers un
réseau et proposant des fonctionnalités comparables au programme esd, qu’il remplace
sur les distributions récentes (Fedora depuis sa version 8, openSUSE depuis sa ver-
sion 11, Ubuntu depuis sa version 8.04). Au premier abord, vous ne devriez rien remar-
quer : tout devrait fonctionner comme à l’accoutumée. Toutefois, en coulisse, il se passe
beaucoup de choses : vous pouvez piloter séparément chacun des flux audio à l’aide du
programme pavucontrol et les affecter à une carte audio ou à un périphérique de sortie
de votre choix. PulseAudio devrait également reconnaître et activer automatiquement
tout périphérique audio complémentaire (par exemple des blocs USB). Vous trouverez
plus de détails sur ce projet sur les pages suivantes :
http://pulseaudio.org/
http://pulseaudio.org/wiki/FAQ
http://fedoraproject.org/wiki/Interviews/LennartPoettering
À ces systèmes audio s’ajoutent divers programmes contenant eux-mêmes des bibliothè-
ques audio ou multimédias complètes, qu’ils mettent à leur tour à la disposition d’autres
programmes. Deux exemples notables en sont le lecteur RealPlayer/HelixPlayer (bibliothè-
que Helix DNA) et le lecteur xine (bibliothèque xinelib) : https://helixcommunity.org/ ;
http://xinehq.de/.
Il n’est pas difficile de voir que les incompatibilités entre programmes et bibliothèques
audio sont volontaires.
Pour les musiciens et les utilisateurs professionnels, il existe des distributions dédiées optimisées pour les pro-
grammes audio : http://64studio.com/ ; http://jacklab.net/
334 LINUX
lecteur par le biais des commandes tar ou cpio. La commande mt vous permet de faire défi-
ler la bande en avant ou en arrière (voir à ce sujet la référence des commandes mt et tar).
Suivant le lecteur, vous devrez utiliser l’un ou l’autre des périphériques suivants.
Clavier et souris
Pour la disposition de clavier US, reportez-vous au Chapitre 2 ; les particularités des souris
sous Linux sont évoquées au Chapitre 3. La configuration du clavier et de la souris dans la
console texte est présentée un peu plus haut dans ce chapitre. La configuration du clavier et
de la souris avec X ainsi que la gestion des caractères spéciaux dans X sont traitées au
Chapitre 22.
journalisation sont dans ce cas configurés dans les fichiers de configuration propres du
programme.
Gestion des Les fichiers journaux ont pour caractéristique désagréable de grossir, lentement mais sûre-
fichiers
journaux ment. Il est donc régulièrement nécessaire de repartir d’un fichier journal vierge. Le fichier
utilisé jusqu’à ce moment doit alors être renommé et également, si possible, compressé. Il en
résulte donc des fichiers du type messages.1.gz, messages.2.gz, etc. Après un temps
d’archivage plus ou moins long, tous les fichiers journaux trop anciens sont totalement sup-
primés. Sur la plupart des distributions, une tâche cron appelle pour cela régulièrement le
programme logrotate. Son fonctionnement est piloté par les fichiers /etc/logrotate.conf
et /etc/logrotate.d/*.
Journalisation Sur les distributions anciennes, l’amorçage de Linux conduit à afficher les messages du
du processus
d’amorçage noyau et d’InitV à l’écran. Sur les distributions récentes, ces messages sont dissimulés par
une belle interface graphique ; toutefois, vous pouvez au besoin afficher ces messages par une
touche du clavier ou un clic de souris.
Lorsque vous utilisez le système, vous pouvez afficher à tout moment les messages du
noyau à l’aide de la commande dmesg. Les lignes qui suivent correspondent à un noyau 2.6
(la sortie a été notablement raccourcie pour des raisons de place) :
utilisateur$ dmesg
Linux version 2.6.20-1.2949.fc7 (gcc version 4.1.2 20070222) ...
BIOS-provided physical RAM map:
...
1151MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000ff780
Using x86 segment limits to approximate NX protection
Entering add_active_range(0, 0, 524192) 0 entries of 256 used
Zone PFN ranges:
DMA 0 -> 4096
Normal 4096 -> 229376
HighMem 229376 -> 524192
...
DMI 2.4 present.
Using APIC driver default
ACPI: RSDP 000FAE40, 0014 (r0 ACPIAM)
ACPI: RSDT 7FFA0000, 0034 (r1 A M I OEMRSDT 7000610 MSFT 97)
...
Processor #0 6:15 APIC version 20
Processor #1 6:15 APIC version 20
...
Allocating PCI resources starting at 88000000 (gap: 80000000:7ee00000)
Detected 2400.178 MHz processor.
Built 1 zonelists. Total pages: 517538
Kernel command line: ro root=LABEL=/12 rhgb quiet
...
Memory: 2058540k/2096768k available
(2144k kernel code, 36944k reserved, 1134k data, 248k init, 1179264k highmem)
Linux Livre Page 336 Mardi, 23. septembre 2008 1:05 13
336 LINUX
La mémoire tampon utilisée pour les messages du noyau et dont le contenu est affiché par
dmesg est limitée. Lorsqu’elle est pleine, les messages anciens sont écrasés par les plus
récents. Du fait que le noyau produit également des messages tout au long de son fonction-
nement (par exemple lors du chargement de nouveaux modules ou lorsque le noyau ren-
contre des erreurs), une journalisation complète des messages liés à l’amorçage n’est
possible qu’immédiatement après le démarrage du système. Pour cette raison, les messages
du noyau sont également enregistrés, dans la plupart des distributions, dans un fichier :
Debian, Fedora, Red Hat, Ubuntu /var/log/dmesg
SUSE /var/log/boot.msg (contient également les messages
InitV)
Messages Dès que le noyau est totalement initialisé, le premier processus qui se lance est le processus
InitV
InitV (ou un autre système pour le lancement des processus réseau, voir Chapitre 24). De
façon surprenante, la plupart des distributions renoncent à journaliser explicitement les
Linux Livre Page 338 Mardi, 23. septembre 2008 1:05 13
338 LINUX
Les paquetages d’une distribution Linux sont harmonisés entre eux. Cela signifie qu’ils utilisent un jeu de
bibliothèques unifié, qu’ils sont compilés avec le même compilateur, etc. Un débutant sous Linux a donc inté-
rêt à installer uniquement les paquetages fournis avec sa distribution.
L’installation de paquetages prévus pour une autre distribution pose souvent problème. Bien souvent,
installer un paquetage Red Hat sous SUSE ne fonctionne pas ou difficilement : il manque des bibliothè-
Linux Livre Page 340 Mardi, 23. septembre 2008 1:05 13
340 LINUX
ques, les dépendances ne sont pas résolues, etc. La résolution de ces problèmes demande beaucoup de
connaissances.
Administration Si vous êtes responsable de 50, 100 ou 1 000 ordinateurs, les outils de gestion de paquetages
centralisée de
plusieurs s’avèrent vite insuffisants. Vous avez besoin d’un outil qui permet de lancer des mises à jour
ordinateurs sur tous les ordinateurs (ou une partie d’entre eux). Ce type d’outils n’est actuellement dis-
ponible que pour les versions entreprise de Red Hat (http://www.europe.redhat.com/rhn/)
et de Novell (http://www.novell.com/fr-fr/products/zenworks/).
Notions de base
La plupart des paquetages RPM sont disponibles en deux versions : comme paquetage
binaire et paquetage de code source. Le paquetage binaire contient les fichiers nécessaires à
l’exécution du programme. Le paquetage de code source n’est intéressant que pour les
développeurs. Il contient le code source nécessaire pour construire un paquetage binaire.
Le nom du paquetage contient quelques informations : abc-2.0.7-1.i686.rpm décrit le
paquetage abc dans sa version 2.0.7, première version du paquetage (release). Si le paquetage
contient une erreur, si de la documentation est ajoutée ou si d’autres modifications sont
effectuées, le numéro de version du paquetage est supérieur à 1 pour une version donnée du
logiciel. Le numéro de version est donc celui du programme, et le numéro de version du
paquetage, celui de la version du RPM pour cette version donnée du programme.
i686 indique que le paquetage contient des fichiers destinés aux processeurs compatibles
avec le Pentium 2 − il existe des versions de Linux pour d’autres processeurs. Lorsque le
paquetage abc ne se compose que de scripts ou de fichiers texte, indépendants de l’architec-
ture du processeur, cet identifiant est remplacé par noarch. Lorsqu’il contient du code
source, c’est indiqué par l’identifiant src.
Linux Livre Page 341 Mardi, 23. septembre 2008 1:05 13
342 LINUX
Syntaxe et exemples
La syntaxe de base de rpm est rpm options nom_de_paquetage/fichier. Le nom de fichier
peut également être une adresse FTP ou HTTP. Les opérations de base sont effectuées avec
les options suivantes :
rpm --help et man rpm fournissent une référence complète de la commande. Les exemples
suivants illustrent l’utilisation de rpm dans des situations courantes :
root# rpm -i abc-2.0.7-1.i386.rpm
charge la clé GPG du serveur monserveur et l’enregistre comme fichier de clés pour RPM.
root# rpm -U http://monserveur/monchemin/abc-2.1.0-2.i386.rpm
liste tous les fichiers du paquetage abc qui ont été modifiés depuis l’installation.
root# rpm -e abc
liste tous les paquetages installés, triés par date d’installation (le dernier paquetage installé
en premier).
root# rpm -qa |grep -i mysql
liste tous les paquetages installés, dont le nom contient la chaîne mysql (indépendamment
de la casse).
root# rpm -qi perl
affiche des informations sur le paquetage Perl (si celui-ci est installé).
root# rpm -ql perl
indique quelles dépendances doivent être remplies pour installer le paquetage. Sous open-
SUSE, la liste des capacités est assez longue, mais contient entre autres libc.so.6, libm.so.6
et libmysqlclient.so.15.
root# rpm -q --requires -p alien-8.68-27.i586.rpm
utilise l’option -p afin d’afficher des listes de capacités pour les paquetages qui ne sont pas
encore installés. Cette option peut également être utilisée avec --provides.
root# rpm -q --what-provides mysqli.so
344 LINUX
Sur les distributions 64 bits, il arrive que rpm -qi renvoie des informations pour deux paquetages. Il ne
s’agit pas d’une erreur : c’est dû au fait que les paquetages 32 et 64 bits d’un programme ou d’une biblio-
thèque sont nommés de manière identique.
Dans less, utilisez la commande / pour chercher le texte nom_capacité. Installez alors le
paquetage trouvé, puis le paquetage que vous souhaitiez installer à l’origine.
Dans certains cas, en particulier lorsque vous avez installé des paquetages en dehors du système
rpm, ce dernier n’arrive pas à résoudre les dépendances, bien que les fichiers manquants
soient en fait présents. Vous pouvez alors mener l’installation à bien avec l’option --nodeps.
Vous devez néanmoins savoir ce que vous faites dans ce cas.
Configuration
Yum est configuré dans le fichier /etc/yum.conf. Les lignes suivantes représentent la confi-
guration de Fedora 9 :
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800 # 30 minutes
installonly_limit=2
keepcache=0 indique que les paquetages téléchargés ne doivent pas être archivés après leur
installation. Il s’agit d’un paramètre sensé, car la place nécessaire pour les paquetages peut
grossir de manière démesurée. De plus, il n’existe aucune raison d’installer un paquetage
une deuxième fois. Il arrive cependant que yum rencontre un problème et interrompe l’instal-
lation : dans ce cas, le paquetage est supprimé. Pour régler le problème et recommencer
l’installation, vous devez télécharger à nouveau le même paquetage. Pour éviter cette situa-
tion, utilisez keepcache=1. Pour supprimer explicitement les paquetages téléchargés, lancez
yum clean packages.
exactarch=1 indique que Yum ne prend en compte que les mises à jour qui correspondent à
l’architecture du paquetage courant. Ainsi, les paquetages i386 ne peuvent pas être remplacés
par des paquetages x86_64, même plus récents.
gpgcheck=1 demande à Yum de vérifier l’authenticité d’un paquetage avec une clé. gpgcheck
peut également être configuré pour des sources de paquetages individuelles.
plugins indique si Yum doit prendre en compte des greffons. Yum peut être étendu par des
greffons sous forme de fichiers Python. Les greffons sont configurés grâce à des fichiers du
répertoire /etc/yum/pluginconf.d.
metadata_expires définit combien de secondes sont disponibles les métadonnées d’une
source de paquetages. Yum enregistre les métadonnées dans un cache et ne les retélécharge
que lorsqu’elles sont périmées. Cela économise du temps et du volume de données téléchargées
Linux Livre Page 346 Mardi, 23. septembre 2008 1:05 13
346 LINUX
(les fichiers de métadonnées prennent beaucoup de place). Néanmoins, il arrive que Yum
ignore momentanément les modifications de la source de paquetages. yum clean metadata
permet de supprimer les métadonnées locales ; Yum est alors obligé de récupérer les méta-
données de toutes les sources.
Mise en place Chaque dépôt de paquetages est défini dans son propre fichier *.repo dans le répertoire
d’un dépôt de
paquetages /etc/yup.repos.d. On peut aussi définir les dépôts à la fin de la configuration de base
dans /etc/yum.conf, mais ce n’est pas très courant.
Les lignes suivantes proviennent de la définition des dépôts de Fedora 9. Les lignes baseurl,
mirrorlist et gpgkey ne sont coupées que pour des raisons de place.
[fedora]
name=Fedora $releasever - $basearch
# baseurl=http://download.fedora.redhat.com/pub/fedora/linux/...
# releases/$releasever/Everything/$basearch/os/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-
$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-
GPG-KEY
L’adresse du dépôt peut être saisie de manière absolue avec baseurl=... ou sous la forme
d’un fichier de miroirs avec mirrorlist=.... Ce fichier contient une liste des serveurs miroir
et Yum décide lui-même lequel utiliser. Il remplace dans le fichier de configuration les varia-
bles $releasever, $arch et $basearch par le numéro de version de la distribution et par
l’architecture.
Blocages des Pour bloquer un paquetage et éviter qu’il ne soit mis à jour par Yum, ajoutez dans yum.conf
paquetages
ou dans le fichier *.repo du dépôt une ligne exclude nom1 nom2 nom3. Vous pouvez utiliser
des caractères joker dans les noms de paquetages : exclude xemacs* est une ligne valide.
Mise à jour de En principe, vous pouvez mettre à jour votre distribution avec Yum. Pour cela, remplacez
la distribution
$releasever par le numéro de la distribution souhaitée dans le fichier de description du
dépôt. Lancez alors yum upgrade. Cependant, d’après mon expérience, les mises à jour de
distributions fonctionnent généralement assez mal, quel que soit le système de gestion
de paquetages. Il vaut mieux réinstaller le système.
Exemples
man yum fournit une référence complète de la syntaxe de yum. Les commandes suivantes sont
des exemples d’utilisation de yum.
root# yum check-update
indique quels paquetages seront mis à jour si vous lancez yum update.
root# yum update
La première utilisation de yum peut être assez longue, car les méta-données de tous les
dépôts de paquetages sont téléchargées. Les utilisations suivantes sont visiblement plus
rapides.
Paquetages de yum ne sait pas installer de paquetages de code source. Cette tâche est déléguée à yumdown-
code source
loader, qui se trouve dans le paquetage yum-utils. La commande suivante télécharge le
paquetage de code source de l’éditeur gedit dans le répertoire courant :
utilisateur$ yumdownloader --source gedit
348 LINUX
ensuite choisir dans les différents groupes (Updates, Disponibles, Installés, Tous) les paque-
tages à traiter, puis cliquer sur le bouton Traiter la file d’attente.
L’onglet Vue des paquetages en file d’attente affiche toutes les actions que Yumex va effec-
tuer. Le bouton Traiter la file d’attente démarre l’opération. Yumex examine alors toutes les
dépendances et affiche une boîte de dialogue de résumé. Vous devez confirmer avant que
les paquetages ne soient effectivement téléchargés et installés.
Figure 21.1
Gestion des paquetages
avec Yum Extender.
Syntaxe et exemples
Le tableau suivant résume les opérations de base de dpkg. Vous trouverez plus d’informa-
tions sur la syntaxe dans dpkg --help et man dpkg.
Linux Livre Page 349 Mardi, 23. septembre 2008 1:05 13
Les exemples suivants illustrent l’utilisation de dpkg dans des situations habituelles. En pra-
tique, dpkg est rarement utilisé. Dans la plupart des distributions, les paquetages sont admi-
nistrés grâce à APT ou un outil basé sur ce système.
root# dpkg --install test.deb
Dépaquetage de test (à partir de test.deb) ...
Paramétrage de test...
root# dpkg --search /etc/mediaprm
fdutils: /etc/mediaprm
root# dpkg --listfiles fdutils
/.
/usr
/usr/bin
/usr/bin/diskd
...
21.5 APT
APT (Advanced Packaging Tool, outil de paquetages avancé) est aux paquetages Debian ce
que Yum est aux paquetages RPM : un gestionnaire de haut niveau qui télécharge les paque-
tages depuis des dépôts et résout automatiquement les dépendances de paquetages. Il est
souvent remplacé par aptitude dans les versions plus récentes de Debian et d’Ubuntu, mais
reste une référence pour gérer les paquetages DEB.
Le système APT se compose de plusieurs commandes, dont la principale est apt-get. Lorsque
APT est correctement configuré, apt-get install nom_du_paquetage télécharge et installe le
paquetage indiqué et toutes ses dépendances.
Linux Livre Page 350 Mardi, 23. septembre 2008 1:05 13
350 LINUX
Configuration
APT est configuré par les fichiers apt.conf et sources.list du répertoire /etc/apt. D’autres
fichiers, optionnels, peuvent se trouver dans le répertoire /etc/apt.conf.d.
apt.conf ne contient généralement que quelques paramètres de base ; vous n’avez générale-
ment pas à toucher à la configuration fournie par votre distribution (man apt.conf détaille
les options de ce fichier). Le fichier sources.list (man sources.list) est plus intéressant : il
contient la liste des dépôts utilisés par APT. La syntaxe de chaque ligne est de ce type :
type adresse distribution [composants1] [composants2] [composants3] ...
type a la valeur deb pour les paquetages Debian classiques et deb-src pour les paquetages
de code source. La deuxième colonne indique l’adresse de base de la source de paquetages.
APT comprend les adresses HTTP et FTP, les répertoires, les serveurs RSH et SSH, ainsi que
les CD et DVD. Les dépôts sur CD et DVD sont cependant un cas particulier ; ils doivent être
installés avec la commande apt-cdrom.
La troisième colonne indique la distribution (un serveur peut distribuer des paquetages
pour plusieurs distributions ou versions). Les colonnes suivantes indiquent les composants
de la distribution pris en compte. Les noms des composants dépendent de la distribution et
du dépôt ! Sous Ubuntu, les paquetages se divisent en paquetages main, restricted, uni-
verse et multiverse, tandis que sous Debian, il s’agit des paquetages main, contrib, non-free, etc.
Si un paquetage est présent dans plusieurs dépôt, APT le télécharge depuis le premier dépôt
qu’il trouve. Les lignes suivantes illustrent la syntaxe. Elles proviennent de la configuration
de miroirs français pour Ubuntu 8.04.
deb cdrom:[Ubuntu 8.04 _Hardy Heron_ - Release i386 (20080423)]/ hardy main
restricted
deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted
deb http://fr.archive.ubuntu.com/ubuntu/ hardy universe multiverse
deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb http://archive.canonical.com/ubuntu hardy partner
Le plus simple pour modifier ce fichier est de l’ouvrir dans un éditeur de texte. Vous pouvez
aussi utiliser le programme apt-setup ou une interface graphique comme Synaptic.
Ajouter des Les CD peuvent aussi servir de dépôts de paquetages. On ne peut cependant pas les ajouter
dépôts sur CD
simplement dans sources.list. Vous devez lancer, pour chaque CD, la commande apt-
cdrom. Celle-ci lit les métadonnées du CD et ajoute les paquetages à prendre en compte dans
un fichier de cache. Puis, sources.list est mis à jour. Si apt-cdrom se plaint qu’il ne trouve
pas de CD/DVD, passez-lui en argument le répertoire de montage du CD avec -d :
root# apt-cdrom -d /media/dvd add
Installer des La plupart des métadonnées des dépôts sont signées par une clé. Les répertoires d’APT
clés
contiennent également des sommes de contrôle pour tous les paquetages. Vous pouvez,
grâce à ces mécanismes, vous assurer qu’un paquetage n’est pas modifié malicieusement.
Cependant, ce contrôle ne fonctionne que si APT dispose de la clé publique pour authenti-
fier les archives de paquetages. Pour installer une clé APT, utilisez la commande apt-key :
root# apt-key add fichier_de_cle.gpg
Linux Livre Page 351 Mardi, 23. septembre 2008 1:05 13
Exemples
Actualiser les Avant d’installer des paquetages, il est préférable de lancer apt-get update pour télécharger
informations
d’APT les dernières informations des dépôts. Cette commande n’installe pas de paquetage et n’en
met pas à jour. Il ne s’agit que des descriptions des paquetages !
root# apt-get update
Atteint http://archive.canonical.com hardy Release.gpg
...
Installer des Vous pouvez ensuite lancer apt-get install, auquel il faut donner le nom exact du paque-
paquetages
tage. Si la commande détecte des dépendances non résolues, elle propose de télécharger et
d’installer les paquetages manquants.
root# apt-get install wine
Lecture des listes de paquets... Fait
Construction de l’arbre des dépendances
Lecture des informations d’état... Fait
Les paquets supplémentaires suivants seront installés :
binfmt-support samba-common smbclient smbfs winbind
Les NOUVEAUX paquets suivants seront installés :
binfmt-support winbind wine
Les paquets suivants seront mis à jour :
samba-common smbclient smbfs
3 mis à jour, 3 nouvellement installés, 0 à enlever et 273 non mis à jour.
Il est nécessaire de prendre 17,5 Mo dans les archives.
Après cette opération, 60,8 Mo d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? o
...
Supprimer des apt-get remove paquetage supprime le paquetage indiqué. Les paquetages installés en tant
paquetages
que dépendances de ce paquetage ne sont pas désinstallés.
Actualiser des apt-get upgrade permet de mettre à jour tous les paquetages déjà installés.
paquetages
Installer un apt-get source paquetage installe le code source du paquetage dans le répertoire courant.
paquetage de
code source
Afficher des apt-cache permet d’afficher diverses données sur les paquetages disponibles et ceux déjà
informations
sur les installés (voir man apt-cache pour plus d’informations sur la syntaxe).
paquetages
root# apt-cache show apache2
Package: apache2
Priority: optional
Section: web
...
Description-fr: Serveur web de prochaine génération, modulable et évolutif
Apache v2 est la prochaine génération de l’omniprésent serveur web Apache.
Cette version - totalement réécrite - introduit de nombreuses nouvelles
améliorations comme le threading (exécution de processus légers indépendamment
du programme principal), une nouvelle API, le support de l’IPv6, le filtrage
de la requête/réponse, et plus encore.
...
Linux Livre Page 352 Mardi, 23. septembre 2008 1:05 13
352 LINUX
50unattended-updates indique quels dépôts sont pris en compte pour les mises à jour auto-
matiques (par défaut, uniquement les dépôts de mises à jour de sécurité critiques). Chaque
dépôt est décrit par deux informations : son origine et son nom.
Unattended-Upgrade::Allowed-Origins {
"Ubuntu hardy-security";
// "Ubuntu hardy-updates";
};
21.6 Synaptic
Il existe d’innombrables interfaces graphiques à APT. L’une des plus populaires est
Synaptic.
Installer des Pour installer un paquetage, cherchez-le avec le bouton Rechercher ou directement dans
paquetages
la liste, cliquez dessus du bouton droit et choisissez Sélectionner pour installation (voir
Figure 21.2). Si le paquetage dépend d’autres paquetages, une boîte de dialogue avec tous
les paquetages supplémentaires devant être installés apparaît.
Vous pouvez afficher la liste de tous les paquetages sélectionnés en cliquant sur le bouton
Filtres, puis Changements en file d’attente. L’installation commence lorsque vous cliquez
sur Appliquer, qui affiche un résumé de toutes les actions à mener. Une fois ce résumé
confirmé, Synaptic lance toutes les opérations d’installation. Les modifications sont enregistrées
et disponibles dans Fichier > Historique.
Linux Livre Page 353 Mardi, 23. septembre 2008 1:05 13
Figure 21.2
Gestion de paquetages
avec Synaptic.
Administration Les dépôts sont configurés dans Configuration > Dépôts. Vous pouvez les activer ou les
des dépôts
désactiver rapidement, modifier ceux qui sont prédéfinis ou en ajouter de nouveaux.
Problèmes
Vous pouvez rencontrer certains problèmes avec Synaptic. Les points suivants résument
l’origine et les solutions des plus courants.
Verrous Vous ne pouvez lancer qu’un seul gestionnaire de fichiers à la fois. Si vous essayez d’en lan-
cer deux en même temps, vous obtiendrez une erreur du type unable to get exclusive lock. Cela
signifie que le programme ne peut pas accéder aux fichiers de gestion de paquetages. Vous
devez donc arrêter l’un des deux programmes.
Il arrive aussi que cet avertissement apparaisse même lorsque aucun autre gestionnaire
n’est lancé : c’est le cas si un programme ne supprime pas le fichier de verrou lorsqu’il est
terminé. Il suffit alors de supprimer le fichier en question :
root# rm /var/lib/dpkg/lock
Paquetages Il arrive, dans de rares cas, que l’installation ou la désinstallation d’un paquetage ne fonc-
cassés
tionne pas ou que l’opération ne se termine pas bien. Le paquetage est alors marqué comme
cassé. Synaptic et les autres programmes de gestion de paquetages refuseront d’obéir à vos
ordres tant que ce problème ne sera pas résolu.
Dans Synaptic, cliquez sur Filtres, puis sur Cassés pour afficher une liste de tous les paque-
tages cassés. Sélectionnez-les tous avec Ctrl+A, cliquez du bouton droit sur la liste, puis
Linux Livre Page 354 Mardi, 23. septembre 2008 1:05 13
354 LINUX
choisissez Sélectionner pour réinstallation. Cliquez sur Appliquer. Si cela ne résout pas le
problème, supprimez les paquetages en question.
22.7 Aptitude
Le programme aptitude est également basé sur APT. Il peut être utilisé en ligne de com-
mande (aptitude install nom_du_paquetage) ou en tant que programme indépendant dans
une console. Pour cela, lancez aptitude sans paramètre supplémentaire ; Ctrl+T permet
d’afficher le menu (voir Figure 21.3).
Figure 21.3
Gestion des paquetages
avec Aptitude.
L’utilisation d’aptitude n’est pas aussi confortable que celle de Synaptic, mais il présente un
avantage décisif : il note quels paquetages ont été installés comme dépendances et les sup-
prime automatiquement lorsqu’ils ne sont plus utiles.
De plus, il installe également les paquetages "conseillés" en parallèle des paquetages à ins-
taller et de leurs dépendances.
Utilisation en aptitude peut également être installé en ligne de commande. Son utilisation ressemble à
ligne de
commande celle de apt-get. Les deux commandes suivantes installent le paquetage claws-mail-plu-
gins et le suppriment. Remarquez la suppression des paquetages installés par le jeu de
dépendances.
root# aptitude install claws-mail-plugins
Lecture des listes de paquets... Fait
...
Les NOUVEAUX paquets suivants vont être automatiquement installés :
claws-mail-bogofilter claws-mail-dillo-viewer claws-mail-pgpinline
claws-mail-pgpmime claws-mail-spamassassin claws-mail-trayicon dillo
...
Linux Livre Page 355 Mardi, 23. septembre 2008 1:05 13
Les commandes suivantes montrent comment extraire un fichier donné d’un paquetage
RPM. Celui-ci est transformé en archive tar et la commande tar est ensuite utilisée pour
extraire le fichier.
root# alien --to-tgz paquetage.rpm
root# tar -xzf paquetage.tgz ./usr/share/doc/packages/paket/TODO
Linux Livre Page 356 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 357 Mardi, 23. septembre 2008 1:05 13
Système XWindow
22
Le système XWindow (en abrégé, X) est un ensemble de fonctions et de protocoles qui per-
met d’afficher des informations graphiques à l’écran et de gérer le clavier et la souris. Ces
fonctions sont également disponibles sur le réseau.
Une première implémentation de XWindow provenait du projet XFree86. Il s’agissait au
départ d’un système développé uniquement pour les processeurs compatibles Intel x86,
mais il a été adapté depuis à presque toutes les architectures de processeurs et à d’innom-
brables dérivés d’Unix. Le projet X.org a vu le jour à partir de la version 4.4 de XFree86, suite
à des différends entre les développeurs de XFree86 concernant une modification de la
licence de XFree86, incompatible avec la licence GPL. Depuis, presque toutes les distributions
Linux utilisent le serveur X.org.
Ce chapitre se base sur les versions 7.1 à 7.3. Il décrit différents aspects de la configuration
d’un serveur X, y compris l’inclusion de pilotes binaires d’ATI/AMD et de NVIDIA. Nous
parlerons également des fonctions 3D du bureau, de la gestion des polices, ainsi que de
divers utilitaires X (comme xterm). Vous trouverez plus d’informations sur X et X.org à
l’adresse http://www.x.org.
22.1 Glossaire
Cette section éclaircit quelques notions de base et concepts auxquels vous serez probablement
confronté lors de la configuration de X.
Système Le système XWindow (abrégé en X) ne définit que les fonctions de base pour dessiner des
XWindow
points, des rectangles, etc. Il contient également un protocole réseau qui permet de lancer un
programme X sur l’ordinateur A et d’afficher les résultats sur l’ordinateur B. Fin 2007, la ver-
sion actuelle de X.org (7.3) se base sur X11R7.3. Le système XWindow a été développé au
départ par le MIT.
X est à la base d’une interface graphique pour Linux, mais il n’est pas en soi une interface
graphique. L’aspect des programmes X et leur utilisation dépendent des bibliothèques utilisées
par les programmeurs (par exemple, GTK pour Gnome, QT pour KDE) et du gestionnaire
de fenêtre actif.
Serveur X Le serveur X est l’interface entre le système XWindow et le matériel (carte graphique, souris,
etc.). Ce serveur est modulaire : il est étendu par des fonctions spéciales pour chaque carte
graphique.
Modules Les fonctions standard du serveur X peuvent être étendues par divers modules d’extension,
d’extension
de X par exemple pour les graphismes 3D, une sortie vidéo plus rapide, etc.
Écran virtuel Le serveur X sait exploiter un écran virtuel plus grand que la résolution effective du moni-
teur. Par exemple, l’écran virtuel peut avoir une résolution de 1600x1200, tandis que seuls
Linux Livre Page 358 Mardi, 23. septembre 2008 1:05 13
358 LINUX
1280x1024 pixels s’affichent à l’écran. Le changement de zone visible se fait sans ralentis-
sement dès que la souris s’approche du bord de l’écran.
Comme le fait de travailler avec un écran virtuel demande un peu d’habitude, la plupart des
configurations X l’évitent. Un écran virtuel peut cependant s’avérer utile si votre résolution
est très faible, par exemple sur un vieil ordinateur portable.
Bureaux Un bureau virtuel est une interface graphique élargie qui se compose de plusieurs écrans
virtuels
(espaces de travail) côte à côte. Comme vous n’avez qu’un seul moniteur physique, vous ne
pouvez voir qu’un seul bureau à la fois. Les bureaux virtuels ne sont pas gérés par X, mais
par le gestionnaire de fenêtre ou de bureau (KDE, Gnome).
Xinerama Avec une carte graphique appropriée, le serveur X peut exploiter plusieurs moniteurs grâce
au mode Xinerama. L’espace de travail s’étale alors sur plusieurs moniteurs.
Gestionnaire Le gestionnaire de fenêtres est un programme X qui sert à gérer les fenêtres. Vous pouvez
de fenêtres
ainsi démarrer d’autres programmes (au moins une fenêtre de terminal xterm), passer d’une
fenêtre à une autre, déplacer et fermer des fenêtres, etc. Il s’agit de tâches très simples,
mais il ne faut pas oublier qu’elles sont gérées par le gestionnaire de fenêtres et non par X.
enlightenment, fvwm et xfce sont des gestionnaires de fenêtres usuels.
Gestionnaire Les gestionnaires de bureau, comme KDE ou Gnome, vont au-delà des fonctions d’un ges-
de bureau
tionnaire de fenêtre. Grâce aux bibliothèques graphiques, les applications KDE et Gnome
sont plus unifiées, à la fois au niveau de leur aspect et de leur utilisation. Les communica-
tions entre les programmes sont standardisées au point que le glisser-déposer entre diffé-
rents programmes fonctionne. Vous trouverez plus d’informations sur Gnome et KDE aux
Chapitres 4 et 5.
Du fait que KDE et Gnome sont de plus en plus populaires, il est devenu peu fréquent d’uti-
liser X avec un simple gestionnaire de fenêtre sans gestionnaire de bureau. Il existe cepen-
dant des cas où ce choix a un sens, par exemple sur un ordinateur avec peu de mémoire vive
ou un processeur lent (KDE et Gnome sont plutôt gourmands en ressources).
Bureau 3D Depuis 2006, il existe des gestionnaires de fenêtres qui "améliorent" diverses opérations
grâce aux fonctions 3D de la carte graphique : les fenêtres sont déformées lorsqu’elles sont
déplacées, les bureaux sont projetés sur un cube lorsqu’on change de bureau, etc. Des effets
similaires sont utilisés sous Mac OS X et Windows Vista.
Glossaire matériel
Même si les écrans cathodiques se font rares, connaître le fonctionnement d’un tel moniteur
aide à comprendre les paramètres de configuration d’une carte graphique. Pour afficher une
image, un moniteur cathodique parcourt ligne par ligne toute la surface de l’écran avec un
faisceau d’électrons et allume des petits points (sauf si ces derniers doivent rester noirs).
Pour que l’image ne scintille pas, ce processus est répété plusieurs fois par seconde (au
moins 60, de préférence 70 à 100 fois).
Balayage Le balayage de l’écran commence dans le coin en haut à gauche. Le faisceau d’électrons se
horizontal
(HSync) déplace vers la droite et parcourt ainsi la première ligne. Il saute alors au début de la
deuxième ligne et la traite de la même manière. Pendant ce retour du faisceau, celui-ci a une
intensité nulle pour qu’il ne soit pas visible. Ce retour est déclenché par l’impulsion HSync,
transmise de la carte graphique au moniteur.
Linux Livre Page 359 Mardi, 23. septembre 2008 1:05 13
Il ne faut pas dépasser les fréquences maximales d’un écran cathodique ! Sinon, le faisceau ne peut pas sui-
vre les données, des zones de l’écran (voire l’écran entier) sont éclairées trop longtemps ou trop souvent,
et l’écran peut rapidement être détruit. Les moniteurs modernes reconnaissent normalement cette situation
et désactivent automatiquement le faisceau ; pour un moniteur plus ancien, le risque de destruction est
réel.
Fréquence de Cette fréquence indique le nombre de pixels qui sont transmis de la carte graphique au
pixels (débit
vidéo) moniteur en une seconde. En 640 × 480 à une fréquence de 60 Hz, la valeur minimale est de
18,4 MHz. Pour prendre en compte le temps de retour sur le balayage, la fréquence vidéo est
normalement plus proche de 25 MHz.
Comparaison Sur un écran plat, l’image est construite par de l’électronique de pilotage qui rend plus ou
entre les
écrans moins transparentes des petites parties de la surface de l’écran. Il n’est donc plus nécessaire
cathodiques et de construire l’image ligne par ligne.
LCD
Les moniteurs LCD avec une entrée analogique traitent, pour des raisons de compatibilité, les
mêmes signaux d’entrée que les moniteurs cathodiques. Le signal est donc converti deux fois :
de la carte graphique numérique au câble analogique puis à l’écran numérique. Cela peut faire
légèrement scintiller l’image. La qualité est meilleure lorsque le signal est transmis en numé-
rique via un câble DVI entre les prises correspondantes de la carte graphique et de l’écran.
La qualité de l’image n’est optimale que lorsque la résolution du moniteur (par exemple
1280 × 1024) est respectée avec exactitude. Contrairement aux écrans cathodiques, les fré-
quences d’image sont le plus souvent fixées (généralement, entre 60 et 75 Hz). Une fré-
quence trop élevée peut entraîner un écran noir : aucune image ne s’affiche, car la fréquence
maximale de l’électronique de commande est dépassée.
DDC (Display La plupart des moniteurs modernes transmettent leurs références (par exemple, leur
Data Channel
− canal de fréquence maximale) à la carte vidéo par le biais du câble de l’écran. Cela permet
données de reconnaître automatiquement l’écran et aide à configurer correctement la carte
d’affichage)
graphique.
Linux Livre Page 360 Mardi, 23. septembre 2008 1:05 13
360 LINUX
• Pour que les pilotes graphiques fonctionnent de manière efficace, il est nécessaire de les
lier étroitement au noyau Linux. Il existe donc entre le pilote réel (propriétaire) et le
noyau (sous licence GPL) un petit module de noyau qui sert uniquement d’interface
entre ces deux parties.
De nombreux développeurs de Linux doutent que cette façon de procéder soit conforme
à la GPL et ne la tolèrent qu’à contrecœur. Ils décrivent un tel noyau comme tainted
(entaché) et déclinent dans ce cas toute responsabilité vis-à-vis d’éventuels problèmes
de stabilité.
La proximité avec le noyau a un inconvénient supplémentaire : après une mise à jour du
noyau, le module de la carte graphique doit également être actualisé pour être compati-
ble avec le noyau. La complexité de cette opération dépend de la distribution. Dans un
cas idéal, le pilote est mis à jour automatiquement par le gestionnaire de paquetages.
Sinon, le système graphique ne fonctionne plus et vous devez recompiler un module de
noyau dans une console.
• En raison des conflits avec la GPL, la redistribution de pilotes fermés est difficile au vu
des licences utilisées. Pour de nombreuses distributions, vous devez télécharger et ins-
taller vous-même ces pilotes. Cette opération est plus ou moins complexe suivant la dis-
tribution : certaines privilégient le confort des utilisateurs par rapport à la stricte
observance des idéaux libres.
• Comme le code des pilotes graphiques n’est connu que des entreprises correspondan-
tes, il est impossible d’en contrôler la sécurité depuis l’extérieur. Si un pilote rencontre
un problème de sécurité (ce qui s’est déjà produit), les utilisateurs de Linux ne peuvent
qu’espérer que l’entreprise concernée fournisse une mise à jour rapide − pour du code
libre, la communauté de développeurs peut s’en occuper elle-même, ce qui va généralement
plus vite.
• Faute de code, il est impossible de porter les pilotes pour d’autres systèmes d’exploita-
tion, d’autres architectures de processeurs, etc. Les entreprises décident quels systèmes
sont pris en charge. Par exemple, les architectures 64 bits ont longtemps été exclues de
ces pilotes.
• La prise en charge graphique sous Linux dépend de la bonne volonté d’une poignée
d’entreprises. Il est déjà arrivé qu’une carte graphique soit soudain inutilisable suite à
une nouvelle version de X.
Jusqu’à récemment, on pouvait résoudre le dilemme des pilotes en se disant que les pilotes
libres suffisaient pour la 2D et que les fonctions 3D ne jouaient qu’un rôle mineur sous
Linux. Ce n’est plus vrai : les bureaux 3D commencent à s’établir comme des standards. De
plus, certains processeurs graphiques ne fonctionnent plus non plus en 2D sans pilote du
fabricant.
Linux ne peut rester un système complètement libre que si les principaux composants le
sont également. Et ces derniers comptent évidemment les pilotes graphiques. Renseignez-
vous lors de vos prochains achats de matériel sur le statut des pilotes !
Linux Livre Page 362 Mardi, 23. septembre 2008 1:05 13
362 LINUX
Arrêter X X fonctionne normalement jusqu’à l’arrêt de l’ordinateur sans qu’il faille l’arrêter. Vous pou-
vez connecter et déconnecter n’importe quel utilisateur. X fonctionne aussi lorsque aucun
utilisateur n’est connecté et affiche, dans ce cas, la boîte de dialogue de connexion. Vous
pouvez facilement passer à une console texte avec Ctrl+Alt+Fn. X fonctionne alors toujours
et vous pouvez y retourner avec Alt+F7 ou, dans certaines distributions, Alt+F5.
Si vous désirez réellement arrêter X (par exemple, pour effectuer des tâches de configu-
ration), déconnectez-vous du bureau courant, passez dans une console texte avec
Ctrl+Alt+F1, puis connectez-vous en tant que root et lancez init 3. Cette procédure fonc-
tionne dans de nombreuses distributions, comme Fedora, Red Hat et SUSE.
root# init 3
En ce qui concerne les distributions basées sur Debian (Debian, Ubuntu), vous devez dans
cette même console texte arrêter le gestionnaire d’affichage gdm, kdm ou xdm.
root# /etc/init.d/gdm|kdm|xdm stop
Pour réactiver le démarrage automatique, les deux commandes suivantes sont nécessaires. Les
valeurs 30 et 1 indiquent les valeurs de priorité pour le démarrage et l’arrêt du service. Elles
varient selon la distribution ; celles indiquées ici sont les valeurs par défaut d’Ubuntu 8.04.
root# update-rc.d -f gdm remove
root# update-rc.d gdm defaults 30 1
Démarrer Lorsque X n’est temporairement pas lancé, il existe deux possibilités pour le démarrer
manuellement
X manuellement. Jusqu’à ce que la configuration soit stable, utilisez de préférence la première.
• startx. Cette commande démarre directement X. Il n’y a pas de boîte de dialogue de
connexion. L’utilisateur qui lance startx est l’utilisateur connecté sous X.
Certaines distributions (Fedora jusqu’à sa version 7 et RHEL jusqu’à sa version 5.n)
s’appuient sur le fait qu’un serveur de polices est lancé avant le démarrage de X. Si vous
lancez X manuellement, ce n’est pas le cas. Vous devez alors démarrer aussi manuellement
le serveur de polices (ce qui n’est faisable qu’en tant que root).
root# /etc/init.d/xfs start
utilisateur$ startx
Pour les distributions basées sur Debian, il faut lancer explicitement le gestionnaire
d’affichage :
root# /etc/init.d/gdm|kdm|xdm start
Fichiers de journalisation de X
Au démarrage de X, d’innombrables messages, avertissements, voire messages d’erreur
sont enregistrés dans le fichier /var/log/Xorg.0.log. Ce dernier contient des informations
supplémentaires sur le fichier de configuration utilisé, les modules chargés, les problèmes
rencontrés, le mode graphique utilisé ou encore les raisons de cette utilisation. Les lignes de
ce fichier sont annotées par les codes suivants :
(**) paramètre provenant du fichier de configuration
(++) paramètre provenant de la ligne de commande
(==) paramètre par défaut de X
Linux Livre Page 364 Mardi, 23. septembre 2008 1:05 13
364 LINUX
Déterminer la version de X
Pour connaître la version de X que votre ordinateur utilise, lancez la commande suivante.
Depuis quelque temps, celle-ci ne renvoie plus la version de X (par exemple, 7.2 pour
X11R7.2), mais le numéro de version du serveur (celle du programme Xorg).
utilisateur$ X -showconfig
...
X.Org X Server 1.4.0.90
Release Date: 5 September 2007
X Protocol Version 11, Revision 0
...
Cette section s’adresse aux lecteurs qui s’intéressent à la configuration interne de X ou qui ont des problèmes
de configuration. Normalement, vous ne devriez pas modifier x.org manuellement, mais utiliser les outils de
configuration de votre distribution :
Debian dpkg-reconfigure xserver-xorg
Fedora, Red Hat system-config-display
Linux Livre Page 365 Mardi, 23. septembre 2008 1:05 13
Depuis la version 7.3, le serveur X.org reconnaît lui-même le matériel. Grâce à ces don-
nées, X peut démarrer sans fichier de configuration (au moins, dans un mode graphique
restreint).
Un fichier de configuration classique ne contient qu’une partie de ces sections. X utilise dans
ce cas les paramètres par défaut ou tente de détecter lui-même le matériel. Les lignes suivan-
tes offrent un exemple minimal de configuration. Une de mes machines de test dispose
d’une carte graphique NVIDIA et d’un écran LCD ; elle fonctionne sans problème avec ce
fichier de configuration. Cet exemple suppose qu’un serveur de polices fonctionne ou que
les polices se trouvent dans les répertoires de polices par défaut. Si ce n’est pas le cas, vous
devez indiquer dans une section Files l’emplacement des fichiers de polices. X reconnaît la
bonne résolution de l’écran et la souris.
# /etc/X11/xorg.conf
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "InputDevice"
Linux Livre Page 366 Mardi, 23. septembre 2008 1:05 13
366 LINUX
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbVariant" "nodeadkeys"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nv"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Vous remarquerez sûrement que toutes les sections incluent une ligne Identifier. Elle
donne un nom à la section. Les noms sont utilisés pour agencer des sections individuelles.
Par exemple, la section ServerLayout fait appel à Screen0 et Keyboard0.
Certaines configurations incluent également des chaînes de caractères telles que Board, Vendor
ou ModelName. Ces informations ne servent qu’à rendre plus clair le fichier de configuration.
Elles ne sont pas utilisées par X et n’ont aucune relation avec les fonctions de X.
man xorg.conf est une référence complète des mots clés et sections de xorg.conf.
Pour un écran cathodique traditionnel, la fréquence d’image doit être plus élevée pour affi-
cher des images sans scintillement. Les données suivantes s’appliquent à un moniteur 19"
cathodique classique. Attention, des valeurs élevées pour ces deux intervalles peuvent
mener à la destruction de votre écran cathodique !
HorizSync 27-102 # 27 bis 102 kHz (lignes/sec)
VertRefresh 50-160 # 50 bis 160 Hz (images/sec)
Linux Livre Page 367 Mardi, 23. septembre 2008 1:05 13
En pratique, ces valeurs sont rarement renseignées lorsqu’un écran LCD est branché. La sec-
tion ne sert alors qu’à indiquer les éventuelles options, comme l’économie d’énergie du
moniteur.
Le résultat n’indique cependant pas toujours le pilote graphique nécessaire. Dans ce cas, les
notes de version de X.org (http://www.x.org/wiki/XorgReleases) sont très utiles, tout
comme les pages de manuel qui sont indiquées. Par exemple, man radeon offre des informations
sur le pilote Radeon et man nv sur le pilote NVIDIA de X.org.
Si vous n’avez pas de chance, votre carte graphique n’est pas encore prise en charge par
X.org, ou alors partiellement. Il s’agit peut-être d’un problème de détection de la carte : vous
avez indiqué le bon module dans la section Device, mais X ne reconnaît pas la carte. Dans ce
cas, vous pouvez essayer d’indiquer l’identifiant d’une carte compatible avec l’option
ChipID (par exemple ChipID "0x1234"). Le fichier pci.ids fournit une liste d’identifiants
valides. L’emplacement de ce fichier dépend de la distribution : /usr/share, /usr/share/
hwdata ou /var/lib/misc. Les forums de discussion peuvent également être un bon point de
départ pour trouver une valeur correcte de ChipID.
Si votre carte ne fonctionne toujours pas, vous pouvez utiliser les pilotes vga, vesa ou fbdev.
Ils fonctionnent avec presque toutes les cartes graphiques, mais leurs performances sont
relativement limitées.
Options Presque tous les pilotes disposent d’options pour définir des paramètres spéciaux, contour-
spécifiques
aux pilotes ner des problèmes ou activer des fonctions particulières. Nous ne pouvons pas les décrire ici
pour des raisons de place. Vous trouverez des informations détaillées sur ces options dans
les pages de manuel correspondant aux pilotes (par exemple man radeon). Les lignes suivan-
tes illustrent, par exemple, l’utilisation de l’option DisplayPriority, nécessaire sur un ordi-
nateur portable pour obtenir une image stable sur un moniteur TFT relié à la station
d’accueil :
Driver "radeon"
Option "DisplayPriority" "High"
Linux Livre Page 368 Mardi, 23. septembre 2008 1:05 13
368 LINUX
La ligne Modes, optionnelle, peut définir la résolution souhaitée. Si cette ligne est omise ou
contient une résolution invalide, X détermine automatiquement la meilleure résolution
adaptée à l’écran et à la carte graphique. Il utilise pour cela une base de données de modes
qui contient les paramètres de résolutions définis par les modes VESA − VESA signifie Video
Electronics Standard Association et définit une série de normes suivies par la plupart des car-
tes graphiques.
Il n’est malheureusement pas possible de configurer directement la fréquence d’image. X
définit cette valeur lui-même en fonction des données de l’écran et de la carte graphique.
La section Display peut aussi définir la taille d’un écran virtuel. Par exemple, Virtual 1600
1200 définit un écran virtuel de 1600x1200 pixels, quelle que soit la résolution réelle de
l’écran.
Linux Livre Page 369 Mardi, 23. septembre 2008 1:05 13
Si la ligne Modes définit plusieurs résolutions valides, X utilise la première comme paramétrage de base.
Vous pouvez ensuite passer entre les différentes résolutions avec Ctrl+Alt++. Vous devez pour cela utiliser la
touche + du pavé numérique.
Section ServerLayout
La section ServerLayout lie les sections Screen et InputDevice. Généralement, un fichier de
configuration ne contient qu’une seule section Screen et deux sections InputDevice (souris
et clavier). Dans ce cas, la section ServerLayout peut être omise, car X combine les sections
Screen et InputDevice selon ce schéma :
Section "ServerLayout"
Identifier "Layout0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Screen "Screen0"
EndSection
Xinerama La section ServerLayout est particulièrement importante lorsque plusieurs moniteurs sont
utilisés en même temps. Il faut alors activer le mode multi-écrans avec Option "Xinerama"
"On" et définir une section Screen par écran. La configuration minimale pour deux moni-
teurs est indiquée ci-après. Notez que vous avez aussi besoin de deux sections Device,
même lorsqu’il n’y a qu’une seule carte graphique.
# deux sections Monitor
Section "Monitor"
Identifier "Monitor1"
...
EndSection
Section "Monitor"
Identifier "Monitor2"
...
EndSection
# deux sections Device, une par moniteur
Section "Device"
Identifier "Videocard1a"
Driver "..."
Screen 0
...
EndSection
Section "Device"
Identifier "Videocard1b"
Driver "..."
Screen 1
...
EndSection
# deux sections Screen qui associent une section Device à une section
Linux Livre Page 370 Mardi, 23. septembre 2008 1:05 13
370 LINUX
# Monitor
Section "Screen"
Identifier "Screen1a"
Device "Videocard1a"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1b"
Device "Videocard1b"
Monitor "Monitor2"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
# une section ServerLayout qui assemble les sections Screen
Section "ServerLayout"
Identifier "Layout1"
Screen 0 "Screen1a" LeftOf "Screen1b"
Screen 1 "Screen1b"
Option "Xinerama" "on"
InputDevice ...
EndSection
Plusieurs On peut définir plusieurs sections ServerLayout pour différents scénarios d’utilisation, par
dispositions
exemple Layout0 pour utiliser un portable de manière classique, Layout1 pour une présenta-
tion sur un vidéoprojecteur et Layout2 pour utiliser un moniteur externe. L’option Default-
ServerLayout dans la section ServerFlags permet de choisir la disposition par défaut.
Section Files
La section Files permet d’indiquer divers répertoires depuis lesquels le serveur X charge
des fichiers. Ils ne sont nécessaires que lorsqu’ils diffèrent des répertoires par défaut. Nous
parlerons des répertoires FontPath à la section 22.14.
Section Module
La section Module contient, grâce au mot clé Load, différents modules d’extensions à charger
par le serveur X :
Section "Module"
Load "extmod"
...
EndSection
Linux Livre Page 371 Mardi, 23. septembre 2008 1:05 13
La section Module est optionnelle : la plupart des modules importants sont chargés automa-
tiquement. Les fichiers de modules se trouvent le plus souvent dans les répertoires /usr/
lib[64]/xorg/modules/extensions et /usr/lib[64]/xorg/modules/fonts. Le tableau sui-
vant indique les principaux modules.
Modules importants
extmod extensions souvent installées dans X, presque toujours essentielles
v4l Video 4 Linux (vidéo pour Linux)
dri Direct Rendering Infrastructure (infrastructure de rendu direct)
glx interface du protocole OpenGL X
dbe Double Buffering Extension (extension de tampon double)
freetype prise en charge des polices TrueType
type1 prise en charge des polices Adobe-Type-1
speedo prise en charge des polices Bitstream
Section ServerFlags
La section ServerFlags contient des options qui influent sur le comportement du serveur X :
Section "ServerFlags"
Option "DontZap" "on"
Option "DefaultServerLayout" "Layout2"
EndSection
Une description complète de toutes les options se trouve dans man xorg.conf. Voici les plus
importantes :
• AllowMouseOpenFail (par défaut, off) permet à X de démarrer même lorsqu’il échoue à
initialiser ou reconnaître la souris.
• DefaultServerLayout indique la section ServerLayout à utiliser par défaut. Cette option
n’est nécessaire que lorsque xorg.conf contient plusieurs sections ServerLayout.
• DontZap (par défaut, off) désactive, lorsqu’elle est à on, la terminaison immédiate du
serveur X avec la combinaison de touches Ctrl+Alt+Retour Arrière.
• DontVTSwitch (par défaut, off) désactive, lorsqu’elle est à on, le passage à une console
texte avec Ctrl+Alt+Fn.
372 LINUX
Si vous désirez utiliser une autre résolution (ce qui peut être nécessaire sur certains ordina-
teurs portables dont l’écran utilise une résolution non standard, par exemple 1024x600) ou
atteindre une fréquence donnée, vous devez indiquer vous-même les paramètres du mode
graphique souhaité. Pour cela, lancez la commande ModeLine dans la section Monitor. Vous
pouvez aussi décrire ces paramètres dans une sous-section délimitée par Mode et EndMode.
Ces opérations sont rares aujourd’hui. Il existe certains tutoriels de calcul de modes,
par exemple aux adresses http://koala.ilog.fr/cgi-bin/nph-colas-modelines-fr ou
http://www.traduc.org/docs/HOWTO/lecture/XFree86-Video-Timings-HOWTO.html.
XVideo
XVideo (V4L) Les lecteurs vidéo sous Linux (voir Chapitre 11) affichent, lorsque c’est possible, les images
sur l’extension XVideo (en abrégé, XV) grâce à de la mémoire partagée de la carte graphi-
que. Cette méthode nécessite le module de noyau v4l2 (Video 4 Linux version 2). Elle est
très efficace, mais ne fonctionne que lorsque le pilote de la carte graphique prend en charge
XV, ce qui n’est malheureusement pas toujours le cas.
Si c’est le cas, l’extension X correspondante est normalement activée automatiquement.
Dans certaines circonstances, vous pouvez avoir à activer manuellement le module avec la
ligne Load "v4l" dans la section Module. Vous pouvez voir si XV est pris en charge avec
la commande xvinfo. Celle-ci devrait renvoyer une longue liste d’informations à propos de
diverses fonctions XVideo. Si le résultat est no adaptors present, XV n’est pas utilisable. Vous
trouverez d’autres informations sur XV et Video 4 Linux aux adresses http://linuxtv.org/
v4lwiki/index.php/Main_Page et http://www.exploits.org/v4l.
DGA Si le pilote de votre carte graphique ne prend pas en charge XV, DGA fonctionne peut-
être. À l’instar de XV, il est activé automatiquement si le pilote reconnaît cette extension.
Vous pouvez le tester avec le programme dga. B lance un test de performances et Q quitte
le programme.
• fglrx. Pilote propriétaire pour les modèles Radeon à partir du R300. Il prend en charge tou-
tes les fonctions des cartes graphiques actuelles, mais pas celles des cartes plus anciennes.
Le pilote radeon fonctionne convenablement avec les cartes R100 à R400 (voir man radeon),
mais il ne prend pas forcément en charge toutes les fonctions des cartes graphiques et est
sensiblement plus lent que fglrx. J’ai personnellement testé les deux pilotes sur mon porta-
ble doté d’une carte ATI Mobility T2 (famille R300). Depuis X.org version 7.2, radeon suffit à
mes besoins : la sortie DVI fonctionne jusqu’à une résolution 1600x1200 dans scintillement
et les fonctions 3D permettent l’utilisation du bureau 3D AIGLX.
Le nom de la carte graphique n’indique pas quel processeur graphique est utilisé. La page Wikipedia sui-
vante s’avère souvent utile :
http://en.wikipedia.org/wiki/Comparison_of_ATI_Graphics_Processing_Units.
Pilote radeon
Le pilote radeon fait partie du système X.org ; il n’est pas nécessaire de l’installer séparément.
La configuration xorg.conf minimale se compose des lignes suivantes :
Section "Device"
Identifier "Device0"
Driver "radeon"
EndSection
man radeon fournit une référence complète des diverses options associées au pilote.
Pilote fglrx
Seules quelques distributions fournissent directement le pilote fglrx. Cependant, il existe
souvent des dépôts qui contiennent des paquetages pour le pilote correspondant au noyau
courant. L’installation est alors un jeu d’enfant : le pilote est installé avec les commandes
habituelles du gestionnaire de paquetages, une fois le dépôt ajouté.
Pour activer le pilote, lancez la commande aticonfig --initial. Elle modifie xorg.conf
pour qu’il contienne une référence au pilote fglrx :
Section "Device"
Identifier "Device0"
Driver "fglrx"
EndSection
aticonfig permet également de mettre en place des configurations plus avancées, par
exemple pour utiliser plusieurs moniteurs (aticonfig --initial=dual).
La nouvelle configuration xorg.conf n’est fonctionnelle que lorsque vous redémarrez X.
Pour que les fonctions 3D de la carte soient effectivement utilisées, il faut que les conditions
suivantes soient remplies :
• xorg.conf doit contenir l’instruction Load "dri" dans la section Modules.
Linux Livre Page 374 Mardi, 23. septembre 2008 1:05 13
374 LINUX
• Le module du noyau fglrx doit être chargé, ce dont se charge normalement le serveur X
au démarrage. Pour savoir si ce module est effectivement actif, le plus simple est de lan-
cer lsmod |grep fglrx. S’il n’est pas chargé, il n’est probablement pas installé ou incom-
patible avec la version courante du noyau.
Installation Si votre distribution ne dispose pas de paquetages pour les pilotes, vous devez les installer
manuelle
manuellement. Pour cela, installez tous les programmes nécessaires à la compilation d’un
module du noyau (compilateur C, make, fichiers d’en-têtes du noyau, etc.). Téléchargez
ensuite le pilote à la page http://ati.amd.com/support/driver.html, rendez le fichier télé-
chargé exécutable avec chmod u+x et lancez-le en root.
Pilote radeonhd
Le pilote radeonhd est fourni dans certaines distributions et il suffit alors de l’installer. Les
pages http://wiki.x.org/wiki/radeonhd et http://www.radeonhd.org/ fournissent des infor-
mations à jour sur le statut de ce pilote.
Pilote nv
Le pilote nv fait partie du système X.org et ne nécessite pas d’installation supplémentaire.
La configuration minimale contient les lignes suivantes :
Section "Device"
Identifier "Device0"
Driver "nv"
EndSection
man nv fournit une référence des options et des fonctions spéciales du pilote.
Pilote nvidia
Seules quelques distributions fournissent directement le pilote nvidia. Il existe cependant
souvent des dépôts contenant des paquetages pour le pilote correspondant au noyau courant.
L’installation est alors un jeu d’enfant : le pilote est installé avec les commandes habituelles
du gestionnaire de paquetages, une fois le dépôt ajouté.
La documentation du pilote NVIDIA est très complète et se trouve normalement dans un
des répertoires /usr/share/doc/xorg-x11-drv-nvidia* ou /usr/share/doc/NVIDIA*.
xorg.conf Pour activer le pilote, lancez la commande nvidia-xconfig en root. Celle-ci modifie
xorg.conf pour faire référence au pilote dans la section Device :
Section "Device"
Identifier "Device0"
Driver "nvidia"
EndSection
Selon l’emplacement où a été installé le pilote NVIDIA, la section Files doit également
contenir une ligne ModulePath :
Section "Files"
ModulePath "/usr/lib[64]/xorg/modules/extensions/nvidia"
...
EndSection
Linux Livre Page 376 Mardi, 23. septembre 2008 1:05 13
376 LINUX
Le pilote NVIDIA est incompatible avec l’extension DRI de X.org et effectue les opérations
correspondantes lui-même. Il faut donc supprimer la ligne Load "dri" de la section Module.
Le programme graphique nvidia-settings permet, une fois le pilote NVIDIA installé, de
configurer plus finement l’affichage.
Module du Il est impératif de disposer du module du noyau nvidia pour que le pilote fonctionne. S’il
noyau
est absent ou compilé pour une version différente du noyau, le pilote ne fonctionne pas et X
ne peut pas être démarré.
TwinView Le mode TwinView est une alternative intéressante à Xinerama. Il présente l’avantage
de pouvoir faire fonctionner toutes les fonctions 3D en parallèle sur les deux écrans. De
plus, la configuration est relativement simple. L’inconvénient est que certains gestion-
naires de bureau ou de fenêtre présentent dans ce cas des problèmes de positionnement
de fenêtres. Vous trouverez plus d’informations à ce sujet à l’adresse
http://memoire-grise-liberee.fr.eu.org/nVidia/support/TwinView/.
Installation Si votre distribution ne fournit pas de paquetages pour les pilotes ou si ceux-ci ne sont pas à
manuelle
jour, vous devez installer le pilote et compiler le module du noyau nvidia vous-même. Ins-
tallez d’abord les paquetages nécessaires à cette compilation (compilateur C, make, fichiers
d’en-têtes du noyau, etc.).
Sous Ubuntu, assurez-vous que les modules nvidia-glx et linux-restricted-modules ne sont
pas installés et que le fichier /etc/init.d/nvidia-glx n’existe pas. La désinstallation du paque-
tage linux-restricted-modules présente l’inconvénient de supprimer tous les paquetages non
GPL, y compris ceux dont vous avez éventuellement besoin, par exemple pour votre carte Wi-Fi.
Téléchargez le pilote à l’adresse http://www.nvidia.com/Download/index.aspx. Arrêtez X
avec init 3 ou /etc/init.d/gdm stop (selon votre distribution), puis lancez le programme
d’installation en tant que root.
Pour désinstaller le pilote, lancez la commande :
root# nvidia-installer --uninstall
8 bpp 768 769 771 874 773 869 775 864 796
16bpp (5:5:5) 797 784 787 875 790 870 793 865 797
16bpp (5:6:5) 798 785 788 876 791 871 794 866 798
24bpp 799 786 789 877 792 872 795 867 799
32bpp 834 809 814 878 824 873 829 868 834
Vous devez indiquer la bonne chaîne de caractères pour la ligne Driver de la section Device :
Section "Device"
Identifier "myDevice"
Driver "fbdev"
EndSection
Pilote VGA Le pilote VGA ne peut afficher que 640x480 ou 800x600 pixels en 4 bits (soit 16 couleurs) ; il
est donc la dernière solution envisageable. Vous trouverez plus de détails avec man vga.
22.9 Clavier
Configuration de base
Il existe deux mécanismes de configuration d’un clavier sous X : Xmodmap et Xkb. Ils permet-
tent de modifier la disposition du clavier et les touches d’état comme Ctrl, les raccourcis clavier,
etc.
Xmodmap est considéré comme obsolète et devrait être remplacé par Xkb. En pratique, vous
utiliserez probablement un mélange des deux :
• La disposition du clavier est configurée dans xorg.conf avec Xkb.
• Pendant le démarrage, le gestionnaire d’affichage lit les fichiers Xmodmap et Xkbmap locaux
et globaux. En général, les fichiers suivants sont pris en compte (lorsqu’ils existent) :
– /etc/X11/Xkbmap ;
– ~/.Xkbmap ;
– /etc/X11/Xmodmap (uniquement lorsqu’il n’y a pas de fichier Xkbmap) ;
– ~/.Xmodmap (uniquement lorsqu’il n’y a pas de fichier Xkbmap).
Linux Livre Page 378 Mardi, 23. septembre 2008 1:05 13
378 LINUX
Lorsque vous configurez vous-même votre clavier, sans passer par un programme de confi-
guration, vous vous heurtez à l’énorme quantité d’options et de paramètres, souvent insuf-
fisamment documentés (voir man 4 keyboard ou man kbd). Voici quelques éléments pour
régler les principales options :
• XkbRules définit comment les options suivantes sont exploitées. En général, la bonne
valeur est xorg ; les claviers PC-98 sont une exception pour laquelle il faut saisir la
valeur xfree98.
• XkbModel décrit le clavier.
– pc101 : clavier US sans touches Windows (valeur par défaut).
– pc102 : clavier international sans touches Windows.
– pc104 : clavier US avec touches Windows.
– pc105 : clavier international avec touches Windows.
– abnt2 : clavier brésilien.
– jp106 : clavier japonais.
– pc98 : clavier PC-98.
Linux Livre Page 379 Mardi, 23. septembre 2008 1:05 13
VerrNum et VerrMaj
VerrNum Par défaut, le pavé numérique n’est pas actif sous Linux, afin d’éviter des problèmes avec
les claviers de portables. Si vous travaillez avec un "vrai" clavier, ce pavé peut être utilisé
pour déplacer le curseur. La touche VerrNum permet de l’utiliser pour saisir des chiffres.
Sous KDE, vous pouvez activer VerrNum de manière permanente dans le module Clavier &
Souris, Clavier.
Linux Livre Page 380 Mardi, 23. septembre 2008 1:05 13
380 LINUX
Je n’ai pas trouvé comment obtenir le même comportement avec Xkbmap. Le fichier ~/.Xkbmap
s’assure, en revanche, que VerrMaj peut être utilisé comme une troisième touche Ctrl :
-option ctrl:nocaps
Vous pouvez aussi passer cette option dans la section InputDevice de xorg.conf :
Option "XkbOptions" "ctrl:nocaps"
Le tableau suivant indique les codes de touches pour les touches de contrôle importantes
sur un clavier international de PC.
Linux Livre Page 381 Mardi, 23. septembre 2008 1:05 13
Si aucune touche Compose n’est prévue dans votre distribution, vous pouvez en définir une
simplement :
• Sous Gnome, lancez gnome-keyboard-properties (Système > Préférences > Clavier),
cliquez sur le bouton Options de l’agencement de l’onglet Agencements, puis choisissez
une option dans le groupe Position de la touche Compose. Malheureusement, les choix
sont limités et ne permettent pas de définir une combinaison de touches.
• KDE dispose d’une configuration similaire, dans le module Régional & Langue > Cla-
vier > Disposition du clavier. L’onglet Avancé permet de définir la position de la tou-
che Compose.
• Indépendamment du bureau, ajoutez dans ~/.Xkbmap l’une de ces options :
– -option compose:menu pour la touche Windows de menu contextuel ;
– -option compose:rwin pour la touche Windows droit qui n’est pas disponible sur tous
les claviers ;
– -option compose:caps pour la touche VerrMaj.
Vous pouvez aussi saisir cette ligne dans xorg.conf :
Option "XkbOptions" "compose:menu"
Euro et Cent Dans toutes les distributions, pour une disposition française, AltGr+E est associé au sym-
bole Euro. De même, AltGr+C affiche le symbole Cent.
Linux Livre Page 382 Mardi, 23. septembre 2008 1:05 13
382 LINUX
usuels (car X ne sait pas ce qu’il doit faire du clic en attendant un éventuel second). Les
paramètres pour ces options sont :
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
Pavé tactile
Presque tous les ordinateurs portables actuels disposent d’un pavé tactile (touchpad)
Synaptics ou d’un composant compatible. À la base, le protocole de ce périphérique
émule une souris standard, de sorte qu’un pilote spécial ne soit pas nécessaire. Pour
utiliser diverses fonctions supplémentaires du pavé tactile, il existe cependant un pilote,
installé par défaut dans la plupart des distributions et généralement configuré auto-
matiquement. Vous trouverez plus d’informations sur synaptics à l’adresse
http://web.telia.com/~u89404340/touchpad/.
xorg.conf La configuration dans xorg.conf ressemble généralement à celle-ci :
Section "InputDevice"
Identifier "Synaptics"
Driver "synaptics"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "yes"
EndSection
L’option Emulate3Buttons est nécessaire, car la plupart des modèles de pavé tactile n’ont pas
de troisième bouton. Des options supplémentaires (voir man synaptics) permettent d’acti-
ver toutes les autres fonctions. Pour désactiver complètement le pavé tactile (lorsque vous
travaillez avec une souris externe), remplacez la section Synaptics par une section pour la
souris, ou utilisez l’option "TouchpadOff" "1".
synclient L’option "SHMConfig" "on" permet de modifier les paramètres du pavé tactile sans redémar-
rage de X. Pour cela, installez la commande synclient ou l’interface graphique gsynaptics
(Gnome). synclient nom=valeur modifie l’option indiquée. synclient -l affiche les para-
mètres courants et synclient -m 100 l’état courant du pavé tactile toutes les 100 ms.
384 LINUX
passer par une configuration manuelle, ce qui demande des compétences techniques, du temps
et de la patience. Le quart d’heure précédant votre présentation risque de ne pas suffire.
Règles de Passons d’abord en revue quelques règles de survie :
survie
• Connectez votre portable au vidéoprojecteur avant de l’allumer. En général, l’écran
interne du portable est alors désactivé et la sortie de signal est activée. Avec un peu de
chance, le gestionnaire d’amorçage, les messages InitV et X apparaissent directement
sur le vidéoprojecteur. Vous pouvez alors paramétrer KDE ou Gnome, afin d’utiliser la
résolution optimale du projecteur (généralement 1024x768).
• Certains portables permettent d’activer explicitement la sortie de signal dans le Bios − la
sortie n’est normalement activée que lorsqu’un moniteur externe ou un vidéoprojecteur
est connecté.
• Testez la sortie vidéo de votre portable chez vous avec un autre écran. Vous n’avez
aucune garantie que le projecteur fonctionnera exactement comme votre moniteur, mais
ce test est un premier indicateur d’éventuels problèmes.
• Pendant que vous testez et configurez votre portable, il est préférable de supprimer le
démarrage automatique de X. Passez en niveau d’exécution 3 (init 3) ou arrêtez le ges-
tionnaire d’affichage. Pour tester vos modifications, lancez startx.
Que faire lorsque le vidéoprojecteur ou le moniteur externe n’ont pas d’image lisible, et que l’écran du por-
table est également noir ? Vous pouvez alors essayer de travailler en mode console, ce qui permet de modi-
fier xorg.conf ou au moins d’éteindre proprement l’ordinateur. Si cela ne fonctionne pas, la seule
solution consiste à redémarrer l’ordinateur en aveugle. Tapez d’abord Ctrl+Alt+Retour Arrière pour terminer
X si celui-ci fonctionne encore puis, avant le redémarrage de X, Ctrl+Alt+Suppr pour redémarrer l’ordina-
teur.
Configuration Pour régler les problèmes de vidéoprojecteur, commencez par définir une résolution fixe de
minimale
1024 × 768 dans une fréquence horizontale réduite (de l’ordre de 53 kHz) et une fréquence
verticale d’environ 60 Hz. Ces données devraient fonctionner avec la plupart des vidéopro-
jecteurs, y compris les modèles plus anciens. Le fichier de configuration qui suit montre les
modifications à faire en gras.
# /etc/X11/xorg.conf
...
Section "Monitor"
...
HorizSync 31.5 - 53
VertRefresh 57-63
EndSection
...
Section "Screen"
...
DefaultDepth 24
SubSection "Display"
...
Modes "1024x768"
EndSubSection
EndSection
Linux Livre Page 385 Mardi, 23. septembre 2008 1:05 13
Cette configuration ne garantit certes pas que le vidéoprojecteur fonctionnera après le redé-
marrage de X, mais la probabilité est largement améliorée.
Si vous testez cette configuration sur un écran normal, il arrive que la fréquence d’image ne soit pas de
60 Hz, mais bien plus haute, en contradiction avec la configuration définie. Cela provient du fait que la plu-
part des moniteurs envoient leurs données de configuration via DDC (Display Data Channel, canal de don-
nées d’affichage) à la carte graphique. Ces données ont priorité sur xorg.conf. Certains pilotes
permettent de désactiver explicitement DDC dans la section Device.
Configurations Pour les présentations, il est encore plus confortable d’utiliser une configuration multi-
multi-écrans
écrans, dans laquelle l’écran du portable et le vidéoprojecteur sont utilisés indépendam-
ment l’un de l’autre. Vous pouvez alors afficher des notes sur votre portable, tandis que
seule votre présentation est visible sur le vidéoprojecteur − selon mon expérience, Open-
Office.org a cependant souvent des problèmes à trouver l’écran correct pour afficher la pré-
sentation en mode plein écran.
Les lignes suivantes illustrent des extraits de xorg.conf dans ce type de configuration.
Attention, les options de la section Device dépendent de la carte graphique ! Cet exemple
utilise le pilote i810.
Les autres sections de l’exemple peuvent cependant être utilisées pour toutes les configura-
tions multi-écrans : vous devez définir pour chaque écran une section Monitor et une section
Device, puis les assembler dans la section Screen. La section ServerLayout indique la position
relative des deux écrans. Vous devez aussi utiliser l’option Xinerama.
# /etc/X11/xorg.conf
# Configuration multi-écrans pour un portable avec carte graphique Intel
Section "InputDevice"
Identifier "Keyboard0"
...
EndSection
Section "InputDevice"
Identifier "Synaptics"
...
EndSection
# deux sections Monitor pour l’écran du portable et le vidéoprojecteur
Section "Monitor"
# moniteur du portable, 1280x800
# xorg récupère lui-même les données nécessaires
Identifier "Monitor0"
EndSection
Section "Monitor"
# vidéoprojecteur en 1024x768, 60 Hz
Identifier "Monitor1"
HorizSync 31.5 - 50.0
VertRefresh 58.0 - 62.0
EndSection
# deux sections Device, une par écran
Linux Livre Page 386 Mardi, 23. septembre 2008 1:05 13
386 LINUX
Section "Device"
# périphérique pour l’écran du portable
Identifier "Videocard1a"
Driver "i810"
BusID "PCI:0:2:0"
Screen 0
Option "MonitorLayout" "CRT,LFP"
EndSection
Section "Device"
# périphérique pour la sortie externe (vidéoprojecteur)
Identifier "Videocard1b"
Driver "i810"
BusID "PCI:0:2:0"
Screen 1
Option "MonitorLayout" "CRT,LFP"
EndSection
# deux sections Screen qui associent chaque Device à son moniteur
Section "Screen"
# configuration pour l’écran interne pour la disposition 1
Identifier "Screen1a"
Device "Videocard1a"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
# configuration de la sortie pour la disposition 1
Identifier "Screen1b"
Device "Videocard1b"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
# section ServerLayout qui associe les deux sections Screen
Section "ServerLayout"
# même image sur l’écran et sur le projecteur
Identifier "Layout1"
Screen 0 "Screen1a" LeftOf "Screen1b"
Screen 1 "Screen1b"
Option "Xinerama" "on"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Synaptics" "CorePointer"
EndSection
# cette disposition est active
Section "ServerFlags"
# seulement l’écran
# Option "DefaultServerLayout" "Layout0"
# écran et projecteur en multi-écrans
Option "DefaultServerLayout" "Layout1"
EndSection
Linux Livre Page 387 Mardi, 23. septembre 2008 1:05 13
22.12 Graphismes 3D
Les graphismes 3D sous Linux végétaient auparavant dans l’ombre. D’une part, en dehors
de quelques économiseurs d’écran et jeux isolés, il existait peu d’applications 3D. D’autre
part, les graphismes 3D réclamaient l’utilisation de pilotes binaires. La situation des pilotes
s’est depuis améliorée et, à l’été 2006, une application majeure a vu le jour : il ne s’agit pas
d’un jeu, mais des effets 3D pour le bureau présentés pour la première fois par Novell dans
SUSE Enterprise Desktop 10. Les fonctions 3D de la carte sont utilisées pour déformer les
fenêtres lorsqu’on les déplace, pour projeter les bureaux sur un cube, etc. Toutes ses fonc-
tionnalités n’ont pas de réelle utilité, mais elles plaisent à de nombreux utilisateurs.
Cette section traite des bases des graphismes 3D sous Linux. La section suivante présente les
bureaux 3D et des astuces de configuration pour diverses combinaisons matériel/logiciel.
Les concepts afférents à la 3D sont bien expliqués sur les pages http://dri.freedesktop.org/wiki/Catego-
ryGlossary et http://jonsmirl.googlepages.com/graphics.html.
Vous trouverez plus d’informations sur la 3D sous Linux aux adresses http://dri.freedesktop.org/wiki/
et http://www.mesa3d.org.
OpenGL Les graphismes 3D sous Unix/Linux sont gérés par OpenGL. Il s’agit d’une bibliothèque
développée par SGI pour représenter des graphismes 3D, disponible sur presque tous les
ordinateurs Unix/Linux. La plupart des programmes et jeux 3D sous Linux sont basés sur
OpenGL.
Le code d’OpenGL n’était pas libre initialement (cela a depuis changé) ; c’est pourquoi la
bibliothèque libre Mesa a été développée. Celle-ci était au départ une solution purement
logicielle. Comme elle est trop lente pour de nombreux programmes et jeux, elle est généra-
lement associée sous X au module DRI.
DRI Le module DRI (Direct Rendering Interface, interface de rendu direct) permet d’utiliser les
fonctions 3D rapides de la carte graphique. Cela ne fonctionne que lorsque la carte prend en
charge de telles fonctions (ce qui est le cas de la plupart des modèles actuels) et qu’il existe
un pilote DRI pour la carte.
Les cartes actuelles dotées de processeurs ATI/AMD et NVIDIA ne peuvent être actuelle-
ment utilisées de manière optimale qu’en installant les pilotes binaires des fabricants. Ceux-
ci fonctionnent en général avec le module DRI de X. Le pilote NVIDIA est une exception : il
implémente lui-même les fonctions de DRI.
GLX Sous X, les fonctions OpenGL sont utilisées via la bibliothèque GLX. Cette dernière connecte
le système XWindow à OpenGL. GLX s’assure, par exemple, que les tâches OpenGL ne
s’occupent que des calculs touchant à une partie visible de la fenêtre sans collision avec
d’autres fenêtres. GLX est intégré à X par un module.
Bibliothèque La bibliothèque libGL est une connexion entre le module GLX et les programmes OpenGL.
libGL
Elle doit correspondre à l’implémentation OpenGL installée (DRI ou NVIDIA). /usr/lib/
libGL.* sont donc des liens vers les bibliothèques réelles.
Linux Livre Page 388 Mardi, 23. septembre 2008 1:05 13
388 LINUX
Le pilote NVIDIA installe ses propres versions des bibliothèques libGL. Les liens de /usr/
lib sont également modifiés. Vous pouvez les rétablir avec nvidia-installer --uninstall.
xorg.conf Il n’est pas nécessaire de configurer explicitement DRI dans xorg.conf, car les modules dri,
glx et dbe sont chargés par défaut − dbe évite les scintillements pendant la construction et le
changement d’images. Les lignes suivantes dans la section Module indiquent que ces modules
sont chargés :
Section "Module"
...
Load "dbe" # Double Buffering Extension
Load "dri" # Direct Rendering Infrastructure (ne pas utiliser avec
# NVIDIA !)
Load "glx" # GLX (Open GL for X)
EndSection
Droits d’accès Par défaut, seul root peut accéder directement au matériel graphique. L’accès aux fonctions
à DRI
DRI/GLX est donc restreint à root. Pour permettre à d’autres utilisateurs de bénéficier des
graphismes 3D, il faut ajouter deux options à xorg.conf. Dans les lignes suivantes, tous les
membres du groupe graphics ont accès aux graphismes 4D − vous devez bien sûr créer ce
groupe et associer des utilisateurs.
Section "DRI" # (n’est pas nécessaire lorsque le pilote nvidia est
# utilisé)
Group "graphics"
Mode 0660
EndSection
Ces deux options indiquent le groupe propriétaire et les droits d’accès au fichier /dev/dri/
card0. Ce périphérique sert à accéder à la carte graphique.
Le paramétrage suivant est plus libéral. Tous les utilisateurs peuvent alors utiliser les fonc-
tions DRI. Cela peut cependant représenter une faille de sécurité et n’est pas conseillé sur les
ordinateurs connectés directement à un réseau.
Section "DRI" # (n’est pas nécessaire lorsque le pilote NVIDIA est
# utilisé)
Mode 0666
EndSection
Ces lignes signifient que le pilote DRI pour une carte graphique ATI (fglrx) fonctionne. Si ce
n’est pas le cas, la sortie ressemble à ceci :
root# glxinfo | grep render
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect
Linux Livre Page 389 Mardi, 23. septembre 2008 1:05 13
Un autre test très visuel est le programme gears ou glxgears. Il fait partie des programmes
de démonstration de Mesa et doit éventuellement être installé à part (paquetage mesa-demos
ou mesa-utils). Si vous utilisez le pilote binaire ATI, vous pouvez aussi lancer le pro-
gramme fgl_glxgears.
glxgears montre dans une fenêtre trois engrenages qui tournent. Le shell qui a lancé
glxgears affiche toutes les cinq secondes le nombre d’images par seconde (FPS). Sur ma
machine de test (Intel Core 2 Duo 2,4 Ghz, carte graphique NVIDIA 7600-GS), j’ai obtenu
comme résultats en plein écran (1600x1200 points, couleurs 24 bit) 92 FPS avec le pilote nv
(sans fonctions 3D), et 395 FPS avec le pilote nvidia (avec les fonctions 3D).
22.13 Bureau 3D
Apple a été le précurseur de l’utilisation des fonctions 3D des cartes graphiques modernes
pour le bureau. Des fonctions élémentaires du bureau, comme le déplacement des fenêtres,
sont ainsi nettement plus rapides. Sun a également avancé dans ce sens avec son projet
Looking Glass, qui offre au bureau des fonctions 3D pour le rendre plus attrayant.
En 2006, SUSE a présenté SuSE Linux Enterprise Desktop avec des fonctions 3D. Depuis, la
plupart des grandes distributions Linux fournissent ces fonctions à leurs utilisateurs, pour
autant que la carte graphique et le pilote soient adaptés, et permettent généralement de
configurer cela en quelques clics.
Fonctions Pour ceux qui n’ont pas encore testé le bureau 3D, voici un bref aperçu des fonctions et gadgets
importants :
• Lorsqu’on déplace des fenêtres, leur forme est modifiée comme si elles étaient caoutchou-
teuses (voir Figure 22.1).
• Le passage entre les bureaux affiche ces derniers sur les faces d’un cube en 3D.
• L’apparition, la réduction, l’agrandissement et la fermeture des fenêtres et des menus
sont animés avec différents effets (transparence, etc.).
• Lorsqu’on change de fenêtre avec Alt+Tab, la fenêtre choisie passe en avant-plan.. À la
place d’une liste d’icônes, vous voyez le programme à activer (voir Figure 22.2).
• Vous pouvez aussi utiliser la fonction Scale pour changer de fenêtre. Celle-ci fonctionne
comme Exposé sous Mac OS X : toutes les fenêtres ouvertes sont réduites et s’affichent
les unes à côté des autres. Vous pouvez alors choisir avec la souris ou les touches du cur-
seur la fenêtre à activer. Cette fonction est souvent lancée avec les touches Pause,
Ctrl+Alt+Flèche haut, F8 ou F9 ou, selon la configuration, lorsque vous déplacez la
souris dans le coin en haut à droite de l’écran.
• La fonction Zoom permet d’agrandir une partie du bureau. Lorsque vous déplacez la
souris à la frontière de la section visible, la section se déplace sans ralentissement. Cette
fonction facilite la vie des malvoyants, mais permet aussi d’afficher des sites web mal
développés sur un grand moniteur à une taille décente.
Linux Livre Page 390 Mardi, 23. septembre 2008 1:05 13
390 LINUX
Figure 22.1
Déplacement d’une
fenêtre dans un bureau
3D.
Il est bien sûr légitime de s’interroger sur l’utilité de ces fonctions. Je les ai personnellement
désactivées après quelques jours. Le déplacement sans ralentissement des fenêtres est
agréable, mais seule la fonction Scale m’a réellement enthousiasmé.
Figure 22.2
Changement
de fenêtre.
Raccourcis La plupart des fonctions peuvent être configurées ou désactivées. En fait, les fonctions
clavier
disponibles dépendent largement de la distribution, tout comme les raccourcis clavier
suivants.
Linux Livre Page 391 Mardi, 23. septembre 2008 1:05 13
Prérequis Pour profiter de ces gadgets 3D, les prérequis suivants doivent être respectés :
• X doit permettre d’utiliser les fonctions 3D directement dans le gestionnaire de fenêtre
(et non, comme précédemment, uniquement à l’intérieur des fenêtres). Il existe pour
cela deux choix : AIGLX et XGL.
• Un pilote graphique compatible avec ces extensions ou les fournissant directement doit
être installé.
• Le gestionnaire de fenêtre doit utiliser les fonctions 3D en question. C’est, par exemple,
le cas du programme Compiz.
Attention, les effets 3D de la carte graphique ne fonctionnent que lorsque vous travaillez
avec un seul moniteur. Le pilote NVIDIA et son mode TwinView sont une exception : ils
permettent d’utiliser un bureau 3D sur deux moniteurs.
Le tableau suivant résume la compatibilité des différents pilotes avec AIGLX et XGL.
XGL AIGLX
radeon oui, pour autant que les fonctions 3D de la carte soient oui, pour autant que les fonctions 3D de la carte soient pri-
prises en charge par le pilote ses en charge par le pilote
fglrx oui oui, pour autant que le pilote soit au moins en version 8.42.3
et qu’une carte graphique compatible soit utilisée
radeonhd non (pas de prise en charge de la 3D) non (pas de prise en charge de la 3D)
392 LINUX
Vous vous demandez peut-être s’il vaut mieux utiliser XGL ou AIGLX. De nombreux argu-
ments parlent en faveur d’AIGLX : il est plus efficace, demande moins de mémoire, est plus
répandu et compatible avec les jeux 3D. En pratique, vous ne verrez cependant pas de gran-
des différences entre XGL et AIGLX. Les effets 3D chargent peu la carte graphique ; une
différence de performances de quelques pour cent n’est donc pas pertinente. L’important est
que cela fonctionne !
L’approche pragmatique est sans doute la meilleure : mettez en place le système pris en
charge par votre distribution et votre carte graphique. Il vaut mieux éviter d’installer et de
configurer manuellement ces applications : il existe certes d’innombrables tutoriels pour
presque tous les cas particuliers, mais leur adaptation échoue souvent à cause d’une incom-
patibilité quelconque (par exemple, en raison de la parution d’une nouvelle version de votre
pilote graphique, de X ou de Compiz Fusion).
Nous nous concentrerons dans cette section sur AIGLX.
AIGLX
AIGLX signifie Accelerated Indirect GLX (GLX indirect accéléré). Les fonctions 3D sont
transmises au serveur X, qui les transmet à la carte graphique (d’où le terme "indirect").
Cette manière de faire implique donc peu de modifications dans l’architecture du ser-
veur X. AIGLX est en particulier utilisé par Red Hat/Fedora et par Ubuntu. Vous trou-
verez plus d’informations à son sujet sur les pages http://fr.wikipedia.org/wiki/AIGLX,
http://en.wikipedia.org/wiki/AIGLX et http://fedoraproject.org/wiki/RenderingProject/
aiglx.
xorg.conf AIGLX fait partie intégrante du serveur X depuis sa version 7.1. Vous ne devez donc rien
installer de plus. Il est automatiquement activé lorsque c’est possible. Le fichier de jour-
nalisation contient alors la ligne AIGLX enabled. Si ce n’est pas le cas, ajoutez cette ligne
dans xorg.conf :
Section "ServerFlags"
Option "AIGLX" "on"
EndSection
AIGLX suppose que l’extension Composite est activée, ce qui est normalement le cas lorsque
le serveur X est activé. grep COMPOSITE /var/log/Xorg.0.log doit normalement renvoyer le
résultat Initializing built-in extension COMPOSITE. Si ce n’est pas le cas, ajoutez cette ligne
dans xorg.conf :
Section "Extensions"
Option "Composite" "enable"
EndSection
Les points suivants conseillent des configurations pour utiliser AIGLX avec différents pilo-
tes graphiques. Nous tenons ici pour acquis que xorg.conf contient déjà toutes les options
nécessaires pour utiliser les fonctions 3D. glixinfo | grep render doit renvoyer Direct
rendering: Yes.
• radeon et AIGLX ne demandent aucune option supplémentaire.
Linux Livre Page 393 Mardi, 23. septembre 2008 1:05 13
Compiz Fusion
Le gestionnaire de fenêtre est responsable de la représentation des effets optiques. C’est à
cela que sert Compiz Fusion. Il provient de la fusion entre les projets Compiz et Beryl. Vous
ne le trouverez que dans les distributions répandues ; les plus anciennes utilisent majoritai-
rement Compiz, Beryl étant parfois proposé comme paquetage optionnel.
Compiz Fusion se compose d’un ensemble de programmes et de greffons.
compiz est le gestionnaire de fenêtre en soi. Il définit les fenêtres qui sont visibles, celle qui a
le focus, les effets qui sont appliqués à l’apparition, au redimensionnement ou à la fermeture
des fenêtres, ainsi que les raccourcis clavier qui peuvent être utilisés. Le code pour les
effets 3D n’est pas directement intégré à compiz, mais se trouve dans d’innombrables greffons
(/usr/lib[64]/compiz/libXxx.so).
gtk-window-decorator (dans les versions plus anciennes, gnome-window-decorator) affiche,
autour du contenu des fenêtres, les décorations, dont la barre de titre et quelques boutons.
Ce programme est compatible avec KDE, mais kde-window-decorator est plus souvent uti-
lisé sous KDE. Selon la version et la configuration, le programme emerald du projet Beryl
peut aussi être utilisé.
Attention, compiz et les programmes d’affichage de décorations, qui remplacent les compo-
sants correspondants de Gnome et de KDE, ne sont qu’en partie pris en compte. Cela peut
mener à une certaine confusion.
Vous trouverez plus d’informations sur Compiz Fusion et ses greffons à l’adresse
http://www.compiz-fusion.org/.
Configuration Pour la configuration de base de Compiz et de Compiz Fusion, les grosses distributions ont
développé certains outils de configuration :
Fedora, Red Hat desktop-effects
SUSE gnome-xgl-setting (utilisable aussi sous KDE)
Ubuntu gnome-appareance-properties (uniquement sous Gnome)
Avec ces trois programmes, vous ne pouvez régler que les fonctions de base du bureau 3D.
Il existe cependant beaucoup d’autres paramétrages (activation et configuration de greffons,
raccourcis, etc.). Pour configurer ces fonctions supplémentaires, vous devez installer compiz-
config-settings-manager (voir Figure 22.3).
Linux Livre Page 394 Mardi, 23. septembre 2008 1:05 13
394 LINUX
Figure 22.3
Configuration détaillée
de Compiz.
22.14 Polices
Les polices sous X se divisent en polices vectorielles (échelonnables) et en fontes bitmap
(prévues pour une taille fixe).
Jusqu’à il y a quelques années, X ne pouvait gérer que les fontes bitmap. Celles-ci ne sont
disponibles qu’en des tailles données et fixées à l’avance. Elles peuvent s’afficher à d’autres
tailles, mais sont alors "pixelisées".
freetype et type1 fournissent depuis, via le serveur de polices xfs, des polices libres vecto-
rielles (TrueType, Type-1). Les applications KDE et Gnome utilisent exclusivement ces poli-
ces. Les fontes bitmap ne jouent aujourd’hui qu’un rôle limité et ne sont utilisées que dans
certains programmes plus anciens (par exemple, xterm).
La différence historique entre ces deux jeux de caractères se retrouve aujourd’hui dans de
nombreuses commandes de gestion. Par exemple, fc-list renvoie la liste de toutes les poli-
ces vectorielles, tandis que xlsfonts renvoie celle de toutes les fontes bitmap.
Répertoire des Les fichiers de polices se trouvent généralement dans les sous-répertoires de /usr/share/
polices
fonts. Pour les polices bitmap, il existe un fichier pour chaque taille et attribut (par exemple
gras, italique). Pour les polices vectorielles, un fichier pour toutes les tailles suffit.
fonts.dir et Dans les répertoires de fontes bitmap, on trouve deux fichiers spéciaux : fonts.dir et
fonts.scale
fonts.scale. Ces derniers sont nécessaires pour les programmes X anciens qui n’utilisent
pas le système fontconfig. Ils contiennent des informations sur les noms et les tailles dispo-
nibles des fontes.
fc-list et La commande fc-list |sort affiche une liste de toutes les polices vectorielles. xlsfonts
xlsfonts
effectue la même opération pour les fontes bitmap. Le résultat est long et peu clair, car la
liste contient une ligne pour chaque taille de fonte et chaque jeu de caractères. xfontsel per-
met de chercher des fontes bitmap qui correspondent à vos critères de recherche.
Linux Livre Page 395 Mardi, 23. septembre 2008 1:05 13
Figure 22.4
Représentation
de caractères spéciaux
dans gucharmap.
Linux Livre Page 396 Mardi, 23. septembre 2008 1:05 13
396 LINUX
Les caractères bitmap peuvent s’afficher avec xfd -fn ’nom_de_la_fonte’. nom_de_la_fonte
doit être le nom exact de la fonte en syntaxe. Le plus simple est d’utiliser une ligne de résultat
de xlsfonts comme paramètre.
Jeux de X est fourni avec tous les jeux de caractères imaginables, y compris Unicode. Cependant,
caractères
et prise en ceux qui sont pris en charge dépendent de la police :
charge
d’Unicode • Pour les polices vectorielles, les informations du jeu de caractères sont embarquées dans
le fichier de police. Les fichiers de codage associent des symboles individuels au code
d’un jeu de caractères. Ces fichiers sont gérés indépendamment des polices et se trou-
vent habituellement dans le répertoire /usr/share/fonts/encodings ou /usr/share/
fonts/X11/encodings.
• Pour les fontes bitmap, il existe un fichier par jeu de caractères pris en charge. Unicode
a peu de fontes bitmap. La commande suivante en affiche la liste :
utilisateur$ xlsfonts ’*iso10646-1*’
Attention, le fait qu’une police comprenne le codage Unicode n’offre pas de garantie sur le
nombre de caractères qu’elle contient. Il existe actuellement peu de polices Unicode complè-
tes (et aucune d’entre elles n’est gratuite). De plus, les polices de ce type sont énormes et peu
adaptées à un usage quotidien.
Types de X fournit différents types de polices. En voici une rapide description :
polices
• Fontes 75-dpi et 100-dpi (bitmap). Il s’agit des fontes les plus anciennes qui font partie
de X depuis plusieurs années. Elles ne sont disponibles dans des tailles correctes que
pour des résolutions d’écran de 75 et 100 dpi. Les familles de polices correspondantes
comptent généralement Charter, Courier, Helvetica, Lucida, New Century Schoolbook,
Times et Utopia.
• Polices Type1 (vectorielles). Il s’agit d’un format de polices PostScript définies par
Adobe. Elles se trouvent dans des fichiers *.pfa ou *.pfb.
• Polices TrueType (vectorielles). Développées par Microsoft et Apple comme alternative
au format de polices Adobe, elles fournissent une haute qualité d’affichage et d’impres-
sion, comparable à celle des polices Type1. Elles se trouvent dans des fichiers *.ttf. La
police DejaVu est l’une des plus populaires sous Linux. Basée sur Bitstream Vera, il
s’agit d’une police libre, souvent utilisée par défaut sous Linux.
• Polices OpenType (vectorielles). Il s’agit d’un métaformat qui permet de décrire des
polices TrueType et Type1. Les fichiers correspondants ont les extensions *.otf et *.ttf.
• Polices Speedo (vectorielles). Il s’agit du nom d’une police de l’entreprise Bitstream.
Sous Linux, elles regroupent généralement Charter, Courier et Vera.
• Polices URW (vectorielles). L’entreprise URW a financé pour GhostScript un paquetage
de polices PostScript standard vectorielles (AvantGarde, Bookman, Courier, Gothic,
Helvetica, New Century Schoolbook, Palatino, Times, Symbol, ZapfChancery et
ZapfDingbats). Il s’agit en interne de polices Type1. Elles peuvent être redistribuées
dans le cadre de la GPL et sont utilisées par GhostScript.
Linux Livre Page 397 Mardi, 23. septembre 2008 1:05 13
Il existe bien sûr, chez des entreprises comme Adobe ou Bitstream, d’innombrables polices qui ne sont
pas fournies sous Linux. Elles doivent être achetées comme tout produit commercial. Celles fournies sous
Linux ne sont généralement mises à disposition que parce qu’elles sont offertes par ces entreprises.
L’ordre des répertoires a une importance. Si une fonte existe dans plusieurs répertoires, la
première trouvée dans la liste de répertoires est utilisée. Il est donc important d’indiquer en
premier les polices ayant une bonne qualité d’affichage.
Lorsque le chemin est suivi de :unscaled, X n’utilise la fonte que lorsqu’elle est disponible
exactement dans la taille souhaitée. Ce mot clé n’est valide que pour les polices bitmap et
non vectorielles.
Les versions actuelles du serveur X chargent par défaut tous les modules pour gérer les dif-
férents types de polices. Certains fichiers de configuration énumèrent cependant explici-
tement ces modules :
Section "Module"
Load "bitmap" # fontes bitmap
Load "speedo" # polices Speedo
Load "type1" # polices Type-1 et CID
Load "freetype" # polices TrueType, OpenType et Type1
...
EndSection
Linux Livre Page 398 Mardi, 23. septembre 2008 1:05 13
398 LINUX
Activer la Pour prendre en compte les modifications de la configuration des polices, il suffit générale-
configuration
ment de lancer la commande suivante. Il arrive cependant qu’un redémarrage de X soit
nécessaire.
root# xset fp rehash
Le site de téléchargement original n’existe plus ; les polices ne peuvent plus être téléchar-
gées que sur le site corefonts. La redistribution commerciale de ces polices est interdite ; c’est
pourquoi les distributions ne les fournissent généralement pas directement.
Malheureusement, leur installation sous Linux est compliquée, car elles sont contenues
dans un fichier *.exe et ne peuvent pas être distribuées sous un autre format. Le site web
http://corefonts.sourceforge.net/ fournit une documentation pour les distributions qui utili-
sent des paquetages RPM.
Sous Ubuntu, le paquetage msttcorefonts permet d’installer les polices Microsoft.
Anticrénelage
Par défaut, X utilise l’anticrénelage (anti-aliasing) pour afficher les polices TrueType et
Type1. Les contours des lettres s’affichent alors en niveaux de gris. Les caractères sont
moins pixelisés.
Sur de nombreux écrans plats, chaque pixel est composé de trois sous-pixels (rouge, vert et
bleu). La variation des couleurs associées permet une plus grande qualité d’affichage de
l’anticrénelage. On parle ici de rendu par sous-pixelisation.
Configuration L’anticrénelage et le rendu par sous-pixelisation sont définis dans le fichier XML /etc/
fonts/fonts.conf. Celui-ci ne doit cependant pas être modifié, car il est régulièrement
écrasé. Les paramètres doivent être modifiés dans /etc/fonts/local.conf (pour le système)
ou dans ~/.fonts.conf (pour l’utilisateur). man fontconfig ou man fonts.conf vous donne-
ront plus d’informations à ce sujet.
Artefacts Selon le moniteur, le rendu par sous-pixelisation peut mener à des artefacts colorés gênants.
colorés
Il faut alors désactiver la fonction avec les lignes suivantes :
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font" >
<edit mode="assign" name="rgba" >
<const>none</const>
</edit>
</match>
</fontconfig>
Configuration KDE et Gnome fournissent des boîtes de dialogue confortables pour modifier la confi-
sous KDE et
Gnome guration utilisateur par utilisateur de l’anticrénelage et du rendu par sous-pixelisation. Sous
KDE, les paramètres se trouvent dans le module Apparence > Polices de la configuration du
système. Sous Gnome, lancez gnome-font-properties ou Propriétés > Polices.
Linux Livre Page 400 Mardi, 23. septembre 2008 1:05 13
400 LINUX
22.15 Outils X
X fournit quelques programmes. La plupart disposent de versions plus modernes intégrées
à Gnome ou KDE, mais certains des utilitaires de X sont encore importants de nos jours. En
voici une liste rapide. man commande permet d’obtenir plus d’informations sur ces différentes
commandes.
• xev. xev affiche des informations sur les événements du clavier, de la souris, etc. Vous
pouvez ainsi voir comment X réagit lorsque vous appuyez, par exemple, sur une touche
donnée.
• xkill. xkill permet de terminer un programme X. Lancez xkill, cliquez sur la fenêtre et
l’application correspondante est terminée.
• xlsfonts. xlsfonts affiche une liste de toutes les polices disponibles. On peut lui passer
un motif de filtrage comme à ls. Il faut cependant mettre ce motif entre apostrophes
pour qu’il ne soit pas étendu par bash.
• xmodmap. xmodpam permet d’afficher et de modifier la configuration du clavier. xmodmap
-pk affiche la table de clavier courante. xmodmap -e définition permet de redéfinir une
touche.
• xrandr. xrandr permet de modifier la résolution de l’écran, la fréquence de l’image et
d’autres paramètres de l’écran sans quitter X. xrandr -q affiche les possibilités de confi-
guration. Celles-ci dépendent de la configuration de X et du pilote de la carte graphique.
xrandr -s n modifie la résolution, xrandr -r n la fréquence d’affichage et xrandr -o
l’orientation de l’image.
• xset. xset modifie le paramétrage du serveur X.
• xterm. xterm est une fenêtre de terminal dans laquelle diverses commandes peuvent
être lancées. xterm dispose de nombreuses options pour modifier son apparence.
Linux Livre Page 401 Mardi, 23. septembre 2008 1:05 13
Administration du système
23 de fichiers
Ce chapitre décrit diverses facettes de l’administration du système de fichiers. Il s’adresse
majoritairement aux utilisateurs avancés de Linux et couvre les thèmes suivants :
• Introduction. Cette section offre un premier aperçu des différents aspects des systèmes
de fichiers de Linux.
• Noms de périphériques. Linux communique avec les disques durs, les supports de
données et les partitions qui y sont contenues par le biais de fichiers de périphériques
comme /dev/hda1 ou /dev/sdc. Cette section résume la nomenclature et la numérotation
de ces fichiers.
• Partitionnement du disque dur. Le partitionnement du disque dur est une tâche cen-
trale de l’installation de Linux. Il est parfois aussi nécessaire de créer une nouvelle
partition alors que Linux fonctionne déjà.
• Types de systèmes de fichiers. Peu de systèmes d’exploitation prennent en charge
autant de systèmes de fichiers que Linux. Cette section en présente les plus importants.
• Gestion du système de fichiers. Vous y apprendrez comment ajouter des partitions de
données manuellement à un système de fichiers (mount) et comment automatiser cette
opération (/etc/fstab).
• Systèmes de fichiers Linux. Cette section offre divers conseils et astuces pour utiliser
les trois systèmes de fichiers les plus importants sous Linux : ext, reiser et xfs.
• Systèmes de fichiers Windows. Vous pouvez aussi accéder à des partitions Windows
sous Linux. Linux prend en charge les deux systèmes de fichiers courants FAT32 et
NTFS.
• CD/DVD et disquettes. Les CD et DVD de données disposent de leurs propres types de
systèmes de fichiers, qui sont présentés dans cette section. Ce chapitre traite également
rapidement des disquettes, même si celles-ci ne sont plus que peu utilisées de nos jours.
• Supports de données externes (USB, Firewire). Lorsque vous connectez un disque dur
Firewire ou une clé USB, dans la plupart des cas, une fenêtre du gestionnaire de fichiers
apparaît et vous donne accès à vos fichiers. Cette section explique ce qu’il se passe dans
les coulisses d’une telle opération et comment utiliser si besoin des supports de données
externes manuellement.
• Partitions d’échange. Lorsque Linux n’a pas assez de mémoire vive pour exécuter ses
programmes, il décharge une partie de la mémoire dans une partition d’échange.
• Systèmes de fichiers réseau. Vous pouvez intégrer des répertoires d’autres ordinateurs
sur votre réseau local, dans votre arborescence de répertoires. Je m’intéresse dans cette
section aux systèmes de fichiers CIFS (Windows / Samba) et NFS (Unix / Linux).
• LVM. LVM (Logical Volume Manager, gestionnaire de volumes logiques) permet d’admi-
nistrer les partitions de manière flexible. LVM offre la possibilité par exemple de réunir
Linux Livre Page 402 Mardi, 23. septembre 2008 1:05 13
402 LINUX
les partitions de plusieurs disques en une seule partition virtuelle, de modifier la taille
des partitions sans avoir à réinstaller le système, etc.
• Optimisation des disques durs. Cette section décrit les outils hdparm et SMART avec
lesquels vous pouvez optimiser vos disques durs et relever des statistiques sur leur
utilisation.
Il resterait encore beaucoup à écrire sur l’administration des systèmes de fichiers. Je n’ai
cependant pas la place de traiter des sujets suivants et vous indique donc quelques
pointeurs :
• Utilisation du système de fichiers. Les commandes de copie de fichiers, de création de
sauvegarde, de gestion des droits d’accès, etc. ont déjà été traitées au Chapitre 13.
• Quotas de disques. Il s’agit d’un système qui contrôle l’espace disque maximum
attribué à un utilisateur. Si cette limite est dépassée, l’utilisateur ne peut pas créer de
nouveau fichier. Vous trouverez une bonne introduction à ce système à l’adresse
http://tldp.org/HOWTO/Quota.html.
• RAID. Le RAID (Redundant Array of Inexpensive Disks, ensemble redondant de disques
bon marché) permet d’associer une partition à plusieurs disques et ainsi d’améliorer la
sécurité ou les performances de l’ensemble.
• Systèmes de fichiers chiffrés. Si vous désirez éviter qu’une personne non autorisée
(par exemple un voleur) puisse lire vos données, vous devez chiffrer une partie ou la
totalité de votre système de fichiers. Linux fournit plusieurs alternatives pour cela,
comme CryptoFS, DM-Crypt, eCryptfs, Enc-FR, Loop-AES et TrueCrypt. Une recher-
che sur ces termes sur Internet renvoie d’innombrables articles qui décrivent la mise
en place de tels systèmes. Certaines distributions en offrent la possibilité dès l’instal-
lation.
• Systèmes de fichiers de grappes (clusters). Les systèmes de fichiers de grappes ou les
systèmes de fichiers globaux réunissent les données de plusieurs ordinateurs via un sys-
tème de fichiers virtuel. On peut ainsi construire des systèmes de fichiers immenses et
les utiliser en parallèle depuis plusieurs machines. On peut citer pour exemples de ce
type de systèmes OCFS (Oracle Cluster File System) d’Oracle, ou GFS (Global Filesystem)
de Red Hat.
404 LINUX
Glossaire
ATA interface de connexion des disques durs
ATAPI extension d’ATA pour les lecteurs CD et DVD
IDE description alternative de PATA
PATA ATA parallèle (interface ATA courante avec un accès parallèle aux données)
SATA ATA série (nouvelle interface ATA avec un accès série aux données)
SCSI alternative à IDE/SATA
Fonctionne- Linux accède aux disques durs internes et externes, à leurs partitions, aux CD et DVD et à
ment interne
du noyau tout autre support de données par le biais de fichiers de périphériques. Ces fichiers sont des
fichiers particuliers qui servent d’interface entre Linux et le noyau.
Vous n’avez besoin de ces fichiers qu’à des fins d’administration, c’est-à-dire lorsque vous
souhaitez modifier le partitionnement d’un disque ou monter une partition dans l’arbores-
cence de fichiers. En dehors de cela, vous accédez normalement au système de fichiers par le
biais de répertoires. / est le début du système de fichiers. Les partitions peuvent y être asso-
ciées à un emplacement particulier : par exemple, une partition Linux supplémentaire peut
être associée au nom /data, et la partition Windows à /media/win.
Il existe deux familles de pilotes pour les disques durs et les autres supports de données :
• IDE. Le pilote IDE sert à gérer les disques durs IDE et les lecteurs CD/DVD IDE – il
s’agit donc de tous les périphériques PATA.
• SCSI. Le système SCSI ne gère pas seulement les périphériques SCSI, mais aussi tous les
lecteurs connectés aux bus SATA, USB et Firewire. Comme de nombreuses cartes mère
utilisent maintenant SATA comme interface principale pour les lecteurs DVD et disques
durs, le système SCSI prend de plus en plus d’importance.
Le code IDE du noyau est relativement ancien et mal maintenu. De ce fait, de plus en plus de distributions
accèdent également aux périphériques IDE par le biais du pilote SCSI. Pour que cela fonctionne, le système
SCSI du noyau a été étendu par des fonctions PATA. Le module correspondant s’appelle libata et se trouve
dans le noyau officiel depuis sa version 2.6.19.
Le passage à libata signifie que tous les supports de données sont accessibles par les périphériques /
dev/s*. Il n’y a plus de périphérique /dev/hd*. Tous les supports de données sont donc gérés par la
même base de code.
Linux Livre Page 405 Mardi, 23. septembre 2008 1:05 13
Au passage du pilote IDE au pilote SCSI, les noms de périphériques de tous les périphériques IDE sont
modifiés, ce qui peut poser problème lors de la mise à jour d’un noyau ou d’une distribution. Pour régler
ces problèmes, de nombreuses distributions n’utilisent plus le nom du périphérique pour identifier une
partition, mais son UUID ou son libellé. Cela a un impact sur les fichiers de configuration /etc/fstab
et /boot/grub/menu.lst .
Cependant, le nombre maximal de partitions utilisables sous Linux passe de 64 à 16. De plus, les fonctions
HD_IO ne sont plus disponibles et certains contrôleurs IDE (généralement anciens) ne sont pas pris en
charge par les systèmes SCSI.
Périphériques Si le système IDE est toujours utilisé, les disques IDE sont identifiés par les fichiers de péri-
IDE
phériques /dev/hda, /dev/hdb, etc. L’ordre des périphériques dépend du câblage interne des
disques. Le schéma de nommage est résumé dans le tableau ci-après. Notons que, selon ce
schéma, il se peut que les périphériques hda et hdc existent sans que le périphérique hdb
n’existe.
Noms de périphériques pour les périphériques IDE gérés par le système IDE
/dev/hda périphérique IDE maître du premier canal IDE
/dev/hdb périphérique IDE esclave du premier canal IDE
/dev/hdc périphérique IDE maître du second canal IDE
/dev/hdd périphérique IDE esclave du second canal IDE
...
Périphériques Les disques SCSI et SATA sont, de manière similaire, nommés sdxy. Pour les distributions
SCSI et SATA
qui utilisent l’extension libata du système SCSI, cela est également valable pour les disques
IDE.
Les périphériques SATA sont associés à une lettre dans l’ordre du canal utilisé. Les cartes
mère modernes voient généralement six ou huit canaux au plus. Si deux disques durs sont
connectés aux canaux 1 et 3, ils sont nommés /dev/sda et /dev/sdb. Si un troisième disque
est ensuite connecté au canal 2, le nom du deuxième disque dur devient /dev/sdc.
Lorsque libata est utilisé, les périphériques IDE sont également nommés dans la suite de
périphériques /dev/sda, /dev/sdb, etc. Attention, il existe ici une différence de nommage
importante. Lorsque l’ordinateur dispose d’un disque maître sur chacun des canaux IDE,
mais pas de disque esclave, les périphériques IDE s’appellent /dev/hda et /dev/hdc, mais
libata les appelle /dev/sda et /dev/sdb.
Pour les périphériques SCSI, l’ordre dépend du numéro d’identifiant du périphérique. Les
trous dans la numérotation ne sont pas pris en compte : trois périphériques ayant comme
identifiants 0, 2 et 5 reçoivent les noms de périphériques /dev/sda, /dev/sdb et /dev/sdb.
Comme pour les périphériques SATA, cela peut mener à une modification ultérieure de la
configuration.
Linux Livre Page 406 Mardi, 23. septembre 2008 1:05 13
406 LINUX
Les périphériques USB et Firewire sont gérés comme des périphériques USB ; l’identifiant
utilisé est le premier disponible. Lorsque des périphériques SCSI, SATA, USB et Firewire
sont branchés, la numérotation commence avec les périphériques SCSI ou SATA (en fonc-
tion du BIOS, des emplacements PCI utilisés, etc.) et continue avec les périphériques USB et
Firewire dans l’ordre dans lequel ils ont été branchés.
Les CD et DVD reçoivent des noms de périphériques spéciaux qui peuvent être, selon la
distribution, /dev/sdcn ou /dev/srn.
Noms de périphériques pour les périphériques SCSI, SATA, USB, Firewire et IDE avec un
noyau libata
/dev/sda premier disque SCSI/SATA
/dev/sdb second disque SCSI/SATA
...
/dev/scd0 ou /dev/sd0 premier lecteur CD/DVD
/dev/scd1 ou /dev/sr1 second lecteur CD/DVD
Numérotation En ce qui concerne la numérotation des partitions, indépendamment du bus utilisé, les chif-
des partitions
fres 1 à 4 sont réservés pour les partitions primaires ou étendues et les chiffres supérieurs à
5 servent pour les partitions logiques à l’intérieur de la partition étendue. Il est donc fré-
quent que cette numérotation contienne des trous. Si votre disque contient une partition pri-
maire, une partition étendue et trois partitions logiques, elles sont respectivement
numérotées 1, 2, 5, 6 et 7. Le tableau suivant donne quelques exemples.
Le nombre de partitions par disque dur est limité. Pour des raisons historiques, on ne peut
créer que quatre partitions primaires ou trois partitions primaires et une partition étendue.
D’autre part, Linux limite le nombre de partitions logiques utilisables à 59 (dans le système
IDE) ou à 11 (SCSI/SATA/USB/Firewire/IDE avec libata). Le nombre total de partitions
est alors de 63 ou de 15.
Noms de Comme nous l’avons vu précédemment, la numérotation des disques peut changer au cours
périphériques
alternatifs du temps, en particulier lorsque l’on ajoute ou supprime un disque. De plus, le nom des
périphériques externes est globalement imprévisible : il dépend de l’ordre dans lequel les
périphériques sont branchés.
Linux Livre Page 407 Mardi, 23. septembre 2008 1:05 13
Pour accéder à des périphériques dont le nom varie (par exemple dans un script de sauve-
garde), le répertoire /dev/disk contient des liens supplémentaires vers tous les supports de
données, triés selon plusieurs critères :
• /dev/disk/by-id/id utilise des identifiants qui dépendent du bus, du nom du périphé-
rique et d’un numéro de série ou de modèle.
• /dev/disk/by-label/label utilise des noms indiqués dans le système de fichiers.
• /dev/disk/by-path/path utilise un chemin constitué de l’interface PCI, du bus et du
numéro de la partition. Attention, si un périphérique USB ou Firewire est connecté à
une autre prise de l’ordinateur, cet identifiant est modifié.
• /dev/disk/by-uuid/uuid utilise l’UUID des partitions. Les UUID (Universal Unique
IDentifier, identifiant universel unique) sont des numéros d’identifiant unique asso-
ciés à la partition lors de la création du système de fichiers et qui peuvent être utilisés
pour identifier le système de fichiers, même lorsque la configuration matérielle a été
modifiée.
Le nombre de liens dans chaque répertoire /dev/disk/* est variable. /dev/disk/by-label et
by-uuid ne contiennent que les partitions nommées ou qui ont un UUID. Le système udev
crée automatiquement les liens vers les disques. La commande ls suivante montre par
exemple les liens d’un système disposant d’un disque SATA, d’une clé USB et d’une carte
CompactFlash (qui fonctionne également en USB).
user$ cd /dev/
user$ ls -lR disk/
disk/by-id:
scsi-SATA_ST3320620AS_5QF194H9 -> ../../sda
scsi-SATA_ST3320620AS_5QF194H9-part1 -> ../../sda1
scsi-SATA_ST3320620AS_5QF194H9-part2 -> ../../sda2
scsi-SATA_ST3320620AS_5QF194H9-part3 -> ../../sda3
scsi-SATA_ST3320620AS_5QF194H9-part4 -> ../../sda4
scsi-SATA_ST3320620AS_5QF194H9-part5 -> ../../sda5
usb-Generic_USB_CF_Reader_058F312D81B -> ../../sdc
usb-Generic_USB_MS_Reader_058F312D81B -> ../../sde
usb-Generic_USB_SD_Reader_058F312D81B -> ../../sdb
usb-Generic_USB_SM_Reader_058F312D81B -> ../../sdd
usb-Hama_FlashPen_09202251030128CA -> ../../sdf
usb-Hama_FlashPen_09202251030128CA-part1 -> ../../sdf1
disk/by-path:
pci-0000:00:1a.7-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sdf
pci-0000:00:1a.7-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sdf1
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:0 -> ../../sdb
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:1 -> ../../sdc
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:2 -> ../../sdd
pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:3 -> ../../sde
pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sda
pci-0000:00:1f.2-scsi-0:0:0:0-part1 -> ../../sda1
Linux Livre Page 408 Mardi, 23. septembre 2008 1:05 13
408 LINUX
Les programmes de partitionnement peuvent détruire le contenu de votre disque dur ! Lisez cette section
attentivement avant de lancer un outil de partitionnement quelconque. Il est impossible de modifier une parti-
tion montée dans le système de fichiers.
Le schéma de partitionnement de Windows Vista a changé : Vista ne démarre que lorsque sa partition
commence au 2 048e secteur. Or, dans certains programmes de partitionnement, il arrive que le début de
la partition passe au 63e secteur. Dans ce cas, il faut corriger la partition avant de redémarrer Vista. Le pro-
blème et sa solution sont documentés à l’adresse
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=379835.
Pendant l’installation, presque toutes les distributions Linux fournissent des outils simples
à utiliser pour partitionner le disque dur. Une fois l’installation terminée, de nombreux
outils sont à votre disposition, comme les commandes texte fdisk ou parted ou les applications
graphiques gparted ou qtparted.
Si vous devez modifier fréquemment le partitionnement de vos disques, LVM est probable-
ment intéressant. LVM ajoute un niveau virtuel entre les partitions physiques du disque dur
et les partitions utilisées pour les systèmes de fichiers. Il facilite nettement les modifications
futures du partitionnement. Nous en parlerons à la section 23.12.
Règles de base
Indépendamment des outils, vous devez connaître quelques règles de base :
• Il est impossible d’effectuer des modifications sur une partition montée. Si vous désirez
redimensionner la partition système, vous devez démarrer l’ordinateur avec un live CD.
Il existe des minidistributions spécialement prévues pour cela, comme GParted Live
(http://gparted.sourceforge.net/livecd.php), Parted Magic (http://partedmagic.com/)
ou SystemRescueCD (http://www.sysresccd.org/Page_Principale).
• Généralement, il n’est possible de modifier la taille d’une partition que pour la dernière
partition du disque dur. Vous ne pouvez pas déplacer les partitions sur le disque.
Linux Livre Page 409 Mardi, 23. septembre 2008 1:05 13
• Lorsque vous modifiez la taille d’une partition, la taille du système de fichiers qui s’y
trouve n’est pas automatiquement modifiée ! Diverses commandes supplémentaires
sont nécessaires. Elles dépendent du type de système de fichiers.
• Le nombre de partitions par disque est limité (63 pour les disques IDE lorsqu’ils ne sont
pas gérés par libata, 15 pour les disques SATA, USB, Firewire et IDE lorsqu’ils sont
gérés par libata). Une de ces partitions est la partition étendue qui peut contenir
d’autres partitions mais pas de système de fichiers. Le nombre maximal de partitions se
réduit donc à 3 partitions primaires et 59 ou 11 partitions logiques.
• Lorsque vous modifiez une partition en cours d’utilisation (par exemple la partition sys-
tème de votre distribution Linux), le programme de partitionnement vous demande de
redémarrer l’ordinateur. Sous fdisk, l’erreur qui s’affiche est AVERTISSEMENT: la relec-
ture de la table de partitions a échoué avec l’erreur 16: Périphérique ou ressource occupé. Le ker-
nel va continuer d’utiliser l’ancienne table. La nouvelle table sera utilisée lors du prochain
réamorçage.
La raison en est que le noyau Linux ne sait pas lire la table de partitions lorsque le dis-
que fonctionne. La modification est donc enregistrée, mais elle n’est active qu’au redé-
marrage. Vous devez redémarrer Linux avant de pouvoir utiliser le nouveau
partitionnement.
Problèmes de compatibilité
Les outils présentés dans cette section et ceux qui sont utilisés pendant l’installation de
Linux se différencient sur plusieurs points. Certains outils laissent la partition étendue
comme elle a été créée à l’origine. Nous appellerons ces programmes les programmes de
type 1. Ils comprennent fdisk, parted, les programmes d’installation de Fedora, de Red Hat,
de SUSE et les outils de partitionnement de Windows.
D’autres programmes modifient automatiquement la partition étendue pour qu’elle dispose
exactement de la place nécessaire pour les partitions logiques (type 2). Ils comprennent les
programmes d’installation de Debian, de Mandriva et d’Ubuntu.
Les deux méthodes sont valides, seul leur mélange pose problème. Supposons que vous
créiez une nouvelle partition logique avec un outil de type 2. Le programme adapte la
taille de la partition étendue automatiquement. Si vous essayez à présent d’utiliser un
outil de type 1 pour créer une nouvelle partition logique, celui-ci indique que la partition
étendue est déjà pleine. Les programmes de type 1 ne parviennent pas, à l’exception de
parted, à modifier la taille de la partition étendue lorsque des partitions logiques s’y trouvent
déjà.
Pour corriger cela, lancez un programme de type 2 et modifiez le partitionnement. Vous
pouvez aussi utiliser cet outil pour créer une partition logique temporaire pour réserver la
place nécessaire. Vous supprimerez cette partition temporaire avec le programme de type 1
et pourrez alors utiliser l’espace libre de la partition étendue.
Linux Livre Page 410 Mardi, 23. septembre 2008 1:05 13
410 LINUX
fdisk
fdisk est un des programmes les plus anciens parmi ceux qui sont encore utilisés
aujourd’hui. L’interface utilisateur est plutôt démodée, mais le programme est sophistiqué
et apprécié par les utilisateurs de longue date.
Démarrage fdisk ne peut modifier qu’un disque à la fois ; son nom doit être passé en argument (par
exemple /dev/sdc pour le troisième disque). Si vous utilisez l’option -l, fdisk affiche toutes
les partitions de tous les disques durs. La touche M (menu) affiche une courte description
des commandes disponibles. P (print, afficher) affiche une liste des partitions existantes sur
le disque.
Lorsque le disque dur se compose de plus de 1 024 cylindres (ce qui est le cas des disques actuels), fdisk
affiche un message d’avertissement. Ce message concerne la partition d’amorçage de Linux et n’est valable
que lorsque votre carte mère est ancienne (BIOS datant d’avant 1998) ou lorsque vous utilisez une version
de LILO très ancienne. En règle générale, vous pouvez ignorer cet avertissement.
Création d’une N (new, nouveau) permet de créer une nouvelle partition sur le disque dur. Vous ne pouvez
nouvelle
partition pas créer plus de quatre partitions primaires. Si vous désirez en créer plus de quatre, vous
devez créer une partition étendue. Si plusieurs options sont possibles (partition primaire,
étendue ou logique), fdisk affiche les différents choix et demande le type de partition
souhaité.
Ensuite, il demande à quel endroit la partition doit commencer (normalement au premier
cylindre libre) et quelle doit être sa taille (cylindre de fin). La taille peut aussi être indi-
quée par la syntaxe plus confortable +nM. Par exemple, +2500M pour une partition de
2 500 mégaoctets (Mo).
La taille d’un cylindre dépend du disque dur, du BIOS et éventuellement du contrôleur
SCSI. Cette information se trouve dans la troisième ligne de la sortie de la commande P.
Dans notre exemple, les cylindres sont des ensembles de 16 065 × 512 octets, soit 8 Mo.
Une fois la partition créée, vous pouvez réafficher la liste des partitions avec P. Pour finir,
vous pouvez créer de nouvelles partitions, supprimer des partitions déjà définies, etc.
Identifiants de fdisk crée les nouvelles partitions de type Linux Native (numéro d’identifiant 83). Pour
partitions
utiliser un autre type, vous devez indiquer le nouveau type de partition avec T (type).
Les identifiants de partitions courants, en hexadécimal, sont :
• 82 : partition d’échange Linux (swap) ;
• 83 : Linux (pour tous les systèmes de fichiers Linux : ext, reiser, xfs, etc.) ;
• 8e : Linux LVM ;
• fd : Linux RAID autodetect.
La commande L affiche tous les numéros d’identifiants disponibles. La liste contient égale-
ment des codes pour d’innombrables autres systèmes d’exploitation (DOS, Windows, Unix,
etc.).
Sauvegarde fdisk effectue les modifications uniquement lorsque la commande W (write, écrire) est
des modifi-
cations lancée. Vous pouvez vérifier avec V (verify, vérifier) que toutes les informations internes
sont cohérentes avec le disque. Il s’agit d’un contrôle de sécurité supplémentaire.
Linux Livre Page 411 Mardi, 23. septembre 2008 1:05 13
Normalement, V ne fait qu’afficher le nombre de secteurs qui ne sont pas attribués à une
partition primaire ou logique.
Vous pouvez quitter fdisk à tout moment avec Q (quit, quitter) ou avec Ctrl+C. Votre disque
dur reste alors inchangé.
Les partitions créées avec fdisk sont vides : fdisk n’installe pas de système de fichiers ! La commande de
création d’un système de fichiers dépend du système souhaité (il s’agit par exemple de mkfs.ext3 pour
un système de fichier ext3). Les commandes sont présentées à la section suivante.
Augmentation fdisk ne peut pas, de base, augmenter la taille d’une partition existante. Il est toutefois pos-
de la taille
d’une partition sible de modifier la dernière partition du disque dur (ou la dernière partition logique d’une
partition étendue) lorsqu’il reste de la place derrière cette partition. Dans ce cas, vous pouvez
supprimer la partition et la recréer à sa nouvelle taille.
fdisk modifie uniquement la table de partitions ; il ne modifie pas les données sur le disque.
Le système de données de la partition n’est donc pas adapté. Seule une partie de la partition
est alors utilisée. Augmenter la taille du système de fichiers n’est possible que pour certains
systèmes de fichiers (voir la section 23.4).
La modification d’une partition ou d’un système de données est une opération très dange-
reuse qui n’est à conseiller qu’aux utilisateurs avancés. N’oubliez pas d’effectuer une
sauvegarde lorsque cela est possible.
Exemple Cet exemple montre comment ajouter une partition supplémentaire à un disque dur de
80 gigaoctets (Go). Il s’agit du premier disque de l’ordinateur. fdisk est donc lancé avec le
paramètre /dev/sda.
La commande P donne des informations sur l’état courant du disque. Le disque se compose
de 255 × 63 × 9 729 × 512 octets = 76 316 Mo.
Un cylindre occupe 16 065 × 512 octets = 7,8 Mo.
Le disque se compose d’une première partition primaire (12 cylindres, 94 Mo, système de récu-
pération Dell), d’une seconde partition primaire (1 215 cylindres, 9 477 Mo, partition Windows)
et d’une partition étendue (le reste des cylindres, 66 300 Mo). Dans cette partition étendue se
trouvent cinq partitions Linux et une partition d’échange Linux. La partition étendue dispose
d’espace libre entre les secteurs 3 783 et 9 729 (soit 46 597 Mo).
root# fdisk /dev/sda
Le nombre de cylindres pour ce disque est initialisé à 9729.
Il n’y a rien d’incorrect avec cela, mais c’est plus grand que 1024,
et cela pourrait causer des problèmes en fonction pour certaines
configurations :
1) logiciels qui sont exécutés à l’amorçage (i.e., vieilles versions de LILO)
2) logiciels d’amorçage et de partitionnement pour d’autres SE
(i.e., DOS FDISK, OS/2 FDISK)
Commande (m pour l’aide): p
Disque /dev/sda: 80.0 Go, 80026361856 octets
255 heads, 63 sectors/track, 9729 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Linux Livre Page 412 Mardi, 23. septembre 2008 1:05 13
412 LINUX
N permet de créer une nouvelle partition logique. Le cylindre de début est le premier cylin-
dre libre. La taille est indiquée avec +1500M. Pour finir, la nouvelle table de partitions est à
nouveau affichée. Elle montre que la nouvelle partition occupe en fait 1 506 Mo (parce que
fdisk travaille uniquement sur des cylindres complets) :
Commande (m pour l’aide): n
Action de commande
l logique (5 ou plus)
p partition primaire (1-4)
l
Premier cylindre (3783-9729, par défaut 3783): <Entrée>
Utilisation de la valeur par défaut 3783
Dernier cylindre ou +taille or +tailleM ou +tailleK (3784-9729, par défaut
9729): +1500M
Commande (m pour l’aide): p
Disque /dev/sda: 80.0 Go, 80026361856 octets
255 heads, 63 sectors/track, 9729 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Identifiant disque: 0xeede9d79
W enregistre la table de partitions modifiée. Comme le disque est utilisé, fdisk ne parvient
pas à lire la nouvelle table. Il faut donc redémarrer l’ordinateur avant de pouvoir utiliser la
nouvelle partition.
Commande (m pour l’aide): w
La table de partitions a été altérée!
parted
La différence la plus importante entre fdisk et parted est que fdisk est un programme de
partitionnement pur tandis que parted tente (autant que possible) de prendre en compte le
contenu des partitions. parted peut par exemple modifier la taille d’une partition et du sys-
tème de fichiers qui s’y trouve sans perte de données. Cela fonctionne uniquement lorsque
parted peut accéder à diverses commandes et bibliothèques. La page http://www.gnu.org/
software/parted/ recense les nombreuses fonctions de parted.
Malheureusement, son utilisation est encore plus inconfortable que celle de fdisk. Par ailleurs,
toutes les modifications sont exécutées immédiatement et non après une écriture explicite sur le
disque. Pour ces raisons, il vaut mieux préférer fdisk ou un outil graphique de partitionnement.
Démarrage Indiquez au démarrage de parted le disque à utiliser (par défaut, /dev/hda). H+Entrée affi-
che les commandes disponibles. H+commande affiche un texte d’aide rapide à propos de la
commande. P affiche la table des partitions.
root# parted /dev/sda
GNU Parted 1.7.1
On utilise /dev/sda
Bienvenu dans GNU Parted ! Tapez "help" pour voir la liste des commandes.
(parted) h
check NUMERO effectue une simple vérification du système de fichiers
cp [PÉRIPHÉRIQUE-SOURCE] NOMBRE-SOURCE NOMBRE-DESTINATION copie le système de fichiers
vers une autre partition
help [COMMANDE] affiche l’aide générale, ou l’aide sur la COMMANDE
mklabel LABEL-TYPE crée une nouvelle étiquette de disque (table de partition)
mkfs NUMERO TYPE-FS crée un système de fichiers de type TYPE-SF sur la partition
NUMERO.
mkpart TYPE-PART [TYPE-SF] DÉBUT FIN crée une partition
mkpartfs TYPE-PART TYPE-SF DÉBUT FIN crée une partition avec un système de fichiers
move NUMERO DEPART FIN déplace la partition NUMERO.
name NUMERO NOM donne le nom NOM à la partition NUMERO.
print [free|NUMÉRO|all] affiche la table de partitions, une partition ou tous les
périphériques
Linux Livre Page 414 Mardi, 23. septembre 2008 1:05 13
414 LINUX
Pour créer une nouvelle partition en tant que partition d’échange ou comme partie d’un sys-
tème LVM ou RAID, vous devez modifier le type de partition. La commande correspon-
dante est set numéro_partition nom_attribut. Les différents attributs comprennent entre
autres amorce, swap, lvm et raid.
Linux Livre Page 415 Mardi, 23. septembre 2008 1:05 13
gparted peut modifier uniquement les partitions qui ne sont pas en cours d’utilisation (c’est-à-dire cel-
les qui ne sont pas montées dans l’arborescence). Toutes les partitions utilisées sont affichées avec un
verrou et les boutons d’édition correspondants sont désactivés. La partition étendue est verrouillée dès
lors qu’au moins une des partitions logiques qui s’y trouvent est active. En pratique, vous devrez donc
utiliser souvent gparted sur un live CD, sans quoi presque toutes les opérations importantes sont
bloquées.
Contrairement à parted, gparted enregistre toutes les actions, mais ne les effectue pas direc-
tement. Annuler permet de revenir sur sa décision ; Appliquer effectue les actions.
gparted ne sait malheureusement pas créer de partitions LVM ou RAID.
Figure 23.1
Agrandir une partition
étendue.
Linux Livre Page 416 Mardi, 23. septembre 2008 1:05 13
416 LINUX
est par exemple idéal pour l’exploitation de flux vidéo. Il prend en charge les quotas et
les ACL. Le système de fichiers peut être agrandi en cours de fonctionnement.
• jfs. jfs signifie journaled file system (système de fichiers journalisé). Il a été développé
par IBM, puis porté sous Linux. jfs n’a jamais été très populaire sous Linux et est
actuellement dans l’ombre des autres systèmes de fichiers existants.
Il n’existe pas de système de fichiers "plus sûr" ou "plus rapide" : les performances dépendent de l’utili-
sation. Pour les débutants sous Linux, il est conseillé d’utiliser ext3. Ce système est très répandu, mûr et
stable. Ces éléments sont plus importants que quelques pour cent supplémentaires de performances sur
des applications précises. Vous trouverez une description plus précise de tous les types de systèmes de
fichiers dans Wikipedia, où les pages en anglais sont encore plus détaillées. Internet regorge de comparaisons
et de tests de rapidité.
Il est également possible d’exploiter plusieurs types de systèmes de fichiers, par exemple ext2 ou ext3
pour la partition d’amorçage (ce qui évite les problèmes liés à GRUB ou à LILO), ext3 pour la partition sys-
tème, reiserfs pour une partition de développement (contenant de nombreux petits fichiers) et xfs
pour une partition multimédia (qui contient généralement des fichiers plus gros).
Unix Si vous avez installé un second système Unix sur votre machine, les systèmes de fichiers
suivants peuvent servir pour les échanges de fichiers :
• efs. Le système efs est utilisé sur les anciennes machines SGI (IRIX, versions antérieures
à 6.0). Certains CD-ROM de SGI utilisent également ce format. Linux peut uniquement
le lire, il ne sait pas le modifier.
• sysv. Le système de fichiers sysv est utilisé par les systèmes SCO, XENIX et Coherent.
• ufs. Le système de fichiers UFS est utilisé par FreeBSD, NetBSD, NeXTSTEP et SunOS.
Linux peut uniquement lire ces systèmes. Pour accéder à une partition BSD, il faut utiliser
l’extension BSD Disklabel. Une extension similaire existe pour les tables de partitions
SunOS.
DOS, Les systèmes de fichiers suivants permettent d’échanger des fichiers avec les systèmes DOS,
Windows,
OS/2 et Windows, OS/2 et Macintosh :
Macintosh • vfat. Ce système est utilisé par Windows 9x/ME. Linux peut lire et écrire sur ce type de
partitions. Le pilote vfat peut également travailler avec le système de fichiers DOS (8+3
caractères).
• ntfs. Ce système de fichiers est utilisé sous Windows NT4, 2000, XP et Vista. Linux peut
y lire des fichiers et en écrire, avec certaines restrictions.
• hpfs. hpfs est le système de fichiers de OS/2. Linux peut y lire et écrire des fichiers.
• hfs et hfsplus. Ces systèmes de fichiers sont utilisés sur les ordinateurs Apple. Linux
peut y lire et écrire des fichiers.
CD-ROM et Les CD-ROM et DVD utilisent également certains systèmes de fichiers :
DVD
• iso9660. Le système de fichiers des CD-ROM est défini par la norme ISO 9660. Cepen-
dant, cette norme prévoit uniquement des noms de fichiers courts. Les noms de fichiers
longs sont définis selon le système d’exploitation par des extensions différentes et
Linux Livre Page 418 Mardi, 23. septembre 2008 1:05 13
418 LINUX
incompatibles entre elles. Linux peut lire aussi bien les extensions Rockridge, souvent
utilisées sous Unix, que les extensions Joliet, utilisées par Microsoft. De tels CD sont
reconnus automatiquement.
• udf. Le format Universal Disk Format (format de disque universel) s’est établi comme
successeur du format ISO 9660. Il est souvent utilisé sur les DVD.
Systèmes de Les systèmes de fichiers ne se trouvent pas obligatoirement sur des disques durs locaux,
fichiers réseau
vous pouvez également y accéder par le réseau. Le noyau Linux prend en charge divers
systèmes de fichiers réseau. Je vous indique ici les plus courants :
• smbfs/cifs. Ces systèmes de fichiers permettent de monter des répertoires réseau
Windows ou Samba dans l’arborescence de fichiers.
• nfs. Le Network File System (système de fichiers réseau) est le système de fichiers réseau
le plus important sous Unix.
• coda. Ce système de fichiers est le plus souvent comparé à NFS. Il fournit quelques fonc-
tionnalités supplémentaires, mais n’est pas très répandu.
• ncpfs. ncpfs est basé sur NetWare Core Protocol (protocole principal NetWare). Il est
utilisé par Novell NetWare.
Systèmes Il existe sous Linux de nombreux systèmes de fichiers qui ne servent pas à enregistrer des
de fichiers
virtuels fichiers sur un disque dur (ou sur un autre support de données) mais à échanger des infor-
mations entre le noyau et les applications. Ils sont indiqués par le mot clé nodev dans /proc/
filesystems. La liste suivante présente les systèmes les plus importants.
• devpts. Ce système de fichiers permet d’accéder aux pseudo-terminaux (PTY) via /dev/
pts/*, conformément à la spécification Unix 98. Les pseudo-terminaux émulent une
interface série. Ils sont utilisés sous Unix/Linux par les émulateurs de terminaux
comme xterm. Les périphériques comme /dev/ttypn sont traditionnellement utilisés. La
spécification Unix 98 définit à leur place de nouveaux périphériques. Vous trouverez
plus de détails à ce sujet dans le Text-Terminal-HOWTO (http://tldp.org/HOWTO/Text-
Terminal-HOWTO.html).
• proc et sysfs. Le système de fichiers proc reproduit les informations d’administration
du noyau et de l’administration des processus. Le système sysfs reproduit la connexion
entre le noyau et le matériel. Ils sont respectivement montés dans le système aux empla-
cements /proc et /sys.
• tmpfs. Ce système de fichiers est à la base de la mémoire partagée conformément à Sys-
temV. Il est généralement monté à l’emplacement /dev/shm et permet d’échanger effica-
cement des données entre deux programmes.
Dans certaines distributions (par exemple Ubuntu), les répertoires /var/run et /var/
lock sont également mis en œuvre avec tmpfs. Les fichiers de ces répertoires sont uti-
lisés par de nombreux démons réseau pour enregistrer l’identifiant des processus
ainsi que des informations d’accès à des fichiers. Grâce à tmpfs, les données sont
accessibles en mémoire vive. Cette méthode est plus rapide et permet de s’assurer
qu’il ne reste aucun fichier dans /var/run ou dans /var/lock au redémarrage de
l’ordinateur.
Linux Livre Page 419 Mardi, 23. septembre 2008 1:05 13
• usbfs. usbfs fournit des informations au noyau 2.6 au sujet des périphériques USB
branchés. Il est généralement intégré au système de fichiers proc (/proc/bus/usb).
Autres Pour finir, je vous présente quelques systèmes de fichiers ou mots clés qui ne peuvent pas
systèmes
de fichiers être associés aux catégories précédentes.
• auto. Il n’existe en fait pas de système de fichiers auto. Cependant, ce mot clé peut être
utilisé dans /etc/fstab ou comme argument de la commande mount. Linux essaie alors
de reconnaître lui-même le système de fichiers considéré. Cela fonctionne dans la majo-
rité des cas.
• autofs, autofs4. autofs et sa nouvelle version autofs4 ne sont pas non plus de réels sys-
tèmes de fichiers. Il s’agit d’extensions du noyau qui montent automatiquement les systè-
mes de fichiers qui ont déjà été utilisés. Si un tel système n’est pas utilisé pendant une
certaine période, umount est automatiquement exécuté. Ce comportement est particuliè-
rement pratique lorsque seuls quelques répertoires NFS sont utilisés parmi une pléthore
d’entre eux disponibles sur le système.
En interne, le programme automount est lancé lors du démarrage du système par le
script /etc/init.d/autofs. automount est configuré dans le fichier /etc/auto.master.
Les programmes correspondants sont installés par défaut par Fedora et Red Hat. Cepen-
dant, autofs n’est actif qu’après la configuration de /etc/auto.master ou de /etc/
auto.misc. Vous trouverez plus de détails dans le Automount-Mini-HOWTO
(http://tldp.org/HOWTO/Automount.html).
• fuse. FUSE signifie Filesytem in Userspace (système de fichiers en espace utilisateur) et
permet de développer et d’utiliser des pilotes de systèmes de fichiers en dehors du
noyau. FUSE est donc toujours utilisé en conjonction avec un pilote externe. Il a été inté-
gré au noyau officiel 2.6.14. Il est par exemple mis en œuvre pour deux pilotes NTFS
(ntfsmount et ntfs-3g).
FUSE est pour le moment le seul moyen d’utiliser le système ZFS de Sun sous Linux.
ZFS est un système de fichiers moderne qui gère des quantités presque illimitées de
données. Il est cependant publié sous une licence incompatible avec la GPL et ne peut
donc pas être intégré au noyau.
• gfs et ocfs. gfs (Global File System, système de fichiers global) et ocfs (Oracle Cluster File
System, système de fichiers pour grappe d’Oracle) permettent de construire des systè-
mes de fichiers répartis sur le réseau auquel plusieurs ordinateurs peuvent accéder en
parallèle.
• jffs et cramfs. Ces deux systèmes sont utilisés dans les périphériques embarqués. Ils
permettent de compresser autant de fichiers que possible sur une mémoire Flash ou sur
une ROM.
• loop. Le périphérique de bouclage (loopback device) est un adaptateur qui permet de
considérer un fichier habituel comme un périphérique bloc. Vous pouvez alors y créer
un système de fichiers et le monter dans une arborescence de fichiers. La fonction du
noyau correspondante, loopback device support (prise en charge du périphérique de bou-
clage) est gérée par le module loop.
Linux Livre Page 420 Mardi, 23. septembre 2008 1:05 13
420 LINUX
Les périphériques de bouclage ont de nombreuses applications. Ils servent par exemple
à créer un disque virtuel pour GRUB ou LILO, à mettre en place des systèmes de fichiers
chiffrés, à tester des images ISO pour les CD, à accéder à des fichiers image, etc.
• none. none n’est pas un système de fichiers. Il offre la possibilité, assez peu utilisée, de
monter un répertoire local dans un autre emplacement de l’arborescence de fichiers.
Pour cela, vous devez passer à mount ou à fstab le type de fichiers none et l’option sup-
plémentaire bind. Le résultat est alors comparable à un lien symbolique, mais la mise en
œuvre interne en est très différente.
• unionfs/aufs. Le concept de unionfs et de sa variante aufs permet de créer plusieurs
systèmes de fichiers quasiment les uns au-dessus des autres, où le système le plus haut
a la priorité. unionfs et aufs sont utilisés sur de nombreux systèmes "live". Linux
démarre directement depuis le CD ou depuis le DVD. Un système de fichiers de disque
virtuel (RAM-disk) accessible en écriture surcharge celui du CD/DVD, en lecture seule.
Le système de fichiers visible contient alors la structure du CD/DVD, mais permet des
modifications sur le disque virtuel.
• Systèmes de fichiers chiffrés. Linux sait chiffrer le contenu d’un système de fichiers de
plusieurs manières différentes. Certaines méthodes se fondent directement sur leurs
propres systèmes de fichiers (par exemple CryptoFS ou eCryptfs).
Le fichier /proc/filesystems permet de savoir quels systèmes de fichiers sont intégrés au noyau ou
chargés en tant que modules. Les modules du noyau correspondants se trouvent dans le répertoire /lib/
modules/n/kernel/fs . Si le code source du noyau est installé, vous trouverez plus d’informations dans
/fs/filesystems.c et dans /Documentation/filesystems .
De manière surprenante, il n’existe que peu d’outils de configuration graphiques utilisables à la place de
mount ou pour modifier /etc/fstab. Au nombre des rares exceptions, on compte le module de YaST Sys-
tème, Partitionneur (SUSE) ainsi que le programme admin-disks, disponible sur certains systèmes Gnome.
Cependant, l’utilisation de ces outils implique que vous connaissiez les concepts sous-jacents de mount et de
/etc/fstab.
Les supports de données externes comme les clés USB ou les disques durs Firewire constituent une excep-
tion : de nombreuses distributions montent automatiquement ces supports dans l’arborescence. Les méca-
nismes nécessaires à cela sont cependant relativement complexes et ne sont pas réalisables directement par
/etc/fstab.
422 LINUX
Les fichiers /etc/mtab et /proc/mounts contiennent les mêmes informations. Ils compren-
nent une liste de tous les supports de données montés, associés à leurs types de systèmes de
fichiers et aux options de mount utilisées. /etc/mtab est modifié chaque fois qu’un système
de fichiers est monté ou démonté. La syntaxe de mtab est la même que celle de /etc/fstab. /
proc/mounts contient également des options qui ne sont indiquées explicitement ni par
mount ni par /etc/fstab.
Les options indiquent entre autres le type de système de fichiers (-t xxx). Le nom du péri-
phérique indique la partition ou le lecteur. Le répertoire est un répertoire du système de
fichiers courant (il doit déjà exister ; vous pouvez le créer avec mkdir).
mount peut généralement être exécuté uniquement par root. Cependant, le fichier /etc/
fstab permet d’indiquer des partitions individuelles pour lesquelles tous les utilisateurs
peuvent exécuter mount (option user ou users).
Exemples Le plus simple pour comprendre mount est de présenter quelques exemples. Le premier permet
d’accéder aux fichiers d’une partition Windows 9x/ME depuis le répertoire /windows :
root# mkdir /windows
root# mount -t vfat /dev/sda1 /windows
mount -o remount permet de remonter un système de fichiers déjà monté en modifiant ses
options. La commande suivante active par exemple l’option exec pour un DVD afin de
pouvoir exécuter les programmes qui s’y trouvent :
root# mount /media/dvd -o remount,exec
Linux Livre Page 423 Mardi, 23. septembre 2008 1:05 13
La première ligne indique qu’il faut utiliser la deuxième partition du premier disque IDE
comme répertoire système. Selon la partition sur laquelle vous avez installé Linux, hda2 doit
être remplacé par le bon nom de périphérique.
La deuxième ligne monte le système de gestion des processus. Les fichiers et répertoires du
répertoire /proc n’existent en fait pas sur le disque dur, il s’agit d’une représentation des
données utilisées en interne par le noyau.
Certaines distributions, pour la plupart anciennes, modifient automatiquement le fichier /etc/fstab dès
qu’un nouveau support de données est ajouté ou supprimé dans le système. Ces modifications automati-
ques peuvent être gênantes : des lignes peuvent être écrasées ou supprimées.
Syntaxe de /etc/fstab
L’exemple ci-dessus représente le format principal de fstab. Chaque ligne décrit, en six
colonnes, un support de données (une partition, un système de fichiers).
Première La première colonne contient le nom du périphérique du support de données. Vous trouverez
colonne
des informations sur la nomenclature des partitions de disque à la section 23.2.
Au lieu d’utiliser le nom d’un périphérique, vous pouvez utiliser son nom ou son identi-
fiant. La syntaxe correcte dans ces cas est alors LABEL=chaîne_de_caractères ou UUID=nnn-
nnn. /lib/udev/vol-id permet d’obtenir les noms et UUID d’une partition. Pour modifier
Linux Livre Page 424 Mardi, 23. septembre 2008 1:05 13
424 LINUX
ces données, il faut utiliser différents outils selon le format du système de fichiers (par exemple
tune2fs ou reiserfstune).
root# /lib/udev/vol_id /dev/sda9
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=a12b639e-fafc-4a21-ad43-4852f47bd571
ID_FS_LABEL=/12
ID_FS_LABEL_SAFE=12
L’avantage des noms de partitions ou des libellés par rapport aux noms de périphériques est
qu’ils restent identiques même quand le périphérique a changé de nom. Cela arrive relativement
fréquemment pour les disques SCSI lorsqu’un lecteur supplémentaire est ajouté.
Cette méthode présente cependant deux inconvénients. D’une part, fstab en devient plutôt
moins clair (les UUID le rendent même illisible). D’autre part, si plusieurs distributions Linux
sont installées en parallèle, des problèmes supplémentaires peuvent se poser. En effet, lors de
l’installation, la partition d’échange et éventuellement d’autres partitions sont reformatées. Par
conséquent, de nouveaux UUID sont générés. Les distributions installées ne peuvent donc plus
reconnaître ces partitions. Il faut alors modifier fstab pour lui indiquer les nouveaux UUID.
Deuxième La deuxième colonne indique dans quel répertoire le support de données doit être monté.
colonne
Les répertoires de la deuxième colonne doivent déjà exister. Le répertoire ne doit pas néces-
sairement être vide, mais vous ne pourrez plus accéder aux fichiers qui s’y trouvent après
avoir monté le système de fichiers.
Troisième La troisième colonne indique le système de fichiers. Le tableau suivant liste tous les systèmes
colonne
de fichiers importants, en ordre alphabétique.
On peut également indiquer plusieurs systèmes de fichiers, séparés par des virgules. Par
exemple, les CD et DVD peuvent être configurés avec l’option iso9660,udf car seuls ces
deux systèmes de fichiers sont généralement utilisés dans ce cas. mount choisit alors le format
qu’il va utiliser.
Quatrième La quatrième colonne contient des informations relatives à l’accès au support de données.
colonne
Les options sont séparées par des virgules ; les espaces ne sont pas autorisées. Le tableau
suivant énumère les options les plus importantes de mount. Vous en trouverez une référence
complète dans man mount. Si vous ne souhaitez pas passer d’options, utilisez le mot clé
defaults.
Cinquième La cinquième colonne contient des informations pour le programme dump et est actuelle-
colonne
ment ignorée. Généralement, la partition système contient la valeur 1, et les autres partitions
ou supports de données contiennent la valeur 0.
Sixième La sixième colonne indique si et dans quel ordre le système de fichiers doit être vérifié au
colonne
démarrage. Dans la plupart des distributions, la valeur de cette colonne est 1 pour la parti-
tion système et 0 pour toutes les autres, ce qui signifie que seule la partition système est vérifiée
et éventuellement réparée.
Si vous souhaitez vérifier d’autres partitions automatiquement, donnez-leur la valeur 2
dans cette colonne. Les systèmes de fichiers qui ne doivent pas être vérifiés doivent avoir la
valeur 0.
Si les valeurs de la cinquième et de la sixième colonne ne sont pas renseignées dans /etc/
fstab, la valeur 0 est utilisée par défaut.
Linux Livre Page 426 Mardi, 23. septembre 2008 1:05 13
426 LINUX
Généralités
Journalisation Tous les systèmes de fichiers actuels sous Linux prennent en charge des fonctions de
journalisation. Dans sa forme la plus simple, la journalisation implique qu’au début et à
la fin de chaque opération sur les fichiers, celle-ci est enregistrée dans un fichier spécifi-
que. Grâce à cet enregistrement, vous pouvez vérifier si une opération donnée a été com-
plètement exécutée ou non. Si ce n’est pas le cas, elle peut être répétée (dans le
vocabulaire des bases de données, on parle de transactions). Dans les systèmes de journa-
lisation avancés, il est également possible d’enregistrer les modifications propres aux
fichiers. Cela ralentit le fonctionnement quotidien, mais fournit plus de possibilités en ce
qui concerne la reconstruction.
Lorsqu’une opération ne se termine pas correctement, le fichier de journalisation entre en
jeu. Lorsque la journalisation est simple, les modifications sont perdues (n’attendez pas des
miracles de la journalisation), mais l’état précédent du fichier est rétabli.
L’avantage des fonctions de journalisation est que le système de fichiers peut être ramené
très rapidement à un état cohérent lors du démarrage de l’ordinateur et être utilisé presque
immédiatement. C’est une différence majeure par rapport à ce qui se faisait précédemment :
après une interruption ou une coupure de courant, le système de fichiers complet devait être
parcouru à la recherche d’erreurs. Cela durait plusieurs minutes, voire des heures pour les
gros disques durs.
La journalisation n’offre pas de garantie en ce qui concerne la cohérence du système de fichiers après une
coupure de courant. Le problème provient des disques durs. Ceux-ci utilisent, pour des raisons d’efficacité, de
la mémoire tampon interne. Il peut alors arriver que, du point de vue du système de fichiers, les données
soient reçues et enregistrées par le disque alors qu’elles ne sont écrites sur le disque dur que quelques secondes
plus tard. Si la coupure de courant survient pendant cet intervalle de temps, les données de la mémoire
tampon sont perdues. Certains disques durs permettent de désactiver ce cache. Les performances d’écriture
s’en ressentent fortement, ce qui explique pourquoi on évite généralement de le faire.
Indépendamment du cache d’écriture, le comportement du disque dur lors d’une coupure d’électricité sou-
daine est imprévisible.
Pour formuler cela autrement, les systèmes de fichiers journalisés sont une belle chose, mais ils n’évitent
pas les pertes de données consécutives à une coupure. Si vos données ont une certaine valeur, investissez
100 euros dans un petit onduleur qui permettra à votre ordinateur de s’arrêter proprement, même en cas
de coupure d’électricité.
Linux Livre Page 427 Mardi, 23. septembre 2008 1:05 13
428 LINUX
Lorsque le fichier /forcefsck existe, presque toutes les distributions lancent une vérification
du système de fichiers. Si ce n’est pas le cas, utilisez un système de secours ou un live CD
(Knoppix) et lancez-y fsck.
Limites de Auparavant, la taille maximale des fichiers était une question récurrente, dont la réponse
taille
dépendait du noyau, de l’architecture du processeur, de la bibliothèque glibc et du système
de fichiers. Les distributions courantes prennent en charge l’extension LFS dans la biblio-
thèque glibc. La taille des fichiers est alors, du point de vue de Linux, presque illimitée :
263 octets.
En pratique, il existe cependant certaines limites. Même aujourd’hui, certains programmes
se heurtent à la limite de 2 Go, ce qui peut par exemple rendre le téléchargement d’images
ISO de DVD pénible. Utilisez des outils adaptés, comme wget à partir de sa version 1.10.
D’autre part, les systèmes de fichiers ont différentes limites pour la taille maximale des fichiers
et des systèmes de fichiers. Le tableau suivant résume ces données. Ici, 1 To = 1024 Go.
Changement Il n’existe pas d’outil pour changer de système de fichiers (par exemple passer une partition
de système de
fichiers de ext3 à reiserfs). La seule manière consiste à créer une nouvelle partition formatée dans
le système souhaité et à y copier tous les fichiers.
des migrations sans problème de ext3 à ext4. Attention, il n’est en revanche plus possible
de passer de ext4 à ext3.
La compatibilité entre les différents systèmes ext est également visible du fait que divers
outils d’administration ont toujours un 2 dans le nom de la commande même s’ils fonctionnent
également pour les versions plus récentes (par exemple tune2fs).
Les informations qui suivent sont valides pour le système ext3. Presque toutes les distributions
actuelles utilisent aujourd’hui ext3 par défaut.
/etc/fstab Les systèmes ext3 sont généralement définis dans /etc/fstab de la manière suivante :
/dev/sdb8 / ext3 defaults 1 1
/dev/sdb9 /data ext3 defaults 0 0
/dev/sdb9 /acl-data ext3 acl,user_xattr 0 0
Création d’un Les systèmes de fichiers ext2 et ext3 sont tous deux formatés avec la commande mke2fs.
système de
fichiers ext3 Celle-ci peut également être appelée sous la forme mkfs.ext2 ou mkfs.ext3. L’option -j sert
à créer un fichier de journalisation pour le système de données ; ce fichier est la seule diffé-
rence entre ext2 et ext3. Vous trouverez une référence complète de mke2fs dans man mke2fs.
Dans l’exemple suivant, un système ext3 est créé sur une clé USB de 64 Mo. mke2fs choisit
lui-même une taille de bloc de 1 kilooctet (Ko) et choisit également d’utiliser 256 inodes par
mégaoctet (ce qui correspond à l’option -i 4096) :
root# mke2fs -j /dev/sda14
mke2fs 1.40.8 (13-Mar-2008)
Étiquette de système de fichiers=
Type de système d’exploitation : Linux
Taille de bloc=1024 (log=0)
Taille de fragment=1024 (log=0)
16000 i-noeuds, 64000 blocs
3200 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=1
Nombre maximum de blocs du système de fichiers=65536000
8 groupes de blocs
8192 blocs par groupe, 8192 fragments par groupe
2000 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
8193, 24577, 40961, 57345
430 LINUX
fichiers ne sont indiqués comme étant validés (commited) que lorsqu’ils sont copiés
entièrement sur le disque.
Après un plantage, le système de fichiers peut revenir très rapidement à un état cohé-
rent car tous les fichiers qui n’ont pas été complètement enregistrés sont identifiables
immédiatement. Cependant, il est impossible de les récupérer.
• data=writeback. Ce mode est comparable au mode ordered. La seule différence est que
le journal et les opérations sur les fichiers ne sont pas toujours complètement synchro-
nes (ext3 n’attend pas la fin de l’opération de l’enregistrement pour marquer le fichier
comme committed).
Ce mode est plus rapide que le mode ordered. Après un plantage, l’intégrité du système de
fichiers est assurée dans la même mesure. Cependant, il arrive que les fichiers contien-
nent des anciennes données. Le résultat est le même que pour une récupération après
un plantage sous ext2, mais cette correction est nettement plus rapide avec ext3.
• data=journal. Au contraire des deux autres, ce mode enregistre aussi les modifications
des données. Toutes les modifications sont donc enregistrées deux fois (une fois dans le
journal et une fois dans le fichier). ext3 est donc nettement plus lent dans ce mode. Les
fichiers dont les modifications se trouvent dans le journal (mais pas encore enregistrées
dans le fichier) peuvent être récupérés après un plantage.
Si vous ne passez pas d’option particulière à mount, data=ordered est utilisé. Pour utiliser un
autre comportement de journalisation, passez-le à mount avec l’option -o :
root# mount -t ext3 -o data=journal /dev/sda12 /test
En interne, c’est le démon de journalisation intégré au noyau kjournald qui s’occupe de l’actualisation
régulière du fichier de journalisation. Ce processus est démarré automatiquement lorsqu’un système de
fichiers ext3 est monté dans l’arborescence. kjournald est responsable du fait qu’un accès disque ait
lieu toutes les cinq secondes, même lorsque l’ordinateur n’effectue apparemment aucune tâche.
Conversion de Pour convertir un système ext2 au format ext3, il suffit de lancer la commande suivante :
ext2 à ext3
root# tune2fs -j /dev/sda5
Vérification du Les systèmes de fichiers ext sont régulièrement contrôlés lors du démarrage de l’ordinateur,
système de
fichiers après un nombre donné de commandes mount (par défaut 36) ou après une durée donnée
(par défaut 6 mois), quel que soit le premier critère atteint. Certaines distributions modifient
ces paramètres pour des valeurs bien plus grandes, voire désactivent (avec la valeur 0) com-
plètement les vérifications. La plupart des distributions configurent fstab pour que seule la
partition système soit vérifiée (cela correspond à la sixième colonne, voir la section 23.5).
Malgré la journalisation, il est conseillé de vérifier le système de fichiers régulièrement (au
moins une à deux fois par an). Ainsi, vous pouvez détecter d’éventuelles défaillances maté-
rielles. Il arrive également que le pilote du système de fichiers contienne des erreurs encore
inconnues. Plus les erreurs sont corrigées tôt, plus les dégâts potentiels sont faibles.
Linux Livre Page 431 Mardi, 23. septembre 2008 1:05 13
Modification Vous pouvez définir et modifier l’intervalle de vérification du système de fichiers avec
de l’intervalle
de vérification tune2fs. Les options -c et -i permettent de modifier respectivement le nombre de montages
automatique de la partition et l’intervalle, en jours :
root# tune2fs -l /dev/sda12
...
Mount count: 57
Maximum mount count: 500
Last checked: Thu Dec 4 18:10:14 2003
Check interval: 5184000 (2 months)
...
root# tune2fs -c 100 -i 90 /dev/sda12
Setting maximal mount count to 100
Setting interval between check 7776000 seconds
Définition e2label permet de voir et de définir le nom interne d’une partition ext3 :
du nom de
la partition root# e2label /dev/sda1 mylabel
Vous pouvez donner ces noms dans la première colonne de /etc/fstab à la place du nom du
périphérique.
Définition Le système de fichiers reçoit automatiquement un UUID lors de sa création. Vous pouvez le
de l’UUID
connaître avec la commande vol_id ou /lib/udev/vol_id. Vous pouvez éventuellement le
modifier avec tune2fs -U. Cette modification peut être faite même lorsque la partition est
montée. Vous pouvez indiquer un identifiant aléatoire (random) ou prédéterminé.
root# tune2fs -U random /dev/sda1
root# tune2fs -U f7c49568-8955-4ffa-9f52-9b2ba9877021 /dev/sda1
Redimension- resize2fs permet de redimensionner un système de fichiers ext3. Attention, vous devez
nement d’un
système de auparavant modifier la taille de la partition !
fichiers ext3 Dans l’exemple suivant, la partition de 1.5 Go /dev/sdb11 est supprimée et recréée avec une
taille de 2 Go. Cela se passe sans problème : il s’agit de la dernière partition du disque et il y
a encore de la place sur le disque dur.
root# umount /dev/sdb11
root# fdisk /dev/sdb
Commande (m pour l’aide): p
255 heads, 63 sectors/track, 2055 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Linux Livre Page 432 Mardi, 23. septembre 2008 1:05 13
432 LINUX
Il existe, pour le noyau 2.6, un correctif permettant d’augmenter (mais pas de diminuer) la taille d’un système
ext3 sans le démonter. Sous Red Hat et Fedora, ce correctif est intégré par défaut. Pour les distributions plus
anciennes, vous pouvez modifier la taille du système de fichiers avec la commande ext2online. À partir de
Fedora 6 et de Red Hat Enterprise 5, cette fonction est directement intégrée à resize2fs ; ext2online
n’est plus disponible en tant que commande.
Ce type de modification n’est possible que lorsque le système de fichiers ext3 se trouve sur un périphé-
rique LVM ou RAID. Vous ne pouvez pas modifier la taille d’une partition classique, le correctif du noyau n’y
change rien. Vous trouverez plus d’informations dans les pages de manuel de ext2online et de
resize2fs ainsi qu’à l’adresse http://ext2resize.sourceforge.net/online.html.
Fragmentation La fragmentation recouvre le fait qu’un fichier ne soit pas enregistré dans des blocs contigus
du système de
fichiers mais répartis sur toute la partition. La fragmentation peut ralentir les accès aux fichiers.
ext3 ne nécessite généralement pas de défragmentation car le système de fichiers évite glo-
balement la fragmentation. Cependant, vous devez éviter de remplir le système de fichiers à
plus de 90 %.
Accès au Sous Windows, vous pouvez aussi accéder à vos données Linux avec différents program-
système de
fichiers sous mes. Explore2fs (http://www.chrysocome.net/explore2fs) est, selon moi, un des meilleurs.
Windows Il s’agit d’un genre de gestionnaire de fichiers avec lequel vous pouvez lire les systèmes
ext2/3. Vous ne pouvez cependant pas les modifier.
Linux Livre Page 433 Mardi, 23. septembre 2008 1:05 13
À première vue, le pilote ext (http://www.fs-driver.org/) est une solution plus élégante. Une
fois ce pilote installé, vous pouvez utiliser sans problème des partitions Linux avec tous les
programmes Windows. Cependant, vous devez impérativement éteindre complètement le
système d’exploitation (ne pas le mettre en hibernation) lorsque vous passez d’un système
à l’autre. Vous risquez sinon d’endommager votre système de fichiers et de perdre des
données.
Création d’un Pour créer un système de fichiers reiser dans une partition, utilisez mkfs.reiserfs et
système de
fichiers reiser mkfs.reiser4. Les commandes sont également disponibles sous les noms mkreiserfs
et mkreiser4. De manière générale, aucune option en dehors du nom du périphérique n’est
nécessaire. Pour partitionner le disque, utilisez comme d’habitude fdisk ou un autre outil
de partitionnement. Les partitions reiserfs doivent avoir le même identifiant de système
de fichiers que les partitions ext3, c’est-à-dire 83.
Linux Livre Page 434 Mardi, 23. septembre 2008 1:05 13
434 LINUX
Vous devez alors exécuter la commande mount pour pouvoir utiliser le nouveau système de
fichiers :
root# mount -t reiserfs /dev/sdc1 /test
Lorsque vous travaillez avec xfs, vous devez prendre en compte deux particularités :
• Le système de fichiers utilise la partition à partir du premier octet et ne laisse pas, à la différence des
autres systèmes de fichiers sous Linux, de place pour le secteur d’amorçage. L’installation de GRUB ou
de LILO dans le secteur d’amorçage d’une partition xfs détruit donc une partie du système de
fichiers. Vous devez l’installer dans le MBR ou dans le secteur d’amorçage d’une autre partition.
• Les systèmes de fichiers xfs peuvent être agrandis avec xfs_growfs, mais ne peuvent pas être
réduits.
Linux Livre Page 435 Mardi, 23. septembre 2008 1:05 13
Vous trouverez plus d’informations sur le système de fichiers xfs aux adresses
http://en.wikipedia.org/wiki/XFS et http://oss.sgi.com/projects/xfs/faq.html.
/etc/fstab Les systèmes xfs sont généralement définis comme suit dans /etc/fstab :
/dev/sdb13 /data xfs defaults 0 0
Création d’un Pour créer un système de fichiers xfs sur une partition, lancez simplement mkfs.xfs :
système de
fichiers xfs root# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=256 agcount=16, agsize=152742 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=2443872, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=2560, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0
Vous devez alors exécuter la commande mount pour pouvoir utiliser le nouveau système de
fichiers :
root# mount -t xfs /dev/sdc1 /test
Vérification L’intégrité du système xfs est vérifiée automatiquement à chaque exécution de mount (seul
du système
de fichiers le fichier de journalisation est pris en compte). Pour le vérifier manuellement, lancez
xfs_check. Cela n’est possible que lorsqu’il n’est pas monté. Si la commande renvoie des
erreurs, vous pouvez essayer de les corriger avec xfs_repair.
Pour des raisons de compatibilité avec les autres systèmes, la commande fsck.xfs existe
aussi. Cependant, elle ne remplit aucune tâche à part pointer vers les outils appropriés.
Redimension- xfs_growfs agrandit un système de fichiers xfs. Celui-ci doit être monté. La commande
nement du
système de suppose que la partition sous-jacente a déjà été agrandie.
fichiers
Modification xfs_admin modifie divers paramètres du système de fichiers, en particulier son nom et son
des para-
mètres du UUID. Le système de fichiers considéré doit être démonté au préalable.
système de
fichiers
436 LINUX
FAT32 pour les systèmes de fichiers jusqu’à 8 To et les fichiers jusqu’à 4 Go (mais divers
outils de formatage Windows limitent la taille du système à 32 Go).
Windows 95 a introduit l’extension VFAT, dont la principale amélioration est d’autori-
ser des noms de fichiers de plus de 8+3 caractères. Les noms de fichiers longs sont enre-
gistrés en tant que chaînes de caractères Unicode. Les versions récentes de Windows
enregistrent tous les noms de fichiers (y compris les noms courts) en tant que chaînes de
caractères Unicode, ce qui assure que la casse des noms soit conservée et qu’il ne puisse
pas y avoir de problème de jeu de caractères.
Une partition Windows typique d’un disque dur est une combinaison de FAT32 et de
VFAT (abrégé en VFAT32). Lorsque nous parlerons de VFAT dans les sections qui sui-
vent (ou de système de fichiers vfat), nous parlerons de toutes les combinaisons possibles
de FAT12/16/32 et VFAT.
• NTFS. NFTS a été introduit par Windows NT et est pris en charge par toutes les ver-
sions courantes de Windows (2000, XP, 2003, Vista). NFTS est plus sûr (droits d’accès,
journalisation, etc.) et fournit plus de fonctionnalités. La taille du système de fichiers est
presque illimitée (16 777 216 To).
Windows Vista prévoyait un nouveau système de fichiers fondé sur une base de données,
mais cela n’a pas pu être réalisé.
Prise en charge Linux peut accéder aux systèmes de fichiers VFAT et NTFS. Le pilote VFAT est mûr depuis
de Linux
plusieurs années et offre des droits d’accès en lecture et en écriture. Une partition VFAT est
pour cette raison la méthode la plus simple de partager des données entre Windows et
Linux sur un ordinateur. (Si vous travaillez en réseau, vous pouvez utiliser les partages
Windows/Samba à cette fin.)
La prise en charge de NTFS fut problématique pendant de nombreuses années car il n’exis-
tait qu’un pilote en lecture seule. Cependant, la communauté de développement NTFS a
remué ciel et terre pour changer cela : il existe maintenant trois pilotes libres qui se différencient
principalement dans la mesure avec laquelle ils permettent l’accès en écriture.
Conversion de Indépendamment du système de fichiers, le transfert de fichiers texte entre Linux et Windows
fichiers texte
pose souvent problème car les deux systèmes utilisent des jeux de caractères et des caractères
de fin de ligne différents. Vous pouvez résoudre ces problèmes grâce à divers convertisseurs
(voir Chapitre 15).
Droits d’accès VFAT ne connaît pas le concept de droits d’accès. NTFS prend en charge des droits d’accès,
mais ceux-ci ne sont pas gérés comme sous Unix/Linux. Un problème se pose alors : quel
utilisateur Linux a le droit d’accéder à quels fichiers Windows ? Les options uid, gid et
umask/fmask/dmask de mount permettent de répondre à cette question. Elles définissent le
propriétaire, le groupe et les droits d’accès du système de fichiers Windows pour tous les
fichiers du système de fichiers NTFS, indépendamment des éventuels droits NTFS. Les détails
de ces options sont donnés dans man mount.
Formatage Il est rare de devoir formater une partition Windows, mais cette opération est possible.
d’une partition
Windows • mkdosfs permet de formater une partition en VFAT16 (Windows 9x/ME). Pour formater
en VFAT32, il faut utiliser la syntaxe mkdosfs -F 32.
• mkntfs crée un système de fichiers NTFS. Cette commande se trouve généralement dans
le paquetage ntfsprogs, qui doit souvent être installé préalablement.
Linux Livre Page 437 Mardi, 23. septembre 2008 1:05 13
Si vous n’éteignez pas complètement Windows (mode hibernation ou veille) et si vous démarrez Linux et
modifiez le système de fichiers Windows, vous risquez de perdre des données. Comme Windows fige égale-
ment l’état du système de fichiers, il s’attend, au démarrage suivant, à trouver le même état.
Si vous voulez modifier des fichiers Windows sous Linux, vous devez arrêter complètement Windows avant
de passer sous Linux.
438 LINUX
• opérations d’écriture non prises en charge : modification des fichiers compressés, créa-
tion ou suppression de fichiers ou de répertoires, restauration du système de fichiers
grâce aux fonctions de journalisation.
En résumé, le pilote ntfs est généralement suffisant uniquement pour lire des fichiers sur
une partition NTFS et n’est adapté que dans des cas particuliers à la modification du sys-
tème de fichiers. Vous trouverez plus d’informations sur l’état courant du pilote dans le
fichier Documentation/filesystems/ntfs.txt du code source du noyau.
Paramètres par Par défaut, seul root a accès aux fichiers. Vous trouverez une référence des options de ntfs
défaut
pour mount et /etc/fstab dans man mount.
/etc/fstab Les systèmes NTFS locaux sont généralement définis comme suit dans /etc/fstab. Cette
ligne indique que l’utilisateur avec l’identifiant 501 peut lire et modifier tous les fichiers. Les
autres utilisateurs n’ont aucun accès aux fichiers. Les noms de fichiers sont représentés dans
le codage UTF-8.
/dev/sda1 /media/win ntfs nls=utf8,uid=501,gid=100 0 0
Comme les fonctionnalités d’écriture du pilote ntfs sont limitées, certaines distributions
montent les partitions NTFS avec l’option ro (lecture seule).
Administration Le paquetage ntfsprogs contient diverses commandes d’administration des systèmes de
fichiers NTFS.
Dans certaines distributions (Red Hat, Fedora), seuls root et les utilisateurs du groupe fuse ont le droit de
monter des systèmes de fichiers grâce à FUSE.
ntfsmount Pour monter un système de fichiers NTFS avec FUSE, utilisez la commande ntfsmount ou
mount -t ntfs-fuse. Par défaut, le système de fichiers n’est lisible que par root. Vous trouverez
une référence des options de ntfsmount dans man ntfsmount.
root# ntfsmount /dev/sda1 /media/win
root# mount -t ntfs-fuse /dev/sda1 /media/win
Pour démonter le système de fichiers, utilisez comme d’habitude umount ou ntfsmount -u.
/etc/fstab Pour monter automatiquement une partition avec ntfsmount, ajoutez dans /etc/fstab une
ligne selon le schéma suivant :
/dev/sda1 /media/win ntfs-fuse uid=501,gid=100 0 0
Lorsque la ligne ntfs-fuse de /etc/fstab reste sans effet ou lorsque mount -t ntfs-fuse renvoie
l’erreur unknown filesystem type ntfs-fuse, une cause fréquente est que le lien /sbin/mount.ntfs-
fuse vers ntfsmount est manquant ou défaillant. Les commandes suivantes permettent de régler cette
situation :
root# cd /sbin
root# rm mount.ntfs-fuse
root# ln -s $(which ntfsmount) mount.ntfs-fuse
440 LINUX
Flux Les flux (streams) sont une particularité du système de fichiers NTFS. Un fichier NTFS peut
se composer de plusieurs flux. Chaque flux a la même fonction qu’un fichier. Lorsqu’on
accède comme d’habitude à un fichier, le flux par défaut est lu et modifié. L’accès à des flux
spéciaux (lorsqu’ils existent) passe pas une syntaxe spéciale.
Le pilote ntfs-3g offre l’option streams_interface pour accéder à ces flux. Par défaut,
l’accès est bloqué. streams_interface=windows active la syntaxe Windows typique sous la
forme nom_de_fichier:nom_de_flux. streams_interface=xattr permet d’accéder aux flux
via getfattr/setfattr.
Pour tester cette fonctionnalité, montez le système NTFS avec l’option streams_inter-
face=windows. Créez un nouveau fichier streamtest avec cat. Ctrl+D termine la saisie.
Créez ensuite le flux streamtest:stream1.
root# ntfs-3g -o streams_interface=windows /dev/sda1 /media/win
root# mkdir /media/win/test
root# cd /media/win/test
root# cat > streamtest
abc Ctrl+D
root# cat > streamtest:stream1
efg Ctrl+D
root# ls
streamtest
root# cat streamtest
abc
root# cat streamtest:stream1
efg
Les commandes suivantes montrent l’accès aux flux via les attributs étendus.
root# cd
root# umount /media/win
root# ntfs-3g -o streams_interface=xattr /dev/sda1 /media/win
root# cd /media/win/test
root# setfattr -n user.stream2 -v "xyz" streamtest
root# getfattr -d -e text streamtest
# file: streamtest
user.stream1="efg^012"
user.stream2="xyz"
442 LINUX
Certaines distributions créent aussi des liens comme /dev/cdrom, /dev/dvd ou /dev/dvd-
recorder vers le périphérique réel.
Fonctionne- Pour la plupart des distributions, le système est configuré de manière que, lorsqu’on insère
ment auto-
matique un CD ou un DVD de données dans le lecteur, une fenêtre du gestionnaire de fenêtres appa-
raisse et en affiche le contenu. Vous pouvez sortir le CD/DVD à tout moment en appuyant
sur le bouton du lecteur ou grâce au menu contextuel de l’icône du lecteur sur le bureau.
Ce comportement est dû aux démons de gestion du matériel de KDE et de Gnome.
Fonctionne- Lorsque vous travaillez en console ou sur un bureau sans automatismes liés au CD/DVD,
ment manuel
vous devez monter manuellement les CD/DVD. Les noms de périphériques et de répertoires
varient selon le matériel et la distribution. Les deux lignes suivantes illustrent le montage,
respectivement, d’un support ISO 9660 et d’un support UDF.
root# mount -t iso9660 -o ro /dev/scd0 /media/dvd
root# mount -t udf -o ro /dev/scd0 /media/dvd
Par défaut, tous les répertoires et les fichiers sont lisibles par tous les utilisateurs. Si vous
désirez exécuter des programmes qui se trouvent sur un CD ou un DVD, vous devez ajouter
l’option exec lors du montage. Pour gérer correctement les noms de fichiers internationaux,
utilisez l’option iocharset=utf8 ou utf8. Vous trouverez plus d’informations dans man
mount.
Avant de pouvoir éjecter le CD/DVD, vous devez lancer explicitement umount :
root# umount /media/dvd
À la place d’umount, vous pouvez lancer la commande eject. Le CD est alors supprimé de l’arborescence
et éjecté du lecteur. S’il y a plusieurs supports de données éjectables connectés à l’ordinateur, ils sont testés
les uns après les autres et le premier support trouvé est éjecté. Vous pouvez aussi indiquer comme option le
nom du périphérique ou le point de montage.
Périphérique Lorsque la commande umount renvoie le message d’erreur "périphérique occupé", cela signi-
occupé
fie qu’un autre programme utilise des données sur le CD-ROM. C’est entre autres le cas si
un répertoire du CD-ROM est ouvert dans un terminal. Lancez-y cd pour revenir à votre
répertoire personnel. Pour chercher l’origine d’un problème lié à umount, vous pouvez utiliser la
commande fuser -m /media/dvd.
Une autre source de problèmes peut être NFS. Si le lecteur CD est utilisé via NFS sur un
autre ordinateur, umount échoue souvent, même lorsque l’ordinateur distant a rendu la main
sur le lecteur CD-ROM. Dans ce cas, il faut redémarrer le serveur NFS, voire, dans de rares
cas, l’ordinateur lui-même.
/etc/fstab Dans la plupart des distributions, en raison du mécanisme automatique décrit ci-dessus, il
n’y a pas de ligne pour le lecteur CD/DVD dans /etc/fstab. Si vous montez souvent des
CD/DVD dans l’arborescence, une ligne comme la suivante se révèle en général plus
confortable :
/dev/scd0 /media/dvd udf,iso9660 users,noauto,ro 0 0
Il suffit alors de lancer la commande mount /media/dvd ou mount /dev/scd0 pour monter le
CD/DVD. Tous les utilisateurs peuvent lancer ces commandes.
Linux Livre Page 443 Mardi, 23. septembre 2008 1:05 13
Disquettes
Même si votre ordinateur dispose encore d’un lecteur de disquettes, les disquettes ne jouent
plus un grand rôle au quotidien sous Linux. Les disquettes que vous avez le plus de chance
de trouver sont des installations de LILO ou de GRUB. Cependant, si vous avez besoin de
lire une disquette, cette section regroupe quelques astuces.
La gestion des disquettes est analogue à celle des CD et DVD. Vous montez la disquette avec
mount et accédez à ses fichiers comme d’habitude. Le nom habituel du périphérique est /dev/
fd0. Pensez à lancer umount avant d’éjecter une disquette du lecteur, sans quoi vous risquez
de perdre des données. Divers systèmes de fichiers peuvent se trouver sur une disquette. Le
plus souvent, les disquettes DOS/Windows sont formatées en VFAT.
root# mount -t vfat /dev/fd0 /media/floppy
mtools Vous pouvez aussi lire et modifier une disquette DOS/Windows sans la monter. Pour cela,
utilisez les commandes mtools, comme mcopy ou mdir. Selon la distribution, il est possible
que vous deviez installer le paquetage mtools.
Formatage Pour formater une disquette, utilisez la commande fdformat. Il ne s’agit cependant que d’un
d’une
disquette formatage bas niveau. Pour créer un système de fichiers, vous devez utiliser mformat ou
mkfs.vfat (DOS/Windows), ou encore mke2fs (ext2).
444 LINUX
Vérifiez que vous avez bien démonté toutes les partitions d’un support de données avant de le déconnecter
physiquement. Dans la plupart des distributions, cliquez sur l’icône du support et choisissez
Déconnecter, Éjecter ou un élément similaire du menu. De cette manière, vous vous assurerez que toutes les
opérations d’écriture sont terminées avant de couper physiquement la connexion entre le lecteur et l’ordi-
nateur. Si vous omettez cette étape, vous risquez d’endommager votre système de fichiers ou de perdre des
fichiers.
Si vous n’avez pas d’icône sur votre bureau KDE, saisissez dans Konqueror l’adresse media:/. Le gestionnaire
de fichiers affiche alors des icônes pour tous les supports de données.
Configuration Sous Gnome, vous pouvez contrôler les périphériques externes avec le programme gnome-
volume-properties (voir Figure 23.2). Ce programme se trouve généralement dans le menu
Système > Préférences > Périphériques et médias amovibles.
Figure 23.2
Gestion des supports de
données externes sous
Gnome.
Performances Certaines distributions utilisent l’option sync par défaut lorsqu’elles montent des périphéri-
ques externes. Les opérations d’écriture ne sont alors pas mises en tampon et sont effectuées
immédiatement. Les performances peuvent alors chuter énormément. Pour éviter cela,
montez le support de données manuellement sans l’option sync.
Fonctionne- Depuis 2006, la gestion du branchement à chaud fait appel au noyau, au système udev, au
ment interne
du bran- démon hald et au système de communication D-Bus. Sous KDE, kioslave media:/ attend
chement à des événements D-Bus et réagit en fonction. Sous Gnome, gnome-volume-manager effectue
chaud
cette tâche.
Si vous n’utilisez ni KDE ni Gnome et si vous désirez monter automatiquement des périphé-
riques externes, le paquetage ivman (http://ivman.sourceforge.net/) peut vous être utile.
L’article consultable à l’adresse http://www.linux.com/article.pl?sid=06/07/26/2129232 fournit
plus d’informations à son sujet.
Il arrive sous KDE et sous Gnome que plusieurs utilisateurs soient connectés en même
temps. Dans ce cas, le premier utilisateur connecté obtient les droits d’accès sur les périphé-
riques nouvellement connectés. Ce cas particulier est résolu selon la distribution et peut
Linux Livre Page 445 Mardi, 23. septembre 2008 1:05 13
entraîner des problèmes. Le plus simple est d’éviter de changer d’utilisateur lorsque vous
travaillez avec des disques externes.
Avant la gestion par udev/HAL/D-Bus, il existait d’autres alternatives que vous pouvez
encore rencontrer sur des installations plus anciennes :
• supermount. Ce pseudo-système de fichiers monte et démonte automatiquement les
disquettes, CD et DVD.
• magicdev. Red Hat employait ce programme dans certaines versions plus anciennes. Il est
démarré par le gestionnaire de bureau, surveille les lecteurs de disquettes et de CD/DVD
et monte au besoin le système de fichiers correspondant dans l’arborescence.
• subfs/submount. SUSE employait dans les versions 9.1 à 10.0 le module de noyau non
officiel subfs qui, en combinaison avec les programmes submountd et net-submountd,
intégrait les supports de données externes dans l’arborescence. Ce système n’a jamais
été très stable.
Fonctionne- Lorsque vous travaillez en mode texte ou dans un système de bureau sans gestion automa-
ment manuel
tique des supports de données, vous devez lancer vous-même les commandes mount corres-
pondantes. Pour cela, vérifiez d’abord le nom de votre périphérique (généralement /dev/
sdx où x est la première lettre non utilisée).
La commande fdisk -l fournit un aperçu de tous les supports de données (y compris les
disques durs, mais à l’exception des lecteurs CD et DVD). Dans l’exemple suivant, /dev/sda
est le disque SATA interne avec diverses partitions. /dev/sdb à /dev/sde sont associés à un
lecteur de cartes dans lequel seule une carte CF est insérée (/dev/sdc). /dev/sdf1 est la
première et seule partition d’une clé USB.
root# fdisk -l
Disque /dev/sda: 320.0 Go, 320072933376 octets
...
Disque /dev/sdc: 32 Mo, 32112640 octets
...
Disque /dev/sdf: 256 Mo, 256901120 octets
16 heads, 32 sectors/track, 980 cylinders
Units = cylindres of 512 * 512 = 262144 bytes
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdf1 * 1 980 250864 e W95 FAT16 (LBA)
Les clés USB et les cartes Flash peuvent également être formatées en tant que super-floppy. Cela signifie
qu’elles ne contiennent pas de table de partitions. Dans ce cas, le lecteur complet est désigné sous le nom
/dev/sda (et non, comme d’habitude, /dev/sda1).
Lorsque vous connaissez le nom du périphérique, la suite est simple : créez un nouveau
répertoire et montez-y votre support de données :
root# mkdir /media/memorystick
root# mount /dev/sdf1 /media/memorystick
Linux Livre Page 446 Mardi, 23. septembre 2008 1:05 13
446 LINUX
Les supports de données externes peuvent utiliser différents types de systèmes de fichiers.
En pratique, VFAT est le plus fréquent sur les disques externes et sur les clés USB. C’est éga-
lement le cas des cartes mémoire de divers périphériques électroniques (PDA, appareils
photo numériques, etc.) utilisés par le biais d’un adaptateur USB ou PCMCIA. Sous Linux,
vous pouvez modifier le partitionnement du périphérique et formater chaque partition avec
un système de fichiers au choix.
Lorsque vous avez terminé ce que vous aviez à faire, lancez comme d’habitude la com-
mande umount. Ne débranchez pas le câble USB ou Firewire avant que la commande umount
soit terminée : vous risqueriez de perdre des données !
root# umount /media/memorystick
/etc/fstab Seul root a le droit d’exécuter la commande mount. Si des utilisateurs sans privilèges souhai-
tent monter un support de données dans l’arborescence et le démonter, root doitajouter la
ligne correspondante dans fstab avec l’option users. Pour une clé USB avec un système de
fichiers VFAT, vous pouvez par exemple ajouter :
/dev/sdf1 /media/memorystick vfat users,gid=users,utf8,noatime,noauto 0 0
Tous les utilisateurs peuvent alors monter la clé USB avec mount /media/memorystick et y
lire et écrire des fichiers. Cette méthode a cependant deux inconvénients :
• Selon l’ordre dans lequel le périphérique est branché, le nom du périphérique peut être
modifié. Si la clé USB est branchée en tant que deuxième ou troisième périphérique, elle
peut s’appeler /dev/sdg et l’accès au répertoire /media/memorystick échoue.
• Inversement, la ligne ci-dessus peut être utilisée pour un autre support de données, ce
qui n’est pas toujours le comportement souhaité.
La meilleure solution est d’indiquer le nom du périphérique par le biais de son UUID. Pour
déterminer l’UUID d’un périphérique, utilisez la commande vol_id. Si la commande n’est
pas accessible directement sur votre distribution, essayez de lancer /lib/udev/vold_id.
root# vol_id /dev/sdf1
...
ID_FS_UUID=4550-9BD2
La ligne fstab correspondante est ici divisée en deux pour des raisons de place :
/dev/disk/by-uuid/4550-9BD2 /media/memorystick vfat \
users,gid=users,utf8,noatime,noauto 0 0
Normalement, il est également possible de commencer la ligne de fstab par UUID=4550-9BD2. La com-
mande mount fonctionne alors comme dans la variante précédente, mais la commande umount pose
problème. Malgré l’UUID, mount enregistre le nom courant du périphérique. Les lignes de /etc/
fstab et de /etc/mtab ne correspondent donc pas du point de vue de umount, ce qui peut mener
à des erreurs.
pmount Les commandes pmount et pumount permettent aux utilisateurs sans privilèges de monter et
de démonter des supports externes. Cependant, ces commandes ne sont disponibles que
dans peu de distributions (Ubuntu en est une exception notable).
Linux Livre Page 447 Mardi, 23. septembre 2008 1:05 13
Avec la configuration par défaut, pmount permet à tous les utilisateurs du groupe plugdev de
monter des supports de données externes. Pour des raisons de sécurité, cela fonctionne uni-
quement lorsque le périphérique ne se trouve pas dans /dev/fstab. Une partition est consi-
dérée comme support externe lorsqu’elle se trouve sur un lecteur USB ou Firewire pour
lequel le fichier /sys/block/nom_du_périphérique/removable contient la valeur 1. De plus,
pmount permet d’accéder à tous les supports de données dont le nom de périphérique se
trouve dans /etc/pmount.allow.
Par défaut, pmount passe à mount les options atime, async et utf8 (lorsque cette option est prise
en charge par le système de fichiers). Les options qui diffèrent de ce jeu par défaut doivent être
indiquées explicitement dans une syntaxe différente de celle de mount (voir man pmount).
448 LINUX
mount Une fois ces conditions remplies, l’accès à un répertoire NFS est simple. La commande sui-
vante monte le répertoire /data de l’ordinateur mars dans le répertoire /media/nfsdata de
l’arborescence. Ce répertoire doit exister avant d’exécuter la commande. Vous trouverez les
options de mount spécifiques au NFS dans man mount.
root# mount -t nfs mars:/data /media/nfsdata
Pour la plupart des distributions, tous les répertoires de /etc/fstab sont montés par le pro-
cessus InitV. SUSE est une exception, il faut que le service nfs soit explicitement activé :
root# insserv nfs
NFS ne se préoccupe pas du jeu de caractères des noms de fichiers et les interprète comme des suites
d’octets. NFS suppose que tous les utilisateurs emploient le même jeu de caractères. Si ce n’est pas le cas, les
caractères non ASCII s’affichent mal.
Il n’y a pas de solution à ce problème. Assurez-vous que tous les utilisateurs emploient le même jeu de
caractères ou évitez les caractères internationaux dans les noms de fichiers.
Vous trouverez une référence des options de ces deux systèmes de fichiers dans man
mount.cifs pour cifs et dans man smbmount pour smbfs.
root# mount -t cifs //venus/partage /media/winshare
root# mount -t cifs -o username=nom //venus/partage /media/winshare
La commande vous demande un mot de passe, que vous pouvez aussi saisir directement :
root# mount -t cifs -o username=nom,password=pw \
//venus/partage /media/winshare
/etc/fstab Pour monter un système de fichiers Windows lors du démarrage de l’ordinateur, ajoutez
une ligne de ce type dans /etc/fstab :
//venus/partage /media/winshare cifs defaults 0 0
Cela suffit dans la plupart des distributions. SUSE présente le même type d’exception que
pour NFS et il faut activer le script InitV smbfs :
root# insserv smbfs
Partages CIFS On peut préférer préparer Linux pour qu’un utilisateur sans privilèges root puisse monter
pour les
utilisateurs ou démonter un système de fichiers distant. La procédure est peu pratique et dépend de la
sans privilèges distribution pour certains détails. J’ai testé ce qui suit dans Ubuntu 8.04.
L’administrateur crée un nouveau répertoire et l’associe à l’utilisateur par défaut d’Ubuntu :
user$ sudo -s -H
Password: xxxxxx
root# mkdir /media/winshare
root# chown 1000:1000 /media/winshare
chmod permet de positionner le bit SUID aux commandes mount.cifs et umount.cifs. Cela
induit un risque d’insécurité, mais sinon la procédure ne fonctionne pas. Pesez les avantages et
les inconvénients d’une telle solution avant de la mettre en œuvre.
root# chmod +s /sbin/mount.cifs
root# chmod +s /sbin/umount.cifs
Modifiez les droits d’accès au fichier pour que tout le monde ne puisse pas accéder à des
mots de passe en clair :
root# chmod go-rw /etc/.winshare-pw
Pour finir, ajoutez à /etc/fstab une ligne de ce type (ici séparée en deux pour des raisons de
place) :
//venus/partage /media/winshare cifs \
users,noauto,credentials=/etc/.winshare-pw,dir_mode=777,file_mode=777 0 0
Linux Livre Page 450 Mardi, 23. septembre 2008 1:05 13
450 LINUX
Combien de On comptait auparavant qu’un espace d’échange devait être dimensionné pour contenir
mémoire
d’échange ? deux fois la mémoire vive. Avec l’augmentation de la quantité de RAM, cette règle n’est plus
que rarement de mise. Généralement, pour un ordinateur de bureau, une partition
d’échange nettement plus petite suffit (par exemple 512 Mo pour 2 Go de RAM).
Les ordinateurs portables sont un cas particulier lorsque vous désirez utiliser les fonctions de
Suspend to Disk (mise en suspens sur le disque). La mémoire vive complète est alors enregis-
trée dans la partition d’échange avant que l’ordinateur ne passe en veille. Cela suppose que la
partition d’échange est plus grande que la mémoire vive (par exemple d’un facteur 1,5).
Lorsque vous faites fonctionner un serveur, les données sont encore différentes. Oracle
conseille par exemple pour son serveur de bases de données (10.2) d’adapter le facteur multi-
plicatif à la taille de la mémoire vive :
• jusque 2 Go facteur 2
• 2 à 8 Go facteur 1
• plus de 8 Go facteur 0,75
Linux Livre Page 451 Mardi, 23. septembre 2008 1:05 13
Sur les systèmes 32 bits, la partition d’échange est limitée à 2 Go. Si vous souhaitez plus
d’espace d’échange, vous devez créer plusieurs partitions d’échange.
Création d’une Si votre partition d’échange est trop petite ou si vous souhaitez en créer une autre, créez une
partition
d’échange nouvelle partition. Donnez-lui comme type de partition Linux swap (82 dans fdisk), forma-
tez-la avec mkswap et activez-la avec swapon. Lorsque tout cela fonctionne, ajoutez une ligne
à /etc/fstab.
Fichier On peut aussi créer, à la place d’une partition d’échange, un fichier d’échange. Cependant,
d’échange
ce n’est qu’une solution d’urgence car l’accès au système de fichiers en est ralenti.
Suivez pour cela les étapes suivantes :
root# dd bs=1024 if=/dev/zero of=/swapfile count=1000
1000+0 enregistrements lus
1000+0 enregistrements écrits
1024000 bytes (1,0 MB) copied, 0,0990064 s, 10,3 MB/s
root# swap /swapfile 1000
Initialisation de la version de l’espace de swap 1, taille = 1019 kB
root# sync
root# swapon -v /swapfile
swapon sur /swapfile
Vous pouvez ensuite ajouter le nouveau fichier comme une partition d’échange dans fstab :
/swapfile none swap sw 0 0
23.12 LVM
LVM (Logical Volume Manager, gestionnaire par volumes logiques) est une couche logique
entre le système de fichiers et les partitions du disque dur. Elle est gérée par le module du
noyau md_mod. Cette section est une courte introduction aux bases et à la configuration
manuelle de LVM. Vous trouverez plus d’informations aux adresses http://fr.wikipedia.org/
wiki/Gestion_par_volumes_logiques, http://www.redhat.com/magazine/009jul05/featu-
res/lvm2/, http://www.traduc.org/docs/HOWTO/vf/LVM-HOWTO.html et http://sour-
ceware.org/lvm2/.
Avantages et La description de LVM peut paraître abstraite, mais ses avantages sont réels :
inconvénients
• Vous pouvez créer et redimensionner des partitions sans redémarrer l’ordinateur en
fonctionnement normal : le problème d’une partition trop petite appartient au passé.
• Vous pouvez joindre plusieurs disques en une seule énorme partition virtuelle.
• Vous pouvez créer un instantané d’un système de fichiers très facilement. Un tel méca-
nisme est idéal pour les sauvegardes d’un système en cours de fonctionnement.
• LVM est très rapide. La flexibilité induite ne l’est pas au détriment des performances.
Cependant, LVM présente également quelques inconvénients :
• LVM doit être mis en place dès la création de la partition.
Linux Livre Page 452 Mardi, 23. septembre 2008 1:05 13
452 LINUX
• Il s’occupe uniquement des partitions et pas du système de fichiers qui s’y trouve. Lors-
que vous avez modifié la taille d’une partition, vous devez modifier la taille du système
de fichiers. Généralement, cela ne fonctionne que lorsqu’il n’est pas utilisé (lorsqu’il est
démonté).
• Lorsqu’un système de fichiers est réparti sur plusieurs disques, la probabilité d’erreur
augmente. Un problème sur un seul disque dur rend toutes les données inutilisables.
• La gestion des partitions est plus souple, mais aussi plus compliquée, en particulier en
ce qui concerne la récupération en cas d’incident.
• Vous ne pouvez pas accéder à une partition contenue dans un système LVM sous
Windows.
• Les versions courantes de GRUB ne parviennent pas à démarrer depuis une partition
LVM. Vous avez donc besoin d’une partition /boot à l’extérieur de LVM.
Versions Il existe deux versions de LVM : LVM1 à partir du noyau 2.4 et LVM2 à partir du noyau 2.6.
Cette section traite exclusivement de LVM2.
Vous pouvez connaître votre version de LVM avec lvm version. Vous devez installer les
outils LVM2 et charger le module dm_mod.
root# modprobe dm_mod
root# lvm version
LVM version: 2.02.26 (2007-06-15)
Library version: 1.02.20 (2007-06-15)
Driver version: 4.12.0
LVM pour la Dans cette section, je pars du principe que vous ne mettez en place LVM que pour les
partition
système partitions de données et que la partition système est une partition habituelle. Si vous
désirez mettre en place LVM pour la partition système, vous devez remplir les conditions
suivantes :
• Votre distribution doit le permettre pendant l’installation. C’est le cas pour Debian,
Fedora, Red Hat, SUSE et Ubuntu.
• Vous devez créer une partition d’amorçage en dehors du système LVM ou utiliser le
gestionnaire d’amorçage LILO.
• Le fichier initrd doit contenir le module md_mod.
Glossaire
Voici un glossaire rapide des divers termes associés à LVM.
• Volume physique (PV, physical volume). Un PV est un disque utilisé par une partition
LVM. Il peut s’agir d’un disque ou d’un ensemble de disques monté en RAID.
• Groupe de volumes (VG, volume group). Un ou plusieurs volumes physiques peuvent
être rassemblés dans un groupe. On peut alors répartir des partitions sur les disques
durs.
• Volume logique (LV, logical volume). Un LV est une partie du VG. Pour l’utilisateur, un
LV fait office de partition. Le système de fichiers y est créé. Tant qu’il reste de l’espace
sur le VG, on peut créer ou agrandir des LV à volonté.
Linux Livre Page 453 Mardi, 23. septembre 2008 1:05 13
• Périphérique physique (PD, physical device). Il s’agit d’un disque dur. LVM peut utiliser
tout le disque ou plusieurs partitions de ce disque sous la forme de PV.
• Extension physique (PE, physical extent). On ne peut pas gérer chaque octet d’un VG
ou d’un LV indépendamment. La plus petite unité de données est une extension physique
et sa taille est généralement de 4 Mo.
454 LINUX
Création monvg1 est un espace encore inutilisé. Pour l’utiliser, vous devez créer un volume logique,
d’un volume
logique c’est-à-dire une partition virtuelle. Pour cela, utilisez la commande lvcreate qui a besoin de
trois informations : la taille du volume logique, son nom et le nom du groupe de volumes.
root# lvcreate -L 2G -n myvol1 myvg1
Logical volume "myvol1" created
Création Pour créer un système de fichiers dans le volume logique, utilisez simplement mkfs.ext3 ou
d’un système
de fichiers dans mkfs.xfs :
le volume
logique root# mkfs.ext3 /dev/myvg1/myvol1
Il faut ensuite agrandir le système de fichiers. Si votre noyau ne contient pas le correctif
ext2online, vous devez démonter la partition, la vérifier avec fsck.ext3, la redimensionner
avec resize2fs et la remonter :
root# umount /test
root# fsck.ext3 -f /dev/myvg1/myvol1
...
root# resize2fs /dev/myvg1/myvol1
Resizing the filesystem on /dev/myvg1/myvol1 to 786432 (4k) blocks.
Le système de fichiers de /dev/myvg1/myvol1 a maintenant une taille de 786432
blocs.
root# mount -t ext3 /dev/myvg1/myvol1 /test
Réduire Pour réduire un système de fichiers, vous devez d’abord le réduire avec resize2fs ou l’outil
un système
de fichiers équivalent du système de fichiers considéré :
root# umount /test
root# fsck.ext3 -f /dev/myvg1/myvol1
root# resize2fs /dev/myvg1/myvol1 2560M
resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/myvg1/myvol1 to 655360 (4k) blocks.
Linux Livre Page 455 Mardi, 23. septembre 2008 1:05 13
Vous pouvez alors réduire le volume logique avec lvreduce. Attention, vous devez indiquer
la taille correcte. Dans cet exemple, la taille des blocs est d’exactement 1 Ko, il n’y a donc
rien à calculer. Ce n’est pas toujours le cas.
root# lvreduce --size 2560M /dev/myvg1/myvol1
WARNING: Reducing active logical volume to 2,50 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvol1? [y/n]: y
Reducing logical volume myvol1 to 2,50 GB
Logical volume myvol1 successfully resized
Agrandir le Si vous n’avez plus de place sur le groupe de volumes et que vous souhaitez ajouter une
groupe de
volumes partition, reportez-vous aux étapes suivantes :
root# pvcreate /dev/sdc2
Physical volume "/dev/sdc2" successfully created
root# vgextend myvg1 /dev/sdc2
Volume group "myvg1" successfully extended
root# vgdisplay myvg1
...
VG Size 18,64 GB
Alloc PE / Size 640 / 2,50 GB
Free PE / Size 4132 / 16,14 GB
...
Cache La plupart des disques durs utilisent une mémoire tampon pour les opérations d’écriture.
d’écriture
Dès que les données s’y trouvent, le disque dur indique au système d’exploitation que les
Linux Livre Page 456 Mardi, 23. septembre 2008 1:05 13
456 LINUX
données sont écrites, mais elles ne le sont physiquement qu’un peu plus tard. Ce cache accé-
lère les opérations d’écriture, mais représente un risque d’insécurité des données. Lors
d’une coupure de courant, des données peuvent ne pas être complètement enregistrées et
même un système de fichiers journalisé n’y fera rien.
Pour désactiver le cache – ce qui diminue les performances mais augmente la sécurité –, uti-
lisez la commande hdparm -W0. hdparm -W1 réactive le cache.
Économie Les disques durs de portables modernes peuvent être éteints après une certaine période
d’énergie
d’inactivité pour économiser l’énergie. À l’accès suivant, il faut compter quelques secondes
avant que le disque dur ne soit prêt à l’utilisation. L’option -S permet de régler la valeur
avant que le disque ne soit désactivé. La valeur de cette option va de 0 à 255 et son interpré-
tation est détaillée dans man hdparm. Évitez les valeurs très faibles : cela économise certes de
l’énergie, mais réduit énormément la durée de vie du disque dur, qui n’est prévue que pour
10 000 cycles de désactivation/réactivation.
La commande suivante désactive le disque au bout de dix minutes sans activité :
root# hdparm -S 120 /dev/hda
SMART
SMART signifie Self-Monitoring, Analysis and Reporting Technology (technologie d’autosur-
veillance, d’analyse et de rapport) et est utilisable par presque tous les disques IDE, SATA et
SCSI courants. SMART permet d’enregistrer divers paramètres du disque dur à intervalles
réguliers. Ces paramètres donnent un avertissement sur d’éventuels défauts du disque et
sur sa durée de vie. La surveillance de ces paramètres par le système d’exploitation est un
système d’alerte précoce.
Vous trouverez plus d’informations au sujet de SMART dans les pages
http://fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology,
http://smartmontools.sourceforge.net/ et http://www.linuxjournal.com/article/6983.
Prérequis Pour que SMART puisse être utilisé, quelques conditions doivent être remplies :
• Le disque dur doit prendre en charge SMART. Vous pouvez par exemple savoir cela
avec hdparm -I.
• Il doit s’agir d’un disque dur interne. SMART ne peut pas être utilisé sur les disques
USB et Firewire.
• Les disques durs connectés par un contrôleur RAID matériel ne peuvent utiliser
SMART que dans certains cas particuliers.
• Le paquetage smartmontools doit être installé.
• Le noyau a besoin, pour les disques SATA, de l’option libata passthrough. C’est géné-
ralement le cas pour les noyaux à partir de la version 2.6.15.
État du disque Pour lire les données SMART et pour effectuer les tests SMART, on utilise la commande
smartctl.
Lancez smartctl -i pour voir si le disque prend en charge SMART. Si, pour un disque SATA,
le message d’erreur Device does not support SMART s’affiche, vous devez indiquer le type
de disque avec -d ata. Cette option est nécessaire uniquement pour les versions anciennes
de smartctl.
Linux Livre Page 457 Mardi, 23. septembre 2008 1:05 13
Lorsque smartctl -i affiche dans la dernière ligne SMART support is Disabled, activez
SMART avec smartctl -s on.
smartctl -H indique si un disque dur est dans un état correct et s’il est probable qu’il fonc-
tionne encore dans les prochaines vingt-quatre heures. Si smartctl ne renvoie pas PASSED
comme résultat, il est urgent de faire une sauvegarde complète du disque concerné.
root# smartctl -H /dev/hda
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
smartctl -A affiche une liste des attributs du disque dur. Pour interpréter les résultats, il
faut prendre en compte deux valeurs. La colonne VALUE est la valeur actuelle et TRESH est le
seuil au-dessous duquel il faut s’attendre à des problèmes.
Les valeurs sont normalisées à 100. Par exemple, la valeur Power_On_Hour (indiquant le
nombre d’heures pendant lesquelles le disque a fonctionné) est à 100 pour un nouveau dis-
que dur et chute au fur et à mesure vers 0. La colonne RAW_VALUE indique la valeur brute de
la donnée, en l’occurrence le nombre d’heures de fonctionnement.
smartctl -l error affiche des informations sur les cinq dernières erreurs rencontrées. Les
erreurs isolées qui ne se répètent pas ne sont généralement pas pertinentes.
Exécution SMART permet d’établir encore plus précisément l’état d’un disque avec des tests poussés.
d’un test
Il existe deux tests : un test court (smartctl -t short) et un test long (smartctl -t long). Le
test est effectué en tâche de fond et vous pouvez continuer à travailler normalement. Une
fois le test terminé, vous pouvez en voir le résultat avec smartctl -l selftest.
Surveillance Il existe également des outils de surveillance automatique pour collecter des informations
automatique
régulièrement sur le disque et pour prévenir l’utilisateur en cas de défaillance. Vous pouvez
par exemple utiliser le démon smartd (voir man smartd).
Linux Livre Page 458 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 459 Mardi, 23. septembre 2008 1:05 13
Démarrage du système
24
Ce chapitre traite du démarrage d’un système Linux, qui est assuré par trois composants :
• GRUB sert à démarrer le noyau Linux. Pour cela, il faut l’installer sur une disquette ou
sur le secteur d’amorçage d’un disque dur. Il existe des alternatives à GRUB, comme
LILO, mais leur usage est de plus en plus restreint.
• Lorsque le noyau fonctionne, le système est initialisé (détection du matériel, accès au
disque dur, etc.). Si cela pose problème, vous pouvez passer des options d’amorçage.
• Pour finir, le noyau démarre le programme init du processus InitV. init effectue diver-
ses tâches d’initialisation, comme le montage des systèmes de fichiers et le démarrage
des services réseau. Des connaissances de base sur ce processus s’avèrent utiles
lorsqu’on configure des services.
24.1 GRUB
Pour être précis, nous ne parlons pas ici simplement de GRUB, mais de GNU GRUB 0.9.n
legacy. legacy indique que cette version n’est plus développée activement. Depuis 2005, les
développeurs travaillent sur une nouvelle implémentation de GRUB, nommée GRUB 2. Mi-
2008, celle-ci n’était toujours pas utilisée en pratique. La plupart des distributions fournissent
pour l’instant GRUB 0.9.n, auquel ce chapitre est consacré.
GRUB signifie GRand Unified Bootloader (grand chargeur d’amorçage unifié). La documenta-
tion officielle est accessible avec info grub. Vous trouverez plus d’informations sur GRUB,
y compris GRUB 2, à la page http://www.gnu.org/software/grub/.
460 LINUX
Le MBR ne peut contenir que 512 octets de données. C’est pourquoi le chargeur d’amorçage
ne se trouve pas complètement dans le MBR. Pour contourner cette limite de place, celui-ci
ne contient que le code qui permet de charger le reste du chargeur d’amorçage depuis le
disque dur.
Le code de GRUB est divisé en deux ou trois parties. stage1 se trouve dans le MBR et n’a
comme tâche que de charger les premiers secteurs de stage1_5 ou stage2. stage1_5 contient
le code supplémentaire pour accéder aux fichiers dans divers systèmes de fichiers et stage2
le gestionnaire d’amorçage réel.
Dès que le gestionnaire d’amorçage est lancé, un menu apparaît. Celui-ci permet de choisir
entre tous les systèmes d’exploitation définis dans la configuration de GRUB. Vous pouvez
naviguer dans ce menu à l’aide des touches de direction et démarrer le système souhaité
avec Entrée. Le gestionnaire d’amorçage est souvent configuré pour démarrer un système
donné au bout d’un certain temps.
Il n’existe qu’un seul MBR, mais il peut y avoir plusieurs systèmes d’exploitation sur votre disque dur. Cela risque
évidemment de mener à des conflits !
Lorsque vous réinstallez Windows, le MBR est écrasé et vous ne pouvez plus démarrer Linux directement.
Si votre ordinateur dispose d’un lecteur CD, vous pouvez créer dans ce cas une disquette d’amorçage
GRUB. Si vous n’avez pas de lecteur de disquette, vous devez lancer pour réparer GRUB un système live
(par exemple Knoppix) ou un système d’urgence (fourni sur le CD ou DVD d’installation de nombreuses
distributions).
Inversement, GRUB écrase également, lorsqu’il est installé, le code présent sur le MBR. Cela n’est normale-
ment pas un problème, car GRUB peut démarrer Windows. Malheureusement, l’installation de GRUB peut
échouer. Si cela vous arrive, vous ne pouvez plus démarrer aucun système.
Démarrage Lorsque vous décidez de lancer Windows, le chargeur d’amorçage doit charger et démarrer
de Linux
le fichier du noyau sur le disque dur. Ce fichier s’appelle généralement /boot/vmlinuz (z
indique que le noyau est compressé). Le chargeur d’amorçage doit donc pouvoir charger un
fichier depuis le système de fichiers Linux.
Paramètres En général, on passe peu de paramètres au noyau, mais il en faut au moins un : le nom du
du noyau
périphérique contenant la partition système (par exemple root=/dev/sdb13). Ainsi, le noyau
connaît la partition système. Dès que le noyau est lancé, il passe le contrôle au programme
/sbin/init. Ce programme sert à initialiser le système Linux ; il démarre par exemple tous
les services réseau.
Accès aux Il faut encore prendre en compte une particularité : le noyau Linux est modulaire. Cela
modules
du noyau signifie qu’il ne contient que des fonctions relativement élémentaires. Les fonctionnalités
supplémentaires, par exemple pour accéder à divers composants matériels ou lire et écrire
différents systèmes de fichiers, se trouvent dans des modules qui sont chargés depuis le
système de fichiers et qui étendent le noyau.
Pour que le processus de démarrage fonctionne, le noyau doit pouvoir accéder à la partition
système. Si celle-ci est formatée dans un système de fichiers que le noyau ne prend pas en
charge ou si elle se trouve sur un disque SCSI pour lequel le noyau n’a pas de pilote matériel,
survient le classique problème du paradoxe de l’œuf et de la poule : le noyau ne peut pas
Linux Livre Page 461 Mardi, 23. septembre 2008 1:05 13
accéder au système de fichiers et ne peut donc pas charger le module nécessaire pour lire
des fichiers sur le système de fichiers.
Fichier initrd La solution à ce problème est de charger, en plus du noyau, un fichier initrd. Il s’agit d’un
fichier spécial qui contient tous les modules du noyau nécessaires au démarrage du sys-
tème. Ce fichier est géré par le noyau comme un disque en mémoire vive − le noyau peut
alors lancer les modules nécessaires une fois le disque virtuel chargé.
Le fichier initrd s’appelle souvent /boot/initrd ou /boot/initrd.gz. La plupart des distri-
butions fournissent des outils pour créer un fichier initrd qui correspond au matériel et au
système de fichiers de la partition système (commande mkinitrd).
Installation et Lorsque nous parlons d’installation de logiciels dans cet ouvrage, cela implique souvent
configuration
de GRUB l’installation d’un paquetage depuis un CD ou Internet. Dans ce chapitre, une autre signifi-
cation s’applique. "Installer GRUB" décrit le processus d’écriture du code de démarrage de
GRUB sur le secteur d’amorçage d’un disque dur ou d’une disquette. Nous supposerons
que le paquetage logiciel GRUB est installé.
La configuration de GRUB consiste à modifier /boot/grub/menu.lst de manière que tous les
systèmes puissent être démarrés. GRUB accède par défaut à ce fichier. Dans GRUB 2, le fichier
de configuration s’appelle grub.conf. Fedora et Red Hat utilisent déjà ce nom de fichier.
LILO Dans ce chapitre, nous ne parlerons pas de LILO, qui n’est plus utilisé que dans de rares cas
(distribution Slackware et certains serveurs dédiés, par exemple). Dans le cas où LILO
serait installé par défaut, vous pouvez généralement installer GRUB pour le remplacer.
Vous trouverez des informations sur LILO aux adresses http://lilo.go.dyndns.org/, http://
doc.ubuntu-fr.org/lilo et http://fr.wikipedia.org/wiki/Linux_loader.
Figure 24.1
Menu GRUB.
Linux Livre Page 462 Mardi, 23. septembre 2008 1:05 13
462 LINUX
Vous pouvez alors modifier une ligne du menu de GRUB avec E (edit). C (command line) per-
met de quitter ce menu. Vous vous trouvez alors dans un interpréteur de commandes. help
fournit un aperçu des commandes valides, dont certaines seront décrites dans cette section.
help commande permet d’en savoir plus sur une commande donnée et Échap, de revenir au
menu d’amorçage.
GRUB peut être sécurisé avec un mot de passe. Dans ce cas, vous ne pouvez accéder aux fonctions interactives
de GRUB que lorsque vous avez saisi P et le mot de passe.
GRUB fonctionne normalement en clavier QWERTY US.
Passer des La fonction de modification de GRUB sert avant tout à passer des options du noyau au
options au
noyau Linux démarrage de Linux (par exemple, pour régler des problèmes matériels). Pour cela, choisis-
sez la ligne de menu souhaitée et passez en mode d’édition avec E. Quelques lignes s’affi-
chent, semblables à celles-ci :
root (hd1,12)
kernel /boot/vmlinuz root=/dev/sdb13
initrd /boot/initrd
Choisissez avec les touches de direction la ligne qui commence par kernel, tapez E pour
la modifier, puis ajoutez les options du noyau à la fin de la ligne. Entrée permet de vali-
der les modifications. Échap retourne au menu, d’où vous pouvez démarrer Linux. La
modification des options d’amorçage n’est utilisée qu’une seule fois ; ces options ne sont
pas enregistrées.
Exécuter des Depuis le menu GRUB, vous pouvez passer dans un mode de commandes interactives avec
commandes
interactives C. Vous pouvez y lancer diverses commandes GRUB. Cela permet de démarrer un système
Linux lorsque le menu GRUB ne dispose pas de ligne explicite pour ce système. Vous devez
pour cela savoir sur quelle partition se trouve Linux et quelles sont les commandes GRUB
correspondantes. Les commandes suivantes démarrent par exemple la distribution qui se
trouve sur la partition /dev/sdb13 :
grub> root (hd1,12)
grub> kernel /boot/vmlinuz root=/dev/sdb13
grub> initrd /boot/initrd
grub> boot
Lorsque vous saisissez des noms de fichiers, GRUB sait compléter avec Tab les noms
de fichiers de root ou d’une partition donnée (voir Figure 24.2). cat permet d’afficher un
fichier texte. Le mode de commandes interactives fournit de nombreuses autres commandes,
que nous ne détaillerons pas ici pour des raisons de place.
Modifier le GRUB lit le menu d’amorçage dans le fichier /boot/grub/menu.lst. Celui-ci contient des
menu de
manière commandes telles que title, root, kernel, chainloader, etc. Pour modifier le menu de
persistante manière persistante, vous devez lancer Linux, chercher le fichier de menu de GRUB et le
modifier. GRUB prend en compte vos modifications dès le démarrage suivant. La section
suivante traite des modifications de ce fichier.
Linux Livre Page 463 Mardi, 23. septembre 2008 1:05 13
Figure 24.2
Utiliser GRUB de manière
interactive.
La plupart des distributions actualisent automatiquement le fichier de menu de GRUB lorsque vous mettez à
jour le noyau. Vous êtes ainsi assuré que le nouveau noyau est amorcé au démarrage suivant. Il arrive
cependant que cette reconfiguration automatique écrase vos propres modifications.
Sous les systèmes Debian et Ubuntu, le script update-grub reconfigure GRUB.
Tous les noms de fichiers et de partitions de cette section ont valeur d’exemple. Vous devez remplacer le nom
du disque par votre propre partition système ou partition d’amorçage. Si Linux fonctionne, la commande
df permet de connaître le nom de ces partitions.
Il arrive également que le fichier du noyau ou le fichier initrd aient d’autres noms que ceux des exemples
de cet ouvrage.
Linux Livre Page 464 Mardi, 23. septembre 2008 1:05 13
464 LINUX
Selon la manière dont le disque est partitionné, le schéma des noms GRUB peut, comme celui du nommage des
partitions, contenir des trous. Un disque dur doté d’une partition primaire, d’une partition étendue et de deux
partitions logiques aura pour noms de périphériques /dev/sda1, /dev/sda2, /dev/sda5 et /dev/sda6.
Les noms GRUB correspondants sont (hd0,0), (hd0,1), (hd0,4) et (hd0,5).
Les disques SATA et SCSI sont décrits de la même façon que les disques IDE. Lorsque plu-
sieurs systèmes de disques (par exemple, IDE et SCSI) sont utilisés sur l’ordinateur, l’ordre
numérique des disques durs dépend du BIOS. Les lecteurs CD et DVD ne sont pas pris en
compte par la numérotation.
devices.map Le fichier /boot/grub/devices.map sert à faire correspondre les noms des périphériques et les
noms GRUB. Il est créé lorsque GRUB est lancé pour la première fois. Cependant, il n’est pas
automatiquement actualisé lors de l’ajout d’un disque. Vous pouvez, en revanche, le supprimer
et exécuter à nouveau grub. Le fichier est alors recréé, ce qui peut prendre jusqu’à une minute.
Dans les cas tenaces, vous pouvez aussi modifier vous-même le fichier. Veillez cependant à
ce que vos modifications s’accordent avec celles que GRUB récupère du BIOS lors du
démarrage de l’ordinateur. Ce fichier ressemble à ceci :
(hd0) /dev/sda
(hd1) /dev/sdb
(fd0) /dev/fd0
Les paragraphes suivants définissent les mots clés utilisables dans la section globale de
menu.lst.
Linux Livre Page 465 Mardi, 23. septembre 2008 1:05 13
• default. Cette option indique le numéro de l’élément du menu qui fait office de choix
par défaut. La numérotation commence à 0 ! À la place d’un numéro, vous pouvez aussi
trouver default saved. Dans ce cas, l’élément par défaut est celui sélectionné lors du
dernier amorçage. Pour que cela fonctionne, il faut cependant que l’élément contienne
le mot clé savedefault, dont nous parlerons à la section suivante. S’il n’y a pas d’option
default, le premier élément du menu est le choix par défaut.
• fallback. Cette option donne le numéro du menu utilisé lorsque le choix par défaut ne
fonctionne pas. Lorsque fallback n’est pas défini, si l’élément par défaut ne fonctionne
pas, GRUB passe en mode interactif.
• timeout. Cette option indique le nombre de secondes pendant lesquelles GRUB attend
un choix dans le menu. Une fois cette durée écoulée, le système par défaut est démarré.
• hiddenmenu. Cette option cache le menu. Une fois le temps défini par timeout écoulé, le
système par défaut est démarré. L’utilisateur peut, pendant ce temps, appuyer sur
Échap pour afficher le menu.
• password --md5 mot_de_passe. Cette option protège GRUB avec un mot de passe. Les
commandes du menu ne peuvent pas être utilisées sans mot de passe. Les fonctions
interactives de GRUB se limitent à la saisie d’un mot de passe.
• color avant-plan/arrière-plan avant-plan du menu/arrière-plan du menu. Cette
option définit les couleurs du menu. La première est la couleur du texte. La deuxième
est la couleur du fond de l’écran. Les deux couleurs suivantes définissent celle du texte
et du fond pour l’élément en surbrillance du menu. S’il n’y a pas d’option color, le
menu s’affiche en noir et blanc.
• splashimage. Cette option n’est pas disponible dans toutes les distributions, car il ne
s’agit pas d’une option officielle de GRUB. Ce mot clé permet d’ajouter une image de
fond au menu. Celle-ci doit faire 640x480 pixels, être au format XPM (8 bits par pixel) et
compressée avec gzip. La ligne suivante illustre l’utilisation de splashimage :
splashimage=(hd1,1)/boot/grub/splash.xpm.gz
Vous trouverez également plus de détails à l’adresse
http://ruslug.rutgers.edu/~mcgrof/grub-images/.
• gfxmenu. Il s’agit d’une autre extension non officielle de GRUB, utilisée entre autres par
les distributions SUSE et Novell. Le fichier d’image doit être créé avec mkbootmsg. Ces
commandes, ainsi que le fichier de documentation gfxboot.html se trouvent dans le
paquetage gfxboot.
Protection par La grande flexibilité de GRUB pose évidemment des problèmes de sécurité. Un utilisateur
mot de passe
de GRUB peut lire tous les fichiers du disque qui se trouvent sur une partition ext2, ext3,
reiserfs ou vfat avec cat. Il est donc sensé de protéger GRUB par un mot de passe.
Pour cela, lancez la commande grub, puis md5crypt. Vous pouvez alors saisir un mot de
passe. GRUB renvoie une clé chiffrée :
root# grub
grub> md5crypt
Password: ******
Encrypted: $1$FWk/60$QfckeBVBoaWNBm274USHO0
Linux Livre Page 466 Mardi, 23. septembre 2008 1:05 13
466 LINUX
Tous les utilisateurs peuvent alors choisir n’importe quel élément du menu, mais ils ne peu-
vent pas utiliser les fonctions interactives de GRUB tant qu’ils n’ont pas saisi le mot de
passe. Pour ce faire, l’utilisateur doit taper P, puis le mot de passe.
Pour protéger un élément donné du menu, ajoutez le mot clé lock après la ligne title de
l’élément en question.
Vous pouvez aussi omettre la commande root. Vous devez cependant alors indiquer, pour
chaque fichier, la partition à considérer.
title Linux
kernel (hd1,12)/boot/vmlinuz root=/dev/sdb13
initrd (hd1,12)/boot/initrd
Si /boot ne se trouve pas sur la partition système, mais sur une partition d’amorçage sépa-
rée, vous devez modifier la commande root en conséquence. Comme la partition boot
devient alors le point d’entrée de tous les fichiers, /boot ne doit pas être ajouté aux commandes
indiquant les fichiers du noyau et du disque virtuel. Les lignes suivantes supposent que la
partition /dev/sda2 est la partition /boot :
title Linux
root (hd0,1)
Linux Livre Page 467 Mardi, 23. septembre 2008 1:05 13
Passer des Selon le matériel et la distribution, il peut être nécessaire de passer des options d’amorçage
options au
noyau au noyau Linux. Ces options gèrent, entre autres, l’affichage des messages du processus
InitV. Elles doivent simplement être ajoutées à la fin de la ligne kernel. Les lignes suivantes
sont un premier exemple :
title Linux
root (hd1,12)
kernel /boot/vmlinuz root=/dev/sdb13 vga=normal
initrd /boot/initrd
Pour connaître les options nécessaires à votre distribution ou votre matériel, le plus simple
est de consulter le fichier GRUB créé pendant l’installation. Voici quelques exemples :
• Debian 4 root=/dev/xxx ro
• Fedora 9, RHEL 5 root=LABEL=xxx ro rhgb quiet
• Ubuntu 8.04 root=UUID=xxx ro quiet splash
• SUSE 11 root=/dev/xxx vga=xxx resume=/dev/xxx splash=silent showopts
vga=317
Démarrer Pour démarrer Windows, vous devez indiquer la partition active avec rootnoverify, plutôt
Windows
qu’avec root. La commande chainloader +1 assure que le premier secteur de cette partition
est lu et exécuté. Sous Windows 9x/ME, cela revient à démarrer directement Windows.
Sous Windows NT/2000/XP/Vista, cela lance le gestionnaire d’amorçage de Windows qui
s’occupe lui-même de démarrer Windows − GRUB ne sait pas démarrer lui-même Win-
dows NT/2000/XP/Vista.
title Windows
rootnoverify (hd0,0)
chainloader +1
Windows n’arrive à démarrer que lorsqu’il se trouve sur le premier disque dur. Si ce n’est
pas le cas, il faut échanger virtuellement les disques avec les lignes suivantes :
title Windows
rootnoverify (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1
Enregistrer le Lorsque menu.lst contient de nombreux éléments, le fait que GRUB enregistre le dernier
dernier choix
élément choisi peut s’avérer pratique. Pour cela, ajoutez l’option default saved à la section
globale de menu.lst, puis le mot clé savedefault dans tous les éléments du menu :
title Linux
root (hd1,12)
kernel /boot/vmlinuz root=/dev/sdb13
initrd /boot/initrd
savedefault
Linux Livre Page 468 Mardi, 23. septembre 2008 1:05 13
468 LINUX
N’utilisez savedefault en aucun cas sur un ordinateur pour lequel le BIOS lie deux ou plusieurs disques
en RAID (RAID logiciel au niveau du BIOS). Vous risquez de perdre des données et de mettre en danger la
synchronisation des disques du RAID.
(hd1,12) doit être remplacé par le nom GRUB du disque dur sur lequel se trouve le fichier
de menu. Lorsque tout fonctionne, GRUB affiche le menu. Cependant, vous ne pouvez pas
choisir de système d’exploitation, puisque Linux est déjà démarré.
Réinstallation de GRUB
Lorsque l’installation de GRUB échoue ou lorsqu’elle est écrasée (par exemple, par l’instal-
lation de Windows), vous ne pouvez plus accéder directement au système Linux. Knoppix
est un outil pratique pour réparer une installation de Linux, et en particulier le chargeur
d’amorçage. Vous le trouverez à l’adresse http://knoppix-fr.org/. Vous pouvez aussi télé-
charger la version francisée, Kaella, à l’adresse http://kaella.linux-azur.org/.
Knoppix se grave sur un CD ou un DVD. Il suffit alors d’amorcer l’ordinateur pour démar-
rer Knoppix. Celui-ci devient cependant de moins en moins utile à mesure que les distributions
fournissent un CD d’installation "live". Les manipulations ci-après peuvent peut-être fonc-
tionner avec le CD d’installation de votre distribution.
Une fois Knoppix démarré, lancez un shell en root. Dans l’idéal, vous savez sur quelle
partition se trouve votre distribution Linux et en particulier, le répertoire /boot.
Si ce n’est pas le cas, cliquez sur les différentes icônes de disque dur du bureau Knoppix.
Vous reconnaîtrez la partition souhaitée à son répertoire /boot qui contient les fichiers du
noyau Linux (vmlinuz par exemple), le sous-répertoire /boot/grub et le fichier de menu
GRUB /boot/grub/menu.lst. Si vous avez une partition d’amorçage séparée, celle-ci ne
Linux Livre Page 469 Mardi, 23. septembre 2008 1:05 13
Installation Pour installer complètement GRUB sur une disquette, il faut modifier, en plus de son sec-
complète
teur d’amorçage, le contenu de la disquette. Les commandes suivantes créent un système de
fichiers ext2 sur la disquette, le montent sur /disquette, créent le répertoire /disquette/
Linux Livre Page 470 Mardi, 23. septembre 2008 1:05 13
470 LINUX
boot et y copient tous les fichiers stage. Selon la distribution, il se peut que ces fichiers ne
soient pas dans /usr/lib/grub, mais dans un autre répertoire.
root# mke2fs /dev/fd0
root# mkdir /floppy
root# mount -t ext2 /dev/fd0 /floppy
root# mkdir /floppy/boot
root# cp -a /usr/lib/grub/ /floppy/boot/
La meilleure stratégie est d’installer une première fois GRUB sur une clé USB pour voir ce
qu’il se passe. Lorsque le système est lancé, GRUB reconnaît la clé sous le nom (hdn+1), où n
est le dernier disque interne. Si votre système se trouve sur /dev/sdb13 et si votre ordinateur
dispose de deux disques durs, la clé a pour identifiant (hd2). Pour installer GRUB dans le
MBR de la clé USB, utilisez les commandes suivantes :
root# grub
grub> root (hd1,12)
grub> setup (hd2)
grub> quitv
Si tout se passe bien, l’ordinateur reconnaît GRUB au démarrage suivant, démarre depuis la
clé USB et affiche le menu. Si cela ne fonctionne pas, passez en mode interactif avec C et
cherchez sous quel nom GRUB reconnaît le disque dur. Vous pouvez alors modifier la ligne
correspondante avec E.
Installation sur Nous avons pour l’instant supposé que la seule utilité de la clé USB était l’amorçage. L’opé-
un disque dur
USB ration est encore plus difficile lorsqu’il s’agit de démarrer Linux sur une grosse clé USB ou
un disque dur USB. La procédure est identique à ce qui précède, mais le fichier initrd doit
contenir tous les modules USB nécessaires à l’utilisation du disque dur. Seules quelques dis-
tributions font cela automatiquement. Nous parlerons de la création de fichiers initrd au
Chapitre 27.
472 LINUX
Les paramètres doivent être saisis sans espace. Lorsque plusieurs options sont ajoutées, elles
doivent être séparées les unes des autres par des espaces. Les adresses hexadécimales doi-
vent être saisies au format 0x1234. Les nombres sans préfixe 0x sont considérés comme des
nombres décimaux.
Notez que les paramètres passés au noyau n’ont une influence que sur les pilotes directement intégrés au
noyau. Les paramètres des modules du noyau doivent être ajoutés au format /etc/modprobe.conf (voir
section 25.1).
Cette section ne définit que les options d’amorçage importantes. Vous trouverez plus de détails dans man
bootparam et dans la documentation du noyau, si celle-ci est installée : /usr/src/linux/Documenta-
tion/kernel-parameters.txt , /usr/src/linux/Documentation/ide.txt et /usr/src/
linux/Documentation/* .
Cette documentation peut, selon la distribution, se trouver à un autre endroit. Sous Fedora, elle se trouve
par exemple dans /usr/share/doc/kernel-doc-n.n .
Options SMP
SMP (Symmetric Multi Processing) décrit la capacité du noyau à utiliser plusieurs processeurs
ou cœurs de processeurs en même temps. Si vous rencontrez des problèmes, vous pouvez
utiliser les options suivantes :
• maxcpus=1. Cette option limite le nombre de processeurs utilisés à 1. La valeur 0 cor-
respond à l’option nosmp.
• nosmp. Cette option désactive les fonctions SMP ; le noyau n’utilise qu’un seul pro-
cesseur.
• noht. Cette option désactive les fonctions HyperThreading des processeurs Pentium 4.
• nolapic. APIC (Advanced Programmable Interrupt Controller) décrit un schéma pour trans-
mettre les interruptions matérielles au processeur. Sur certains noyaux plus anciens, il
ne pouvait être activé que sur les ordinateurs avec un seul processeur. Si vous avez des
problèmes avec APIC, utilisez nolapic pour que le noyau ne l’active pas et ne l’utilise
pas.
• noapic. Cette option est un peu moins forte que nolapic ; elle ne désactive que la partie
entrées/sorties d’APIC.
• lapic. Cette option active explicitement APIC. Elle est nécessaire lorsque le BIOS désactive
APIC, alors que celui-ci doit être utilisé.
474 LINUX
24.7 InitV
Cette section est consacrée à InitV et couvre le déroulement des opérations entre le démar-
rage du noyau et l’affichage de l’invite de connexion.
Aperçu d’InitV
Le démarrage de Linux suit généralement le processus suivant :
1. GRUB charge et démarre le noyau.
2. Le noyau démarre le programme /sbin/init.
3. init lit le fichier de configuration /etc/inittab.
4. init démarre un script pour initialiser le système.
5. init démarre le script /etc/rc.d/rc ou /etc/init.d/rc. Le script rc dépend de la distri-
bution. Il sert à démarrer les fichiers de scripts qui se trouvent dans /etc/rcn.d ou /etc/
init.d/rcn.d (n est le niveau d’exécution, voir ci-après). Il actualise également, sur la
plupart des distributions, une barre de progression qui indique la progression du
démarrage.
6. Les scripts de /etc/rcn.d et /etc/init.d/rcn.d lancent divers services du système, en
particulier les fonctions réseau.
Niveau d’exécution
Le noyau démarre comme premier programme /sbin/init. Les options qui ne sont pas pri-
ses en compte par le noyau lui sont transmises. C’est ainsi que Linux est démarré en mode
mono-utilisateur.
Tous les processus sont démarrés directement ou indirectement par init. Celui-ci est égale-
ment le dernier processus lancé sur l’ordinateur ; il s’occupe de la terminaison correcte de
tous les autres processus.
Niveau Le niveau d’exécution décrit différents états que le système d’exploitation peut prendre.
d’exécution
sous Fedora, Malheureusement, ces niveaux ne sont pas unifiés au sein des diverses distributions. Leur
Red Hat et signification est généralement documentée dans /etc/inittab. Les niveaux d’exécution sui-
SUSE
vants sont valables pour la plupart des distributions, à l’exception de Debian et Ubuntu :
• Niveau 0. Extinction du système et arrêt de l’ordinateur.
• Niveau 1 et S. Mode mono-utilisateur.
• Niveau 2. Mode multi-utilisateur sans réseau et sans NFS.
Linux Livre Page 475 Mardi, 23. septembre 2008 1:05 13
inittab
Le démarrage du système est contrôlé par le fichier /etc/inittab. La syntaxe des lignes de
inittab est la suivante :
identifiant:niveau:action:commande
Linux Livre Page 476 Mardi, 23. septembre 2008 1:05 13
476 LINUX
identifiant est un champ de deux caractères qui identifie la ligne de manière unique.
niveau indique les niveaux d’exécution valides pour la ligne. action contient une instruc-
tion pour init. command indique quelle commande doit être lancée. La liste suivante recense
les mots clés action importants et leur signification. man inittab fournit une liste complète
de ces mots clés.
Initialisation du système
Avant de lancer les services spécifiques au niveau d’exécution, un script d’initialisation du sys-
tème est lancé juste après le démarrage de l’ordinateur. Ce script dépend de la distribution :
Debian, Ubuntu /etc/init.d/rcS
Red Hat, Fedora /etc/rc.d/rc.sysinit
SUSE /etc/init.d/boot
L’initialisation du système effectue les opérations suivantes :
• initialiser diverses variables système (y compris le nom d’hôte et de domaine) ;
• activer le système de fichiers /proc ;
• configurer la date et l’heure ;
• configurer la disposition du clavier pour la console texte ;
• démarrer le système udev ;
• éventuellement activer les systèmes RAID et LVM ;
• vérifier les systèmes de fichiers ;
• remonter la partition système en mode lecture/écriture ;
• monter les partitions ;
• initialiser les fonctions de base du réseau (uniquement sous Debian et Ubuntu).
Scripts InitV
Une fois le système activé, le niveau d’exécution par défaut indiqué par /etc/inittab est
démarré. Chaque niveau d’exécution a ses propres scripts. Ceux-ci se trouvent, selon la
distribution, dans /etc/init.d ou /etc/rc.d/init.d.
Linux Livre Page 477 Mardi, 23. septembre 2008 1:05 13
init démarre le script /etc/rc.d/rc ou /etc/init.d/rc. Le niveau d’exécution est passé à rc.
Ce dernier lance quelques tâches d’initialisation, puis les scripts rcn.d/K* pour terminer
tous les processus courants. Enfin, les scripts rcn.d/S* permettant de démarrer les nouveaux
processus pour le niveau d’exécution souhaité sont lancés.
Il est donc très facile d’ajouter des processus système à InitV : il suffit de copier les scripts de
démarrage et d’arrêt dans les bons répertoires.
En pratique, les répertoires rcn.d ne contiennent pas directement des scripts, mais des liens
vers ces derniers. Chaque fichier de script est donc unique, mais peut être utilisé dans plusieurs
niveaux d’exécution et modifié de manière centralisée.
Nomenclature Les liens des répertoires rcn.d commencent par S ou K. Ces liens pointent vers le même
script. Cependant, le script prendra le paramètre start ou stop selon la lettre par laquelle il
commence.
Le numéro qui suit indique l’ordre dans lequel les scripts sont lancés. Par exemple, les
démons réseau supposent généralement qu’une connexion réseau soit présente ; le script
network doit donc être lancé avant ces démons.
Lancer et Vous pouvez lancer les scripts du niveau d’exécution manuellement. Par exemple, cette
arrêter
manuellement commande arrête le serveur Apache :
des démons
root# /etc/init.d/httpd stop
Paramètres La plupart des scripts comprennent les paramètres suivants :
des scripts
InitV • start démarre le programme.
• stop termine le programme.
• status affiche l’état du programme (actif ou non).
• reload est utilisé lorsque le fichier de configuration doit être relu sans redémarrer complè-
tement le démon.
• restart redémarre le programme.
478 LINUX
Gérer les liens La commande update-rc.d permet de gérer les liens InitV. update-rc.d nom remove sup-
InitV
prime tous les liens de démarrage et d’arrêt du service concerné. update-rc.d nom defaults
ajoute des liens de démarrage aux niveaux d’exécution 2 à 5 et des liens d’arrêt aux niveaux
d’exécution 0, 1 et 6. Reportez-vous à man update-rc.d pour plus d’informations à ce sujet.
Démarrer un Sous SUSE, les scripts lancés normalement par /etc/init.d/nom peuvent également l’être
script InitV
sous la forme rcnom. Par exemple, rcsmb permet de lancer ou d’arrêter le serveur Samba.
Linux Livre Page 479 Mardi, 23. septembre 2008 1:05 13
Noyau et modules
25
Ce chapitre traite du noyau Linux et de ses modules. Ces derniers sont des parties du noyau
qui peuvent être chargées lorsqu’elles sont nécessaires, par exemple lorsqu’un périphérique
est utilisé pour la première fois. La section 25.1 explique le fonctionnement et la gestion des
modules du noyau Linux.
Rares sont les cas où vous devez impérativement recompiler le noyau. Vous n’aurez proba-
blement qu’un module à compiler. La section 25.2 traite de la compilation des modules et du
noyau, et la section 25.3 de la création d’un fichier initrd. Les options d’amorçage du noyau
sont quant à elles décrites au Chapitre 24.
Ce chapitre s’adresse aux utilisateurs avancés de Linux. Les débutants ont généralement
intérêt à utiliser le noyau de leur distribution et à n’installer que des paquetages fournis par
cette dernière. Nous traiterons ici des noyaux 2.6.
482 LINUX
Le noyau Jusqu’au noyau 2.6.15, les versions du noyau et de ses modules doivent être identiques. On
et les modules
doivent corres- ne peut pas charger un module compilé pour une autre version du noyau. C’est pourquoi
pondre chaque version a son propre répertoire de modules, /lib/modules/version_du_noyau. En ce
qui concerne les modules qui ne sont pas fournis avec la distribution (module NTFS de
Fedora/Red Hat, modules pour les cartes graphiques ATI ou NVIDIA, etc.), la dépendance
de versions pose souvent problème.
Versionnage Depuis le noyau 2.6.16, le mécanisme de module versioning (versionnage de modules) est une
de modules
amélioration significative. Le module enregistre des informations supplémentaires qui indi-
quent s’il peut fonctionner avec une version différente du noyau. Cela permet également
d’utiliser des modules qui ne correspondent pas à la version du noyau. Cependant, ce méca-
nisme ne fonctionne que lorsque l’option module versioning a été activée lors de la compila-
tion du noyau et que l’interface du noyau n’a pas été modifiée entre la version du noyau et
celle du module.
Le mécanisme de module versioning peut également être décrit sous les noms kernel symbol
versions ou modversions.
insmod -f tente de charger le module même lorsqu’il ne correspond pas à la version cou-
rante du noyau. Le fonctionnement effectif de cette opération dépend de la compatibilité
intrinsèque entre le noyau et le module.
Généralement, on ne charge pas les modules avec insmod, mais avec modprobe. Cette com-
mande présente deux avantages. D’une part, elle cherche elle-même le module à insérer ; il
suffit d’indiquer le nom du module. D’autre part, elle charge également tous les modules
utilisés par le module souhaité. De plus, toutes les options du module indiquées dans /etc/
modprobe.conf sont prises en compte. modprobe demande cependant une configuration
correcte des modules (modprobe.conf et modules.dep).
root# modprobe fuse
Linux Livre Page 483 Mardi, 23. septembre 2008 1:05 13
Supprimer un rmmod supprime le module indiqué du noyau et libère la mémoire correspondante. Cette
module
commande ne fonctionne que lorsque le module n’est plus utilisé. rmmod -a supprime tous
les modules non utilisés du noyau.
root# rmmod fuse
Afficher des modinfo affiche des informations sur un module. Celui-ci ne doit pas nécessairement se trou-
informations
sur un module ver dans le noyau. L’exemple suivant affiche les données pour le module e1000, qui est un
pilote pour les cartes réseau Intel Pro/1000.
root# modinfo e1000
filename: /lib/modules/2.6.24-16-generic/kernel/drivers/net/e1000/
e1000.ko
version: 7.3.20-k2-NAPI
license: GPL
description: Intel(R) PRO/1000 Network Driver
author: Intel Corporation, <linux.nics@intel.com>
srcversion: AD899B6372523BED5266B06
alias: pci:v00008086d000010DAsv*sd*bc*sc*i*
...
depends:
vermagic: 2.6.24-16-generic SMP mod_unload 586
parm: TxDescriptors:Number of transmit descriptors (array of int)
...
parm: debug:Debug level (0=none,...,16=all) (int)
484 LINUX
Pour que tout cela fonctionne, divers mécanismes de configuration sont mis en œuvre :
• Modules au démarrage de l’ordinateur. Certains modules sont utilisés dès le démar-
rage de l’ordinateur (par exemple, ceux qui servent à accéder aux systèmes de fichiers).
Lorsqu’ils ne font pas partie intégrante du noyau, ils doivent être fournis au noyau sous
la forme d’un disque virtuel initrd par le chargeur d’amorçage dès le démarrage.
• Modules de base. Les modules de gestion de base des composants USB, Firewire ou
PCMCI sont directement chargés par divers scripts du processus InitV grâce à mod-
probe − grep modprobe /etc/init.d/* donne un aperçu rapide des modules chargés
de cette manière.
• Modules d’interface. Différents modules sont ensuite chargés lorsqu’une interface don-
née est utilisée pour la première fois. Cela peut poser des problèmes, car certaines inter-
faces correspondent à plusieurs modules. Par exemple, lorsque vous utilisez l’interface
eth0 pour la première fois, il faut charger le module correspondant à la carte réseau.
Comme le noyau ne peut pas le deviner, il faut ajouter cette information au fichier de
configuration de modules /etc/modprobe.conf.
Nous parlerons plus en détail de ce fichier de configuration à la prochaine section. Ce
fichier est particulièrement important, car c’est l’un des rares endroits où la configura-
tion doit être adaptée à votre matériel. Dans la plupart des cas, cette adaptation est gérée
par les outils de configuration de votre distribution. Pour les composants très récents ou
exotiques, il arrive cependant que vous deviez modifier ce fichier manuellement.
La gestion des périphériques par le système udev charge également les modules lorsqu’ils
sont nécessaires. Vous trouverez les règles correspondantes dans /etc/udev/rules.d.
• Modules pour les cartes PCMCIA, les périphériques USB et Firewire, etc. Ces périphéri-
ques ont un rôle particulier. Plusieurs fichiers *.map dans /lib/modules/version_du_noyau
différencient ces composants en fonction d’un identifiant et chargent le module correct.
Modules non La plupart des distributions ne fournissent que des modules dont le code source est
GPL (Ubuntu)
conforme à la GPL. Ubuntu fait exception et fournit des modules de différents pilotes maté-
riels qui contiennent du code binaire de divers fabricants (ATI, AVM et NVIDIA, par exem-
ple). Ces modules sont regroupés dans le paquetage linux-restricted-modules-arch et
installés dans le répertoire /lib/linux-restricted-modules.
Le script InitV linux-restricted-modules-common appelle le script lrm-manager pendant le
démarrage de l’ordinateur. Ce script crée un système de fichiers temporaire dans le réper-
toire /lib/modules/version_du_noyau/volatile. Ce système contient des copies de tous les
modules qui ne se conforment pas à la FPL et depmod est lancé sur ce répertoire. Ces étapes
assurent une utilisation sans problème des modules. Pour désactiver certains modules du
paquetage, indiquez leur nom dans la variable DISABLED_MODULES de /etc/default/linux-
restricted-modules-common.
Syntaxe de modprobe.conf
Cette section décrit les mots clés importants de modprobe.conf et des fichiers de modprobe.d/.
Vous trouverez plus de détails dans man modprobe.conf.
alias Les instructions alias indiquent quel module du noyau doit être utilisé pour quel périphé-
rique. Par exemple, le périphérique /dev/eth0 est associé au module 8139too :
alias eth0 8139too
On accède généralement à des composants matériels grâce aux périphériques bloc et carac-
tère /dev/xxx. Du point de vue du noyau, ces fichiers ne sont pas caractérisés par leur nom,
mais par leurs numéros de périphériques majeur et mineur. De nombreuses instructions
alias font la correspondance entre les numéros de périphériques et les modules. Les deux
exemples suivants montrent que les périphériques bloc ayant le numéro majeur 2 doivent
charger le module floppy. De même, les périphériques caractère ayant le numéro majeur 6
doivent charger le module lp.
alias block-major-2 floppy
alias char-major-6 lp
Linux Livre Page 486 Mardi, 23. septembre 2008 1:05 13
486 LINUX
La définition des protocoles réseau est similaire. Pour utiliser un protocole donné, le noyau
cherche une famille de protocoles nommée net-pf-n. Dans l’exemple suivant, le module
AppleTalk est utilisé pour la famille de protocoles 5 :
Lorsque vous n’avez pas besoin de ce protocole (ou si vous n’avez pas installé le module
correspondant), l’instruction suivante supprime des messages d’erreur :
options Les instructions options indiquent avec quelles options doit être chargé un module donné.
La ligne suivante indique que le module ne (pour les cartes Ethernet compatibles NE2000)
doit être chargé avec l’option io=0x300 :
options ne io=0x300
remove remove permet de lancer des commandes lorsqu’un module doit être supprimé.
blacklist Les instructions blacklist indiquent que les définitions de modules ne doivent pas être uti-
lisées et se trouvent généralement dans le fichier /etc/modprobe.d/blacklist. Celui-ci
contient la liste des modules qui ne doivent pas être chargés, pour des raisons de compatibi-
lité ou parce qu’une meilleure alternative existe. Dans cet exemple, usbmouse n’est pas chargé ;
en général, hid est utilisé à la place.
blacklist usbmouse
Exemple Le fichier modprobe.conf diffère largement d’une distribution à une autre. Des fichiers de
de fichier
modprobe configuration courts s’appuient souvent sur les paramètres de base de /lib/modules/n.n/
.conf module.alias et modules.symbols.
Ce fichier reflète la configuration matérielle individuelle et est modifié par la distribution. Il
est généralement minimal. Les lignes suivantes montrent la configuration de l’une de mes
machines de test sous Fedora 7. Elles correspondent à deux cartes réseau (Ethernet et Wi-Fi),
au contrôleur IDE et à une carte son.
alias eth0 e1000
alias eth1 ipw2100
alias scsi_hostadapter ata_piix
alias scsi_hostadapter1 usb-storage
alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
Linux Livre Page 487 Mardi, 23. septembre 2008 1:05 13
488 LINUX
Obstacles à la Il existe cependant des arguments à l’encontre de la compilation d’un noyau personnalisé :
compilation du
noyau • La plupart des distributions n’utilisent pas le noyau original tel que fourni par Linus
Torvalds et la communauté, mais une version modifiée avec diverses fonctions supplé-
mentaires − chaque distribution utilise évidemment ses propres correctifs. En soi, c’est
plutôt une bonne chose pour les utilisateurs : ils peuvent ainsi bénéficier des fonctions
supplémentaires que le mainteneur de la distribution considère comme stables. Cepen-
dant, les noyaux originaux du serveur FTP de kernel.org ne disposent pas de ces cor-
rectifs. Certains éléments de votre distribution peuvent alors ne plus fonctionner ou
poser certains problèmes.
• La compilation d’un noyau n’est pas difficile. En revanche, la configuration de cette
compilation l’est. Le noyau a plus de 100 options. Celles-ci influent sur les fonctions
intégrées au noyau, sur les modules compilés et sur les options qui ne doivent pas être
mises à disposition. Si vous prenez de mauvaises décisions pour certaines de ces
options, les fonctions correspondantes peuvent refuser de vous obéir et il peut être diffi-
cile de trouver l’origine du problème. Il est cependant pratiquement impossible pour un
débutant sous Linux de deviner toutes les options correctement.
Pour faciliter et automatiser la compilation de noyaux ou de modules sous Debian ou Ubuntu, vous pouvez
considérer les paquetages kernel-package et module-assistant . Ils fournissent des scripts qui facili-
tent certaines opérations.
Code du noyau Jusqu’à la version 2.6, il existait des versions "stables" du noyau (2.0.n, 2.2.n, 2.4.n) et des
versions "développeurs" (2.3.n, 2.5.n). Ce schéma a changé avec le noyau 2.6. Il n’existe plus
de branche 2.7.n de développement ; tous les développements sont effectués directement
dans la branche 2.6.
Le code du noyau se trouve généralement dans le répertoire /usr/src/linux. Vous pouvez
choisir d’installer le code de votre distribution ou le code officiel.
Pour le code du noyau de votre distribution, installez les paquetages suivants :
Debian, Ubuntu linux-source-n.n
Red Hat, Fedora paquetage de code source de kernel-n.n
SUSE kernel-source
Linux Livre Page 489 Mardi, 23. septembre 2008 1:05 13
Pour récupérer une version du noyau qui n’est pas fournie par votre distribution (par exem-
ple, la version la plus récente), vous devez vous rendre sur le site www.kernel.org, qui indique
quelle est la dernière version stable du noyau et où la télécharger.
Configurer le noyau
Le noyau se compose de milliers de fonctions. Avant la compilation, vous pouvez décider
du devenir de chacune d’elles : doivent-elles être intégrées directement au noyau, compilées
en tant que modules ou ne pas être mises à disposition ? Cette opération s’appelle configurer le
noyau.
Noyau Vous devez principalement choisir entre un noyau monolithique ou modulaire. Les noyaux
monolithique
ou modulaire monolithiques contiennent tous les pilotes nécessaires directement dans le noyau et ne pren-
nent pas en charge les modules. Les noyaux modulaires peuvent prendre en compte des
modules et sont, dans presque tous les cas, le bon choix.
Choix des Pour la plupart des composants, vous avez le choix entre trois options : Yes, Module et No.
composants
Yes signifie que le composant est intégré directement au noyau, Module qu’il est compilé en
tant que module, et No qu’il ne sera pas compilé.
Outils de La configuration du noyau se trouve dans le fichier .config à la racine des sources du
configuration
noyau. Il s’agit d’un fichier texte assez long qui contient une liste de composants et le choix
effectué précédemment pour chacun d’eux (y, m ou n). Il n’est généralement pas modifié
manuellement, mais à l’aide des outils suivants :
• make config fonctionne toujours, mais est très pénible à utiliser et n’est pas conseillé.
Vous devez en effet passer toutes les options, y compris lorsque vous souhaitez n’en
modifier que quelques-unes.
• make menuconfig nécessite que ncurses-devel soit installé. Il s’agit d’une interface en
mode texte, mais les différentes options sont structurées dans des menus et non listées
les unes à la suite des autres.
• make xconfig nécessite que X soit lancé et que le paquetage qt3-devel ou qt4-devel soit
installé. make compile l’interface graphique et la lance.
• make gconfig est le pendant GTK de make xconfig. Diverses bibliothèques de dévelop-
pement de Gnome doivent être installées (entre autres, libgtk2-devel et libglade2-
devel).
Tous ces outils de configuration permettent d’afficher une aide en ligne pour savoir à quoi
correspondent les différentes options.
Reprendre une Vous pouvez souvent reprendre la configuration d’un noyau existant et l’utiliser comme
configuration
existante base pour votre nouveau noyau. Pour cela, copiez le fichier .config de l’ancien noyau dans
l’arborescence du nouveau et lancez la commande make oldconfig. Les options du nouveau
noyau qui n’étaient pas présentes dans la configuration existante seront alors proposées, de
manière comparable à make config. Le succès de cette opération n’est pas garanti (surtout si
les deux versions sont très différentes), mais le temps nécessaire à la configuration du noyau
est si faible que cela vaut généralement la peine d’essayer.
Linux Livre Page 490 Mardi, 23. septembre 2008 1:05 13
490 LINUX
Si votre noyau a été compilé avec les bonnes options, le fichier /proc/config.gz contient le
fichier .config du noyau courant. Certaines distributions installent également le fichier de
configuration du noyau dans /boot parallèlement au noyau.
Le résultat de ces commandes est une image bzImage dans le répertoire /usr/src/linux-
n.n/arch/i386/boot. La taille du fichier varie entre 1 et 2 Mo, selon le nombre de fonctions
que vous avez intégrées au noyau.
make modules_install copie les modules à l’endroit où insmod les attend.
Installer le Le noyau fraîchement compilé n’est pas encore actif ! Vous devez le copier dans un endroit
noyau
accessible à GRUB et ajouter un élément au menu :
root# mv /usr/src/linux-n.n/arch/i386/boot/bzImage /boot/vmlinuz-n.n
Pour modifier GRUB, le plus simple est généralement de copier l’élément existant et de
modifier cette copie pour l’adapter au nouveau noyau. Ne remplacez pas le noyau courant,
ni sa configuration : il se peut que votre noyau ne fonctionne pas du premier coup. Il est
alors intéressant de pouvoir revenir à l’ancienne version.
Le fichier initrd n’est pas obligatoire. Si votre noyau contient tous les composants nécessaires au proces-
sus d’amorçage, le démarrage fonctionne sans initrd. Le noyau doit cependant être compilé de cette
manière.
Le fichier initrd doit correspondre exactement à la version du noyau. Il faut donc recréer
un fichier initrd chaque fois que l’on compile un noyau.
Linux Livre Page 491 Mardi, 23. septembre 2008 1:05 13
Glossaire
TCP/IP Tous les systèmes d’exploitation existants prennent en charge TCP/IP en tant
que protocole réseau. Celui-ci régit les communications entre ordinateurs, aussi
bien sur un réseau local (LAN, intranet) que sur Internet. Pour cette raison, de
nombreux services réseau n’ont aucun besoin de savoir si l’ordinateur cible se
trouve à cinq mètres du serveur et sur le même réseau local, ou s’il se trouve au
Japon. Dans le second cas, la vitesse de transfert sera simplement moins élevée.
Le protocole IP (Internet Protocol) constitue la base pour le protocole TCP (Transmis-
sion Control Protocol). TCP/IP gère donc conjointement deux tâches : il identifie
chaque ordinateur par le biais d’un numéro unique (adresse IP) et se charge de
vérifier que les données devant être émises à l’attention d’une adresse particulière
lui parviennent effectivement. Ces données sont transmises sous la forme de petits
paquets.
Linux Livre Page 494 Mardi, 23. septembre 2008 1:05 13
494 LINUX
Même si votre ordinateur ne fait pas partie d’un réseau et que vous ne possédez ni connexion réseau ni
modem, vous aurez quand même besoin des fonctionnalités TCP/IP ! De nombreux programmes Linux utili-
sent en effet ce protocole pour leurs communications internes. Pour cette raison, l’interface loopback doit
dans tous les cas être installée (voir plus bas). C’est le cas par défaut sur toutes les distributions.
UDP et ICMP Outre TCP, il existe deux autres protocoles jouant un rôle important sur Internet : UDP et
ICMP. UDP est l’acronyme d’User Datagram Protocol. Il permet de transmettre les paquets de
façon non fiable. "Non fiable" signifie dans ce contexte que l’émetteur et le destinataire ne
sont pas connectés en permanence l’un à l’autre pour échanger des informations sur les
paquets transmis. Avec UDP, il est donc possible que des paquets n’arrivent pas du tout à
destination, ou dans le désordre par rapport à leur ordre d’envoi. C’est le rôle du destina-
taire (et non du protocole) de vérifier l’intégrité des données. UDP possède l’avantage, par
rapport à TCP, d’être plus efficace pour certaines applications du fait de la faible charge qu’il
occasionne et qu’il permet des temps de réaction plus courts. Il est par exemple utilisé pour
les services DNS et NFS.
ICMP est l’acronyme d’Internet Control Message Protocol. Il est conçu non seulement pour
l’échange de données entre programmes mais également pour la transmission de codes de
contrôle et d’erreur pour TCP/IP. ICMP est par exemple utilisé par l’outil ping.
Ports Chaque paquet IP est classé suivant un numéro de port. Ceci permet d’ordonnancer plus
facilement les paquets au niveau du destinataire. La plupart des applications Internet
(WWW, FTP, E-mail, etc.) se voient attribuer un numéro de port propre.
PPP Lorsque la connexion à Internet intervient, non pas à travers l’infrastructure d’un réseau
local mais directement par le biais d’un modem ou d’une carte RNIS, c’est le protocole PPP
(Point-to-Point Protocol) qui entre en jeu. Il permet de transmettre les données TCP/IP sur
une ligne téléphonique, par RNIS ou par ADSL. PPP peut également être utilisé pour la mise
en place des réseaux privés virtuels (VPN).
Nom d’hôte et Les adresses IP (voir ci-après) sont certes pratiques pour les ordinateurs, mais elles sont peu
nom de
domaine commodes pour les êtres humains. Pour cette raison, l’ordinateur peut aussi être identifié
par la combinaison de son nom d’hôte et du nom de domaine.
Le nom d’hôte est le nom effectivement attribué à l’ordinateur. Le nom de domaine décrit la
portion de réseau dans laquelle on peut accéder à l’ordinateur. Le nom de domaine peut
également comprendre plusieurs sections.
Au sein d’un réseau local, les noms d’hôte et de domaine servent principalement d’aide-
mémoire pour les utilisateurs. Ainsi, mes ordinateurs de test sont nommés suivant les pla-
nètes de notre système solaire (par exemple jupiter), tandis que le domaine associé est sol.
Le nom complet résultant est donc jupiter.sol.
Il faut éviter d’utiliser comme nom d’hôte le fabricant de l’ordinateur, son propriétaire, le nom d’un projet, etc.
car cela peut conduire à une certaine confusion. Utilisez des noms courts et faciles à retenir, correspondant à
des animaux, des plantes, des rivières ou tout autre domaine de votre choix. Les caractères spéciaux ne sont
pas autorisés.
N’utilisez jamais localhost en tant que nom d’hôte ! Ce nom possède une signification particulière : il
sert de nom pleinement qualifié (fully qualified). Il est toujours affecté à l’adresse 127.0.0.1 de l’interface
loopback, indépendamment de tout autre paramètre de la configuration réseau.
Linux Livre Page 495 Mardi, 23. septembre 2008 1:05 13
Vous avez moins de marge de manœuvre sur le choix du nom de domaine. Celui-ci doit cor-
respondre aux noms de domaines déjà utilisés au sein du réseau. Ce n’est que lorsque vous
mettez en place un nouveau réseau local que vous pouvez librement choisir votre nom de
domaine.
Lorsque votre ordinateur Linux doit être visible sur Internet en tant que serveur web, e-mail
ou pour tout autre service, vous devez enregistrer le nom de domaine souhaité auprès d’un
fournisseur d’accès Internet ou d’un bureau d’enregistrement NIC (Network Information Cen-
ter), par exemple auprès de l’AFNIC (http://www.afnic.fr) pour les noms de domaines en .fr
ou de CORE (http://www.corenic.org) pour les noms de domaines en .com, .net et .org.
Adresses IP Les adresses IP servent à identifier de façon univoque un ordinateur au sein d’un réseau.
192.168.0.75 est par exemple une adresse IP typique pour un ordinateur du réseau local. Vous
trouverez davantage d’informations sur les adresses IP un peu plus loin dans ce chapitre.
Adresse MAC L’adresse MAC (Media Access Control) est un numéro d’identifiant univoque que possède
chaque contrôleur Ethernet. L’adresse MAC permet d’identifier le contrôleur réseau avant
même que lui soit affectée une adresse IP. L’adresse MAC est en particulier utilisée par le
protocole DHCP (voir Chapitre 28).
Interface L’adresse IP décrit non pas un ordinateur mais une interface IP. Un ordinateur possède souvent
plusieurs interfaces, chacune dotée d’une adresse IP différente. Sur un ordinateur, on retrouve
généralement l’interface loopback (127.0.0.1, voir ci-après), une ou plusieurs interfaces Ethernet,
ainsi qu’une éventuelle interface PPP pour l’accès Internet par modem, RNIS ou ADSL.
Lorsque l’on parle de l’adresse IP (comme s’il n’en existait qu’une), on fait alors générale-
ment référence à l’adresse permettant d’accéder à l’ordinateur au sein du réseau local ou
d’Internet. En règle générale, il s’agit de l’adresse IP de l’interface Ethernet à laquelle sont
affectés les noms d’hôte et de domaine, et qui est unique au sein du réseau local.
Nom En interne à Linux, toutes les interfaces réseau se voient attribuer un nom. Des noms typi-
d’interface
ques sont par exemple lo pour l’interface loopback, eth0, eth1, etc. pour les interfaces Ethernet
et pppn pour les interfaces PPP.
Interface L’interface loopback joue un rôle particulier : elle permet d’utiliser le protocole réseau pour les
loopback
services locaux et donc pour la communication interne à l’ordinateur. Cela peut sembler
absurde, mais c’est obligatoire pour de nombreuses commandes élémentaires de Linux. En
effet, celles-ci basent leurs communications sur le protocole réseau, et ce que les données res-
tent sur l’ordinateur local ou qu’elles soient transmises à destination d’un ordinateur distant
sur le réseau. Un exemple de ce fonctionnement est le système d’impression CUPS, qui traite
les tâches d’impression aussi bien locales qu’en provenance d’autres ordinateurs sur le réseau.
L’adresse IP réservée pour l’interface loopback est 127.0.0.1. Toutes les distributions gèrent
automatiquement la configuration de l’interface loopback, même si aucune configuration
réseau n’est effectuée par ailleurs.
Masques de L’étendue d’un réseau local est exprimée par deux ou trois masques. Il s’agit pour chaque
sous-réseau,
adresse masque de quatre groupes de chiffres, utilisés en interne comme motif binaire pour les
réseau, adresses IP. Lorsque le réseau local comprend toutes les adresses 192.168.0.n, le masque de
adresse de
broadcast sous-réseau correspondant est 255.255.255.0, l’adresse réseau, 192.168.0.0 et l’adresse de broad-
cast (ou adresse de diffusion), 192.168.0.255. Dans de nombreux outils de configuration,
Linux Livre Page 496 Mardi, 23. septembre 2008 1:05 13
496 LINUX
vous n’avez pas besoin de renseigner l’adresse de broadcast dans la mesure où celle-ci est
calculée à partir des deux autres adresses fournies.
Le réseau résultant est alors décrit comme 192.168.0.0/255.255.255.0 ou, plus brièvement,
192.168.0.0/24 (cette seconde notation fournit le nombre de valeurs binaires à 1 dans le mas-
que de sous-réseau). Deux ordinateurs d’adresses IP 192.168.0.71 et 192.168.0.72 peuvent
donc communiquer directement l’un avec l’autre sur ce réseau (parce que les adresses IP
correspondent au domaine défini par le masque de sous-réseau). Le nombre maximal
d’ordinateurs pouvant communiquer entre eux dans ce réseau est de 254 (correspondant
aux adresses .1 à .254, les adresses .0 et .255 étant réservées).
Passerelle Une passerelle (gateway) est un ordinateur constituant une interface entre deux réseaux
(bien souvent, entre le réseau local et Internet). Pour que votre ordinateur Linux, situé sur le
réseau local, puisse accéder à Internet, vous devez fournir l’adresse de la passerelle à la
configuration.
L’adresse de la passerelle décrit donc un ordinateur du réseau local (par exemple
192.168.0.1). Cet ordinateur possède une position particulière dans la mesure où il est égale-
ment connecté (par exemple par une liaison ADSL) à Internet. Le trafic Internet de l’ensemble
du réseau local transite donc par la passerelle.
Serveur Un serveur de noms est un programme traduisant les noms des ordinateurs ou les adresses
de noms
Internet (par exemple www.yahoo.fr) en adresses IP. Sur les petits réseaux, la correspon-
dance entre nom et adresse s’effectue bien souvent par le biais d’un tableau (le fichier /etc/
hosts). Sur Internet, ce sont des ordinateurs dotés des bases de données appropriées qui
gèrent cette tâche. Pour décrire un serveur de noms, on utilise également l’abréviation DNS
(pour Domain Name Server).
Lorsque vous souhaitez consulter la page www.yahoo.fr dans un navigateur web, un contact
est établi en premier lieu avec le serveur de noms pour en obtenir l’adresse IP du serveur
web correspondant. Ce n’est qu’après la réussite de cette opération qu’une connexion peut
être établie avec l’adresse IP en question.
DHCP Le protocole DHCP (Dynamic Host Configuration Protocol) est fréquemment utilisé au sein des
réseaux locaux pour centraliser l’administration du réseau. Plutôt que configurer individuelle-
ment, sur chaque ordinateur, l’adresse IP, la passerelle, le serveur de noms, etc., un ordinateur
est configuré comme serveur DHCP (voir Chapitre 28). Tous les autres postes du réseau local
prennent contact, à l’amorçage, avec le serveur DHCP pour en obtenir les paramètres à utiliser
pour le réseau. La configuration des clients est donc réduite à sa plus simple expression.
Adresses IP
Nous avons déjà mentionné que les adresses IP servent à l’identification des ordinateurs au
sein d’un réseau. Cela vaut aussi bien pour le réseau local que pour Internet. Cette section
fournit des informations de base sur l’utilisation des adresses IP.
En théorie, il existe 2564 adresses IP (environ 4 milliards). Toutefois, le nombre d’adresses
disponibles de fait est très inférieur car, d’une part, un certain nombre de ces adresses sont
réservées (par exemple toutes celles finissant par .0 et .255) et, d’autre part, parce que les
adresses IP ont par le passé été attribuées de façon assez libérale.
Du fait de la croissance exponentielle d’Internet, le besoin en adresses IP univoques pour
chaque ordinateur présent sur Internet est devenu un problème grandissant. Jusqu’à l’adoption
Linux Livre Page 497 Mardi, 23. septembre 2008 1:05 13
complète d’IPv6 (une nouvelle version du protocole Internet qui, outre de nombreuses amé-
liorations, offrira également un espace d’adresses considérablement plus grand), les adresses
IP resteront un bien rare.
Adresses IP Si vous souhaitez connecter votre propre serveur web à Internet, vous aurez besoin non seu-
sur Internet
lement d’un nom de domaine valable mondialement (par exemple "masociete.fr"), mais
également d’une adresse IP propre. Le plus simple pour obtenir ces deux paramètres consiste à
passer par votre FAI ou par l’organisme NIC de votre pays.
Pour les utilisateurs privés ou les petites organisations, ceci n’est toutefois que rarement
nécessaire. Pour le réseau local, ce sont les adresses IP de l’espace d’adresses privé qui sont
utilisées (voir un peu plus loin pour les détails). La connexion à Internet s’effectue par le
biais d’un FAI qui, pour la durée de la connexion, met à votre disposition une adresse IP
valable mondialement.
Si, toutefois, vous souhaitez être présent sur Internet avec votre propre site web, vous
devrez en général faire appel à un fournisseur de services. L’ordinateur hébergeant le ser-
veur web et vos documents HTML se trouve chez le fournisseur (et non à votre domicile) et
c’est le prestataire qui est responsable de l’adresse IP. Ce fonctionnement présente un avan-
tage supplémentaire dans la mesure où vous n’avez pas à être connecté en permanence à
Internet pour que votre site web soit, lui, accessible.
Pour résumer : vous n’aurez besoin d’une adresse IP personnelle et univoque que si votre
ordinateur doit être en permanence accessible sur Internet et que vous possédiez à cet effet
une connexion directe à Internet (par exemple par une ligne dédiée). Cela ne concerne en
général que les grosses sociétés et les universités.
Adresses IP sur Les ordinateurs du réseau local sont en règle générale invisibles depuis Internet. Cela signi-
le réseau local
fie que les ordinateurs peuvent certes utiliser les fonctionnalités Internet par le biais d’une
configuration appropriée, mais qu’ils sont protégés contre les accès non autorisés réalisés
depuis Internet. En conséquence, les adresses IP du réseau local n’ont besoin d’être univoques
qu’au sein de ce réseau et non au niveau mondial.
Les adresses IP étant un bien rare, ceci offre des possibilités intéressantes d’économies. Trois
plages d’adresses parmi l’espace d’adresses IP disponibles ont donc été réservées aux
réseaux locaux :
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Le premier domaine permet de mettre en place un réseau local très important (comprenant
en théorie 16 millions d’ordinateurs, ce qui suffit déjà pour de très grosses entreprises). Le
deuxième domaine compte de fait 16 plages d’adresses d’environ 65 000 adresses chacune
(par exemple 172.23.0.0 à 172.23.255.255). Le troisième domaine est constitué de 256 petites
plages d’adresses (par exemple 192.168.75.0 à 192.168.75.255.
La plage d’adresses dans laquelle vous choisissez de configurer votre réseau local n’a pas
d’importance : ce système garantit qu’il n’y aura aucun conflit d’adresse avec les "vraies"
adresses IP d’Internet.
Linux Livre Page 498 Mardi, 23. septembre 2008 1:05 13
498 LINUX
La plupart du temps, vous souhaiterez pouvoir utiliser librement les fonctionnalités Inter-
net au sein du réseau local (par exemple consulter des pages web). Pour ce faire, vous
devrez configurer un ordinateur du réseau local en tant que passerelle vers Internet. Cet
ordinateur établit la connexion à Internet (qu’il s’agisse d’une connexion ADSL, RNIS,
modem ou autre) et redirige toutes les requêtes Internet du réseau local. La passerelle a en
outre la responsabilité de traduire les adresses IP locales en une adresse IP valable à
l’extérieur : cette fonction porte le nom de mascarade et est décrite au Chapitre 28.
Adresses IP Le fait qu’une adresse IP est obligatoire pour identifier un ordinateur sur le réseau devrait
dynamiques
maintenant être clair. Mais d’où l’ordinateur peut-il savoir quelle adresse utiliser ? La solu-
tion la plus simple consiste à renseigner explicitement l’adresse IP à la configuration. Sur les
petits réseaux locaux, c’est la procédure la plus courante. Le premier ordinateur du réseau
se voit par exemple attribuer l’adresse 192.168.0.1, le second 192.168.0.2, etc. L’adresse est
enregistrée dans le fichier /etc/hosts.
Plus la taille du réseau augmente, et plus cette configuration décentralisée devient problé-
matique. Pour éviter la surcharge de travail afférente, on utilise fréquemment des adresses
IP dynamiques. Pour cela, un ordinateur du réseau local doit être configuré en tant que ser-
veur DHCP (Dynamic Host Configuration Protocol). Tous les autres postes du réseau, au lance-
ment de leurs fonctions réseau, prennent contact avec le serveur DHCP et se voient attribuer
une adresse IP. Il n’est pas rare de voir un routeur ADSL jouer ce rôle de serveur DHCP.
Ceci présente avant tout deux avantages : tout d’abord, l’ensemble du réseau peut être géré
de manière centralisée (plutôt que devoir configurer des paramètres sur chaque poste) ;
ensuite, la charge de travail d’administration par client tend alors vers zéro. Pour connecter
un client au réseau, il n’y a plus besoin que de fournir le nom de machine et d’activer
l’option DHCP. Toutes les autres données (adresse IP propre, adresses IP de la passerelle et
du DNS, etc.) sont transmises par DHCP.
Il existe en outre un troisième avantage qui est toutefois plus intéressant pour les FAI : du
fait que les adresses IP sont attribuées de manière dynamique et que tous les ordinateurs ne
sont pas connectés simultanément au réseau, le nombre d’adresses IP nécessaires pour
répondre aux besoins d’un grand nombre d’utilisateurs est donc inférieur au nombre total
de postes. Chaque fois qu’un utilisateur s’identifie auprès de son FAI par modem ou ADSL,
il obtient la première adresse disponible à ce moment précis.
Un ordinateur, Un ordinateur possède, en règle générale, plusieurs adresses IP ! Si nous n’avons jusqu’à
plusieurs
adresses IP présent parlé que de l’adresse IP, nous impliquions qu’il s’agissait de l’adresse affectée à
l’interface du contrôleur Ethernet. C’est donc l’adresse identifiant l’ordinateur au sein du
réseau. Cela signifie également, plus précisément, que l’adresse IP est non pas celle de l’ordi-
nateur à proprement parler mais celle de l’interface associée au contrôleur réseau présent dans
cet ordinateur.
Chaque ordinateur Linux/Unix est par ailleurs accessible par le biais de l’adresse 127.0.0.1
ou du nom localhost. Cette interface loopback, que nous avons déjà mentionnée, est réser-
vée au trafic réseau local. Vous pouvez tester très simplement son bon fonctionnement à
l’aide de ping :
utilisateur$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.040 ms
Linux Livre Page 499 Mardi, 23. septembre 2008 1:05 13
ping transmet des paquets de données à l’adresse fournie en paramètre et mesure la durée
écoulée jusqu’à confirmation de la bonne réception des paquets. ping localhost devrait
même fonctionner si votre ordinateur ne possède aucun contrôleur Ethernet !
Enfin, un ordinateur peut également être pourvu de plusieurs contrôleurs réseau. Chaque
contrôleur fonctionne alors comme une interface individuelle et possède donc sa propre
adresse IP. Les connexions PPP établies par le biais d’un modem ou d’une carte RNIS
constituent également des interfaces. Celles-ci se voient attribuer une adresse IP, généralement
déterminée par le FAI (il s’agit d’une adresse IP dynamique).
Un ordinateur peut être équipé de plusieurs contrôleurs réseau si, par exemple, il doit relier
deux portions de réseau situées dans des plages d’adresses différentes. L’ordinateur est
alors désigné par le terme de routeur. Un exemple en est la passerelle Internet d’un réseau.
Tant que la connexion Internet est établie, la passerelle possède au moins trois adresses IP :
l’adresse loopback 127.0.0.1, une adresse au sein du réseau local et enfin une adresse Inter-
net globale attribuée par un FAI (pour être tout à fait exact, une passerelle assure les fonc-
tionnalités non pas de routage mais uniquement de mascarade ; cette différence subtile est
décrite plus précisément au Chapitre 28).
Configuration Lorsqu’il n’y a pas de serveur DHCP sur un réseau local, vous devez paramétrer de façon
statique de
l’adresse IP statique l’adresse IP de l’interface lors de la configuration réseau. Mais quelle adresse IP
devez-vous utiliser ?
• Si votre ordinateur ne fait pas partie d’un réseau local : en dehors de l’adresse 127.0.0.1
pour l’interface loopback, vous n’avez pas besoin de la moindre adresse IP (ceci vaut même
si cet ordinateur doit être ultérieurement connecté à Internet par une liaison modem/
RNIS/ADSL). Votre seule tâche de configuration consiste donc à fournir les noms d’hôte et
de domaine.
• Si votre ordinateur fait partie d’un réseau local existant : l’adresse IP doit se trouver dans la
plage d’adresses valides pour ce réseau (par exemple 192.168.0.*) et doit y être unique.
• Si votre ordinateur doit être le premier d’un nouveau réseau local : choisissez une plage
d’adresses privée (par exemple 192.168.0.*) et affectez à l’ordinateur une adresse IP de
cette plage.
IPv6
Jusqu’à présent, je n’ai fondé mes explications que sur le protocole IP dans sa version 4
(IPv4). Internet, dans sa forme actuelle et dans son ensemble, est également basé sur cette
version du protocole IP. Toutefois, depuis plusieurs années déjà se dessine une pénurie
d’adresses IP. De surcroît, ce protocole présente quelques lacunes fonctionnelles qui le
Linux Livre Page 500 Mardi, 23. septembre 2008 1:05 13
500 LINUX
rendent peu adapté à de nombreuses applications actuelles et à venir (par exemple la télé-
phonie sur IP, le streaming audio et vidéo).
Adresses IPv6 La version 6 du protocole IP (IPv6), lorsqu’elle sera mise en place, devrait combler ces lacunes.
Le changement le plus marquant et le plus visible pour les administrateurs est sans doute la
longueur des adresses, qui de 32 bits avec IPv4 passera à 128 bits avec IPv6. Les adresses
IPv6 devraient donc être rédigées sur le modèle suivant :
121.57.242.17.122.58.243.18.19.123.59.20.244.124.60.245
Il est toutefois manifeste que cette écriture n’est pas utilisable. Pour économiser de la place,
les adresses IPv6 sont donc présentées sous la forme de groupes (jusqu’à huit) de chiffres
hexadécimaux, séparés par un caractère deux-points ":", comme dans l’exemple suivant :
abcd:17:2ff:12aa:2222:783:dd:1234
Pour gagner encore en lisibilité, on abrège une succession de plusieurs groupes de valeur
nulle en un double caractère deux-points "::" :
abcd:17:0:0:0:0:dd:1234 -> abcd:17::dd:1234
0:0:0:0:0:783:dd:1234 -> ::783:dd:1234
Du fait qu’IPv6 ne s’est pas encore couramment établi dans l’espace européen, les informations de cet
ouvrage ne s’appliquent pour le moment qu’à IPv4. Les pages suivantes constituent un bon point de départ
pour rechercher des informations supplémentaires sur IPv6 et sur les particularités de Linux :
http://www.ipv6.org/ ; http://www.ipv6forum.com/ ; http://fr.wikipedia.org/wiki/IPv6 ;
http://www.faqs.org/rfcs/rfc1752.html
Ce portable utilise donc le contrôleur Ethernet Gigabit 82540EP d’Intel. La seconde étape
consiste alors à affecter un pilote approprié au contrôleur (c’est-à-dire un module noyau issu
du répertoire /lib/modules/n.n/net/*). Une recherche Internet sur les termes linux kernel
module 82540EP conduit rapidement au module noyau approprié, e1000.
root# modinfo e1000
filename: /lib/modules/2.6.17-10-generic/kernel/drivers/net/e1000/
e1000.ko
author: Intel Corporation, <linux.nics@intel.com>
description: Intel(R) PRO/1000 Network Driver
license: GPL
version: 7.1.9-k4
...
dmesg montre si des erreurs surviennent au chargement du module (ce qui n’est pas le cas
ici). L’avertissement link is not ready indique uniquement que l’interface n’est pour le
moment pas active faute de configuration adéquate.
root# dmesg -c
...
Intel(R) PRO/1000 Network Driver - version 7.1.9-k4
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt 0000:02:01.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
e1000: 0000:02:01.0: e1000_probe: (PCI:33MHz:32-bit) 00:11:25:32:4f:5d
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
ADDRCONF(NETDEV_UP): eth0: link is not ready
Linux Livre Page 502 Mardi, 23. septembre 2008 1:05 13
502 LINUX
Pour que ce module soit, à l’avenir, automatiquement chargé, enregistrez dans le fichier de
configuration des modules (voir Chapitre 25) la correspondance entre l’interface eth0 et le
module noyau 8139too :
# Fichier de configuration des modules /etc/modprobe.conf ou /etc/modprobe.d/aliases
alias eth0 e1000
Configuration Dans tous les cas, le contrôleur réseau identifie lui-même les paramètres obligatoires pour
des para-
mètres de communiquer au sein du réseau. Ce n’est que dans de très rares cas qu’il devient nécessaire
contrôleur de configurer explicitement des paramètres tels que la vitesse, le mode duplex, etc. Dans de
tels cas, la commande ethtool pourra vous être utile (voir man ethtool).
Activation Vous pouvez enfin activer l’interface réseau à l’aide d’ifconfig :
de l’interface
root# ifconfig eth0 up
Si aucun module n’est chargé ou que ce ne soit pas le bon, le message d’erreur suivant appa-
raît alors : eth0: unknown interface: No such device. dmesg vous donne plus de détails sur la
réussite ou l’échec de l’opération :
root# dmesg -c
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
eth0: no IPv6 routers present
Cartes réseau Avec les cartes ISA, qui commencent à dater, il peut y avoir une complication supplémen-
ISA
taire dans certaines circonstances : le module n’est, en règle générale, pas en mesure d’iden-
tifier le domaine d’entrées/sorties de la carte ou la bonne interruption. Cette information
doit être saisie manuellement dans modprobe.conf ou dans un fichier du répertoire /etc/
modprobe.d/, et ce sous la forme d’une ligne alias. Pour une carte ISA compatible NE-2000,
les lignes correspondantes ont l’allure suivante :
alias eth0 ne
options ne io=0x300
Linux peut aussi gérer plusieurs cartes réseau simultanément (tant que cela ne génère pas
de conflit entre domaines d’adresses d’entrées/sorties ou entre interruptions). Voici là
encore un exemple :
alias eth0 ne
alias eth1 ne
options ne io=0x300,0x320 irq=5,7
Vous trouverez plus d’informations sur ce sujet dans les HOW-TO dédiés au matériel et à Ethernet, ainsi que
sur le site web : http://www.scyld.com/network/
Configuration Pour configurer l’interface réseau, fournissez son nom (eth0), ainsi que l’adresse IP souhai-
de l’interface
tée, à la commande ifconfig. Si vous exécutez une seconde fois la commande sans fournir
cette fois d’adresse IP, vous obtenez toutes les informations connues relatives à l’interface
réseau :
root# ifconfig eth0 192.168.0.2
root# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:25:32:4F:5D
Linux Livre Page 503 Mardi, 23. septembre 2008 1:05 13
Vous pouvez alors vérifier avec la commande ping si vous parvenez à contacter d’autres
ordinateurs du réseau local. L’option -c 2 vous permet d’envoyer exactement deux paquets
ping :
root# ping -c 2 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.95 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.169 ms
Configuration La commande ping ne fonctionne pour le moment que si vous lui fournissez directement
du serveur de
noms une adresse IP. Pour pouvoir lui passer aussi des noms de machine, le fichier /etc/
resolv.conf doit contenir l’adresse IP d’un serveur de noms. L’exemple qui suit part du
principe que le réseau local dispose de son propre serveur de noms, d’adresse IP 192.168.0.1.
Le serveur de noms peut toutefois être extérieur au réseau et, par exemple, être mis à dispo-
sition par le FAI (vous trouverez un peu plus loin dans ce chapitre des informations sur ce
fichier de configuration).
# /etc/resolv.conv
nameserver 192.168.0.1
Passerelle par À l’heure actuelle, vous ne pouvez envoyer des paquets qu’à destination du réseau local.
défaut
Pour permettre également des contacts avec l’extérieur (en particulier avec Internet), l’ordi-
nateur doit savoir où envoyer ces paquets. Vous devez pour cela fournir l’adresse de la pas-
serelle Internet de votre réseau, à l’aide de la commande route. Dans l’exemple qui suit,
l’adresse IP de la passerelle est 192.168.0.1 :
root# route add default gw 192.168.0.1
root# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Il devrait maintenant être possible d’envoyer des paquets vers toute adresse située sur
Internet :
root# ping -c 2 yahoo.com
PING yahoo.com (216.109.112.135) 56(84) bytes of data.
Linux Livre Page 504 Mardi, 23. septembre 2008 1:05 13
504 LINUX
Récupérer les S’il y a sur le réseau un serveur DHCP, vous pouvez vous appuyer dessus pour la configu-
informations
par DHCP ration. Une fois l’interface réseau activée (ifconfig eth0 up sans autre paramètre), exécutez
sous Debian et Ubuntu la commande dhclient3 :
root# dhclient3 eth0
...
Listening on LPF/eth0/00:11:25:32:4f:5d
Sending on LPF/eth0/00:11:25:32:4f:5d
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER from 192.168.0.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.15 -- renewal in 36624 seconds.
Red Hat ou Fedora reposent, comme Debian et Ubuntu, sur dhclient pour la configuration
du client DHCP. Toutefois, la commande y est préconfigurée de telle sorte qu’un appel
manuel ne fonctionne pas. dhclient ne peut être utilisé sur ces distributions que dans le
cadre des scripts Init-V, pour une initialisation automatisée du réseau.
Pour la configuration DHCP, Knoppix utilise le programme pump, piloté par le biais du
fichier /etc/pump.conf. Il est possible de l’appeler manuellement sous la forme pump -i
eth0. pump -s renvoie les informations d’état relatives aux interfaces configurées par
DHCP.
Désactivation Pour désactiver une interface réseau, utilisez la commande ifconfig avec l’option down :
de l’interface
root# ifconfig eth0 down
Gestion de Il n’est maintenant pas rare de rencontrer des ordinateurs dotés de plusieurs contrôleurs
plusieurs
contrôleurs réseau. La quasi-totalité des portables actuels possède un contrôleur Ethernet ainsi qu’un
contrôleur Wi-Fi (dont l’interface est gérée, en interne à Linux, de façon strictement sembla-
ble à une interface Ethernet ; plus de détails sur ce sujet un peu plus loin dans ce chapitre).
Les serveurs réseau nécessitent également plusieurs contrôleurs : c’est à travers un premier
contrôleur qu’a lieu la connexion à Internet, un deuxième gère la connexion au réseau local,
un troisième peut également gérer le Wi-Fi, etc.
Linux n’a, en principe, aucun problème à gérer plusieurs contrôleurs et à les intégrer dans la
configuration réseau. Le système udev est chargé de générer une correspondance cohérente
entre le matériel (les contrôleurs) et les noms des interfaces associées (eth0, eth1, etc.), de
sorte que chaque contrôleur se voie systématiquement affecter le même nom d’interface
(voir un peu plus loin).
Linux Livre Page 505 Mardi, 23. septembre 2008 1:05 13
Configuration de base
/etc/hosts Le fichier /etc/hosts contient une liste d’adresses IP connues et des noms de machine asso-
ciés. Le fichier doit, dans tous les cas, contenir les données relatives à l’interface loopback,
dont l’entrée correspondante a en général l’allure suivante :
# /etc/hosts
127.0.0.1 localhost # Interface loopback de l’ordinateur
...
Sur la plupart des distributions Linux, au lieu de l’écriture 127.0.0.1, on trouve également
l’écriture IPv6 ::1. Sur Red Hat et Fedora, la ligne localhost comprend en outre l’entrée
localhost.localdomain. Cette ligne ne doit pas être modifiée :
# /etc/hosts sur Red Hat und Fedora
::1 localhost.localdomain localhost
...
Linux Livre Page 506 Mardi, 23. septembre 2008 1:05 13
506 LINUX
Suivant la distribution, le fichier hosts présente également une entrée pour l’ordinateur
local. Lorsque son contrôleur réseau est configuré avec une adresse IP statique, celle-ci est
renseignée. Lorsque le contrôleur réseau obtient son adresse dynamiquement par DHCP,
c’est la pseudo-adresse 127.0.0.1 qui est alors renseignée (par exemple sur Debian et
Ubuntu), ou l’entrée n’apparaît pas du tout (sur Red Hat et Fedora).
# /etc/hosts (suite)
...
192.168.0.2 uranus.sol uranus # adresse IP statique de l’ordinateur local
Si vous souhaitez pouvoir dialoguer avec d’autres ordinateurs du réseau en utilisant leurs
noms, en l’absence d’un serveur de noms sur le réseau local (voir chapitre suivant), vous
devrez renseigner leurs noms dans /etc/hosts. Vous pourrez alors exécuter la commande ping
saturne au lieu de ping 192.168.0.13 pour tester votre connexion à l’ordinateur saturne :
# /etc/hosts (suite)
...
192.168.0.1 mars.sol mars # Adresses IP et noms des autres
192.168.0.2 uranus.sol uranus # ordinateurs sur le réseau
192.168.0.13 saturne.sol saturne
Des informations similaires doivent être saisies dans les fichiers /etc/hosts de tous les ordi-
nateurs du réseau local. Plus celui-ci compte de postes, plus la gestion de ces nombreux
fichiers /etc/hosts devient fastidieuse. Pour cette raison, il est conseillé, sur les réseaux les
plus étendus, de mettre en place un serveur de noms sur un ordinateur (voir chapitre sui-
vant). Cet ordinateur (et donc le serveur de noms) connaît les noms de tous les ordinateurs
du réseau. Les ordinateurs du réseau local peuvent contacter le serveur de noms pour en
obtenir ces informations. /etc/hosts peut alors être réduit à sa plus simple expression, ne
comprenant que quelques lignes pour localhost. Toutefois, cela nécessite de configurer correc-
tement le fichier /etc/resolv.conf (voir un peu plus loin dans ce chapitre).
Sur de nombreuses distributions, /etc/hosts contient en outre quelques adresses IPv6 parti-
culières comme fe00::0. Ces adresses n’ont toutefois de sens que si vous utilisez le nouveau
protocole IPv6.
/etc/host.conf Le fichier /etc/host.conf indique comment TCP/IP doit identifier les adresses IP inconnues.
Suivant le fichier d’exemple ci-après, on commence par analyser le fichier /etc/hosts (mot-
clé hosts) avant d’interroger le serveur de noms renseigné dans /etc/resolv.conf (mot-clé
bind). La seconde ligne autorise l’affectation de plusieurs adresses IP à un même nom d’hôte
renseigné dans /etc/hosts.
Ce fichier existe dans la quasi-totalité des distributions sous la forme présentée ici et il ne
doit pas être modifié.
# /etc/host.conf
order hosts, bind
multi on
/etc/ Le fichier /etc/resolv.conf pilote la façon dont sont identifiées les adresses IP correspon-
resolv.conf
dant à des noms de réseau ou d’hôtes inconnus (inconnus signifiant ici que les noms ne sont
pas définis dans hosts.conf).
Les mots-clés domain et search permettent de compléter les noms d’hôtes (par exemple jupi-
ter) avec le nom de domaine (pour obtenir par exemple jupiter.sol). Ceci améliore le confort
Linux Livre Page 507 Mardi, 23. septembre 2008 1:05 13
d’utilisation car les noms d’hôtes peuvent alors être fournis sous forme abrégée. search permet
de renseigner plusieurs noms de domaines (avec domain, un seul peut être fourni) : pour cette
raison, le nom domain a la préséance sur les noms search et il est testé en priorité. Si, comme ici,
un seul nom de domaine est renseigné, la ligne domain peut être totalement ignorée.
Les entrées les plus importantes de /etc/resolv.conf sont précédées du mot-clé
nameserver : ceci permet de renseigner jusqu’à trois adresses IP de serveurs de noms. On
interroge toujours ces serveurs pour identifier l’adresse IP correspondant à un nom de
machine inconnu (par exemple www.yahoo.com). Il est donc absolument indispensable de
renseigner un serveur de noms pour pouvoir résoudre les adresses IP d’URL Internet. En tant
que particulier, vous obtenez les adresses IP d’un serveur DNS de votre FAI. Dans les réseaux
locaux de plus grande envergure, il y a au moins un serveur de noms propre (voir plus haut)
directement connecté au réseau : demandez-en l’adresse IP à votre administrateur système !
# /etc/resolv.conf
domain sol # Les noms d’hôtes s’appliquent à .sol
search sol # Les noms d’hôtes s’appliquent à .sol
nameserver 192.92.138.35 # DNS primaire
nameserver 195.3.96.67 # DNS secondaire (en cas de panne du primaire)
508 LINUX
Si c’est dhcp3-client qui est installé, vous devez modifier son fichier de configuration
dhclient.conf :
# /etc/dhcp3/dhclient.conf
...
supersede domain-name "sol";
prepend domain-name-servers 192.168.0.1;
Sur Red Hat ou Fedora, vous devrez modifier le fichier ifcfg-xxx correspondant à l’inter-
face réseau souhaitée :
# /etc/sysconfig/network-scripts/ifcfg-xxxx (Red Hat, Fedora)
PEERDNS=no
Configuration Il n’existe pas une unique manière ou un seul fichier pour configurer une passerelle. Sur un
de la
passerelle réseau local, l’adresse de la passerelle est en général fournie par DHCP. Dans le cadre d’une
configuration statique, les fichiers concernés dépendent de la distribution.
Sur Debian et Ubuntu, le fichier /etc/network/interfaces décrit toutes les interfaces
réseau. Dans le cadre d’interfaces configurées de façon statique, la passerelle est indiquée
par le mot-clé gateway :
# /etc/network/interfaces (Debian, Ubuntu)
...
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
Sur Red Hat et Fedora, le fichier de configuration de l’interface réseau contient la variable
GATEWAY :
# /etc/sysconfig/network-scripts/ifcfg-xxxx (Red Hat, Fedora)
GATEWAY=192.168.0.1
Le paramétrage effectif de la passerelle s’effectue de la même manière sur toutes les distri-
butions, par le biais de la commande route. Les deux commandes qui suivent vous mon-
trent comment insérer manuellement la passerelle 192.168.0.1 dans la table de routage puis
comment l’en supprimer :
root# route add default gw 192.168.0.1
root# route del default gw 192.168.0.1
Configuration Vous pouvez afficher le nom d’hôte courant par le biais de la commande hostname. Si ce nom
du nom d’hôte
d’hôte n’est pas paramétré par DHCP, la configuration s’effectue sur Debian et Ubuntu par
Linux Livre Page 509 Mardi, 23. septembre 2008 1:05 13
le biais du fichier /etc/hostname, sur SUSE par /etc/HOSTNAME. Sur Red Hat et Fedora, le
nom d’hôte est paramétré par la variable hostname dans le fichier /etc/sysconfig/network.
Veillez à bien assurer la cohérence avec /etc/hosts, au cas où ce fichier contienne une ligne
indiquant le nom d’hôte de l’ordinateur.
Lorsque le système udev identifie un nouveau contrôleur réseau, une nouvelle règle lui cor-
respondant est insérée dans le fichier, ce dont le fichier de règles udev 31-network.rules est
responsable : il délègue ensuite cette tâche au script /lib/udev/rename_netiface.
Si vous souhaitez désactiver le mécanisme de nommage des interfaces, modifiez le contenu
du fichier de configuration suivant :
# /etc/sysconfig/network/config
...
FORCE_PERSISTENT_NAMES=no
Linux Livre Page 510 Mardi, 23. septembre 2008 1:05 13
510 LINUX
Ubuntu 7.04 Sur Ubuntu, c’est le fichier /etc/iftab qui pilote la correspondance entre contrôleur réseau
et nom d’interface. iftab est analysé par le fichier de règles udev 25-iftab.rules.
Pour identifier un contrôleur dans iftab, on utilise l’adresse MAC. Le fichier peut avoir
l’allure suivante :
# /etc/iftab
eth0 mac 00:0c:f1:58:f9:93 arp 1
eth1 mac 00:11:25:32:4f:5d arp 1
Initialisation Le script InitV /etc/init.d/networking, exécuté dès l’initialisation du système (lien /etc/
rcS.d/S40networking), gère l’initialisation automatique des interfaces réseau à l’amorçage
de l’ordinateur. C’est la commande spécifique à Debian ifup (paquetage ifupdown) qui
assure le travail effectif. ifup -a analyse /etc/network/interfaces et active toutes les inter-
faces auto.
Si les interfaces sont configurées par DHCP, ifup fait appel à la commande dhclient pour
transmettre et analyser les données DHCP. C’est le fichier /etc/dhcp3/dhclient.conf qui
est responsable de la configuration.
Si vous possédez les droits d’administration, vous pouvez aussi utiliser manuellement
ifup : ifup nom active l’interface souhaitée, ifdown nom la désactive.
Linux Livre Page 511 Mardi, 23. septembre 2008 1:05 13
Le fichier suivant contient une description exhaustive de la plupart des fichiers de configu-
ration réseau et des variables qu’ils contiennent :
/usr/share/doc/initscripts-n.n/sysconfig.txt
Initialisation Le script InitV /etc/init.d/network gère l’initialisation de toutes les interfaces réseau confi-
gurées. Le script network appelle, pour chaque interface, le script spécifique à Red Hat ifup.
Celui-ci fait appel à différentes fonctions shell définies dans le fichier network-functions. En
outre, des fichiers additionnels sont appelés suivant le type d’interface (ifup-eth, ifup-ppp,
ifup-wireless). Tous ces fichiers se trouvent dans le répertoire /etc/sysconfig/network-
scripts.
Si les interfaces réseau doivent accéder à un serveur DHCP (BOOTPROTO=dhcp dans le fichier
de configuration), la commande dhclient est appelée à cet effet.
De façon analogue aux scripts ifup, il existe également des scripts ifdown pour désactiver
les interfaces réseau.
usernetctl L’utilisateur root peut activer et désactiver confortablement une interface réseau à l’aide de
la commande spécifique à Red Hat usernetctl :
root# usernetctl eth0 up
root# usernetctl eth0 down
Les utilisateurs usuels peuvent également utiliser cette commande s’ils en fournissent le
chemin complet (/usr/sbin/usernetctl). C’est le paramètre USERCTL=yes/no, du fichier de
configuration ifcfg-interface, qui détermine s’ils sont autorisés à modifier l’état d’une
connexion réseau.
Linux Livre Page 512 Mardi, 23. septembre 2008 1:05 13
512 LINUX
Initialisation Le script InitV /etc/init.d/network est également sur SUSE le point d’entrée pour l’initiali-
sation des interfaces réseau. network démarre aussi bien l’interface loopback pour local-
host que toutes les interfaces réseau configurées.
Le script spécifique à SUSE /sbin/ifup est prévu pour l’activation d’interfaces individuel-
les. Même si le nom de ce script est identique sur Debian, Fedora, Red Hat, Ubuntu et SUSE,
le code sous-jacent est différent dans chaque cas ! De manière analogue à ifup, il existe éga-
lement des scripts ifstatus et ifdown permettant respectivement d’obtenir l’état d’une
interface réseau ou de la désactiver. Pour les interfaces configurées par DHCP, ifrenew permet
de relire les données DHCP.
Suivant le type d’interface, ifup appelle l’un des scripts additionnels ifup-ppp, ifup-wire-
less, etc. Diverses fonctions communes sont hébergées dans le fichier functions. Tous ces
fichiers se trouvent dans le répertoire /etc/sysconfig/network/scripts.
Si l’interface réseau doit faire appel à un serveur DHCP (BOOTPROTO=dhcp dans le fichier de
configuration), dhcpd se charge de transmettre et d’analyser les données DHCP.
Standards, glossaire
Cette section vise à présenter brièvement la terminologie Wi-Fi. Si vous vous êtes déjà fami-
liarisé avec les bases des réseaux sans fil, vous pouvez passer aux sections suivantes, qui
abordent de plus près les détails spécifiques à Linux concernant le Wi-Fi.
Standards Les standards Wi-Fi sont nombreux : ils sont définis par l’IEEE (Institute of Electrical and Elec-
tronics Engineers) et commencent tous par le nombre 802.11. La lettre qui vient compléter
cette référence indique la succession chronologique des nouvelles versions ou variantes du
standard. La liste qui suit énumère quelques-uns des standards Wi-Fi :
• 802.11. Le premier standard 802.11 définissait la fréquence d’émission à 2,4 GHz. Le
débit brut maximal n’était toutefois que de 2 Mbits/s. Ce standard n’a aujourd’hui plus
cours du fait de cette vitesse très limitée.
• 802.11a. Avec ce standard, la fréquence d’émission est définie à 5,2 GHz et le débit brut
peut atteindre 54 Mbits/s. Toutefois, il n’a été jusqu’à présent adopté qu’aux États-Unis.
En Europe, le standard 802.11a n’est autorisé qu’avec une puissance d’émission beau-
coup plus réduite qu’aux États-Unis (dans plusieurs pays, l’utilisation de matériel
802.11a est même totalement interdite). Il présente en outre l’inconvénient d’être incom-
patible avec les standards 802.11b et 802.11g, beaucoup plus répandus, ainsi que d’avoir
une portée limitée.
• 802.11b. Ce standard, défini depuis 1999, est jusqu’à maintenant le dénominateur com-
mun du monde Wi-Fi. Des millions de composants Wi-Fi sont basés sur ce standard ou
sont compatibles avec. Le matériel 802.11b émet à une fréquence de 2,4 GHz. Le débit
brut n’atteint toutefois que 11 MBits/s, ce qui suffit pour surfer sur le Web.
• 802.11g. Ce standard est le successeur du 802.11b et est compatible avec ce dernier. Le
matériel 802.11g est disponible depuis 2003. La fréquence d’émission est, comme pour le
802.11b, de 2,4 GHz, le débit brut est toutefois meilleur (54 MBits/s).
• 802.11i. Il s’agit d’une extension de 802.11a/b/g/h pour améliorer la sécurité de ces
standards. 802.11i définit la méthode de chiffrement et d’authentification WPA2.
• 802.11n. Successeur de 802.11a, b et g, le standard 802.11n améliore quelque peu la por-
tée et notablement le débit brut (qui atteint désormais 540 MBits/s). Ces deux améliora-
tions sont permises par l’utilisation simultanée de plus d’antennes, plus de récepteurs et
plus d’émetteurs (MIMO ou Multiple-in, Multiple-out). 802.11n est certes compatible
avec les variantes a, b et g, mais un seul élément Wi-Fi non compatible 802.11n peut
affecter la vitesse de l’ensemble du réseau.
Le matériel compatible 802.11n ou prévu pour l’être (pre-n, draft-n) existe depuis mi-
2006. La certification définitive du standard n’est toutefois prévue que pour l’automne
2008.
Brut/net Le débit brut (par exemple 54 MBits/s pour 802.11g) peut sembler très prometteur. Toute-
fois, si l’on tient compte de la surcharge importante liée au protocole, le débit net restant est
nettement plus faible et n’atteint pas la moitié de la valeur brute (même lorsqu’il ne s’agit de
faire communiquer que deux participants entre eux, que la liaison physique radio est bonne
et qu’aucun participant au réseau n’utilise un standard antérieur).
Linux Livre Page 514 Mardi, 23. septembre 2008 1:05 13
514 LINUX
Adaptateurs Tous les ordinateurs portables modernes intègrent un contrôleur Wi-Fi. Les portables plus
Wi-Fi
anciens ou les ordinateurs de bureau pourront au besoin voir leurs capacités étendues par le
biais de cartes PCMCIA, d’adaptateurs Wi-Fi USB ou de cartes PCI.
Ponts, points Les ponts, points d’accès et routeurs Wi-Fi sont des périphériques autonomes connectés au
d’accès et
routeurs sans réseau local ou à un modem ADSL par le biais d’un câble Ethernet :
fil
• Un pont sans fil connecte un périphérique LAN isolé à un réseau sans fil. Le pont assure
la même fonctionnalité qu’une carte Wi-Fi mais la connexion à l’ordinateur est
différente : elle est assurée par Ethernet plutôt que par PCI, PCMCIA ou USB.
• Un point d’accès (access point) représente la méthode la plus simple pour connecter plu-
sieurs clients sans fil. Un point d’accès est, comme un pont, connecté à un serveur ou à
un hub réseau par un câble Ethernet. Il émet plusieurs fois par seconde un signal (bea-
con) permettant aux autres périphériques Wi-Fi de déterminer la portée du point
d’accès. Contrairement au pont, le point d’accès prend en charge plusieurs modes Wi-Fi
et peut communiquer avec plusieurs clients sans fil à la fois (les différences entre pont et
point d’accès concernent donc avant tout le logiciel de pilotage plutôt que le matériel).
• Un routeur Wi-Fi connecte un réseau entier (LAN et Wi-Fi) à Internet. Le point de sortie
est, le plus souvent, un modem ADSL équipé d’une sortie Ethernet ou un serveur réseau
local. Il existe également des routeurs Wi-Fi intégrés à un modem ADSL : on décrit de
fait des périphériques de ce type comme des passerelles.
Le routeur est généralement constitué d’un point d’accès et d’un petit hub pour, au
maximum, quatre périphériques Ethernet. Le logiciel interne du routeur pilote l’accès à
Internet et la gestion du réseau local. Un routeur héberge en général des fonctionnalités
de traduction d’adresses (NAT), un serveur DHCP, un pare-feu élémentaire, etc. Ces
fonctionnalités sont décrites en détail au Chapitre 28.
Les ponts, points d’accès et routeurs Wi-Fi présentent deux avantages par rapport à la majo-
rité des cartes et adaptateurs Wi-Fi : tout d’abord, ils comprennent une ou même deux
antennes relativement grandes qui permettent une meilleure connectivité que les antennes
souvent trop petites des cartes d’extension Wi-Fi. Par ailleurs, il s’agit de périphériques
autonomes fonctionnant sans pilotes Linux (la connexion à un ordinateur sous Linux peut
donc être assurée par un câble Ethernet tout ce qu’il y a de plus ordinaire).
La configuration de périphériques Wi-Fi s’effectue en règle générale par le biais d’un navi-
gateur Internet. Pour ce faire, les périphériques mettent à disposition leurs propres pages de
configuration sur une adresse IP définie (par exemple http://192.168.0.1). Attention, toute-
fois, au fait qu’il existe des périphériques Wi-Fi ne pouvant être configurés que par le biais
d’un logiciel disponible uniquement sous Windows ! Cela concerne principalement les
ponts Wi-Fi : de tels périphériques sont naturellement peu utilisables avec Linux.
La terminologie utilisée ici n’est pas uniforme chez tous les fabricants. Vous pourrez trouver des explications
relativement exhaustives sur les concepts réseau du type pont, hub, routeur, passerelle, etc. sur Wikipedia
ainsi que sur le site suivant : http://whatis.techtarget.com/
Le site web suivant est également intéressant sur le sujet du Wi-Fi et non spécifique à Linux :
http://www.wi-fiplanet.com/
Linux Livre Page 515 Mardi, 23. septembre 2008 1:05 13
516 LINUX
Du fait de sérieuses lacunes de conception, WEP s’est révélé insuffisamment sûr. Même une clé sur 104 bits
peut être identifiée en un temps relativement court (au pire quelques heures mais bien souvent beaucoup
moins) par simple écoute du trafic réseau. Des programmes permettant de "craquer" les clés WEP sont à
disposition librement sur Internet. En d’autres termes, une protection WEP est mieux que rien, mais pas
de beaucoup.
Si votre matériel le permet, vous devriez utiliser WPA ou, mieux, WPA2 (voir plus bas). Si ce n’est pas possi-
ble, vous devez protéger votre réseau sans fil par d’autres mesures supplémentaires, idéalement par la mise
en place d’un VPN.
WPA, WPA2 À la suite de WEP, les méthodes de protection WPA (Wi-Fi Protected Access) ainsi que sa ver-
sion améliorée WPA2 ont vu le jour. La spécification exacte de WPA2 est inscrite dans le
standard 802.11i. La différence principale entre WPA et WPA2 réside dans l’algorithme de
chiffrement (RC4 pour WPA et AES pour WPA2).
Linux Livre Page 517 Mardi, 23. septembre 2008 1:05 13
WPA a été conçu comme une solution de contournement jusqu’à la finalisation du standard
802.11i. Comme il existe toutefois du matériel Wi-Fi qui ne prend en charge que WPA et pas
encore WPA2, les deux variantes devraient rester en usage pendant encore un certain temps.
L’avantage essentiel de WPA réside dans le fait que la clé ne sert qu’à l’établissement de la
connexion. Une fois celle-ci établie, les clés sont régulièrement changées suivant un algo-
rithme sophistiqué. WPA et WPA2 peuvent, en l’état actuel des techniques, être considérés
comme sûrs tant que l’on utilise une phrase de passe suffisamment longue (et donc une clé
constituée de plusieurs mots et caractères).
Ce livre ne traite que la variante PSK (Pre-Shared Key) de WPA/WPA2 : tous les utilisateurs
du Wi-Fi se connectent au réseau à l’aide de la même clé. La version Managed Key, encore
plus sûre, attribue à chaque utilisateur sa propre clé (mais cela nécessite de gérer les clés sur
un serveur centralisé).
Attention au fait que vous devez configurer sur la plupart des routeurs et points d’accès Wi-Fi une méthode
de chiffrement. Il n’est donc pas possible qu’un ordinateur établisse une connexion avec WPA2 tandis
qu’un autre utiliserait WEP. Ainsi, le niveau de sécurité de vos périphériques les plus anciens détermine le
niveau de sécurité global de votre réseau.
518 LINUX
Un certain nombre de contrôleurs Wi-Fi ne sont pas encore pris en charge par Linux ou exigent une installa-
tion manuelle et complexe de pilotes non encore intégrés officiellement au noyau. Il est encore trop tôt pour
le moment pour établir un pronostic sur la prise en charge des contrôleurs 802.11n ; d’expérience, il faut au
minimum un an pour que le pilote d’un nouveau contrôleur Wi-Fi fasse son apparition au sein d’une distribu-
tion. Ne vous attendez donc pas à ce que votre portable dernière génération flambant neuf fonctionne immé-
diatement sous Linux.
Avant l’achat d’un nouveau portable, renseignez-vous impérativement pour savoir si le contrôleur qu’il intè-
gre est pris en charge. C’est malheureusement plus simple à dire qu’à faire : courant 2007, je n’ai pu trou-
ver aucune référence à jour sur Internet indiquant quels contrôleurs Wi-Fi sont pris en charge sous Linux.
Les deux sites suivants, sur lesquels vous pourrez trouver des retours d’expérience sur la majorité des por-
tables disponibles sur le marché, se révèlent déjà très utiles :
http://www.linux-on-laptops.com/ ; http://tuxmobil.org/
Problèmes de La plupart des contrôleurs Wi-Fi sont programmables. Pour qu’ils fonctionnent correcte-
firmware
ment, un firmware (programme interne au contrôleur) doit être transmis au contrôleur lors
de son initialisation. Le firmware provient du fabricant et peut être librement distribué sous
réserve de respecter les termes de licence. C’est en général le module noyau ou le système
Linux Livre Page 519 Mardi, 23. septembre 2008 1:05 13
udev qui se charge de la transmission du code vers le contrôleur. Le code se trouve dans des
fichiers binaires (blobs), généralement dans le répertoire /lib/firmware.
Toutefois, les fabricants de puces ne mettent à disposition le firmware que sous forme
binaire et non sous forme de code source. Cette situation ainsi que les termes de licence
jusqu’à présent complexes et restrictifs des fabricants n’étaient pas compatibles avec les
idéaux open-source de nombreux développeurs. Pour cette raison, le firmware est absent de
nombreuses distributions Linux. Pour utiliser votre contrôleur Wi-Fi, vous devez rechercher
et installer le paquetage correspondant au firmware. C’est un peu pesant, mais guère
compliqué : pour la plupart des distributions populaires, il existe des sources spéciales pour
de tels paquetages (par exemple livnia pour Fedora). SUSE et Ubuntu comptent parmi les
exceptions positives : sur Ubuntu, le paquetage restricted contient les firmwares de très
nombreux composants matériels tandis que, sur SUSE, ce sont les paquetages Non-OSS
(pour lesquels il existe une source propre).
Personnellement, je ne vois pas le problème des licences de firmwares de façon aussi dramatique : autrefois, le
contrôleur Wi-Fi aurait compris un EPROM et personne ne se serait plaint de l’absence de code open-source. La
solution actuelle est plus souple et moins coûteuse (car elle permet des mises à jour). Naturellement, il serait
souhaitable que le code source soit disponible pour les programmes exécutés dans le contrôleur, mais cette
espérance n’est pas réaliste. Tant que les fabricants de contrôleurs Wi-Fi permettent de redistribuer leur firm-
ware, je ne vois pas d’argument qui s’oppose à la politique d’Ubuntu.
L’article qui suit offre d’ailleurs une perspective intéressante sur les discussions des développeurs Debian sur
la gestion des firmwares : http://lwn.net/Articles/195820/
Problèmes Comme si les problèmes de firmware déjà évoqués n’étaient pas suffisants, de nombreux
avec la GPL
pilotes Wi-Fi sont totalement incompatibles avec la GPL. Cela concerne en particulier le
pilote MadWi-Fi pour de nombreux contrôleurs Atheros. Ces pilotes contiennent un bloc de
code binaire (Hardware Abstraction Layer ou HAL) qui est toutefois directement exécuté
depuis le noyau (il ne s’agit donc pas du firmware exécuté sur le contrôleur). Leur statut est
comparable à celui des pilotes des fabricants pour les cartes ATI et NVidia.
Ubuntu est distribuée avec ces pilotes mais, sur la plupart des autres distributions, vous
devrez les installer vous-même depuis des sources externes.
Utiliser des Lorsqu’il n’existe aucun pilote Linux, pourquoi ne pas utiliser le pilote Windows ? Ce qui
pilotes
Windows peut sembler totalement impossible au premier abord n’est finalement pas si compliqué à
mettre en pratique : l’interface d’intégration des pilotes Wi-Fi sous Windows est relative-
ment compacte. Plusieurs projets commerciaux et open-source ont implémenté cette inter-
face (NDIS) sous Linux. Vous pourrez trouver des informations sur l’utilisation de pilotes
binaires Windows sous Linux sur les pages suivantes :
http://www.linuxant.com/driverloader/wlan/ (commercial)
http://ndiswrapper.sourceforge.net/ (open-source)
Naturellement, il est contraire à l’esprit open-source d’utiliser des pilotes binaires, dont le
code sous-jacent n’est pas contrôlé par la communauté open-source. Cela vaut toutefois
Linux Livre Page 520 Mardi, 23. septembre 2008 1:05 13
520 LINUX
également pour les pilotes binaires de nombreuses cartes graphiques, auxquelles bon nom-
bre d’utilisateurs Linux se sont habitués. Un autre inconvénient est le fait que les pilotes
Windows ne sont disponibles que pour les systèmes compatibles Intel/AMD.
Si vous ne savez pas de quel contrôleur Wi-Fi vous disposez, exécutez la commande lspci
(ou lspcmcia s’il s’agit d’une carte PCMCIA) :
root# lspci
...
02:02.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini
PCI Adapter (rev 04)
Il est souvent plus difficile d’identifier le module noyau correspondant à votre contrôleur. La
meilleure solution consiste ici à effectuer une recherche sur Internet (par exemple sur http://
groups.google.com). Suivant le contrôleur, il est également possible que vous deviez préalable-
ment installer le module noyau nécessaire et/ou le firmware (voir la section précédente). Cela
dépend non pas seulement du matériel mais également de la distribution que vous utilisez.
Pour les installations aussi bien que pour vos recherches Internet, vous aurez besoin d’une connexion
réseau. Il est donc recommandé de réaliser la mise en service de votre contrôleur Wi-Fi lorsque vous pouvez
connecter votre ordinateur par un câble réseau ou, a minima, par un modem téléphonique.
Nom De nombreux modules noyau Wi-Fi désignent l’interface Wi-Fi non pas par le nom ethn,
d’interface
mais par wlann ou athn (par exemple le pilote MadWifi pour le contrôleur Atheros). Cela
limite le risque de désordre dans la numérotation des interfaces réseau au branchement
d’un adaptateur Wi-Fi.
Cette nomenclature différente n’est toutefois pas très éloignée sur le fond : dans toutes les
commandes qui suivent, il vous suffit de remplacer eth0 par wlan0 ou ath0.
Configuration Afin que la carte Wi-Fi puisse communiquer avec le point d’accès, vous devrez en général
Wi-Fi
configurer trois paramètres : le mode, l’identifiant SSID et la clé. Vous pouvez configurer le
mode et l’identifiant SSID à l’aide de la commande iwconfig :
root# iwconfig eth0 mode managed
root# iwconfig eth0 essid wlan-sol
La suite des opérations dépend de la sécurisation du réseau Wi-Fi. Les choses sont simples
(mais pas particulièrement sûres) avec WEP : fournissez la clé hexadécimale à iwconfig.
root# iwconfig eth0 key c8192b13adf4ee58309953eebe
Si tout se passe bien, dmesg -c renvoie quelques nouveaux messages du noyau, qui
devraient avoir une allure proche de ceci :
root# dmesg -c
ieee80211_crypt: registered algorithm ’WEP’
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
WPA Les choses sont légèrement plus compliquées lorsque vous utilisez WPA ou WPA2. Dans ce
cas, le programme wpa_supplicant (issu du paquetage éponyme) est responsable de l’ini-
tialisation de la connexion et des échanges ultérieurs des clés en mutation permanente.
Une fois celui-ci installé, vous devez mettre en place un fichier de configuration, que vous
pouvez par exemple nommer /etc/wpa_supplicant.conf.
Linux Livre Page 522 Mardi, 23. septembre 2008 1:05 13
522 LINUX
Le fichier contient tout d’abord quelques paramètres globaux, puis des paramètres spécifi-
ques pour divers réseaux Wi-Fi. L’exemple suivant vous montre une variante minimaliste,
suffisante pour la connexion à un routeur ou à un point d’accès Wi-Fi avec chiffrement per-
sonnel WPA ou WPA2. Les deux paramètres décisifs ici sont ssid (identification du réseau)
et psk (contenant la clé, chiffrée pour des raisons de sécurité, mais que l’on peut également
renseigner sous forme de texte en clair, entre guillemets).
# /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="sol"
psk=00a38f42e6681596e1a5a4c5ede9a15250fb2a01c21028c6d490bb3458b8ea00
}
network={
ssid="wlan-sol2"
psk=053633deb59038da9e9168e015fef97d3d54ae3794d4a12d31ee75a830cccec2
}
wpa_passphrase peut vous être utile pour chiffrer votre mot de passe WPA. Vous pouvez
copier directement le résultat de cette commande dans wpa_supplicant.conf et y supprimer
la ligne contenant votre mot de passe en clair :
root# wpa_passphrase sol ’Mon mot de passe très secret’
network={
ssid="sol"
#psk="Mon mot de passe très secret"
psk=18555b0f9e0fc28cd0aa9ee19575a9790de1f46050b5bb932682febf824699c4
}
Vous pouvez maintenant lancer wpa_supplicant. La commande s’exécute jusqu’à ce que vous
l’interrompiez par la combinaison de touches Ctrl+C. Elle se charge d’établir la connexion
Wi-Fi et, par la suite, de renouveler régulièrement la clé sécurisant la connexion. En d’autres
termes, ce programme doit s’exécuter tant que vous utilisez la connexion Wi-Fi. Vous devez
donc à partir de maintenant travailler dans une autre console.
Quelques remarques complémentaires quant aux options de cette commande : -i renseigne
l’interface réseau, -c le fichier de configuration (dont vous pouvez librement choisir le
nom). Avec -D, vous indiquez le pilote Wi-Fi à utiliser. Commencez par essayer wext (il s’agit
d’une interface Wi-Fi générique prise en charge par de nombreux pilotes). Si cela ne fonc-
tionne pas, vous pouvez alors essayer d’indiquer explicitement votre pilote, par exemple -D
madwifi. man wpa_supplicant vous renvoie une liste de tous les pilotes pris en charge.
root# wpa_supplicant -i eth0 -D wext -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:b5:25:6e (SSID=’sol’ freq=0 MHz)
Associated with 00:13:46:b5:25:6e
WPA: Key negotiation completed with 00:13:46:b5:25:6e [PTK=TKIP GTK=TKIP]
CTRL-EVENT-CONNECTED - Connection to 00:13:46:b5:25:6e completed (auth) [id=0
id_str=]
...
La commande ping vous permet de tester si la connexion vers le routeur ou le point d’accès
fonctionne (vous devez pour cela connaître l’adresse IP de l’appareil). Pour pouvoir égale-
ment accéder à Internet, vous devrez paramétrer l’adresse de la passerelle et d’un serveur
de noms, comme nous l’avons décrit à la section correspondante de configuration manuelle
d’un réseau Ethernet (voir plus haut).
Lors de mes tests, j’ai rencontré des problèmes avec un routeur ADSL : celui-ci répondait correctement aux
requêtes DHCP de clients Ethernet, ainsi que des clients Wi-Fi non chiffrés ou chiffrés par WEP. Toutefois, il
ignorait les requêtes DHCP des clients Wi-Fi chiffrés par WPA.
Sur Internet, je n’ai trouvé que des références isolées à des problèmes WPA/DHCP comparables, sans pour
autant que ces références ne me permettent d’identifier des points communs avec le matériel et les logiciels
que j’utilisais. DHCP a par ailleurs fonctionné sans le moindre problème avec un autre routeur Wi-Fi : Linux
n’était donc (probablement) pas en cause.
En résumé : si WPA et DHCP ne parviennent pas à fonctionner ensemble, ne doutez pas de vous mais confi-
gurez votre client en adresse IP statique.
Récupérer le La commande iwconfig renvoie une synthèse des paramètres principaux de toutes les inter-
statut Wi-Fi
faces Wi-Fi :
root# iwconfig eth0
eth0 IEEE 802.11b ESSID:"wlan-sol" Nickname:"ipw2100"
Mode:Managed Frequency:2.457 GHz Access Point: 00:09:5B:52:CC:28
Bit Rate=11 Mb/s Tx-Power:16 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:8C19-2B13-ADF4-EE58-3099-53EE-BE Security mode:open
Power Management:off
Link Quality=100/100 Signal level=-42 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
524 LINUX
La commande iwlist est également parfois utile : elle fournit les choix disponibles pour dif-
férents paramètres et indique également l’option active parmi celles disponibles. Les deux
exemples suivants illustrent son utilisation pour le canal et pour le réseau Wi-Fi actifs parmi
ceux disponibles :
root# iwlist eth0 channel
eth0 14 channels in total; available frequencies:
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
...
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Channel=10
En matière de Wi-Fi, il existe de grosses différences d’une distribution à l’autre ! De nombreux contrôleurs
Wi-Fi fonctionnant immédiatement sur Ubuntu ne sont même pas reconnus sur Fedora. SUSE se situe quel-
que part entre les deux. Naturellement, il est possible de faire fonctionner sur toute distribution un contrô-
leur Wi-Fi géré par une distribution en particulier ; la question est seulement de savoir combien de temps
vous êtes prêt à y passer...
Debian, La configuration centrale s’effectue, comme pour les interfaces réseau filaire, dans le fichier
Ubuntu
/etc/network/interfaces. Deux options supplémentaires permettent de saisir la chaîne
ESSID et la clé WEP.
Linux Livre Page 525 Mardi, 23. septembre 2008 1:05 13
# /etc/network/interfaces
...
# Interface Wifi avec WEP
auto eth2
iface eth2 inet dhcp
wireless-essid sol
wireless-key xxxxxxxx
network-admin n’est pour le moment pas en mesure d’établir des connexions Wi-Fi chiffrées
par WPA. Préférez-lui donc autant que possible le gestionnaire NetworkManager (voir un
peu plus loin). Dans le cas contraire, vous devrez plonger les mains dans le cambouis : com-
mencez par créer un fichier /etc/wpa_supplicant.conf (comme mentionné précédemment)
puis remplacez le mot-clé wireless par wpa :
# /etc/network/interfaces
...
# Interface Wifi avec WPA
auto eth2
iface eth2 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
Les versions anciennes de Debian et d’Ubuntu ne connaissent pas le mot-clé wpa. Vous pou-
vez alors vous aider des termes pre-up et post-down. Ces mots-clés indiquent quelles com-
mandes doivent être exécutées avant l’établissement et après la fermeture de la connexion.
L’instruction pre-up apparaît ici sur plusieurs lignes pour des raisons de lisibilité (il a donc
fallu la couper par un caractère \) :
# /etc/network/interfaces
...
# Interface Wifi avec WPA
auto eth2
iface eth2 inet dhcp
pre-up /sbin/wpa_supplicant -d wext -i eth2 \
-c /etc/wpa_supplicant.conf -Bw; sleep 2;
post-down killall -q wpa_supplicant
Red Hat, Sur Red Hat et Fedora, les interfaces Wi-Fi sont traitées comme des interfaces LAN. Les
Fedora
lignes qui suivent présentent un fichier de configuration typique :
# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Wireless
HWADDR=00:0c:f1:58:f9:93
IPADDR=192.168.1.16
GATEWAY=192.168.1.254
MODE=Managed
...
526 LINUX
Dans la dernière version testée (Fedora 7), system-config-network ne prenait pas encore en
charge WPA. Pour utiliser WPA, vous devez soit configurer manuellement wpa_supplicant,
soit faire appel au NetworkManager.
SUSE Les versions actuelles de SUSE prennent en charge deux variantes très différentes de confi-
guration Wi-Fi : la configuration classique (que nous présentons ici) par Yast ainsi que la
configuration dynamique à l’aide du NetworkManager (voir la section suivante). Vous pou-
vez choisir la variante à utiliser dans la première boîte de dialogue du module YaST Péri-
phériques réseau > Carte réseau. La configuration est enregistrée dans la variable
NETWORKMANAGER dans le fichier /etc/sysconfig/network/config.
Si vous avez opté pour la variante classique, chaque interface Wi-Fi possède son propre
fichier de configuration dans /etc/sysconfig/network. Les lignes qui suivent (fortement
élaguées) visent à montrer la structure d’un tel fichier pour une connexion Wi-Fi chiffrée par
WPA.
# Exemple pour /etc/sysconfig/network/ifcfg-eth-pcmcia
# /etc/sysconfig/network/ifcfg-wlan-bus-pci-0000:05:04.1
BOOTPROTO=’dhcp’
STARTMODE=’auto’
WIRELESS_AUTH_MODE=’psk’
WIRELESS_BITRATE=’auto’
WIRELESS_ESSID=’wlan-sol2’
WIRELESS_MODE=’Managed’
WIRELESS_POWER=’yes’
WIRELESS_WPA_PSK=’Jag aelskar dig, Heidi!’
...
26.7 NetworkManager
Les outils classiques de configuration réseau sont bien souvent inadaptés au quotidien des
utilisateurs de portables : lorsque l’on doit, plusieurs fois par jour, changer d’emplacement
avec son ordinateur et à chaque fois configurer une nouvelle connexion au réseau sans fil
local, l’énervement n’est pas loin.
C’est précisément pour des cas comme celui-ci que le NetworkManager a été développé.
Une appliquette montre, dans le tableau de bord KDE ou Gnome, l’état du réseau. Un menu
vous permet de choisir parmi les réseaux sans fil ou filaires actuellement disponibles. Lors-
que vous utilisez pour la première fois un réseau sans fil, le NetworkManager vous
demande le mot de passe ; il reconnaît lui-même la technologie de chiffrement employée
(WEP, WPA, WPA2). Si le réseau est à nouveau utilisé ultérieurement, les données déjà connues
sont réutilisées automatiquement.
http://www.gnome.org/projects/NetworkManager
http://live.gnome.org/DarrenAlbers/NetworkManagerFAQ
Problèmes, Si vous pensez toutefois que le NetworkManager soit la solution à tous les problèmes de Wi-Fi,
inconvénients
je me dois malheureusement de vous décevoir :
• Le NetworkManager ne peut être utilisé que sur un réseau géré par DHCP : il n’est pas
possible de configurer les paramètres de façon statique.
Linux Livre Page 527 Mardi, 23. septembre 2008 1:05 13
Pour lancer le NetworkManager, exécutez l’une des deux commandes suivantes selon votre
environnement de bureau. Le programme (Applet) apparaît alors sous la forme d’une icône
dans le tableau de bord. Au besoin, les services NetworkManager requis sont lancés automati-
quement. Par la suite, Gnome et KDE se chargeront de lancer automatiquement l’appliquette.
utilisateur$ nm-applet & Gnome
utilisateur$ knetworkmanager & KDE
Un clic sur l’appliquette vous montre tous les réseaux à portée desquels vous vous trouvez,
ainsi que leur nom. Une fois que vous avez choisi un réseau, apparaît une boîte de dialogue
pour saisir votre mot de passe. Pour vous éviter d’avoir à saisir systématiquement le mot de
Linux Livre Page 528 Mardi, 23. septembre 2008 1:05 13
528 LINUX
Les communications Zeroconf interviennent sur le port UDP 5454. Pour que Zeroconf fonctionne, ce port ne
doit donc pas être bloqué par un pare-feu !
Zeroconf et DHCP ne sont pas mutuellement exclusifs : lorsque les ordinateurs Zeroconf obtiennent leurs
adresses IP par DHCP, Zeroconf ne modifie pas les valeurs de celles-ci. Cela devient toutefois problématique
lorsque certaines adresses IP sont attribuées par DHCP et d’autres par Zeroconf : les ordinateurs se trouvent
alors sur deux segments de réseau distincts qui ne peuvent communiquer entre eux.
Un explorateur compatible Zeroconf montre tous les ordinateurs Zeroconf visibles sur le
réseau ainsi que leurs ressources (par exemple les partages réseau, serveurs HTTP ou FTP).
Ainsi, il est possible d’intégrer plusieurs ordinateurs à un réseau et de partager des données,
sans pour autant exiger un gros travail de configuration.
Il reste à voir si le concept de Zeroconf peut s’imposer : le développement des routeurs
(ADSL) intégrant des serveurs DHCP facilite l’intégration d’ordinateurs Linux au sein d’un
réseau, même sans faire appel à Zeroconf. Pour les réseaux statiques, dont la structure ne
change que rarement, Zeroconf présente peu d’intérêt. Même pour les réseaux hétérogènes
comprenant des ordinateurs sous Windows, Zeroconf n’est pas d’une grande assistance car
il est peu usité sous Windows.
Avahi Zeroconf fut initialement implémenté par Apple sous le nom Rendezvous. Ce projet, ulté-
rieurement baptisé Bonjour, est également disponible pour Windows. Cette implémenta-
tion, bien que disponible sous forme de code open-source, n’est toutefois pas compatible
avec la licence GPL. Pour cette raison, un projet Zeroconf (indépendant de Bonjour) a vu le
jour pour Linux, sous le nom d’Avahi. Sa licence de distribution est la LGPL.
http://avahi.org
Le service avahi-daemon est responsable des communications entre ordinateurs Avahi. La
quasi-totalité des grandes distributions propose un paquetage Avahi dans lequel vous trou-
verez ce programme ainsi que divers outils et bibliothèques. Il n’est toutefois que rarement
installé et activé.
Linux Livre Page 529 Mardi, 23. septembre 2008 1:05 13
Il existe également des lacunes au niveau de l’intégration avec les outils de configuration
réseau. L’outil Gnome network-admin est toutefois une exception positive : vous pouvez y
activer le lancement automatique du démon Avahi par le biais du système Init-V.
À l’heure actuelle, mes tests ont montré que l’utilisation d’Avahi n’est pas aussi simple
qu’on pourrait s’y attendre. Ces problèmes ne sont pas forcément liés à la technique en soi
ou à l’implémentation d’Avahi. L’adoption de Zeroconf est encore très limitée et, par
ailleurs, il existe un certain scepticisme quant à la sûreté de l’outil. Aucune distribution n’a
donc pour le moment franchi le pas de mettre en place Avahi dès l’installation d’un
ordinateur : cela contribuerait pourtant à donner ses lettres de noblesse à cet outil.
Linux Livre Page 530 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 531 Mardi, 23. septembre 2008 1:05 13
Accès à Internet
27
Dans les chapitres précédents, nous avons supposé que l’ordinateur était connecté à un
réseau local et accédait de cette manière à Internet. La situation actuelle en France y corres-
pond souvent. Du fait de la prépondérance des "box" sur le marché de l’ADSL, peu de per-
sonnes se soucient aujourd’hui de l’accès à Internet : l’ordinateur est souvent branché via
Ethernet à la box et celle-ci se charge de tout. Si vous utilisez ce type de "box" ou un routeur
ADSL, ce chapitre ne vous concerne pas. La configuration est gérée par le routeur et est
équivalente à la connexion d’un ordinateur au réseau local. Les informations pertinentes à
ce sujet se trouvent au Chapitre 26.
Cependant, il existe d’autres méthodes d’accès à Internet :
• Modem analogique. Dans certaines zones non desservies par l’ADSL ou pour des rai-
sons d’économies, le modem analogique est une alternative souvent peu coûteuse bien
que lente. Toutes les distributions Linux fournissent des outils de configuration pour les
modems. Les modems plus anciens connectés à une interface série présentent peu de
problèmes. Les modems internes (sur un ordinateur portable), les cartes PCI modem et
les modems USB ont souvent besoin de pilotes qui manquent fréquemment sous Linux.
• RNIS. Le RNIS est largement passé de mode en France. De plus, peu de distributions
fournissent les outils de configuration. Pour de nombreuses cartes, il faut télécharger les
pilotes du fabricant (ce qui est difficile sans accès à Internet). Nous n’en parlerons que
brièvement dans cette section.
• ADSL. Si vous disposez d’un routeur ADSL (ce que sont la plupart des "box" des four-
nisseurs d’accès), il suffit de brancher votre ordinateur au routeur. Techniquement, cette
configuration est équivalente à un réseau local. La configuration est un jeu d’enfant
grâce à DHCP et tout peut être prêt en moins d’une minute.
En revanche, si vous utilisez un modem ADSL non routeur, la configuration est générale-
ment plus compliquée et dépend de nombreux facteurs comme votre fournisseur d’accès
et l’interface du modem. C’est de cette situation que nous traiterons dans ce chapitre.
532 LINUX
Gnome gnome-ppp
KDE kppp (voir Figure 27.1)
Debian, Ubuntu outils Gnome/KDE
Red Hat, Fedora system-config-network = neat
SUSE module YaST Périphériques réseau > Modem
L’aspect de ces différents programmes varie, mais il se ramène toujours aux quatre informa-
tions principales que sont le numéro de téléphone de votre fournisseur d’accès, votre identi-
fiant et votre mot de passe chez ce fournisseur ainsi que l’interface physique de votre modem.
Certains programmes séparent la configuration matérielle de la configuration du fournisseur
d’accès.
Les problèmes de configuration ne sont généralement liés qu’au matériel. Il existe différents
types de modems analogiques :
• Modems externes. Les modems externes sont des périphériques à relier à l’interface
série de l’ordinateur. Ils ne présentent généralement que peu de problèmes. On accède à
l’interface série sous Linux avec /dev/ttySn, où n est, selon toute probabilité, 0 ou 1.
• Modems USB. Ces modems sont connectés à l’ordinateur via USB. L’interface corres-
pondante est souvent /dev/ACMn ou /dev/input/ttyACMn. Généralement, ce type de
modem est également pris en charge, mais certains modèles peuvent poser problème.
Vous trouverez une liste de compatibilité à l’adresse http://www.linux-usb.org/.
• Modems internes. Les modems internes consistent en une carte additionnelle ou sont
intégrés directement à la carte mère de l’ordinateur. Sous Linux, on accède générale-
ment à ces modems comme à des modems externes par /dev/ttySn. Malheureusement,
il s’agit souvent de "winmodems", qui sont peu ou mal pris en charge sous Linux.
Figure 27.1
Configuration d’un
modem avec KPPP.
Linux Livre Page 533 Mardi, 23. septembre 2008 1:05 13
Configuration RNIS
Outils de Traditionnellement, SUSE était la meilleure distribution pour les utilisateurs de RNIS. Le
configuration
marché allemand avait de nombreux utilisateurs RNIS et beaucoup de matériels RNIS sont
allemands (AVM, Siemens). Depuis, SUSE fait partie de l’entreprise américaine Novell et ne
fournit plus les pilotes binaires AVM, ce qui est sensé du point de vue de la philosophie
libre, mais nettement moins pratique pour les utilisateurs de RNIS.
Selon votre distribution, il existe différentes interfaces utilisateur pour configurer votre carte
RNIS.
Nous ne traiterons pas plus du RNIS dans le cadre de cet ouvrage. La configuration et les diffi-
cultés que vous pouvez rencontrer dépendent largement du matériel et de la distribution. Vous
pouvez par exemple lire la page http://forum.ubuntu-fr.org/viewtopic.php?pid=1775181 pour
avoir des informations sur une configuration RNIS sous Ubuntu 8.04.
Configuration ADSL
La méthode d’accès à Internet la plus simple consiste à utiliser un routeur ADSL. Si vous
disposez uniquement d’un modem ADSL, sa configuration dépend de son type, de la
variante de PPP utilisée et de votre distribution.
• Type de modem. On distingue les modems Ethernet des modems USB. Si vous le pouvez,
évitez les modems USB, qui manquent généralement cruellement de pilotes.
• Variante de PPP. Les informations TCP/IP peuvent être transmises par PPPoA, PPPoE
ou PPTP. Vous trouverez des informations à ce sujet à la section suivante. Si vous ne
savez pas quel protocole utiliser, demandez à votre fournisseur d’accès.
Outils de Le tableau suivant résume les outils de configuration ADSL utilisables dans chaque distri-
configuration
bution et les protocoles qu’ils prennent en charge.
Si votre distribution ne fournit pas d’outils pour votre modem ADSL ou pour le protocole
pris en charge par votre fournisseur d’accès, vous pouvez vous procurer un routeur ADSL
ou configurer manuellement votre modem.
Linux Livre Page 534 Mardi, 23. septembre 2008 1:05 13
534 LINUX
pppoeconf Les distributions basées sur Debian fournissent l’outil en ligne de commande pppoeconf.
Démarrez pppoeconf en tant que root dans une fenêtre de terminal. La commande cherche
un modem ADSL sur toutes les interfaces réseau.
Une fois le modem trouvé, indiquez votre identifiant et votre mot de passe. Vous pouvez
simplement confirmer les questions suivantes à propos de la configuration du DNS et des
paramètres MSS.
Pour finir, le programme vous demande si la connexion ADSL doit être lancée automatique-
ment au démarrage de l’ordinateur ou bien manuellement. La première variante est sensée
lorsque votre accès ADSL est illimité (ce qui est le cas pour l’immense majorité des forfaits en
France) et lorsque vous voulez rester en ligne en permanence. Dans la seconde variante, vous
devez activer et désactiver manuellement l’accès à Internet avec les commandes suivantes :
root# pon dsl-provider
...
root# poff dsl-provider
Winmodems
Les modems internes sont souvent des winmodems (ou softmodems). Les fonctions diver-
ses du modem ne sont pas gérées par le matériel, mais émulées par du logiciel. Ce logiciel
n’est souvent disponible que sous Windows.
Peu de winmodems fonctionnent sous Linux. La plupart des entreprises ne fournissent pas les
spécifications nécessaires au développement de pilotes pour les projets libres. Vous trouverez
plus d’informations à ce sujet aux adresses http://linmodems.org/ et http://walbran.org/sean/
linux/linmodem-howto.html.
Ce genre de modem est le plus souvent rencontré sur des ordinateurs portables. Le site web
http://www.linux-laptop.net présente de nombreux modèles, leur compatibilité avec Linux
et éventuellement décrit leur fonctionnement.
scanModem La première étape consiste à déterminer le type exact de modem dont vous disposez. Télé-
chargez pour cela la commande scanModem et lancez-la :
user$ wget http://linmodems.technion.ac.il/packages/scanModem.gz
user$ gunzip scanModem.gz
user$ chmod u+x scanModem
user$ ./scanModem
Identifying PCI bus slots with candidate modems.
=== Finished modem firmware and bootup diagnostics section. ===
=== Next deducing cogent software ===
Analysing card in PCI bus 00:1f.6, writing to scanout.00:1f.6
Linux Livre Page 535 Mardi, 23. septembre 2008 1:05 13
Sur mon ordinateur portable, scanModem indique que la fonction du modem est gérée par
une puce son Intel. La commande indique que je dois charger le module du noyau snd-
intel8x0m et relancer scanModem :
root# modprobe snd-intel8x0m
user$ ./scanModem
...
Checking for match with Archived softmodem information.
IDENT=hsfmodem
Using scanout.00:1f.6 data, and writing guidance to ModemData.txt
Writing Intel.txt
Writing Conexant.txt
Writing residual guidance customized to your System.
A subfolder Modem/ has been written, containing these files with
more detailed Information:
--------------------------------------------------------------------
1stRead.txt Bootup.txt Conexant.txt dmesg.txt
DriverCompiling.txt InfoGeneral.txt Intel.txt ModemData.txt
Rational.txt scanout.00:1f.6 SoftModem.txt Testing.txt
UNSUBSCRIBE.txt wvdial.txt YourSystem.txt
scanModem a créé divers fichiers dans le répertoire Modem. Ceux-ci fournissent des informa-
tions supplémentaires sur le modem et sur les étapes suivantes. On y trouve en particulier :
user$ less Modem/ModemData.txt
...
Formal support for Conexant chipset modems are available ONLY through
http://www.linuxant.com/drivers. Read Conexant.txt for details. and
Modem/YourSystem.txt for follow through guidance. Driver speed is limited to
14,400 until a key is purchased. There is NO freeware alternative.
...
Suivez les instructions de scanModem. Notez que, si vous avez besoin de pilotes binaires,
ceux-ci doivent être actualisés à chaque mise à jour du noyau. Cela en fait une solution à
limiter aux cas d’urgence.
536 LINUX
pppd est démarré. Il prend le contrôle du modem et commence à communiquer avec le four-
nisseur d’accès. Une fois l’authentification réussie, votre ordinateur est connecté à Internet.
chat chat définit l’établissement de la communication entre le modem et le fournisseur d’accès.
Le fichier suivant est un exemple de configuration de chat.
# /etc/chatscripts/mychat
# paramètres
TIMEOUT 60
ABORT ERROR
ABORT BUSY
ABORT VOICE
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
ABORT "NO ANSWER"
# la communication elle-même
"" "+++ATZ"
"OK" "ATDT1234567890"
CONNECT
pppd est lancé en tâche de fond. Il faut généralement compter une trentaine de secondes
pour que la connexion soit établie. Vous pouvez alors vérifier avec ifconfig, route -n et ping
si la connexion fonctionne bien.
Pour couper la connexion, lancez :
root# killall pppd
538 LINUX
lock
noauth
noipdefault
defaultroute
usepeerdns
# identifiant pour /etc/ppp/pap-secrets et chap-secrets
name "hofer"
# attendre 4 secondes lors d'une déconnexion avant d'essayer de
# reconnecter
persist
holdoff 4
maxfail 25
# pour Red Hat/Fedora
ipparam "adsl"
defaultroute
usepeerdns
# attendre 4 secondes lors d'une déconnexion avant d'essayer de
# reconnecter
persist
holdoff 4
maxfail 25
# pour Red Hat/Fedora
ipparam "adsl"
Démarrage et Pour démarrer et arrêter pppd, utilisez les commandes habituelles :
arrêt de pppd
root# pppd call adsl
root# killall pppd
Linux Livre Page 540 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 541 Mardi, 23. septembre 2008 1:05 13
Passerelle Internet
28 (mascarade et DHCP)
Ce chapitre traite de la configuration d’un serveur. Il s’adresse à tous ceux qui gèrent de
petits réseaux locaux, dans lesquels se trouvent éventuellement des clients Windows.
Il décrit la mise en place d’une passerelle Internet pour le réseau local. Il s’agit d’un ordina-
teur qui met à disposition l’accès à Internet pour d’autres ordinateurs. Le plus simple est
généralement d’activer la mascarade sur cet ordinateur. Pour faciliter la gestion du réseau
local, l’installation d’un serveur DHCP est également conseillée. Les clients qui s’y connectent
peuvent alors être configurés presque entièrement automatiquement.
Une passerelle devrait toujours être protégée par un pare-feu (voir Chapitre 29).
Les informations de ce chapitre ont été testées uniquement sous Ubuntu, openSUSE et
Fedora, mais la configuration des distributions Debian, SUSE Enterprise et Red Hat diffère
généralement peu.
28.1 Introduction
Ce chapitre décrit l’installation des composants suivants :
• Mascarade/NAT. La mascarade permet de connecter tous les clients d’un réseau local à
Internet. Un ordinateur est connecté à Internet via ISDN ou ADSL, tandis que tous les
autres sont connectés à cette machine et peuvent utiliser Internet de cette manière. Il
n’est donc pas nécessaire que tous aient leur propre modem !
• DHCP et DNS. Le DHCP permet de gérer automatiquement les adresses IP et d’autres
paramètres réseau sur tous les clients. Il existe deux possibilités pour mettre en place ce
type de serveur. Dans le cas d’un petit réseau simple, on peut utiliser dnsmasq, qui gère
à la fois le DHCP et le service de noms (DNS) du réseau. Pour des tâches plus importan-
tes, on utilise plutôt dhcpd. Celui-ci ne fait pas office de serveur de noms ; il est généra-
lement couplé avec Bind. La configuration de ce dernier, plutôt complexe, sort du cadre
de cet ouvrage.
Installation Pour des raisons de sécurité, les paquetages présentés ici ne sont généralement pas installés
des
paquetages par défaut. Il existe parfois des paquetages avec des noms similaires pour les services clients
associés, mais ils ne suffisent pas. Une fois le paquetage serveur installé, le programme doit
être activé explicitement.
Aides à la Ce chapitre s’adresse à des utilisateurs avancés de Linux. Les divers fichiers de configura-
configuration
tion seront décrits, ce qui ne sera pas le cas des interfaces utilisateur mises à disposition par
les différentes distributions.
L’approche suivie ici (modification manuelle des fichiers de configuration) peut sembler
démodée, mais elle a fait ses preuves. Vous ne savez où se trouvent les fichiers que lorsque
vous les modifiez manuellement. Et seule cette méthode permet de modifier ou de transférer
Linux Livre Page 542 Mardi, 23. septembre 2008 1:05 13
542 LINUX
une configuration sur un autre serveur, par exemple après une réinstallation ou un changement
de distribution.
Sécurité Si vous désirez utiliser Linux en tant que serveur réseau, vous devez vous préoccuper de la
sécurité (voir Chapitre 29).
IPv6 Toutes les commandes utilisées ici sont compatibles avec IPv6. Les tests n’ont cependant été
effectués que sur une base IPv4 et les spécificités d’IPv6 ne seront pas traitées.
Figure 28.1
Topologie du réseau.
Passerelle mars est la passerelle. Elle sécurise aussi le réseau contre les accès extérieurs par un pare-feu.
mars
(192.168.0.1) Divers services réseau fonctionnent dessus (DHCP, DNS, Apache, MySQL, Samba, NFS,
SSH, etc.).
Linux Livre Page 543 Mardi, 23. septembre 2008 1:05 13
L’accès à Internet est assuré par un modem ADSL, branché via un câble réseau (eth1).
L’accès au réseau local passe par un concentrateur (hub) via eth2. L’ordinateur dispose éga-
lement d’une imprimante USB, partagée par tout le réseau.
Autres uranus et saturne sont des ordinateurs fixes, avec pour adresses IP 192.168.0.2 et
éléments
du réseau 192.168.0.13. mercure est un ordinateur portable, avec pour IP 192.168.0.15. pluton est une
imprimante laser réseau.
Pour des raisons de sécurité, il serait préférable que mars ne serve qu’à l’accès à Internet et au pare-feu. Un
vieil ordinateur peut alors suffire. Tous les autres services du réseau peuvent être gérés par un second ordina-
teur derrière le pare-feu.
Le problème de cette configuration est que chaque programme serveur sur mars présente le danger qu’un
intrus l’utilise pour accéder à l’ordinateur (malgré le pare-feu).
Dans les grandes entreprises, l’architecture réseau sépare généralement l’ordinateur pare-feu et les ser-
veurs. Pour mon environnement de test privé, c’est néanmoins nettement moins pratique.
544 LINUX
• Serveurs de noms. Pour que les clients connaissent les noms des ordinateurs du réseau,
l’installation d’un serveur de noms s’impose souvent dans les réseaux importants. Ce
service est utile pour la communication interne et se place entre le DNS du fournisseur
d’accès et l’ordinateur client. Il réduit le trafic Internet vers le fournisseur d’accès et les
requêtes peuvent être traitées plus vite.
• Pare-feu. Pour sécuriser les ordinateurs du réseau local contre un accès indésirable, il
faut absolument installer un pare-feu sur l’ordinateur (voir Chapitre 29).
Ajout de Lorsque votre réseau local est configuré, vous pouvez rapidement ajouter un client. Si votre
nouveaux
clients DHCP est géré par dnsmasq, il suffit d’ajouter une ligne hostname à /etc/dnsmasq.conf. Ici,
00:11:22:33:44:55 est l’identifiant MAC de la carte réseau (numéro unique), terre le nom
d’hôte du nouvel ordinateur et 192.168.0.21 l’adresse IP souhaitée.
dhcp-host=00:11:22:33:44:55,terre,192.168.0.21
Sur le client, l’installation est encore plus simple : il suffit d’indiquer que la configuration
réseau est assurée par DHCP.
Figure 28.2
Routeur ADSL.
Le principal avantage d’un routeur matériel est que la configuration est très simple et qu’il
est, à l’achat, moins cher qu’un ordinateur sous Linux et un commutateur (auxquels il faut
parfois ajouter un modem ADSL et une carte sans fil). Si vous souhaitez rapidement mettre
en place un accès à Internet, ce type de solution vous économisera du temps et de la fatigue.
Linux Livre Page 545 Mardi, 23. septembre 2008 1:05 13
Dans ce qui suit, l’ordinateur doté de l’accès à Internet est désigné comme serveur et tous les autres sont
appelés clients, indépendamment de leurs fonctions réelles. Dans le cas de la mascarade, le serveur est sou-
vent appelé passerelle Internet ou routeur (ce qui est un abus de langage).
Mascarade Selon le concept de mascarade, les paquets de données provenant des clients à destination
d’Internet sont acceptés par le serveur, puis transformés comme s’ils en provenaient. Pour
formuler cela de manière plus concrète, l’adresse d’expédition du paquet du client (par
exemple 192.168.0.17) est transformée en l’adresse du serveur (par exemple 175.118.190.232).
Cette modification est désignée par le terme NAT (Network Address Translation, traduction
d’adresses réseau). Le NAT est un concept plus avancé que celui de mascarade. En effet, il
existe plusieurs manières de mettre en place un NAT, la mascarade étant la plus simple.
Le paquet peut alors être envoyé sur Internet, qui renvoie généralement une réponse
après un certain temps. Par exemple, si le paquet de données de départ est une requête
vers un site web, la réponse est le document HTML demandé sous la forme de paquets IP.
Linux Livre Page 546 Mardi, 23. septembre 2008 1:05 13
546 LINUX
Le problème pour le serveur est alors d’adresser la réponse au bon ordinateur (en l’occur-
rence, 192.168.0.17). Comment connaît-il la bonne adresse ? Vu que le paquet de requête
provient du serveur, la réponse lui est également adressée.
Pour résoudre ce problème, le serveur modifie non seulement l’adresse d’expédition, mais
aussi le port d’expédition. Chaque adresse IP du réseau local est associée à un port donné.
Les communications TCP/IP sont réparties sur différents ports. Les ports sont des informa-
tions supplémentaires qui identifient le service. Par exemple, FTP utilise normalement les
ports 20 et 21, HTTP 80, etc. Il existe aussi de nombreux ports auxquels aucun service n’est
associé. Ces numéros sont, entre autres, utilisés pour la mascarade.
Celle-ci est mise en place grâce à diverses commandes selon la version du noyau. Le
noyau 2.0 utilisait ipfwadm, le noyau 2.2 ipchains et, depuis la version 2.4, le noyau utilise
iptables. Cette section se limite à iptables.
Mascarade Les fonctions de mascarade et de pare-feu sont étroitement liées. Cette section suppose que
et pare-feu
l’ordinateur n’est pas encore configuré en tant que pare-feu. Si c’est le cas, vous devrez
d’abord désactiver le pare-feu avant de pouvoir activer la mascarade (voir Chapitre 29 ).
echo active la fonction de transfert d’IP du noyau, qui est par défaut désactivée. Dans de
nombreuses distributions, vous pouvez utiliser à la place la commande sysctl, plus
élégante :
root# sysctl -w net.ipv4.ip_forward=1
La commande iptables définit une règle selon laquelle un paquet qui doit quitter le réseau
local est transmis à l’interface eth1 et manipulé avec les règles du NAT. Selon la configura-
tion de votre accès à Internet, vous devez utiliser, à la place de eth1, une autre interface,
comme ppp0 ou ipp0 !
MSS clamping Si le serveur accède à l’ADSL via le protocole PPPoE (ce qui est rarement le cas en France),
cela peut poser problème pour les gros paquets IP. Pour éviter cela, on utilise une com-
mande iptables supplémentaire. Cette règle, appelée MSS clamping, évite que de trop gros
paquets ne soient envoyés :
root# iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu
Sécurité Il est préférable de mettre en place une sécurité minimale contre les abus. Après tout, une
minimale
fois la mascarade activée, tous les ordinateurs du réseau local sont connectés à Internet.
Les trois commandes suivantes s’assurent que tous les paquets du réseau local passent, mais
que seuls les paquets entrants envoyés en réponse à une requête sont transmis au réseau
local. Nous supposons ici que le réseau local est connecté au serveur via eth2 et que l’accès à
Linux Livre Page 547 Mardi, 23. septembre 2008 1:05 13
Internet passe par eth1. Vous devez modifier ces valeurs en fonction de votre propre confi-
guration.
root# echo 1 >
/proc/sys/net/ipv4/ip_forward
root# iptables
-P FORWARD DROP
root# iptables
-A FORWARD -i eth2 -o eth1 -j ACCEPT
root# iptables
-A FORWARD -i eth1 -o eth2 -m state \
--state ESTABLISHED,RELATED -j ACCEPT
root# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Modules Si votre système est bien configuré, la commande iptables charge automatiquement les
iptables
modules nécessaires dans le noyau. Dans le cas contraire, vous devez les activer manuelle-
ment. Les principaux modules sont ip_tables, iptable_nat, ip_conntrack, ipt_MASQUERADE,
iptable_filter, ip_conntrack_ftp et ip_nat_ftp.
Problèmes
La mascarade est une solution élégante pour fournir un accès à Internet à des ordinateurs
qui ne disposent pas d’adresse IP valable sur le réseau mondial. Elle pose cependant parfois
quelques problèmes, dont seuls les plus fréquents sont détaillés ici.
• Un certain nombre de protocoles Internet ont des mécanismes de protection qui vérifient
l’association de l’adresse IP. Le fait que la mascarade empêche une correspondance unique
entre une adresse IP et un ordinateur peut être à la source de certaines difficultés.
• Certains protocoles envoient l’adresse non seulement dans le paquet IP, mais aussi dans
le contenu de données du paquet (en tant que texte ASCII ou de manière protégée). FTP
est un exemple connu de ce type de comportement. Pour que ce dernier fonctionne
Linux Livre Page 548 Mardi, 23. septembre 2008 1:05 13
548 LINUX
Si les clients FTP rencontrent toujours des difficultés, le plus simple est de les faire fonc-
tionner en mode passif. La plupart activent ce mode automatiquement ou permettent
au moins de le faire.
• Si le serveur de mascarade est connecté via ADSL/PPPoE à Internet, la taille maximale
(MTU) des paquets peut poser problème. Pour éviter cela, il faut la modifier sur tous les
clients ou mettre en place un MSS clamping sur le serveur.
• Seuls les ordinateurs effectivement en service ont besoin d’une adresse IP. Cela ne pré-
sente un avantage que lorsque le nombre d’adresses IP est faible, ce qui n’est généralement
pas le cas dans un réseau local.
Il compte cependant également quelques inconvénients :
• Le fonctionnement de tout le réseau dépend de l’ordinateur sur lequel fonctionne le ser-
veur DHCP. Si ce dernier tombe en panne, les clients actifs utilisent simplement leur
dernière adresse. Les clients nouvellement connectés n’ont cependant pas d’adresse
réseau. La dépendance à un seul ordinateur peut être diminuée si plusieurs ordinateurs
sont configurés comme serveurs DHCP.
• Un système DHCP dynamique peut représenter un risque de sécurité. Quiconque entre
dans votre bureau peut se connecter au réseau avec un ordinateur. L’accès effectif aux
données dépend largement du reste de la configuration du réseau, mais la première
étape en devient triviale.
DHCP et noms DHCP peut également gérer les noms d’hôte des ordinateurs. Il existe deux variantes de
d’hôte des
clients configuration :
• Configuration centrale du nom d’hôte par DHCP. Chaque client reçoit du serveur
DHCP son nom d’hôte. DHCP est souvent configuré pour associer une IP et le nom
d’hôte correspondant à une adresse MAC donnée. Cette adresse est un identifiant unique
de la carte réseau.
• Gestion locale des noms d’hôte sur les clients. Les clients locaux ont un nom d’hôte
fixe. Le serveur DHCP ne sert qu’au reste de la configuration.
Ces deux solutions ont chacune leurs arguments et aucune n’est meilleure en soi. Si vous
utilisez la seconde, il faut cependant veiller lors de la configuration du client à ce que celui-
ci envoie son nom d’hôte au serveur DHCP, ce qui sert à actualiser le serveur de noms.
Fonctionne- Lorsqu’un ordinateur (client DHCP) est démarré, il envoie une requête à l’adresse
ment interne
de DHCP 255.255.255.255 (soit à tous les ordinateurs du réseau local). Seul le serveur DHCP réagit à cette
requête et renvoie comme réponse une adresse IP qui provient de la liste des adresses IP valides.
Vous vous demandez peut-être où le serveur envoie sa réponse : le client n’a en effet pas encore
d’adresse IP. L’adressage passe par une adresse MAC, qui est connue grâce à la requête DHCP.
Le serveur DHCP assigne les adresses IP pour une durée donnée (lease time). Celle-ci est
généralement d’une journée, mais elle peut être paramétrée différemment. Avant que cette
durée ne soit écoulée, le client doit renouveler l’adresse auprès du serveur DHCP ou
demander une nouvelle adresse IP.
550 LINUX
• Rapidité. Le DNS gère un cache des adresses récemment utilisées. Si vous accédez deux
fois à www.yahoo.com sur une journée, le serveur DNS n’a pas à réinterroger le serveur
DNS de votre fournisseur d’accès − le DNS local a déjà enregistré l’adresse.
• Résolution locale. Le DNS gère les noms et adresses IP des ordinateurs du réseau local.
Vous pouvez ainsi accéder à tous les ordinateurs du réseau via un nom et, par exemple,
lancer depuis l’ordinateur mercure la commande ping saturne. mercure ne contacte que
le serveur de noms local, qui renvoie l’adresse IP de saturne. La résolution de noms
locaux est un élément de base pour utiliser confortablement des services réseau comme
NFS, FTP, SSH, etc.
Les DNS du monde entier sont connectés les uns aux autres. Lorsqu’un DNS ne connaît pas
un nom donné, il transmet la requête à un autre DNS. Les DNS sont organisés de manière
hiérarchique.
Configuration de dnsmasq
Cette section décrit le programme dnsmasq, qui intègre les fonctions de serveur DHCP et de
serveur de noms. La section suivante traite de dhcpd, qui ne sert que de serveur DHCP.
Prérequis Nous supposons ici que le paquet dnsmasq est installé et que dhcpd ne l’est pas (sans quoi, les
deux programmes peuvent entrer en conflit).
Un autre prérequis important est la configuration correcte du fichier /etc/hosts sur la pas-
serelle. Celui-ci est étonnamment incomplet ou mal configuré sur de nombreuses configura-
tions. Pensez à le vérifier lorsque vous modifiez la configuration réseau de votre passerelle.
L’élément décisif est l’association entre l’ordinateur local (ici, mars et mars.sol) et l’adresse
IP locale (192.168.0.1). Diverses lignes suivent généralement. Elles concernent la configuration
IPv6, que nous ne traitons pas dans cet ouvrage.
# /etc/hosts sur la passerelle
127.0.0.1 localhost
192.168.0.1 mars mars.sol
Si vous rencontrez des problèmes, pensez à regarder la configuration de votre pare-feu. L’interface du
réseau local ne doit pas être bloquée par le pare-feu !
dnsmasq.conf dnsmasq est configuré dans le fichier /etc/dnsmasq.conf. Le fichier de configuration par
défaut fait office de documentation et se compose de presque 400 lignes de commentaires.
Renommez-le en dnsmasq.conf.orig et créez un nouveau fichier sans ces commentaires
avec grep :
root# cd /etc
root# cp dnsmasq.conf dnsmasq.conf.orig
root# grep -v '^#' /etc/dnsmasq.conf.orig | cat -s > dnsmasq.conf
Vous pouvez aussi avoir à configurer son démarrage automatique. Vous trouverez plus
d’informations à ce sujet à la section 24.7.
Configuration La configuration minimale ci-après permet à dnsmasq de fonctionner sans problème. Il sert
minimale
ici de cache de serveur de noms pour Internet et fournit aux clients des adresses IP comprises
entre 192.168.0.2 et 192.168.0.254 :
# /etc/dnsmasq.conf - configuration minimale
domain-needed
bogus-priv
interface=eth2
dhcp-range=192.168.0.2,192.168.0.254,24h
Le mot clé local indique que les requêtes d’adresses sur ce domaine doivent être gérées
directement par dnsmasq (et non par le serveur de noms du fournisseur d’accès). Si vous
n’avez pas de meilleur nom de domaine, utilisez simplement localnet ou localdomain.
domain indique à dnsmasq le nom de domaine à transmettre aux clients DHCP. Ce nom doit
correspondre à celui indiqué dans le paramètre local.
Linux Livre Page 552 Mardi, 23. septembre 2008 1:05 13
552 LINUX
expand-hosts fait en sorte que les requêtes au serveur de noms qui n’indiquent pas de nom
de domaine soient suffixées du nom de domaine indiqué dans domain. Ainsi, lorsque vous
lancez ping uranus, dnsmasq étend l’adresse à uranus.sol.
Dans la configuration courante, dnsmasq ne s’occupe pas du nom d’hôte des clients. Celui-ci
doit donc être géré individuellement par les clients. Pour que la résolution de noms fonc-
tionne localement, les clients doivent envoyer leur nom d’hôte au serveur DHCP (dnsmaq).
Noms d’hôte dnsmasq peut également être configuré pour fournir aux clients des noms d’hôte. L’associa-
et adresses
statiques tion statique des noms et adresses IP se fait grâce à l’adresse MAC des clients. C’est la
méthode de configuration que je préfère : un fichier unique contrôle sous quels noms et
adresses IP sont accessibles les ordinateurs de mon réseau. Lorsqu’un nouvel ordinateur est
branché, il suffit d’ajouter une ligne à dnsmasq.
Le mot clé dhcp-host permet une telle configuration. Les lignes suivantes illustrent la confi-
guration de l’ordinateur mercure et de l’imprimante pluton. La plage 192.168.2-127 est réser-
vée aux adresses statiques et 192.168.0.128-254, aux adresses dynamiques (par exemple,
lorsqu’un ami désire se connecter rapidement à Internet avec son ordinateur portable).
# /etc/dnsmasq.conf - ajout d'adresses statiques
# associations statiques pour les clients dont l'adresse MAC est connue
dhcp-host=00:11:25:32:4f:5d,mercure,192.168.0.15
dhcp-host=00:c0:ee:51:39:9f,pluton,192.168.0.127
# plage d'adresses dynamiques pour les clients ayant une adresse MAC
# inconnue : 192.168.0.128-254
dhcp-range=192.168.0.128,192.168.0.254,24h
Red Hat, Sous Red Hat et Fedora, vous pouvez modifier le nom d’hôte et de domaine dans le champ
Fedora
texte Nom d’hôte de l’onglet DNS du programme system-config-network. Lorsque le ser-
veur DHCP transmet un nom d’hôte, celui-ci a priorité sur le nom de la configuration statique.
Par défaut, le nom d’hôte n’est pas transmis au serveur DHCP. Si vous désirez ce comporte-
ment, ouvrez avec Modifier la fenêtre de propriétés de l’interface réseau (généralement
eth0) et indiquez le nom d’hôte dans les paramètres DHCP.
Le programme dhclient évalue les informations DHCP. Il est, entre autres, appelé par le
script /etc/sysconfig/network-scripts/ifup-eth et peut être contrôlé par le système de
communication DBUS. Fedora utilise pour cela le paquetage dhcdbd, qui est installé par
défaut, mais qui n’est généralement pas actif. dhcdbd est en particulier utilisé par Network-
Manager. Vous trouverez plus d’informations sur dhcdbd dans le fichier /usr/share/doc/
dhcdbd-n/README.
SUSE Dans SUSE, le nom d’hôte est défini dans l’onglet Nom d’hôte/DNS module Périphériques
réseau, Paramètres réseau de YaST. Si le serveur DHCP transmet un nom d’hôte, ce nom a
Linux Livre Page 554 Mardi, 23. septembre 2008 1:05 13
554 LINUX
par défaut priorité sur la configuration statique. Ce comportement peut être modifié grâce à
l’option Modifier le nom d’hôte via DHCP.
SUSE transmet par défaut le nom d’hôte au serveur DHCP. Si ce n’est pas le comportement
souhaité ou si un autre nom doit être envoyé, modifiez le paramétrage dans l’onglet Options
globales du même module.
Au contraire de Debian et Red Hat, SUSE utilise la commande dhcpcd pour exploiter les
informations DHCP. Celle-ci est, entre autres, lancée dans /etc/init.d./network. dhcpcd
peut également communiquer sur le système DBUS via dhcdbd.
Recharger les Lorsque vous testez le serveur DHCP, vous devez redémarrer les clients à chaque fois. Un
données DHCP
redémarrage du réseau suffit parfaitement et récupère à nouveau les informations DHCP.
Sous Fedora, Red Hat et SUSE, lancez la commande
root# /etc/init.d/network restart
Vous pouvez vous assurer avec ifconfig et un examen du fichier /etc/resolv.conf que
tout a fonctionné. Si vous travaillez sous KDE ou Gnome, vous devez vous reconnecter lorsque
le nom d’hôte ou un autre paramètre réseau essentiel a été modifié.
Vous pouvez aussi recharger les données DHCP sous Windows sans le redémarrer. Ouvrez
une fenêtre de commande et lancez
> ipconfig /renew
authoritative indique que ce serveur est le serveur DHCP officiel du réseau local. default-
lease-time et max-lease-time indiquent combien de temps les adresses IP sont valides (une
journée, soit 86 400 secondes). Une fois cette durée écoulée, les clients doivent renouveler
leurs données de configuration (cela est automatique).
Les options broadcast-address et subnet-mask décrivent le segment de réseau géré par le
serveur DHCP. routers indique l’adresse de l’ordinateur qui sert de routeur ou de passe-
relle pour le réseau local. Dans l’exemple ci-dessus, il s’agit de l’ordinateur qui fait office de
serveur DHCP.
domain-name-servers est une liste de serveurs DNS (au maximum trois, séparés par des virgu-
les). Si vous utilisez un serveur DNS local, donnez-en l’adresse. Ces adresses sont transmises
aux clients pour qu’ils puissent aussi se passer de configurer eux-mêmes le DNS.
Vous pouvez récupérer l’adresse du serveur de noms dans /etc/resolv.conf . Si vous utilisez aussi
un serveur de noms local, indiquez dans domain-name-server l’adresse de la passerelle locale. Dans notre
exemple, il s’agit de 192.168.0.1.
Si un serveur WINS fonctionne sur votre réseau, vous pouvez indiquer son adresse avec l’option netbios-
name-server. WINS est l’équivalent d’un DNS pour le monde Windows. Un serveur Samba sous Linux
peut également faire office de serveur WINS.
Adresses Si votre seul but est de fournir des adresses IP à votre réseau local, vous avez terminé.
statiques
Cependant, on désire généralement attribuer des adresses statiques à quelques ordinateurs
du réseau local. Les lignes suivantes en sont un exemple.
Linux Livre Page 556 Mardi, 23. septembre 2008 1:05 13
556 LINUX
dhcpd permet d’exploiter plusieurs sous-réseaux et groupes. Vous pouvez ajouter des
options au début du fichier ou à l’intérieur d’un groupe entre accolades ; les options corres-
pondantes s’appliquent globalement ou à un seul groupe. Le fichier dhcpd.conf comprend
d’innombrables options supplémentaires. Vous en trouverez les détails dans les pages de
manuel.
Journalisation dhcpd enregistre toutes les adresses IP dynamiques dans le fichier /var/lib/dhcp3/
dhcpd.leases. Ce dernier permet de déterminer facilement les adresses MAC des nouveaux
clients. Les messages de journalisation supplémentaires sont enregistrés dans /var/log/
messages ou syslog.
DNS Divers mots clés ddns permettent de configurer le serveur DHCP de manière qu’il trans-
dynamique
mette les noms et adresses IP des nouveaux clients du réseau local à un serveur de noms. Ce
dernier connaît alors automatiquement les noms et adresses des ordinateurs du réseau local.
Linux Livre Page 557 Mardi, 23. septembre 2008 1:05 13
Sécurité du réseau
29
Ce chapitre décrit quelques mesures pour sécuriser votre ordinateur et votre réseau local :
• sécurisation des services Internet actifs grâce à xinetd et à TCP Wrapper ;
• sécurisation du trafic TCP/IP grâce à un filtre de paquets basé sur iptables (pare-feu) ;
• sécurisation de votre accès web ("filtrage parental") grâce à un filtre (Squid).
Les solutions présentées ici ne sont ni parfaites ni complètes. En particulier, nous ne parlons
pas des mécanismes SELinux ou AppArmor, ni des réseaux privés virtuels (VPN). Le but est
principalement d’éveiller votre vigilance et de vous fournir quelques clés pour bien démarrer.
Je tiens cependant à attirer votre attention sur ces deux points :
• Les informations de ce chapitre ne sont pas suffisantes pour éviter tout accès malicieux
à un système Linux ou à votre réseau. Si vous mettez en place un réseau d’entreprise ou
si vous effectuez des tâches dont la sécurité est primordiale, vous avez besoin d’ouvrages
spécialisés.
• Un système que l’on croit sûr est plus dangereux qu’un système non sûr !
558 LINUX
Glossaire réseau
DNS Domain Name Service, service de noms de domaines
HTTP HyperText Transfer Protocole, protocole de transfert hypertexte
ICMP Internet Control Message Protocol, protocole de messages de contrôle Internet
IP Internet Protocol, protocole Internet
NFS Network File System, système de fichiers réseau
TCP Transmission Control Protocol, protocole de contrôle des transmissions
UDP User Datagram Protocol, protocole de datagrammes utilisateur
IP Presque tous les services réseau courants sont fondés sur des paquets IP. Par exemple,
lorsqu’un utilisateur souhaite accéder à votre ordinateur par FTP, il démarre sur son ordinateur
un client FTP. Celui-ci envoie des paquets IP spéciaux à votre ordinateur. Si un serveur FTP
est installé sur votre ordinateur, il intercepte le paquet et réagit à la requête en renvoyant des
paquets IP.
En plus des données, un paquet IP contient quatre informations importantes : l’adresse IP
de l’expéditeur, le port de l’expéditeur, l’adresse du destinataire et son port. Ces données
indiquent d’où vient le paquet et où il va.
Adresses et Le sens d’une adresse IP devrait être clair (voir le Chapitre 26). Les ports sont utilisés pour
ports IP
identifier les différents services. Par exemple, pour demander un document WWW, on uti-
lise généralement le port 80. Le numéro de port est un nombre de 16 bits. Les ports de 1 à
1 024 sont considérés comme privilégiés et sont réservés pour les serveurs (par exemple le
serveur HTTP). Les ports restants peuvent être utilisés par les clients, mais il existe d’autres
numéros de ports déjà réservés pour des buts précis.
Le fichier /etc/services définit des alias pour les ports IP. Reportez-vous à ce fichier pour
savoir à quel protocole est associé un port donné.
Linux Livre Page 560 Mardi, 23. septembre 2008 1:05 13
560 LINUX
Protocoles IP Il existe différents protocoles pour les paquets IP. La plupart des services Internet utilisent
TCP. Ce protocole attend des accusés de réception. Il existe aussi des protocoles qui n’atten-
dent pas de telles confirmations, comme ICMP (qui est par exemple utilisé par ping) et UDP
(utilisé par exemple par DNS et NFS).
Filtres de Les paquets IP peuvent être créés par les programmes locaux ou arriver depuis l’extérieur,
paquets IP
c’est-à-dire depuis une interface réseau ou PPP. C’est le noyau qui décide quoi faire de ces
paquets. Il peut les rejeter ou les transmettre à un programme ou à une autre interface. Les
critères de décision regroupent les caractéristiques que nous venons de détailler. Pour met-
tre en œuvre un filtre de paquets, vous devez aussi disposer d’un moyen d’ajouter des
règles au noyau pour qu’il gère les paquets individuels. La commande iptables est fournie
à cet effet depuis le noyau 2.4 – nous en parlerons dans sa section dédiée.
Déterminer les Le principe de la plupart des services réseau est de surveiller un port donné. Si un paquet
ports actifs
arrive sur ce port, le service s’occupe de le traiter et d’y répondre. Les paquets qui ne sont
pas envoyés à un port surveillé sont simplement ignorés et ne posent donc pas de risques.
Pour protéger un ordinateur d’éventuelles menaces, il est donc nécessaire de disposer d’une
liste des ports surveillés (à l’inverse, un pirate essaiera d’abord de déterminer les ports
actifs).
La commande netstat est très utile pour examiner l’activité réseau de l’ordinateur local.
Selon les options avec lesquelles elle est lancée, elle affiche une énorme quantité d’informations
différentes.
Par exemple, a affiche les ports qui ne sont pas actifs, tu limite la sortie aux protocoles TCP
et UDP et pe affiche le numéro du processus et le compte sous lesquels le programme a été
lancé.
Pour savoir quel programme utilise quels ports TCP ou UDP, la commande lsof est égale-
ment utilisable. lsof -i [protocole]@hôte:port affiche une liste des processus qui utilisent
la ressource réseau indiquée. Par exemple, lsof -i udp affiche les programmes qui utilisent
le port UDP et lsof -i :22 affiche ceux qui utilisent le port 22.
netstat et lsof ne s’appliquent qu’aux ordinateurs locaux et ne sont généralement pas à
disposition d’un éventuel pirate. Celui-ci peut en revanche utiliser un scanneur de ports. De
tels programmes envoient des paquets aux ports importants d’un ordinateur et, en fonction
de la réponse, ils déterminent quel service fonctionne avec quelle version de quel pro-
gramme. La commande nmap en est l’exemple le plus connu, mais il existe de nombreux
autres programmes de ce type.
Un balayage des ports d’une machine avec nmap est considéré par de nombreux administrateurs comme
une tentative d’intrusion. N’utilisez pas un outil comme nmap sur un ordinateur inconnu ! Cependant, c’est
un outil pratique pour reconnaître des faiblesses dans votre propre réseau.
nmap n’est que rarement installé par défaut, mais il est généralement disponible en tant que
paquetage. Vous pouvez aussi trouver son code source à l’adresse http://nmap.org/. nmap
dispose également d’une interface graphique, que vous pouvez généralement installer
grâce au paquetage nmap-frontend.
Linux Livre Page 561 Mardi, 23. septembre 2008 1:05 13
Bases de xinetd
Les programmes qui mettent à disposition des services réseau peuvent être divisés en deux
catégories :
• Les démons. Ils surveillent un port donné et, lorsqu’un paquet y est adressé, le traitent
et y répondent. Ils sont gérés par InitV.
• Les programmes démarrés à la demande. Seul le programme xinetd est démarré. Il
surveille plusieurs ports et démarre au besoin les services correspondants. xinetd est au
cœur de cette section.
Linux Livre Page 562 Mardi, 23. septembre 2008 1:05 13
562 LINUX
xinetd signifie Extended Internet Service Daemon (démon de services Internet étendu). Il est le
successeur du programme inetd. Vous trouverez de la documentation sur xinetd à l’adresse
http://www.xinetd.org/.
Démarrage xinetd est un démon. Il est installé par défaut sur de nombreuses distributions, mais il n’est
et arrêt
pas toujours démarré, pour des raisons de sécurité (vérifiez cela avec ps ax |grep xinetd).
xinetd se lance ensuite comme tout autre service (voir la section 14.4).
/etc/services xinetd est contrôlé par plusieurs fichiers que nous décrirons dans ce qui suit. Les services
réseau se différencient les uns des autres par le port et le protocole qu’ils utilisent. Par exem-
ple, telnet utilise le port 23 et les protocoles tcp et udp. Pour que les fichiers de configura-
tion de xinetd restent lisibles, il existe un fichier, /etc/services, qui associe les noms de
divers services Internet (par exemple ftp, telnet, etc.) au protocole et au numéro de port
utilisés.
/etc/ /etc/xinetd.conf contient quelques paramètres de base, concernant par exemple la journa-
xinetd.conf
lisation ou les adresses IP définies par défaut. En général, vous pouvez laisser ces paramè-
tres tels qu’ils ont été définis par défaut. L’option includedir indique le répertoire contenant
les fichiers de configuration supplémentaires (généralement /etc/xinetd.d).
/etc/xinetd.d Le répertoire /etc/xinetd.d contient, pour chaque service enregistré dans xinetd, un fichier
de configuration spécifique. Le nom de ces fichiers ne joue pas de rôle particulier : xinetd lit
tous les fichiers de ce répertoire et les prend en compte (les fichiers dont le nom se termine
par ~ ou contenant un point ne sont pas pris en compte).
Ces fichiers ont une structure uniformisée. L’exemple suivant est un fichier de configuration
pour un serveur rsync :
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
Voici une courte explication des mots clés que vous pouvez rencontrer dans le fichier de
configuration de xinetd :
• service est le nom du service (correspondant à /etc/services).
• socket_type et protocol indiquent comment les données sont transférées entre le client
et le serveur.
• type = INTERNAL indique qu’il s’agit d’un service mis directement à disposition par
xinetd.
• server est le nom du programme (s’il ne s’agit pas d’un service interne de xinetd).
• server_args fournit des paramètres qui sont transmis au démarrage du service.
• user est le nom du compte sous lequel le programme est lancé (souvent root, mais cela
peut aussi être news, mail, etc.).
• disable = Yes / No indique si le service est actif ou bloqué (Yes pour les services bloqués).
Linux Livre Page 563 Mardi, 23. septembre 2008 1:05 13
hosts.allow et hosts.deny
Les fichiers /etc/hosts.allow et /etc/hosts.deny contrôlent quels ordinateurs ont accès à quels
services. Ces paramètres sont valides aussi bien pour les services contrôlés par xinetd que pour
divers services réseau qui utilisent la bibliothèque TCP Wrapper pour les contrôles d’accès.
Lorsqu’un client du réseau souhaite utiliser un service contrôlé par hosts.allow et
hosts.deny, le fichier hosts.allow est pris en compte en premier. Si l’accès y est explicite-
ment autorisé, le service réseau est démarré. Sinon, le fichier hosts.deny est lu : si l’accès s’y
trouve, alors il est explicitement interdit et le client reçoit un message d’erreur. Si le client ne
se trouve ni dans hosts.allow ni dans hosts.deny, l’accès est autorisé.
hosts.deny La configuration la plus sûre est d’interdire tous les accès à tous les clients à tous les services
réseau. L’instruction spawn journalise toutes les tentatives d’accès dans le fichier /var/log/
deny.log.
#/etc/hosts.deny
ALL : ALL : spawn (echo Attempt from %h %a to %d at $(date) \
>> /var/log/deny.log)
hosts.allow Dans un second temps, vous pouvez autoriser l’utilisation de certains services. La configu-
ration suivante autorise :
• des accès locaux (localhost) à tous les services ;
• un accès à SSH pour tous les ordinateurs (y compris depuis Internet) ;
• l’utilisation de NFS et FTP dans le réseau local.
Linux Livre Page 564 Mardi, 23. septembre 2008 1:05 13
564 LINUX
# /etc/hosts.allow
ALL : localhost mars mars.sol : ALLOW
sshd : ALL : ALLOW
vsftpd : 192.168.0.0/255.255.255.0 *.sol : ALLOW
portmap : 192.168.0.0/255.255.255.0 *.sol : ALLOW
mountd : 192.168.0.0/255.255.255.0 *.sol : ALLOW
Prise en charge Vous pouvez déterminer avec ldd si un programme spécifique utilise TCP Wrapper
de TCP
Wrapper (libwrap) :
utilisateur$ ldd /usr/sbin/sshd |grep wrap
libwrap.so.0 => /lib/libwrap.so.0 (0xb7ef2000)
Notez que, sous SUSE, cupsd (service d’impression) utilise TCP Wrapper, ce qui n’est géné-
ralement pas le cas pour les autres distributions. Vous devez donc penser à en autoriser
l’accès sur le réseau pour partager une imprimante.
566 LINUX
Figure 29.1
Pare-feu pour un réseau
local.
Vous pouvez également vous servir d’une distribution standard comme Ubuntu ou SUSE et
la configurer pour l’utiliser sur un pare-feu. Vous devez cependant effectuer une installation
minimale et vérifier que seuls les services et programmes vraiment nécessaires sont lancés.
Variantes Pour les très petits réseaux, un ordinateur peut faire office de pare-feu et de serveur réseau
(voir la Figure 28.1). Cela n’est pas optimal car les services qui fonctionnent sur cet ordina-
teur représentent tous un risque de sécurité éventuel. Cependant, une architecture de ce
type est toujours meilleure qu’une absence totale de pare-feu.
Dans les gros réseaux d’entreprises, il existe souvent, à l’inverse, deux pare-feu. Le premier
pare-feu n’est qu’une sécurité de base, mais laisse passer les protocoles Internet habituels
comme HTTP ou FTP. La zone réseau qui se trouve derrière ce premier pare-feu s’appelle la
DMZ pour Demilitarized Zone (zone démilitarisée) : la sécurité de cette zone n’est que limi-
tée. Elle héberge généralement le serveur web ainsi que d’autres serveurs réseau qui doivent
être accessibles publiquement (depuis Internet).
La DMZ est séparée du réseau local par un second pare-feu. Les services supplémentaires
qui ne sont accessibles qu’au réseau local se trouvent sur ce second réseau et ne sont absolu-
ment pas accessibles depuis l’extérieur. La configuration d’un pare-feu multiple dépasse
cependant le cadre de cet ouvrage ; vous trouverez plus d’informations à ce sujet dans des
ouvrages spécialisés.
Pare-feu pour En plus de la sécurisation du réseau par un pare-feu central, on peut aussi sécuriser chaque
les ordinateurs
clients d’un PC d’un réseau local individuellement. Ce procédé offre plusieurs avantages : il peut vous
réseau local protéger d’accès depuis l’intérieur du réseau, il fournit une protection supplémentaire au
cas où le pare-feu extérieur tomberait ou serait mal configuré et il protège les ordinateurs
lorsqu’ils sont utilisés à l’extérieur de l’entreprise (par exemple les ordinateurs portables).
Linux Livre Page 567 Mardi, 23. septembre 2008 1:05 13
Cependant, cela présente également des inconvénients : cela augmente la charge d’adminis-
tration et peut bloquer des services utiles à l’intérieur du réseau.
Les ordinateurs connectés au réseau local par un réseau sans-fil représentent un cas parti-
culier. D’un point de vue technique, la sécurité est optimale lorsque la connexion est établie
avec un VPN (Virtual Private Network, réseau privé virtuel). Le trafic réseau devrait (y com-
pris sur le client) être limité sur un réseau Wi-Fi non sûr à l’établissement du VPN, ce qui se
fait facilement avec un pare-feu.
Introduction
Pour configurer votre filtre de paquets, vous devez vous familiariser avec la commande
iptables. Elle est disponible depuis le noyau 2.4 et fait partie du système netfilter. man
iptables est une référence de la syntaxe de cette commande.
La Figure 29.2 résume, de manière très simplifiée, les chemins que peut prendre un
paquet IP dans un système de filtres. Vous en trouverez une description détaillée à l’adresse
http://open-source.arkoon.net/kernel/kernel_net.png.
Figure 29.2
Représentation simplifiée
du système iptables/
netfilter.
La liste suivante décrit rapidement les différentes étapes d’un paquet IP dans le noyau :
• Routage. En fonction de l’adresse IP et du port, le noyau décide si le paquet doit être
traité localement ou s’il doit être transmis à une autre interface réseau et à un autre ordi-
nateur (que ce soit sur le réseau local ou sur Internet).
Linux Livre Page 568 Mardi, 23. septembre 2008 1:05 13
568 LINUX
• Filtrage des entrées. En fonction d’un ensemble de règles, on teste si le paquet doit être
accepté et transféré aux programmes locaux (par exemple les démons réseau) ou non.
• Traitement local. Cette boîte représente tous les programmes qui traitent les paquets IP
sur l’ordinateur local ou qui créent des paquets IP (c’est-à-dire les services réseau,
comme ftpd, httpd, etc.).
• Filtrage des sorties. En fonction d’un ensemble de règles, on teste si le paquet peut quitter
le noyau.
• Filtrage des transferts. Ce filtre décide quels paquets, parmi ceux qui doivent être transférés
(mais non traités), peuvent effectivement passer par le noyau.
• Postroutage NAT. Si l’ordinateur local fournit un accès à Internet à d’autres ordinateurs
par le biais d’une mascarade, cette étape effectue les manipulations nécessaires sur les
paquets IP.
À la Figure 29.2, vous pouvez voir que seules les boîtes Filtrage des entrées, Filtrage des sor-
ties, Filtrage des transferts et éventuellement Postroutage NAT sont associées à un filtre de
paquets. Toutes les autres parties du schéma décrivent des fonctions réseau du noyau qui
sont gérées par le noyau ou par des services réseau courants fonctionnant sur le système
local et n’ayant pas de rapport avec le filtre de paquets.
Dans de nombreuses illustrations de pare-feu, vous pouvez voir à gauche Internet (dangereux), puis le
pare-feu, puis le réseau local (plus sûr). La Figure 29.2 ne fait pas cette distinction. Les paquets qui arrivent
à l’ordinateur proviennent aussi bien du réseau local que d’Internet. Cela s’applique également aux paquets
qui quittent le pare-feu à droite.
Le noyau s’occupe de transférer les paquets, qu’ils proviennent d’une interface réseau ou
d’un programme local. Trois comportements sont alors possibles :
• Deny (refusé). Le paquet est refusé sans information supplémentaire. Le paquet est
perdu, il n’existe plus. L’expéditeur ne sait pas ce qui lui est arrivé.
• Reject (rejeté). Le paquet est refusé avec un message de retour. En ce qui concerne le
paquet, le résultat est le même, mais l’expéditeur sait, grâce à un autre paquet ICMP,
que son paquet a été refusé.
• Accept (accepté). Le paquet est transmis.
Vous trouverez plus d’informations sur le fonctionnement et l’utilisation de iptables aux
adresses suivantes :
• http://www.unixgarden.com/index.php/administration-systeme/netfilter-firewalling-
sous-linux ; http://www.unixgarden.com/index.php/securite/mise-en-oeuvre-d’une-
passerelle-Internet-sous-linux ; http://www.netfilter.org/ ; http://people.netfilter.org/
rusty/unreliable-guides/.
Les chaînes sont indépendantes les unes des autres ! Il existe donc deux chaînes prerouting et trois chaînes
output différentes.
Il arrive cependant que les documentations parlent de chaîne output sans indiquer de laquelle il s’agit.
Dans ce cas, il s’agit de la chaîne de la table filter, qui est de loin la plus importante.
La même convention est utilisée par la commande iptables. On peut y indiquer la table souhaitée avec
l’option -t. Si cette option n’est pas indiquée, la commande s’applique à la table filter.
Lorsqu’un paquet rencontre une chaîne de règles, le noyau vérifie toutes les règles.
Lorsqu’une règle s’applique au paquet, l’action prévue est exécutée (par exemple transmettre,
supprimer ou renvoyer le paquet). Lorsque aucune règle ne correspond, le comportement
par défaut du filtre s’applique (ce comportement dépend de la configuration).
De base, dans le noyau, seules la table filter et ses trois chaînes input, forward et output sont
actives. Ces chaînes ne contiennent aucune règle et leur comportement par défaut est de
transmettre les paquets.
Tout l’art de la mise en place d’un filtre de paquets est donc de définir le comportement par
défaut et le jeu de règles des chaînes de filtres. C’est à cela que sert la commande iptables.
570 LINUX
L’ordre des commandes iptables est important car la première règle rencontrée termine le traitement.
Lorsque vous énoncez des règles de pare-feu, il existe deux stratégies : vous pouvez autoriser certains
paquets individuels et bloquer tous les autres paquets ou vous pouvez autoriser tous les paquets et n’inter-
dire que certains paquets particulièrement dangereux. Cette seconde possibilité correspond au comporte-
ment par défaut de iptables, qui consiste à tout accepter tant qu’aucune règle ne l’interdit
explicitement.
Un des problèmes rencontrés par les scripts de pare-feu est qu’ils sont parfois lancés par
d’autres scripts dans lesquels la variable PATH n’est pas définie ou ne l’est que partiellement.
Exécuter directement iptables peut alors échouer car la commande n’est pas trouvée.
Cependant, les distributions ne sont pas cohérentes entre elles sur l’emplacement de la com-
mande. La première étape d’un tel script est donc généralement de chercher la commande
iptables, que nous enregistrons dans la variable IPT.
Le script suivant sert à remettre à zéro iptables : il supprime toutes les règles de filtrage
définies préalablement. Puis, tout le trafic IP est autorisé (ce script n’offre donc absolument
aucune protection).
Vous devez lancer ce type de script avant d’essayer de mettre en place vos propres règles.
Sinon, les règles définies dans les essais précédents peuvent rester actives et interférer avec
ce que vous essayez de faire.
#!/bin/sh
# /etc/maconfig/iptables-reset
IPT=$(which iptables)
if [ -z $IPT ]; then
[ -x /sbin/iptables ] && IPT=/sbin/iptables
[ -x /usr/sbin/iptables ] && IPT=/usr/sbin/iptables
fi
[ -z $IPT ] && (echo "Impossible de trouver iptables !"; exit)
# par défaut on accepte tout
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P POSTROUTING ACCEPT -t nat
$IPT -P PREROUTING ACCEPT -t nat
$IPT -P OUTPUT ACCEPT -t nat
# supprime toutes les règles
$IPT -F
$IPT -F -t nat
# supprime toutes les règles définies par les utilisateurs
$IPT -X
# supprime le transfert IP (pas de mascarade)
echo 0 > /proc/sys/net/ipv4/ip_forward
à votre environnement. Si votre connexion à Internet est assurée par un modem (ADSL) ou
par RNIS, INET doit prendre la valeur ppp0 ou ippp0. Si l’interface varie lors de la connexion
à Internet, vous pouvez aussi utiliser l’écriture ppp+ ou ippp+. La commande iptables prend
alors en compte toutes les interfaces de ce type.
Repousser les Le filtre se compose d’une simple chaîne de règles wall. Elle protège de manière élégante et
tentatives de
connexions efficace des nouvelles connexions depuis l’extérieur. La première règle de wall indique que
externes tous les paquets appartenant à une connexion déjà établie sont acceptés.
La deuxième règle accepte les paquets qui initient une nouvelle connexion dès lors qu’ils ne
sont pas initiés à partir de l’interface Internet. Il est donc possible de démarrer une session
SSH depuis le réseau local.
La troisième règle est que tous les paquets qui ne correspondent pas aux règles précédentes
sont refusés. Cette règle concerne donc l’interdiction de tout ce qui n’est pas explicitement
autorisé. Par exemple, un pirate potentiel n’arrivera donc pas à démarrer une session SSH
(cela est également valable pour tous les autres services réseau : HTTP, FTP, telnet, etc.).
Les deux dernières commandes indiquent que les règles de wall s’appliquent à tous les
paquets qui passent par les chaînes input ou forward.
#!/bin/sh
# /etc/maconfig/iptables-firewall
# Mini-Firewall pour un accès ADSL via ppp
# remise à zéro
/etc/maconfig/iptables-reset
# paramétrage
IPT=... #à définir comme dans le script iptables-reset
INET=eth1
# cette nouvelle chaîne bloque toutes les tentatives de connexion
# provenant de l’extérieur (Internet)
$IPT -N wall
$IPT -A wall -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A wall -m state --state NEW -i ! $INET -j ACCEPT
$IPT -A wall -j DROP
# utiliser la chaîne pour INPUT et FORWARD
$IPT -A INPUT -j wall
$IPT -A FORWARD -j wall
572 LINUX
Vous ne devez pas non plus placer une confiance démesurée dans ce pare-feu. Si un pirate
craque le chiffrage de votre réseau sans-fil, il peut lire le trafic réseau non chiffré, par exem-
ple les mots de passe d’un formulaire web. Le pare-feu n’a aucune influence sur cela. Il
empêche qu’un pirate ne se connecte à votre ordinateur mais ne fournit aucune protection
contre l’écoute du trafic.
Il est donc conseillé de fournir l’accès à Internet et à tous les autres services réseau par-des-
sus un VPN. Cela est particulièrement vrai si l’accès sans-fil ne sert pas qu’à l’accès à Internet,
mais aussi au réseau local d’une entreprise.
Accepter les PPTP utilise le protocole TCP sur le port 1 723 ainsi que le protocole GRE (Generic Encapsu-
paquets PPTP
lation, encapsulation générique), pris en compte par l’option -p 47 de iptables. Pour que
PPTP fonctionne en tant que client, les paquets TCP en entrée et en sortie du port 1 723 doi-
vent être acceptés :
# extension de /etc/maconfig/iptables-firewall
# accepter les paquets sur le port 1723 (contrôle PPTP)
# accepter le protocole GRE (numéro 47, données PPTP)
$IPT -A INPUT -i $WLAN -p tcp --sport 1723 -j ACCEPT
$IPT -A OUTPUT -o $WLAN -p tcp --dport 1723 -j ACCEPT
$IPT -A INPUT -i $WLAN -p 47 -j ACCEPT
$IPT -A OUTPUT -o $WLAN -p 47 -j ACCEPT
Bloquer tous Les règles suivantes bloquent l’interface pour tous les paquets des protocoles UDP et TCP :
les autres
paquets
Linux Livre Page 573 Mardi, 23. septembre 2008 1:05 13
# extension de /etc/maconfig/iptables-firewall
# bloquer tout le reste
$IPT -A INPUT -i $WLAN -p tcp -j DROP
$IPT -A OUTPUT -o $WLAN -p tcp -j DROP
$IPT -A INPUT -i $WLAN -p udp -j DROP
$IPT -A OUTPUT -o $WLAN -p udp -j DROP
Règles pour L’interface Wi-Fi est suffisamment protégée. Tout le trafic passe à présent sur le VPN via
l’interface PPP
l’interface PPP. La sécurisation de cette interface dépend de la sécurité du réseau local. Pour
un petit réseau dont le serveur réseau est lui-même protégé par un pare-feu, vous pouvez
vous contenter des règles ci-dessus. Si vous souhaitez plus de sécurité, vous pouvez protéger
l’interface PPP par la chaîne wall décrite ci-dessus.
# /etc/maconfig/iptables-firewall
# Mini-Firewall pour sécuriser une passerelle Internet
# remise à zéro
/etc/maconfig/iptables-reset
# paramétrage
IPT=... # à définir comme dans le script iptables-reset
MODPROBE=... # contient le chemin vers modprobe ; déterminé comme le
# chemin d’iptables
INET=eth0
LAN=eth2
Fournir des Le but du pare-feu est de bloquer les accès provenant de l’extérieur. Les règles correspon-
services
individuels dantes sont indiquées ci-après. Cependant, si votre serveur doit mettre à disposition des ser-
publiquement vices réseau sur Internet en plus du réseau local (par exemple un serveur web ou SSH), vous
devez créer des règles d’exceptions. Comme toutes les tentatives de connexion sont interdi-
tes par la chaîne wall, vous devez les définir avant cette chaîne ! Il suffit de définir des règles
INPUT. Les règles OUTPUT ne sont pas nécessaires car la chaîne wall laisse passer les
paquets des connexions actives.
MYIP content l’adresse IP avec laquelle votre ordinateur est accessible sur Internet. Seuls les
paquets qui y sont adressés et qui en viennent sont acceptés. Si votre adresse IP est dynami-
que (ce qui est le cas pour de nombreuses connexions par modem, RNIS ou ADSL), vous
pouvez omettre les options -d et -s. Dans ce cas, l’établissement d’une connexion HTTP ou
SSH depuis l’extérieur est de toute façon plus difficile car votre adresse IP change à chaque
reconnexion.
Linux Livre Page 574 Mardi, 23. septembre 2008 1:05 13
574 LINUX
# extension de /etc/maconfig/iptables-firewall
# Permettre l’accès au serveur HTTP (port 80) depuis l’extérieur
MYIP=123.124.125.126
$IPT -A INPUT -i $INET -p tcp -d $MYIP --dport 80 -j ACCEPT
# Permettre l’accès au serveur SSH (port 22) depuis l’extérieur
$IPT -A INPUT -i $INET -p tcp -d $MYIP --dport 22 -j ACCEPT
Si votre passerelle Internet n’est pas directement connectée par un modem, mais par un routeur ADSL, les
règles ci-dessus ne s’appliquent pas. Depuis Internet, il n’est pas possible de s’adresser directement à votre pas-
serelle. Les paquets qui arrivent depuis l’extérieur sont adressés au routeur ADSL qui transmet les données aux
clients par NAT. Ces clients regroupent aussi votre passerelle Linux.
Du point de vue de la sécurité, cette variante de configuration est également un avantage. Le routeur
ADSL est un premier pare-feu et laisse passer uniquement les paquets qui résultent d’une connexion établie
depuis l’intérieur. L’inconvénient évident est que votre passerelle n’est pas accessible depuis Internet, même
dans les cas où vous aimeriez fournir des services comme un serveur SSH ou web.
Bloquer Les lignes suivantes bloquent tout accès à divers ports dangereux par le biais de l’interface à
complètement
les ports Internet. Dans la boucle for, quatre commandes iptables sont lancées pour chaque numéro
dangereux de port. La première règle bloque le trafic entrant TCP sur le port. La deuxième règle bloque
le trafic sortant TCP. Les troisième et quatrième règles fonctionnent de manière comparable
pour le protocole UDP.
# extension de /etc/maconfig/iptables-firewall
# bloquer complètement quelques ports
# 23 (telnet)
# 69 (tftp)
# 135 (Microsoft DCOM RPC)
# 139 (NetBIOS/Samba/etc.)
# 445 (système de fichiers CIFS pour Samba/SMB)
# 631 (ipp/CUPS)
# 1433 (Microsoft SQL Server)
# 2049 (NFS)
# 3306 (MySQL)
# 4444 (W32.Blaster Virus)
# 5999-6003 (X-Displays)
# 7100 (X-Font-Server)
# 7741 (lisa, RLAN)
for PORT in 23 69 135 139 445 631 1433 2049 3306 \
4444 5999 6000 6001 6002 6003 7100 7741; do
$IPT -A INPUT -i $INET -p tcp --dport $PORT -j DROP
$IPT -A OUTPUT -o $INET -p tcp --dport $PORT -j DROP
$IPT -A INPUT -i $INET -p udp --dport $PORT -j DROP
$IPT -A OUTPUT -o $INET -p udp --dport $PORT -j DROP
done
Interdire l’éta- Une fois les règles ci-dessus définies, vous devez ajouter les règles définissant wall au script
blissement
de connexion de pare-feu. Attention, celles-ci ne protègent pas la passerelle contre un accès provenant du
depuis réseau local.
l’extérieur
Mascarade Comme l’ordinateur sert de passerelle Internet, il faut activer la mascarade. Les trois com-
mandes modprobe ci-après s’assurent que FTP fonctionne malgré la mascarade :
Linux Livre Page 575 Mardi, 23. septembre 2008 1:05 13
# extension de /etc/maconfig/iptables-firewall
# Masquerading
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_nat_ftp
$IPT -t nat -A POSTROUTING -o $INET -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Serveur Si votre ordinateur fait office de serveur mandataire-cache transparent (voir la section 29.6),
mandataire-
cache il faut ajouter une règle supplémentaire :
# extension de /etc/maconfig/iptables-firewall
# serveur mandataire/cache transparent
$IPT -t nat -A PREROUTING -i $INET -p tcp --dport 80 -j REDIRECT --to-port 3128
Sécuriser les Si votre serveur est connecté à un point d’accès sans-fil pour fournir ses services aux clients
interfaces
Wi-Fi sans-fil, il faut également protéger cette interface. Vous pouvez utiliser les mêmes règles que
pour l’interface Internet, ce qui fournit une protection acceptable. Cependant, le pare-feu ne
bloque pas seulement les intrus mais aussi tous les clients légitimes.
La seule solution sensée est de permettre aux clients Wi-Fi de se connecter uniquement par
le biais d’un VPN. Pour cela, vous devez installer un serveur VPN sur votre serveur (ce dont
nous ne traiterons pas dans cet ouvrage). Vous pouvez ainsi bloquer tout le trafic Wi-Fi à
l’exception des paquets VPN et DHCP.
Journalisation
iptables permet de journaliser l’efficacité de règles indépendantes. Pour cela, donnez à la
règle l’action LOG. Pour qu’une règle soit active et journalisée, vous devez donc donner deux
options -j : -j LOG et -j ACCEPT ou -j DROP.
La journalisation est gérée par syslogd dans les fichiers usuels (/var/log/messages et /var/
log/warn). Par défaut, peu d’informations sont journalisées. Vous pouvez activer des messa-
ges supplémentaires avec diverses options -log-xxx (voir man iptables). Les lignes suivan-
tes montrent comment les règles de blocage des ports importants sont étendues pour ajouter
de la journalisation :
# Modification de /etc/maconfig/iptables-firewall
for PORT in 23 137 138 139 631 1433 2049 3306 5999 6000 6001 6002 6003 7100
7741; do
$IPT -A INPUT -i $INET -p tcp --dport $PORT -j LOG \
--log-prefix "myfirewall:" --log-level warning
$IPT -A OUTPUT -o $INET -p tcp --dport $PORT -j LOG \
--log-prefix "myfirewall:" --log-level warning
$IPT -A INPUT -i $INET -p tcp --dport $PORT -j DROP
$IPT -A OUTPUT -o $INET -p tcp --dport $PORT -j DROP
done
Attention, les fichiers de journalisation peuvent vite devenir énormes. Ne journalisez que ce
qui est nécessaire !
Linux Livre Page 576 Mardi, 23. septembre 2008 1:05 13
576 LINUX
De cette manière, vous pouvez lancer le script iptables-firewall lorsque la connexion PPP
ADSL est lancée. Le script du pare-feu prend comme argument le nom de l’interface.
ip-down.local De la même manière, créez ou étendez le fichier /etc/ppp/ip-down.local :
#! /bin/sh
# démarrage du pare-feu
if [ "$6" = "adsl" ]; then
/etc/maconfig/iptables-firewall
fi
iptables- Le script du pare-feu doit être modifié pour prendre en compte l’interface réseau indiquée
firewall
en paramètre. La variable INET est maintenant définie de manière dynamique.
#!/bin/sh
# pare-feu
# remise à zéro
/etc/maconfig/iptables-reset
# déterminer l’emplacement de iptables et modprobe
IPT=...
MODPROBE=...
Linux Livre Page 577 Mardi, 23. septembre 2008 1:05 13
Lorsque tout fonctionne, chaque fois qu’une interface PPP est connectée à Internet, le pare-
feu est configuré spécifiquement pour l’interface PPP en question. Lorsque la connexion à
Internet est coupée, le pare-feu est redémarré, mais les commandes iptables spécifiques à
Internet sont omises.
Configuration et démarrage
Configuration Le comportement de squid est défini par /etc/squid/squid.conf. Le fichier de configura-
minimale
tion fourni avec squid est documenté de manière exhaustive et il est donc affreusement long
Linux Livre Page 578 Mardi, 23. septembre 2008 1:05 13
578 LINUX
(4 500 lignes). Créez une copie de ce fichier afin de constituer une documentation et supprimez-
en tous les commentaires :
root# cd /etc/squid
root# mv squid.conf squid.conf.orig
root# grep -v ’^#’ squid.conf.orig | cat -s > squid.conf
Si votre fournisseur d’accès fournit son propre cache et si vous voulez ou devez l’utiliser,
indiquez son adresse IP et son port avec le mot clé cache_peer (comme dans l’exemple sui-
vant). Si vous ne connaissez pas le port ICP, essayez 0 ou 7. Si cela ne fonctionne pas, ajoutez
l’option supplémentaire default ou no-query.
# serveur mandataire-cache suivant (par exemple celui de votre FAI)
# cache_peer <hostname> <type> <proxy-port> <icp-port> <options>
cache_peer www-proxy.provider.de parent 8080 7 default
Si vous souhaitez que les pages web d’un serveur local ne soient pas mises en cache, utilisez
le mot clé no_cache :
# accès direct au serveur web local mars.sol
acl mars dstdomain .mars .mars.sol
no_cache deny mars
Il existe au moins une centaine d’options supplémentaires avec lesquelles vous pouvez contrôler le compor-
tement de Squid, par exemple pour éviter de mettre en cache certaines pages, pour contrôler la journali-
sation, etc. Pour plus d’informations, reportez-vous au fichier original squid.conf ou à la documentation
sur www.squid-cache.org.
Linux Livre Page 580 Mardi, 23. septembre 2008 1:05 13
580 LINUX
Démarrage/ Squid est un démon qui doit éventuellement être démarré explicitement. La commande cor-
arrêt
respondante varie selon la distribution. Si Squid est déjà démarré, vous pouvez lui faire
relire son fichier de configuration avec reload :
root# /etc/init.d/squid reload
Premier test Squid crée alors divers répertoires de cache dans /var/cache/squid ou dans /var/spool/
squid. Pour tester si un programme fonctionne, démarrez un navigateur sur l’ordinateur
local et modifiez la configuration du serveur mandataire. Indiquez-y le nom de l’ordina-
teur (ici, mars.sol) et le numéro de port 3 128. Sous Firefox, cela se fait en passant par le
menu Édition > Préférences > Avancé > Réseau > Paramètres. Sous Konqueror, il faut aller
dans Configuration > Configurer Konqueror > Serveur mandataire > Spécifier manuellement
la configuration du serveur mandataire (proxy).
Chargez alors une page avec le navigateur web. Le fichier /var/log/squid/access.log contient
normalement tous les fichiers enregistrés.
Pour que les utilisateurs de votre réseau local puissent utiliser le cache, ils doivent également
passer par ces opérations pour le configurer dans leurs navigateurs web.
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Lorsque tout fonctionne, tous les clients du réseau local passent automatiquement par squid
pour consulter des pages web. Vérifiez que tout fonctionne en consultant /var/log/squid/
access.log après avoir accédé au Web depuis un ordinateur client.
Pour finir, ajoutez la commande iptables dans un script InitV lancé automatiquement au
démarrage de l’ordinateur. Sur mon serveur, la commande fait partie des scripts de pare-
feu.
En principe cette configuration fonctionne uniquement pour les clients du réseau local, mais pas pour
l’ordinateur sur lequel le serveur mandataire est installé. En d’autres termes, la protection automatique n’est
pas valable pour l’ordinateur local, mais elle est valable pour tous les autres ordinateurs du réseau. Si vous
souhaitez utiliser le serveur mandataire pour l’ordinateur local, vous devez modifier le paramétrage corres-
pondant dans le navigateur web.
Exceptions Il existe quelques sites web qui ne peuvent pas être utilisés à travers un serveur manda-
taire. Lorsque le serveur mandataire n’est pas transparent, un utilisateur peut le contour-
ner facilement (en le désactivant ou en définissant des exceptions). Pour un proxy
transparent, l’utilisateur n’a pas le choix. Squid ne permet pas non plus de transférer des
pages web précises sans modification. Lorsque Squid reçoit l’ordre de récupérer une page web,
il est déjà trop tard.
Pour pouvoir utiliser des pages problématiques malgré le cache transparent, vous devez
modifier les règles iptables afin d’éviter que les requêtes vers ces pages n’atteignent Squid.
Le plus simple pour cela est de modifier le script iptables avec quelques lignes de script.
#!/bin/sh
# Extension du script de pare-feu
#
# transférer directement les adresses suivantes (pas de serveur
# mandataire)
for ADDRESS in adresse1.com adresse2.fr adresse3.ca; do
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -d $ADDRESS -j
ACCEPT
done
# transférer toutes les autres adresses (serveur mandataire transparent)
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 \
-j REDIRECT --to-port 3128
Linux Livre Page 582 Mardi, 23. septembre 2008 1:05 13
582 LINUX
Tous les ouvrages iptables déconseillent l’utilisation de règles de pare-feu dépendant d’une résolution
DNS. Si celle-ci ne fonctionne pas, un message d’erreur est renvoyé. Dans ce cas concret, je n’ai cependant
pas trouvé d’autre solution. J’insiste sur le fait que cette méthode n’est qu’une solution d’urgence. Si le script
est lancé par InitV, la connexion à Internet et la configuration du serveur de noms doivent fonctionner.
Vous trouverez plus d’informations sur la configuration d’un serveur mandataire-cache dans le Petit guide
de mise en place d’un mandataire transparent avec Linux et Squid à l’adresse
http://www.traduc.org/docs/HOWTO/vf/TransparentProxy.html.
Les mots clés définis ci-dessus peuvent alors être utilisés dans des commandes
http_access-allow et -deny. Pour finir, une règle deny-all indique que les accès qui ne se
trouvent pas dans les cas indiqués sont interdits.
# localhost a toujours le droit d’accéder au web
http_access allow localhost
# mars a toujours le droit d’accéder au web
http_access allow admin
# Les ordinateurs de mynet peuvent accéder au web le
# samedi, le dimanche et de 18h00 à 7h00
http_access allow mynet time1
http_access allow mynet time2
http_access allow mynet time3
# dans tous les autres cas, l’accès au web est interdit
http_access deny all
La fonction de base du programme est d’analyser les pages web à la recherche de mots clés
pornographiques et de bloquer la page en fonction du résultat de la recherche. Le méca-
nisme est suffisamment intelligent pour ne pas filtrer toutes les pages contenant les mots
"sexe" ou "seins". Comme DansGuardian prend en compte le contenu des pages, il est indé-
pendant de la plupart des listes noires de sites web.
Installation DansGuardian peut être installé comme paquetage dans la plupart des distributions.
Comme il bloque également le téléchargement des virus les plus connus, il est installé avec
le filtre ClamAV.
DansGuardian est un démon, démarré et arrêté avec les commandes habituelles. Par défaut,
il attend des requêtes sur le port 8 080. Il contacte ensuite Squid (sur le port 3 128) et analyse
la page web. Si la page ne pose pas de problème, elle est retransmise via le port 8 080 au
navigateur web. La variante de configuration que nous proposons ici est plus élégante :
DansGuardian traite toutes les requêtes web sur le port 80 afin qu’aucune configuration ne
soit nécessaire du côté client.
dansguardian. Le fichier de configuration principal de DansGuardian est /etc/dansguardian/dansguar-
conf
dian.conf. Vous pouvez généralement laisser ce fichier tel qu’il est. Selon la distribution, le
fichier peut contenir la ligne UNCONFIGURED, que vous devez désactiver avec un caractère de
commentaires. Si vous souhaitez que les messages d’erreur soient affichés en français, utili-
sez le paramètre language=’french’. Si votre réseau ne contient que des ordinateurs sous
Linux, vous pouvez désactiver le scanner de virus avec virusscan=off.
Pour intégrer DansGuardian et Squid, il faut indiquer l’adresse et le port de ce dernier :
# /etc/dansguardian/dansguardian.conf (extraits)
reportinglevel = 3
languagedir = ’/etc/dansguardian/languages’
language = ’french’
loglevel = 1
logexceptionhits = on
logfileformat = 1
filterport = 8080
proxyip = 127.0.0.1
proxyport = 3128
...
584 LINUX
exceptionphraselist = ’/etc/dansguardian/exceptionphraselist’
bannedsitelist = ’/etc/dansguardian/bannedsitelist’
greysitelist = ’/etc/dansguardian/greysitelist’
exceptionsitelist = ’/etc/dansguardian/exceptionsitelist’
bannedurllist = ’/etc/dansguardian/bannedurllist’
greyurllist = ’/etc/dansguardian/greyurllist’
exceptionurllist = ’/etc/dansguardian/exceptionurllist’
bannedregexpurllist = ’/etc/dansguardian/bannedregexpurllist’
bannedextensionlist = ’/etc/dansguardian/bannedextensionlist’
bannedmimetypelist = ’/etc/dansguardian/bannedmimetypelist’
picsfile = ’/etc/dansguardian/pics’
contentregexplist = ’/etc/dansguardian/contentregexplist’
# Naughtyness limit
# As a guide:
# 50 is for young children, 100 for old children, 160 for young adults.
naughtynesslimit = 50
...
Ne vous faites pas d’illusion sur l’efficacité de DansGuardian. Même un paramètre naughtynesslimit=50
(adapté aux jeunes enfants) n’offre pas une protection complète envers les pages web pornographiques ; il
ne présente aucune protection envers les images pornographiques.
La configuration par défaut prend essentiellement en compte des mots clés en anglais. Pour la plupart des
sites pornographiques, cela peut suffire. Toutefois, si vous souhaitez également filtrer des pages de sites
d’extrême droite ou de sites incitant à la violence, vous devrez mettre la main à la pâte. Jetez un œil au
fichier de configuration /etc/dansguardian/weightedphraselist et aux fichiers qui y sont définis.
Indépendamment de cela, il n’est pas très difficile de contourner le filtre par du texte créé dynamiquement
(JavaScript, Flash), par du texte affiché dans des images ou par des fichiers externes (PDF par exemple). Le
filtre ne s’applique qu’aux pages web et ne concerne pas les autres services Internet (courrier électronique,
Usenet, discussion en ligne, etc.). DansGuardian fournit une protection, mais ne peut pas remplacer l’édu-
cation et les explications.
Règles En pratique il est souvent difficile de discriminer les pages uniquement sur des mots clés. Le
supplémen-
taires et tableau suivant décrit quelques fichiers du répertoire /etc/dansguardian dans lesquels vous
exceptions pouvez indiquer des sites web à laisser passer ou à filtrer.
DansGuardian n’est pas la seule extension de Squid qui vise au contrôle parental. Une alternative intéres-
sante est SquidGuard qui est un greffon de Squid fournissant diverses fonctions supplémentaires et dont la
configuration via Squid est plus simple : http://www.squidguard.org/.
Linux Livre Page 586 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 587 Mardi, 23. septembre 2008 1:05 13
Lorsqu’une imprimante est momentanément indisponible (par exemple, parce qu’elle est éteinte), elle
est mise en pause par CUPS. Ce dernier enregistre donc que l’imprimante ne peut pas être utilisée.
Cependant, lorsque celle-ci est rallumée ou reconnectée, CUPS ne s’aperçoit pas nécessairement qu’elle
est à nouveau disponible. Il faut alors la réactiver explicitement. Toutes les interfaces utilisateur
de CUPS le permettent, ainsi que les commandes cupsenable nomimprimante et lpadmin -E -p nom-
imprimante .
Linux Livre Page 588 Mardi, 23. septembre 2008 1:05 13
588 LINUX
Processus d’impression
PostScript La philosophie d’impression sous Unix/Linux repose sur les imprimantes PostScript. PostS-
cript est un langage de programmation pour décrire le contenu des pages. Ce type d’impri-
mantes attend des données d’impression dans ce format. La plupart des programmes dotés
d’une fonction d’impression envoient des données PostScript au système d’impression.
L’avantage de PostScript sur les autres formats est que la description utilise un format vec-
toriel et qu’il fonctionne donc dans n’importe quelle résolution. L’impression d’un fichier
PostScript est d’autant plus précise que l’imprimante est de bonne qualité (résolution éle-
vée). C’est pourquoi PostScript joue un rôle dominant non seulement sous Unix, mais aussi
dans toute l’industrie de l’impression.
Sous Linux, il existe de nombreux programmes qui permettent de lire un document PostScript. Leur ancêtre
est ghostview. Son interface n’est cependant pas très moderne. Les alternatives populaires sont Evince (qui
fait partie du bureau Gnome), Okular, KPDF et kghostview (trois applications KDE), ainsi que gv et ggv.
Vous pouvez aussi utiliser n’importe quel outil de visualisation de PDF, après avoir converti le fichier au format
PDF avec ps2pdf.
Périphériques Il est extrêmement simple d’imprimer si votre imprimante comprend le PostScript. Il suffit
d’impression
pour cela d’envoyer le fichier PostScript avec cp en tant que root sur le périphérique de
l’interface à laquelle l’imprimante est connectée.
root# cp fichier.ps /dev/lp0
root# cp fichier.ps /dev/ttyS0
root# cp fichier.ps /dev/lp0
Ces trois lignes correspondent respectivement à l’impression sur le port parallèle, sur le port
série et sur un port USB.
Système Tous les utilisateurs en dehors de root devraient cependant pouvoir imprimer, qu’ils tra-
d’impression
vaillent en local sur l’ordinateur ou sur une autre machine du réseau. Par ailleurs, aucun
d’eux ne veut se battre avec les noms de périphériques, d’autant qu’ils n’y ont probablement
pas accès. C’est pourquoi un système d’impression a été développé. Il a plusieurs tâches :
• fournir des commandes simples d’impression qui permettent d’accéder à des noms
d’imprimantes plutôt qu’à des noms de périphériques ;
• permettre à tous les utilisateurs, y compris ceux du réseau, d’imprimer ;
• permettre d’ajouter et de gérer plusieurs imprimantes sur un ordinateur ;
• fournir un mécanisme de file d’attente lorsque plusieurs tâches sont lancées en même
temps, de manière à attendre que l’imprimante soit libre ;
• effectuer quelques tâches annexes, comme des statistiques sur le système d’impression.
Le système d’impression le plus simple et le plus moderne est, à l’heure actuelle, CUPS. Ses
alternatives classiques, BSD-LPD et LPRng, ne seront pas traitées dans cet ouvrage.
Quel que soit le système d’impression utilisé sur votre ordinateur, la commande d’impression
est toujours la même :
utilisateur$ lpr -Pnom fichier
Linux Livre Page 589 Mardi, 23. septembre 2008 1:05 13
nom est le nom de l’imprimante (ou plus exactement, celui de la file d’attente de l’impression).
Si vous omettez l’option -P, le document est imprimé sur l’imprimante par défaut.
Filtre Nous avons jusqu’ici décrit la mise en œuvre d’une imprimante PostScript. En pratique, les
d’impression
(GhostScript) imprimantes qui ne comprennent pas ce langage sont les plus nombreuses. Pour pouvoir les
faire fonctionner sous Linux, il faut convertir les données PostScript au format de l’impri-
mante. Le programme GhostScript se charge de cette conversion.
gs est appelé par un filtre. Il s’agit d’un script qui traite les données d’entrée et renvoie les
données de sortie. Le filtre pour le processus d’impression doit en particulier envoyer les
bons paramètres à gs : modèle de l’imprimante, résolution et taille de page souhaitées, etc. Il
transforme les données PostScript en fichiers bitmap, page par page, et les renvoie à l’impri-
mante, sans oublier d’ajouter aux données les commandes spécifiques à ladite imprimante.
GhostScript accède également à des pilotes d’imprimantes externes. Le projet le plus impor-
tant de pilotes pour Linux est Gutenprint (autrefois connu sous le nom de Gimp-Print), que
vous trouverez à l’adresse http://gutenprint.sourceforge.net/.
Filtres de Jusqu’ici, PostScript est le seul format des fichiers à imprimer. Il est cependant courant de
documents
devoir imprimer un seul fichier texte ou image. On peut bien sûr le charger dans un éditeur,
qui l’imprime alors au format PostScript. On peut aussi le convertir avec un programme ou
un convertisseur graphique au format PostScript.
Il est cependant plus confortable de ne lancer que lpr fichier. Pour que cela fonctionne, le
système d’impression tente de reconnaître le type de fichiers à imprimer. Lorsque cela fonc-
tionne et qu’il ne s’agit pas encore d’un fichier PostScript, le fichier est transformé au format
PostScript avec le programme approprié. Le convertisseur est cependant appelé par un
script de filtre.
Résumé de Vous avez configuré une imprimante jet d’encre non PostScript sur votre ordinateur. Elle
la chaîne
s’appelle pluton. Vous aimeriez maintenant imprimer le fichier monimage.png. Lancez par
conséquent la commande suivante :
utilisateur$ lpr -Ppluton monimage.png
590 LINUX
Attention, une modification de cupsd.conf n’est valide qu’une fois CUPS redémarré. Le nom du script InitV
correspondant diffère selon la distribution (cups, cupsd, cupsys, etc.).
root# /etc/init.d/cups* restart
Si vous utilisez CUPS sous SUSE, vous devez vous abstenir d’utiliser des tabulations ; YaST peut, dans le cas
contraire, détruire votre configuration !
Paramètres cupsd.conf commence par quelques paramètres essentiels, qui ressemblent par exemple à
essentiels
ceux-ci :
# Paramètres essentiels de /etc/cups/cupsd.conf
# Journalise les erreurs et les avertissements
LogLevel warning
# Les membres du groupe lpadmin sont administrateurs de CUPS (@SYSTEM)
SystemGroup lpadmin
# Administration web uniquement pour les utilisateurs locaux
Listen localhost:631
Listen /var/run/cups/cups.sock
#Permettre l’accès réseau à l’imprimante sur le réseau local
Browsing On
BrowseOrder allow,deny
BrowseAllow @LOCAL
BrowseAddress @LOCAL
#Authentification par nom d’utilisateur et mot de passe lorsqu’une
#telle authentification est nécessaire
DefaultAuthType Basic
Contrôle L’accès à plusieurs composants de CUPS est contrôlé par diverses sections <Location xxx>,
d’accès
ainsi que par des règles <Policy> :
• <Location /> est la configuration de base pour tous les composants.
• <Location /admin> gère les droits d’administration sur l’interface web.
• <Location /admin/conf> gère les droits de configuration sur l’interface web.
• <Policy default> définit les règles pour les opérations de base.
L’exemple de configuration suivant définit un droit d’accès à toutes les fonctions de CUPS
uniquement pour l’ordinateur local. Order allow,deny interdit par défaut tout accès et définit
les règles en lisant d’abord les lignes Allow, puis les lignes Deny.
L’administration web sur localhost:631 n’est également accessible que pour localhost. Les
modifications de la configuration nécessitent l’authentification d’un administrateur système
(root ou un utilisateur membre du groupe défini par le mot clé SystemGroup).
Le bloc Policy contient des règles sur les opérations accessibles aux différents utilisateurs
(par exemple, pour arrêter une tâche d’impression déjà lancée).
Linux Livre Page 591 Mardi, 23. septembre 2008 1:05 13
592 LINUX
TCP-Wrapper L’accès à CUPS est normalement enregistré dans /etc/cups/cupsd.conf. Il arrive cependant
que CUPS soit compilé avec la bibliothèque TCP-Wrapper (comme sous SUSE). Vous pouvez
vérifier cela avec ldd :
user$ ldd /usr/sbin/cupsd
...
libwrap.so.0 => /lib64/libwrap.so.0
Dans ce cas, CUPS ne fonctionne que lorsqu’il n’est pas interdit dans /etc/hosts.deny ou
autorisé explicitement dans /etc/hosts.allow, ce qui est le cas par défaut. Si vous modifiez
ces fichiers, vous devez penser à CUPS (ligne cupsd).
Figure 30.1
Administration web
de CUPS.
cupsd.conf Le fichier /etc/cups/cupsd.conf définit si l’administration web est activée, si elle peut être
utilisée sur l’ordinateur local ou le réseau, et s’il est nécessaire de s’y connecter avec un iden-
tifiant de compte système et un mot de passe associé. La configuration de la section précé-
dente autorise uniquement les utilisateurs locaux à gérer CUPS via le Web (Listen
localhost:631).
Si vous désirez faire également fonctionner la configuration web sur le réseau local, vous
devez modifier cupsd.conf comme suit. Vous devez aussi vous assurer que le port 631 n’est
pas bloqué par un pare-feu.
# /etc/cups/cupsd.conf
...
Port 631
Listen /var/run/cups/cups.sock
Linux Livre Page 593 Mardi, 23. septembre 2008 1:05 13
...
<Location /admin>
...
Order allow,deny
Allow @LOCAL
</Location>
# Modifier la configuration nécessite l’authentification d’un
# administrateur système de CUPS
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow @LOCAL
</Location>
...
Les commandes lpr, lpq, lprm et lpc ne sont pas spécifiques à CUPS ; elles existent aussi dans BSD-LPD
et LPRng. Il s’agit d’un dénominateur commun de tous les systèmes d’impression, mais attention : les
options peuvent différer d’un système à un autre.
lpr lpr permet d’imprimer un fichier. Si plusieurs imprimantes sont configurées, indiquez avec
l’option -P sans espace le nom de la file d’attente. Vous pouvez l’omettre si vous utilisez
l’imprimante par défaut.
utilisateur$ lpr -Pnom fichier
On peut aussi utiliser lpr en conjonction avec un tube pour imprimer la sortie d’une autre
commande. La commande suivante imprime la liste de fichiers renvoyée par ls sur l’impri-
mante par défaut :
utilisateur$ ls -l *.odt |lpr
Vous pouvez aussi utiliser, à la place de lpr, la commande lp (sa syntaxe est expliquée dans
man 1 lp).
lpq et lprm Toutes les tâches d’impression qui ne sont pas exécutées immédiatement sont enregistrées
dans une file d’attente (une file par imprimante). Vous pouvez afficher le contenu de cette
file d’attente avec lpq -Pnom.
Linux Livre Page 594 Mardi, 23. septembre 2008 1:05 13
594 LINUX
Pour supprimer les tâches d’impression que vous avez vous-même lancées, utilisez lprm -
Pnom id en indiquant le nom de l’imprimante et le numéro de la tâche, que vous pouvez
obtenir avec lpq.
utilisateur$ lpq
HPLasJet1022 est prête et en cours d’impression
Rang Propr. Tâche Fichiers Taille totale
active michael 20 evince-print 17408 octets
1st michael 21 evince-print 16384 octets
utilisateur$ lprm 20
utilisateur$ lprm 21
lpc lpc permet un contrôle plus fin sur l’activité de l’imprimante. Lorsque vous lancez cette
commande, vous arrivez dans un environnement interactif, dans lequel vous pouvez lancer
des commandes telles que status, help, etc. Certaines ne peuvent être lancées que par l’uti-
lisateur root. Pour quitter lpc, utilisez les commandes exit, bye ou quit.
lpstat, lpinfo, lpstat affiche des informations sur toutes les imprimantes disponibles. lpinfo fournit une liste
lpadmin et
lpoptions de tous les périphériques et pilotes d’impression. lpadmin permet d’ajouter ou de supprimer une
imprimante. lpoptions affiche les options des imprimantes CUPS et permet de les modifier.
utilisateur$ lpoptions -o PageSize=A4
CUPS désactive les imprimantes qui ne sont pas accessibles. Pour les réactiver, lancez les
deux commandes suivantes :
utilisateur$ lpadmin -E -p nom
utilisateur$ accept nom
Certaines imprimantes pour lesquelles il n’existe pas de pilote libre disposent d’un pilote commercial Turbo-
Print. Ce dernier permet d’ailleurs d’obtenir de meilleurs résultats pour certaines imprimantes photo. Vous
trouverez des pilotes relativement bon marché et une version gratuite, mais limitée des pilotes sur le site
web http://www.turboprint.de/en_p_turboprint.phtml .
Linux Livre Page 596 Mardi, 23. septembre 2008 1:05 13
596 LINUX
Fichiers PPD CUPS voit toutes les imprimantes comme une imprimante PostScript. Les paramètres spéci-
fiques, comme la taille des marges non imprimables, la résolution de l’imprimante, les com-
mandes pour différentes fonctions (par exemple, les bacs d’entrée du papier) et autres
particularités (impression en duplex), sont enregistrés dans des fichiers PPD (PostScript
Printer Definition, définition d’imprimantes PostScript). Ce format, défini par Adobe, est
également utilisé pour les imprimantes sous Windows et Mac OS X.
Comme toutes les imprimantes ne sont pas en réalité des imprimantes PostScript, les
fichiers CUPS PPD contiennent également sous forme de commentaires la commande
GhostScript, y compris toutes les options, avec lesquelles gs peut convertir les fichiers
PostScript dans le format de l’imprimante. Les lignes suivantes constituent quelques
extraits d’un fichier PPD pour l’imprimante à jet d’encre HP DeskJet 5940 :
*PPD-Adobe: "4.3"
...
*Manufacturer: "HP"
*Product: "(deskjet 5940)"
...
*cupsFilter: "application/vnd.cups-postscript 0 foomatic-rip"
*%pprRIP: foomatic-rip other
...
*FoomaticIDs: HP-DeskJet_5940 hpijs
*FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE
-sDEVICE=ijs -sIjsServer=hpijs%A%B%C
-dIjsUseOutputFD%Z -sOutputFile=- -"
...
Ces informations sont extraites d’une base de données ppds.dat qui contient toutes les
imprimantes connues par CUPS. Le fichier ppds.dat est créé lors de la configuration de
l’imprimante et se trouve selon la distribution dans un répertoire différent, par exemple
/var/cache/cups. Si votre imprimante ne se trouve pas dans cette base de données et si vous
ne trouvez pas de modèle compatible, vous pouvez éventuellement trouver un fichier .ppd
sur Internet.
Le script cupsomatic extrait du fichier PPD de l’imprimante les paramètres GhostScript,
puis appelle gs et convertit les données PostScript au format de l’imprimante.
Si votre imprimante n’y figure pas, essayez de trouver un modèle compatible. Pour les
imprimantes PostScript et PCL, vous pouvez choisir le fabricant Generic et indiquer le
type de l’imprimante (PostScript ou PCL).
Pour certaines imprimantes récentes qui ne figurent pas encore dans la base de don-
nées de modèles de CUPS, vous pouvez trouver un fichier PPD sur Internet et le
charger pendant la configuration. Attention, tous les fichiers PPD ne sont pas compa-
tibles avec CUPS. Un fichier donné peut aussi demander une version très récente de
CUPS.
• Pour de nombreux modèles d’imprimantes, il existe plusieurs pilotes. Deux raisons
peuvent expliquer cela. Bon nombre d’imprimantes prennent en charge différents stan-
dards. De plus, CUPS agrège plusieurs projets différents (GhostScript, GutenPrint, etc.),
ce qui peut mener à différents pilotes provenant de différents projets. L’imprimante
peut alors apparaître plusieurs fois sous différents noms.
Il n’est souvent pas facile de dire si le pilote X est meilleur que le pilote Y. La qualité de
l’impression dépend largement de ce que vous désirez imprimer : texte, schémas techni-
ques, photos, etc. Seules quelques expériences vous permettront de savoir quel pilote
utiliser pour quelles données. La qualité d’impression dépend également du paramé-
trage du pilote, par exemple la résolution.
Les pilotes ne se différencient pas seulement par la qualité, mais aussi par la vitesse
d’impression. Pour imprimer du code, il n’est pas forcément nécessaire d’utiliser un
pilote destiné à l’impression de photos !
• La plupart des imprimantes laser PostScript peuvent aussi être configurées via un mode
de compatibilité pour se comporter comme une imprimante HP LaserJet. Les données
d’impression sont alors converties dans le langage d’impression de HP et envoyées à
l’imprimante. Cela peut paraître lourd, mais la vitesse d’impression obtenue est dans de
nombreux cas supérieure.
En effet, pour l’imprimante, traiter des fichiers PostScript est bien plus complexe que
traiter des fichiers LaserJet. La vitesse de traitement est plus faible que celle d’un PC
classique. Cette configuration a cependant un inconvénient : la qualité d’impression est
en partie plus faible. La différence dépend principalement des polices utilisées.
598 LINUX
Pour qu’une imprimante locale soit également utilisée sur les ordinateurs Windows du réseau, elle doit être
partagée par Samba (voir section 30.8).
La plupart des vraies imprimantes réseau connaissent au moins l’un de ces protocoles.
De plus, certains appareils prennent en charge divers protocoles supplémentaires :
• une API de socket (par exemple JetDirect d’HP) sur le port IP 9100 ;
• AppSocket (par exemple Tektronix) ;
• un protocole spécifique au fabricant.
Utiliser une Les détails de la configuration dépendent du protocole utilisé pour les communications. La
imprimante IPP
situation la plus simple correspond à celle où CUPS et IPP sont disponibles des deux côtés.
Les imprimantes répondant à cette configuration sont visibles sans autre configuration du
côté client et peuvent être utilisées immédiatement. CUPS ajoute toutes les imprimantes
visibles sur le réseau au fichier /etc/printcap.
lpstat -v affiche une liste de toutes les imprimantes disponibles. La commande suivante est
lancée sur l’ordinateur uranus. Il existe une imprimante locale, nommée DeskJet-5940, ainsi que
deux imprimantes sur mars et saturne, nommées respectivement pluton et kyocera.
user@uranus$ lpstat -v
périphérique pour DeskJet-5940 : parallel:/dev/lp0
périphérique pour pluton : ipp://mars.sol:631/printers/pluton
périphérique pour kyocera : ipp://saturn.esol:631/printers/kyocera
Ces trois imprimantes sont accessibles directement avec lpr -Pnom. Si plusieurs impriman-
tes ont le même nom sur le réseau, elles doivent être désignées sous la forme nomimpri-
mante@nomhôte, par exemple lpr -Plp@jupiter.
Pour que les imprimantes CUPS soient visibles des autres ordinateurs dans le réseau local, CUPS doit être
configuré sur les ordinateurs distants comme dans la section précédente. Le port 631 ne doit pas être bloqué
par un pare-feu !
En principe, une imprimante IPP peut être configurée de manière à pouvoir être utilisée en réseau, mais non
visible automatiquement. Dans ce cas, vous devez configurer l’imprimante sur l’ordinateur local. Choisissez
comme type d’imprimante Imprimante réseau IPP et saisissez comme adresse ipp://nomhôte/printers/
nomimprimante. Si l’imprimante distante est gérée par Linux/CUPS, indiquez comme fabricant et modèle
Raw et Queue. Cela signifie que les données PostScript doivent être envoyées telles quelles à l’ordinateur dis-
tant qui se chargera du traitement des données pour l’imprimante.
Configurer Si l’imprimante réseau distante n’est pas compatible avec IPP, elle doit être configurée du
d’autres
imprimantes côté du client avant qu’il puisse l’utiliser. Les programmes de configuration s’en chargent
réseau comme pour une imprimante locale. Il faut cependant choisir, comme type d’imprimante,
Imprimante réseau. La suite de la configuration dépend du protocole :
• SMB (Windows/Samba). Vous devez indiquer le nom d’hôte de l’ordinateur, le nom de
l’imprimante et éventuellement un nom d’utilisateur et un mot de passe. Avant de pou-
voir utiliser une imprimante Windows, vous devez installer les outils client de Samba.
Selon la distribution, les outils client et serveur font tous partie du même paquetage.
• LPD (Unix-LPD). Indiquez le nom de l’ordinateur et de l’imprimante, ainsi que celui de
la file d’attente. En cas de doute, il s’agit souvent de lp ou lp0.
• Protocole de socket comme HP JetDirect. Indiquez le nom d’hôte et l’adresse IP de
l’imprimante, ainsi que le numéro de port (en général, 9100).
Linux Livre Page 600 Mardi, 23. septembre 2008 1:05 13
600 LINUX
Le mot clé correspondant de printers.conf est DeviceURI. Il introduit l’adresse URI qui
fournit le protocole et l’adresse réseau. Le tableau suivant donne quelques exemples de syn-
taxe pour ces adresses.
30.3 NFS
NFS (Network File System, système de fichiers réseau) permet à un ordinateur de mettre à
disposition ses répertoires locaux pour d’autres ordinateurs du réseau. C’est la méthode la
plus courante sous Unix/Linux de gérer les répertoires partagés.
Les fonctions de base de NFS sont intégrées directement au noyau depuis la version 2.2, afin
d’atteindre des performances optimales. La plupart des distributions actuelles fournissent
un noyau NFS. Il existe aussi un serveur NFS en espace utilisateur, indépendant du noyau.
Linux Livre Page 601 Mardi, 23. septembre 2008 1:05 13
Le noyau NFS prend en charge les versions 3 et 4 de NFS. Pour l’instant, NFS4 n’est pas large-
ment diffusé.
NFS est implémenté avec des RPC (Remote Procedure Calls, appels de procédures distants).
Pour que NFS fonctionne, il faut donc un ensemble de programmes, dont voici une liste des
principaux :
• nfsd (pour NFS3) et nfsd4 (pour NFS4) sont les démons NFS. Ils sont mis en œuvre par
des threads du noyau.
• portmap établit la connexion entre le client et le serveur NFS, et s’occupe de l’allocation
dynamique de ports UDP sur les clients.
• rpc.mountd traite les demandes de montage des clients.
Vous avez normalement peu d’attention à porter à ces programmes : dès lors que NFS est
installé et actif, tous les programmes nécessaires sont démarrés par InitV.
Un guide pratique détaillé sur le thème de NFS, avec de nombreuses astuces d’optimisation et de sécurité,
se trouve à l’adresse http://nfs.sourceforge.net/nfs-howto/.
Installation et configuration
Avant de configurer un serveur NFS, vous devez vous assurer que les différents paquetages
sont installés. Par défaut, ce n’est généralement pas le cas. Les noms des paquetages varient
selon la distribution.
Debian, Ubuntu nfs-common, nfs-kernel-server, portmap
Fedora, Red Hat, SUSE nfs-utils, portmap
La configuration est regroupée dans trois fichiers : /etc/exports, /etc/hosts.allow et /etc/
hosts.deny.
/etc/exports Le fichier /etc/exports est le fichier central de configuration de NFS. Il définit quel ordina-
teur a le droit d’accéder à quel répertoire. L’ordinateur peut être indiqué par son adresse IP
ou son nom sur le réseau. Les adresses IP peuvent être des masques (par exemple,
192.168.0.0/255.255.255.0 ou 192.168.0.0/24). Les adresses IP et noms d’ordinateurs
peuvent, de plus, contenir le caractère joker * (par exemple *.sol).
L’exemple suivant indique que tous les clients dans le réseau IP 192.168.0.* ou nommés
*.sol peuvent accéder au répertoire /usr/local, mais pas le modifier. De plus, uranus.sol
peut lire et modifier le répertoire /usr/share. La ligne /usr/local est séparée en deux lignes
pour des raisons de place.
# /etc/exports sur l’ordinateur mars.sol
# ro = lecture seule, rw = lecture et écriture
/usr/local 192.168.0.0/24(ro,async,no_subtree_check) \
*.sol(ro,async,no_subtree_check)
/usr/share uranus.sol(rw,async,no_subtree_check)
Linux Livre Page 602 Mardi, 23. septembre 2008 1:05 13
602 LINUX
La syntaxe de /etc/exports est comparable à celle des lignes qui précèdent. Le répertoire et
le nom d’hôte ou l’adresse IP sont suivis d’options NFS entre parenthèses. ro et rw indiquent
si l’accès n’est autorisé qu’en lecture ou en lecture/écriture. sync et async définissent le
moment où le serveur NFS prend en compte les modifications. Par défaut, il s’agit de sync :
la modification est enregistrée lorsque le fichier est effectivement enregistré. async est une
option plus rapide, mais nettement moins sûre. man exports fournit une référence exhaus-
tive de toutes les options.
Si le serveur NFS est déjà démarré, les modifications de /etc/exports ne seront prises en
compte qu’après avoir lancé la commande exportfs :
root# exportfs -a
/etc/ Les fichiers hosts.allow et hosts.deny indiquent quels ordinateurs ont le droit d’accéder au
hosts.allow et
/etc/hosts.deny serveur NFS. Les informations de /etc/exports définissent quels utilisateurs peuvent contac-
ter le serveur NFS. Ils se situent en première ligne de la protection des accès. Le serveur NFS
s’occupe des lignes portmap et mountd.
Démarrage Le serveur NFS est, comme tous les autres services réseau, lancé grâce à un script InitV. Le
nom du script dépend de la distribution et peut s’appeler nfs, nfs-kernel, nfsserver, etc.
Une fois le serveur lancé, vous pouvez regarder si tout fonctionne avec la commande mount
sur un autre ordinateur :
utilisateur@uranus$ mkdir /test
utilisateur@uranus$ mount -t nfs mars:/usr/share /test
utilisateur@uranus$ ...
utilisateur@uranus$ umount /test
Si ce n’est pas le cas, vérifiez que NFS n’est pas bloqué par un pare-feu. Attention, NFS utilise le
protocole UDP et non TCP.
UID et GID Un des gros problèmes de NFS dans un petit réseau est que les utilisateurs de NFS doivent
avoir les mêmes identifiants d’utilisateur et de groupe. NFS utilise ces numéros et les droits
d’accès en dépendent. Pour les gros réseaux, il existe souvent un serveur qui centralise ces
informations.
root a souvent un rôle particulier. Il ne peut pas, pour des raisons de sécurité, utiliser NFS
comme un utilisateur normal. Il n’a que les droits de l’utilisateur nobody. Si vous désirez
donner les droits usuels à root, il faut utiliser l’option no_root_squash.
NFS4
NFS4 est une implémentation complètement nouvelle du protocole. Il prend en charge les
ACL et permet une authentification plus sûre des utilisateurs. De plus, il utilise le port TCP
2049 et non UDP.
Les fichiers ne sont plus associés aux UID et GID des utilisateurs, mais à une chaîne de
caractères de la forme utilisateur@ordinateur.
Il a cependant l’inconvénient d’être plus compliqué. Pour Linux et Sun, il existe peu de
clients NFS4. Vous trouverez plus d’informations sur NFS4 sur les pages suivantes :
Linux Livre Page 603 Mardi, 23. septembre 2008 1:05 13
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
Cette section ne couvre que les fonctions de base de Samba 3.0. Si vous avez besoin de fonctions plus
avancées, comme l’authentification via LDAP, vous devez recourir à d’autres documentations, par exemple
sur http://www.samba.org ou https://help.ubuntu.com/community/SettingUpSamba.
Protocole et services
Un prérequis de la configuration d’un serveur Samba est que vous ayez une idée de la
manière dont fonctionnent les réseaux Windows. Nous ne pouvons ici qu’en donner un bref
aperçu. Cette section a pour seul but de déclarer les fonctions de Samba et de les relier à la
terminologie Windows. Procurez-vous un bon livre sur la configuration du réseau sous
Windows. Si vous vous intéressez aux aspects plus techniques, http://www.samba.org/
samba/docs/using_samba/toc.html est un bon point de départ.
NetBIOS L’abréviation NetBIOS vient du protocole Network Basic Input/Output System, système basique
d’entrées/sorties réseau, développé par IBM. Il a été entre temps plusieurs fois mis à jour.
NetBIOS ne doit pas être confondu avec NetBEUI. Ce dernier est un protocole qui remplis-
sait le même rôle que TCP/IP. Il était autrefois utilisé à la place de TCP/IP sous Windows,
mais n’a depuis plus beaucoup de signification.
NBNS NetBIOS sert, entre autres, à échanger les noms d’ordinateurs (service de noms). Ces noms
peuvent être gérés de manière centralisée par un serveur de noms NetBIOS (NBNS) ou de
manière décentralisée. Dans ce cas, chaque ordinateur envoie lorsqu’il démarre un message
à tous les autres clients du réseau et leur indique sous quel nom il est accessible.
Linux Livre Page 604 Mardi, 23. septembre 2008 1:05 13
604 LINUX
Les noms d’ordinateurs NetBIOS et TCP/IP sont indépendants. En théorie, un ordinateur peut avoir un nom
différent par protocole. En pratique, on évitera évidemment cette situation. Utiliser différents noms porte à
confusion et peut également s’opposer à l’utilisation de certaines fonctions.
Exploration Un client Windows peut explorer le réseau pour savoir quels sont les autres ordinateurs pré-
du réseau
sents sur le réseau. Pour que tous les ordinateurs n’aient pas à parcourir le réseau, un explo-
rateur principal (Master Browser) se charge de cette tâche. Dans les réseaux importants, il est
aidé par un ou plusieurs explorateurs de sauvegarde. Samba peut faire office d’explorateur.
Il n’est pas explicitement défini qui doit prendre le rôle d’explorateur. Les ordinateurs qui se
trouvent sur le réseau le négocient dynamiquement en fonction de leur adaptation au rôle −
en général, l’ordinateur avec le système d’exploitation le plus récent est le mieux adapté.
La liste d’exploration n’est malheureusement pas toujours synchrone avec l’état courant du
réseau. Cela est dû au fait que les clients gèrent un cache avec le dernier état valide. L’actua-
lisation de ce cache (F5 sous l’Explorateur de Windows) ne fonctionne pas toujours ou peut
demander un certain temps. Si vous ne trouvez pas un ordinateur alors que vous savez qu’il
fonctionne, cela dénote probablement un problème d’exploration.
L’idée est si simple qu’elle est encore très utilisée et tout à fait envisageable dans les petits
réseaux. Elle fonctionne sans notion d’utilisateur (jusqu’à Windows 95, la connexion avec
des noms d’utilisateurs différents n’était pas prévue).
Cette pratique a cependant un inconvénient : si dix ordinateurs partagent trois objets cha-
cun, trente mots de passe différents sont nécessaires. Dans des réseaux plus importants, cela
mène rapidement au chaos et à la multiplication des Post-It sur les écrans...
Sécurité au La sécurité au niveau des utilisateurs suppose que ces derniers se connectent côté client
niveau des
utilisateurs avec un identifiant et un mot de passe. Lorsqu’ils désirent utiliser des données du serveur,
leur identifiant et leur mot de passe courants servent à leur attribuer des autorisations
d’accès. En plus de l’authentification correcte, il faut également à ce niveau que le client et le
serveur appartiennent au même groupe de travail.
Par conséquent, un répertoire sur le serveur n’est pas simplement associé à un mot de passe.
Il est lié à un utilisateur (ou à une liste ou un groupe d’utilisateurs). Le serveur a donc besoin
d’une base de données avec les noms d’utilisateurs, les appartenances aux groupes et les
mots de passe.
Pour donner un exemple, supposons que l’utilisateur X travaille sur l’ordinateur A. Pour
que X puisse accéder au serveur S, il doit être déclaré en tant qu’utilisateur sur S comme sur
A (avec le même identifiant et le même mot de passe). Supposons à présent que l’ordinateur
A tombe en panne et que X passe sur l’ordinateur B. Pour qu’il puisse accéder aux mêmes
données sur S, il doit également être créé sur l’ordinateur B (avec un mot de passe).
Si X décide de changer son mot de passe, cette modification doit être répercutée sur le ser-
veur S et tous les clients (A, B, etc.). La gestion décentralisée des mots de passe et de
l’authentification est donc un problème perpétuel avec ce concept.
Les clients A, B, etc. accèdent aux données du serveur au niveau utilisateur, mais ils peuvent
utiliser entre eux une approche de sécurité de partages. Il est également possible que le
client A partage, sans mot de passe, un répertoire. Le client B peut alors utiliser ce répertoire
(quel que soit l’utilisateur connecté), à partir du moment où il connaît le mot de passe.
Domaines Les domaines et Active Directory permettent de centraliser l’authentification des utilisateurs
et Active
Directory sur le réseau. Nous ne parlerons pas ici de l’utilisation de Samba dans ce type de configuration.
Que peut Revenons maintenant à Linux. Samba prend en charge les quatre modèles de sécurité :
faire Samba ?
• La sécurité au niveau des partages peut être reproduite, mais c’est assez peu intuitif
pour les administrateurs de Samba.
• L’utilisation de Samba comme serveur avec une sécurité au niveau des utilisateurs est la
plus simple et la plus populaire.
• Samba prend en charge, depuis la version 2.2, tous les aspects de la sécurité au niveau
des domaines.
• Depuis la version 3.0, Samba peut s’intégrer comme client dans un réseau Active Directory.
• La version 4 de Samba, attendue pour 2008, devrait lui permettre d’être utilisé comme
serveur de domaine Active Directory.
Linux Livre Page 606 Mardi, 23. septembre 2008 1:05 13
606 LINUX
Nous ne parlerons ici que de la sécurité au niveau des partages et des utilisateurs. Pour confi-
gurer Samba au niveau des domaines ou mettre en œuvre Active Directory, vous devrez
trouver un ouvrage spécifique à Samba.
Quelle que soit la méthode utilisée, vous devez au moins installer les outils client pour Samba, qui sont fournis
dans de nombreuses distributions par des paquetages distincts (sous Ubuntu, samba-common et smb-
client).
Il faut également s’assurer que le protocole SMB n’est pas bloqué par un pare-feu. Les ports utilisés sont les
ports TCP 135, 139 et 445, ainsi que les ports UDP 137 et 138.
smbclient On peut également chercher des répertoires Windows avec la commande smbclient. Celle-
ci est peu confortable, mais elle est souvent pratique pour tracer les problèmes Samba.
L’exemple suivant montre toutes les ressources de l’ordinateur local mercure. Il ne s’agit que
d’imprimantes. La deuxième partie du résultat liste tous les groupes de travail visibles et
indique quel ordinateur est maître de ces groupes. Il n’est pas nécessaire de donner un mot
de passe ; il suffit de taper Entrée, puisque nous ne cherchons pas ici à accéder à des ressour-
ces protégées par des mots de passe.
utilisateur$ smbclient -L localhost
smbclient -L localhost
Password:
Anonymous login successful
Domain=[TEST] OS=[Unix] Server=[Samba 3.0.22]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
Linux Livre Page 607 Mardi, 23. septembre 2008 1:05 13
Si smbclient renvoie une erreur (access denied), le nom d’utilisateur ou celui du groupe de
travail de votre ordinateur ne correspond pas à celui de l’ordinateur Windows ou du ser-
veur Samba. La solution la plus simple est de donner ces informations comme paramètres
supplémentaires à smbclient. Le fichier /etc/smb.conf propose plus de paramètres à confi-
gurer. Il sert principalement à configurer un serveur Samba, mais certains paramètres sont
également exploités par smbclient.
utilisateur$ smbclient -U utilisateur -W groupe -L venus
Vous pouvez aussi utiliser smbclient pour télécharger des fichiers. Vous devez d’abord éta-
blir une connexion avec le répertoire partagé sur l’ordinateur Windows ou Samba distant.
Un mot de passe est alors généralement demandé. Vous pouvez, comme avec ftp, afficher le
contenu du répertoire avec ls, changer de répertoire avec cd, télécharger des fichiers avec
get et en transférer sur le partage avec put. help renvoie la liste des commandes disponibles
et man smbclient fournit une description détaillée des commandes.
utilisateur$ smbclient //venus/partage -U nom -W groupe
added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0
Password: xxxxxx
Domain=[SOL] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: > ls
. D 0 Thu Sep 7 17:38:02 2006
.. D 0 Thu Sep 7 17:38:02 2006
data D 0 Wed Apr 5 18:17:11 2006
file.xy AR 226 Sat Dec 14 00:00:00 2006
608 LINUX
par une ligne du type [nom_ressource]. Le fichier peut ressembler, pour les premiers tests, à
ceci :
; /etc/samba/smb.conf
[global]
workgroup = SOL
security = share
[public]
path = /data/public
guest ok = yes
guest only = yes
Samba partage le répertoire public et se trouve dans le groupe de travail SOL. Ce répertoire
contient les données du répertoire /data/public de l’ordinateur local − ce répertoire doit
donc exister et contenir quelques fichiers à des fins de test.
On peut accéder au serveur (security = share) et au répertoire public (guest ok, guest
only = yes) sans mot de passe. Les fichiers ne sont cependant pas modifiables : par défaut,
les répertoires sont partagés en lecture seule (read only = yes).
Chaque fois que l’on modifie le fichier de configuration, le serveur Samba doit le recharger. Si le serveur fonc-
tionne déjà, il faut forcer cela par /etc/init.d/smb reload ou /etc/init.d/samba reload.
Lorsque cela fonctionne, vous devez vérifier si le serveur Samba et le répertoire public sont
visibles par les clients Windows. Un mot de passe n’est normalement pas nécessaire non
plus dans ce cas. La Figure 30.2 montre le répertoire sous Windows XP.
Figure 30.2
Le serveur Mars vu de
l’Explorateur Windows.
Vérificateur Lorsque vous faites de grosses modifications dans le fichier smb.conf, il est prudent de vérifier
de syntaxe
de smb.conf sa syntaxe avec testparm avant de redémarrer Samba.
root# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions <Return>
# Global parameters
[global]
workgroup = SOL
...
À partir de Samba 3.0, l’option -v affiche une liste de tous les paramètres par défaut pour
toutes les options possibles. Cela peut être pratique si vous ne savez pas quelles valeurs par
défaut ont les paramètres.
État de Samba smbstatus permet de connaître l’état courant de Samba, y compris les connexions actives :
root# smbstatus
Samba version 3.0.23
PID Username Group Machine
-------------------------------------------------------------------
610 LINUX
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name ...
------------------------------------------------------------------------------
32292 65534 DENY_NONE 0x100001 RDONLY NONE /data/public . ...
Samba enregistre généralement son état et ses messages d’erreur dans les fichiers /var/log/
samba/log.smbd et log.nmbd.
Les gestionnaires de fichiers de KDE et de Gnome permettent de partager des répertoires réseau. Cette
fonctionnalité masque une modification de smb.conf. D’après mon expérience, cela ne fonctionne pas
toujours de manière satisfaisante et nécessite de toute façon une configuration de base correcte de
smb.conf.
Pour que les clients Windows puissent effectivement accéder au répertoire public, il faut
s’assurer que l’utilisateur nobody existe et que le répertoire /data/public est accessible à cet
utilisateur. L’option guest account permet d’associer le compte guest à un autre compte
système.
Linux Livre Page 611 Mardi, 23. septembre 2008 1:05 13
smbpasswd permet de créer un mot de passe Samba pour dummy1, qui sécurise l’accès réseau
au répertoire readwrite.
root# smbpasswd -a dummy1
New SMB password: ********
Retype new SMB password: ********
Added user dummy1.
Les lignes suivantes montrent la configuration nécessaire dans smb.conf. L’option browsea-
ble assure que le répertoire est visible de l’ordinateur client avant que l’accès ne soit
accordé.
[readwrite]
path = /data/readwrite
user = dummy1
writeable = true
browseable = true
Lors de mes tests, je n’ai pas réussi à accéder avec le paramétrage par défaut à un répertoire en lecture/écri-
ture. Il semble que Samba ne comprenne pas le protocole NTLMv2 au niveau partage (mais cela fonctionne
au niveau sécurité des utilisateurs).
Il faut modifier les paramètres de sécurité de Vista pour accéder à un répertoire en lecture/écriture. Le para-
mètre correspondant se trouve, pour la plupart des versions de Vista, dans la configuration des stratégies
locales de sécurité. Choisissez dans le panneau de configuration Outils d’administration > Stratégie de
sécurité locale > Stratégies locales > Options de sécurité et passez la valeur de Sécurité réseau : Niveau
Linux Livre Page 612 Mardi, 23. septembre 2008 1:05 13
612 LINUX
d’authentification Lan Manager de Envoyer uniquement les réponses NTLM v.2 à Envoyer LM et NTLM −
utiliser la sécurité de session NTLM version 2 si négociée.
Sous Windows Vista Home, le programme de modification des politiques de sécurité n’existe pas. Vous ne
pouvez modifier la politique d’authentification que dans la base de registres. Il faut pour cela modifier la clé
LmCompatibilityLevel de HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa
de la valeur 3 à la valeur 1.
Chaque ligne du fichier smbuser contient un nom d’utilisateur Linux, le signe = et le nom
d’un ou de plusieurs utilisateurs de Windows. Vous pouvez aussi utiliser ce fichier pour
associer plusieurs utilisateurs Windows à un utilisateur Linux. administrateur est souvent
associé à root, et guest à nobody.
Si l’utilisateur peter a comme identifiant Peter Mayer sous Windows, il faut simplement
ajouter la ligne peter = Peter Mayer à smbusers.
/etc/samba/smbusers (quel que soit son nom) peut compromettre le système de sécurité complet du
système. Assurez-vous donc que le fichier n’est modifiable que par root !
Mots de passe Avant que peter puisse effectivement accéder à des répertoires, il doit s’identifier. Pour cela,
lorsque la connexion est établie entre le client Windows et Samba, l’identifiant Windows et
un mot chiffré pour le mot de passe sont échangés. Cette valeur ne permet pas de reconstruire
le mot de passe. Samba ne peut donc vérifier le mot de passe que s’il existe un fichier de
mots de passe (le plus souvent, /etc/samba/smbpasswd) qui contient le même mot chiffré.
L’administrateur du système Linux doit donc ajouter une nouvelle ligne à ce fichier pour
peter, ce que permet la commande smbpasswd. Indiquez comme mot de passe la même
chaîne de caractères que celle saisie par l’utilisateur Peter Mayer sous Windows. Pour modifier
un mot de passe Samba existant, utilisez smbpasswd sans l’option -a :
root# smbpasswd -a peter
New SMB password: ******
Retype new SMB password: ******
Added user peter.
Password changed for user peter.
Linux Livre Page 613 Mardi, 23. septembre 2008 1:05 13
Attention, cette commande ne fonctionne que lorsque peter existe sur le système local. Dans
le cas contraire, il faut l’ajouter avec useradd ou l’un des outils prévus par la distribution.
L’utilisateur peter a maintenant trois combinaisons identifiant/mot de passe :
• pour se connecter sous Windows, Peter Mayer et son mot de passe Windows ;
• pour se connecter sous Linux, peter et son mot de passe Linux ;
• pour se connecter à des ressources Samba, Peter Mayer ou peter et son mot de passe
Samba.
Si les mots de passe Windows et Samba correspondent, l’utilisateur peut accéder de manière
transparente aux ressources Samba. Si ce n’est pas le cas, il doit saisir son mot de passe cha-
que fois qu’il désire accéder à un répertoire. Le mot de passe du compte système sur le serveur
Samba et le mot de passe Samba sont en revanche indépendants.
Répertoires La sécurité au niveau de l’utilisateur correspond au modèle de sécurité de Linux ; elle est
personnels
donc bien plus légère à mettre en place. La configuration par défaut de nombreux serveurs
Samba ressemble à ceci :
[global]
workgroup = SOL # nom de votre groupe de travail
security = user
username map = /etc/samba/smbusers
map to guest = bad user
guest account = nobody
[homes]
writeable = true
browseable = false
Les deux lignes guest indiquent que tous les utilisateurs dont le nom ne se trouve pas dans
/etc/samba/smbusers sont automatiquement associés au compte nobody. Ainsi, ils peuvent
tous accéder au serveur Samba et voir quels fichiers s’y trouvent. Les dossiers accessibles
effectivement sont ceux dont l’option guest ok = yes est activée.
Le groupe [homes] est une section spéciale. Les répertoires personnels des utilisateurs actifs
sont visibles sous leur nom. Ces trois lignes économisent une liste sans fin de sections de
cette forme :
[peter]
writeable = true
user = peter
L’option browseable = false n’indique pas que l’utilisateur ne peut pas voir son répertoire.
Elle évite juste que le répertoire soit visible deux fois, une fois sous le nom de l’utilisateur
(par exemple peter) et une fois sous homes.
L’accès au répertoire personnel n’est possible que lorsque l’utilisateur dispose d’un compte
Linux avec un répertoire personnel. Une condition supplémentaire est qu’il ait un mot de
passe dans smb.conf.
Linux Livre Page 614 Mardi, 23. septembre 2008 1:05 13
614 LINUX
L’option map to guest = bad user dans la section [global] peut présenter un risque de sécurité. La
valeur never pour cette option est plus sûre. Elle fait en sorte que le serveur Samba soit entièrement inaccessible
aux utilisateurs qui ne sont pas correctement identifiés.
L’accès général à tous les répertoires personnels est également problématique du point de vue de la sécurité.
Si vous désirez refuser cet accès à certains utilisateurs, vous pouvez utiliser l’option invalid users.
Répertoires Le répertoire personnel n’est accessible qu’à un utilisateur donné. Mais il est souvent utile
de groupes
de disposer d’un répertoire auquel les différents membres d’un groupe peuvent accéder.
Pour cela, il faut d’abord associer tous les comptes utilisateurs membres à un groupe. Vous
pouvez alors définir dans smb.conf un répertoire que tous les membres de ce groupe peu-
vent utiliser avec une syntaxe du type @groupe. Vous évitez ainsi de devoir énumérer tous
les membres du groupe, ce qui est bien sûr également possible.
[ventes]
path = /data/ventes
writeable = true
browseable = true
user = @ventes
create mask = 0770
directory mask = 0770
Les droits d’accès à des répertoires de groupes sont particulièrement importants. Cela est
aussi valable pour les fichiers créés par les membres du groupe. Les deux options mask
font en sorte que les fichiers et les répertoires soient accessibles par tous les membres du
groupe.
browseable = no indique que les imprimantes sont visibles, mais pas le répertoire printers.
L’option path est utilisée pour les fichiers d’impression temporaires. Tous les utilisateurs
doivent avoir le droit d’écrire dans ce répertoire, sans quoi ils ne peuvent pas imprimer.
Linux Livre Page 615 Mardi, 23. septembre 2008 1:05 13
Si vous désirez ne partager qu’une imprimante donnée, vous devez ajouter ces lignes. Cet
exemple suppose que la file d’attente de l’imprimante s’appelle lp1 dans /etc/printcap et
qu’elle soit visible sous le nom hp3 sur les clients Samba :
[hp3]
printer = lp1
printable = yes
path = /var/tmp/
browseable = no
Pour donner à tous les utilisateurs le droit d’imprimer (sans mot de passe), ajoutez la ligne
guest ok = yes à la configuration de l’imprimante.
Configuration Il existe plusieurs possibilités qui influent sur l’endroit où sont converties les données
du système
d’impression d’impression au format de l’imprimante.
• Le plus simple est de choisir le pilote de l’imprimante sous Windows lorsque vous configu-
rez l’imprimante réseau.
Cette configuration peut poser certains problèmes. Il arrive que les données à imprimer
soient filtrées deux fois. Par exemple, pour une imprimante configurée comme une
imprimante PostScript, il se peut que le code PostScript envoyé par Windows soit inter-
prété comme du code ASCII par Linux et que le résultat de l’impression soit du code
PostScript explicite (commençant généralement par deux caractères %).
• L’autre variante est de configurer l’imprimante sous Windows comme une imprimante
PostScript, quel que soit son modèle (y compris lorsqu’il ne s’agit pas d’une imprimante
PostScript).
Sous Linux, la file d’attente correspond au modèle réel de l’imprimante.
Cela implique que le client Windows envoie des données PostScript au serveur Linux.
Les données sont alors converties au format de l’imprimante. Elles sont donc converties
deux fois, sous Windows au format PostScript et sous Linux au format de l’imprimante.
Cette méthode est, entre autres, appuyée par les développeurs de CUPS qui ont même
développé un pilote Windows à cette fin.
Cette variante présente deux inconvénients. D’une part, les pilotes sous Windows sont
généralement meilleurs que sous Linux. C’est particulièrement vrai pour les impriman-
tes à jet d’encre. Vous obtiendrez donc de meilleurs résultats si vous préparez les
fichiers sous Windows. De plus, la préparation de données d’impression est un proces-
sus coûteux en temps. De nombreuses tâches d’impression peuvent entraîner une
charge importante pour le serveur. Il est donc plus intéressant d’effectuer ces tâches sur
les clients de manière décentralisée.
Configuration Les imprimantes partagées sont visibles dans l’explorateur Windows, mais ne peuvent pas
des
imprimantes être utilisées immédiatement. Il faut d’abord installer la nouvelle imprimante. Pour cela,
sous Windows lancez le module Imprimantes et télécopieurs du Panneau de configuration, puis Ajouter
une imprimante et choisissez l’option Une imprimante réseau ou une imprimante connectée
à un autre ordinateur. Toutes les imprimantes réseau disponibles devraient alors s’afficher.
Si cela ne fonctionne pas, saisissez le nom de l’imprimante manuellement.
Linux Livre Page 616 Mardi, 23. septembre 2008 1:05 13
616 LINUX
Un second problème est que Windows affiche généralement un avertissement qui signale
que le serveur ne fournit pas de pilote d’impression. Vous devez le valider avec OK et choi-
sir le pilote d’impression dans la liste qui s’affiche. Le pilote à utiliser dépend de la configu-
ration de l’imprimante sous Linux.
Il serait plus élégant que Samba fournisse lui-même le bon pilote, afin de faciliter l’installa-
tion côté client. Ajoutez pour cela un répertoire partagé [print$] dans smb.conf qui pointe
vers un répertoire avec les fichiers d’installation. Les quatre options write list, force
group, create mask et directory mask indiquent qui peut installer des pilotes sur le serveur
et quels droits ont les fichiers résultants.
[print$]
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775
Le seul problème est maintenant d’installer le pilote d’imprimante dans le répertoire /var/
lib/samba/drivers. Cette étape relativement compliquée peut être effectuée depuis un ordi-
nateur sous Windows doté du pilote d’imprimante, ou depuis Linux, ce qui installe les
pilotes CUPS ou PostScript librement disponibles. Les différentes opérations nécessaires
à l’installation des pilotes sont décrites en détail dans le Samba-HOWTO sur
http://www.samba.org.
Linux Livre Page 617 Mardi, 23. septembre 2008 1:05 13
618 LINUX
Limitations Avant de crier victoire, vous devez être conscient de certaines limitations. Wine et Cross-
Over ne fonctionnent que sur des plateformes x86. Ces mêmes limitations s’appliquent à la
plupart des programmes de virtualisation.
La compatibilité de Wine et de CrossOver avec Windows est limitée. De nombreux pro-
grammes ne fonctionnent pas ou alors uniquement pour des fonctions basiques. Mais les
performances sont généralement au rendez-vous et, dans quelques rares cas, supérieures à
celles de la même application sous Windows.
Les programmes de virtualisation peuvent pallier certains problèmes de compatibilité. Les
fonctions nécessaires ne sont pas redéveloppées : le système d’exploitation complet est lancé
dans un environnement virtuel. Cela diminue largement les problèmes de compatibilité,
mais au détriment des performances. De plus, le matériel nécessaire et, en particulier, la
quantité de mémoire sont nettement plus importants.
Lancer des programmes Windows sous Linux implique souvent des coûts élevés. Certains
programmes ne sont pas libres (par exemple, CrossOver ou VMware). De plus, vous avez
besoin d’une licence pour le programme à démarrer (par exemple, Adobe Photoshop) et,
dans le cas d’un programme de virtualisation, d’une licence pour le système d’exploitation
(par exemple, Windows XP).
Enfin, signalons qu’une motivation courante pour passer à Linux est la sécurité accrue du
système. Si vous ne faites pas attention, vous pouvez rétablir le même genre de problèmes
(virus, etc.) avec Wine et d’autres programmes similaires que sous Windows.
31.1 Wine
La plupart des distributions fournissent un paquetage pour Wine, qui n’est cependant pas
installé par défaut. Cette section se base sur la version 1.1.2. Vous trouverez plus d’informations
sur Wine aux adresses http://www.winehq.org/ et http://wine-wiki.org/.
Configuration Généralement, Wine fonctionne sans configuration préalable. Si vous rencontrez des problè-
mes, le programme winecfg aide souvent à les résoudre (voir Figure 31.1). Vous pouvez y
configurer différents éléments audio et graphiques, associer des répertoires à diverses let-
tres de lecteurs Windows, etc. L’onglet Applications permet de définir quelle version de
Windows est imitée par Wine (par défaut, il s’agit de Windows 2000). Vous pouvez alors
définir des versions de Windows différentes pour vos programmes.
Installer et Une fois Wine installé, vous pouvez lancer un programme Windows avec la commande
démarrer des
programmes wine nom_du_programe.exe. Comme premier test, lancez le bloc-notes fourni avec Wine :
Windows
utilisateur$ wine /usr/lib/wine/notepad.exe.so
Cela ne fonctionne que lorsque le programme souhaité est installé. Une installation dans la
partition Windows de votre ordinateur n’est généralement pas d’une grande aide, car les
programmes Windows utilisent généralement des bibliothèques supplémentaires et des
enregistrements dans la base de registres. Il faut donc l’installer localement pour Wine :
utilisateur$ cd répertoire_des_fichiers_d’installation
utilisateur$ wine setup.exe
Linux Livre Page 619 Mardi, 23. septembre 2008 1:05 13
Figure 31.1
Configuration de Wine
avec winecfg.
Si vous avez de la chance, l’installation fonctionne sans erreur. C’est souvent le cas lorsque
vous installez de petits programmes populaires et anciens. Les programmes récents, très
gros ou exotiques renverront pour la plupart des messages d’erreur obscurs. Le problème
vient généralement du fait que l’installation réclame une fonction ou une bibliothèque Win-
dows (DLL) qui n’est pas encore implémentée sous Wine. Une recherche sur Internet permet
parfois de trouver quelques astuces pour débloquer la situation. Sinon, il faut vous faire une
raison : le programme ne fonctionne pas (encore) sous Wine. Un rapport d’erreur à l’adresse
http://bugs.winehq.org aide les développeurs de Wine à remédier au problème dans le
futur.
La base de données d’application de Wine recense plus de 5 000 programmes, avec des informations sur
la manière de les installer et sur la mesure dans laquelle ils fonctionnent. Cette base se trouve à l’adresse
http://appdb.winehq.org/.
Lorsque l’installation se passe bien, Wine se termine sans indiquer où le programme a été
installé. La commande find peut s’avérer utile lorsqu’on l’utilise, par exemple, pour trouver
tous les fichiers *.exe modifiés dans les 60 dernières minutes :
utilisateur$ find ~/.wine -cmin -60 -iname ’*.exe’
Notez que Wine ne fournit ni bureau Windows, ni menu de démarrage, barre des tâches,
gestionnaire de programmes, explorateur Windows, etc.
Linux Livre Page 620 Mardi, 23. septembre 2008 1:05 13
620 LINUX
Transfert de Par défaut, le lecteur C: de Windows est associé au répertoire ~/.wine/drive_c et le lecteur
données entre
Wine et Linux Z: à /. Vous pouvez, si nécessaire, définir d’autres lettres de lecteurs avec winecfg ou modifier
le chemin des lecteurs préexistants.
Pour transférer des données via le presse-papiers, pensez à utiliser sous Windows les rac-
courcis Ctrl+C et Ctrl+V. Sous Linux, c’est le presse-papiers et non le tampon de texte marqué
qui est utilisé ! Pour les programmes texte, les combinaisons de la souris ne fonctionnent
donc pas.
Wine met à disposition toutes les imprimantes définies sous Linux pour les applications
Windows. Cependant, cela ne fonctionne pas toujours. En revanche, les fonctions réseau ne
posent aucun problème. Si votre ordinateur sous Linux a accès à Internet, les applications
Windows lancées sous Wine y ont accès également.
Installer Vous vous demandez peut-être pourquoi installer l’un des programmes réputés comme les
Internet
Explorer moins sûrs sous Windows. Il y a deux raisons à cela. D’une part, Microsoft utilise depuis
plusieurs années Internet Explorer pour installer diverses extensions du système. Certains
programmes Windows ne peuvent donc être installés que lorsqu’une version récente
d’Internet Explorer l’est également. D’autre part, les développeurs web doivent, bon gré
mal gré, tester leurs pages sous Internet Explorer − l’installer localement sous Linux permet
d’éviter de changer de système d’exploitation.
L’installation manuelle d’Internet Explorer est relativement pénible. Le script ies4linux
s’en chargera pour vous. Il permet d’installer IE6 et, si vous le choisissez, IE 5.5SP2 et
5.01SP2, ainsi que le greffon Flash9. La version courante d’Internet Explorer, IE7, n’est mal-
heureusement pas encore prise en charge. Le script ies4linux permet cependant d’utiliser
le moteur de rendu d’IE7 dans l’interface d’IE6. La procédure est assez compliquée et n’est
conseillée qu’aux utilisateurs avancés. Vous trouverez plus d’informations à l’adresse
http://www.tatanka.com.br/ies4linux/page/Fr/Page_D’Accueil.
Le script nécessite l’installation de Wine et cabextract. Ce dernier sert à décompresser des
archives CAB (méthode classique pour créer des archives Microsoft). Attention, l’installation
d’Internet Explorer n’est autorisée que si vous disposez d’une licence Windows !
Pour installer Internet Explorer, lancez les commandes suivantes. Choisissez la version d’IE
à installer ; vous pouvez la télécharger directement depuis le site web de Microsoft et l’ins-
taller rapidement.
utilisateur$ wget \
http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
utilisateur$ tar zxvf ies4linux-latest.tar.gz
utilisateur$ cd ies4linux-*
utilisateur$ ./ies4linux
Ensuite, lancez Internet Explorer avec les commandes ie6, ie55 ou ie5 (voir Figure 31.2).
Lorsque vous utilisez Wine 1.x, le programme d’installation affiche un avertissement
comme quoi votre version de Wine ne convient peut-être pas ; vous pouvez l’ignorer.
Conclusion Il est possible d’installer et de faire fonctionner certains programmes Windows avec Wine.
Ce dernier est néanmoins plutôt destiné aux utilisateurs avancés de Linux. Si vous n’êtes
pas prêt à expérimenter quelques éléments et à chercher des solutions sur Internet, Wine ne
vous conviendra pas.
Linux Livre Page 621 Mardi, 23. septembre 2008 1:05 13
Figure 31.2
Internet Explorer 6
sous Linux.
CrossOver
CrossOver, de l’entreprise CodeWeavers, est un dérivé commercial de Wine qui permet
d’installer facilement des programmes fréquemment utilisés. Le répertoire des applications
prises en charge contient, entre autres, Microsoft Office (versions 97, 2000, XP, 2003 ; la prise
en charge de la version 2007 est encore expérimentale), Adobe Photoshop 6 et 7, iTunes, Fra-
meMaker, Lotus Notes, World of Warcraft, ainsi que les greffons de navigateur QuickTime,
Shockwave et Windows Media Player. Vous trouverez plus d’informations sur CrossOver à
l’adresse http://www.codeweavers.com/products/cxoffice/. Vous pouvez également télé-
charger une version d’évaluation de CrossOver à l’adresse
http://www.codeweavers.com/products/cxlinux/download_trial/.
Linux Livre Page 622 Mardi, 23. septembre 2008 1:05 13
622 LINUX
Installation Dans la plupart des cas, vous devez télécharger le programme d’installation de CrossOver
depuis le site web de CodeWeavers. Positionnez son bit d’exécution et lancez-le :
utilisateur$ chmod u+x install-crossover-xxx.sh
utilisateur$ ./install-crossover-xxx.sh
CodeWeavers fournit également des paquetages pour la plupart des distributions actuelles.
Le programme d’installation ajoute un menu CrossOver dans les menus Gnome et KDE. Si
cela ne fonctionne pas, lancez les programmes CrossOver avec les commandes cxnom. Dans
le cas d’une installation locale, ces programmes se trouvent dans le répertoire ~/cxoffice/
bin. Sinon, ils se trouvent dans /opt/cxoffice.
Installer des Pour installer un programme Windows, lancez cxinstallwizard. Choisissez le programme
programmes
Windows souhaité dans la liste, placez le CD dans le lecteur ou indiquez à quel endroit se trouvent les
fichiers d’installation. L’installation fonctionne alors comme sous Windows.
Si le programme à installer ne se trouve pas dans la liste, choisissez l’option Installer une
application non supportée.
Lorsque l’installation s’est bien déroulée, les programmes peuvent être lancés confortablement
à partir du nouveau menu Applications Windows.
Cedega
Cedega, de l’entreprise TransGaming, vise également la facilité d’installation, mais les
applications concernées sont les jeux. Ceux officiellement pris en charge comprennent War-
craft 3, World of Warcraft, Diablo 2, Half Life 2 et Sim City 4. De plus, le site web de Cedega
maintient une liste des jeux testés et de leur état. Vous trouverez plus d’informations à
l’adresse http://www.cedega.com/. Cedega ne fournit pas de version d’évaluation et fonc-
tionne sur un système de souscription qui permet, entre autres, de télécharger le logiciel. Il
existe également un wiki non officiel d’informations sur Cedega et sur les jeux pris en
charge à l’adresse http://cedegawiki.sweetleafstudios.com/wiki/.
Linux Livre Page 623 Mardi, 23. septembre 2008 1:05 13
624 LINUX
parties de Xen font partie du noyau Linux officiel. Pour les autres, il faut modifier le noyau
avec un correctif non officiel. Lorsque vous installez une distribution prévue pour Xen, le
mainteneur de la distribution a ajouté les fonctions Xen au noyau.
Vous trouverez plus d’informations sur les différentes techniques de virtualisation aux adresses
http://doc.ubuntu-fr.org/virtualisation et http://fr.wikipedia.org/wiki/Virtualisation.
Pour déterminer si votre processeur dispose de fonctionnalités de virtualisation matérielles
(Intel-VT ou AMD-V), lancez la commande egrep. Un processeur Intel Core2 avec deux
cœurs renvoie le résultat suivant. Si ce dernier est vide, le processeur ne prend pas en charge
la virtualisation ou alors, les fonctions correspondantes sont désactivées dans le BIOS.
Notez que ces lignes peuvent apparaître même lorsque les fonctions sont présentes, mais
désactivées dans le BIOS.
utilisateur$ egrep ’^flags.*(vmx|svm)’ /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr
lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr
lahf_lm
Aspects L’émulation de matériels virtuels est par nature une opération complexe. Selon la méthode
matériels
de virtualisation et l’implémentation, vous vous heurterez à un moment ou à un autre aux
frontières suivantes :
• Processeurs. Le système hôte peut bien sûr accéder complètement aux processeurs et
cœurs de l’ordinateur. Cependant, peu de systèmes de virtualisation sont capables
d’attribuer plus d’un processeur à un invité. Dans ce cas, les systèmes SMP et multi-
cœurs n’aident donc qu’à exécuter plusieurs invités en parallèle de manière efficace.
On ne peut pas lancer un invité 64 bits sur un système hôte 32 bits (à l’exception d’une
émulation du processeur par QEMU, mais il s’agit d’un cas particulier). Par contre, si
l’hôte est un système 64 bits, il peut généralement lancer des invités 32 ou 64 bits.
• Mémoire vive. La règle de base s’énonce ainsi : votre ordinateur doit disposer de plus
de mémoire que la somme de la mémoire nécessaire au système hôte et à tous les invités
en cours d’exécution. Il faut donc prévoir plusieurs gigaoctets de mémoire vive.
• Disques durs. La plupart des systèmes de virtualisation enregistrent le système de
fichiers des invités dans de gros fichiers dans le système hôte. Les invités n’accèdent
donc pas directement au disque dur, mais indirectement via le système de virtualisation.
Les accès disque sont donc plus lents que sur l’hôte. Le facteur de ralentissement a pour
valeur typique deux ou trois.
• Lecteurs CD/DVD. L’accès aux lecteurs CD et DVD est transmis de l’hôte aux invités,
mais uniquement en lecture seule. Aucun système de virtualisation ne permet la gravure
de CD/DVD depuis le système hôte.
La plupart des programmes de virtualisation permettent d’associer un fichier ISO au
lecteur CD/DVD. Plutôt que d’utiliser le lecteur réel, l’hôte accède à un fichier ISO.
Linux Livre Page 626 Mardi, 23. septembre 2008 1:05 13
626 LINUX
C’est particulièrement pratique pour l’installation. Vous pouvez extraire une image
ISO très facilement à partir d’un CD :
root# dd if=/dev/scd0 of=fichier.iso bs=2048
Nous supposons ici que les systèmes hôte et invités partagent la même architecture. Certains programmes,
comme QEMU, sont capables d’émuler du matériel différent. Cela réduit cependant largement les perfor-
mances. On parle alors d’émulation et non de virtualisation, même si la frontière entre ces deux concepts
est floue.
Linux Livre Page 627 Mardi, 23. septembre 2008 1:05 13
628 LINUX
Les débutants peuvent faire leur première expérience avec VMware Workstation (il existe
une version d’évaluation pour un mois) ou VirtualBox. Ces deux programmes facilitent les
premiers pas grâce à leurs interfaces utilisateur confortables.
Le marché professionnel est actuellement dominé par Xen. Les distributions professionnelles
Red Hat et SUSE proposent, en plus de leurs produits de base, des outils d’administration.
Vous pouvez tester ces outils gratuitement dans openSUSE et Fedora.
La question de savoir quel système de virtualisation s’établira comme standard est une
question encore ouverte. KVM a de bonnes chances de son côté, car il est établi dans le
noyau officiel. Il nécessite cependant un processeur avec des fonctions de virtualisation
(Intel-VT ou AMD-V).
But vise le marché bureautique ; sa prin- vise le marché des serveurs permet de lancer des machines
cipale utilisation est l’exécution d’un virtuelles précédemment créées
système A sur un système B avec une interface simple
Licence propriétaire, payante propriétaire, gratuite propriétaire, gratuite
Création de machines oui oui non
virtuelles
Démarrage des non oui non
machines virtuelles à
l’amorçage
Répertoires partagés oui non non
Démarrage de oui oui non
plusieurs machines
simultanément
Avantage principal produit complet sans limitation produit raisonnablement gratuité et simplicité d’utilisation
complet et gratuit
Inconvénient prix complexité d’utilisation impossibilité de créer ou modi-
principal fier une machine virtuelle
32.3 VirtualBox
Depuis janvier 2007, VirtualBox (http://www.virtualbox.org) est une alternative intéres-
sante à VMware Workstation. Ce programme fournit les mêmes fonctions de base et une
version GPL est disponible. Il fonctionne sur des hôtes Windows, Linux, Macintosh et
OpenSolaris. Les systèmes invités pris en charge comptent, entre autres, Windows (2000, XP,
2003 Server, Vista), Linux, FreeBSD, OpenBSD, Solaris, OS/2 et DOS.
VirtualBox est moins mûr que VMware Workstation. De nombreuses fonctions avancées ne
sont pas disponibles. Mais pour les tâches de virtualisation de base, il suffit largement.
Il est également avantagé par rapport aux autres programmes de virtualisation libre par son
interface graphique et sa documentation. Cela facilite la vie des débutants.
Versions Sur le site web de VirtualBox, vous trouverez deux versions à télécharger :
• Version complète. Elle est gratuite pour les utilisateurs privés et universitaires, ainsi
que pour l’évaluation. L’utilisation commerciale de cette version nécessite cependant
l’achat de licences.
• Version Open Source Edition (OSE). Cette version contient le code source de VirtualBox
sous licence GPL. Son utilisation est gratuite dans le cadre de la GPL. Elle est un peu
limitée par rapport à la version binaire : vous ne pouvez pas accéder aux périphériques
USB et iSCSI depuis une machine virtuelle, ni utiliser RDP (Remote Display Protocole)
Linux Livre Page 630 Mardi, 23. septembre 2008 1:05 13
630 LINUX
entre les machines virtuelles. Par ailleurs, si votre distribution ne fournit pas de paquetage
pour VirtualBox, vous devez compiler vous-même le logiciel.
Cette section se base sur la version binaire VirtualBox 1.6.4, sur un système hôte
Ubuntu 8.0.4, ainsi que sur les systèmes invités openSUSE 10.2 et Windows XP.
Prérequis Pour installer VirtualBox, vous devez avoir installé les fichiers d’en-tête du noyau, ainsi que
tous les outils de développement de base. Ces éléments sont nécessaires pour compiler des
modules du noyau utilisés par VirtualBox.
Installation Si vous installez la version OSE de VirtualBox, celle-ci peut être déjà disponible dans la base
de l’hôte
de paquetages de votre distribution. Si ce n’est pas le cas ou si vous préférez utiliser la version
binaire de VirtualBox, vous devez la télécharger sur www.virtualbox.org.
Vous trouverez sur le site web de VirtualBox des paquetages prêts à l’installation (Debian,
Red Hat, SUSE, Ubuntu) ou un script universel d’installation, à lancer comme ceci :
root# chmod u+x VirtualBox_n.run install
root# ./VirtualBox_n.run install
Vous devez alors, dans le cas de la version binaire, accepter la licence. L’installation se déroule
ensuite sans question supplémentaire. Le groupe vboxusers est créé. Seuls les utilisateurs de ce
groupe peuvent accéder au périphérique /dev/vboxdrv nécessaire pour lancer des machines
virtuelles. La commande suivante ajoute l’utilisateur michael au groupe vboxusers :
root# usermod -a -G vboxusers michael
Lorsque vous lancez le système hôte, le script InitV /etc/init.d/vboxdrv est lancé. Il charge
le module noyau du même nom et s’assure que les conditions d’utilisation de VirtualBox
sont remplies.
Installer La commande VirtualBox lance l’interface utilisateur de VirtualBox. Un assistant permet de
des systèmes
invités créer de nouvelles machines virtuelles. Après le choix du type de système d’exploitation (par
exemple, Linux avec un noyau 2.6) et de la taille souhaitée de la mémoire vive, puis la création
d’un disque dur virtuel, VirtualBox affiche un résumé de tous les composants matériels. Vous
pouvez alors ajouter des paramètres supplémentaires : changer le type d’accès réseau ou indi-
quer un fichier ISO comme source de données pour le lecteur CD/DVD (voir Figure 32.1).
Par défaut, l’accès au réseau entre l’hôte et les invités fait appel à du NAT. Le système invité
peut donc accéder à Internet, mais pas échanger de données avec le réseau local.
Une fois le système installé, vous pouvez alors le lancer dans une fenêtre du système hôte
(voir Figure 32.2).
Additions Après l’installation du système, vous devez installer les Additions Client. Il s’agit d’un
Client
ensemble de pilotes supplémentaires qui améliorent l’interaction avec l’hôte (contrôle de la
souris plus élégant, résolution de l’écran plus importante, échange de données via les réper-
toires partagés, etc.). Cette installation n’est possible que lorsque le système invité dispose
d’outils de développement et des fichiers d’en-tête de son noyau.
Pour cela, éjectez le CD/DVD éventuellement présent et lancez Périphériques, Installer les
Additions Client... Exécutez le fichier VBoxLinuxAdditions.run depuis le CD virtuel qui est
alors monté dans le système invité. De manière atypique, vous devez alors redémarrer le
système invité, qui peut disposer d’une plus grande résolution. Vous pouvez avoir à modi-
fier la taille de la mémoire vidéo attribuée à l’invité ou la configuration de X de l’invité si la
résolution que vous souhaitez n’est pas accessible.
Linux Livre Page 631 Mardi, 23. septembre 2008 1:05 13
La machine virtuelle capture automatiquement le clavier et la souris dès que vous tapez une
touche ou dès que vous cliquez. Par défaut, vous pouvez rendre le focus avec la touche Ctrl
droite. Ce paramètre est modifiable dans la fenêtre principale de VirtualBox dans Fichier,
Préférences.
Figure 32.1
Configuration
d’une machine virtuelle
dans VirtualBox.
Figure 32.2
openSUSE en tant
que système invité
dans une machine
virtuelle VirtualBox.
Linux Livre Page 632 Mardi, 23. septembre 2008 1:05 13
632 LINUX
Répertoires Une fois les Additions Client installés, vous pouvez partager un dossier sur l’hôte pour qu’un
partagés
invité puisse y accéder. Les répertoires partagés sont spécifiques à chaque système invité.
Pour cela, il suffit d’ajouter l’invité dans les préférences de la machine virtuelle dans l’onglet
Répertoires partagés. Le champ Chemin du répertoire est le répertoire de la machine hôte.
Le champ Nom du répertoire est le nom grâce auquel l’invité y accédera.
Sur le système invité, le répertoire n’est pas monté automatiquement, mais manuellement.
Si le répertoire est partagé sous le nom partage, il faut lancer la commande suivante, en
supposant que le répertoire partage-vbox est déjà créé :
root@invite# mount -t vboxsf partage /media/partage-vbox
Les répertoires partagés peuvent également être utilisés lorsque le système invité est Windows.
Le lecteur réseau à monter est \\vboxsev\partage.
L’émulateur lui-même est lancé avec la commande qemu ou qemu-xxx. qemu émule un proces-
seur compatible x86, qemu-system-x86_64 sa variante 64 bits, qemu-sparc un processeur
Sparc, etc. Toutes les commandes qemu ont la même syntaxe :
utilisateur$ qemu [options] fichier-image
Linux Livre Page 633 Mardi, 23. septembre 2008 1:05 13
qemu peut prendre de nombreuses options. La commande qemu sans paramètre en donne un
résumé. Nous ne survolerons ici que les plus importantes :
• -boot a/c/d indique le support d’amorçage (lecteur de disquettes, disque dur ou lec-
teur CD/DVD). Les lettres correspondent aux lecteurs DOS/Windows. Par défaut,
QEMU démarre depuis le disque dur.
• -cdrom fichier-iso utilise l’ISO indiquée comme source de données pour le lecteur
CD/DVD virtuel.
• -k langue indique la disposition clavier à utiliser, comme fr (français) et en-us (anglais
US). Cette option n’est nécessaire que dans de rares cas, lorsque qemu n’interprète pas
correctement les codes clavier du système hôte.
• -localtime initialise l’heure CMOS virtuelle du système avec l’heure locale (plutôt que,
par défaut, avec l’heure UTC).
• -m n indique la taille de la mémoire de la machine virtuelle (en mégaoctets). Par défaut,
les machines virtuelles disposent de 128 Mo de RAM.
• -net options configure le matériel réseau virtuel. Cette option n’est nécessaire que lors-
que la configuration par défaut de QEMU (carte NE2000 et pile réseau en mode utilisateur)
n’est pas adaptée.
• -no-acpi désactive l’ACPI.
• -snapshot lance QEMU sans modifier de manière permanente le fichier image du disque
dur.
QEMU lance le système émulé dans une fenêtre simple sans menu, ni élément d’utilisation.
Pour contrôler diverses fonctions, il faut utiliser des raccourcis clavier. Les plus importants
sont recensés dans le tableau suivant.
Essayer QEMU Dans sa forme de base, QEMU ne permet de lancer des systèmes modernes graphiques avec
des performances décentes que sur du matériel puissant. Pour les premiers tests, il vaut
mieux tester une distribution Linux minimale. Les nostalgiques de DOS peuvent aussi effec-
tuer ces tests avec FreeDOS (voir Figure 32.3). Le fichier ISO de FreeDOS se trouve à
l’adresse http://freedos.org.
Linux Livre Page 634 Mardi, 23. septembre 2008 1:05 13
634 LINUX
Figure 32.3
FreeDOS sous QEMU.
Les deux commandes suivantes créent un fichier d’image pour le disque virtuel et démarrent
QEMU en utilisant l’image ISO de FreeDOS comme support d’amorçage.
utilisateur$ qemu-img create -f qcow qemu.img 500M
utilisateur$ qemu -m 16 -boot d -cdrom fdbasecd.iso qemu.img
Lorsque l’installation s’est bien déroulée, vous n’avez plus besoin de l’image du CD et vous
pouvez utiliser le disque dur virtuel pour démarrer le système :
utilisateur$ qemu -m 16 qemu.img
J’ai également installé, de la même manière, Ubuntu 8.04.1. Cela demande un peu plus de
patience (et davantage de mémoire vive attribuée à QEMU). Le système était globalement
utilisable, mais lancer des applications graphiques était plutôt pénible au vu des problèmes
de performances.
KQEMU Le cas le plus fréquent d’utilisation de QEMU est l’exécution de code x86 (invité) sur du
matériel x86 (hôte). Il n’est donc pas nécessaire d’émuler ce code ; on peut le lancer
directement. C’est à cela que sert le module noyau KQEMU. Il améliore de manière
significative les performances de QEMU, qui sont alors comparables à celles de
VMware, VirtualBox, etc. Vous trouverez plus d’informations sur KQEMU à l’adresse
http://bellard.org/qemu/kqemu-tech.html.
Vous pouvez avoir à installer les modules de noyau KQEMU manuellement, après les avoir
téléchargés ou avoir installé le paquetage de source de votre distribution :
utilisateur$ tar zxvf kqemu-x.y.z.tar.gz
utilisateur$ cd kqemu-x.y.z
utilisateur$ make
root# make install
root# modprobe kqemu
Si cette commande renvoie une erreur, vérifiez que votre processeur prend bien en charge la
virtualisation matérielle. Si c’est le cas, elle peut être désactivée au niveau du Bios, ce qui est
donc également un point à vérifier.
L’utilisation des fonctions KVM nécessite d’accéder au périphérique /dev/kvm en lecture ou
en écriture. Dans de nombreuses distributions, cet accès n’est autorisé qu’à root. Il faut donc
modifier les droits d’accès de /dev/kvm pour autoriser d’autres utilisateurs à l’utiliser.
Du point de vue de l’utilisateur, KVM est une variante de QEMU qui accède aux modules
noyau KVM. Il n’est pas nécessaire d’installer QEMU ; le paquetage KVM en contient une
variante modifiée. Pour créer un nouveau fichier image, vous avez cependant besoin de la
commande qemu-img qui peut n’être disponible que dans le paquetage QEMU.
KVM est démarré, selon la distribution, avec kvm ou qemu-kvm. Il est nettement plus rapide
que QEMU dans sa version de base, mais la différence est négligeable par rapport à QEMU
utilisé en parallèle avec KQEMU. Vous trouverez d’autres informations sur KVM sur le site
http://kvm.qumranet.com/.
Linux Livre Page 636 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 637 Mardi, 23. septembre 2008 1:05 13
Xen
33
Ce chapitre est une introduction au système de virtualisation Xen. Il mérite qu’on y consacre
un chapitre entier, en raison de son importance croissante et de sa grande complexité. Nous
supposons cependant ici que les concepts sous-jacents de virtualisation, présentés dans les
chapitres précédents, vous sont familiers.
33.1 Introduction
Xen est une infrastructure de virtualisation qui prend en charge deux formes de virtuali-
sation et qui se différencie par quelques détails techniques des autres systèmes. Il est par-
ticulièrement adapté à la virtualisation de serveurs Linux.
Le développement de Xen a commencé en 2001 à l’université de Cambridge. En soi, Xen
est libre (sous licence GPL), mais il existe également diverses versions commerciales,
ainsi que des extensions et des outils de gestion.
Le noyau Linux doit être étendu par un correctif pour que Xen fonctionne. De nombreuses dis-
tributions fournissent par défaut des noyaux modifiés pour Xen.
Applications Xen est conçu principalement pour une utilisation serveur. Une utilisation bureautique
comme celle que permettent VMware ou VirtualBox est possible, mais avec quelques
limitations ; ce n’est donc pas la solution optimale.
Le plus courant est d’utiliser la même distribution pour le système de base (le serveur
Xen) et ses invités. Pour cela, vous installez par exemple SUSE Enterprise Server avec la
prise en charge de Xen comme système de base, puis vous utilisez Xen pour lancer diver-
ses instances virtualisées de cette distribution dans des environnements isolés. Les outils
de configuration des différentes distributions permettent généralement d’assister l’utili-
sateur lorsqu’il crée des systèmes invités. Ces outils sont également utiles, car la gestion
manuelle de Xen est relativement inconfortable : vous devez vous occuper des fichiers de
configuration, des périphériques réseau, etc.
Une autre utilisation courante est de configurer un serveur Xen qui n’effectue pas d’autre
tâche que l’administration de Xen et l’accès au matériel. Pour cela, il suffit d’installer une
minidistribution, sans système graphique, ni services réseau, comme Apache ou Samba.
Versions et J’ai testé Xen avec diverses distributions. Ce chapitre se base sur un système hôte
environne-
ment de test Ubuntu 8.04.1 (32 bits), Xen 3.2.0 et un noyau 2.6.24.
Tester Xen peut mener à certaines instabilités. Il est donc conseillé de sauvegarder votre
disque dur avant de vous lancer, ou d’utiliser une machine de tests.
Linux Livre Page 638 Mardi, 23. septembre 2008 1:05 13
638 LINUX
Variantes de la virtualisation
Paravirtua- Xen est avant tout un système de paravirtualisation : les machines virtuelles utilisées néces-
lisation
sitent un noyau Linux modifié. Lorsque ces prérequis sont remplis, Xen est plus efficace que
VMware Workstation ou VMware Server.
Cependant, en tant qu’outil de paravirtualisation, Xen ne peut pas lancer de système
d’exploitation sans prise en charge de Xen et en particulier, Windows.
Virtualisation Depuis la version 3, Xen peut lancer des systèmes non modifiés dans des HVM (Hardware
matérielle
Virtual Machines, machines virtuelles matérielles). Cela nécessite néanmoins une prise en
charge matérielle (Intel VT ou AMD-V). Xen utilise pour cela une partie du code de QEMU ;
de nombreux avantages et particularités de Xen disparaissent alors. Lorsque vous lisez dans
la presse informatique que Xen peut maintenant exécuter Windows, la forme de virtualisa-
tion considérée n’apporte presque rien par rapport à KVM/QEMU.
Architecture et terminologie
Au contraire des solutions de virtualisation présentées précédemment, qui fonctionnent
comme des applications habituelles sur un système hôte normal, les fonctions de base de
Xen sont implémentées dans une couche du noyau. Xen ne s’occupe pas de démarrer les
invités : c’est également le travail de l’hôte. Du point de vue de Xen, le système d’exploita-
tion de base se comporte comme un invité avec des privilèges particuliers.
Figure 33.1
Virtualisation avec Xen.
dom0 et domU La terminologie est également différente. Au lieu de machines virtuelles, on parle sous Xen
de domaines. Lors du démarrage de l’ordinateur, Xen est d’abord démarré. Il démarre
ensuite le domaine 0. Dans ce dernier, le noyau modifié pour Xen et une distribution ayant
accès aux composants matériels (par exemple le système graphique) sont lancés et contrôlent
tous les autres domaines Xen.
Linux Livre Page 639 Mardi, 23. septembre 2008 1:05 13
XEN 639
Les désignations hôte et invité sont encore valables dans Xen, mais avec quelques limita-
tions. Pour être exact, Xen est lui-même l’hôte. Le système qui serait désigné comme hôte
sur un autre système de virtualisation est désigné par Xen comme domaine privilégié
(Domain 0, abrégé en dom0). Le dom0 est parfois également décrit comme serveur de machines
virtuelles ou serveur Xen.
Toutes les machines virtuelles supplémentaires (invités, dans la terminologie précédente)
fonctionnent dans des domaines non privilégiés (domU). La Figure 33.1 résume l’architec-
ture de Xen. Vous pouvez lancer dans les domU d’autres systèmes d’exploitation, soit de
manière paravirtualisée (lorsque le système prend en charge Xen), soit avec une virtualisation
matérielle. Nous nous limitons ici à Linux.
Restrictions
Comme tout autre système de virtualisation, Xen souffre également de limitations, dont
certaines sont liées au fait qu’il est optimisé pour une utilisation serveur.
• Xen et tous les domaines doivent concorder et utiliser la même architecture de processeur.
Il est impossible de lancer un dom0 en 64 bit et des domU en 32 bits.
Si vous utilisez une architecture 32 bits, une restriction similaire s’applique à PAE (Physical
Addressing Extensions, extensions d’adressage physique), qui permet d’adresser plus de 4 Go
de RAM sur un processeur 32 bits. Xen peut être compilé avec ou sans prise en charge de
PAE. Cependant, Xen et tous les noyaux (dom0 et domU) doivent s’accorder sur ce point.
Si ces règles ne sont pas suivies, Xen termine le démarrage d’un domU par le message
d’erreur error 22, invalid argument. Ces limitations ne s’appliquent que pour la paravir-
tualisation et non pour les machines virtuelles HVM.
• Xen est incompatible avec certains pilotes matériels binaires (utilisés, par exemple, pour
certaines cartes graphiques ou cartes Wi-Fi). Utilisez dans la mesure du possible les
pilotes libres. Il existe un correctif pour les pilotes NVIDIA. De manière générale, Xen
est, comme tous les systèmes de virtualisation actuels, peu adapté aux graphismes 3D.
• Xen ne fournit pas de fonctions audio aux domaines non privilégiés.
• La prise en charge d’ACPI et d’APM est très limitée. En particulier, les fonctions d’éco-
nomie d’énergie des ordinateurs portables sont largement inutilisées. Les processeurs
fonctionnent à pleine fréquence. Les cartes PCMCIA et CardBus ne peuvent pas être
utilisées.
• Le dom0 ne peut fonctionner que sur un Linux ou un NetBSD. Windows, Solaris et les
BSD ne peuvent être lancés que dans des domU et souffrent souvent de diverses limi-
tations ou ne fonctionnent qu’en virtualisation matérielle.
• Xen peut poser des problèmes de compatibilité avec les pare-feu et d’autres systèmes de
sécurité (SELinux, AppArmor, etc.).
• Dans un domaine Xen, il est impossible d’exécuter d’autres programmes de virtualisa-
tion. Xen et le second programme de virtualisation veulent tous les deux gérer la
mémoire, les processus, etc.
Linux Livre Page 640 Mardi, 23. septembre 2008 1:05 13
640 LINUX
Cependant, le cas inverse fonctionne : vous pouvez essayer Xen dans une machine
virtuelle VMware. N’en attendez cependant pas des foudres de performances...
Gestion du matériel
Xen fonctionne un niveau en dessous du noyau Linux et doit donc être démarré avant le
noyau du système dom0. C’est Xen, et non le noyau Linux, qui gère les ressources matériel-
les élémentaires (voir Figure 33.2). Il s’occupe en particulier de la gestion de la mémoire, de
l’utilisation du processeur, des accès au disque dur et du système réseau.
Les systèmes invités (domU) n’accèdent pas à ces ressources par le pilote Linux standard, mais
via des modules propres au matériel virtuel Xen. Ces pilotes sont une interface entre Xen et le
noyau. C’est pourquoi Xen ne peut être exécuté que sur des noyaux Linux modifiés.
La situation est encore plus délicate pour le dom0. Xen gère également dans ce cas la
mémoire vive et les processeurs. Le noyau du dom0 doit donc également être modifié pour
Xen. Les accès disque et l’utilisation de la carte réseau incombent cependant au noyau du
dom0 et fonctionnent comme d’habitude via les modules du noyau Linux avec les pilotes
correspondants. Les systèmes domU sont dépendants du bon fonctionnement des disques
durs et de l’accès au réseau du dom0.
Le système dom0 joue également un rôle privilégié pour l’accès aux autres composants
matériels. En général, ce système est le seul à accéder aux cartes graphiques, audio et PCI,
aux périphériques USB, etc. Il n’est pas prévu que les systèmes domU accèdent directement
à ces composants. Il est cependant possible de bloquer certains périphériques PCI du dom0
et de les réserver à une instance de domU. Cela nécessite une configuration spéciale, que
nous ne détaillerons pas ici.
Figure 33.2
Gestion du matériel
dans Xen.
Accès au réseau
La corrélation complexe entre le matériel, Xen, dom0 et domU se manifeste probablement le
mieux dans le cadre de l’accès au réseau. On pourrait écrire un chapitre complet sur les dif-
férentes possibilités de configuration réseau dans Xen. Nous nous limitons ici à la variante
Linux Livre Page 641 Mardi, 23. septembre 2008 1:05 13
XEN 641
la plus courante : le réseau ponté (Bridged Networking). Tous les clients Xen (dom0 et domU)
ont un accès direct à un serveur externe ou un routeur qui, idéalement, fait fonctionner un
serveur DHCP. La Figure 33.3 illustre les nombreuses interfaces réseau que vous pouvez
trouver dans une configuration Xen typique.
Démarrage de Pendant le démarrage de l’ordinateur, tout se passe normalement. Le noyau dom0 charge
l’ordinateur
les modules du matériel physique et initialise eth0, eth1, etc.
Initialisation À la fin du processus InitV du système dom0, le programme xend est démarré. Il initialise les
du réseau via
xend interfaces réseau spécifiques à Xen. eth0 est renommé en peth0 et un pont réseau virtuel
(xenbr0) est créé. Celui-ci établit la connexion aux interfaces virtuelles vifn.m (vif signifie
virtual interface). L’accès au réseau de dom0 se fait via la nouvelle interface eth0, câblée vir-
tuellement avec vif0.0. Une fois le réseau complètement initialisé, il ne s’est apparemment
rien passé pour dom0 : il accède au réseau, comme auparavant, avec eth0. Cette interface
n’est cependant plus associée directement au matériel, mais à Xen.
Les systèmes domU accèdent simplement au réseau via eth0. eth0 est alors associé au pilote
réseau Xen (module xennet) qui étend le trafic réseau vers le réseau local avec vifn.n et
xenbr0. n est le numéro d’identifiant de la machine virtuelle Xen. Les interfaces vifn.m sont
créées automatiquement au démarrage des domaines et supprimées lorsque les domaines
correspondants sont arrêtés.
Figure 33.3
Accès au réseau
pour les domaines Xen.
Ce système est modifiable à l’infini. Lorsque plusieurs cartes réseau sont présentes sur
l’ordinateur, plusieurs interfaces pethn et ethn sont créées dans le dom0. Lorsque les domU
utilisent plusieurs cartes réseau, plusieurs interfaces vifn.m sont définies dans le dom0. Il
est également possible d’ajouter des réseaux virtuels avec plusieurs ponts.
Le réseau virtuel Xen est configuré dans le fichier /etc/xen/xendconfig.sxp.
Linux Livre Page 642 Mardi, 23. septembre 2008 1:05 13
642 LINUX
L’accès direct du domU à une partition de disque dur est autorisé uniquement lorsque cette partition
n’est utilisée par aucun autre domaine (y compris dom0).
Lorsque plusieurs domaines ont accès en même temps à une partition, les conflits et la corruption du
système de fichiers sont inévitables.
Sortie graphique
Normalement, seul dom0 a accès à la carte graphique et à la sortie écran. Il existe des confi-
gurations spéciales qui permettent à un domU de communiquer directement avec la carte
graphique, mais nous ne rentrerons pas ici dans les détails de ce cas particulier.
Cela est suffisant dans le cadre d’une utilisation serveur. Pour communiquer avec la
machine virtuelle sur laquelle fonctionne le serveur web, une simple connexion réseau
suffit. On peut également administrer le domaine via ssh dans une fenêtre de console.
Jusqu’à ce qu’un domU fonctionne correctement, il est cependant intéressant de disposer
d’une interaction indépendante du réseau qui ne fonctionne éventuellement pas encore. Les
possibilités suivantes s’offrent à vous :
• Console (texte). Xen peut rediriger la première console texte du domU dans une fenêtre
de console locale. Vous pouvez suivre le démarrage du domU et vous connecter. Les
consoles peuvent être couplées dès le démarrage (xm create domaine -c) ou ultérieure-
ment (xm console domaine). Cependant, ce principe ne fonctionne que pour une seule
console, ce qui est en pratique très limité.
• SDL (graphique). SDL (Simple DirectMedia Layer, couche DirectMedia simple) est une
bibliothèque qui accède directement à différents éléments multimédias (framebuffer 2D,
Linux Livre Page 643 Mardi, 23. septembre 2008 1:05 13
XEN 643
OpenGL, clavier, souris et système audio). Xen utilise SDL pour afficher le système
graphique d’un domU dans une fenêtre du dom0.
• VNC (graphique). Vous pouvez, comme alternative à SDL, utiliser VNC pour afficher le
système graphique du domU. Xen démarre un petit serveur VNC en même temps que
le domU lorsqu’il est configuré pour cela.
644 LINUX
Créer un Vous pouvez aussi directement créer une image à partir d’une partition. Il n’est alors néces-
fichier image à
partir d’une saire ni de créer le fichier, ni de le formater :
partition
root# dd if=/dev/sda7 of=fichier.img
Attention, la partition source de la commande dd ne doit pas être active ! On ne peut pas clo-
ner la partition du système démarré. Il faut pour cela démarrer l’ordinateur avec une autre
distribution ou un système live.
Utiliser le Dès que Xen lance le système domU dont le système de fichiers se trouve dans le fichier
système de
fichiers d’un image, vous pouvez accéder au système de fichiers. Vous pouvez ouvrir une fenêtre Xen,
fichier image installer un nouveau paquetage, etc. Vous pouvez aussi échanger des fichiers via le réseau
entre le système dom0, domU et les ordinateurs du réseau local.
Vous pouvez cependant aussi utiliser le système de fichiers de l’image lorsque domU n’est
pas lancé. Pour cela, il suffit de le monter dans l’arborescence du système avec mount. Il faut
utiliser l’option -o loop pour monter l’image comme périphérique de bouclage.
root# mkdir /systeme-domu
root# mount -t ext3 -o loop fichier.img /systeme-domu
Vous pouvez alors utiliser le système de fichiers de l’image, monté dans le répertoire /sys-
teme-domu. L’accès est en lecture/écriture. Vous pouvez donc modifier le système de fichiers,
par exemple pour corriger /etc/fstab. Il est souvent intéressant de démarrer un nouvel
interpréteur de commandes avec chroot. Cet interpréteur utilise le système de fichiers de
l’image comme répertoire racine. exit permet de le quitter.
root# chroot /systeme-domu
root# ls
bin boot dev etc home lib lost+found media misc mnt net
opt proc root sbin selinux srv sys tmp usr var
root# jmacs /etc/fstab
root# ...
root# exit
XEN 645
Si vous souhaitez limiter la mémoire du dom0, vous pouvez passer l’option dom0_mem=n à la
ligne kernel. n est la limite supérieure de la mémoire utilisable par le dom0 (en mégaoctets).
Au démarrage suivant, vous verrez divers messages s’afficher. Ceux-ci sont ensuite suivis des
messages usuels du noyau. Pour consulter les messages de Xen, utilisez la commande xm dmesg :
root# xm dmesg
__ __ _____ ____ _ _
\ \/ /___ _ __|___ / |___ \ / | _ __ ___/ | _ __ _ __ ___
\ // _ \ ’_ \ |_ \ __) | | |__| ’__/ __| |__| ’_ \| ’__/ _ \
/ \ __/ | | | ___) | / __/ _| |__| | | (__| |__| |_) | | | __/
/_/\_\___|_| |_|
|____(_)_____(_)_| |_| \___|_| | .__/|_| \___|
|_|
(XEN) Xen version 3.2.1-rc1-pre (buildd@buildd) (gcc version 4.2.3 (Ubuntu
4.2.3-2ubuntu7)) Fri Apr 11 01:12:53 UTC 2008
...
(XEN) Xen heap: 9MB (10124kB)
(XEN) Domain heap initialised: DMA width 32 bits
(XEN) PAE enabled, limit: 16 GB
Linux Livre Page 646 Mardi, 23. septembre 2008 1:05 13
646 LINUX
xm list permet de voir que Xen exécute votre système Linux dans le domaine privilégié
dom0 :
root# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 950 2 r----- 736.1
xend Tandis que les fonctions de base de Xen sont démarrées avant le noyau Linux, diverses opé-
rations de Xen se déroulent tout à la fin. À la fin du processus InitV, le script xend est démarré.
Il lance le démon de contrôle de Xen du même nom et met en place le réseau virtuel Xen.
Configuration La configuration de base a lieu dans le fichier /etc/xen/xend-config.sxp. Celui-ci contient,
entre autres, tous les paramètres du réseau virtuel Xen. Dans la plupart des distributions,
vous pouvez laisser le script tel quel lors de vos premières expériences ; sous Ubuntu, vous
devez éventuellement rectifier le paramètre network-script.
# /etc/xen/xend-config.sxp
...
# utiliser un pont réseau
(network-script network-bridge)
(vif-script vif-bridge)
...
# limite inférieure de RAM pour dom0
(dom0-min-mem 256)
Le répertoire /etc/xen contient divers scripts supplémentaires que vous n’avez générale-
ment pas besoin de modifier, ainsi qu’un fichier de configuration pour chaque système
domU. La création de ces fichiers de configuration est couverte dans la section suivante.
XEN 647
démarrage du domaine. Xen lit ces deux fichiers avant même que le système de fichiers
du domU ne soit activé.
Comme des fonctions Xen sont exécutées sous forme de modules (xenblk, xennet), les
modules doivent se trouver dans le fichier initrd. Vous ne pouvez omettre ce point que
lorsque les fonctions Xen sont directement compilées dans le noyau.
Le système de fichiers du domU doit contenir un répertoire de modules correspondant
au noyau (/lib/modules/version_noyau). Il était d’usage auparavant de mettre en place
des noyaux monolithiques pour les systèmes dom0 et domU. Cet usage n’est plus de
mise. La plupart des distributions fournissent maintenant un noyau Xen modulaire
utilisable pour le dom0 et les domU.
• Fichiers de configuration. Tous les paramètres, qu’ils concernent le matériel virtuel ou
d’autres éléments du domaine, sont enregistrés dans le fichier de configuration /etc/xen/
nom_de_domaine. Cette section présente quelques exemples pour ce fichier de configuration.
Plusieurs Le problème de l’installation des systèmes invités est que Xen ne peut lancer que des systè-
chemins
mènent à Xen mes dotés d’un noyau modifié pour Xen. Les distributions courantes n’utilisent pas de
noyau de ce type pendant l’installation. Il n’est donc pas possible d’effectuer une installation
habituelle depuis un CD ou un fichier ISO. Les possibilités suivantes s’offrent à vous :
• Vous pouvez utiliser une image Xen préinstallée. Vous pouvez la télécharger sur Internet,
par exemple sur http://www.jailtime.org. J’ai cependant eu de mauvaises expériences avec
ce type de solution. Les images sont rarement compatibles avec une version de Xen et une
architecture processeur données. Il manque souvent le noyau et le fichier initrd.
• Vous pouvez lancer une installation classique sur une partition de disque, puis installer un
noyau Xen et un fichier initrd pour Xen. Une fois ces étapes effectuées, quittez le système
et modifiez quelques éléments (par exemple, dans /etc/fstab). Si vous le désirez, vous
pouvez copier le système de fichiers dans un fichier image avec dd. Pour finir, démarrez
Xen et accédez au domU directement sur la partition ou par le biais d’un fichier image.
• Vous pouvez aussi lancer l’installation dans QEMU et utiliser l’image QEMU dans Xen.
L’avantage de cette méthode est que vous n’avez pas à quitter le système qui fonctionne.
L’installation dure cependant plus longtemps.
• Certaines distributions (Fedora, Red Hat et SUSE) fournissent des outils pour lancer
l’installation de manière paravirtualisée dans Xen. Le programme d’installation est
pour cela chargé depuis le réseau et lancé avec un noyau compatible avec Xen. Cette
procédure dépend néanmoins largement de la distribution et de la version.
• Les utilisateurs de Debian peuvent mettre en place un système Debian élémentaire avec
debootstrap dans une partition montée dans un répertoire. Après la configuration de
base, il suffit d’ajouter un noyau compatible avec Xen pour démarrer le système avec
Xen. Vous trouverez diverses documentations à ce sujet en cherchant xen debootstrap
dans un moteur de recherche.
• Si votre processeur sait utiliser les fonctions de virtualisation, vous pouvez lancer l’ins-
tallation dans un domaine HVM. Cette opération est comparable à l’installation d’une
version de Windows.
Linux Livre Page 648 Mardi, 23. septembre 2008 1:05 13
648 LINUX
Dans cette section, nous utiliserons la méthode d’installation de la distribution sur un partition
du disque.
Installation Ce premier exemple pratique montre comment installer Fedora 9 comme système invité
de Fedora
dans Xen. (Notez que Fedora 9 ne fonctionne pas en tant que système dom0, mais en tant
que domU. Fedora 10 devrait fonctionner en tant que dom0.) La plupart des étapes sont
valables pour l’ensemble des distributions ; certains détails sont spécifiques à la distribution
ou à la version. Dans ce qui suit, nous indiquons pour toutes les commandes sur quels sys-
tèmes elles doivent être lancées. @domU spécifie que les commandes sont lancées sur le système
invité (qu’il soit déjà lancé par Xen ou non), et @dom0 sur le système hôte.
Installation de Redémarrez tout d’abord l’ordinateur et créez une partition supplémentaire sur le disque
la distribution
dur. Si vous désirez transférer l’installation dans une image disque, la partition doit être la
plus petite possible (par exemple, 3 Go). Cela économise ensuite du temps lorsque vous
gérerez le fichier image.
Installez ensuite votre distribution normalement. Pensez à utiliser la même architecture que
votre système Xen dom0 ! L’installation dépend évidemment de la manière dont vous
comptez l’utiliser dans Xen. Cependant, plus l’installation est réduite, plus elle est rapide à
mettre en place. Il est peu probable que vous ayez besoin d’OpenOffice.org dans un système
Xen invité ; et si c’est le cas, il sera toujours temps de l’installer.
Lors de mes tests, j’ai désactivé le pare-feu et SELinux. Cela minimise les sources possibles
d’erreur si un problème survient.
De plus, il est souvent opportun de désinstaller tous les services qui ne sont pas nécessaires
dans un environnement Xen (avahi, smartd, gpm, etc.), ou du moins d’en supprimer le
démarrage automatique.
Noyau Xen Certaines distributions permettent, pendant l’installation, d’installer un noyau Xen en plus
du noyau habituel. Dans le cas contraire, démarrez le système Linux et ajoutez le noyau Xen
avec les outils de gestion de paquetages.
Fichier initrd Pour pouvoir démarrer la distribution à partir de Xen, vous avez besoin d’un fichier initrd.
Or, celui créé lors de l’installation du noyau Xen de Fedora ne contient pas les modules xen-
blk et xennet. Il faut donc le régénérer :
root@domU# cd /boot
root@domU# mkinitrd --preload=xenblk --with=xennet \initrd-xen-fedora9
2.6.25-3.2.fc9.i686.xen
Redémarrage L’installation de l’invité Fedora est alors terminée. Redémarrez votre ordinateur et lancez le
du dom0
système Xen (dom0). Si vous le désirez, vous pouvez maintenant créer une image de l’instal-
lation avec dd et travailler avec cette image par la suite :
root@dom0# mkdir /domu-filesys
root@dom0# dd if=/dev/sda7 of=fedora.img
Vous pouvez aussi accéder directement à la partition de l’installation de Fedora. Nous sup-
posons ici que Fedora est installé dans la partition /dev/sda7. Dans tous les cas, il faut mon-
ter le système invité dans l’arborescence courante avec, selon le cas, l’une des deux
commandes suivantes :
root@dom0# mount -t ext3 -o loop fedora.img /domu-filesys
root@dom0# mount -t ext3 /dev/sda7 /domu-filesys
Linux Livre Page 649 Mardi, 23. septembre 2008 1:05 13
XEN 649
Copier le Pour que Xen puisse lancer le système invité, il faut copier le noyau et le fichier initrd de
noyau et le
fichier initrd Fedora vers le système dom0. Si vous envisagez d’utiliser plusieurs invités Xen, il est préfé-
rable de créer un sous-répertoire de boot pour chaque noyau :
root@dom0# mkdir /boot/fedora
root@dom0# cd /boot/fedora
root@dom0# cp /domu-filesys/boot/vmlinuz-2.6.25-3.2.fc9.i686.xen .
root@dom0# cp /domu-filesys/boot/initrd-xen-fedora9 .
/etc/fstab Lorsque Fedora sera lancé par le biais de Xen, ses périphériques de disques recevront de
nouveaux noms qui correspondent au fichier de configuration de Xen. Il faut donc adapter
le fichier /etc/fstab :
root@dom0# jmacs /domu-filesys/etc/fstab
Le plus simple est d’utiliser pour la partition racine l’UUID de la partition comme identifiant
de montage. Pour obtenir cet UUID, il faut lancer la commande vol_id, suivie du nom du péri-
phérique ou du fichier. Cette commande peut être lancée quel que soit le système auquel est
attaché le périphérique : l’UUID ne change pas selon le système auquel il est attaché.
Les premières expériences peuvent être lancées sans partition d’échange. Il faut donc géné-
ralement modifier /etc/fstab selon ce schéma :
# /etc/fstab dans le système domU
UUID=XXXX / ext3 defaults 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
Fichier de Pour finir la préparation, il faut créer un fichier de configuration pour le nouveau domU dans le
configuration
de Xen répertoire /etc/xen. L’exemple suivant indique comment le nouveau domaine Xen doit s’appe-
ler, où se trouvent le noyau et le fichier initrd (dans le système dom0), quels paramètres il faut
passer au noyau du domU et combien de RAM est attribuée au domaine (en mégaoctets).
La ligne root indique l’emplacement du fichier racine. Pour simplifier l’amorçage, utilisez
ici aussi l’UUID de la partition ou du fichier.
La ligne disk indique l’emplacement du fichier image et le nom des périphériques pour
domU. À la place de xen-images, indiquez le répertoire dans lequel se trouve le fichier
image. Dans de nombreux exemples Xen, vous verrez à la place de tap:aio le mot clé file:.
Cette variante fonctionne également, mais elle est plus lente.
Le mot clé vif s’assure que le système invité peut accéder au réseau. Si l’ordinateur local fait
fonctionner un serveur DHCP, le domU y récupère une IP. Sinon, vous devez configurer
l’interface eth0 du domU avec ses propres outils de configuration.
sdl=1 permet d’afficher une fenêtre au démarrage du système invité, qui affiche le contenu
de son système graphique (framebuffer). Pour les premières tentatives, vous pouvez vous en
dispenser.
# /etc/xen/fedora dans le système de fichiers du dom0
name = ’fedora’
kernel = ’/boot/fedora/vmlinuz-2.6.25-3.2.fc9.i686.xen’
Linux Livre Page 650 Mardi, 23. septembre 2008 1:05 13
650 LINUX
ramdisk = ’/boot/fedora/initrd-xen-fedora9’
root = ’UUID=XXXX-XXXX ro’
memory = 400
disk = [’tap:aio:/xen-images/fedora.img,sda1,w’]
vif = [ ’’ ]
sdl = 1
Lorsque vous démarrez le système domU directement depuis la partition /dev/sda7, modifiez
la ligne disk comme suit :
# /etc/xen/fedora
...
disk = [’phy:sda7,sda1,w’]
Premier Avant de démarrer votre nouveau système domU, vous devez démonter son système de
démarrage
fichiers de l’arborescence du dom0 :
root@Dom0# cd
root@Dom0# umount /domu-filesys
Pour finir, lancez dans une console xm create fedora -c. Cela lance le domaine fedora et lie
le terminal Xen avec la console courante. Toutes les tâches du domU (messages du noyau,
etc.) s’affichent dans la console locale. Lorsque tout se passe bien, vous pouvez vous connecter.
Cet exemple est largement élagué pour des raisons de place.
root@dom0# xm create fedora -c
Using config file "/etc/xen/fedora".
Started domain fedora
...
Linux version 2.6.25.3-2.fc9.i686.xen (mockbuild@) (gcc version 4.3.0 20080428
(Red Hat 4.3.0-8) (GCC) ) #1 SMP Thu May 29 12:48:20 EDT 2008
ACPI in unprivileged domain disabled
BIOS-provided physical RAM map:
Xen: 0000000000000000 - 0000000019800000 (usable)
0MB HIGHMEM available.
408MB LOWMEM available.
...
Detected 1196.929 MHz processor.
...
input: Macintosh mouse button emulation as /devices/virtual/input/input0
...
XENBUS: Device with no driver: device/vbd/2049
XENBUS: Device with no driver: device/vif/0
...
SCSI subsystem initialized
register_blkdev: cannot get major 8 for sd
...
Fedora release 9 (Sulphur)
Kernel 2.6.25.3-2.fc9.i686.xen on an i686 (/dev/hvc0)
localhost.localdomain login: kofler
Password: ******
Last login: Thu Apr 5 19:59:41 on hvc0
[kofler@localhost ~]$
Linux Livre Page 651 Mardi, 23. septembre 2008 1:05 13
XEN 651
Pour connaître l’état de tous les domaines Xen, vous pouvez lancer la commande xm list.
L’état b signifie blocked et indique que le système n’a rien à faire et qu’il attend des tâches.
root@Dom0# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1213 2 r----- 357.2
fedora 10 399 1 -b---- 19.0
Problèmes J’ai bien dû lancer vingt fois xm create name -c avant que mon premier domaine domU ne
se lance. Les sources d’erreur les plus fréquentes sont les suivantes :
• Le noyau du domU est incompatible avec Xen (mauvaise architecture de processeur,
prise en charge de PAE, message d’erreur error 22, invalid argument).
• Ni le noyau du domU, ni le fichier initrd ne contiennent le pilote xenblk. Alors, le
noyau du domU ne peut pas accéder à la partition racine, ce qui renvoie l’erreur kernel
panic - not syncing.
• Le noyau lancé par Xen ne correspond pas au répertoire de modules /lib/modules/n du
système domU. Le noyau domU ne peut donc pas charger de modules. Dans ce cas, le
démarrage du système commence normalement, mais les problèmes surviennent pendant
le processus InitV.
Heure Le système domU utilise automatiquement l’heure du dom0. Il ne sert donc à rien d’exécuter
un serveur ntpd sur le domU. Si vous désirez régler l’heure de ce système indépendamment de
l’heure du dom0, vous devez ajouter la commande suivante dans le processus InitV :
root# echo 1 > /proc/sys/xend/independent_wallclock
Cloner un Lorsque le système fonctionne, vous pouvez le cloner sans problème. Arrêtez le domU,
domU
copiez l’image et le fichier de configuration, puis modifiez la ligne disk du nouveau fichier
de configuration. C’est tout ! Vous pouvez alors démarrer deux systèmes domU indépen-
damment l’un de l’autre.
Le fichier de configuration de Xen doit suivre le schéma suivant. Les paramètres builder,
kernel et device_model s’assurent que Xen lance le mode HVM et non la paravirtualisation.
device_model doit contenir, selon l’architecture du processeur du dom0, lib ou lib64.
Linux Livre Page 652 Mardi, 23. septembre 2008 1:05 13
652 LINUX
Le paramètre disk définit cette fois deux paramètres : un fichier image pour le disque vir-
tuel et un fichier ISO pour le lecteur CD. Windows voit ces deux lecteurs comme maîtres
des deux canaux IDE. Attention, le mode HVM de Xen ne prend pas encore en charge
l’accès aux données via tap:aio:. Vous devez donc utiliser l’écriture classique file:.
boot demande à Xen de démarrer depuis le CD-ROM (lecteur D: dans la nomenclature
Windows).
# /etc/xen/winxp dans le système dom0
name = ’winxp’
builder = ’hvm’
kernel = ’/usr/lib/xen/boot/hvmloader’
device_model = ’/usr/lib/xen/bin/qemu-dm’
# ’/usr/lib64/xen/bin/qemu-dm’ (bei 64-Bit-Xen)
memory = 256
disk = [ ’file:/\zsi{xen-images}/winxp.img,ioemu:hda,w’,
’file:/\zsi{iso-images}/winxp_pro_with_sp2.iso,hdc:cdrom,r’]
boot = ’d’
vif = [ ’type=ioemu’ ]
sdl = 1
L’installation elle-même se déroule comme sur un ordinateur réel, mais plus lentement.
Lorsque l’installation s’est bien déroulée, modifiez les paramètres disk et boot du fichier de
configuration. Vous pourrez ainsi démarrer directement Windows depuis le disque dur
virtuel C: et accéder au lecteur CD physique du dom0.
# /etc/xen/winxp dans le système de fichiers dom0
...
disk = [ ’file:/\zsi{xen-images}/winxp.img,ioemu:hda,w’,
’phy:scd0,hdc:cdrom,r’]
boot = ’c’
XEN 653
Si, pour une raison ou une autre, vous ne pouvez plus accéder au domU, vous pouvez
toujours l’arrêter avec xm. L’identifiant du domaine s’obtient avec xm list.
root@dom0# xm shutdown identifiant
Console Xen
La forme la plus simple d’interaction avec le système domU est la console Xen. Si vous
avez oublié l’option -c en lançant votre domaine, vous pouvez vous connecter à la console
ultérieurement :
root@dom0# xm console nom_domaine
Cette commande donne souvent l’impression qu’elle a été ignorée. En fait, elle a bel et bien
fonctionné. Appuyez sur Entrée ; l’invite de connexion du système domU apparaît alors
dans la console.
Pour sortir de la console, tapez la combinaison de touches Ctrl+] – soit, sur un clavier fran-
çais, Ctrl+AltGr+). Le système domU continue à fonctionner, mais vous ne pouvez plus voir
ce qu’il se passe dans la console.
SDL
Lorsque la configuration de Xen contient la ligne sdl=1, une fenêtre doit s’afficher immédia-
tement après le démarrage avec le contenu de l’écran (framebuffer). Lorsque le domU
démarre X, la fenêtre affiche le système graphique du système. Pour que cela fonctionne,
le fichier de configuration de X du système domU doit contenir les paramètres suivants. Les
paramètres Identifier sont arbitraires, mais doivent correspondre à ceux indiqués dans
les sections Screen et ServerLayout.
# /etc/X11/xorg.conf dans le système de fichiers du domU
Section "Device"
Identifier "<nom_périphérique>"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
EndSection
Section "InputDevice"
Identifier "<nom_souris>"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/input/mouse0"
EndSection
...
Fermer et Lorsqu’on ferme une fenêtre SDL, les domaines paravirtualisés continuent à tourner, tandis
rouvrir la
fenêtre SDL que les domaines HVM s’arrêtent immédiatement. Lorsqu’un domaine paravirtualisé
fonctionne, vous pouvez rétablir la connexion SDL en lançant manuellement xen-sdlfb.
L’identifiant du domaine s’obtient avec xm list.
root@dom0# /usr/lib/xen/bin/xen-sdlfb --domid 10
Linux Livre Page 654 Mardi, 23. septembre 2008 1:05 13
654 LINUX
VNC
Xen possède un petit serveur VNC. Vous pouvez donc aussi afficher le contenu de l’écran
via VNC. Pour cela, le fichier de configuration de Xen doit contenir la ligne vnc=1. Par
défaut, le serveur VNC de Xen utilise l’adresse IP 127.0.0.1, les ports 5900, 5901, 5902, etc. et
aucun mot de passe. Tous les paramètres de VNC peuvent être modifiés globalement
dans /etc/xen/xen-config.sxp ou individuellement pour chaque domaine. Attention, le
paramètre utilisé dans de nombreux exemples, vnclisten = ’0.0.0.0’, donne accès aux
machines virtuelles pour tout le réseau local, ce qui peut représenter un risque de sécurité.
# /etc/xen/domainname dans dom0
...
vnc = 1
vnclisten = "127.0.0.1"
vncpasswd = "xxx"
Dans le domU, il faut utiliser la même configuration de X que pour SDL (voir ci-dessus).
Lorsque le domU est démarré, lancez vncviewer ainsi :
root@dom0# vncviewer localhost:5906
XEN 655
disk = [’tap:aio:/repertoire/root.img,sda1,w’,
’tap:aio:/repertoire/swap.img,sda2,w’,
’phy:scd0,scd0,r’]
• vnc = 1 démarre un serveur VNC avec le domaine. Les paramètres vnclisten et vnc-
passwd permettent de contrôler sur quelle adresse le serveur peut être contacté et par
quel mot de passe il est protégé.
656 LINUX
Outils Il existe diverses interfaces d’administration pour Xen, comme par exemple Xenman (voir
d’adminis-
tration http://xenman.sourceforge.net). SUSE et Red Hat ont des outils spécifiques aux distributions :
graphiques le module YaST Système, Virtualisation (paquetage yast-vm) et virt-manager.
Linux Livre Page 657 Mardi, 23. septembre 2008 1:05 13
ANNEXES
Références thématiques
A
Ce chapitre offre un rapide descriptif des principales commandes sous Linux.
Pour une référence complète des commandes en question, utilisez man commande
ou info commande (ou help commande s’il s’agit d’une commande intégrée à
l’interpréteur). Il se peut que certaines des commandes décrites ici doivent être
installées séparément.
658 LINUX
Recherche de fichiers
beagle-query cherche des fichiers d’après leur contenu
find cherche des fichiers d’après leur nom, taille, date, etc.
grep cherche du texte dans un fichier texte
locate cherche des fichiers dans une base de données préétablie
updatedb actualise la base de données de locate
whereis cherche des fichiers dans des répertoires prédéfinis
which parcourt les répertoires de PATH à la recherche de commandes
Convertisseurs
a2ps convertit un fichier texte en format PostScript
convert convertit un fichier graphique vers différents formats
convmv modifie le jeu de caractères d’un nom de fichier
enscript convertit un fichier texte en format PostScript
epstopdf convertit un fichier EPS en fichier PDF
gs convertit des fichiers PostScript et PDF en format bitmap
inconv modifie le jeu de caractères d’un fichier texte
mogrify modifie les paramètres d’un fichier image
mpage convertit un fichier texte en format PostScript
Linux Livre Page 660 Mardi, 23. septembre 2008 1:05 13
660 LINUX
662 LINUX
Gestion de paquetages
alien convertit des paquetages entre différents formats
alternatives ajuste les liens de /etc/alternatives (Fedora, Red Hat)
apt-cache affiche des informations sur les paquetages installés et disponibles
apt-cdrom ajoute un CD/DVD comme dépôt de paquetages pour APT
apt-get permet de gérer des paquetages DEB
apt-key récupère la clé d’un dépôt de paquetages APT
aptitude permet de gérer des paquetages DEB
dpkg (dés)installe ou actualise les paquetages DEB
rpm (dés)installe ou actualise les paquetages RPM
update-alternatives ajuste les liens de /etc/alternatives
yum permet de gérer des paquetages RPM
zypper permet de gérer des paquetages RPM (spécifique à SUSE)
Fonctions réseau
ftp transfère des fichiers interactivement via FTP
host résout les adresses IP et noms réseau
hostname affiche et modifie le nom de l’ordinateur local
ifconfig configure les interfaces réseau et affiche leur état
ifdown désactive une interface réseau
ifup active une interface réseau
iptables configure le filtre de paquets (pare-feu) de Linux
iwconfig configure les interfaces réseau sans fil et affiche leur état
iwlist affiche des informations sur le contrôleur et le réseau Wi-Fi
netstat affiche des informations sur l’activité réseau de l’ordinateur local
nmap affiche des informations sur l’activité réseau d’un ordinateur distant
ping teste la connexion réseau vers un autre ordinateur
route modifie et affiche les tables de routage IP
rsync synchronise des répertoires réseau
scp transfère des fichiers de manière chiffrée via SSH
sftp transfère des fichiers de manière chiffrée via SFTP
smbclient transfère des fichiers vers/depuis des partages Windows
ssh permet de se connecter à d’autres ordinateurs du réseau
traceroute affiche les étapes vers une adresse réseau
wget télécharge des fichiers ou des répertoires via FTP/HTTP
Linux Livre Page 663 Mardi, 23. septembre 2008 1:05 13
Administration de l’imprimante
lpadmin ajoute ou supprime une imprimante (CUPS)
lpinfo affiche des informations sur les périphériques et pilotes d’impression dis-
ponibles (CUPS)
lpoptions affiche les options d’une imprimante et les modifie (CUPS)
lpq affiche le contenu d’une file d’impression
lpr imprime un fichier
lprm supprime une tâche d’impression de la file
lpstat affiche des informations sur les imprimantes, les tâches d’impression, etc.
(CUPS)
Gestion du matériel
acpi affiche des informations sur l’état de la batterie
free affiche l’espace libre de la mémoire (mémoire vive et espace d’échange)
lshal affiche des informations sur la couche d’abstraction matérielle HAL
lspci affiche des informations sur les composants PCI
lsscsi affiche des informations sur les périphériques SCSI connectés
lsusb affiche des informations sur les périphériques USB connectés
pccardctl contrôle les cartes PCMCIA
Noyau et modules
depmod actualise le fichier de dépendances des modules modules.dep
insmod charge un module dans le noyau
lsmod affiche la liste de tous les modules chargés
modinfo affiche des informations sur un module
modprobe charge un module et tous les modules dont il dépend dans le noyau
rmmod supprime un module du noyau
sysctl modifie les paramètres du noyau
664 LINUX
Aide en ligne
apropos affiche les commandes relatives à un thème
help affiche la description d’une commande de l’interpréteur de commandes
info démarre le système info
man affiche la description d’une commande
whatis affiche une courte description d’une commande
Divers
basename détermine le nom de fichier d’un chemin
cksum calcule la somme de contrôle CRC d’un fichier
date affiche la date et l’heure
dirname détermine le répertoire d’un chemin
dmesg affiche les messages du noyau, en particulier pendant le démarrage
expr exécute des calculs et des comparaisons
ldd affiche les bibliothèques nécessaires d’un programme
md5sum calcule une somme de calcul d’un fichier
rdev modifie quelques bits dans le noyau
sleep attend une durée déterminée
sum calcule la somme de contrôle d’un fichier
tty affiche le nom du périphérique du terminal courant
uname affiche le nom et le numéro de version du système d’exploitation
xargs transmet la sortie standard comme argument d’une autre commande
Linux Livre Page 665 Mardi, 23. septembre 2008 1:05 13
bash – Programmation
break termine une boucle prématurément
case introduit une différenciation de cas
continue fait l’impasse sur le reste du corps de la boucle
exit termine le programme shell
for introduit une boucle
function définit une nouvelle fonction
if introduit une condition
local définit une variable locale à une fonction
return termine une fonction
source lance le fichier shell indiqué
test évalue une condition
until introduit une boucle
while introduit une boucle
bash – Commandes
dirs affiche la liste des répertoires enregistrés
eval évalue la commande indiquée
popd passe dans le dernier répertoire enregistré
pushd enregistre le répertoire courant et passe dans un nouveau répertoire
trap lance une commande à l’arrivée d’un signal
ulimit contrôle les ressources réclamées par le shell
wait attend la fin d’un processus en tâche de fond
Linux Livre Page 666 Mardi, 23. septembre 2008 1:05 13
Linux Livre Page 667 Mardi, 23. septembre 2008 1:05 13
Sources d'information
B
Ce chapitre recense divers sites web utiles pour l'installation et la configuration des distribu-
tions Linux mentionnées dans cet ouvrage. Celles-ci sont énumérées dans l'ordre alphabétique.
Debian
Site web de Debian http://www.debian.org/
Communauté francophone http://forum.debian-fr.org/
Wiki Debian http://wiki.debian.org/
Manuel d'installation http://www.debian.org/releases/stable/installmanual
Fedora
Site web de Fedora http://www.fedoraproject.org/
Communauté francophone http://www.fedora-fr.org/
Wiki Fedora https://fedoraproject.org/wiki/
Wiki Fedora francophone http://doc.fedora-fr.org/wiki/
Manuel d'installation http://doc.fedora-fr.org/wiki/Guide_d'installation_de_Fedora_en
_images
Mandriva
Site web de Mandriva http://www.mandriva.com/
Communauté francophone http://www.mandriva.com/fr/communaute/bienvenue
Wiki Mandriva http://wiki.mandriva.com/
Manuel d'installation http://wiki.mandriva.com/fr/Installer_Mandriva_Linux
openSUSE
Site web d'openSUSE http://www.opensuse.org/
Communauté francophone http://fr.opensuse.org/
Manuel d'installation http://fr.opensuse.org/Documentation_utilisateurs/Installation
Linux Livre Page 668 Mardi, 23. septembre 2008 1:05 13
668 LINUX
Red Hat
Site web de Red Hat http://www.redhat.com
Red Hat France http://www.redhat.fr/
Manuel d'installation http://www.redhat.com/docs/manuals/linux/ (en anglais)
SUSE
Site web de SUSE http://www.novell.com/linux/
Informations généralistes
Divers articles d'aide http://www.lea-linux.org
Comparatif de distributions http://www.distrowatch.com
Articles divers http://www.unixgarden.com
Index
SMBFS 449 /etc/sysconfig/network 508, 509,
Symboles syntaxe 423 512
$DISPLAY 220 système de fichiers 424 /etc/sysconfig/network/
$PATH 214 UUID 423, 446 config 526
$PS1 285 vérification du système de /etc/sysconfig/network-
. 182 fichiers 425 scripts 511
.. 182 VFAT 437 /etc/syslog.conf 334
/ 181 xfs 435 /etc/timezone 307
/bin 209 /etc/group 312 /home 182, 209
/boot 209 /etc/gshadow 316 /lib 209
/dev 209 /etc/host.conf 506 /lib/firmware 519
/dev/null 211 /etc/hostname 509 /lost+found 209
/dev/zero 211 /etc/hosts 505 /media 209
/etc 209 /etc/iftab 510 /mnt 209
/etc/adduser.conf 310 /etc/init.d 476 /opt 209
/etc/aliases 99 /etc/init.d/ 225 /proc 209
/etc/default 303 reload 226 /proc/acpi 326
/etc/default/console-setup 306 restart 226 /proc/apm 327
/etc/default/rcS 307 start 225 /proc/asound 331
/etc/deluser.conf 310 stop 226 /proc/net/wireless 523
/etc/exports 601 /etc/init.d/network 511, 512 /root 182, 209
/etc/fstab 423 /etc/init.d/networking 510 /sbin 210
CD 442 /etc/localtime 308 /sbin/setsysfont 305
CIFS 449 /etc/login.defs 314 /share 210
clé USB 446 /etc/logrotate.conf 335 /srv 210
disque dur externe 446 /etc/logrotate.d/* 335 /sys 210
DVD 442 /etc/network/interfaces 510, 524 /tmp 210
exemple 423 /etc/pam.d 317 /usr 210
ext3 429 /etc/passwd 310 sous-répertoires 210
LABEL 423 /etc/rc.d 476 /var 210
NFS 448 /etc/resolv.conf 503, 506 /var/adm/log 334
NTFS /etc/security 317 /var/log 334
ntfs-3g 440 /etc/services 562
/etc/shadow 313
ntfsmount 439
pilote ntfs 438 /etc/skel 311
Numériques
option users 446 /etc/sysconfig 303 32 et 64 bits 26
options 425 /etc/sysconfig/clock 307 3D 387
partition d’échange 450 /etc/sysconfig/console 306 bureau 389
reiser4 433 /etc/sysconfig/i18n 305 tester 388
reiserfs 433 /etc/sysconfig/keyboard 305 802.11x (standards) 513
Linux Livre Page 670 Mardi, 23. septembre 2008 1:05 13
670 LINUX
INDEX 671
672 LINUX
INDEX 673
674 LINUX
INDEX 675
676 LINUX
INDEX 677
678 LINUX
INDEX 679
680 LINUX
INDEX 681
682 LINUX
INDEX 683
684 LINUX
INDEX 685
686 LINUX
INDEX 687
O P PPTP 572
remise à zéro 569
PAM 316 réseau local 565
OASIS 120
droits d’accès 317 sécuriser un client
OCR 148
Paquetages 339 sans fil 571
OFS 419
administration VPN 572
Ogg Vorbis 161
centralisée 340 services 573
ogg123 164
alien 355 Squid 575
oggenc 233
APT Partage Windows
Okular 77, 588
Voir APT accès avec Nautilus 60
OpenDocument 120 choix à l’installation 36
OpenGL 387 Konqueror 74
commandes, référence 662 parted 413
OpenOffice 119 conversion 355
alternatives 133 création d’une partition 414
DEB 348
Base 130 démarrage 413
APT
Calc 126 exemple d’utilisation 414
Voir APT
champ 124 interfaces graphiques 415
documentation 49
coupure des mots 124 LVM 453
dpkg
export PDF 125, 129 Voir dpkg mkpart 414
formats de fichiers 120 formats 339 rm 414
image 124 groupes préconfigurés 36 Parted Magic 408
Impress 127 système Partition 28, 403
impression 125, 127, 129 de gestion 339 /etc/fstab 423
index lexical 125 RPM amorçage 33
Java 119 Voir RPM augmentation de taille 411
Linux Livre Page 688 Mardi, 23. septembre 2008 1:05 13
688 LINUX
INDEX 689
690 LINUX
INDEX 691
692 LINUX
INDEX 693
694 LINUX
INDEX 695
696 LINUX
INDEX 697
698 LINUX
Linux
• Navigateurs Internet (Firefox, Konqueror)
• E-mail (Thunderbird, Evolution, Kontact)
• OpenOffice
• Appareils photo numériques, numérisation,
gestion des photos
• Gimp
• Audio et vidéo
• La console
• Gestion des fichiers
Installation, configuration •
•
Gestion des processus
Convertisseurs graphiques, audio et texte
• Outils réseau
et applications • Vim
• Emacs et Xemacs
• Bash
La bible de l’utilisateur Linux enfin traduite ! • Configuration de base
• Gestion des logiciels et des paquetages
Véritable outil de référence depuis plus de dix ans, cet ouvrage • Système XWindow
exceptionnel vous accompagnera au quotidien dans la découverte • Administration du système de fichiers
et la maîtrise de Linux. Que vous soyez débutant ou confirmé, • Démarrage du système
• Noyau et modules
vous y trouverez tout ce que vous avez besoin de savoir : ins- • Configurer l’accès réseau (réseau local, Wi-Fi)
tallation, distributions, configuration du système et des réseaux, • Accès à Internet
outils et applications disponibles, mais également commandes • Passerelle Internet (mascarade et DHCP)
shell, gestion des paquetages, systèmes de fichiers, noyau, outils • Sécurité du réseau
• Serveur de réseau local (CUPS, NFS et Samba)
d’administration, virtualisation, etc. • Lancer des programmes Windows (Wine,
Il couvre les distributions les plus répandues, la majeure partie de CrossOver)
leurs usages domestiques et les dernières nouveautés du monde • Virtualisation avec VMware, VirtualBox, QEMU
Linux : bureaux 3D, KDE4, Xen. Une référence thématique des et KVM
• Xen
commandes est fournie en fin d’ouvrage. • Références thématiques
Ce guide, complet et accessible, vous donnera toutes les clés pour • Sources d’informations
utiliser et surtout comprendre Linux, et fera de vous un incondi-
tionnel de ce système d’exploitation libre et sûr.
À propos de l’auteur
Niveau : Tous niveaux
Michael Kofler a déjà aidé plusieurs générations d’utilisateurs à faire leurs pre-
miers pas sous Linux. Ses ouvrages sur Linux, sur PHP 5 et sur MySQL font partie Catégorie : Système d’exploitation
des livres les plus lus dans le domaine du logiciel libre. Configuration : PC