Vous êtes sur la page 1sur 63

Pour citer cet ouvrage

Z. Bouziri, N. H. Andriambelo, A. Boyanov, N. Larrousse (2010). Prparation lexamen 102 pour la certification de lInstitut professionnel de Linux, niveau junior (LPIC-1). Agence universitaire de la Francophonie, Paris. Disponible sur le Web : www.lpi-francophonie.org/spip.php?article234. Premire dition : N. H. Andriambelo, A. Boyanov, N. Larrousse (2007). Institut professionnel de Linux. Support de formation LPIC 102. Agence universitaire de la Francophonie, ditions des archives contemporaines, Paris. 167 p. ISBN 978-2-914610-51-3 Mis disposition sous contrat libre Creative Commons BY-NC-CA http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

Les auteurs remercient Vronique Pierre pour son appui la relecture et la mise en forme de louvrage.

Agence universitaire de la Francophonie (AUF) Direction de linnovation pdagogique et de lconomie de la connaissance 4 place de la Sorbonne 75005 PARIS France www.auf.org

Ouvrage sous contrat Creative Commons BY-NC-SA p. 3

Prparation lexamen 102 pour la certification LPIC-1

Accs et utilisation
Cet ouvrage est diffus exclusivement au format numrique, gratuitement. Il est tlchargeable au format PDF sur le site LPI Francophonie, www.lpifrancophonie.org. Le contrat Creative Commons BY-NC-SA sous lequel il est mis disposition vous donne un certain nombre de droits, mais vous impose galement de respecter un certain nombre de conditions :

Table des matires


Pour citer cet ouvrage ........................................................................................3 Accs et utilisation..............................................................................................4
Les droits ............................................................................................................... 4 Les conditions respecter .................................................................................... 4

Les droits
Vous tes libre de reproduire, distribuer et communiquer cet ouvrage, tel quel ou aprs modification. Louvrage peut vous tre fourni dans un format numrique modifiable sur simple demande, envoyer innovation@lpifrancophonie.org.

Table des matires .............................................................................. 5 Introduction ........................................................................................ 11 Chapitre 1. Programmation bash .................................................... 15
A. Lenvironnement bash .................................................................................15
a) Les variables en bash ..................................................................................... 15 b) Les fichiers de configuration ........................................................................... 17 c) La famille bashrc ............................................................................................. 17

Les conditions respecter


! BY = Paternit (by) : les noms des auteurs et diteurs de louvrage devront toujours tre mentionns, en utilisant le modle donn (cf. page prcdente), ceci mme si vous apportez des modifications et, dans ce cas, dune manire qui ne risque pas de suggrer quils soutiennent ou approuvent les modifications apportes ; NC = Pas dutilisation commerciale (Non Commercial) : diffusion payante, mme aprs modification, est interdite ; toute

! !

SA = Partage des conditions initiales lidentique (Share Alike) : si vous modifiez, transformez ou adaptez cet ouvrage, vous navez le droit de distribuer la cration qui en rsulte quen donnant les mmes droits, et sous les mmes conditions.

B. Les scripts ....................................................................................................18


a) Script shell ....................................................................................................... 18 b) Passage de paramtres un script................................................................ 18

C. Les expressions logiques............................................................................19 D. Les boucles..................................................................................................20


a) Test if ............................................................................................................. 20 b) Test case .......................................................................................................... 21 c) Boucle for........................................................................................................ 21 d) Boucles while .................................................................................................. 22

chaque rutilisation ou distribution de cet ouvrage, ou de toute uvre qui en serait drive, vous devez faire apparatre clairement au public les conditions contractuelles de sa mise disposition. La meilleure manire de les indiquer est un lien vers cette page web : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Chacune de ces conditions peut tre leve si vous obtenez lautorisation du titulaire des droits sur cette uvre. Rien dans ce contrat ne diminue ni ne restreint le droit moral de lauteur.

E. Les paramtres dentre dun script ...........................................................22 F. Calculs ..........................................................................................................24 G. Exercices .....................................................................................................25

Chapitre 2. Gestion des donnes avec SQL ................................. 27


A. Introduction ..................................................................................................27
Ouvrage sous contrat Creative Commons BY-NC-SA p. 4 Ouvrage sous contrat Creative Commons BY-NC-SA p. 5

Prparation lexamen 102 pour la certification LPIC-1

Table des matiires a) Gestion des utilisateurs................................................................................... 56 b) Gestion des groupes ....................................................................................... 57 c) Fichiers de configuration par dfaut ............................................................... 58

B. Manipulation des donnes ..........................................................................28


a) Insertion des donnes..................................................................................... 28 b) Mise jour des donnes................................................................................. 29 c) Suppression des donnes .............................................................................. 30

D. Gestion des comptes et des options de cration par dfaut.....................58


a) Comment bloquer un compte ......................................................................... 59 b) Gestion des informations dexpiration du compte.......................................... 59 c) Destruction dun compte ................................................................................. 60

C. Interrogation.................................................................................................30
a) Les fonctions dagrgation.............................................................................. 31 b) Dfinir des critres de slection avec la clause WHERE ................................... 32

D. Jointure.........................................................................................................33 E. Exercices......................................................................................................34

D. Exercices......................................................................................................61

Chapitre 6. Administration du systme GNU/Linux..................... 63


A. Les traces du systme.................................................................................63
a) Les journaux (logs).......................................................................................... 63 b) La configuration............................................................................................... 64 c) La rotation des logs ......................................................................................... 65

Chapitre 3. X Window........................................................................ 35
A. Prsentation .................................................................................................35 B. Configuration du serveur .............................................................................36 C. Les applications clientes .............................................................................40 D. Lancer le serveur X .....................................................................................41 E. Le gestionnaire daffichage : Display Manager ..........................................41 F. Les gestionnaires de fentres : Window Manager.....................................43 G. Accessibilit .................................................................................................43
a) Ajuster les options du clavier et de la souris .................................................. 44 b) Clavier visuel ................................................................................................... 44 c) Ajuster les options daffichage ........................................................................ 45 d) Autres outils daccessibilit............................................................................. 45

B. Excution automatique de tches...............................................................66


a) Cron .................................................................................................................. 66 b) at...................................................................................................................... 67

C. Localisation et internationalisation..............................................................68
a) Dfinition du fuseau horaire............................................................................ 68 b) Les variables de localisation........................................................................... 69 c) Modifier lencodage des fichiers textes .......................................................... 70

D. Exercices......................................................................................................71

H. Exercices......................................................................................................45

Chapitre 7. Les rseaux TCP/IP....................................................... 73


A. Adressage IP................................................................................................73
a) Les adresses IP .............................................................................................. 73 b) Les rseaux IP et les masques rseau ; les adresses de rseau et de diffusion................................................................................................................ 74 c) Les classes IP ................................................................................................. 75 d) Les sous-rseaux ............................................................................................ 76

Chapitre 4. Impression...................................................................... 47
A. Terminologies...............................................................................................47 B. Outils dimpression ......................................................................................48
a) lpr.................................................................................................................... 48 b) lpq.................................................................................................................... 49 c) lprm................................................................................................................... 49

B. La suite TCP/IP ............................................................................................76 C. Les ports ......................................................................................................77 D. Exercices......................................................................................................79

C. Fichiers de configuration .............................................................................50 D. Exercices......................................................................................................51

Chapitre 5. Gestion des utilisateurs et des groupes dutilisateurs ....................................................................................... 53


A. Les utilisateurs .............................................................................................53 B. Les groupes .................................................................................................54 C. Les fichiers de configuration .......................................................................56
Ouvrage sous contrat Creative Commons BY-NC-SA p. 6

Chapitre 8. Configuration du rseau .............................................. 81


A. Les fichiers de configuration .......................................................................81 B. Dmarrage et arrt du rseau.....................................................................84
a) Dmarrage classique ................................................................................ 84 b) Dmarrage en utilisant les fichiers de configuration ...................................... 84 c) Dmarrage de toutes les interfaces................................................................ 84 Ouvrage sous contrat Creative Commons BY-NC-SA p. 7

Prparation lexamen 102 pour la certification LPIC-1 d) Renouvellement de bail DHCP....................................................................... 85

Table des matiires

Index des mots cls ........................................................................ 123 Les auteurs ....................................................................................... 127

C. Routage........................................................................................................85 D. Les outils associs au rseau.....................................................................86


a) ping .................................................................................................................. 86 b) netstat ............................................................................................................. 87 c) arp .................................................................................................................... 88 d) traceroute ........................................................................................................ 88

E. Exercices......................................................................................................89

Chapitre 9. Services systmes de base......................................... 91


A. Maintien de lhorloge du systme ...............................................................91
a) Configuration manuelle des horloges matrielle et logicielle ........................ 91 b) Le protocole NTP : Network Time Protocol .................................................... 93 c) Configuration de base du serveur NTP .......................................................... 93

B. Le courrier lectronique...............................................................................95
a) MTA ou Agent de transport de courrier.......................................................... 95 b) Gestion des courriers lectroniques ............................................................... 96

C. Exercices......................................................................................................98

Chapitre 10. La scurit.................................................................... 99


A. Les fichiers de configuration .....................................................................100
a) Configuration du BIOS .................................................................................. 100 b) Restrictions de LILO ..................................................................................... 100 c) Permissions des fichiers et rpertoires ........................................................ 100 d) Analyser le systme ...................................................................................... 100 e) Des limites pour les utilisateurs .................................................................... 101

B. Scurit rseau..........................................................................................101
a) TCP wrappers ............................................................................................... 102 b) Filtrage de paquets ....................................................................................... 103 c) Le shell scuris (SSH)................................................................................. 105 d) Authentification du serveur ........................................................................... 106 e) Authentification de lutilisateur ...................................................................... 106 f) Configuration de OpenSSH ........................................................................... 107

C. Exercices....................................................................................................108

Annexe 1 : exemple dexamen de certification 102 ................... 109


Questions........................................................................................................109 Rponses........................................................................................................118

Table des figures et des tableaux ................................................. 120


Ouvrage sous contrat Creative Commons BY-NC-SA p. 8 Ouvrage sous contrat Creative Commons BY-NC-SA p. 9

Introduction
La certification de lInstitut professionnel de Linux Linux professional Institute (LPI Inc.) permet de valider les connaissances et lexprience des administrateurs systmes et rseaux qui travaillent avec le systme dexploitation GNU/Linux. Le niveau 1 Junior Level Linux Professional abrg en LPIC-1 , concerne linstallation dune machine, sa connexion un rseau ainsi que les tches de maintenance simple. Cet ouvrage permet de prparer lexamen 102, qui constitue le second examen passer pour obtenir la LPIC-1. Il est publi par lAgence universitaire de la Francophonie (AUF) dans le cadre du LPI Francophonie. Il a reu le label Support de formation agr Institut professionnel de Linux (LATM, LPI Approved Training Material). Dans son dition 2010 1 dition en 2007 il prend en compte les objectifs dtaills de lexamen 102 mis jour en avril 2009 : ! version originale sur le site du LPI Exam 102 : Detailed Objectives www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_102_detaile d_objectives traduction en franais sur le site du LPI Francophonie : www.lpifrancophonie.org/spip.php?rubrique19
re

Chaque chapitre traite dun sujet du programme de certification. En annexe, un exemple dexamen permet de vrifier ses connaissances et de se familiariser avec le style des questions poses lexamen. Pourquoi une certification Linux ? Les objectifs de la certification cre par le LPI Inc. sont multiples. En voici quelques uns : ! ! pouvoir rpondre aux dtracteurs des logiciels libres en dmontrant que la communaut du logiciel libre est capable de sorganiser ; donner aux employeurs un outil permettant de juger les connaissances et lexprience dune personne ;
Ouvrage sous contrat Creative Commons BY-NC-SA p. 11

Prparation lexamen 102 pour la certification LPIC-1

Introduction

fournir aux centres de formations une structure commune pour lenseignement de ladministration systme/rseau base sur lutilisation de GNU/Linux.

Par la cration dune certification, lide est galement de participer la promotion de lutilisation des logiciels libres et son dveloppement, en particulier du systme dexploitation GNU/Linux dans le domaine de ladministration systme/rseau . Une certification indpendante fonctionnant sur le modle du logiciel libre . La certification LPI valide les connaissances et lexprience acquises par les administrateurs utilisant les logiciels libres associs au systme GNU/Linux. Elle est indpendante des diffrentes distributions GNU/Linux, mme si de nombreux acteurs du logiciel libre sont partenaires de linitiative. La communaut du logiciel libre est associe au programme de la certification. Son volution, sa ractivit et son indpendance sont ainsi garanties. Le LPI Inc., un organisme neutre fond par la communaut du logiciel libre. Le LPI Inc. est une association but non lucratif base au Canada. Il est soutenu par une large communaut de clients dentreprises, de gouvernements, de centres dexamen, dditeurs de livres, de fournisseurs de supports pdagogiques et dtablissements ducatifs et de formation dans le monde. Le LPI Inc. ne prpare pas la certification, il na pas vocation tre un centre de formation ni vendre des supports de formation. Il dlivre toutefois des agrments de qualit pour les centres de formation et pour les contenus pdagogiques qui prparent ses certifications. Son action reste prioritairement concentre sur la cration et la gestion des certifications. Les certifications reprsentent son seul capital . Le LPI Inc. prsente les premires certifications dans les technologies de linformation ayant obtenu une accrditation professionnelle. Il favorise ainsi ladoption et le dveloppement de normes ouvertes en association avec les acteurs spcialiss du domaine. Il participe au dveloppement doutils se basant sur des logiciels libres pour faire progresser les procdures de dveloppement des examens. Le LPI Francophonie. LAgence universitaire de la Francophonie (AUF) et le LPI Inc. ont cr le LPI Francophonie en 2003.

Ce partenariat a permis dorganiser des sessions de prparation la certification LPI via les Centres Linux et logiciels libres pour le dveloppement (C3LD). Un des objectifs est de promouvoir lusage des logiciels libres et la certification des comptences humaines.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 12

Ouvrage sous contrat Creative Commons BY-NC-SA p. 13

Chapitre 1. Programmation bash


Objectifs " Connatre Bash. " Connatre les bases de la programmation du shell. " Matriser le principe des scripts shell pour comprendre les scripts systme. " Savoir programmer des expressions logiques et arithmtiques ainsi que des boucles. Automatiser les tches administratives avec des scripts bash est indispensable et trs efficace. Une bonne utilisation de Linux est indissociable des scripts $*, $#, $0, $1, $2, $!, $$, $?, ~/.profile, ~/.bashrc, ~/.bash_logout, ~/.inputrc, /bin/bash, /etc/bash_logout, /etc/bashrc, /etc/inputrc, /etc/profile, bash, case, do, done, else, env, esac, export, expr, fi, for, if, PATH, select, set, test, then, unset, while

Points importants

Mots cls

Bash est le shell de GNU/Linux, un shell tant linterface utilisateur dun systme dexploitation. Il est bas sur le Bourne Shell dUnix, do son nom, qui est lacronyme de Bourne-again shell.

A. Lenvironnement bash
a) Les variables en bash
Pour affecter un contenu une variable, on utilise la commande = de la manire suivante : ma_variable='Ne pas oublier le chat'
Ouvrage sous contrat Creative Commons BY-NC-SA p. 15

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 1. Programmation bash

Attention ne pas mettre despace avant et aprs le signe = !!! Pour faire rfrence au contenu dune variable, on la prfixe par le signe $ . echo $ma_variable Ne pas oublier le chat Pour effacer le contenu dune variable, on utilise la commande unset. unset ma_variable Le shell utilise des variables pour tenir compte des paramtres de configuration spcifiques des utilisateurs appels variables denvironnement. Les variables HOME, DISPLAY, PWD en font partie. echo $HOME /usr/home/nicolas Lors de lutilisation dun programme, le shell utilise la variable denvironnement PATH pour retrouver le chemin daccs ce programme. On peut afficher le contenu de cette variable par la commande echo : echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/X11R 6/bin:/usr/home/nicolas:/:/usr/bsd:/usr/sbin:/usr/local/bin:/usr /bin/X11 Pour quune variable soit visible de tous les shells (donc de toutes les commandes lances depuis le shell courant), il faut lexporter par la commande export. export MANPATH=/usr/share/docs Lors du dmarrage dune session shell, la plupart des variables denvironnement sont initialises et exportes partir des diffrents fichiers de configuration, tels que les fichiers bashrc et profile. La commande env permet de dmarrer un shell avec des variables denvironnement dj positionnes des valeurs donnes. Ces variables denvironnement ont une dure de vie gale celle du shell dmarr.

Par exemple, pour lancer la commande ma_commande en positionnant la variable denvironnement ma_variable la valeur ma_valeur : env ma_variable=ma_valeur ma_commande La dure de vie et la visibilit de ma_variable sont limites la dure dexcution de ma_commande.

b) Les fichiers de configuration


Il y a plusieurs types de fichiers de configuration, ceux qui sont lus au moment de la connexion (login) et ceux qui sont lus chaque lancement dun shell. Les fichiers lus au moment de la connexion au systme sont : ! ! /etc/profile, commun tous les utilisateurs (sil existe) ; ~/.bash_profile ou ventuellement ~/.bash_login ou ~/.profile/, spcifiques chaque utilisateur.

Ils servent gnralement dcrire lenvironnement de lutilisateur. Les fichiers lus chaque lancement de shell sont : ! ! /etc/bashrc commun tous les utilisateurs (sil existe) ; ~/.bashrc spcifique chaque utilisateur.

c) La famille bashrc
Les fichiers de la famille bashrc sont lus chaque fois quun shell est lanc (e.g. commandes xterm ou bash). Ils servent gnralement stocker les alias et les fonctions utiliss communment. On peut dmarrer le shell bash avec diffrentes options lui indiquant les fichiers de configuration lire au dmarrage : ! ! ! bash login : force la lecture des fichiers de connexion famille profile ; bash norc : pas de lecture des fichiers bashrc ; bash noprofile : pas de lecture des fichiers profile .

Attention, toutes les nouvelles sessions de bash, puisquelles sont des processus fils, hritent des variables dfinies dans les fichiers profile lors de la connexion. Le fichier /etc/bash_logout, sil est prsent, est excut la fin de la session bash de tous les utilisateurs.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 16

Ouvrage sous contrat Creative Commons BY-NC-SA p. 17

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 1. Programmation bash

Le fichier ~/.bash_logout, sil est prsent, est excut la fin de la session bash spcifique un utilisateur. Le fichier inputrc permet de reconfigurer le clavier pour ajuster le fonctionnement des touches comme par exemple la touche deffacement arrire. Le fichier gnral est dans /etc/inputrc, les fichiers personnels dans ~/.inputrc.

Dautres variables rserves sont accessibles lintrieur dun script : ! ! ! ! ! $0 : nom du script ; $* : liste des paramtres ; $# : nombre de paramtres ; $$ : numro du processus en cours dexcution ; $? : valeur de retour de la dernire commande. #!/bin/bash # un autre script echo "mon script est $0" echo "il y a eu $# paramtres en entre" echo "le premier paramtre est $1"

B. Les scripts
a) Script shell
Un script shell est une liste dinstructions contenues dans un fichier. #!/bin/bash # Un petit script mon_script echo 'Ne pas oublier le chat' Pour pouvoir excuter ces instructions, deux conditions doivent tre remplies : ! ! la premire ligne doit contenir #!/bin/bash (pour un shell script utilisant bash) ; le fichier doit tre excutable (e.g. en utilisant la commande chmod +x) et lisible (e.g. avec les permissions 755) chmod +x mon_script ./mon_script Si toutes ces conditions ne sont pas remplies, il est toujours possible de forcer lexcution du script avec la commande bash. bash mon_script ou

C. Les expressions logiques


Les expressions logiques sont values laide de la fonction test, qui peut galement scrire [ ]. Le rsultat de lvaluation est stock dans la variable $? qui contient : ! ! 0 si le rsultat est vrai ; une valeur diffrente de 0 si le rsultat est faux.

Pour vrifier si le fichier /bin/bash existe : test -f /bin/bash

[ -f /bin/bash ] Pour vrifier si le fichier ~/bin/mon_script est excutable : test -x ~/bin/mon_script ou [ -x /bin/mon_script ] Les expressions logiques peuvent tre combines par les oprateurs logiques && (ET/AND) et || (OU/OR). Il est galement possible dutiliser les connecteurs -a (ET/AND) et -o (OU/OR).

b) Passage de paramtres un script


Les variables passes au script sur la ligne de commande sont accessibles dans le script par les variables rserves $1 pour le premier argument, $2 pour le deuxime et ainsi de suite. noter quil existe un oprateur shift qui dcale ces paramtres : la valeur contenue dans $2 passe dans $1, celle contenue dans $3 passe dans $2 et ainsi de suite. Cela permet essentiellement dutiliser plus de 9 paramtres en entre.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 18

Ouvrage sous contrat Creative Commons BY-NC-SA p. 19

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 1. Programmation bash

Pour vrifier si les fichiers /etc/profile et /etc/bashrc existent : test -f /etc/profile -a test -f /etc/bashrc ou test -f /etc/profile && test -f /etc/bashrc ou [ -f /etc/profile -a -f /etc/bashrc ] Quelques options de la commande test : ! ! ! ! ! ! ! -f : vrifie si le fichier est un fichier standard ; -d : vrifie si le fichier est un rpertoire ; -b : vrifie si le fichier est de type bloc ; -e : vrifie si le fichier existe indpendamment de son type ; -r : vrifie si le fichier est lisible ; -w : vrifie si le fichier est inscriptible ; -x : vrifie si le fichier est excutable.

Pour tester lexistence du fichier monfichier.txt : #!/bin/sh if test -f monfichier.txt then echo " le fichier existe " fi

b) Test case
Ce test permet de spcifier les commandes excuter pour chacune des valeurs prises par la variable passe en argument. Syntaxe : case <variable> in valeur1) commande1 ;; valeur2) commande2 ;; valeur3) commande3 ;; ... esac Pour tester la valeur du premier paramtre : #!/bin/sh case $1 in 1) echo " un ";; 2) echo " deux ";; 3) echo " trois ";; esac

Dautres options seront donnes pour le traitement spcifique des nombres.

D. Les boucles
a) Test if
Cette boucle sert pour les tests et branchements. Syntaxe (la partie else... est optionnelle) : if <condition> then <commande1> <commande2> ... else <commande1> <commande2> ... fi

c) Boucle for
Cette boucle sert pour rpter les traitements un nombre de fois connu. Syntaxe : for <variable> in <liste> do commande1 commande2 commande3 ... done

Ouvrage sous contrat Creative Commons BY-NC-SA p. 20

Ouvrage sous contrat Creative Commons BY-NC-SA p. 21

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 1. Programmation bash

Pour afficher les jours de la semaine : for jour in lundi mardi mercredi jeudi vendredi samedi dimanche do echo $jour done

echo 'Entrez votre nom' read nom echo '' Vous vous appelez $nom '' Lentre au clavier lue avec la commande read peut ensuite tre traite avec la commande case vue prcdemment. #!/bin/sh echo ''entrez votre choix'' read choix case $choix in 1) echo " menu un ";; 2) echo " menu deux ";; 3) echo " menu trois "; esac La commande select est utilise pour demander un utilisateur de choisir une valeur et une seule dans une liste de valeurs pr-dfinies. Linvite afficher est indiquer dans la variable pr-dfinie PS3. La commande select a deux arguments : la liste des valeurs proposes, et une variable dans laquelle sera stocke la valeur choisie. Un numro squentiel est automatiquement attribu chaque valeur propose. Le numro de la valeur choisie sera stock dans la variable prdfinie REPLY. Syntaxe : select <variable> in <liste de choix> On peut sortir de la boucle avec la commande break. Exemple utilisant les commandes select et break : #/bin/bash PS3="Entrez le numro de votre commande -> " echo "Que dsirez-vous boire ?" select biere in "Rien, merci" "Skoll" "THB" "Dodo" do echo "Vous avez fait le choix numro $REPLY..." if [ "$REPLY" -eq 1 ] then echo "Au revoir!" break else echo "Votre $biere est servie." fi echo done
Ouvrage sous contrat Creative Commons BY-NC-SA p. 23

d) Boucles while
Cette boucle sert pour rpter les traitements un nombre de fois inconnu a priori. Le test de continuit se fait au dbut de la boucle. La boucle continue tant que la condition est vraie. Syntaxe : while <condition> do <commande1> <commande2> ... done Pour faire le test de lecture dune valeur jusqu ce que lutilisateur entre la valeur 1 : #!/bin/sh i=0 while [ $i -ne "1" ] do read i done Il existe une autre boucle, qui utilise le mot cl until la place de while. Elle diffre dans le traitement de la condition : la boucle est excute jusqu ce que la condition soit vraie. Le test est donc effectu en fin de boucle et la boucle est toujours excute au moins une fois.

E. Les paramtres dentre dun script


La lecture dune valeur peut se faire par le passage de paramtres sur la ligne de commande (cf. prcdemment lutilisation des variables $1, $2, etc.) ou en lisant une entre au clavier depuis le script avec la commande read. Pour lire le nom dune personne dans la variable nom et afficher son contenu : #!/bin/sh
Ouvrage sous contrat Creative Commons BY-NC-SA p. 22

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 1. Programmation bash

F. Calculs
Il est possible de comparer des nombres en utilisant la commande test, vue prcdemment, avec les options suivantes : ! ! ! ! ! ! -lt pour infrieur (<) ; -gt pour suprieur (>) ; -le pour infrieur ou gal (<=) ; -ge pour suprieur ou gal (>=) ; -eq pour gal (=) ; -ne pour diffrent de (!=).

done On peut galement crire expr <expression> sous la forme $((<expression>)) #!/bin/bash i=0 while [ $i -ne 100 ] do #i=`expr $i + 1` i=$(($i+1)) echo $i done

Pour tester le nombre de paramtres en entre : #!/bin/bash if [ $# -eq 0 ] then echo " Vous n'avez entr aucun paramtre" fi La commande expr permet deffectuer les quatre oprations arithmtiques de base, avec les oprateurs suivants : ! ! ! ! + pour laddition ; - pour la soustraction ; \* pour la multiplication ; / pour la division.

G. Exercices
1. Dans le rpertoire personnel de lutilisateur, parmi ces couples de fichiers, lesquels sont utiliss pour configurer lenvironnement bash ? ! ! ! ! ! 2. bash et .bashrc bashrc et bash_conf bashrc et bashprofile bashrc et .bash_profile bash.conf et .bash_profile

Par exemple, la commande expr 1 + 2 renvoie 3 . Pour afficher une table de multiplication : #!/bin/bash for i in 1 2 3 4 5 6 7 8 9 do expr $i \* $1 done Pour compter jusqu 100 : #!/bin/bash i=0 while [ $i -ne 100 ] do i=`expr $i + 1` echo $i
Ouvrage sous contrat Creative Commons BY-NC-SA p. 24

Quel fichier doit modifier lutilisateur dans son rpertoire personnel pour configurer la variable denvironnement PATH ? Donnez seulement le nom du fichier, sans le chemin daccs.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 25

Chapitre 2. Gestion des donnes avec SQL


Objectifs " Savoir interroger une base de donnes et manipuler les donnes en utilisant le langage SQL. " Savoir crire des requtes de jointure sur plusieurs tables et utiliser les sous-requtes. SQL (Structured Query Language) est un langage de gestion de bases de donnes relationnelles. Il a t conu par IBM dans les annes 70. Il est devenu le langage standard des systmes de gestion de bases de donnes relationnelles. delete, from, group by, insert, join, order by, select, update, where

Points importants

Mots cls

A. Introduction
Le langage SQL est la fois : ! ! ! un langage de manipulation de donnes (LMD) qui permet dinsrer, modifier ou supprimer des donnes ; un langage dinterrogation de donnes ; un langage de dfinition de donnes (LDD) qui permet de crer, modifier et supprimer des tables dans une base de donnes relationnelle ; un langage de contrle de laccs aux donnes (LCD) qui permet de dfinir des rgles daccs aux donnes par les utilisateurs.

Dans ce chapitre, laccent est mis sur les requtes SQL permettant de manipuler et dinterroger des bases de donnes. On utilise pour les

Ouvrage sous contrat Creative Commons BY-NC-SA p. 27

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 2. Gestion des donnes avec SQL

exemples une base de donnes simple nomme Bibliothque et constitue de deux tables, Livre et Editeur . Voici leur description, affiche grce la commande describe : mysql> describe Livre; +-------------+--------------+------+-----+---------+ | Field | Type | Null | Key | Default | +-------------+--------------+------+-----+---------+ | ISBN | varchar(50) | NO | PR | NULL | | Titre | varchar(100) | NO | | NULL | | Prix | float | YES | | NULL | | Id_Editeur | int(11) | NO | MUL | NULL | +-------------+--------------+------+-----+---------+ mysql> describe Editeur; +-------------+--------------+------+-----+---------+ | Field | Type | Null | Key | Default | +-------------+---------------+------+-----+--------+ | Id_Editeur | int(11) | NO | PRI | NULL | | Nom | varchar(100) | NO | | NULL | | Telephone | varchar(30) | YES | | NULL | +-------------+--------------+------+-----+---------+

Pour ajouter plusieurs lignes dans les tables Editeur puis Livre : INSERT INTO Editeur VALUES (1,'PEARSON EDUCATION','6666-333'), (2,'CAMPUS-DUNOD','999-666'), (3,'O\'REILLEY','6666-3333'), (4,'EYROLLES','5555-999'), (5,'DUNOD','3333-999'); INSERT INTO Livre VALUES ('9782744071768','ARCHITECTURE DE L\'ORDINATEUR',50.6,1), ('9782100518067','TECHNOLOGIE DES ORDINATEURS ET DES RESEAUX',100.9,2), ('9782841772513','MAC OS X',70.9,3), ('9782212122732','SHELLS LINUX ET UNIX',60.3,4), ('9780596005283','LPI Linux certification in a Nutshell',100.3,3), ('9782744071782','ALGORITHMIQUE EN JAVA 5',90.3,1), ('9782100518319','EJB 3 - DES CONCEPTS: L\'ECRITURE DU CODE',150.3,5) ;

b) Mise jour des donnes

B. Manipulation des donnes


a) Insertion des donnes
Lordre INSERT permet dajouter une ou plusieurs lignes une table. Syntaxe : INSERT INTO NomTable [(Colonne1,Colonne2,Colonne3,...)] VALUES (Valeur1,Valeur2,Valeur3,...), (Valeur1,Valeur2,Valeur3,...), ... ; Lorsque lajout de lignes concerne toutes les colonnes de la table, lnumration des colonnes est facultative. Pour ajouter lditeur VUIBERT dans la table Editeur : INSERT INTO Editeur (Id_Editeur,Nom) VALUES (6,'VUIBERT');

Lordre UPDATE permet de modifier des lignes dans une table, la clause SET prcise la modification effectuer. Il sagit dune affectation dune valeur une colonne grce loprateur =, suivi d'une expression algbrique, dune constante ou du rsultat provenant dun ordre SELECT. Les lignes sur lesquelles la mise jour a lieu sont dfinies grce la clause WHERE. Syntaxe : UPDATE NomTable SET NomColonne = Valeur_Ou_Expression [WHERE qualification] ; Pour doubler les prix des livres de lditeur O'REILLY, dont lidentifiant est 3: UPDATE Livre SET prix=prix*2 WHERE Id_Editeur=3;

Ouvrage sous contrat Creative Commons BY-NC-SA p. 28

Ouvrage sous contrat Creative Commons BY-NC-SA p. 29

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 2. Gestion des donnes avec SQL

c) Suppression des donnes


Lordre DELETE permet de supprimer des donnes dans une table. La clause FROM prcise la table traiter et la clause WHERE les lignes supprimer. Syntaxe : DELETE FROM NomTable [WHERE qualification]; Pour supprimer toutes les lignes de la table Livre : DELETE FROM Livre;

a) Les fonctions dagrgation


Avec SELECT et HAVING on peut utiliser les fonctions dagrgation qui permettent de faire des statistiques sur les colonnes (tableau 1).
Tableau 1. Fonctions dagrgation

Fonction AVG SUM MIN MAX moyenne somme

Description

plus petite des valeurs plus grande des valeurs variance cart type nombre de lignes nombre de valeurs non nulles de la colonne

C. Interrogation
Lordre SELECT permet dextraire des donnes dune base. Syntaxe : SELECT [DISTINCT] coli, colj, ... FROM table1, table2, ... [WHERE critres de slection] [GROUP BY coli, colj, ... HAVING prdicat] [ORDER BY coli [DESC], colj[DESC], ...]; Dans une premire tape, on ne conserve que les lignes qui rpondent aux critres de slection. Puis on ne conserve dans le rsultat obtenu que les colonnes dont la liste est donne par coli, colj, ... Pour slectionner lensemble des colonnes dune table il suffit de remplacer la liste de ces colonnes par *. Loption DISTINCT est utilise afin de ne conserver que des lignes distinctes. La clause GROUP BY exp1, exp2, ... groupe en une seule ligne toutes les lignes pour lesquelles exp1, exp2,... ont la mme valeur (voir dtails plus loin). On peut aussi ordonner les lignes en les triant en fonction de la valeur dune colonne : ORDER BY coli. Par dfaut, le tri est ascendant. Loption DESC le rend descendant. Il est aussi possible dappliquer un deuxime critre de tri colj, puis un troisime etc. Pour afficher toutes les colonnes de la table Editeur : SELECT * FROM Editeur;
Ouvrage sous contrat Creative Commons BY-NC-SA p. 30

VARIANCE STDDEV COUNT(*) COUNT(col)

Pour dterminer le nombre de lignes dans la table Livre : SELECT COUNT(*) FROM Livre; Pour dterminer le prix du livre le plus cher : SELECT MAX(Prix) FROM Livre; Pour afficher le nombre de livres par maison ddition : SELECT Livre.Id_Editeur,nom AS 'Maison d\'dition', COUNT(*) FROM Livre, Editeur WHERE Livre.id_Editeur=Editeur.Id_Editeur GROUP BY Id_Editeur; +------------+-------------------+----------+ | Id_Editeur | Maison d'dition | COUNT(*) | +------------+-------------------+----------+ |1 | PEARSON EDUCATION | 2 | |2 | CAMPUS-DUNOD |1 | |3 | O'REILLEY |3 | |4 | EYROLLES |1 | |5 | DUNOD |1 | +------------+-------------------+----------+

Ouvrage sous contrat Creative Commons BY-NC-SA p. 31

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 2. Gestion des donnes avec SQL

Dans l'exemple prcdent on a utilis loprateur AS pour donner un alias la colonne nom. En utilisant la clause HAVING, on peut appliquer une restriction sur les groupes crs grce la clause GROUP BY. Pour identifier les maisons ddition pour lesquelles la bibliothque dtient plus de trois livres : SELECT Livre.Id_Editeur, nom AS 'Maison d\'dition', COUNT(*) FROM Livre, Editeur WHERE Livre.id_Editeur=Editeur.Id_Editeur GROUP BY Id_Editeur HAVING COUNT(*) >= 3;

WHERE Titre LIKE "_A%"; Pour vrifier quune valeur appartient un intervalle, on peut utiliser loprateur BETWEEN. Pour afficher les informations sur les livres dont le prix est compris entre 50 et 100 : SELECT * FROM Livre WHERE Prix BETWEEN 50 AND 100; Pour vrifier si une donne appartient une liste de valeurs on peut utiliser loprateur IN. Pour vrifier si les livres Guide des shells Unix, Shells Linux et Unix et Comprendre les shells Unix existent dans la table Livres : SELECT * FROM Livre WHERE Titre IN ('Guide des SHELLS UNIX', 'SHELLS LINUX et UNIX','Comprendre les SHELLS Unix'); Les oprateurs logiques AND, OR et NOT peuvent tre utiliss pour combiner plusieurs expressions logiques. Loprateur AND est prioritaire par rapport OR. Pour afficher les informations sur les livres dont le titre contient Unix et Linux : SELECT * FROM Livre WHERE Titre LIKE '%Linux%' AND Titre LIKE '%Unix%' ;

b) Dfinir des critres de slection avec la clause WHERE


La clause WHERE dfinit les critres de slection appliquer pour slectionner un sous-ensemble de lignes. Elle est suivie dune expression logique (ayant la valeur vrai ou faux) qui sera value pour chaque ligne. La clause WHERE est utilise avec les ordres SELECT, UPDATE et DELETE avec la mme syntaxe. Lexpression logique peut tre exprime par la comparaison de deux expressions ou plus au moyen dun oprateur logique. Les trois types dexpressions savoir arithmtique, caractre ou date, peuvent tre compars au moyen des oprateurs dgalit ou dordre (=, !=, <, >, <=,>=). Pour afficher par ordre de prix dcroissant les informations sur les livres dont le prix est suprieur 70 : SELECT * FROM Livre WHERE Prix >=70 ORDER BY Prix DESC; Loprateur LIKE sert tester lgalit de deux chanes de caractres. On peut utiliser des caractres de remplacement : ! ! _ remplace exactement un seul caractre ; % remplace zro n caractres.

D. Jointure
Afin de regrouper plusieurs informations issues de plusieurs tables, on utilise les jointures. Les tables impliques sont associes au moyen de cls trangres. Dans lexemple de la base Bibliothque, la table Livre est associe la table Editeur au moyen de lattribut Id_Editeur (cl trangre) qui se rfre la cl primaire de la table Editeur.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 33

Pour afficher les informations sur les livres dont le titre contient a en deuxime position : SELECT * FROM Livre
Ouvrage sous contrat Creative Commons BY-NC-SA p. 32

Prparation lexamen 102 pour la certification LPIC-1

Pour afficher les titres et les prix des livres (issus de la table Livres) et les noms des diteurs associs (issus de la table diteurs) : SELECT Titre, Prix, Nom AS Editeur FROM Livre JOIN Editeur ON Editeur.id_Editeur=Livre.Id_Editeur;

Chapitre 3. X Window
Objectifs " Comprendre les diffrents composants du systme daffichage X Window sous Linux. " Comprendre la logique du client-serveur utilise pour laffichage, la notion de display manager et de gestionnaire de fentres. " Connatre les fichiers de configuration des composants du systme X Window et tre capable de les modifier. " Connatre des outils daccessibilit ddis aux personnes en situation de handicap. Le systme X Window est parfois dlicat configurer et utiliser. Il est utile de comprendre son fonctionnement et ses divers composants pour tre capable de rsoudre les problmes. Mme si les versions voluent (X, XFree, Xorg) les bases restent les mmes. /etc/X11/xorg.conf, assistance sonore, clavier dcran, DISPLAY, emacspeak, gdm (fichier de commande), Gestures, GOK, lecteur dcran, kdm (fichier de commande), logiciel Braille, logiciel Daltonisme, loupes dcran, Orca, simuler la souris avec les touches du clavier, X, xdpyinfo, xhost, xdm (fichier de commande), xwininfo.

E. Exercices
3. Quel est leffet de la requte SQL suivante ? Update Livre Set Prix=100 Where Titre Like %Linux% ! ! ! ! Afficher la liste des livres dont le prix est 100 et le titre contient le mot Linux. Affecter la valeur 100 au champ Prix et la valeur %Linux% au champ Titre des lignes de la table Livre. Affecter la valeur 100 au champ Prix des lignes dont le champ Titre contient le mot Linux. Affecter la valeur 100 au champ Prix des lignes dont le champ Titre contient le mot %Linux%.
Points importants

4.

Comment supprimer une table appele livre partir dune base de donnes SQL ? ! ! ! ! rm livre delete table livre drop table livre delete livre
Mots cls

A. Prsentation
Le systme X Window a t dvelopp au Massachusetts Institute of Technology (MIT) dans le cadre du projet Athena . Sous Linux, il existe une implmentation libre du systme X Window version 11 release 6 (X11R6) pour les machines base de processeurs Intel (x86) appele Xfree86.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 34 Ouvrage sous contrat Creative Commons BY-NC-SA p. 35

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 3. X Window

Mais suite un dsaccord de licence de Xfree86, un nouveau projet baptis Xorg a t dvelopp en 2004. Xorg est maintenant un projet part entire qui volue trs rapidement par rapport Xfree. Il a t intgr par dfaut la place de Xfree dans la majorit des distributions actuelles. Comme le montre la figure 1, le systme est constitu dun serveur X auquel se connectent des clients localement ou en rseau. Il peut sagir de clients simples, comme xterm, ou plus labors, comme les Window Manager (WM), interfaces graphiques qui apportent les fonctionnalits classiques dune interface comme le dplacement de fentre, ou les X Display Manager (XDM), gestionnaires qui assurent lauthentification de l'utilisateur et le choix de linterface graphique.
Figure 1. Le modle client/serveur X

Lutilitaire xvidtune permet dajuster de faon interactive les diffrents modes vidos et de gnrer un format de donnes utilisable dans le fichier /etc/X11/xorg.conf. Les distributions Linux proposent des utilitaires spcifiques : ! ! ! dpkg-reconfigure xserver-xorg (Debian) ; system-config-display (Fedora) ; sax2 (Suse).

Le fichier /etc/X11/xorg.conf est compos de plusieurs sections. Beaucoup de sections sont optionnelles, cependant quelques unes sont indispensables au bon fonctionnement du systme. La figure 2 illustre la hirarchie des sections du fichier xorg.conf.
Figure 2. Relations entre les sections du fichier xorg.conf

Le serveur X gre le matriel daffichage, savoir lcran graphique, le clavier, la souris, la tablette graphique, etc. Il sexcute sur lordinateur auquel est connect ce matriel.

B. Configuration du serveur
Le fichier de configuration /etc/X11/xorg.conf est en gnral gnr par des utilitaires de configuration comme xorgconfig ou Xorg -configure.

Lcran Screen est dfini par une carte graphique, Device, et un moniteur, Monitor. Dans certains cas, une section Monitor peut dpendre dune section Mode. Le clavier et la souris sont chacun dfinis par une section InputDevice. La combinaison de la section Screen et des InputDevice forme un ServerLayout. Sy ajoute la section Files qui indique les chemins et/ou le serveur des polices de caractres.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 36

Ouvrage sous contrat Creative Commons BY-NC-SA p. 37

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 3. X Window

Voici un exemple de quelques sections typiques dun fichier xorg.conf : ! les sections InputDevice permettent de dcrire tous les types de priphriques dentre. En pratique, il sagit souvent de claviers et de souris, mais il est galement possible de connecter des priphriques plus exotiques tels que les joysticks et les tablettes de dessin : Section "InputDevice" Identifier "Keyboard1" Driver "keyboard" Option "XkbModel" "pc105" Option "XkbLayout" "fr" Option "XkbOptions" "" EndSection Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "ExplorerPS/2" Option "Device" "/dev/mouse" Option "ZAxisMapping" "6 7" EndSection ! la section Device permet de dcrire la carte vido et le module qui lui est associ : Section "Device" Identifier "device1" VendorName "S3 Incorporated" BoardName "S3 Savage4" Driver "savage" VideoRam 4096 Option "DPMS" # Option "no_accel" # You may enable this if there are timeouts when starting X EndSection ! la section Monitor permet de dcrire les caractristiques du moniteur : Section "Monitor" Identifier "monitor1" VendorName "Generic" ModelName "1024x768 @ 70 Hz" HorizSync 31.5-57.0
Ouvrage sous contrat Creative Commons BY-NC-SA p. 38

VertRefresh 50-70 EndSection ! la section Screen permet de dfinir les paramtres daffichage (rsolution, couleurs...) : Section "Screen" Identifier "screen1" Device "device1" Monitor "monitor1" DefaultColorDepth 24 Subsection "Display" Depth 24 Virtual 1024 768 EndSubsection EndSection ! la section ServerLayout est la combinaison des sections Screen et InputDevice : Section "ServerLayout" Identifier "Default Layout" Screen "Screen1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection ! la section Files contient les chemins vers les ressources utiliss par le serveur X. Cela peut correspondre aux rpertoires de polices de caractres, aux rpertoires dinstallation des modules du serveur X, ou encore aux chemins indiquant ladresse et le port de serveurs de polices sur un rseau : Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/local" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" ModulePath "/usr/X11R6/lib/modules" EndSection

Ouvrage sous contrat Creative Commons BY-NC-SA p. 39

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 3. X Window

La commande xhost permet de spcifier la liste des machines ou des utilisateurs autoriss se connecter au serveur X : xhost + la_belle_machine.auf.org

D. Lancer le serveur X
Une session X peut tre lance de deux manires diffrentes : ! partir de la ligne de commande, avec le script startx. Par exemple : startx Ce script lance le script xinit, qui lancera le serveur X et le script xinitrc, qui lira le fichier Xresource, qui permettra le lancement de linterface (Window Manager) ; ! en utilisant un XDM qui est lanc automatiquement au niveau dexcution 5 (cf. /etc/inittab, le fichier de configuration du processus init, prsent dans le manuel de la mme collection consacr lexamen 101, chapitre 2 Le dmarrage de Linux).

C. Les applications clientes


Les applications clientes utilisent des fichiers de configuration spcifiques nomms Xresources. Au lancement, le client vrifie quil existe un fichier .Xresource dans le rpertoire home de lutilisateur. Si ce nest pas le cas, il utilise le fichier standard du systme /etc/X11/Xresources. Les fichiers Xresources sont galement nomms Xdefaults ou .Xsession selon les versions des systmes et serveurs X. En voici un extrait qui dcrit la manire dont vont safficher les clients xterm : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! xterm (and friends) XTerm*highlightSelection: true ! Uncomment this to use color for the bold attribute XTerm*VT100*colorBDMode: on XTerm*VT100*colorBD: blue ! Uncomment this to use color for underline attribute XTerm.VT100*colorULMode: on XTerm.VT100*underLine: off XTerm*VT100*colorUL: magenta ! Uncomment this to display the scrollbar XTerm*scrollBar: true La variable denvironnement DISPLAY permet de spcifier un client X la machine serveur utiliser ainsi que, si plusieurs serveurs tournent sur la machine, linstance du serveur utiliser : export DISPLAY:la_belle_machine.auf.org :0 Le client doit avoir le droit de se connecter sur le serveur pour effectuer cette opration (cf. la commande xhosts vue prcdemment).

E. Le gestionnaire daffichage : Display Manager


Trois Display Manager sont communment utiliss avec Linux : ! ! ! xdm, loriginal, configur dans /etc/X11/xdm ; gdm, de Gnome, configur dans /etc/gdm ; kdm, de KDE, configur dans /etc/kde/kdm.

Ils sont gnralement utiliss au niveau dexcution 5 (graphique) pour permettre lutilisateur de se connecter et de choisir un Window Manager. Ils peuvent tre utiliss en rseau pour offrir une interface de connexion graphique distance en utilisant le protocole XDMCP qui nest pas activ par dfaut pour des raisons de scurit. Les fichiers de configuration gnraux sont situs dans le rpertoire /etc/X11/xdm. Le fichier de configuration de base est xdm-config, il dfinit les chemins des autres fichiers de configuration de XDM. Le fichier Xressources configure laspect graphique de lcran de connexion et le fichier Xsetup permet de personnaliser linterface XDM de login, par exemple en y ajoutant des applications graphiques. Quand lutilisateur dmarre sa session, le script Xsession sexcute afin de configurer et dmarrer lenvironnement graphique de lutilisateur. Ce script fait appel au script .xsession dans le rpertoire personnel de lutilisateur. Si ce script existe, il permet de lancer le gestionnaire de fentres, des barres

Ouvrage sous contrat Creative Commons BY-NC-SA p. 40

Ouvrage sous contrat Creative Commons BY-NC-SA p. 41

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 3. X Window

de tches, des applets et dautres programmes propres la session de lutilisateur. Exemple de fichier /etc/X11/xdm/xdm-config : ! $XFree86: xc/programs/xdm/config/xdm-conf.cpp,v 1.1.1.2.4.2 1999/10/12 18:33:29 hohndel Exp $ DisplayManager.servers: /etc/X11/xdm/Xservers DisplayManager.accessFile: /etc/X11/xdm/Xaccess ! All displays should use authorization, but we cannot be sure ! X terminals will be configured that way, so by default ! use authorization only for local displays :0, :1, etc. DisplayManager._0.authorize: true DisplayManager._1.authorize: true DisplayManager*resources: /etc/X11/xdm/XresourcesDisplayManager*session: /etc/X11/xdm/Xsession DisplayManager*authComplain: false ! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0 Le fichier /etc/X11/xdm/Xservers dtermine la liste des serveurs X gr par XDM : # $XConsortium: Xserv.ws.cpp,v 1.3 93/09/28 14:30:30 gildea Exp $ # $XFree86: xc/programs/xdm/config/Xserv.ws.cpp,v 1.1.1.1.12.2 1998/10/04 15:23:14 hohndel Exp $ # Xservers file, workstation prototype # This file should contain an entry to start the server on the # local display; if you have more than one display (not screen), # you can add entries to the list (one per line). If you also # have some X terminals connected which do not support XDMCP, # you can add them here as well. Each X terminal line should # look like: # XTerminalName:0 foreign :0 local /usr/X11R6/bin/X Le fichier /etc/X11/xdm/Xaccess gre laccs XDMCP, permettant aux machines distantes de se connecter la machine locale via XDMCP, de faon obtenir une invite dauthentification. Voici un extrait de ce fichier : # La premire ligne pour les requtes directes *
Ouvrage sous contrat Creative Commons BY-NC-SA p. 42

# Les lignes suivantes pour les requtes indirectes * CHOOSER BROADCAST Le premier * signifie que nimporte quel hte peut demander une invite dauthentification XDM. La ligne CHOOSER spcifie les htes qui peuvent se connecter XDM en utilisant des requtes indirectes. Dans ce cas, nimporte quel hte peut demander la machine une liste dhtes potentiels auxquels se connecter (la seconde ligne * ). Lutilisateur obtiendra alors, la place de linvite dauthentification, une application chooser , qui lui fournira une liste des htes dtects sur le rseau et acceptant des connexions XDMCP.

F. Les gestionnaires de fentres : Window Manager


Il est pratiquement impossible dutiliser X sans un gestionnaire de fentres, qui offre des menus, des barres de titres pour les fentres et tout ce qui est ncessaire pour disposer dune interface graphique agrable. La fentre racine (root) du gestionnaire couvre lcran complet du moniteur et reprsente le bureau . part KDE et Gnome qui sont les plus courants, on peut citer les gestionnaires WindowMaker, fvwm, icewm, twm, et beaucoup dautres !

G. Accessibilit
Linux offre un panel doutils daccessibilit destins aux personnes en situation de handicap. Lobjectif est de garantir une indpendance la plus grande possible de ces personnes. Les options daccessibilit peuvent tre actives travers certains paramtres du serveur X. Les environnements Gnome et KDE proposent aussi des programmes daccessibilit, dans le menu Systme ! Prfrences ! Outils daccessibilit (figure 3).

Ouvrage sous contrat Creative Commons BY-NC-SA p. 43

Prparation lexamen 102 pour la certification LPIC-1 Figure 3. Outils daccessibilit sous Gnome

Chapitre 3. X Window

c) Ajuster les options daffichage


Les utilisateurs malvoyants peuvent bnficier dajustements des paramtres daffichage, notamment des options de polices, de contraste et de grossissement dcran. Gnome offre la bote de dialogue Apparence (Systme ! Prfrences ! Apparence) qui donne la possibilit de modifier la police (Time, Arial, Courier, etc), le style de la police (gras, italique, ) et sa taille. Sous KDE une bote de dialogue similaire est accessible partir de llment Apparence du panel Configuration du Systme . KDE et Gnome offrent aussi plusieurs thmes, certains thmes sont meilleurs que dautres en terme de lisibilit. Par exemple certains sont trs faibles en contraste, dautres sont riches en contraste. Une loupe dcran agrandit une partie de lcran, gnralement la zone situe immdiatement autour de la souris. La loupe dcran Kmag est intgre KDE.

a) Ajuster les options du clavier et de la souris


Plusieurs options dutilisation du clavier et de la souris sont offertes : ! rgler la frquence de rptition des caractres, soit pour dsactiver la rptition dun caractre lorsque la touche du clavier est enfonce, soit pour fixer un dlai trs long de rptition des caractres. Le rglage de ces paramtres peut aider les personnes souffrant de troubles moteurs ; modifier le comportement de certaines touches telles que <Ctrl>, <Alt> et <Shift> afin quelles restent actives mme aprs leur libration (touches rmanentes). Ceci peut tre utile pour les personnes qui rencontrent des difficults pour appuyer simultanment sur plusieurs touches ; inverser la fonction des boutons droit et gauche de la souris ; modifier la taille du pointeur de la souris, pour lagrandir afin damliorer sa visibilit ; contrler le pointeur de la souris avec des touches du clavier. Cette fonctionnalit est conue pour les personnes ayant des difficults utiliser la souris.

d) Autres outils daccessibilit


Des programmes supplmentaires sont offerts pour aider les personnes ayant des besoins spciaux : ! Gnopernicus offre aux personnes non-voyantes la possibilit de lire lcran et denvoyer ces informations vers diffrents priphriques : Braille, sortie audio ; Orca est un autre lecteur dcran fournit par Gnome ; Emacspeak est un lecteur dcran pour lditeur emacs ; BRLTTY fournit un accs la console Linux/Unix pour une personne aveugle.

! ! !

! ! !

H. Exercices
1) quoi sert un fichier Xresources ? ! ! ! contrler lapparence des clients X. affecter des ressources pour le serveur X. dfinir les droits daccs au serveur X en rseau.

b) Clavier visuel
Le clavier visuel est utile pour les personnes ayant des difficults utiliser un clavier ordinaire, mais qui peuvent utiliser la souris. GOK (Gnome On-Screen Keyboard) est un clavier dcran puissant qui offre, en complment des fonctionnalits ordinaires dun clavier, des raccourcis pour les menus et les barres doutils des programmes.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 44

Ouvrage sous contrat Creative Commons BY-NC-SA p. 45

Prparation lexamen 102 pour la certification LPIC-1

2)

Lorsque vous utilisez xdm, lequel des fichiers suivants peut tre utilis pour dmarrer un gestionnaire de fentres ? ! ! ! ! ! Xservers Xaccess xdm-config Xsession Xsetup_0

Chapitre 4. Impression
Objectifs " Comprendre les filtres et les queues dimpression. " Savoir grer les queues dimpression. " Connatre les outils dimpression. " Connatre les fichiers de configuration CUPS. Sous Linux, les logiciels dimpression voluent. Du dmon LPD, hrit dUnix, en passant par son amlioration avec LPRNG puis l'utilisation de CUPS, la philosophie a profondment chang. Mais la compatibilit des commandes de base est en gnral assure.

3)

Quelle option faut-il utiliser afin dafficher distance une application X Window ? ! ! ! ! -display -connect -remote -xhost
Points importants

4)

Dans le fichier xorg.conf, une section InputDevice ne peut pas dcrire : ! ! ! ! un clavier une souris une tablette de dessin un moniteur
Mots cls

/usr/bin/lpr, /usr/bin/lprm, /usr/bin/lpq, ghostscript, fichiers de configuration et utilitaires du serveur CUPS

A. Terminologies
La plupart des serveurs dimpression sous Linux sont compatibles avec le systme dimpression traditionnel BSD (Berkeley Software Distribution ). On appelle travaux dimpression, ou jobs, lensemble des fichiers soumis limpression. Le serveur dimpression, ou spooler, est le programme responsable de la rception, de la mise en queue dimpression et de lenvoi vers limprimante des travaux dimpression. Le spooler offre aussi les moyens pour consulter ou annuler les impressions en cours. Exemples de serveurs dimpression : ! LPR : Le systme dimpression historique du BSD ;

Ouvrage sous contrat Creative Commons BY-NC-SA p. 46

Ouvrage sous contrat Creative Commons BY-NC-SA p. 47

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 4. Impression

! !

LPRng est une version amliore du LPR, il fusionne les fonctions dimpression du systme V avec celle du systme Berkeley ; CUPS (Common Unix Printing System) utilise le protocole IPP (Internet Printing Protocol) pour la gestion des travaux et des queues dimpression ; PDL (Page Description Langage) est le langage qui permet la description dune mise en page de faon indpendante du priphrique. Les langages PostScript et PCL sont deux exemples du langage PDL.

envoyer la demande limprimante imp , lpr -Pimp ma_lettre

Voici quelques options de la commande lpr : ! ! ! -P<queue> : envoie la demande la queue <queue> ; -#<nombre> : imprime <nombre> copies ; -o <option> : permet de passer une ou plusieurs options, comme le mode paysage etc.

Le filtre est un programme qui traite les jobs avant leur envoi vers limprimante. Le serveur dimpression envoie les jobs vers le filtre, ce dernier transforme ces jobs en format PDL support par limprimante cible. Unix/Linux imprime directement les fichiers en format texte. Pour ceux qui sont dans un format diffrent, on utilise des filtres qui les transforment au format PostScript. Cela permet de les envoyer directement une imprimante PostScript. Comme toutes les imprimantes ne supportent pas le langage PostScript, on utilise une imprimante PostScript virtuelle, ghostscript, qui finalement traduit le PostScript en langage PDL de limprimante. Exemples de programmes Ghostscript : Aladdin Ghostscript (version commerciale), GNU Ghostscript et ESP Ghostscript (CUPS).

La commande mpage permet de crer un fichier PostScript, prt tre imprim, partir de plusieurs fichiers en format texte ou PostScript. Elle offre la possibilit de rduire le texte pour mettre plusieurs pages par feuille imprime. mpage -4 le_fichier.txt l_autre_fichier.ps

b) lpq
La commande /usr/bin/lpq permet dafficher le contenu des queues dimpression. Pour afficher les demandes de la queue par dfaut :

B. Outils dimpression
Dans cette partie nous allons voir les commandes utilises pour imprimer des fichiers et pour grer des queues dimpression.

lpq Pour afficher les demandes de toutes les queues : lpq -a Pour afficher les demandes de la queue imp : lpq -Pimp

a) lpr
La commande /usr/bin/lpr est utilise pour envoyer une demande dimpression une imprimante. Cest une version modernise de la commande Unix lp (line print) utilise auparavant. Il faut bien comprendre que lon peut associer diffrentes queues dimpression une mme imprimante. Supposons que lon veuille imprimer un fichier appel ma_lettre , voici deux manires de limprimer : ! envoyer la demande limprimante par dfaut, lpr ma_lettre

c) lprm
La commande /usr/bin/lprm permet de dtruire des demandes dans les queues dimpression. Les autorisations de destruction par utilisateur sont dcrites dans le fichier /etc/lpd.perms (cf. une description plus prcise plus loin). Pour dtruire la dernire demande dimpression : lprm

Ouvrage sous contrat Creative Commons BY-NC-SA p. 48

Ouvrage sous contrat Creative Commons BY-NC-SA p. 49

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 4. Impression

Pour dtruire la dernire demande dimpression de lutilisateur mejdi : lprm mejdi Pour dtruire toutes les demandes : lprm -a ou lprm On peut galement faire rfrence la demande par son numro que lon rcupre avec la commande lpq vue prcdemment. De mme que pour les commandes prcdentes, lprm supporte loption P qui permet de faire rfrence une autre queue que la queue par dfaut.

! !

Listen dfinit le port IPP dcoute du serveur CUPS ; <Location /chemin> . </Location> dfinit les contrles daccs linterface web du serveur CUPS.

Exemple de fichier /etc/cupsd.conf : # Autoriser le partage sur le rseau local listen 192.168.1.*:631 Browsing On BrowseAddress 192.168.210.255 BrowseDeny All BrowseAllow 192.168.210.* BrowseOrder deny,allow #Autoriser les stations du rseau local accder #notre serveur ServeurCUPS via ladresse #http://ServeurCUPS :631 <Location /> Order Allow, Deny Allow 192.168.210.* </Location >

C. Fichiers de configuration
Le fichier de configuration principal de CUPS est /etc/cups/cupsd.conf. Chaque ligne de ce fichier est soit une directive de configuration, soit une ligne vide, soit un commentaire. Les directives de configuration sont volontairement similaires celles utilises par le serveur web Apache. Quelques directives intressantes utilises dans le fichier cupsd.conf : ! ! ! ! ! ! ! Browsing dfinit si la rcupration des informations des imprimantes distantes doit tre active ; BrowseAddress dfinit une adresse o diffuser les informations sur les imprimantes ; BrowseAllow accepte les paquets arrivant de machines nommes ou dadresses IP ; BrowseDeny refuse les paquets de demande dinformations sur les imprimantes arrivant de machines nommes ou dadresses IP ; BrowseInterval dfinit lintervalle maximum dinformation sur les imprimantes ; entre les demandes 6.

D. Exercices
5. Quelle commande utilisez-vous pour suspendre ou mettre en attente une queue dimpression ? ! ! ! ! ! lpr lpq lpc lpd prm

Que va faire la commande suivante : cat hosts | lpr -#2 ! ! ! ! Imprimer le fichier hosts sur limprimante par dfaut deux fois. Classer hosts et imprimer le classement comme tche #2. Envoyer le fichier hosts limprimante et le mettre dans la queue numro 2. Envoyer le fichier hosts sur la sortie standard puis envoyer la tche en cours limprimante 2.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 51

BrowseOrder dfinit le contrle daccs aux informations des imprimantes (allow,deny ou deny,allow) ; ServerName dfinit le nom complet du serveur ;
Ouvrage sous contrat Creative Commons BY-NC-SA p. 50

Chapitre 5. Gestion des utilisateurs et des groupes dutilisateurs


Objectifs " Savoir crer des utilisateurs. " Savoir grer les groupes et la participation des utilisateurs dans diffrents groupes. " Connatre les fichiers de configuration. " Modifier les comptes des utilisateurs et les informations de configuration par dfaut. Le systme de gestion des utilisateurs sous Linux est simple mais efficace. Cependant, il a quelques limitations. /bin/false, /etc/default/useradd, /etc/group, /etc/gshadow, /etc/passwd, /etc/shadow, /etc/skel, groupadd, groupdel, groupe, groups, grpconv, grpunconv, id, newgrp, passwd, pwconv, pwunconv, useradd, userdel, usermod, utilisateur

Points importants

Mots cls

A. Les utilisateurs
Pour la cration dun utilisateur, on utilise la commande /usr/sbin/useradd, ou son alias /usr/sbin/adduser qui est un lien symbolique vers la commande prcdente pour des raisons de compatibilit historique. Syntaxe : /usr/sbin/useradd [options] nom-utilisateur Quelques options utiles : ! -c : commentaire ;
Ouvrage sous contrat Creative Commons BY-NC-SA p. 53

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 5. Gestion des utilisateurs et des groupes dutilisateurs

! !

-g : groupe ; -s : shell.

Si le groupe nest pas spcifi au moment de la cration du compte deux stratgies gnrales sont employes pour assigner un groupe par dfaut : ! ! le groupe par dfaut est le mme pour tous. Il sappelle par exemple users ; la distribution RedHat a introduit la notion de groupe priv par utilisateur ou UPG (User Private Group). Le nom du groupe est identique celui du login.

Pour ajouter un utilisateur mejdi dans le groupe chefs avec le shell tcsh : /usr/sbin/adduser -c 'Mejdi le chef' -g 'chefs' -s '/bin/tcsh' mejdi Les options par dfaut se trouvent dans le fichier /etc/default/useradd, ou bien sont listes par loption -D de la commande useradd. # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel Chaque utilisateur possde un identifiant ou UID (user identifier), numro gnr automatiquement et compris entre 500 et 60 000. Un autre intervalle de valeurs peut si ncessaire tre impos. Il doit dans ce cas tre spcifi dans le fichier /etc/login.defs. Pour activer le compte, ladministrateur doit dfinir un mot de passe pour le compte par la commande /usr/bin/passwd : Syntaxe : /usr/bin/passwd nom-utilisateur Exemple : /usr/bin/passwd mejdi Cette commande permet galement lutilisateur de changer lui-mme son mot de passe.

Selon la stratgie employe, le masque par dfaut (umask) de cration est initialis 022 dans le premier cas (classique) et 002 dans le deuxime cas (UPG). Si un utilisateur cre un fichier, celui-ci appartiendra par dfaut au groupe primaire de lutilisateur. Un utilisateur peut appartenir dautres groupes, ce sont les groupes secondaires. Pour connatre la liste des groupes auxquels lutilisateur appartient, on utilise la commande id. Dans lexemple qui suit, lutilisateur moi appartient au groupe primaire normal et aux groupes secondaires compta et chefs . id uid=1421(moi) gid=1664(normal) groupes=1664(normal),2010(compta),2008(chefs) La commande newgrp permet de changer temporairement de groupe primaire, condition que le nouveau groupe soit un groupe secondaire de lutilisateur ou que lutilisateur en connaisse le mot de passe. newgrp chefs La commande id donne alors : id uid=1421(moi) gid=2008(chefs) groupes=1664(normal),2010(compta),2008(chefs) La commange groups permet elle aussi dafficher les groupes auxquels appartient un utilisateur. groups normal compta chefs

B. Les groupes
Un utilisateur appartient toujours au moins un groupe dit groupe primaire (primary group).

Ouvrage sous contrat Creative Commons BY-NC-SA p. 54

Ouvrage sous contrat Creative Commons BY-NC-SA p. 55

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 5. Gestion des utilisateurs et des groupes dutilisateurs

Pour ajouter un groupe, on utilise la commande groupadd : groupadd forcats Pour supprimer un groupe, on utilise la commande groupdel : groupdel forcats Ces commandes mettent jour le fichier /etc/group. Pour grer les utilisateurs dun groupe, on utilise la commande gpasswd : Les options sont les suivantes : ! ! ! -a : ajout dun utilisateur ; -d : retrait dun utilisateur ; -A : affectation dun administrateur au groupe. gpasswd -a nicolas forcats La commande tait prvue lorigine pour ajouter un mot de passe commun au groupe et permettre aux utilisateurs appartenant un mme groupe de se connecter avec le mme mot de passe, ce qui explique le nom de la commande. Cette possibilit nexiste plus pour des raisons de scurit videntes.

Exemple de ligne extraite dun fichier /etc/passwd avec utilisation dun fichier /etc/shadow : nicolas:x:502:502:Nicolas L:/home/nicolas:/bin/tcsh Depuis quasiment lorigine, la majorit des distributions Linux utilise un fichier /etc/shadow pour stocker les mots de passe. La scurit est bien meilleure car il est protg en lecture. Le fichier /etc/passwd est, lui, lisible par toutes les applications. Pour crer un fichier /etc/shadow partir dun fichier /etc/passwd on utilise la commande /usr/sbin/pwconv. Pour revenir la configuration prcdente (i.e. stockage des mots de passe dans le fichier /etc/passwd), on utilise la commande /usr/sbin/pwunconv. Attention fixer correctement les droits sur ces fichiers : 600 ou mme 400 pour /etc/shadow et 644 pour /etc/passwd. Ne pas oublier de vrifier, lors de lutilisation de la commande pwunconv, de remettre les mmes droits sur le fichier /etc/passwd.

b) Gestion des groupes


Le fichier /etc/group contient les informations sur les groupes, structures en quatre champs : ! ! ! ! nom du groupe ; mot de passe du groupe ou x sil existe un fichier /etc/gshadow ; GID ; liste des utilisateurs du groupe.

C. Les fichiers de configuration


a) Gestion des utilisateurs
Le fichier /etc/passwd contient les informations sur les utilisateurs, structures en sept champs : ! ! ! ! ! ! ! login ; UID ; GID ; mot de passe ou x sil existe un fichier /etc/shadow ; description de lutilisateur ; rpertoire par dfaut de lutilisateur ; shell.

Les quatre champs sont prsents sur une ligne et spars par le caractre : . Ligne de fichier /etc/group avec utilisation d'un fichier /etc/gshadow : normal:x:555:niry,andrei,kader,nicolas De mme que pour le fichier /etc/passwd , pour crer un fichier /etc/gshadow partir dun fichier /etc/group on utilise la commande : /usr/sbin/grpconv Pour revenir la configuration prcdente (i.e. stockage des mots de passe dans le fichier /etc/group et destruction de /etc/gshadow) : /usr/sbin/grpunconv

Les sept champs sont prsents sur une ligne et spars par le caractre : .
Ouvrage sous contrat Creative Commons BY-NC-SA p. 56 Ouvrage sous contrat Creative Commons BY-NC-SA p. 57

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 5. Gestion des utilisateurs et des groupes dutilisateurs

c) Fichiers de configuration par dfaut


Le fichier /etc/login.defs contient les informations par dfaut sur la validit des comptes et des mots de passe des utilisateurs. Ces informations sont stockes dans le fichier /etc/shadow lors de la cration du compte : ! ! ! ! ! ! ! ! ! MAIL_DIR : rpertoire mail par dfaut (e.g. /var/spool/mail) ; PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_MIN_LEN, PASS_WARN_AGE : informations concernant la validit du mot de passe ; UID_MIN, UID_MAX : plage des numros identifiant des utilisateurs (UID) lors de lutilisation de useradd ; GID_MIN, GID_MAX : plage des numros identifiants des groupes (GID) lors de lutilisation de groupadd ; CREATE_HOME : cration automatique du rpertoire home lors de lutilisation de useradd ; PASS_MAX_DAYS : nombre de jours maximum dutilisation dun mot de passe ; PASS_MIN_DAYS : nombre de jours minimum entre deux changements de mot de passe ; PASS_MIN_LEN : taille minimum dun mot de passe ; PASS_WARN_AGE : nombre de jours denvoi d'un avertissement avant que le mot de passe nexpire.

Les options de configuration dun groupe peuvent tre modifies par la commande groupmod : ! ! -n : nouveau nom du groupe ; -g : identifiant du groupe (GID).

a) Comment bloquer un compte


Un moyen simple est de faire prcder le mot de passe par un ! dans les fichiers de configuration. Lors de lutilisation d'un fichier /etc/shadow, on peut remplacer galement le x dans le fichier /etc/passwd par un * . Une autre mthode consiste utiliser les commandes passwd et usermod : passwd -l usermod -L Pour dbloquer le compte en utilisant les mmes commandes : passwd -u usermod -U On peut aussi dtruire le mot de passe : passwd -d Enfin, on peut affecter un utilisateur le shell par dfaut /bin/false, ce qui lempche de se connecter.

D. Gestion des comptes et des options de cration par dfaut


Les options de configuration dun compte peuvent tre modifies par la commande usermod : ! ! ! ! ! ! ! ! -l : nouveau nom dutilisateur ; -c : commentaire ; -g : groupe (il doit exister au pralable) ; -s : shell ; -d : chemin du rpertoire home ; -u : identifiant utilisateur (UID) ; -p : mot de passe entrer en format md5 ; -e : informations dexpiration du compte.

b) Gestion des informations dexpiration du compte


Pour modifier les informations par dfaut (/etc/login.defs) et les informations dexpiration, on utilise la commande /usr/bin/chage : chage [ -l ] [ -m min_days ] [ -M max_days ] [ -W warn ] [ -I inactive ] [ -E expire ] [ -d last_day ] user Options : ! ! ! ! -l donne les valeurs actuelles du compte ; -E permet de fixer une date dexpiration sous la forme Unix standard ou sous la forme YYYY/MM/DD ; -M permet de changer la valeur de PASS_MAX_DAYS contenue dans le fichier /etc/login.defs ; -m permet de changer la valeur de PASS_MIN_DAYS contenue dans le fichier /etc/login.defs ;
Ouvrage sous contrat Creative Commons BY-NC-SA p. 59

Ouvrage sous contrat Creative Commons BY-NC-SA p. 58

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 5. Gestion des utilisateurs et des groupes dutilisateurs

! !

-w permet de changer la valeur de PASS_WARN_AGE contenue dans le fichier /etc/login.defs ; -d permet de changer la date de dernier changement de mot de passe sous la forme Unix standard ou sous la forme YYYY/MM/DD.

D. Exercices
1. Quelle est la commande Unix qui permet de crer un utilisateur user1 qui appartient au groupe auf ? ! ! ! ! 2. useradd -m -g user1 auf useradd -m user1 -group auf add -m -g auf user1 useradd -m -g auf user1

La figure 4 rcapitule les diffrentes informations associes la vie du compte.


Figure 4. Informations dexpiration dun compte associes la commande en ligne

Lutilisateur mejdi a t dplac dans le dpartement BECO. Vous voulez changer son groupe principal en beco. Quelle est la commande la plus simple pour raliser cela ? Quelle commande allez-vous utiliser pour verrouiller le compte de lutilisateur nicolas ? Lutilisateur nicolas de votre serveur a oubli son mot de passe. Quelle commande allez-vous utiliser pour changer son mot de passe en supposant que vous avez ouvert une session en tant que root ? Le rpertoire suivant contient les fichiers qui sont copis dans le rpertoire de lutilisateur au moment de la cration de son compte : ! ! /etc/skel /etc/users /etc/passwd /etc/hosts

3.

4.

5.

c) Destruction dun compte


On utilise la commande /usr/sbin/userdel. Loption -r permet de dtruire galement le contenu du rpertoire home. /usr/sbin/userdel -r mejdi

! !

Ouvrage sous contrat Creative Commons BY-NC-SA p. 60

Ouvrage sous contrat Creative Commons BY-NC-SA p. 61

Chapitre 6. Administration du systme GNU/Linux


Objectifs " Rviser les principales techniques dadministration du systme. " Connatre la gestion du systme de logs, la programmation des tches priodiques. " tre capable de localiser le systme en plusieurs langues autres que langlais. /etc/localtime, /etc/timezone, locale, /usr/share/zoneinfo, /var/log, anacron, anacrontab, at, cron, crontab, date, iconv, ISO-8859, LANG, LC_*, LC_ALL, logrotate, tzselect, Unicode, UTF-8

Mots cls

A. Les traces du systme


a) Les journaux (logs)
Tous les vnements qui affectent les processus sont enregistrs dans des fichiers appels fichiers journaux ou journaux (logs files ou logs). Par dfaut les journaux sont placs dans larborescence /var/log. Certains dmons (daemons) gnrent leurs journaux dans des arborescences spcifiques. Par exemple les logiciels Samba et Apache enregistrent leurs journaux dans /var/log/samba et /var/log/apache. La plupart des messages de logs sont grs par le dmon systme syslogd. Voici quelques fichiers journaux importants : ! ! cron : contient les messages concernant cron ; maillog : messages relatifs au systme de courrier ;

Ouvrage sous contrat Creative Commons BY-NC-SA p. 63

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 6. Administration du systme GNU/Linux

! ! !

messages : presque tous les messages du systme sauf les messages dauthentification qui se trouvent dans dautres fichiers spcifiques ; secure ou auth : messages relatifs lauthentification des utilisateurs, la gestion de la base de donnes dutilisateurs, etc. ; dmesg : messages provenant du noyau.

Chaque ligne de configuration de /etc/syslog.conf contient une liste de groupes de messages avec la priorit correspondante et le nom du fichier journal dans lequel seront enregistrs ces messages : groupe1.priorit1 ; groupe2.priorit2 ; /var/log/fichier_de_log Il faut remarquer que la priorit spcifie de cette manire reprsente la priorit minimale. Chaque message qui possde une priorit gale ou suprieure la priorit donne sera enregistr. Pour spcifier des messages ayant une priorit unique on fait prcder la priorit du signe = . Voici quelques exemples de configuration : authpriv.* mail.* cron.* news.=crit news.=err news.notice /var/log/secure /var/log/mail.log /var/log/cron /var/log/news/news.crit /var/log/news/news.err /var/log/news/news.notice

Le fichier journal le plus utile et le plus consult est /var/log/messages car la plupart des messages produits par le systme y sont enregistrs. La commande tail f permet dafficher dynamiquement le contenu des dernires lignes dun fichier journal ce qui permet den suivre lvolution et de visualiser immdiatement les nouveaux vnements. tail f /var/log/messages

b) La configuration
La configuration du dmon syslogd, dont la tche est lenregistrement des messages de logs, se fait dans le fichier /etc/syslog.conf. Les messages de logs sont diviss en groupes. Dans chaque groupe ils sont classs par priorit. Les groupes de messages de logs sont les suivants : ! ! ! ! ! auth et authpriv : authentification ; cron : messages de lutilitaire cron ; kern : messages du noyau ; mail : le systme de courrier ; user : messages des processus utilisateurs.

Il est galement possible denvoyer les messages de logs sur une autre machine (serveur de logs) : .emerg @10.1.1.88

Cela permet de centraliser tous les logs des machines dun rseau sur une seule machine pour en faciliter la consultation.

c) La rotation des logs


Comme la taille des fichiers journaux augmente en permanence il est ncessaire de les nettoyer rgulirement. La technique utilise en gnral est la rotation des logs qui permet de conserver diffrentes versions dun mme fichier. Avant dtre vid le fichier journal est copi dans un autre fichier avec un suffixe .0. Le prcdent fichier .0 devient .1 et ainsi de suite. De cette manire on peut par exemple garder les quatre dernires versions dun fichier journal ; si lon fait une rotation par semaine cela correspond la sauvegarde des messages de logs du mois prcdent. Il est galement possible de compresser ces fichiers : messages messages.0 messages.1.gz messages.2.gz messages.3.gz

Les diffrentes priorits des messages, tries par ordre croissant, sont les suivantes : ! ! ! ! ! ! ! ! ! ! emerg alert crit err warning notice info debug * none.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 64

Ouvrage sous contrat Creative Commons BY-NC-SA p. 65

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 6. Administration du systme GNU/Linux

Loutil qui fait la rotation des logs sappelle logrotate. Son fichier de configuration est /etc/logrorate.conf. En plus du fichier gnral nous pouvons utiliser un fichier spcifique par service dans le rpertoire /etc/logrotate.d. Voil un exemple du fichier logrotate.conf : # faire la rotation chaque semaine weekly # garder les 4 dernier fichiers rotate 4 # envoyer les erreurs root errors root # aprs la rotation crer le nouveau fichier de log create # compresser les fichiers sauvegards compress # inclure les fichiers de /etc/logrotate.d include /etc/logrotate.d # configuration des logs de lastlog et utmp /var/log/wtmp { monthly create 0664 root utmp rotate 1 }

! !

crontab u : permet ladministrateur de grer la table cron dun certaine utilisateur ; crontab r : supprime la table cron.

Le format des ligne dans la table cron est le suivant : minutes(0-59) heures(0-23) jour du mois(1-31) mois(1-12) jour de la semaine(0-6) commande Dans la table cron du systme (/etc/crontab) il faut galement indiquer le nom de lutilisateur qui va lancer la commande : minutes (0-59) heures(0-23) jour du mois (1-31) mois (1-12) jour de la semaine (0-6) utilisateur commande Dans la ligne de la table /etc/crontab de lexemple ci-dessous, lutilisateur root excute 5h00 (= 0 5 ), chaque dimanche ( 0 ), la commande mentionne : 0 5 * * 0 root /usr/bin/find /home/ -name core -exec rm {} \; Par dfaut chaque utilisateur peut utiliser la commande crontab. Pour restreindre cette possibilit, on peut spcifier des droits dans les fichiers /etc/cron.allow et /etc/cron.deny. Il est possible dutiliser une autre version de cron qui se nomme anacron pour laquelle le fichier de configuration est /etc/anacrontab. Cette version est utilise pour lancer des commandes avec une priodicit donne (par exemple en nombre de jours) et ne ncessite pas que la machine soit en permanence en route. Elle se base sur des fichiers gnrs ds la fin dune tche.

B. Excution automatique de tches


Deux outils permettent de programmer des tches priodiques. Ce sont les commandes cron et at.

b) at
La commande at peut tre utilise pour programmer lexcution dune tche un moment donn. La commande excuter est celle passe en argument. Syntaxe : at [spcification du temps] La spcification du temps peut tre de la forme now , 3am + 2days , midnight , 10:15 Apr 12 , teatime , etc. Pour programmer lexcution de la commande /usr/local/updatemirror minuit : echo /usr/local/updatemirror | at midnight

a) Cron
Le systme cron permet de grer la configuration de tables dexcution de tches priodiques (crontabs) : une table pour chaque utilisateur et une table pour le systme. Les tables des utilisateurs sont enregistres dans les fichiers /var/spool/cron/<nom_d_utilisateur> grs par les utilisateurs laide de loutil crontab. La table cron du systme se trouve dans le fichier /etc/crontab. Options de la commande crontab : ! ! crontab l : affiche la liste des tches programmes ; crontab e : ouvre lditeur par dfaut avec la table cron ;
Ouvrage sous contrat Creative Commons BY-NC-SA p. 66

Ouvrage sous contrat Creative Commons BY-NC-SA p. 67

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 6. Administration du systme GNU/Linux

Les commandes programmes par at sont enregistres dans /var/spool/at/ et sont excutes par le dmon atd. Les options suivantes permettent de grer la queue des tches at : ! ! ! ! at -l # donne la liste des tches programmes ; atq # est la mme commande que at l ; at -d <numro de la tche> # supprime la tche spcifie ; atrm # est la mme commande que at d.

La variable denvironnement TZ permet de modifier temporairement le fuseau horaire. On peut donc utiliser la commande tzselect qui demande lutilisateur des informations sur son emplacement et fournit en sortie la description du fuseau horaire. Ce rsultat peut tre affect la variable denvironnement TZ. $ TZ='Africa/Casablanca'; export TZ $ date mer. dc. 16 23:25:26 WET 2009 On peut changer de faon permanente le fuseau horaire en crant un lien symbolique vers un fichier du rpertoire /usr/share/zoneinfo : # ln -s /usr/share/zoneinfo/Africa/Cairo localtime # date jeu. dc. 17 01:33:34 EET 2009 Certaines distributions utilisent un autre fichier de configuration secondaire contenant le nom du fuseau horaire. Ce fichier doit tre mis jour en cas de changement de fuseau horaire. Ce fichier est : ! /etc/timezone sur Debian et ses drivs ; $ cat /etc/timezome Africa/Tunis ! /etc/sysconfig/clock sur Fedora. $ cat /etc/sysconfig/clock ZONE="Africa/Tunis"

Par dfaut seul lutilisateur root peut utiliser la commande at. Cette configuration peut tre modifie dans les fichiers /etc/at.deny et /etc/at.allow .

C. Localisation et internationalisation
Linux est un logiciel internationalis, cest--dire quil peut tre adapt aux contextes de chaque pays. Ce travail dadaptation est appel rgionalisation ou localisation. Il concerne bien sr les messages utilisateurs, pour quils soient rdigs dans la langue approprie, mais galement bien dautres lments tels le format des dates et des nombres, les couleurs... N.B. : la place des termes internationalisation (internationalization) et localisation (localization ) on utilise souvent les abrviations i18n et l10n, construites en ne conservant que les premire et dernire lettre de chaque terme et en remplaant les lettres supprimes par leur nombre. Linux supporte ainsi une large varit de jeux de caractres, types de claviers, formats daffichage de dates et dautres caractristiques qui peuvent varier dune rgion une autre. Beaucoup de ces paramtres sont dfinis lors de linstallation du systme, et sont modifiables pour les besoins de personnalisation.

a) Dfinition du fuseau horaire


Le fuseau horaire est configur travers le fichier /etc/localtime qui est le plus souvent un lien symbolique vers un fichier du rpertoire /usr/share/zoneinfo. La commande date permet dafficher le fuseau horaire utilis au sein du systme. Le rsultat affiche le code standard du fuseau horaire : CET (Central European Time ) : $ date jeu. dc. 17 00:28:32 CET 2009
Ouvrage sous contrat Creative Commons BY-NC-SA p. 68

b) Les variables de localisation


Des variables denvironnement de localisation, ou paramtres rgionaux (locales en anglais), permettent de dfinir la faon dont les donnes sont prsentes lutilisateur ainsi que la faon dont les entres de lutilisateur sont traites. La commande locale permet dafficher le contenu de ces variables : # locale LANG=fr_FR.UTF-8 LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8"
Ouvrage sous contrat Creative Commons BY-NC-SA p. 69

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 6. Administration du systme GNU/Linux

LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL= Les valeurs contenues par les variables LANG et LC_* et LANG respectent la syntaxe suivante : langue[_pays[.encodage]][@modifier] o : ! ! ! ! langue est un code langue (en minuscules) ; pays est un code pays (en majuscules) ; encodage dsigne une table de caractres (par exemple UNICODE, UTF-8, ISO-8859-1 ISO-8859-15) ; @modifier dsigne dautres attributs particuliers, par exemple le dialecte particulier dune langue, ou une orthographe non standard. LANG dfinit les prfrences globales, qui peuvent ensuite tre redfinies au cas par cas par une variable LC_* ; LC_COLLATE dfinit lordre alphabtique des chanes de caractres ; LC_MESSAGES dfinit la localisation des messages du systme ; LC_MONETARY dfinit les units montaires et le format des valeurs numriques financires ; LC_NUMERIC dfinit le format de valeurs numriques qui ne sont pas montaires. Cela dfinit notamment les caractres utiliss comme sparateur de dcimale et de miliers. LC_ALL dfinit la valeur par dfaut des variables prcdentes : si une LC_ nest pas dfinie, cest LC_ALL qui est prise en compte.

Par exemple, notre diteur supporte lencodage UTF-8 et non ISO-8859, et nous recevons un fichier encod avec ISO-8859-1 contenant des accents. Lditeur va afficher des caractres tranges la place de ces accents. Afin de rsoudre ce problme, il faut encoder le fichier en UTF-8. La modification de lencodage dun fichier se fait avec la commande iconv. Syntaxe : iconv f encodage [t encodage] [fichier] Le rsultat de la commande est crit sur la sortie standard, les options f et t dfinissent lencodage source et lencodage cible. Si lencodage cible est absent, lencodage utilis sera celui dfini par la locale du systme. Exemple : iconv f iso-8859-1 t UTF-8 monfichier > monfichier-UTF-8

D. Exercices
1. Parmi les niveaux de svrit syslog, quel est le plus haut niveau de svrit ? ! ! ! ! 2. emerg warning crit debug

Voici les significations de quelques variables de localisation : ! ! ! ! !

La ligne correcte de la table cron qui permet dexcuter le script /usr/local/sbin/chklog une fois par heure entre trois heures et cinq heures de laprs-midi chaque lundi et jeudi est : ! ! ! ! ! 0 3,4,5 * * 2,5 /usr/local/sbin/chklog 0 3,4,5 * * 1,4 /usr/local/sbin/chklog * 15,16,17 * * 1,4 /usr/local/sbin/chklog 0 15,16,17 * * 1,4 /usr/local/sbin/chklog 0 15,16,17 1,4 * * /usr/local/sbin/chklog

c) Modifier lencodage des fichiers textes


Parfois notre systme traite des donnes textuelles provenant dun systme qui utilise un encodage spcifique, mais avec un programme qui ne supporte pas cet encodage.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 70

3.

Donner la commande qui permet de convertir le fichier monfichier de lencodage ISO-8859-1 vers lencodage UTF-8 : ! locale f iso-8859-1 t UTF-8 monfichier > monfichier-UTF-8
Ouvrage sous contrat Creative Commons BY-NC-SA p. 71

Prparation lexamen 102 pour la certification LPIC-1

! ! ! 4.

iconv f iso-8859-1 t UTF-8 monfichier > monfichier-UTF-8 i10n f iso-8859-1 t UTF-8 monfichier > monfichier-UTF-8 conv f iso-8859-1 t UTF-8 monfichier > monfichier-UTF-8

Crer un script bash qui supprime tous les fichiers *.bak dans le rpertoire HOME de lutilisateur. Programmer lexcution de ce script tous les matins 5h05 par la table cron de lutilisateur. Programmer par at larchivage du rpertoire /home pour 4 heure de matin le jour suivant Trouver la commande qui permet denregistrer des messages par syslog. Utiliser cette commande pour enregistrer chaque jour dans les logs systmes le nombre de tches excutes par le dmon atd.

5.

Chapitre 7. Les rseaux TCP/IP


Objectifs Mots cls " Connatre les principes gnraux des rseaux TCP/IP (V4) et des mcanismes dadressage classiques. adressage, classe, ICMP, IP, masque, port, sous-rseau, TCP, UDP

6.

A. Adressage IP
a) Les adresses IP
Chaque machine connecte au rseau Internet ou sur un rseau local possde au moins une adresse IP. En fait ladresse IP est assigne une interface rseau de la machine. Dans la version du protocole IP actuellement la plus utilise, la version 4 (IPv4), ladresse IP est compose de 4 octets (32 bits). La notation la plus connue de ladresse IP et la notation dcimale pointe : les quatre octets sont nots sous forme dcimale et spars par des points. Exemple : Adresse IP : 212.50.14.82 En binaire cette adresse IP sera de la forme : Adresse IP : 11010100.00110010.00001110.01010010 Ou, sans les points : Adresse IP : 11010100001100100000111001010010

Ouvrage sous contrat Creative Commons BY-NC-SA p. 72

Ouvrage sous contrat Creative Commons BY-NC-SA p. 73

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 7. Les rseaux TCP/IP

b) Les rseaux IP et les masques rseau ; les adresses de rseau et de diffusion


Un paquet IP est un morceau dinformation transport par un rseau TCP/IP. Il peut traverser plusieurs rseaux (des rseaux IP) pour aller dune machine une autre. Les adresses IP sont regroupes en ensembles nomms des rseaux. Ladresse IP contient ladresse du rseau et ladresse de la machine dans ce rseau (adresse de lhte). Adresse IP = Adresse du rseau + Adresse de lhte Le masque rseau spcifie la partie de ladresse IP qui reprsente ladresse du rseau. Le reste dsigne lhte dans ce rseau. Le masque rseau est exprim galement sur 4 octets. Ce qui est spcifique est que les premiers bits, reprsentant la partie de ladresse utilise pour le rseau, sont toujours 1 et que les bits restant sont 0 . Exemple : Masque rseau : 11111111.11111111.11111111.11000000 (255.255.255.192) Cet exemple montre un masque rseau de 26 bits (le nombre de 1 au dbut). Cela veut dire que les 26 premiers bits de ladresse IP sont rservs pour dcrire ladresse du rseau. Pour dsigner les machines dans ce 6 rseau il ne reste que 6 bits. Cela fait 2 = 64 adresses de machines. En ralit, le dernier calcul nest pas tout fait correct car il ne tient pas compte du fait que, dans chaque rseau, il y a deux adresses rserves : la premire adresse de la plage dadresses est ladresse du rseau et la dernire est ladresse de diffusion. En tenant compte de cette correction 6 nous disposons de 62 adresses pour nos machines (2 - 2). Actuellement, il est possible dans certains cas dutiliser ces adresses. Rsumons cet exemple dans le tableau 2. Nous pouvons utiliser pour ladresse IP la notation CIDR (Classless Inter Domain Routing ou routage inter-domaine sans classe) : 212.50.14.82/26. Le /26 indique que ladresse 212.50.14.82 se trouve dans un rseau de taille 26 (les premiers 26 bits dterminent ladresse du rseau).
Tableau 2. Notation dcimale/binaire des lments dun rseau en IPv4

Ladresse du rseau est constitue en remplaant la partie de lhte dans ladresse IP par des 0 (zros). En ce qui concerne ladresse de diffusion, on lobtient en remplaant la partie de lhte par des 1 . Un autre mthode, plus mathmatique, permet dobtenir ces deux adresses : <Adresse rseau> = <Adresse IP> AND <Masque rseau> <Adresse de diffusion> = <Adresse IP> OR NOT(<Masque rseau>) o AND, OR et NOT sont les oprateurs logiques classiques.

c) Les classes IP
Les rseaux dadresses IP ont t regroups en classes. Les 2 premiers bits de ladresse IP dterminent la classe IP laquelle cette adresse IP appartient. De ce fait, la classe IP dtermine la taille du rseau (tableau 3 ).
Tableau 3. Les classes en IPv4

Premiers Classe 2 bit IP


00 ou 01 10 11 A B C

Nombre Taille dadresses du IP rseau du rseau


1 octet 2 octets 3 octets

Exemple

224 115.0.0.1 = 16777216 01110011.00000000.00000000.00000001 216 = 65536 28 = 65536 130.1.1.1 10000010.00000001.00000001.00000001 212.50.14.82 11010100.00110010.00001110.01010010

Dans chaque classe IP il existe un ou plusieurs rseaux rservs pour des besoins privs. Ce sont des adresses qui ne sont pas prises en compte par les routeurs de lInternet et peuvent tre utilises uniquement pour des rseaux internes. Tandis que les adresses normales sont, en principe, uniques dans tout lInternet (leur distribution est contrle), la mme adresse prive peut tre prsente dans plusieurs rseaux privs.
Tableau 4. Rseaux privs par classe en IPv4

Dcimal Adresse IP Masque rseau Adresse du rseau


212.50.14.82/26

Binaire 11010100.00110010.00001110.01010010

Classe IP A B C

Adresses prives 10.x.x.x (un rseau de classe A) de 172.16.x.x 172.31.x.x (16 rseaux de classe B) 192.168.x.x (255 rseaux de classe C)

255.255.255.192 11111111.11111111.11111111.11000000 212.50.14.64 11010100.00110010.00001110.01000000 11010100.00110010.00001110.01111111

Adresse de diffusion 212.50.14.127

Ouvrage sous contrat Creative Commons BY-NC-SA p. 74

Ouvrage sous contrat Creative Commons BY-NC-SA p. 75

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 7. Les rseaux TCP/IP Tableau 6. Protocoles associs la pile TCP/IP

d) Les sous-rseaux
La division en classes IP standard provoque un gaspillage important dadresses IP (trs peu dorganisations ont besoin de 16 milliards dadresses IP). En utilisant des masques rseaux diffrents, il est possible de subdiviser un rseau en sous-rseaux en fonction des besoins. Un fournisseur daccs le fait frquemment pour distribuer des adresses ses clients, mais un administrateur peut tre amen le faire pour grer plusieurs sites. Par exemple un rseau avec un masque /24 (normalement la taille dune classe C) peut tre divis en 2 sous-rseaux de taille /25 ou en 4 sousrseaux de taille /26.
TCP Protocole IP

Description Cest le protocole utilis pour le dcoupage de linformation (les segments TCP ou UDP) en paquets (datagrammes) et pour le routage de ces paquets de lmetteur au destinataire. Cest aussi le protocole qui dfinit ladressage des diffrents machines connectes lInternet et le regroupement de ces machines en rseaux. Transmission Control Protocol cest le protocole fiable de transmission des donnes. Il travaille en mode connect pour transmettre les donnes dune application une autre tout en assurant le contrle de lintgrit des donnes. User Datagram Protocol ce protocole assure aussi la transmission des donnes entre applications mais en mode non fiable : lintgrit des donnes nest pas contrle. Les applications utilisant ce protocole doivent elles-mmes vrifier cette intgrit. Ce protocole est plus performant que TCP. Internet Control Message Protocol ce protocole est destin grer les informations relatives aux erreurs pouvant survenir sur le rseau.

B. La suite TCP/IP
TCP/IP est le nom commun dun ensemble de protocoles. Ce sont les protocoles sur lesquels sont bases toutes les communications Internet IP, ICMP, TCP, UDP. Les communications par TCP/IP sont organises en couches, comme dans le modle OSI. La diffrence est quici le nombre de couches est rduit 4, sinon lide est la mme : chaque couche ralise des fonctionnalits spcifiques et communique avec les couches voisines. Les quatre couches du modle TCP/IP sont dcrites dans le tableau 5.
Tableau 5. Pile TCP/IP

UDP

ICMP

C. Les ports
Les protocoles TCP et UDP assurent la communication entre deux applications (tableau 6 ).

Couche Application Transport Internet Network Access

Description La couche suprieure comme son nom lindique. On y trouve les applications rseau Transmission des donnes Datagrammes et routage connexion des rseaux Communication au niveau physique

Protocoles FTP, HTTP, SMPT, POP, IMAP, . TCP, UDP IP, ICMP, ARP(?), RIP, BGP, IGMP Ethernet, Token Ring, etc.

Nous savons dj que pour distinguer les machines nous utilisons les adresses IP (chaque machine dispose de sa propre adresse IP unique). Il faut aussi pouvoir distinguer les connexions entre applications. La solution est lutilisation des ports. Une connexion TCP entre deux applications est identifie par 4 informations : ladresse IP de la premire machine, le port TCP de la premire application, ladresse IP de la deuxime machine et le port TCP de la deuxime application. Le mme principe est valable pour les connexions UDP. Elles sont identifies par des ports UDP. Il faut remarquer quune connexion peut tre ralise entre deux applications qui se trouvent sur la mme machine. De mme une application donne (donc utilisant toujours le mme port) peut participer plusieurs connexions (ce sont les applications serveurs). Dans tous les cas la combinaison des quatre informations est unique.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 77

Les protocoles principaux assurant le fonctionnement de lInternet sont prsents dans le tableau 6.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 76

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 7. Les rseaux TCP/IP

Pour initier une connexion TCP (ou respectivement UDP) il faut au pralable que lune des deux applications commence couter sur un certain port TCP. Cette application est le serveur. La deuxime application, que lon appelle le client, va initier la connexion vers ce port TCP (ou port UDP dans le cas dune communication par UDP). Les ports de 1 1023 sont rservs aux serveurs, les ports de 1024 65 535 sont utiliss dynamiquement par les clients (et par les serveurs parfois). Une liste des services rseaux classiques peut tre trouve dans le fichier /etc/services. Voil un extrait de ce fichier : ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp ssh 22/udp telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver rlp 39/udp resource nameserver 42/tcp name whois 43/tcp nicname re-mail-ck 50/tcp re-mail-ck 50/udp domain 53/tcp nameserver domain 53/udp nameserver mtp 57/tcp bootps 67/tcp bootps 67/udp bootpc 68/tcp bootpc 68/udp tftp 69/udp gopher 70/tcp gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http www 80/udp

On peut remarquer par exemple que les connexions Web sont normalement ralises sur le port TCP 80.

D. Exercices
1. Lequel des ports suivants ne devrait pas bloquer sur un systme qui fonctionne comme un serveur Web public ? ! ! ! 53 21 80 23

# SSH Remote Login Protocol # SSH Remote Login Protocol

! 2.

Quand devez-vous utiliser le protocole RARP dans votre rseau local ? ! ! ! Vous en avez besoin pour activer la pile TCP/IP. Vous en avez besoin pour amliorer la scurit du rseau. Vous devez dsactiver PAM Vous en avez besoin pour servir les clients sans disque.

# resource location # IEN 116 3. # Remote Mail Checking Protocol # Remote Mail Checking Protocol # name-domain server # deprecated # BOOTP server # BOOTP client

Votre adresse IP est 170.35.13.28 et votre masque rseau est 255.255.255.192. Quelle adresse IP NAPPARTIENT PAS votre rseau ? ! ! ! ! 170.35.13.33 170.35.13.88 170.35.13.62 170.35.13.55

# Internet Gopher

# WorldWideWeb HTTP # HyperText Transfer Protocol

Ouvrage sous contrat Creative Commons BY-NC-SA p. 78

Ouvrage sous contrat Creative Commons BY-NC-SA p. 79

Chapitre 8. Configuration du rseau


Objectifs " Comprendre et tre capable de configurer les interfaces rseau. " Comprendre et tre capable de configurer les informations de la machine. " tre capable de dmarrer et darrter le rseau. " Connatre les outils rseau. Sous Linux, comme sous Unix, tout est gr par un fichier, mme les interfaces rseau.

Points importants

On prsente dabord les commandes de configuration du rseau puis les fichiers utiliss pour sauvegarder la configuration TCP/IP de manire permanente.
Mots cls /etc/hosts, /etc/host.conf, /etc/HOSTNAME, /etc/resolv.conf, /etc/sysconfig/networks-scripts/ifcfgeth0, ifconfig, ifup, route, arp, dig, host, hostname, interface, netstat, ping, rseau, routage, tcpdump, traceroute

A. Les fichiers de configuration


Le nom de la machine est indiqu dans le fichier /etc/HOSTNAME. Les informations permettant de rsoudre les noms de machines sans le mcanisme du DNS (cf. ci-aprs) se trouvent dans le fichier /etc/hosts. On le renseigne gnralement avec les informations concernant la machine locale, ce qui permet aux applications de fonctionner correctement mme sans connexion rseau.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 81

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 8. Configuration du rseau

#/etc/hosts 193.54.85.245 serveur.transfer-tic.org serveur 127.0.0.1 localhost La commande hostname permet dafficher et de modifier le nom de la machine. Le fichier /etc/resolv.conf. est le fichier de configuration du client DNS (Domain Name System). On trouve dans ce fichier ladresse IP des serveurs DNS ainsi que le domaine de recherche par dfaut. #/etc/resolv.conf nameserver 134.157.9.1 nameserver 134.157.0.129 search transfer-tic.org Pour vrifier le bon fonctionnement du client DNS, on utilise les commandes host ou dig. La commande host est utilise pour la rsolution des noms de machines. host www.auf.org La commande dig, beaucoup plus labore, est utilise en gnral pour obtenir de linformation sur une zone plutt que sur une machine particulire. dig lpi.org Le fichier /etc/nsswitch.conf permet de spcifier quelles sources dinformation consulter pour rsoudre les noms de domaine, et dans quel ordre. Par exemple on peut prvoir de chercher dabord dans le fichier /etc/hosts puis, sil ny a pas de rsultat, dutiliser un service DNS : hosts : files dns

GATEWAY= 134.157.9.126 GATEWAYDEV=eth0 Les informations spcifiques chaque interface se trouvent dans le rpertoire /etc/sysconfig/network-scripts. Le fichier se nomme ifcfg-<nom de l'interface>, par exemple ifcfg-eth0. #/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=134.157.9.52 NETMASK=255.255.255.0 NETWORK=134.157.9.0 BROADCAST=134.157.9.255 ONBOOT=yes Il contient essentiellement quatre informations : ! ! ! ! le nom de linterface ; la manire daffecter ladresse IP (statiquement ou dynamiquement) ; les informations IP (adresse, masque, rseau, diffusion) ; sil faut dmarrer automatiquement linterface.

Enfin, il est possible de nommer les interfaces, mais ce nest pas normalis et reste trs dpendant de la distribution Linux utilise. La distribution Debian stocke les informations de toutes les interfaces rseau dans le fichier /etc/network/interfaces. On y indique pour chaque interface son nom et les informations de rseau associes. auto eth0 iface eth0 inet static address 192.168.10.10 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 gateway 192.168.10.1

Les informations gnrales sur la configuration rseau dune machine se trouvent dans le fichier /etc/sysconfig/network . On spcifie s'il faut dmarrer automatiquement le rseau, le nom rseau de la machine (en principe quivalent celui de /etc/HOSTNAME quil remplace en gnral), la passerelle, et linterface utilise pour joindre la passerelle. #/etc/sysconfig/network/ NETWORKING=yes HOSTNAME= serveur.transfer-tic.org
Ouvrage sous contrat Creative Commons BY-NC-SA p. 82

Ouvrage sous contrat Creative Commons BY-NC-SA p. 83

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 8. Configuration du rseau

B. Dmarrage et arrt du rseau


a) Dmarrage classique
On utilise la commande traditionnelle de Unix ifconfig. Syntaxe /sbin/ifconfig interface [informations reseau] [options] Trois exemples : ifconfig eth0 193.54.85.245 netmask 255.255.255.224 up ifconfig eth0 up ifconfig eth0 down

modifier le contenu du fichier /proc/sys/net/ipv4/ip_forward en remplaant 0 , qui est la valeur par dfaut , par 1 .

d) Renouvellement de bail DHCP


Les outils permettant de rcuprer une nouvelle adresse IP depuis un serveur DHCP (Dynamic Host Configuration Protocol) sont, selon la distribution utilise, pump ou dhcpclient. Attention, le serveur DHCP de Linux sappelle dhcpd, alors que le client se nomme dhcpcd.

C. Routage
Lorsque lon utilise la commande ifup ou le script de dmarrage du rseau, les informations concernant la passerelle sont lues directement depuis le fichier /etc/sysconfig/network (champ GATEWAY). Lorsque lon utilise ifconfig ou si la passerelle nest pas renseigne, il faut indiquer cette passerelle (et dautres routes ventuellement) par la commande /sbin/route qui permet de configurer la table de routage. Pour ajouter une route statique vers le rseau 192.168.100.0/24 en utilisant linterface physique eth2 qui permet de joindre la machine 192.168.2.1 qui, elle, permet datteindre un rseau, le 192.168.100.0/24 : /sbin/route add -net 192.168.100.0/24 gw 192.168.2.1 eth2 Pour plus de commodit, on peut dfinir des rseaux par un nom au lieu de mettre la notation CIDR qui dans lexemple est 192.168.100.0/24. Il suffit pour cela de lindiquer dans le fichier /etc/networks. mon_reseau 192.168.100.0/24 Pour ajouter une route par dfaut vers la machine 192.168.1.1 joignable par linterface physique eth0 : /sbin/route add default gw 192.168.1.1 eth0 Pour afficher la table de routage du noyau Linux, on utilise la commande /sbin/route sans options. Loption -n permet dviter simplement la rsolution de nom DNS, ce qui est commode lorsque lon travaille sur le rseau et quelle nest pas oprationnelle. /sbin/route -n
Ouvrage sous contrat Creative Commons BY-NC-SA p. 85

b) Dmarrage en utilisant les fichiers de configuration


On utilise la commande /sbin/ifup qui rcupre la configuration partir de /etc/sysconfig/network et /etc/sysconfig/network-scripts/, fichiers cits prcdemment . /sbin/ifup eth0 Pour fonctionner, la commande recherche les informations pour linterface eth0 dans le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 qui doit exister et tre renseign.

c) Dmarrage de toutes les interfaces


Comme pour la plupart des services sous Linux, on peut dmarrer le service rseau (donc toutes les interfaces) avec le script /etc/rc.d/init.d/network qui utilise la commande ifup vue prcdemment pour chaque interface dfinie. Sur les systmes de la famille Red Hat, les interfaces sont dfinies par des fichiers de configuration dans le rpertoire /etc/sysconfig/network-scripts/ (ifcfg-eth0 pour linterface eth0 ). /etc/rc.d/init.d/network start Ce script rcupre des informations supplmentaires dans le fichier /etc/sysctl.conf. Par exemple, on peut trouver dans ce fichier la ligne net.ipv4.ip_forward=1, le systme va ainsi relayer (forward) les paquets IP entre les interfaces pour se transformer en routeur. Cceci a pour effet de
Ouvrage sous contrat Creative Commons BY-NC-SA p. 84

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 8. Configuration du rseau

Table de routage IP du noyau Destination Passerelle Genmask 192.168.1.0 0.0.0.0 255.255.255.0 192.168.2.0 0.0.0.0 255.255.255.0 192.168.100.0 192.168.2.1 255.255.255.0 127.0.0.0 0.0.0.0 255.0.0.0 0.0.0.0 192.168.1.1 0.0.0.0

... ... ... ...

Iface eth0 eth2 eth2 lo eth0

La route vers le rseau 0.0.0.0 signifie vers nimporte quel rseau : cest la route par dfaut ou passerelle par dfaut (route add default ... ou celle se trouvant dans le fichier /etc/sysconfig/network). Cette ligne est videmment la dernire consulte par le systme lors dune demande daccs une machine : cela signifie que ladresse demande ne se trouve sur aucun des sous-rseaux dcrits par les routes prcdentes. Lautre route peut tre ajoute automatiquement chaque dmarrage en lindiquant dans le fichier /etc/sysconfig/static-routes. Les informations de routage peuvent tre cres automatiquement laide de dmons spciaux plutt que de les indiquer statiquement. Cest le rle des logiciels routed et gated qui peuvent mettre jour dynamiquement les routes en rcuprant les informations depuis le rseau. Cela permet dutiliser automatiquement des passerelles de secours en cas de dfaillance dune des passerelles.

ping www.transfer-tic.org PING www.transfer-tic.org (81.80.122.16) 56(84) bytes of data. 64 bytes from transfer-tic.org (81.80.122.16): icmp_seq=1 ttl=238 time=4.42 ms 64 bytes from transfer-tic.org (81.80.122.16): icmp_seq=2 ttl=238 time=4.29 ms 64 bytes from transfer-tic.org (81.80.122.16): icmp_seq=3 ttl=238 time=11.6 ms 64 bytes from transfer-tic.org (81.80.122.16): icmp_seq=4 ttl=238 time=4.20 ms 64 bytes from transfer-tic.org (81.80.122.16): icmp_seq=5 ttl=238 time=4.88 ms 64 bytes from transfer-tic.org (81.80.122.16): icmp_seq=6 ttl=238 time=4.35 ms 64 bytes from transfer-tic.org (81.80.122.16): icmp_seq=7 ttl=238 time=3.81 ms --- www.transfer-tic.org ping statistics --7 packets transmitted, 7 received, 0% packet loss, time 6060ms rtt min/avg/max/mdev = 3.815/5.373/11.635/2.573 ms

b) netstat
Donne des informations gnrales sur la configuration rseau, savoir les tables de routage, les statistiques des interfaces, etc. Quelques options de netstat : ! ! ! ! ! -n : ne pas rsoudre les noms ; -r : affiche la table de routage, quivalent la commande route ; -v : mode verbeux ; -l : liste des connexions/interfaces ; -c : mise jour permanente.
netstat -n Connexions Internet actives (sans serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante tcp 0 0 134.157.9.32:22 134.157.9.52:46903 tcp 0 0 134.157.9.32:22 134.157.9.52:46639 tcp 0 0 134.157.9.32:800 134.157.9.11:2049 tcp 0 0 134.157.9.32:643 134.157.9.11:111

D. Les outils associs au rseau


Voici quelques outils permettant deffectuer des tests de fonctionnement du rseau.

a) ping
Cette commande envoie un paquet ICMP (ECHO_REQUEST) une machine et attend sa rponse (ECHO_RESPONSE). Cela permet de vrifier quune machine est joignable et quelle est capable de rpondre. Si cest bien le cas, cela signifie que sa configuration rseau et la ntre sont correctes. Quelques options utiles pour la commande ping : ! ! ! -c <N> : envoie N paquets et stoppe ; -q : mode calme (quiet), rien nest affich part les lignes de rsum au dmarrage et la fin de lexcution ; -b : envoie le ou les paquets un ensemble de machines (broadcast).

Etat ESTABLISHED ESTABLISHED ESTABLISHED TIME_WAIT

On remarque deux connexions sur le port 22, une sur le port 800 et une sur le port 643.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 87

Ouvrage sous contrat Creative Commons BY-NC-SA p. 86

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 8. Configuration du rseau

c) arp
Cette commande permet dafficher la table cache de rsolution dadresses du noyau (i.e. lassociation avec l'adresse physique MAC dune machine) pour les machines prsentes sur le mme rseau. arp Address HWtype HWaddress Flags Mask Iface cerbere.lodyc.jussieu.f ether 00:B0:D0:D1:8B:2A C eth0 nestor.lodyc.jussieu.fr ether 00:04:76:E4:BB:33 C eth0

Lutilitaire tcpdump permet de visualiser tous les changes se produisant sur le rseau auquel votre machine est connecte. Cette commande permet le dbogage de problmes rseau, mais aussi de rcuprer certaines informations qui circulent en clair sur le rseau. # surveillance de la machine 192.168.10.1 tcpdump src 192.168.10.1

E. Exercices
d) traceroute
Affiche les diffrents nuds (ou passerelles) traverss pour joindre une machine. Quelques options de traceroute : ! ! ! ! -n : ne pas rsoudre les noms (DNS) ; -v : mode verbeux ; -f <ttl> : change le TTL (Time To Live) ; -w <sec> : change le time-out sur les paquets retourns. traceroute -n www.transfer-tic.org traceroute to www.transfer-tic.org (81.80.122.16), 30 hops max, 38 byte packets 1 134.157.9.126 0.640 ms 0.265 ms 0.242 ms 2 134.157.247.238 5.000 ms 0.655 ms 0.545 ms 3 134.157.254.126 1.010 ms 0.830 ms 0.826 ms 4 195.221.127.181 1.656 ms 1.130 ms 1.083 ms 5 193.51.181.102 1.447 ms 1.028 ms 1.097 ms 6 193.51.180.158 1.888 ms 1.826 ms 1.771 ms 7 193.51.179.1 1.030 ms 1.443 ms 1.383 ms 8 193.51.185.1 1.815 ms 1.384 ms 1.100 ms 9 193.251.241.97 1.361 ms 1.675 ms 1.438 ms La commande traceroute force les noeuds intermdiaires traverss renvoyer une rponse qui est un message derreur (ICMP TIME_EXCEEDED), en positionnant une valeur de TTL trop basse. Ds quun message derreur est reu, la commande incrmente cette valeur et renvoie le message ce qui lui permet de passer au nud suivant et ainsi de suite. 2. 1. Quel est le fichier utilis pour associer les noms symboliques et les adresses IP des machines de votre rseau. ! ! ! ! /etc/nsswitch.conf /etc/resolv.conf /etc/hosts /etc/services

Quelle commande va crer une route par dfaut avec comme passerelle 192.168.1.1 ? ! ! ! ! ! netstat-add default gw route default 192.168.1.1 ip route default 192.168.1.1 route add default gw 192.168.1.1 ifconfig default gw 192.168.1.1 eth0

3.

Lesquelles des commandes suivantes sont utilises pour activer une interface rseau? (deux rponses) ! ! ! ! ifconfig netstat ifup ifstart

Ouvrage sous contrat Creative Commons BY-NC-SA p. 88

Ouvrage sous contrat Creative Commons BY-NC-SA p. 89

Prparation lexamen 102 pour la certification LPIC-1

4.

Vous souponnez que lune des passerelles de votre rseau ne fonctionne plus mais vous ne savez pas laquelle. Quelle commande va vous aider rsoudre le problme ? ! ! ! ! ! ps netstat nslookup ifconfig traceroute

Chapitre 9. Services systmes de base


Objectifs " Connatre les principaux serveurs SMTP et tre capable de faire suivre les courriers (forwarding) et de configurer les alias. " tre capable de conserver lheure systme et de synchroniser lhorloge via le protocole NTP. ~/.forward, /etc/ntp.conf, date, Exim, hwclock, newaliases, mail, mailq, ntpd, ntpdate, pool.ntp.org, Postfix, Qmail, Sendmail

Mots cls

A. Maintien de lhorloge du systme


Il existe deux types dhorloges sur larchitecture x86, une horloge matrielle et une horloge logicielle. Lhorloge matrielle, conserve par le BIOS, maintient lheure lorsque lordinateur est teint. Lorsque le systme dmarre, il lit lhorloge matrielle et rgle lhorloge logicielle la valeur quil rcupre. Il utilise ensuite lhorloge logicielle pour ses besoins et ceux de ses processus.

a) Configuration manuelle des horloges matrielle et logicielle


La commande date permet de grer lhorloge logicielle du systme, alors que la commande hwclock permet de rgler lhorloge matrielle partir de lhorloge logicielle et vice-versa. La syntaxe de la commande date est : date [option] [+Format]
Ouvrage sous contrat Creative Commons BY-NC-SA p. 90 Ouvrage sous contrat Creative Commons BY-NC-SA p. 91

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 9. Services systme de base

date [-u|--utc|--universal] [MMJJhhmm[[CC]YY][.ss]] La commande date sans arguments permet dafficher lhorloge logicielle : $ date lun. dc. 14 11:00:25 CET 2009 On peut personnaliser cet affichage par lutilisation des options de formatage de la commande date : $ date +"%d-%m-%Y" 14-12-2009 [zied@ankara ~]$ date +"%A,%d %B %Y" lundi,14 dcembre 2009 Pour modifier uniquement la date du systme : # date -s 01/01/2010 ven. janv. 1 00:00:00 CET 2010 Pour modifier uniquement lheure du systme : # date -s 12:12:59 ven. janv. 1 12:12:59 CET 2010 Pour afficher lhorloge matrielle : # hwclock r lun. 14 dc. 2009 12:02:30 CET -0.504123 secondes Pour mettre jour lhorloge systme par rapport lhorloge matrielle : # hwclock s (ou bien hwclock --hctosys) # date lun. dc. 14 12:02:42 CET 2009 Pour modifier lheure du systme et affecter cette modification lhorloge matrielle : # date -s lun. dc. # hwclock # date lun. dc. # hwclock 11:00:00 14 11:00:00 CET 2009 -w 14 11:00:25 CET 2009 r (ou bien hwclock --systohs)

lun. 14 dc. 2009 11:00:42 CET -0.895758 secondes

b) Le protocole NTP : Network Time Protocol


Maintenir une horloge prcise est important sous Linux. Plusieurs services et programmes ont besoin ou tirent partie de lhorloge du systme. En effet, lhorodatage est utilis dans les journaux. Les programmes cron et make ont besoin des dates prcises des modifications des fichiers. Lhorodatage est galement inclus dans les en-ttes des courriers lectroniques. Certains protocoles dauthentification, tel que Kerberos, doivent sassurer de la synchronisation des horloges des machines. Le protocole NTP permet de synchroniser lhorloge dun ordinateur avec celle dun serveur de rfrence. Il cre une hirarchie plusieurs niveaux de sources de temps. Au sommet, une ou plusieurs sources de temps trs prcises telles que des horloges atomiques. Ces sources sont dsignes par strate 0, elles sont directement relies aux serveurs NTP de strate 1. Les serveurs NTP de strate 1 offrent le temps aux serveurs de strate 2, qui fournissent le temps aux serveurs strate 3, et ainsi de suite. Le protocole NTP prvoit jusqu 16 strates, mais la plupart des clients se situent dans les strates 3 et 4.

c) Configuration de base du serveur NTP


Le paquetage NTP comporte plusieurs paquetages, notamment le dmon ntpd et un certain nombre de programmes utiliss pour configurer et interroger le serveur NTP. ntpd utilise le fichier de configuration /etc/ntp.conf qui contient plusieurs options dont les plus importantes sont : ! ! restrict, pour dfinir des contrles daccs au serveur ntpd ; server, pour rediriger le serveur ntpd vers un serveur NTP.

Voici quelques options extraites du fichier de configuration /etc/ntp.conf : driftfile /var/lib/ntp/drift # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org server 3.pool.ntp.org
Ouvrage sous contrat Creative Commons BY-NC-SA p. 93

Ouvrage sous contrat Creative Commons BY-NC-SA p. 92

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 9. Services systme de base

Lorsque le dmon ntpd dmarre, il contacte tous les serveurs spcifis dans le fichier /etc/ntp.conf par loption server, il compare la prcision de leurs horloges et sajuste par rapport un seul serveur qui le marque comme sa source de temps primaire. La commande ntpq est utilise pour envoyer des messages de contrle NTP un hte pour vrifier ltat du dmon ntpd ou changer sa configuration. La syntaxe est la suivante : ntpq [options] [host] La commande ntpq peut tre excute soit en mode interactif, soit avec des arguments passs la ligne de commande. Si largument host nest pas spcifi, la requte est envoye la machine locale. Lexemple suivant montre quatre serveurs externes connects au serveur NTP local. # ntpq -c peers remote refid st t when delay jitter ============================================================== 196.216.249.2 146.164.48.5 2 u 243 486.574 12.956 +147.137.46.196 146.64.8.7 3 u 178 348.080 7.811 *196.7.156.83 146.64.8.7 3 u 404 223.383 5.933 ntp.dts.mg 193.50.27.66 3 u 174 678.084 42.805 La colonne refid montre le serveur sur lequel chaque systme est synchronis et la colonne st indique la strate des serveurs externes. Le serveur avec lequel le serveur NTP local est synchronis est marqu par une astrisque (*), les serveurs avec de bonnes prcisions sont marqus par un signe plus (+) et les autres symboles (x ou -) dsignent les serveurs rejets pour diverses raisons. La commande ntpdate est utilise pour synchroniser lhorloge du systme avec un serveur NTP. Exemple : # ntpdate -s ntp.loria.fr

B. Le courrier lectronique
Un systme de messagerie sous Linux se compose de quatre lments distincts (figure 5) : ! MUA, Mail User Agent, qui permet aux utilisateurs de lire, crire et grer leurs messages. Exemples de programmes MUA : Thunderbird de Mozilla, Evolution de Aka Novell, Outlook de Microsoft, la commande /bin/mail avec Unix et Linux ; MTA, Mail Transport Agent ou Agent de transport de courrier, dont le rle est de router les messages entre les machines ; MDA, Mail Delivery Agent, qui permet de stocker le courrier dans la bote aux lettres du destinataire ; AA, Access Agent, composant optionnel dont le rle est de connecter le MUA la bote aux lettres travers par exemple les protocoles IMAP et POP.
Figure 5. Architecture du systme de messagerie

! ! !

a) MTA ou Agent de transport de courrier


Mais la commande ntpdate est dprcie, et pourrait disparatre du paquetage NTP tout moment. sa place on peut utiliser la commande ntpd avec loption g. Lagent MTA accepte le message partir de lagent UA, il se charge alors de lacheminer vers sa destination, pour cela il doit vrifier lexistence de lexpditeur ainsi que du ou des destinataires.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 94

Ouvrage sous contrat Creative Commons BY-NC-SA p. 95

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 9. Services systme de base

Les agents MTA communiquent travers le protocole SMTP (Simple Mail Transport Protocol). Linux et Unix supportent plusieurs agents MTA, quatre agents sont les plus populaires : ! Sendmail : cest le systme le plus utilis et le plus ancien. Il transmet plus de 50 % du courrier sur Internet. La configuration de Sendmail est trs complexe cause de son fichier de configuration abscons. Sendmail est un systme monolithique : il utilise un seul programme pour tous les traitements. La performance et la scurit ont t amliores avec les dernires versions ; Postfix : conu comme une alternative modulaire Sendmail, Postfix utilise plusieurs programmes qui grent chacun une tche spcifique. En thorie cette conception amliore la scurit. Postfix est rapide et plus facile configurer que Sendmail ; Exim : les distributions Debian et Ubuntu utilisent Exim comme serveur de courrier par dfaut. Cest un serveur monolithique, facile configurer et avec un petit nombre de fichiers journaux ; Qmail : cest un systme modulaire, avec la scurit comme objectif de conception majeur. Le code source de Qmail est disponible gratuitement mais, pour des raisons de scurit, il est interdit de distribuer une version modifie de Qmail sans laccord pralable de lauteur. Avec cette interdiction, la maintenance est devenue assez difficile. Linstallation est assez complique, en effet il faut utiliser des patches pour obtenir un serveur sans bogues.

>N 1 mejdi@localhost.loca "Confirmation de runi" & [nicolas@ankara ~]$ mail Heirloom Mail version 12.4 "/var/spool/mail/nicolas": >N 1 mejdi@localhost.loca "Confirmation de runi" &

Sun Dec 13 08:12 21/877

7/29/08. Type ? for help. 1 message 1 new Sun Dec 13 08:12 21/877

Les messages reus sont enregistrs dans des botes aux lettres qui sont de simples fichiers. Ils se trouvent dans le rpertoire /var/spool/mail/. Lutilisateur peut grer sa bote aux lettres de faon interactive avec la commande mail. Il peut ainsi lire et supprimer les messages reus ou rpondre aux expditeurs. Mais la gestion dune bote aux lettres avec le MUA mail nest possible que sur la machine locale. Lexemple prcdent illustre la description des messages dans la bote aux lettres de l'utilisateur : les botes de nicolas et de zied contiennent un message, non lu (new ), lexpditeur est mejdi, la date darrive le 13 dcembre 08h12, le message contient 21 lignes, a une taille de 877 octets et son sujet est Confirmation de runi . Pour lire le message, on tape son numro (ici cest le numro 1). On peut aussi le supprimer par la commande d ou bien y rpondre avec la commande r. Les messages en attente denvoi sont stocks dans /var/spool/mqueue. Leur liste peut tre affiche avec la commande mailq. Le MTA Sendmail permet davoir plusieurs noms, ou alias (aliases en anglais), pour la mme bote aux lettres. On utilise pour cela le fichier /etc/aliases. Par exemple, pour crer lalias nicolas.larrousse pour un utilisateur dont le nom rel est nicolas : nicolas.larrousse: nicolas Aprs avoir modifi le fichier /etc/aliases il faut lancer la commande newaliases pour mettre jour la base des alias de Sendmail. Cette commande gnre le fichier /etc/aliases.db qui est un fichier binaire index. Un utilisateur peut rediriger les messages reus vers la bote aux lettres dun autre utilisateur. Pour cela il indique ladresse lectronique de lautre utilisateur dans le fichier ~/.forward cr dans son rpertoire personnel.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 97

b) Gestion des courriers lectroniques


La commande mail est un MUA permettant lutilisateur denvoyer et de recevoir des courriers textuels partir de linvite de commandes du shell. Par exemple lutilisateur mejdi envoie un message nicolas et une copie de ce message zied : [mejdi@ankara ~]$mail -s "Confirmation de runion" -cc zied@ankara nicolas@ankara La runion d'aujourd'hui est confirme pour 15h Les utilisateurs nicolas et zied peuvent ainsi consulter leurs botes aux lettres : [zied@ankara ~]$ mail Heirloom Mail version 12.4 7/29/08. Type ? for help. "/var/spool/mail/zied": 1 message 1 new

Ouvrage sous contrat Creative Commons BY-NC-SA p. 96

Prparation lexamen 102 pour la certification LPIC-1

Par exemple lutilisateur zied veut rediriger tous les messages reus vers la bote aux lettres niry. Il ajoute alors ladresse lectronique de la bote niry dans le fichier ~/.forward. niry@ankara

C. Exercices
5. Quelle commande allez-vous utiliser afin de mettre jour lhorloge machine par rapport lhorloge systme ? ! ! ! ! 6. date --sethwclock ntpdate hwclock --utc --systohc time --set hw

Chapitre 10. La scurit


Objectifs " Comprendre les risques et tre capable dappliquer les consignes de scurit de base. " Savoir aborder la scurit selon ses deux aspects fondamentaux : la scurit machine et la scurit rseau. Garantir la scurit dune machine connecte un rseau nest pas quelque chose dvident. Cela dpend dun grand nombre de paramtres qui ne sont jamais purement techniques. La scurit du point de vue de la machine pose la question suivante : comment protger le systme contre quelquun qui dispose dun accs la machine ? En dautres termes, le ver est dj dans le fruit, avec soit un accs physique soit un compte qui lui permet de se connecter au systme. La scurit rseau aborde le problme dun autre point de vue : comment nous protger de quelquun qui va attaquer notre machine par le rseau (par exemple en utilisant les services que notre systme offre lextrieur) ? /etc/fstab, /etc/hosts.allow, /etc/hosts.deny, /etc/nologin, /etc/ssh_known_hosts, /etc/ssh/sshd_config, /etc/sshrc, /etc/security/access.conf, /etc/security/limits.conf, /proc/net/ip_fwchains, /proc/net/ip_fwmasquerade, /proc/net/ip_fwnames, authorized_keys, BIOS, ipchains, iptables, known_hosts, lilo, netfilter, OpenSSH, rsa, SSH, ssh-keygen, syslog, TCP wrapper

Points importants

Quels sont les moyens valides pour modifier lheure de votre systme ? ! ! ! ! ntpdate serverntp date -s date ntp -update

7.

Salah va partir en vacances pendant deux semaines et veut que son courrier soit transmis Ali pendant son absence. Quels changements devrait-il faire ? ! ! ! ! Ajouter ali /etc/aliases. Ajouter ali ~/.forward. Ajouter ali ~/.aliases. Ajouter ali /etc/mail.
Mots cls

Ouvrage sous contrat Creative Commons BY-NC-SA p. 98

Ouvrage sous contrat Creative Commons BY-NC-SA p. 99

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 10. La scurit

A. Les fichiers de configuration


Nous allons donner ici quelques lments constitutifs dune dmarche de scurisation de laccs notre machine.

est la consultation des fichiers de logs. Le dmon syslog enregistre normalement ces informations dans /var/log/messages. Certaines distributions de Linux loguent linformation relative la scurit dans /var/log/secure : nouveaux utilisateurs ajouts au systme, checs de connexion, etc. La commande w ou who affiche les utilisateurs connects au systme. Elle utilise les informations du fichier de logs /var/log/utmp. La commande last affiche la liste des derniers utilisateurs du systme. Elle cherche ces informations dans le fichier /var/log/wtmp.

a) Configuration du BIOS
Le cas o quelquun de malveillant dispose dun accs physique la machine est grave et quasiment insoluble. Seul le cryptage des donnes du systme peut alors reprsenter une protection relativement fiable. Il est tout de mme possible de crer certaines difficults. Le premier pas est de configurer le BIOS pour que la machine ne puisse dmarrer qu partir du disque dur. Cela va empcher le pirate de dmarrer simplement dune disquette ou dun cdrom pour obtenir ensuite laccs au systme.

e) Des limites pour les utilisateurs


Certaines limites et restrictions peuvent tre imposes aux utilisateurs. Les restrictions daccs pour certains utilisateurs et groupes dutilisateurs sont configures dans le fichier /etc/security/access.conf. Les limitations dutilisation sont configures dans le /etc/security/limits.conf dont chaque ligne est de la forme suivante : <domaine> <type> <lment> <valeur> ! ! ! fichier

b) Restrictions de LILO
Le chargeur de dmarrage LILO permet de passer des options au dmarrage. Lune de ces options permet de dmarrer le systme en single user mode . Dans certaines distributions de Linux, cette option ouvre un accs shell au systme muni des permissions de lutilisateur root sans mme demander un mot de passe. Pour viter cela nous disposons de deux options de configuration de LILO : restricted et password = .... La premire indique que seul lutilisateur qui connat le mot de passe, spcifi par la deuxime option, peut donner des options au dmarrage.

<domaine> peut tre un nom dutilisateur, un nom de groupe dutilisateurs, ou le signe * pour indiquer une entre par dfaut ; <type>, dfinit le type de limite mettre en place : soit davertissement, avec le type soft, soit de blocage, avec le type hard ; <lment> dfinit la ressource limiter pour le domaine en question (utilisateur ou groupe) : core, data, fsize, memlock, nofile, rss, stack, cpu, nproc, as, maxlogins, priority...

c) Permissions des fichiers et rpertoires


Une bonne pratique gnrale est de ne pas permettre des programmes dtre excuts partir de /home et /tmp. Cela empche les utilisateurs dutiliser des logiciels quils auraient installs et dessayer dattaquer le systme par des outils tlchargs de lInternet ou programms par euxmmes. Pour ce faire, nous pouvons utiliser les options de montage de systmes de fichiers suivantes (/etc/fstab) : /tmp /tmp ext2 nosuid 1 2 /home /home ext2 noexec 1 2

Le fichier /etc/nologin permet dempcher toute connexion au systme autre que celle du super-utilisateur. Il contient le message que recevront les utilisateurs lors de la tentative de connexion, par exemple systme en maintenance . On peut galement dfinir des quotas par utilisateurs (cf. support LPI 101). La commande quota (ou repquota) permet de vrifier lutilisation des quotas par les utilisateurs.

B. Scurit rseau
Comment contrler laccs un serveur ? Nous pouvons le faire de deux manires diffrentes : ! restreindre laccs en utilisant ladresse de la machine qui se connecte au serveur ;

d) Analyser le systme
Pour assurer la scurit du systme, il faut surveiller son fonctionnement. La source dinformation la plus fiable pour visualiser lactivit de notre systme
Ouvrage sous contrat Creative Commons BY-NC-SA p. 100

Ouvrage sous contrat Creative Commons BY-NC-SA p. 101

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 10. La scurit

restreindre laccs en utilisant le port TCP ou UDP (service rseau) auquel le client essaie de se connecter.

La page de manuel host_access (5) est une bonne source dinformation sur la configuration des tcp wrappers et en particulier sur les macros commenant par % . Il faut tout de mme garder en mmoire que cette technique de contrle daccs nest fiable que si elle est utilise conjointement avec dautres dmarches de scurisation du rseau qui vont empcher le camouflage de lidentit de la machine cliente.

a) TCP wrappers
Ce contrle est assur par la bibliothque libwrap. Une grande partie des applications rseaux est compile en utilisant cette bibliothque. Cela permet de configurer laccs ces applications par deux fichiers, /etc/hosts.allow et /etc/hosts.deny. Chaque ligne de ces fichiers contient deux champs (ou ventuellement trois comme on verra un peu plus bas) spars par le signe : (deux points) : ! ! le premier champ dcrit le service pour lequel on ajoute des restrictions ou des permissions daccs ; le deuxime dcrit la liste des machines pour lesquelles cette rgle sapplique.

b) Filtrage de paquets
Le noyau de Linux dispose dun filtre de paquets trs puissant. Ce filtre nous permet de contrler laccs notre machine par le rseau en utilisant plusieurs critres comme : ! ! ! ! ladresse source de lmetteur du paquet (ladresse IP du client de notre serveur) ; le port TCP ou UDP source ; le port TCP ou UDP de destination (le port de notre service rseau) ; etc.

Les mots-cls ALL et EXCEPT servent pour la spcification de ces deux champs. Pour donner la liste des adresses des machines clientes on peut utiliser soit des noms de domaines commenant ventuellement par un point, soit des adresses IP se terminant ventuellement par un point. Par exemple la spcification .auf.org comprend tous les noms de domaines suffixs par .auf.org . De la mme manire 10.1.1. donne la liste de toutes les adresses IP dans le rseau 10.1.1.0/24 (toute adresse IP commenant par 10.1.1.). /etc/hosts.deny ALL: ALL EXCEPT .auf.org

La commande qui permet de grer les rgles de filtrage dans les noyaux de Linux de la srie 2.2 est ipchains. La commande correspondante dans les noyaux 2.4.x et 2.6.x est iptables, elle configure le filtre netfilter. Ipchains et iptables utilisent trois chanes de rgles : input, output et forward pour ipchains et INPUT, OUTPUT et FORWARD pour iptable. Lutilisateur peut dfinir des chanes supplmentaires pour mieux structurer son filtre. Avec ipchains chaque paquet qui nest pas destin la machine filtre passe par la chane forward. En revanche, avec iptables la chane FORWARD est traverse uniquement par des paquets qui ne proviennent pas de la machine filtre et ne lui sont pas destins. Les chanes input et output (ou respectivement INPUT et OUTPUT pour iptables) reprsentent les paquets qui entrent ou sortent de la machine filtre. Les options suivantes permettent de grer les rgles de filtrage : ! ! ! ! ! ! -A pour ajouter une nouvelle rgle dans une chane ; -D pour supprimer une rgle dune chane ; -P pour modifier la politique par dfaut ; -I pour insrer une rgle ; -F pour effacer les rgles dune chane ; -N pour crer une nouvelle chane ;
Ouvrage sous contrat Creative Commons BY-NC-SA p. 103

/etc/hosts.allow ALL: LOCAL 192.168.0. in.ftpd: ALL sshd: .auf.org Par les tcp wrappers il est aussi possible de configurer lexcution dune commande. Pour faire cela on utilise le mot-cl spawn. Lexemple suivant va garder une trace de chaque tentative de connexion un des services de notre machine : /etc/hosts.deny ALL: ALL : spawn (/bin/echo `date` client : %c service : %d >> /var/log/tcpwrap.log)

Ouvrage sous contrat Creative Commons BY-NC-SA p. 102

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 10. La scurit

! !

-X pour supprimer une chane cre par lutilisateur ; -L pour afficher la liste des rgles. # le masquerading des adresses prives iptables t nat A POSTROUTING s $IP_LOCAL i $I_INT o $I_EXT j MASQUERADE # accepter toute connexion initie par le rseau local iptables A FORWARD s $IP_LOCAL i $I_INT o $I_EXT j ACCEPT iptables A FORWARD m state state RELATED,ESTABLISHED j ACCEPT

Pour stopper laccs de toutes les machines du rseau 10.1.1.0/24 au service ssh de la machine filtre nous allons ajouter la rgle suivante : iptables A INPUT s 10.1.1.0/24 p tcp --dport 22 j DROP Le grand avantage de iptables est la possibilit de filtrer les paquets en considrant ltat de la connexion laquelle le paquet appartient. Cette fonctionnalit est ralise par le module state diptables ( -m state sur la ligne de commande pour indiquer lutilisation de ce module). laide de ce module, il est par exemple possible de savoir si un paquet appartient une connexion dj tablie ou bien sil sagit dun paquet qui essaie douvrir une nouvelle connexion en relation avec une autre connexion dj tablie (exemple du fonctionnement du protocole FTP qui ouvre des connexions dynamiques). Cette fonctionnalit permet de rsoudre le problme du non filtrage des connexions sortantes et de celles qui leur sont associes. Cela concerne tous les services qui ouvrent des ports dynamiques. Pour ajouter une rgle qui laisse passer tous les paquets appartenant une connexion dj tablie (ESTABLISHED) ou une connexion en relation (RELATED) avec une autre dj tablie : iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Lexemple ci-dessous montre un script bash ralisant un filtrage simple sur une machine utilise comme passerelle pour un rseau local. Aucune connexion vers cette machine nest autorise, toutes les connexions qui proviennent de la machine mme sont acceptes et tous les paquets du rseau local sont masqus (MASQUERADE), cest--dire que leurs adresses IP sources sont remplaces par ladresse IP de linterface externe de notre passerelle : #!/bin/bash I_INT=eth0 # linterface locale I_EXT=eth1 # linterface externe IP_LOCAL=10.1.1.0/24 # le rseau IP interne # les politiques par dfaut iptables P INPUT DROP iptables P OUTPUT DROP iptables P FORWARD DROP

# Permettre toutes les connexions inities par le pare-feu iptables A OUTPUT j ACCEPT iptables A INPUT m state state RELATED,ESTABLISHED j ACCEPT Les informations concernant ipfilter sont transmises au noyau par trois fichiers situs dans larborescence proc : ! ! ! /proc/net/ip_fwchains qui contient les rgles ; /proc/net/ip_fwnames qui contient le nom des chanes ; /proc/net/ip_fwmasquerade masquerading . qui contient les informations pour le

c) Le shell scuris (SSH)


Le protocole SSH permet de se connecter en mode scuris une machine distance. Il effectue : ! ! ! le chiffrement de la connexion ; lauthentification de la machine serveur ; lauthentification des utilisateurs.

Il se dcline en deux versions : la version 1 du protocole utilise lalgorithme de chiffrement RSA1 , et la version 2 utilise soit lalgorithme RSA soit lalgorithme DSA . Lauthentification et le chiffrement sont raliss sur la base dalgorithmes de chiffrement asymtriques. Une paire de cl publique/cl prive est gnre pour le serveur et ventuellement une paire de cls est gnre pour chaque utilisateur pour sauthentifier de cette manire. Sous Linux on utilise en gnral OpenSSH, version libre du protocole SSH. Par dfaut la configuration de OpenSSH ainsi que les cls publiques/prive sont enregistrs sous larborescence /etc/ssh.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 104

Ouvrage sous contrat Creative Commons BY-NC-SA p. 105

Prparation lexamen 102 pour la certification LPIC-1

Chapitre 10. La scurit

La connexion SSH tient compte de la prsence du fichier /etc/nologin dcrit plus haut.

Pour raliser une authentification par cls publique/prive il est ncessaire de gnrer ces cls. On utilise pour cela la commande ssh-keygen. ssh-keygen t rsa b 1024 Par dfaut cette commande enregistre les cls dans le rpertoire $HOME/.ssh/ sous les noms id_rsa pour la cl prive et id_rsa.pub pour la cl publique. Pour permettre au serveur dauthentifier un utilisateur laide de sa cl publique, il faut enregistrer cette cl dans le fichier $HOME/.ssh/authorized_keys. de lutilisateur. Il ne faut pas oublier de scuriser les fichiers contenant les cls prives (dans les rpertoires /etc/ssh et $HOME/.ssh) en leurs donnant les permissions daccs 600.

d) Authentification du serveur
Quand nous ouvrons une connexion SSH vers un serveur, nous devons nous assurer de lidentit de ce serveur. Pour cela, il envoie sa cl publique. Si cest la premire fois que nous nous connectons ce serveur la question suivante apparait : The authenticity of host machin (10.1.1.8)' can't be established. RSA key fingerprint is 8f:29:c2:b8:b5:b2:e3:e7:ec:89:80:b3:db:42:07:f4. Are you sure you want to continue connecting (yes/no)? Si nous acceptons, la cl publique sera enregistre dans le fichier $HOME/.ssh/known_hosts. Lors de la prochaine connexion la mme machine la question napparatra plus car lidentit de la machine sera connue. Il faut admettre quaccepter une cl publique envoye par le rseau nest pas parfaitement fiable. Il est prfrable de rcuprer cette cl directement sur une disquette ou une cl USB par exemple et de lajouter directement dans le fichier known_hosts. Il est possible de configurer les clients SSH pour quils nenregistrent pas de cl dans ce fichier et de ne permettre la connexion qu des machines dcrites dans le fichier /etc/ssh_known_hosts de faon limiter les risques dusurpation didentit par une machine qui rpondrait la place de celle que lon voulait contacter. Sur le serveur, ses propres cls publiques/prives sont enregistres par dfaut dans /etc/ssh. Pour la version 1 le fichier contenant la cl prive est nomm ssh_host_key. Pour la version 2 il est nomm ssh_host_rsa_key pour lalgorithme RSA et ssh_host_dsa_key pour lalgorithme DSA. Les fichiers contenant les cls publiques utilisent la mme dsignation avec lextension .pub (par exemple ssh_host_dsa_key.pub).

f) Configuration de OpenSSH
La configuration du serveur sshd se fait par le fichier /etc/ssh/sshd_config. Voici quelques options intressantes extraites de ce fichier : Port 22 Protocol 2,1 ListenAddress 0.0.0.0 # Cl dauthentification de lhte pour la version 2 HostKey /etc/ssh/ssh_host_key # Cls dauthentification de lhte pour la version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key La configuration du client SSH se fait dans le fichier /etc/ssh/ssh_config gnriquement pour tous les utilisateurs ou dans $HOME/.ssh/config pour une configuration spcifique pour un utilisateur. Le fichier /etc/sshrc contient les commandes excuter lors de la connexion dun client SSH, donc selon le mme principe quun fichier /etc/profile, mais adapt aux connexions SSH.

e) Authentification de lutilisateur
Lauthentification de lutilisateur peut se faire soit par mot de passe, soit, de faon beaucoup plus fiable, par une paire de cls publique et prive. Pour une authentification par nom dutilisateur et mot de passe lutilisateur est invit les entrer au clavier lors de la connexion. Le serveur effectue classiquement la vrification partir des fichiers /etc/passwd et/ou /etc/shadow.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 106

Ouvrage sous contrat Creative Commons BY-NC-SA p. 107

Prparation lexamen 102 pour la certification LPIC-1

C. Exercices
1. Avec le protocole SSH, pour raliser une authentification par cl publique/cl prive, lutilisateur doit enregistrer sa cl publique RSA dans le serveur SSH dans le fichier : ! ! ! ! 2. ~/.ssh/id_rsa ~/.ssh/known_hosts ~/.ssh/authorized_keys /etc/ authorized_keys

Annexe 1 : exemple dexamen de certification 102


Voici un exemple dnonc dexamen 102, suivi des rponses. Cet exemple est destin vous aider valuer vos connaissances, et galement vous prparer au style des questions poses lors de lexamen de certification. Il est en effet ncessaire de shabituer la formulation des questions, qui peut parfois paratre ambigu, ainsi quaux questions choix multiples qui sont courantes dans le monde anglo-saxon. Lors de lexamen, vous disposez denviron une minute par question.

Crer un script pour la mise en place des rgles de filtrage simples suivantes : les politiques par dfaut sont DROP ; masquer les connexions inities par le rseau local ; accepter toute connexion initie depuis le rseau local.

3.

Installer et configurer le serveur sshd. Crer une paire de cls pour un utilisateur et configurer la connexion au serveur par cls publique/prives

Questions
4. Quelle variable denvironnement allez-vous utiliser pour afficher le code de retour de la dernire commande ? Quel ordre SQL allez-vous utiliser pour modifier des tuples dans une base de donnes SQL ? Vous essayez dexcuter la commande ls mais il existe un alias de la commande ls . Quelle est la manire la plus simple pour excuter la commande originale ls et non pas son alias ? Donnez le nom (chemin complet) du fichier qui contient le message qui est affich lutilisateur au moment de louverture dune session shell.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 109

5.

6.

7.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 108

Prparation lexamen 102 pour la certification LPIC-1

Annexe 1 : exemple dexamen de certification 102

8.

Quel et le nom du dmon NTP utilis pour synchroniser lhorloge du systme? Quel est le nom de lutilitaire permettant dajuster les diffrents modes graphiques ?

21. Quelle commande allez-vous utiliser pour afficher le contenu des variables de localisation LC_* ? 22. Quelle commande allez-vous utiliser pour changer lencodage dun fichier de codage UTF-8 au codage ISO-8859-1 ? Donner seulement la commande sans options et sans arguments. 23. Quelle est la commande utilise pour tester le bon fonctionnement de DNS ct client ? 24. Donner le nom (chemin complet) du fichier de configuration de CUPS ? 25. Quelle commande est quivalente route n ? 26. Vous voulez rgler lhorloge du systme partir de lhorloge matrielle. Quelle commande (sans options et sans arguments) allez-vous excuter ? 27. Quelle commande allez-vous utiliser pour modifier votre table de cron personnelle ? Donnez la commande la plus simple. 28. Quelle est la commande la plus simple qui vous permet dafficher le contenu de votre table de cron ? 29. Lutilisateur nicolas de votre serveur a oubli son mot de passe. Quelle commande allez-vous utiliser pour changer son mot de passe en supposant que vous avez ouvert une session en tant que root ? 30. Lutilisateur mejdi a t dplac dans le dpartement BECO. Vous voulez changer son groupe principal en beco. Quelle est la commande la plus simple pour raliser cela ? 31. Quelle commande allez-vous utiliser pour verrouiller le compte de lutilisateur nicolas ? 32. Quelle est la commande la plus simple pour supprimer le compte de lutilisateur nicolas y compris son dossier personnel ? 33. Vous voulez ajouter lutilisateur mejdi votre systme en crant son dossier personnel. Donnez la commande la plus simple avec ses options et arguments.

9.

10. Quel fichier doit modifier lutilisateur dans son rpertoire personnel pour configurer la variable denvironnement PATH ? Donnez seulement le nom du fichier, sans le chemin daccs. 11. Quel est le fichier qui contient la configuration de lenvironnement standard pour tout le systme ? Ce fichier contient normalement la variable PATH, ainsi que umask et ulimit. Donnez le chemin daccs complet. 12. Quelle commande indique au serveur X daccepter les connexions des clients X partir de la machine tunis ? 13. Quel est le chemin daccs complet au fichier qui contient la configuration du dmon utilis pour constituer les logs du systme ? 14. Vous voulez redmarrer le service rseau dun serveur Red Hat. Quelle commande allez-vous excuter pour accomplir cette opration sans avoir besoin dutiliser un chemin absolu ? 15. Quelle est la section du fichier xorg.conf qui contient le chemin daccs vers les polices de caractres ? 16. Quel est le protocole utilis pour offrir une interface de connexion graphique sur un rseau TCP/IP ? 17. Quel fichier contient les adresses IP des serveurs DNS que la machine va utiliser pour la rsolution de noms ? Donnez le chemin daccs complet. 18. Quel programme vous permet davoir un clavier dcran ? 19. Quel est le fichier de configuration du fuseau horaire du systme ? Donner le chemin complet. 20. Quelle est la variable environnement qui permet de dfinir le fuseau horaire du systme ?

Ouvrage sous contrat Creative Commons BY-NC-SA p. 110

Ouvrage sous contrat Creative Commons BY-NC-SA p. 111

Prparation lexamen 102 pour la certification LPIC-1

Annexe 1 : exemple dexamen de certification 102

34. Quel est le chemin daccs complet du fichier de configuration du dmon ntpd ? 35. Dans lordre SQL SELECT, quelle option faut-il utiliser afin de ne conserver que des lignes distinctes ? 36. En langage SQL, pour tester lgalit de deux chanes de caractres, quel caractre de remplacement faut-il utiliser afin de remplacer zro n caractres quelconques ? 37. La requte SQL suivante permet dafficher les livres dont le prix est suprieur 70, en ordre dcroissant de prix : ! ! ! ! A B C D SELECT * FROM Livre WHERE Prix >=70 ORDER BY Prix DESC; SELECT * FROM Livre WHERE Prix >=70 ORDER BY Prix DESC; SELECT * FROM Livre WHERE Prix >=70 ORDER BY Prix DESC; SELECT * FROM Livre WHERE Prix >=70 ORDER BY Prix ASC;

41. Vous voulez que tous vos utilisateurs BASH puissent accder aux programmes contenus dans /opt/bin . Vous allez ajouter PATH=$PATH:/opt/bin; export PATH dans quel fichier ? 42. La ligne correcte de la table cron qui permet dexcuter le script /usr/local/sbin/chklog une fois par heure entre trois heures et cinq heures de laprs-midi chaque lundi et jeudi est : ! ! ! ! ! A B C D E 0 3,4,5 * * 2,5 usr/local/sbin/chklog 0 3,4,5 * * 1,4 /usr/local/sbin/chklog * 15,16,17 * * 1,4 /usr/local/sbin/chklog 0 15,16,17 * * 1,4 /usr/local/sbin/chklog 0 15,16,17 1,4 * * /usr/local/sbin/chklog

43. quoi sert la commande export de bash ? ! ! ! ! ! A B Permettre de monter les disques distance Lancer une commande dans un sous-shell

38. Votre adresse IP est 170.35.13.28 et votre masque rseau est 255.255.255.192. Quelle adresse IP NAPPARTIENT PAS votre rseau ? ! ! ! ! A B C D 170.35.13.33 170.35.13.88 170.35.13.62 170.35.13.55

C Mettre lhistorique des commandes la disposition des sousshells D Permettre une variable lenvironnement des processus fils dtre accessible dans

E Partager une partition NFS avec les autres ordinateurs sur le rseau les permissions correctes pour le fichier

39. Quelle commande vous permet de voir ladresse MAC et la configuration IP de votre carte rseau ? 40. Laquelle des commandes suivantes permet de synchroniser lhorloge du systme avec un serveur NTP ? ! ! ! ! A B C D date q -g hwclock q -g ntpdate s ServeuNTP ntpd Update

44. Quelles sont /etc/shadow ? ! ! ! ! A B C D

rw--w--wrwxrw-rwrw-r--r-rw-------

45. Quelle commande du bash vous empche dcraser un fichier avec > ou >> ? ! ! ! A B C set -o safe set -o noglob set -o noclobber
Ouvrage sous contrat Creative Commons BY-NC-SA p. 113

Ouvrage sous contrat Creative Commons BY-NC-SA p. 112

Prparation lexamen 102 pour la certification LPIC-1

Annexe 1 : exemple dexamen de certification 102

! !

D E

set -o append set -o nooverwrite

! !

C Envoyer le fichier hosts limprimante et le mettre dans la queue numro 2. D Envoyer le fichier hosts sur la sortie standard puis envoyer la tche en cours limprimante 2.

46. Vous venez dinstaller un systme et vous voulez vous assurer que chaque utilisateur cr aura un sous-dossier bin/ dans son rpertoire personnel. Dans quel rpertoire allez-vous mettre le rpertoire bin/ pour permettre sa cration automatique au moment de lajout dun nouvel utilisateur ? 47. Lesquels de ces deux fichiers dans le rpertoire personnel de lutilisateur sont utiliss pour configurer lenvironnement bash ? ! ! ! ! ! A B C D E bash et .bashrc bashrc et bash_conf bashrc et bashprofile .bashrc et .bash_profile bash.conf et .bash_profile

51. Quelle ligne de la table du cron permettrait la mise jour rgulire de la date du systme partir dun serveur de temps ? ! ! ! ! ! A B C D E 10 * * * date $d$t$24 10 * * * settime $d$t$24 10 * * * date<ntpl.digex.net 10 * * * /usr/sbin/runcron date <ntpl.digex.net 10 * * * /usr/sbin/ntpdate ntp1.digex.net \ >/dev/null 2>&1

52. Quelle commande utilisez-vous pour suspendre ou mettre en attente une queue dimpression ? ! ! ! ! ! A B C D E lpr lpq lpc lpd lprm

48. Quel est le fichier dont le contenu est affich pour des utilisateurs qui ouvrent une session localement sur la machine AVANT louverture de la session ? ! ! ! ! A B C D /etc/issue /etc/issue.net /etc/motd /etc/local.banner

53. Que contient le fichier xorg.conf (plusieurs rponses) ? ! ! ! ! A B C D La rsolution de lcran. Le(s) chemin(s) pour trouver les polices de caractres. La taille du moniteur. Le nom du Window Manager lancer

49. Dans la liste suivante, quels sont les Window Manager (plusieurs rponses) ? ! ! ! ! A B C D WindowMaker. KDM. Xwindow. twm.

54. Vous avez dcid de basculer vos mots de passe de type standard vers des mots de passe de type MD5. Aprs avoir configur les fichiers contenus dans /etc/pam.d vous devez galement faire les oprations suivantes : ! ! A Rien, les mots de passe seront modifis au moment de louverture dune nouvelle session par lutilisateur B Rien, les utilisateurs seront avertis automatiquement de changer leur mot de passe au moment de louverture dune nouvelle session.
Ouvrage sous contrat Creative Commons BY-NC-SA p. 115

50. Que va faire la commande suivante: cat hosts | lpr -#2 ! ! A B Imprimer le fichier hosts sur limprimante par dfaut deux fois Classer hosts et imprimer le classement comme tche #2

Ouvrage sous contrat Creative Commons BY-NC-SA p. 114

Prparation lexamen 102 pour la certification LPIC-1

Annexe 1 : exemple dexamen de certification 102

! ! !

C Vous devez r-entrer un--un tous les mots de passe avec la commande passwd D Vous devez supprimer et recrer tous les utilisateurs

E Vous devez revenir vers la configuration prcdente de /etc/pam.d pour rinitialiser les mots de passe en MD5.

58. Vous tes en train de configurer un routeur mais les rseaux connects ce routeur ne parviennent pas communiquer entre eux. Finalement vous en dduisez que le problme provient du fait que le forwarding n'est pas activ sur votre routeur. Pour vrifier cela vous utilisez la commande #cat /proc/sys/net/ipv4/______________ 59. La commande netstat -a stoppe un long moment sans rien afficher lcran. Vous souponnez le problme suivant : ! ! ! ! ! A B C D E problme avec NTP problme avec le DNS problme avec SMTP problme de routage le dmon netstat ne fonctionne plus

55. Vous tes en train de vrifier la scurit de votre systme et vous vous apercevez que la plupart des enregistrements dans /etc/passwd ont des x dans le champs du mot de passe et que certains ont des longueurs de 13 caractres. Que faites-vous dans ce cas ? ! ! ! A Rien, les utilisateurs avec x comme mot de passe sont bloqus. B Vous utilisez la commande pwconv pour convertir les mots de passe unix standard vers des mots de passe shadow. C Vous utilisez la commande passwd pour crer des mots de passe shadow aux utilisateurs ayant des mots de passe unix standard. D Vous utilisez la commande passwd pour crer des mots de passe aux utilisateurs ayant des x comme mot de passe.

60. Aprs avoir modifi le fichier /etc/aliases, quelle commande faut il excuter pour mettre jour le fichier binaire index /etc/aliases.db : ! ! A. B. aliases forward

56. Dans quel fichier configurez vous les alias du shell pour tous les utilisateurs ? ! ! ! ! ! A B C D E /etc/bashrc /etc/profile ~/.bash_profile /etc/skel/.bashrc /etc/skel/.bash_profile

! !

C. newaliases D mailq

61. Vous souponnez quune passerelle de votre rseau ne fonctionne plus mais vous ne savez pas laquelle. Quelle commande va vous aider rsoudre le problme ? ! ! ! ! ! A B C D E ps netstat nslookup ifconfig traceroute

57. Avec le protocole SSH, pour raliser une authentification par cl publique / cl prive, lutilisateur doit enregistrer sa cl publique RSA dans le serveur SSH dans le fichier : ! ! ! ! A B C D ~/.ssh/id_rsa ~/.ssh/known_hosts ~/.ssh/authorized_keys /etc/ authorized_keys

62. Quelle commande va crer une route par dfaut avec comme passerelle 192.168.1.1 ? ! ! A B netstat-add default gw route default 192.168.1.1
Ouvrage sous contrat Creative Commons BY-NC-SA p. 117

Ouvrage sous contrat Creative Commons BY-NC-SA p. 116

Prparation lexamen 102 pour la certification LPIC-1

Annexe 1 : exemple dexamen de certification 102

! ! !

C D E

ip route default 192.168.1.1 route add default gw 192.168.1.1 ifconfig default gw 192.168.1.1 eth0

17. TZ 18. locale 19. iconv 20. dig ou host 21. /etc/cups/cupsd.conf 22. netstat -nr 23. uname r (alternative: uname a) 24. crontab -e 25. crontab -l 26. passwd nicolas 27. usermod -g beco mejdi 28. passwd -l nicolas (alternative: usermod -L nicolas) 29. userdel -r nicolas 30. useradd -m medji 31. /etc/ntp.conf 32. DISTINCT 33. % 34. B 35. B 36. ifconfig 37. C 38. /etc/profile 39. D 40. D 41. D 42. C 43. /etc/skel 44. D 45. A

63. _______________ est utilis par la machine pour identifier quelle machine se trouve sur le mme rseau et quelle machine est sur un autre rseau. ! ! ! ! ! A B C D E DNS ARP La passerelle Le masque rseau Le protocole de routage

Rponses
1. 2. 3. 4. 5. 6. 7. 8. 9. ? UPDATE \ls /etc/motd ntpd xvidtune .bash_profile ou .profile /etc/profile xhost +tunis

10. /etc/syslog.conf 11. service network restart 12. Files 13. XDMCP 14. /etc/resolv.conf 15. GOK 16. /etc/localtime

Ouvrage sous contrat Creative Commons BY-NC-SA p. 118

Ouvrage sous contrat Creative Commons BY-NC-SA p. 119

Prparation lexamen 102 pour la certification LPIC-1

Index des mots-cls

46. A, D 47. A 48. E 49. C 50. A, B 51. C 52. B 53. A 54. C 55. ip_forward 56. B 57. C 58. E 59. D 60. D
Tableau 1. Fonctions dagrgation ................................................................................ 31 Tableau 2. Notation dcimale/binaire des lments dun rseau en IPv4 ................... 74 Tableau 3. Les classes en IPv4 ..................................................................................... 75 Tableau 4. Rseaux privs par classe en IPv4 ............................................................. 75 Tableau 5. Pile TCP/IP................................................................................................... 76 Tableau 6. Protocoles associs la pile TCP/IP .......................................................... 77

Table des figures et des tableaux


Figure 1. Le modle client/serveur X ............................................................................. 36 Figure 2. Relations entre les sections du fichier xorg.conf ............................................ 37 Figure 3. Outils daccessibilit sous Gnome ................................................................. 44 Figure 4. Informations dexpiration dun compte associes la commande en ligne . 60 Figure 5. Architecture du systme de messagerie........................................................ 95

Ouvrage sous contrat Creative Commons BY-NC-SA p. 120

Ouvrage sous contrat Creative Commons BY-NC-SA p. 121

Index des mots cls


$
$!,15 $#,15 $$,15 $*,15 $?,15 $0,15 $1,15 $2,15 /etc/security/access.conf,99 /etc/security/limits.conf,99 /etc/shadow,53 /etc/skel,53 /etc/ssh/sshd_config,99 /etc/ssh_known_hosts,99 /etc/sshrc,99 /etc/sysconfig/networksscripts/ifcfg-eth0,81 /etc/timezone,63 /etc/X11/xorg.conf,35 /proc/net/ip_fwchains,99 /proc/net/ip_fwmasquerade,99 /proc/net/ip_fwnames,99 /usr/bin/lpq,47 /usr/bin/lpr,47 /usr/bin/lprm,47 /usr/share/zoneinfo,63 /var/log,63

/
/bin/bash,15 /bin/false,53 /etc/bash_logout,15 /etc/bashrc,15 /etc/default/useradd,53 /etc/fstab,99 /etc/group,53 /etc/gshadow,53 /etc/host.conf,81 /etc/HOSTNAME,81 /etc/hosts,81 /etc/hosts.allow,99 /etc/hosts.deny,99 /etc/inputrc,15 /etc/localtime,63 /etc/nologin,99 /etc/ntp.conf,91 /etc/passwd,53 /etc/profile,15 /etc/resolv.conf,81

~
~/.bash_logout,15 ~/.bashrc,15 ~/.forward,91 ~/.inputrc,15 ~/.profile,15

A
adressage,73 anacron,63 anacrontab,63 arp,81

Ouvrage sous contrat Creative Commons BY-NC-SA p. 123

Prparation lexamen 102 pour la certification LPIC-1

Index des mots-cls

assistance sonore,35 at,63 authorized_keys,99

G
gdm (fichier de commande),35 Gestures,35 ghostscript,47 GOK,35 group by,27 groupadd,53 groupdel,53 groupe,53 groups,53 grpconv,53 grpunconv,53

L
LANG,63 LC_*,63 LC_ALL,63 lecteur dcran,35 lilo,99 locale,63 logiciel Braille,35 logiciel Daltonisme,35 logrotate,63 loupes dcran,35

Q
Qmail,91

B
bash,15 BIOS,99

R
rseau,81 routage,81 route,81 rsa,99

C
case,15 classe,73 clavier dcran,35 cron,63 crontab,63

S
select,15,27 Sendmail,91 set,15 simuler la souris avec les touches du clavier,35 sous-rseau,73 SSH,99 ssh-keygen,99 syslog,99

H
host,81 hostname,81 hwclock,91

M
mail,91 mailq,91 masque,73

D
date,63,91 delete,27 dig,81 DISPLAY,35 do,15 done,15

I
ICMP,73 iconv,63 id,53 if,15 ifconfig,81 ifup,81 insert,27 interface,81 IP,73 ipchains,99 iptables,99 ISO-8859,63

N
netfilter,99 netstat,81 newaliases,91 newgrp,53 ntpd,91 ntpdate,91

T
TCP,73 TCP wrapper,99 tcpdump,81 test,15 then,15 traceroute,81 tzselect,63

E
else,15 emacspeak,35 env,15 esac,15 Exim,91 export,15 expr,15

O
OpenSSH,99 Orca,35 order by,27

J
join,27

P
passwd,53 PATH,15 ping,81 pool.ntp.org,91 port,73 Postfix,91 pwconv,53 pwunconv,53

U
UDP,73 Unicode,63 unset,15 update,27 useradd,53 userdel,53 usermod,53 UTF-8,63 utilisateur,53

F
fi,15 fichiers de configuration et utilitaires du serveur CUPS,47 for,15 from,27

K
kdm (fichier de commande),35 known_hosts,99

Ouvrage sous contrat Creative Commons BY-NC-SA p. 124

Ouvrage sous contrat Creative Commons BY-NC-SA p. 125

Prparation lexamen 102 pour la certification LPIC-1

W
where,27 while,15

X
X,35 xdm (fichier de commande),35 xdpyinfo,35 xhost,35 xwininfo,35

Les auteurs
Zied Bouziri (Tunisie) : enseignant depuis 2003 au dpartement Informatique de lInstitut suprieur des tudes technologiques de Charguia (ISET, Tunis), option rseaux informatiques. Il est ingnieur en informatique, diplom de l'cole nationale des sciences de l'informatique de Tunis (ENSI). Entre 1999 et 2003, il a t ingnieur conception et dveloppement au dpartement recherche et dveloppement chez Alcatel. Niry H. Andriambelo (Madagascar) : membre fondatrice de lAssociation malgasy des utilisateurs de logiciels libres et formatirce de formateurs GNU/Linux, Niry Andriambelo est ingnieur informatique diplm de lUniversit dAntananarivo et, depuis 2004, coordinatrice pour les systmes et rseaux universitaires francophones dans locan Indien. Andrei Boyanov (Bulgarie) : directeur dActive Solutions et membre de la commission technique et dveloppement de lInstitut professionnel Linux. Andrei Boyanov est ingnieur en informatique issu de lUniversti technique de Sofia et formateur des personnels dencadrement de lenseignement suprieur dans le domaine des systmes et des rseaux Linux. Nicolas Larrousse (France) : concepteur de programmes Transfert dans les systmes et rseaux sous Linux ainsi que de formations la certification LPI. Nicolas Larrousse est ingnieur informatique. Il enseigne les systmes dinformation lUniversit de Versailles et exerce, depuis 1992, au Centre national de la recherche scientifique (CNRS), Paris. Vronique Pierre (France) : consultante indpendante en dition scientifique multimdia.

Ouvrage sous contrat Creative Commons BY-NC-SA p. 126

Ouvrage sous contrat Creative Commons BY-NC-SA p. 127