Vous êtes sur la page 1sur 54

LPIC 101

Cahier de tps

Linux Lab., SUPINFO


Revision dated from the 01/03/2009
Copyright © 2008 SUPINFO
All rights reserved.
ble of Contents
1. Introduction .......................................................................................................................................................... 1
2. Terminaux et commandes de base ............................................................................................................................. 2
2.1. Rappel sur les terminaux ............................................................................................................................... 2
2.1.1. L'interpréteur de commande ................................................................................................................ 2
2.1.2. Changement d'utilisateur .................................................................................................................... 2
2.2. Opérations sur les fichiers et répertoires ........................................................................................................... 3
3. Editeurs et flux de texte .......................................................................................................................................... 6
3.1. Pipes et redirections ..................................................................................................................................... 6
3.2. Flux de textes et filtres ................................................................................................................................. 9
3.3. L'éditeur VI ...............................................................................................................................................13
4. Expressions régulieres ...........................................................................................................................................15
4.1. Préparation ...............................................................................................................................................15
4.2. Grep ........................................................................................................................................................15
4.3. Sed ..........................................................................................................................................................16
5. Gestion des processus ............................................................................................................................................17
5.1. Gestion des processus .................................................................................................................................17
6. FHS ...................................................................................................................................................................19
7. Recherche ...........................................................................................................................................................20
7.1. find .........................................................................................................................................................20
7.2. locate .......................................................................................................................................................21
8. Gestion des utilisateurs et des groupes ......................................................................................................................23
8.1. Les utilisateurs et groupes ............................................................................................................................23
8.2. Gestion des identités ...................................................................................................................................24
8.3. Suppression d'utilisateur et de groupe .............................................................................................................27
8.4. Modèle de répertoire personnel .....................................................................................................................27
9. Gestion des permissions .........................................................................................................................................29
9.1. Gestion des permissions ..............................................................................................................................29
10. Gestion des disques .............................................................................................................................................32
10.1. Gestion des disques ...................................................................................................................................32
10.2. Cas pratique ............................................................................................................................................35
11. Quotas ..............................................................................................................................................................38
11.1. Configuration des quotas ............................................................................................................................38
12. Installation .........................................................................................................................................................41
12.1. Préparation à l'installation ..........................................................................................................................41
12.2. Configuration du bootloader .......................................................................................................................41
13. Installation de programmes ...................................................................................................................................44
13.1. L'approche Red Hat ..................................................................................................................................44
13.1.1. Installation de paquetages avec les rpm ..............................................................................................44
13.1.2. Manipulation des packages RPM .......................................................................................................44
13.2. L'approche Debian ....................................................................................................................................45
13.2.1. Installation de paquetages avec dpkg. ................................................................................................45
13.2.2. Installation de paquetages avec apt-get. .............................................................................................45
13.2.3. Manipulation des packages debian .....................................................................................................46
13.3. Installation universelle et personnalisée. ........................................................................................................46
13.3.1. Installation depuis les sources. ..........................................................................................................46
13.4. Les librairies dynamiques du système ...........................................................................................................47
14. Architecture et materiel ........................................................................................................................................49
15. Serveur X ..........................................................................................................................................................50
15.1. Configuration du serveur X ........................................................................................................................50
1

Chapter 1. Introduction
Aucun tp pour ce chapitre.
2

Chapter 2. Terminaux et commandes de


base

Table of Contents
2.1. Rappel sur les terminaux ................................................................................................... 2
2.1.1. L'interpréteur de commande .................................................................................... 2
2.1.2. Changement d'utilisateur ........................................................................................ 2
2.2. Opérations sur les fichiers et répertoires ............................................................................... 3

2.1. Rappel sur les terminaux


2.1.1. L'interpréteur de commande
L’endroit où vous pouvez taper des commandes dans un terminal s’appelle l’interpréteur de commande (shell en
anglais). Il en existe plusieurs, le plus utilisé étant Bash.

Le texte qui précède l’endroit où vous pouvez saisir vos commandes s’appelle le prompt. Bien que celui ci soit
entièrement modifiable, voici de quoi est composé un prompt « classique » :

Utilisateur @ NomDeLaMachine RépertoireCourant ($|#)

Par exemple :

root@localhost ~ #

Le symbole final (# ou $) permet de distinguer rapidement les privilèges de l’utilisateur : « # » pour le super
utilisateur, « $ » pour un utilisateur classique. Ce symbole fait parti du prompt et peut donc aussi être changé.

Ici, « ~ » (symbole tilde) signifie qu’il s’agit du répertoire personnel de l’utilisateur. Le répertoire du super util-
isateur étant /root et le répertoire d’un utilisateur classique étant situé, par convention, dans /
home/login_utilisateur.

L’interpréteur de commande permet de compléter automatiquement le nom des commandes et les chemins vers
les fichiers ou répertoire. Pour cela, il suffit d’appuyer sur la touche TAB et Bash fera de son mieux pour
compléter votre ligne. Dans le cas où plusieurs façons de compléter sont possibles, il faudra appuyer une
seconde fois sur la touche TAB pour afficher la liste des possibilités.

2.1.2. Changement d'utilisateur


Deux comptes utilisateurs sont présents sur la machine :

• Le super utilisateur root

• L’utilisateur supinfo
Terminaux et commandes de base 3

Pour passer de l’un à l’autre, il suffit de taper su suivi du login de l’utilisateur désiré. le - permet de recharger
l'environnement de l'utilisateur.

[root@localhost ~]# su - supinfo


[supinfo@localhost ~]$

2.2. Opérations sur les fichiers et répertoires


Q:
Créez un fichier fichier1 et un dossier dossier1.

A:
Nous utilisons la commande touch pour créer des fichiers et mkdir pour créer des répertoires.

[root@linux ~]# mkdir dossier1


[root@linux ~]# touch fichier1

Ces deux éléments sont créés dans le répertoire courant, il s’agit ici du répertoire personnel de l’utilisateur
root (/root).

Q:
Dans le répertoire dossier1, créez un lien symbolique nommé noyau qui pointe vers /usr/src.

A:
La commande ln avec l’option -s permet de créer des liens symboliques. Elle s'utilise de la façon
suivante : ln -s ObjetDuLien EmplacementDuLien

[root@linux ~]# ln -s /usr/src dossier1/noyau

Faire attention à l'ordre des arguments !

Q:
Listez le contenu de votre répertoire courant, puis celui du répertoire dossier1, copiez le répertoire
dossier1 en dossier2, effacer le répertoire dossier1 puis renommer dossier2 en dossier1.

A:
Pour lister le répertoire courant qui est ici mon répertoire personnel, je peux faire :

[root@linux ~]# ls
ou
[root@linux ~]# ls . (. représente le répertoire courant)
ou
[root@linux ~]# ls /root (/root représente le répertoire courant à savoir le réperto
ou
[root@linux ~]# ls ~ (~ représente le répertoire personnel de l'utilisateur cour
Terminaux et commandes de base 4

Pour lister le répertoire dossier1, je peux utiliser les commandes suivantes :

[root@linux ~]# ls dossier1


ou
[root@linux ~]# ls ./dossier1
ou
[root@linux ~]# ls /root/dossier1
ou
[root@linux ~]# ls ~/dossier1

Copions à présent le repertoire dossier1 en dossier2 à l'aide de la commande cp et de l'option -r


(récursivité).

[root@linux ~]# cp -r dossier1 dossier2

Effaçons le répertoire dossier1 et renommons dossier2 en dossier1 à l'aide des commandes rm


et mv.

[root@linux ~]# rm -r dossier1


[root@linux ~]# mv dossier2 dossier1

Q:
Allez dans le répertoire dossier1/noyau/, puis utiliser la commande pwd -P pour afficher le
répertoire où vous vous trouvez. Enfin, utilisez la commande cd - pour revenir au répertoire précédent.

A:
[root@linux ~]# cd dossier1/noyau
[root@linux ~/dossier1/noyau]# pwd
/root/dossier1/noyau
[root@linux ~/dossier1/noyau]# pwd -P
/usr/src
[root@linux ~/dossier1/noyau]# cd -
[root@linux ~]#

Q:
Affichez les lignes du fichier /var/log/messages qui contiennent le mot usb.

A:
La commande grep permet d'afficher les lignes d'un fichier qui correspondent au motif passé en argu-
ment. grep s'utilise de la façon suivante : grep Quoi Où.

L'option -i permet de ne pas tenir compte de la casse (Majuscule/Minuscule).

[root@linux ~]# grep -i usb /var/log/messages


Terminaux et commandes de base 5

Q:
Créez un fichier un super fichier en l'écrivant entre guillemets. Effacer ce fichier en utilisant la
commande rm et l'auto-complétion de Bash à partir du premier mot du fichier. Observez la syntaxe
utilisée par Bash.

A:
[root@linux ~]# touch "un super fichier"
[root@linux ~]# rm un<TAB>
[root@linux ~]# rm un\ super\ fichier

On constate que Bash « échappe » les espaces grâce au caractère « \ ».

Q:
Effacez tous les fichiers et dossiers commençant par « doss » dans le répertoire courant.

A:
Il faut ici utiliser le « globbing ». Plusieurs méta-caractères sont à notre disposition :

• le caractère « . » : correspond à 1 caractère.

• le caractère « ? » : correspond à zéro ou 1 caractère.

• le caractère « * » : correspond à zéro ou plusieurs caractères.

[root@linux ~]# rm -r doss*

L'option -r permet de supprimer également les répertoires.


6

Chapter 3. Editeurs et flux de texte

Table of Contents
3.1. Pipes et redirections ......................................................................................................... 6
3.2. Flux de textes et filtres ..................................................................................................... 9
3.3. L'éditeur VI ...................................................................................................................13

3.1. Pipes et redirections


Q:
Quels sont les trois flux standards ?

A:
Les trois flux standards sont :

• L'entrée standard, STDIN, numéro 0.

• La sortie standard, STDOUT, numéro 1.

• La sortie d'erreur, STDERR, numéro 2.

Pour manipuler les flux, 3 opérateurs sont disponibles :

• « > » permet de rediriger la sortie d'une commande dans un fichier. Si le fichier n'existe pas, celui-ci est
créé. S'il existe, son contenu est effacé. Si l'on veut conserver le contenu du fichier, il faut utiliser « >>
». Par défaut, c'est la sortie standard de la commande qui est redirigée. Pour rediriger autre chose, il suf-
fit de mettre le numéro du flux avant l'opérateur.

• « < » permet de rediriger le contenu d'un fichier dans l'entrée standard d'une commande.

• « | » permet de rediriger la sortie standard d'une commande vers l'entrée standard d'une autre.

• « 2> » permet de rediriger la sortie d'erreur d'une commande dans un fichier.

Q:
Listez en affichage complet le contenu du répertoire /etc dans le fichier sortie_etc.

A:

[root@linux ~]#
ls -l /etc > sortie_etc

Le fichier sortie_etc est créé dans le répertoire courant.

L'affichage complet (option -l) de ls permet d'afficher les permissions, la taille ainsi que les dates de
Editeurs et flux de texte 7

modifications des fichiers.

Q:
Concaténez la liste des répertoires et des fichiers de /var/log/ à la suite de sortie_etc.

A:

[root@linux ~]#
ls /var/log >> sortie_etc

L'opérateur « >> » permet de ne pas écraser le contenu de sortie_etc.

Q:
Utilisez cat combiné avec less pour afficher le fichier sortie_etc.

A:
Il suffit d'envoyer la sortie de cat vers l'entrée de less grâce au pipe.

[root@linux ~]#
cat sortie_etc | less

Q:
Utilisez cat combiné avec grep pour n’afficher que les fichiers qui ont « .conf » dans leur nom et qui sont
dans sortie_etc.

A:
Ici, il faut combiner cat avec grep :

[root@linux ~]#
cat sortie_etc | grep .conf

Mais ce n'est pas tout à fait exact, car le « . » est un caractère spécial remplaçant n'importe quel caractère.
Ainsi, on obtient des résultats tels que « fontconfig », « autoconf », etc. Il faut donc mettre la chaîne de
caractère entre guillemets pour qu'elle ne soit pas interprétée par Bash.

[root@linux ~]#
cat sortie_etc | grep ".conf"

Sauf que cela ne marche toujours pas. Pourquoi ? Parce que, maintenant, c'est grep qui interprète le
caractère « . » comme un caractère spécial. Il faut donc l'échapper une nouvelle fois grâce à un backslash
« \ ».
Editeurs et flux de texte 8

[root@linux ~]#
cat sortie_etc | grep "\.conf"

Q:
Listez tous les fichiers du répertoire /etc contenant la suite de caractères « env ».

A:

[root@linux ~]#
ls /etc/ | grep env

La commande ls /etc/ nous permet de lister le contenu de /etc sur la sortie standard. On redirige ensuite
cette sortie dans l'entrée de grep pour rechercher la chaîne de caractère « env ».

Q:
Listez le répertoire /dev/ de 3 manières : Classique (ls), combiné avec more, puis avec less.

A:

[root@linux ~]#
ls /dev
[root@linux ~]#
ls /dev | more
[root@linux ~]#
ls /dev | less

Q:
Affichez les noms de fichiers contenant la suite de caractères « conf » dans les 30 premiers fichiers du
répertoire /etc.

A:
Il suffit de décomposer ce qui est demandé :

• 1. Tout d'abord, il faut obtenir la liste des fichiers du répertoire /etc grâce à ls.

• 2. Ensuite, on ne veut travailler que sur les 30 premiers fichiers du répertoire, il faut donc prendre les
30 premières lignes renvoyées par ls grâce à head.

• 3. Enfin, on peut afficher les lignes contenant « conf » avec grep.

[root@linux ~]#
Editeurs et flux de texte 9

ls /etc | head -n 30 | grep conf

Q:
Faites de même pour les 10 derniers fichiers.

A:
La même chose, mais avec l'utilitaire tail.

[root@linux ~]#
ls /etc | tail -n 10 | grep conf

Q:
Créez un fichier toto contenant la phrase « linux rulez » grâce à la commande echo et les redirections.

A:
La commande echo permet d'afficher sur la sortie standard le texte passé en paramètre. Grâce aux redirec-
tions, on peut utiliser echo pour écrire dans un fichier.

[root@linux ~]#
echo "Linux rulez" > toto

Q:
Grâce à la commande tr, convertissez toutes les lettres minuscules (de a à z) du fichier toto en lettres
majuscules, redirigez le tout vers le fichier tata puis grâce à l’opérateur && affichez le contenu de
tata. N’hésitez pas à consulter l’aide de la commande tr.

A:
La commande tr permet de transformer du texte. Elle ne fonctionne que sur les flux : tr lit sur l'entrée
standard et affiche le résultat sur la sortie standard.

tr fonctionne donc de cette façon : tr TexteATransformer Transformation < Fichier

[root@linux ~]#
tr [:lower:] [:upper:] < toto > tata &&
cat tata

3.2. Flux de textes et filtres


Editeurs et flux de texte 10

Affichez le fichier /var/log/messages avec les commandes cat, more, less, tail puis head. Décrire
rapidement les effets de chacune de ces commandes.

A:

[root@linux ~]#
cat /var/log/messages
[root@linux ~]#
more /var/log/messages
[root@linux ~]#
less /var/log/messages
[root@linux ~]#
tail /var/log/messages
[root@linux ~]#
head /var/log/messages

Nous avons donc plusieurs commandes à notre disposition pour afficher le contenu de fichiers textes :

• cat : Affiche le contenu du fichier passé en paramètre sur la sortie standard.

• more : Affiche le contenu du fichier passé en paramètre sur la sortie standard, avec possibilité de voir
le texte page par page et de le faire défiler vers le bas.

• less : Equivalent de la commande more qui permet de faire défiler le texte dans les deux sens (haut et
bas) ainsi que horizontalement.

• head : Permet d'afficher les 10 premières lignes d'un fichier sur la sortie standard. On peut préciser le
nombre de lignes à afficher grâce à l'option -n.

• tail : permet d'afficher les 10 dernières lignes d'un fichier sur la sortie standard. On peut aussi préciser
le nombre de lignes à afficher grâce à l'option -n. On peut faire en sorte que tail se rafraîchisse auto-
matique lors d'une modification extérieure sur le fichier grâce à l'option -f. C'est une commande très
pratique pour observer les fichiers de logs.

Tous ces programmes lisent également sur leur entrée standard, on peut donc obtenir la même chose avec
des redirections :

[root@linux ~]#
cat < /var/log/messages
[root@linux ~]#
more < /var/log/messages
[root@linux ~]#
Editeurs et flux de texte 11

less < /var/log/messages


[root@linux ~]#
tail < /var/log/messages
[root@linux ~]#
head < /var/log/messages

Q:
Sur une première console, affichez le fichier /var/log/auth.log en utilisant le rafraîchissement
automatique de la commande tail. Connectez vous à une autre console virtuelle en tant que root et ob-
servez le changement du fichier sur la première console.

A:
Le fichier /var/log/auth.log est le fichier de log correspondant aux actions de connexions sur la
machine.

Sur une première console :

[root@linux ~]#
tail -f /var/log/auth.log

Sur une deuxième console :

[supinfo@linux ~]$
su -
Password:
[root@linux ~]#

On constate que sur la première console, l'affichage s'est rafraîchit pour inclure une ligne du type :

Nov 30 15:17:02 localhost CRON[13589]:


(pam_unix) session opened for user root by
(uid=0)

Q:
Le fichier /etc/passwd contient diverses informations relatives aux comptes des utilisateurs. Com-
ment faire pour obtenir un fichier sys_users contenant le login de tous les utilisateurs du système, à
hauteur d'un login par ligne, chaque ligne étant numérotée ?

A:
Editeurs et flux de texte 12

L'outil cut permet de découper une ligne en plusieurs champs. cut s'utilise en général avec 2 options,
l'option -d qui permet de définir quel caractère va servir de séparateur lors du découpage des champs, et
l'option -f qui permet de préciser les champs que l'on veut récupérer.

Le fichier /etc/passwd est constitué de plusieurs lignes, chacune de ces lignes contenant plusieurs
champs séparés par le caractère « : ». On récupère donc le premier champ grâce à cut et on envoie la
sortie dans nl pour que les lignes soient numérotées. Il suffit ensuite de rediriger le tout dans un fichier.

[root@linux ~]#
cut -d ":" -f 1 < /etc/passwd | nl >
sys_users

Q:
Afficher le nombre de comptes utilisateurs présents sur la machine en une seule commande.

A:
Puisque le fichier /etc/passwd contient une ligne pour chaque utilisateur, il suffit de lister le nombre
de lignes avec wc -l pour connaître le nombre d'utilisateurs.

[root@linux ~]#
wc -l /etc/passwd

Q:
La commande ifconfig (en root) affiche les informations relatives au réseau. Comment faire pour obtenir
un fichier ip_address contenant la liste des adresses IP configurées, à hauteur d’une adresse IP par
ligne ?

A:
Exemple d'affichage d'ifconfig :

[root@linux ~]#
ifconfig
eth0 Lien encap:Ethernet HWaddr
00:0D:60:37:80:88 inet adr:10.1.78.21 Bcast:10.1.79.255
Masque:255.255.252.0 adr inet6: fe80::20d:60ff:fe37:8088/64
Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX
packets:82834 errors:0 dropped:0 overruns:0 frame:0 TX
packets:155880 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000 RX bytes:30244120 (28.8
MiB) TX bytes:20777082 (19.8 MiB) Adresse de base:0x8000
Mémoire:c0220000-c0240000

Tout d'abord on repère la ou les lignes qui nous intéressent afin de pouvoir les récupérer avec grep.
Editeurs et flux de texte 13

inet adr:10.1.78.21 Bcast:10.1.79.255


Masque:255.255.252.0

Il nous reste ensuite à récupérer ce que l'on cherche grâce à cut, plusieurs fois si nécessaire.

[root@linux ~]#
ifconfig | grep "Masque:" | cut -d ":" -f 2 | cut -d "
" -f 1

Q:
Quels sont les trois opérateurs que l’on peut utiliser pour exécuter plusieurs commandes à la suite ?

A:
Les 3 opérateurs à notre disposition sont :

Le ET logique « && » :

commande1 && commande2 (commande2 est exécutée


seulement si commande1 réussit)

Le OU logique « || » :

commande1 || commande2 (commande2 est exécutée


seulement si commande1 échoue)

Le séparateur d'instructions « ; » :

commande1 ; commande2 (commande2 est exécutée après que


commande1 se soit achevée, quoiqu'il arrive)

3.3. L'éditeur VI
Q:
L’éditeur de texte Vi (prononcer « vi aïe ») est l’un des éditeurs les plus répandus dans le monde UNIX. Il
vous faut donc apprendre à le maîtriser. Pour cela, tapez vimtutor et complétez le tutorial.

A:
Editeurs et flux de texte 14

[supinfo@linux ~]$
vimtutor
15

Chapter 4. Expressions régulieres

Table of Contents
4.1. Préparation ...................................................................................................................15
4.2. Grep ............................................................................................................................15
4.3. Sed ..............................................................................................................................16

4.1. Préparation
Avant de commencer ce TP, on va créer un fichier qui va nous permettre de vérifier les différentes expressions
réguilères. Pour cela, il suffit de copier les lignes ci-dessous dans un fichier et de tester les expressions réguières
sur ce dernier.

#supinfo #nice1 nice#1 supinfo2# 1234paris 12nice23 8888


azerty88888qwerty 888azqswx888 netbsd freebeerbds 123

4.2. Grep
Q:
Afficher toutes les lignes commençant par un #.

A:
grep '^#' fichier

Q:
Afficher toutes les lignes qui finissent par un caractère alphanumérique.

A:
grep '[a-zA-Z0-9]$' fichier

Q:
Afficher toutes les lignes contenant une suite de 3 chiffres.

A:
grep -E '[0-9]{3}' fichier

Q:
Afficher toutes les lignes contenant 8888, 88888 ou 888888.

A:
grep -E '8{4,6}' fichier
Expressions régulieres 16

Q:
Afficher toutes les lignes contenant soit netbsd, freebsd ou openbsd.

A:
grep -E '(net|free|open)bsd' fichier

4.3. Sed
Q:
Remplacer toutes les occurrences de /mnt par /media dans /etc/fstab sans modifier le fichier original.

A:

sed 's/\/mnt/\/media/g' /etc/fstab

Q:
Supprimer toutes les lignes vides d'un fichier.

A:

sed '/^$/d' fichier

Q:
Afficher que les lignes finissant par /bin/bash dans /etc/passwd

A:

sed -n '/\bin\/bash$/p' /etc/passwd

Q:
Créer une expression régulière qui reconnaît un nom d'utilisateur Linux valide.

A:

sed -n '/[a-z_][a-z0-9]*/p'
17

Chapter 5. Gestion des processus

Table of Contents
5.1. Gestion des processus .....................................................................................................17

5.1. Gestion des processus


Q:
Lancer yes > /dev/null et mettre en pause la commande en cours à l'aide d'un raccourci clavier.

A:
[root@linux ~]# yes >
/dev/null Puis Ctrl-Z.

Q:
Utiliser la commande jobs qui vous permettra d'observer les [travaux] du shell courant.

A:

[root@linux ~]#
jobs
Il vous sera affiché un numéro de "job" pour le
processus lancé.

Q:
Passer la commande yes > /dev/null en arrière plan.

A:

[root@linux ~]#
bg %Numéro_de_job

Q:
Envoyer un signal SIGTERM ou SIGKILL au processus yes > /dev/null et vérifier qu'il a bien été quitté.

A:

[root@linux ~]#
ps aux | grep yes
[root@linux ~]#
Gestion des processus 18

kill -9 pid_de_yes
[root@linux ~]#
ps aux | grep yes
Le processus n'est plus présent.

Q:
Editer le fichier /etc/resolv.conf avec vi en utilisant la commande nice. Lancer la commande top
et vérifier la priorité du processus. Toujours avec la commande top diminuer la priorité du processus à 15.

A:

[root@linux ~]#
nice vi /etc/resolv.conf
[root@linux ~]#
top
Une fois la commande top lancée, tapez "r" et entrer le
chiffre 15.

Q:
Lancer la commande top afin que celle-ci affiche tous les processus durant 3 rafraichissements, où l'écart
entre chaque rafraichissement soit de 5 secondes le tout en mode batch, puis retournez le tout dans un
fichier. (voir le man)

A:

[root@linux ~]#
top -n 3 -d 5 -b > fichier_batch
19

Chapter 6. FHS
Aucun tp pour ce chapitre.
20

Chapter 7. Recherche

Table of Contents
7.1. find .............................................................................................................................20
7.2. locate ...........................................................................................................................21

7.1. find
Q:
Rechercher un fichier portant le nom de messages dans /var.

A:

[user@linux ~]$
find /var -name messages

Q:
Rechercher tous les fichiers se terminant par « .log ».

A:

[user@linux ~]$
find / -name "*.log"

Q:
Rechercher tous les répertoires portant le nom de log qui ont été accédés depuis moins de 2 jours.

A:

[user@linux ~]$
find / -name log -atime -2 -type d

Q:
Rechercher tous les fichiers se terminant par « .log » sur le système et y appliquer un « touch » afin d'en
modifier la dernière date d'accès. Vérifier ensuite avec la commande ls -l.

A:
Il existe un moyen d'exécuter une action pour chaque résultat de find. Pour cela, il faut utiliser l'option -
exec suivie d'une syntaxe un peu particulière.

En effet, après le -exec il faut indiquer la commande à exécuter. Si, dans cette commande, on a besoin
Recherche 21

d'utiliser le nom du fichier qui a été trouvé par find, il faut utiliser la chaîne de caractère "{}". En dernier
lieu, il faut terminer la ligne par les caractères "\;". Ainsi, pour appliquer un touch à tous les fichiers
trouvés par find :

[user@linux ~]$
find / -name "*.log" -exec touch {} \;

7.2. locate
Q:
Rechercher tous les fichiers se terminant par « .log » sur le système avec la commande locate et observer
la vitesse.

A:

[user@linux ~]$
locate *.log

Note
La recherche avec locate est immédiate.

Q:
Créer un fichier monfichier.txt puis chercher le avec la commande locate. Que remarquez-vous ?

A:

[user@linux ~]$
touch monfichier.txt
[user@linux ~]$
locate monfichier.txt

locate ne trouve pas le fichier. En effet, sa base de donnée n'a pas été mise à jour entre temps.

Q:
Mettre à jour la base de donnée de locate grâce à la commande updatedb puis rechercher de nouveau le
fichier monfichier.txt.

A:
Recherche 22

[root@linux ~]#
updatedb
[user@linux ~]$
locate monfichier.txt
23

Chapter 8. Gestion des utilisateurs et des


groupes

Table of Contents
8.1. Les utilisateurs et groupes ................................................................................................23
8.2. Gestion des identités .......................................................................................................24
8.3. Suppression d'utilisateur et de groupe .................................................................................27
8.4. Modèle de répertoire personnel .........................................................................................27

8.1. Les utilisateurs et groupes


Q:
Créez un utilisateur lpic avec comme répertoire home /home/lpic (généré automatiquement) et avec
comme mot de passe « password » (ne pas faire apparaître le mot de passe en clair sur la ligne de com-
mande).

A:
[root@linux ~]# useradd -m lpic
[root@linux ~]# passwd lpic
Enter new UNIX password:
Retype new UNIX password:

Note
Le répertoire personnel est généré en prenant le répertoire /etc/skel pour modèle.

Q:
Créez un groupe forma sans aucune option.

A:
[root@linux ~]# groupadd forma

Q:
Définissez le groupe forma comme groupe principal de l'utilisateur lpic. Cette modification devra être
faite en modifiant le fichier /etc/passwd et non en utilsant la commande usermod.

A:
Pour cela, il convient de modifier le 4e champ du fichier /etc/passwd et d'y spécifier
Pour récupérer le gid, faites un cat /etc/group pour retrouver le GID du groupe désiré
Gestion des utilisateurs et des groupes 24

Q:
Définissez les groupes secondaires de l'utilisateur lpic comme étant : users et staff (créez les si nécessaire
avec la commande groupadd). Cette fois-ci, utilisez la commande usermod.

A:
[root@linux ~]# usermod -G users,staff lpic

Q:
Listez les groupes de l'utilisateur lpic.

A:
[root@linux ~]# groups lpic
lpic : forma users staff

Q:
Vous voulez activer les fonctionnalités shadow sur votre système (si cela n'est pas déjà fait). Une fois que
les fonctionnalités shadow sont activées. Ouvrez le fichier /etc/passwd. Que voyez-vous par rapport au
mot de passe? Où ces mots de passe sont-ils stockés ?

A:
[root@linux ~]# pwconv
# permet d'activer les fonctionnlités shadow

Dans le fichier /etc/passwd, le champ mot de passe est marqué d'un x.


Le mot de passe chiffré est situé dans le fichier /etc/shadow.

8.2. Gestion des identités

Note
Pour se déconnecter rapidement d'une session dans un terminal, il existe le raccourci très pratique
Ctrl+D. Ce raccourci équivaut à taper la commande exit.

Q:
Changez votre identité de l'utilisateur root en utilisateur mandriva.

A:
[root@linux ~]# su - mandriva
[user@linux ~]$

Q:
Listez les utilisateurs connectés.
Gestion des utilisateurs et des groupes 25

A:
[mandriva@linux ~]$ who

Q:
Déconnectez vous de l'utilisateur mandriva pour revenir en super utilisateur root.

A:
[user@linux ~]$ exit
[root@linux ~]#

ou bien :

[user@linux ~]$ Ctrl+D


[root@linux ~]#

Q:
Désactivez le compte lpic.

A:
[root@linux ~]# passwd -l lpic

On peut vérifier que le compte est bien désactivé en regardant dans le fichier /etc/shadow :

root@localhost ~ # cat /etc/shadow | grep lpic | cut -d ":" -f 2


!$1$.8oDh7HP$Avzeu/z2ij4PHjyedRcs20

Note
Il y a un « ! » avant le mot de passe : le compte est désactivé.

Q:
Changez votre identité en lpic. Pourquoi le mot de passe de user1 n'est-il pas demandé ?

A:
[root@linux ~]# su - lpic
[supinfo@localhost ~]$

Le mot de passe n'est pas demandé, car le super-utilisateur a accès à tous les comptes du système.

Q:
Essayez de vous logguer en tant que lpic.

A:
[supinfo@linux ~]$ su - lpic
Gestion des utilisateurs et des groupes 26

Password:
Authentication failed.

Le compte est désactivé : il est donc impossible de se connecter.

Q:
Revenez en root puis logguez vous en tant que lpic. Pourquoi cela marche-t-il ?

A:
[supinfo@linux ~]$ su -
[root@linux ~]# su - lpic
[lpic@linux ~]$

L'utilisateur root peut se logguer sur un compte même si celui-ci est désactivé puisqu'il n'a pas à rentrer de
mot de passe.

Q:
Revenez en root et réactivez le compte de l'utilisateur lpic. Précisez les trois façons de réactiver le
compte: 2 avec la commande passwd et 1 en éditant le fichier /etc/passwd.

A:
Pour réactiver un compte, plusieurs choix sont possibles :

• Utilisez la commande passwd login pour définir un nouveau mot de passe. (Le champ password dans /
etc/shadow est redéfini).

• Utilisez la commande passwd -u login pour réactiver le compte avec le mot de passe d'origine. (Le
point d'exclamation du champ password dans /etc/shadow est retiré).

• Éditez le fichier /etc/shadow et retirez le point d'exclamation du champ password.

[root@linux ~]# passwd -u lpic

Q:
Modifiez le fichier /etc/passwd et remplacez le shell de lpic par /bin/false.

A:
[root@linux ~]# vim /etc/passwd

On se positionne sur la ligne du compte lpic puis il suffit de taper :

:s/bash/false

Q:
Logguez-vous en tant que lpic. Cela fonctionne-t-il ? Pourquoi ?
Gestion des utilisateurs et des groupes 27

Note
La page de manuel de false peut vous aider.

A:
[root@linux ~]# su - lpic
[root@linux ~]#

Juste après s'être loggué en tant que lpic, le programme /bin/false est lancé. Sa particularité est de ne rien
faire et de renvoyer un statut d'erreur. Ainsi, le retour au shell précédent est immédiat et on a l'impression
que rien ne s'est produit.

8.3. Suppression d'utilisateur et de groupe


Q:
Supprimez l'utilisateur lpic et son répertoire personnel.

A:
[root@linux ~]# userdel -r lpic

Q:
Supprimez le groupe forma.

A:
[supinfo@linux ~]$ groupdel forma

Note
On peut également éditer les fichiers /etc/passwd et /etc/group et supprimer les lignes
correspondantes.

8.4. Modèle de répertoire personnel


Q:
Faîtes en sorte que, désormais, pour tout répertoire personnel créé automatiquement, des dossiers « Mes
Documents », « Ma Musique », « Mes Vidéos » et un fichier « Bienvenue » contenant une
phrase de bienvenue soient créés à l'intérieur.

Créez ensuite un compte bernard avec génération automatique du dossier personnel et vérifiez la création
Gestion des utilisateurs et des groupes 28

des dossiers.

Note
Pensez au dossier /etc/skel !

A:
Par défaut, lorsque qu'un dossier personnel doit être créé automatiquement, le répertoire /etc/skel sert
de répertoire modèle. Il suffit donc de modifier le contenu de ce répertoire.

[root@linux ~]# cd /etc/skel


[root@linux /etc/skel]# mkdir "Mes Documents" "Ma Musique" "Mes Vidéos
[root@linux /etc/skel]# echo "Bienvenue sur votre système GNU/Linux :)" > Bienvenue

On ajoute ensuite notre utilisateur :

[root@linux ~]# useradd -m bernard

On vérifie que tout a bien fonctionné :

[root@linux /etc/skel]# su - bernard


[bernard@linux ~]$ ls
Bienvenue Mes Documents Ma Musique Mes Vidéos
[bernard@linux ~]# cat Bienvenue
Bienvenue sur votre système GNU/Linux :)
29

Chapter 9. Gestion des permissions

Table of Contents
9.1. Gestion des permissions ..................................................................................................29

9.1. Gestion des permissions


Q:
Quelles sont les permissions appliquées au fichier /etc/passwd ? Cela représente-il un risque de
sécurité ?

A:
[user@linux ~]$ ls -l
/etc/passwd -rw-r--r-- 1 root root 2676 2007-11-02 19:12
/etc/passwd

Permissions 644. N'importe qui peut alors connaitre la liste des utilisateurs sur le système. C'est un risque
en soit.

Q:
Quelles sont les permissions appliquées au fichier /etc/shadow ? Cela représente-il un risque de
sécurité ?

A:
[user@linux ~]$ ls -l
/etc/shadow -rw-r----- 1 root shadow 2303 2007-10-27
15:18 /etc/shadow

Permissions 640. Seul le root et les utilisateurs faisant parti du groupe shadow peuvent consulter le fichier
de mot de passes. Cela ne représente donc pas de risque de sécurité.

Q:
Créer un fichier toto et un dossier foo. Quelles sont les permissions définies par défaut ?

A:

[Mandriva@linux ~]$
touch toto; mkdir foo

Par défaut le fichier toto aura les permissions : 644 ou rw-r--r--

Par défaut le dossier foo aura les permissions : 755 ou rwx-r-xr-x

Q:
Gestion des permissions 30

Afficher les permissions du fichier et du dossier précédemment créé.

A:

[user@linux ~]$
ls -l
drwxr-xr-x 2 luser group 578 Nov 14 16:12 foo/
-rw-r--r-- 1 luser group 306 Oct 26 16:11 toto

Q:
Changer le umask à 0077

A:

[user@linux ~]$
umask 0077

Q:
Créer un fichier toto2 et un dossier foo2, puis afficher leurs permissions.

Remettre le umask à 0022.

A:

[user@linux ~]$
touch toto2 ; mkdir foo2

[user@linux ~]$
ls -l

drwx 2 user group 578 Nov 14 16:14 foo2/ -rw 1


user group 306 Nov 14 16:14 toto2
[user@linux ~]$
umask 0022

Q:
Changer le propriétaire et le groupe du fichier toto en root

A:
Gestion des permissions 31

[root@linux ~]#
chown root:root toto

Q:
Appliquer les permissions rwx pour l'utilisateur, rx pour le groupe, r pour les autres, en utilisant la nota-
tion avec les lettres, puis avec les chiffres sur le fichier toto.

A:

[root@linux ~]#
chmod u=rwx,g=rx,o=r toto
[root@linux ~]#
chmod 754 toto

Q:
Essayer d'arrêter la machine en tant qu'utilisateur supinfo en utilisant la commande halt puis /
sbin/halt. Pourquoi la commande halt ne fonctionne pas sans rentrer son chemin complet ?

A:

[user@linux ~]$
halt
-bash: halt: command not found
[user@linux ~]$
/sbin/halt
halt: Operation not permitted

Dans le premier cas, le binaire halt n'est pas dans notre variable $PATH. dans les deuxième cas, seul root
peut arrêter le système.

Q:
Faites en sorte qu'un utilisateur normal puisse arrêter la machine en utilisant le suid sur le fichier
exécutable /sbin/halt.

A:

[root@linux ~]#
chmod u+s /sbin/halt
32

Chapter 10. Gestion des disques

Table of Contents
10.1. Gestion des disques .......................................................................................................32
10.2. Cas pratique ................................................................................................................35

10.1. Gestion des disques


Q:
Quel sera le nom du périphérique correspondant au second disque d'un contrôleur SCSI ?

A:
/dev/sdb

Q:
Quel sera le nom du périphérique correspondant au premier disque du premier contrôleur IDE ?

A:
/dev/hda

Q:
Créer une nouvelle partition Linux de type ext3 de 100Mo (avec fdisk) sur le disque dur esclave du
premier contrôleur SCSI .

A:
Utilisation de la commande fdisk de manière interactive :

[root@linux ~]#
fdisk /dev/sdb
Command (m for help): n
Command action e extended p primary partition (1-4)
p Partition number (1-4):
1 First cylinder (1-2434, default 1): Using
default value 1 Last cylinder or +size or
+sizeM or +sizeK (1-2434, default 2434): +100M Command (m for
help): t Selected partition 1 Hex code (type
L to list codes): 83 Changed system type of
partition 1 to 82 (Linux swap) Command (m for help):
w Writing table partition...

Rappel des principales commandes de fdisk :

• n : permet de créer une nouvelle partition

• p : permet de choisir cette partition comme partition primaire


Gestion des disques 33

• t : permet de changer le type de la partition

• w : permet d'enregistrer les modifications

Q:
Mettre en place un système de fichiers ext3 sur la nouvelle partition.

A:

[root@linux ~]#
mkfs.ext3 /dev/sdb1

Q:
Monter la partition dans le répertoire /mnt/externe. Attribuer le répertoire à l’utilisateur supinfo et au
groupe root. Faire en sorte que l'utilisateur supinfo ait les droits de lecture/écriture/exécution, et que tous
les autres aient les droits de lecture/exécution seulement.

A:

[root@linux ~]#
mkdir /mnt/externe
[root@linux ~]#
mount /dev/sdb1 /mnt/externe
[root@linux ~]#
chmod 766 /mnt/externe

Q:
Démonter la partition puis remplir /etc/fstab afin de monter la partition automatiquement au
démarrage.

A:

[root@linux ~]#
umount /dev/sdb1
[root@linux ~]#
tail -1 /etc/fstab
/dev/sdb1 /mnt/externe/ ext3 defaults 0
0

Q:
Gestion des disques 34

Redémarrer et vérifier que le montage fonctionne.

A:

[root@linux ~]#
init 6
[root@linux ~]#
mount
/dev/hda1 on / type ext3 (rw,notail) proc on
/proc type proc (rw) sysfs on /sys type sysfs (rw) usbfs on
/proc/bus/usb type usbfs (rw) /dev/sdb1 on /mnt/externe type
ext3 (rw)

ou bien

[root@linux ~]#
mount -a
[root@linux ~]#
mount
/dev/hda1 on / type ext3 (rw,notail) proc on
/proc type proc (rw) sysfs on /sys type sysfs (rw) usbfs on
/proc/bus/usb type usbfs (rw) /dev/sdb1 on /mnt/externe type
ext3 (rw)

Q:
Afficher la taille de la partition montée avec df puis avec du.

A:
Avec df, la taille de toutes les partitions du système est affichée instantanément. L'option -h permet
d'obtenir la taille en octet.

[root@linux ~]#
df -h
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda1 9,4G 3,7G 5,7G 40% / /dev/sdb1 100M 1M 99M 1%
/mnt/sdb1

Avec du, on affiche la taille des fichiers ou dossiers passés en paramètres. du analyse chaque fichier afin
d'en obtenir la taille, l'opération prend donc plus de temps.
Gestion des disques 35

[root@linux ~]#
du -sh /mnt/externe
1M /mnt/externe

Note
À la différence de df qui travaille sur les partitions, du travaille sur les fichiers et les
répertoires.

10.2. Cas pratique


L'entreprise GnuCorp possède un serveur web. L'administrateur a été assez distrait, il n'a pas créé de partition
pour /var. Maintenant que son système est en production, les journaux commencent à représenter une part sig-
nificative de l'espace disque utilisé. Pour y remédier il souhaite mettre le dossier /var/log sur un autre
disque sans changer la configuration des services déjà présent sur le système.

Etant occupé, l'administrateur vous confie l'élaboration de la procédure et vous fourni une machine virtuelle afin
d'effectuer des simulations.

Q:
Démontez le disque SCSI que vous venez de préparer. Vous l'utiliserez comme disque de stockage pour /
var/log.

A:

[root@linux ~]#
umount /mnt/externe

Q:
Créez le système de fichier sur le disque /dev/sdb1

A:

[root@linux ~]#
mkfs.ext3 /dev/sdb1

Q:
Montez la partition /dev/sdb1 dans /mnt/externe et copiez le répertoire /var/log dans le répertoire
Gestion des disques 36

/mnt/externe (donc sur le disque).

Note
Afin de préserver les permissions, liens symboliques et appartenances, on va employer
l'option --preserve=all

A:

[root@localhost ~]#
mount /dev/sdb1 /mnt/externe
[root@localhost ~]#
cp --preserve=all /var/log/ /mnt/externe

Q:
Démontez le point de montage /mnt/externe. Ajoutez une entrée dans /etc/fstab afin de monter
la partition /dev/sdb1 automatiquement sur /var/log.

A:

[root@localhost ~]#
umount /mnt/externe
[root@localhost ~]#
tail -1 /etc/fstab
/dev/sdb1 /var/log/ ext3 defaults 0
0

Q:
Redémarrer, et vérifier le fonctionnement de votre configuration.

A:

[root@localhost ~]#
reboot
[root@localhost ~]#
df -h
Gestion des disques 37

Sys. de fich. Tail. Occ. Disp. %Occ. Monté


sur /dev/hda1 9,4G 3,7G 5,7G 40% / /dev/sdb1 100M 10M 99M
10% /var/log
38

Chapter 11. Quotas

Table of Contents
11.1. Configuration des quotas ................................................................................................38

11.1. Configuration des quotas


Configuration et gestion des quotas

Pré-requis : Ajouter et formater une nouvelle partition, ajouter cette partition au fichier fstab. Elle sera montée
automatiquement dans le répertoire /mnt/save.

Q:
Quelle est la signification de limite dur (hard limit) , limite douce (soft limite) et temps de grâce (grace
limit)

A:
hard limit : limite que l'utilisateur ne peut pas dépasser. Si la limite est atteinte, l'utilisateur n'aura plus le
droit d'écrire.

soft limit : Quand cette limite est atteinte, il recevra un message de notification.

grace time: La période avant que la soft limite devienne une hard limit.

1. Installez le paquet "quota" sur votre serveur

2. Préparez la partition /dev/sdb1 à utiliser des quotas via le fichier /etc/fstab et rebootez le server.

3. Activez les quotas sur votre serveur.

4. Configurez la limite quota nommée "blocks" pour l'utilisateur supinfo sur la seconde partition montée dans
/mnt/save: 10mo pour la soft limit, 15 mo pour la hard limit.

N'oubliez pas de changer d'utilisateur: su - supinfo

5. testez : créez un fichier de 10 mo avec la commande 'dd' puis créez un autre fichier de 10 mo , Regardez les
résultats de la commande

Q:
Aprés ces tests, pouvez vous éditer un fichier et sauvegarder dans la partition montée dans /mnt/save ?

A:
Quotas 39

Vous ne pouvez sauver les modifications.

Example 11.1. Correction

1. Installez le paquet "quota" sur votre serveur

[root@mandriva]# apt-get install quota

2. Activer les quotas sur la partition /dev/sdb1 dans le fichier /etc/fstab et rebootez le server.

Editez votre fichier /etc/fstab.

[root@mandriva]# vim /etc/fstab

Ajoutez les options usrquota et grpquota sur le disque /dev/sdb1.

/dev/sdb1 /mnt/save ext3 defaults,usrquota,grpquota 0 0

Puis rebootez votre server :

[root@mandriva]# reboot

3. Activez les quotas sur votre serveur

Pour créer tous les fichiers nécessaires (aquota.group et aquota.user) entrez cette commande (-a
pour tester tous les systèmes de fichier montés, -u pour les utilisateurs, -g pour les groupes et -v pour le
mode verbeux):

[root@mandriva save]# quotacheck -avug


quotacheck: Scanning /dev/sdb1 [/mnt/save] done
quotacheck: Cannot stat old group quota file: No such file or
directory quotacheck: Cannot stat old group quota file: No such file
or directory quotacheck: Checked 3 directories and 3 files
quotacheck: Old file not found.

Activez les quotas (-a pour l'activer sur tous les systèmes de fichiers)
Quotas 40

[root@mandriva save]# quotaon -av


/dev/sdb1 [/mnt/save]: group quotas turned on
/dev/sdb1 [/mnt/save]: user quotas turned
on

4. Configurez la limite quota nommée "blocks" pour l'utilisateur supinfo sur la seconde partition montée dans
/mnt/save : 10mo pour la soft limit, 15 mo pour la hard limit.

Lancez la commande pour éditer les quotas de l'utilisateur supinfo:

[root@mandriva]# edquota -u supinfo

Editez le fichier comme tel:

Disk quotas for user supinfo (uid 500): Filesystem


blocks soft hard inodes soft hard
/dev/sdb1 0 10000 15000 0 0 0

5. Testez : créez un fichier de 10 mo avec la commande 'dd' puis créez un autre fichier de 10 mo , Regardez
les résultats de la commande

N'oubliez pas de changer d'utilisateur: su - supinfo

Créez un fichier de 10mo avec la commande dd (1024 octets * 100). Cette commande est très utile pour ce
genre de tests:

[supinfo@mandriva ~]$ dd if=/dev/zero of=/mnt/save/testsoftfile bs=1024 co


sdb1: warning, user block quota exceeded. 10000+0
records in 10000+0 records out 10240000 bytes (10 MB) copied,
0,191424 s, 53,5 MB/s

Créez un autre fichier de 10 mo.

[supinfo@mandriva ~]$ dd if=/dev/zero of=/mnt/save/testhardtfile bs=1024 count=150


dd: writing `/mnt/save/testhardfile': Disk quota
exceeded 4939+0 records in 4938+0 records out 5056512 bytes (5,1 MB)
copied, 0,0829262 s, 61,0 MB/s

La première création de fichier vous averti que vous excédez la soft limit. La seconde création de fichier est
limitée en taille par la hard limit définie (5mo au lieu de 10mo car l'ensemble des fichiers correspond à
15mo soit la hard limit).
41

Chapter 12. Installation

Table of Contents
12.1. Préparation à l'installation ..............................................................................................41
12.2. Configuration du bootloader ...........................................................................................41

12.1. Préparation à l'installation


Q:
Quelles sont les partitions qu'il faut obligatoirement créer pour installer GNU/Linux ?

A:
Il faut au minimum deux partitions :

• swap : correspond à un espace mémoire virtuel pour étendre la mémoire vive. De manière générale,
pour connaitre la taille de la partition swap à créer, il faut doubler la quantité de RAM installée.
Cependant, ceci est de moins en moins vrai au vu de la démocratisation de la mémoire RAM. Il faut
choisir la taille en fonction de la quantité de mémoire vive nécessaire.

• / : correspond au point de montage qui accueille les fichiers du système GNU/Linux.

Il est tout à fait possible de subdiviser la partition racine en créant d'autre partition pour les répertoires
composant la racine. Exemple : On dédie une partition pour le repertoire /home qui contient l'ensemble
des répertoires personnels des utilisateurs. Ainsi, lors d'une réinstallation, en ayant les fichiers util-
isateurs sur une autre partition, il n'est pas nécessaire de sauvegarder puis restaurer les données.

12.2. Configuration du bootloader

Note
LILO est un bootloader pour plateforme de type Intel x86. Il offre beaucoup moins de
fonctionnalités que GRUB car il réside entièrement en MBR. Cela signifie qu'il n'est pas lié aux
partitions du système, mais aussi qu'il faut réinstaller LILO dans le MBR à chaque modification de
son fichier de configuration (/etc/lilo.conf).

Q:
Configurer LILO. Ré-installez LILO sur le MBR et redémarrez le système pour observer les change-
ments.

A:
boot=/dev/sda # Chemin du disque sur lequel installer LILO,
# attention à ne pas mettre une partition.
Installation 42

prompt # Demande à l'utilisateur de choisir


# sur quoi il veut démarrer
timeout=50 # Au bout de combien de temps le choix
# par défaut va-t-il être choisi.
image=/boot/vmlinuz-2.6.23.1
label="Noyau Maison 2.6.23.1"
initrd= /boot/initrd-2.6.23.1
read-only

Il convient ensuite d'installer la nouvelle configuration de LILO sur le MBR.

Note
La principale différence entre Lilo et GRUB c'est que GRUB n'a pas besoin d'être réinstallé sur le
MBR après chaque changement de configuration.

L'inconvénient majeur de GRUB est qu'il dépend de la partition sur laquelle se trouve son fichier
de configuration. En cas de suppression de cette partition, GRUB se trouve dans l'incapacité de
fonctionner.

Q:
Maintenant configurez GRUB. Créer le fichier configuration de GRUB (/boot/grub/menu.lst) si
celui-ci n'existe pas.

A:
Il suffit d'ajouter le bloc de configuration suivant dans le fichier de configuration de GRUB, à savoir /
boot/grub/menu.lst.

# Fichier de configuration de Grub


timeout 10 # Démarre le noyau par défaut au bout de 10 secondes
default 0 # Noyau par défaut
title Mon noyau fait main (Linux 2.6.23.1)
root (hd0,0)
kernel /boot/vmlinuz-2.6.23.1
initrd /boot/initrd-2.6.23.1
boot
title Noyau officiel
root (hd0,0)
kernel /boot/vmlinuz
initrd /boot/initrd-2.6.23.1
boot

Q:
Installez GRUB sur le MBR et relancez le système pour constater les changements.
Installation 43

A:
Deux facons d'installer GRUB :

Via grub-install :

root@localhost ~ # grub-install /dev/sda --no-floppy

Avec la console grub :

root@localhost ~ # grub
grub> setup (hd0,0)
grub> root (hd0)
grub> quit
root@localhost ~ #
44

Chapter 13. Installation de programmes

Table of Contents
13.1. L'approche Red Hat ......................................................................................................44
13.1.1. Installation de paquetages avec les rpm ..................................................................44
13.1.2. Manipulation des packages RPM ...........................................................................44
13.2. L'approche Debian ........................................................................................................45
13.2.1. Installation de paquetages avec dpkg. ....................................................................45
13.2.2. Installation de paquetages avec apt-get. .................................................................45
13.2.3. Manipulation des packages debian .........................................................................46
13.3. Installation universelle et personnalisée. ............................................................................46
13.3.1. Installation depuis les sources. ..............................................................................46
13.4. Les librairies dynamiques du système ...............................................................................47

13.1. L'approche Red Hat


13.1.1. Installation de paquetages avec les rpm
Q:
Recherchez le paquet rpm de ProFtpd correspondant à votre distribution sur rpmfind.net, et téléchargez-le.

A:

[root@linux ~]# wget <adresse>

Q:
Installer le paquet

A:

[root@linux ~]# rpm -ivh proftpd.rpm

Q:
Démarrez le serveur.

A:

[root@linux ~]# /etc/init.d/proftpd start

13.1.2. Manipulation des packages RPM


Installation de programmes 45

Retrouvez à quel package appartient la commande /bin/echo

A:
[root@linux ~]# rpm -qf /bin/echo

Q:
Récupérez la liste de tous les paquets installés dont le nom contient la chaîne de caractère "gnome". Faîtes
en sorte que cette liste soit automatiquement inscrite dans un fichier liste.txt .

A:
[root@linux ~]# rpm -qa | grep gnome > liste.txt

13.2. L'approche Debian


13.2.1. Installation de paquetages avec dpkg.
Q:
Récupérer depuis le lien ftp qui suit une version de lynx™ compatible avec votre architecture :

ftp://ftp.proxad.net/.mirrors1/ftp.debian.org/pool/main/l/lynx/1

A:

[root@linux ~]# ftp ftp://ftp.proxad.net/.mirrors1/ftp.debian.org/pool/main/l/lynx/


ftp> get lynx-**********.deb

Q:
Installer le paquet.

A:

[root@linux ~]# dpkg -i lynx-*******.deb

Q:
Tester cette nouvelle application. Pour retrouver la commande qui correspond au package que vous venez
d'installer, aidez vous de dpkg (en listant l'ensemble des fichiers installés).

A:

[root@linux ~]# dpkg -L lynx | grep bin


[root@linux ~]# lynx www.google.fr

13.2.2. Installation de paquetages avec apt-get.


1
???
Installation de programmes 46

Q:
Modifiez la liste des dépôts afin de ne plus être dépendant du cd d'installation de votre distribution. Re-
gardez dans le fichier /etc/apt/source.list.

A:

[root@linux ~]# vi /etc/apt/source.list

Commenter la ou les lignes commençant par deb cdrom:/// puis sauvegarder.

Q:
Il faut maintenant mettre à jour la liste des paquets disponibles à l'installation. Effectuez cette action.

A:

[root@linux ~]# apt-get update

Q:
Vous pouvez maintenant partir à la recherche du paquet contenant le serveur proftpd™. Généralement, le
nom du paquet est celui du logiciel. Recherchez donc dans le cache le mot clé "proftpd".

A:

[root@linux ~]# apt-cache search proftpd

Q:
Maintenant que vous connaissez exactement le nom du paquet, vous pouvez procéder à son installation.

A:

[root@linux ~]# apt-get install proftpd

13.2.3. Manipulation des packages debian


Q:
Lister tous les fichiers appartenant au package openssh-client.

A:
[root@linux ~]# dpkg -L openssh-client

13.3. Installation universelle et personnalisée.


13.3.1. Installation depuis les sources.
Scénario : L'administrateur souhaite installer depuis les sources le client FTP ncftp. Les étapes seront effectuées
autant que possibles avec l'utilisateur non priviligié supinfo.
Installation de programmes 47

Q:
Grâce à wget, télécharger le fichier suivant :
ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.bz22.

A:

[supinfo@linux ~]$ wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.bz2

Q:
Décompresser l'archive et rentrer dans le répertoire décompressé.

A:

[supinfo@linux ~]$ tar -xvjf ncftp-3.2.0-src.tar.bz2


[supinfo@linux ~]$ cd ncftp-3.2.0

Q:
Configurer l'application pour qu'elle s'installe dans /usr/local/ puis lancer la compilation.

A:

[supinfo@linux ncftp-3.2.0]$ ./configure --prefix=/usr && make

Q:
Passer en root et lancer l'installation de l'application.

A:

[supinfo@linux ~]$ su
[root@linux ~]# make install

Q:
En tant qu'utilisateur supinfo, lancer l'application.

A:

[root@linux ~]# exit


[supinfo@linux ~]$ ncftp

13.4. Les librairies dynamiques du système


Q:
Créez le répertoire /home/supinfo/lib puis allez dans /lib et déplacez le fichier lib-
krb5.so.3* vers /home/supinfo/lib.

Lancez ssh --help, que se passe-t-il ? Remédiez au problème. (indice: aidez vous de la commande ldd)

2
ftp://ftp.ncftp.com/ncftp/ncftp-3.2.0-src.tar.bz2
Installation de programmes 48

A:
[root@linux ~]# echo "/home/supinfo/lib" >> /etc/ld.so.conf
[root@linux ~]# ldconfig
49

Chapter 14. Architecture et materiel


Aucun tp pour ce chapitre.
50

Chapter 15. Serveur X

Table of Contents
15.1. Configuration du serveur X ............................................................................................50

15.1. Configuration du serveur X


Q:
Connectez-vous en tant que root.

Si votre session graphique est lancée, arrêtez la en exécutant /etc/init.d/xdm stop.

A:
Le Display Manager est le programme qui affiche l'invite de connexion de manière graphique. Ce pro-
gramme est chargé de lancer une session (environnement + applications) graphique après que l'utilisateur
se soit authentifié. Un Display Manager tourne en arrière plan : c'est un DAEMON. XDM (X Display
Manager) est le display manager par défaut de l'environnement XFree86/X.org. C'est un Display Manager
extrêmement simple qui est peu gourmant en mémoire. Pour l'arrêter, on utilise le script de contrôle du
DAEMON en lui passant l'argument stop. Couper XDM provoque l'arrêt des sessions graphiques lancées
par lui précédemment.

root@localhost ~ # /etc/init.d/xdm stop

Q:
Faites une copie du fichier de configuration du serveur graphique dans votre dossier personnel.

A:
Le fichier de configuration du serveur graphique se trouve dans le répertoire /etc/X11 et dépend du
serveur utilisé :

• Pour XFree86 : XF86Config et XF86Config-4

• Pour X.org : xorg.conf

Sur la distribution Debian Sarge, c'est XFree86 qui est installé.

root@localhost ~ # mkdir backup_xfree root@localhost ~ #


cp /etc/X11/XF86Config* backup_xfree/

Q:
Vérifiez que le chemin /usr/X11R6/bin est dans votre variable $PATH, sinon rajoutez le.

A:
root@localhost ~ # echo $PATH
Serveur X 51

/usr/local/bin:usr/bin:/sbin/bin root@localhost ~ # export


PATH=/usr/X11/bin:$PATH root@localhost ~ # echo $PATH
/usr/X11/bin:/usr/local/bin:/usr/bin:/sbin:/bin

Q:
Configurez le serveur X grâce à l’utilitaire xf86config qui fonctionne en mode texte. Aidez vous de la
commande lspci pour connaître votre matériel afin pouvoir répondre aux questions.

A:
lspci permet d'afficher la liste du matériel branché sur les ports PCI de l'ordinateur. Cela comprends les
ports PCI « classiques » mais aussi les ports AGP ou encore PCI Express. Cette commande est donc très
pratique pour obtenir des informations précises sur le matériel (marque, révision, chipset, etc.).

root@localhost ~ # lspci … 0000:01:00.0 VGA compatible


controller: ATI Technologies Inc Radeon R250 Lf [FireGL 9000] (rev
02) … root@localhost ~ # xf86config

Q:
En tant qu'utilisateur supinfo, lancez le serveur X grâce à la commande startx et vérifiez son fonction-
nement.

A:
La commande startx permet de lancer le serveur X11 sans passer par un Display Manager. Le serveur X
va se lancer puis exécuter le contenu du fichier Bash ~/.xinitrc ou bien /etc/X11/xinit/xinitrc si le .xinitrc
de l'utilisateur n'est pas trouvé.

supinfo@localhost ~ $ startx

Q:
Coupez votre session graphique grâce à a combinaison de touche : Ctrl+Alt+Retour arrière.

Essayez ensuite la configuration avec l’utilitaire en mode graphique, xf86cfg.

A:
root@localhost ~ # xf86cfg

Q:
Vérifiez de nouveau que tout fonctionne bien. En cas de problème, pour récupérer une session qui fonc-
tionne, vous pouvez recopier la configuration depuis votre dossier personnel vers le dossier de configura-
tion du système.

En tant qu'utilisateur supinfo, éditez le fichier ~/.xinitrc pour pouvoir lancer le window manager twm ain-
si que les applications suivantes : xterm, xeyes et xclock.

A:
Le fichier ~/.xinitrc va être exécuté lors du lancement via startx. Il suffit donc de modifier son contenu
comme suit :

contenu de ~/.xinitrc :

xterm & # le & permet d'envoyer en arrière plan et


Serveur X 52

donc de pouvoir lancer la prochaine commande tout de suite. xeyes


& xclock & exec twm

Il reste ensuite à lancer startx pour constater le résultat.

supinfo@localhost ~ $ startx

Q:
Quittez la session graphique puis effacez votre .xinitrc

A:
Pour quitter la session graphique : Ctrl+Alt+BackSpace

supinfo@localhost ~ $ rm .xinitrc

Q:
Grâce à apt-get, installez le gestionnaire de session GDM. Lors de l'écran de configuration, choisir GDM
comme gestionnaire de session par défaut.

A:
GDM est le Display Manager du projet GNOME. Il est beaucoup plus complet que XDM.

root@localhost ~ # apt-get install gdm

Q:
Modifier dans le fichier de configuration de GDM,/etc/gdm/gdm.conf, la ligne suivante :

#Greeter=/usr/bin/gdmlogin #par
Greeter=/usr/bin/gdmgreeter

A:
Le changement de cette ligne dans le fichier de configuration de GDM permet essentiellement d'obtenir
un écran de connexion plus joli.

• Si ce n'est pas déjà le cas, en root, relancez le gestionnaire de session GDM grâce à la commande
suivante : /etc/init.d/gdm restart.

root@localhost ~ # /etc/init.d/gdm restart

Vous aimerez peut-être aussi