Professional Documents
Culture Documents
—
Certificat Professionnel de Technicien Micro
Réseau et Internet
—
UV TMRI-1 - Systèmes en réseaux
1 valeur, 100 heures
Introduction au système Linux
Rémi LEBLOND
(remi.leblond@laposte.net)
23 mars 2004
2
Table des matières
1 Introduction 9
1.1 Qu’est-ce qu’un logiciel libre ? . . . . . . . . . . . . . . . . . . . 9
1.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.2 L’importance du code source . . . . . . . . . . . . . . . . 9
1.1.3 Les libertés apportées aux utilisateurs de logiciels libres . 11
1.1.4 La FSF et le projet GNU - La licence GPL . . . . . . . . 11
1.2 Concepts de base de Linux . . . . . . . . . . . . . . . . . . . . . 14
1.2.1 Origines : Le système UNIX . . . . . . . . . . . . . . . . 14
1.2.2 Le système Linux . . . . . . . . . . . . . . . . . . . . . . 16
1.2.3 Historique du projet Linux . . . . . . . . . . . . . . . . . 17
1.3 Les distributions de Linux . . . . . . . . . . . . . . . . . . . . . 21
1.3.1 Installation et configuration manuelle . . . . . . . . . . . 21
1.3.2 Les distributions . . . . . . . . . . . . . . . . . . . . . . 22
1.3.3 Standardisation des distributions . . . . . . . . . . . . . . 24
2 Fonctionnalités de Linux 27
2.1 Fonctionnalités du noyau . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1 Présentation rapide . . . . . . . . . . . . . . . . . . . . . 27
2.1.2 Découpage du système . . . . . . . . . . . . . . . . . . . 28
2.1.3 Le noyau Linux . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.4 Le couple GNU - Linux . . . . . . . . . . . . . . . . . . 32
2.1.5 Notion de processus . . . . . . . . . . . . . . . . . . . . 37
2.1.6 Parallèle avec Windows . . . . . . . . . . . . . . . . . . 38
2.2 Principe du système de fichiers . . . . . . . . . . . . . . . . . . . 39
2.2.1 Notion de système de fichier . . . . . . . . . . . . . . . . 39
2.2.2 Les différents types de fichiers . . . . . . . . . . . . . . . 39
2.2.3 Structure du système de fichiers . . . . . . . . . . . . . . 40
2.3 Sécurité et utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3.1 Notion de système multi-utilisateur . . . . . . . . . . . . 44
2.3.2 Méta-données sur les fichiers . . . . . . . . . . . . . . . . 45
2.3.3 Processus de connexion . . . . . . . . . . . . . . . . . . 46
3
4 TABLE DES MATIÈRES
4 Utilisation de Linux 61
4.1 Trouver de l’aide . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.1.1 Le manuel . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.1.2 TexInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1.3 Les HOWTO . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1.4 Les documentations . . . . . . . . . . . . . . . . . . . . 63
4.1.5 Autres sources d’information . . . . . . . . . . . . . . . . 63
4.2 Les commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.1 Principes de base . . . . . . . . . . . . . . . . . . . . . . 64
4.2.2 Les entrées - sorties de commandes . . . . . . . . . . . . 64
4.2.3 Redirection de commandes . . . . . . . . . . . . . . . . . 66
4.3 Entrer et sortir de Linux . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.1 Connexion à un système Linux . . . . . . . . . . . . . . . 67
4.3.2 Déconnexion d’un système Linux . . . . . . . . . . . . . 69
4.3.3 Arrêt et redémarrage du système . . . . . . . . . . . . . . 70
4.4 Parcours du système de fichier . . . . . . . . . . . . . . . . . . . 71
4.4.1 Identifier le répertoire courant . . . . . . . . . . . . . . . 71
TABLE DES MATIÈRES 5
Objectifs du cours
Le cours systèmes informatiques en réseau vise à fournir aux auditeurs les
compétences suivantes :
Pour chacun des deux systèmes Windows et Linux, être capable de les instal-
ler, les administrer, créer et gérer un réseau dans ces environnements, installer des
logiciels bureautiques.
Ce document ne traite uniquement le système Linux.
Admission et pré-requis
Cette formation s’adresse à toute personne en situation d’emploi ou de re-
cherche d’emploi. Elle est ouverte aux bénéficiaires d’emplois-jeunes ou aux aides
éducateurs préparant leur insertion professionnelle future. Aucun diplôme en in-
formatique n’est à priori exigé. Il est cependant souhaitable d’avoir déjà utilisé
un ordinateur et d’avoir une certaine pratique de son système d’exploitation. Des
connaissances générales correspondant au niveau Baccalauréat sont exigées. Un
entretien préalable à l’inscription permettra, le cas échéant, de s’assurer du niveau
d’entrée du candidat.
7
8 TABLE DES MATIÈRES
Chapitre 1
Introduction
9
10 CHAPITRE 1. INTRODUCTION
Code source
Binaire
#include<stdio.h>
int main(void)
{ 01000111101101101
int a=0, pid; 00010101001011110
pid = fork(); 01101010111100000
if (pid == 0)
Compilation 01101101001001100
{ 0011011101010110
// Programme du fils
printf("Je suis le fils\n"); 011110110110110
} 0110110111011010
else
{
// Programme du père Exécution
int i,j;
// Attente de la fin du fils
//wait();
for (i=0; i<10; i++)
Si le code source est facilement compréhensible par un humain (pour peu qu’il
connaisse le langage utilisé), le binaire n’est réellement exploitable que par une
machine. Ainsi, s’il est très difficile de comprendre les rouages d’un logiciel si
on ne dispose que du fichier binaire, l’analyse du code source dévoile tous les
mécanismes mis en oeuvre par le logiciel1 .
Le code source est donc essentiel en matière de logiciel, car sa connaissance
permet d’examiner le fonctionnement d’une application et éventuellement de l’amé-
liorer ou d’en corriger les bogues. C’est aussi, par exemple, le garant de l’absence
de porte dérobée compromettant la sécurité d’un système informatique ou de fonc-
tionnalité malicieuse. [APR]
1
Ce qui explique que bien des éditeurs de logiciel soient opposés à la divulgation des codes
sources de leurs applications, au titre compréhensible de la protection de leurs “secrets de fabrica-
tion”.
1.1. QU’EST-CE QU’UN LOGICIEL LIBRE ? 11
Pour valider ce système, une base légale est nécessaire. Cette base légale, créée
de toutes pièces, est la licence GNU GPL (pour GNU General Public License).
La GNU GPL est la licence des logiciels libres par excellence. Elle détermine
des conditions de distribution qui garantissent les libertés de l’utilisateur. Un pro-
gramme protégé par la GPL est libre, mais la GPL impose aussi que tout travail
dérivé de ce logiciel reste libre. On peut estimer à plus de 70% le nombre de
logiciels libres qui son protégés par la GNU GPL. [APR]
Il faut distinguer les logiciels libres de logiciels du domaine public (freeware).
En effet, les logiciels libres sont systématiquement livrés avec leur code source,
qu’il est possible de modifier à condition de redistribuer les sources modifiées.
1.1. QU’EST-CE QU’UN LOGICIEL LIBRE ? 13
Cette obligation n’existe pas pour les logiciels du domaine public, dont seule la
version binaire est gratuite.
L’utilisation de logiciels du domaine publique pour un usage professionnel
est stratégiquement risquée car il est impossible de s’assurer que les mises à jour
ultérieures du logiciel resteront gratuites. On peut ainsi imaginer un éditeur dis-
tribuant gratuitement son logiciel pour faciliter sa diffusion et, une fois le marché
acquit ferait payer les nouvelles versions3.
Ce scénario est impossible avec des logiciels libres exploitant la licence GPL,
car cette dernière oblige chaque contributeur à diffuser librement les sources de
toute adaptation d’un logiciel libre. Même si une nouvelle version devenait pro-
priétaire, ce qui est tout à fait envisageable4 , il serait toujours possible de pour-
suivre le développement de l’application dans sa version “libre” à partir des sources
de l’avant dernière version (qui était libre).
Il existe d’autres licences qualifiées de libres, bien que souvent moins contrai-
gnantes quant à la divulgation des sources (la licence BSD, la licence Mozilla... ).
Il faut toutefois souligner que la licence GPL, véritable clef de voûte d’un grand
nombre de logiciels libres (dont Linux), n’a jamais été éprouvée devant la justice 5 .
La question de sa validité juridique reste donc levée.
Bien que cela puisse paraître contradictoire, il est tout à fait possible de com-
mercialiser une solution exploitant la licence GPL, à condition de rendre dispo-
nibles les sources des programmes. Par exemple, si une société A développe une
solution basée sur un logiciel libre adapté par ses soins, il peut la commercialiser
et en tirer des bénéfices financiers. Par contre, elle est tenue de rendre les sources
de ses adaptations disponibles gratuitement. De ce fait, une société concurrente B
peut reprendre ces sources, les modifier et les commercialiser à son tour. La so-
ciété A peut alors se sentir lésée par cette divulgation de son travail, mais comme
la société B est aussi tenue de publier les sources de ses modifications, elle peut à
son tour profiter des améliorations apportées pour les intégrer à son offre. De plus,
la société A n’est plus contrainte d’assurer seule la maintenance et l’évolution de
sa solution, elle est désormais aidée par la société B. Pour que ce modèle soit ren-
table, il faut bien entendu que la société A garde une plus value par rapport à la
société B, autre que le code source de sa solution.
Ce fonctionnement nous oblige à revoir notre façon d’envisager l’approche
commerciale de l’industrie informatique. La plus value d’une entreprise choisis-
sant de commercialiser du logiciel libre ne réside plus dans la rétention du code
3
Ceci est une simple supposition, nous savons bien que le marché de l’informatique n’est pas
aussi perfide...
4
Le propriétaire d’un programme peut changer à tout moment la licence le protégeant. Par
contre, la licence GPL interdit l’intégration de code protégé par la GPL dans des programmes ne
répondant pas à cette licence.
5
Du moins au moment de la rédaction de ce document...
14 CHAPITRE 1. INTRODUCTION
ces termes :
nouvelles, permet à Linux d’être toujours plus proche des besoins de ses utilisa-
teurs. [2LI]
continuer à s’étendre, mais aussi et surtout pour donner à Linux une existence
réelle sur le marché des systèmes d’exploitation. Ainsi, ses qualités d’OS libre (et
gratuit), robuste et performant font qu’il est choisi par de plus en plus de fournis-
seurs d’accès à Internet. Il est ainsi devenu aujourd’hui le leader sur le marché de
l’hébergement de sites Web.
Parallèlement, l’apparition et le développement de sociétés privées telles que
RedHat, Caldera ou VA Linux donne une envergure jusqu’alors inconnue à Linux :
les distributions deviennent de plus en plus conviviales et simples à installer, et des
services professionnels sont mis en place pour faciliter l’implantation de Linux
dans les entreprises. [2LI]
23
Les deux éditeurs sont d’ailleurs presque voisins.
24
Et très pauvre en matière d’applications fournies, d’ailleurs...
24 CHAPITRE 1. INTRODUCTION
Fonctionnalités de Linux
27
28 CHAPITRE 2. FONCTIONNALITÉS DE LINUX
SGI.
Ce système est largement utilisé dans les milieux universitaires, il est donc
très souvent à la pointe de la recherche : Ainsi, Linux a été le premier système à
supporter le protocole IP v6 ou le processeur 64bits Itanium d’Intel.
Aujourd’hui, Linux occupe une place de choix dans les serveurs d’infrastruc-
ture (routeurs, serveur de nom, serveur DHCP, serveur Web, serveur FTP... ) et
commence à obtenir ses lettres de noblesse au coeur des solutions d’entreprise.
Par contre, il butte encore assez nettement dans sa conquête du poste client,
souffrant de la position dominante de Windows et sur la difficulté de changer les
habitudes des utilisateurs. En effet, autant le changement de l’OS d’un serveur
est imperceptible par les utilisateurs, autant il est très sensible dès qu’il touche le
poste de travail.
outils sont en grande partie issus du projet GNU. Tous ces outils mis bouts à bouts
représentent bien plus que le noyau Linux lui même.
Pour simplifier, on peut dire qu’il y a plus de GNU que de Linux dans un
système Linux fonctionnel. C’est pour cette raison qu’il est plus correct de parler
d’un système GNU/Linux, bien qu’il soit courant de ne citer que le nom du noyau.
Noyau du système
Fonction A
Fonction B
Fonction C
Fonction D
Fonction E
Fonction H
Fonction F Fonction G
Fonction I
Module A
Fonction A
Module B
Contour fonctionnel du noyau
Fonction D
Fonction E
Module F Fonction H
Fonction F Fonction G
Module I
Fonction I
Les noyaux fournis avec les distributions font largement appel aux modules
pour pouvoir s’adapter aux multiples configurations différentes sur lesquelles elles
sont susceptibles de pouvoir être installées. Ces noyaux peuvent donc être quali-
fiés de “passent-partout”. Ceci explique pourquoi il est préferable de recompiler
soit-même le noyau de son système pour l’adapter au mieux à sa configuration (et
supprimer du noyau tout ce qui n’a pas lieu d’y être).
Applications
Utilisateur
Compilateur Utilisateur
gcc
Editeur de
texte
vi, emacs
Serveur Web
apache Noyau linux Interface
graphique
Interpréteurs X11
de scrips
perl, python
Interpréteur de
commandes
shell bash...
– le gestionnaire de bureau,
– les applications XWindow.
Application XWindow
Gestionnaire de bureau
Utilisateur
Gestionnaire de fenêtres d’application
graphique
Programmes en ligne Serveur X
de commande
Interpréteur de commandes
Noyau Linux
Utilisateur
d’application
en ligne de
Matériel commande
forme d’un arbre généalogique, puisque tout processus à un père (sauf init) et peut
avoir des fils (voir figure 2.7, page 38).
Init
Demons
login login
Le processus "login" est le père du processus "shell"
shell shell
Ce processus à deux fils Les deux processus sont distincts
meme s’ils sont basés sur le meme
programme ("shell")
ls programme 1
les liens symboliques : permettent de présenter une image d’un fichier sous un
autre nom ou à un autre endroit sans dupliquer les données. Un lien sym-
bolique “pointe” vers un autre fichier, appelé fichier cible. La notion de lien
symbolique peut être comparée à celle de raccourcis sous Windows, à la
différence qu’ici, cette notion est prise en charge dans le système de base
alors que, sous Windows, il s’agit d’un ajout tardif qu’il est assez facile de
contourner6 .
les fichiers spéciaux en mode bloc : sont les portes sur les périphériques fonc-
tionnant par blocs de données (ex : disques). L’accès à un périphérique en
mode bloc peut se faire aléatoirement (accès à n’importe quel emplacement
du fichier).
les fichiers spéciaux en mode caractère : sont les portes vers les périphériques
fournissant ou consommant les données octet par octet. L’accès à un pé-
riphérique en mode caractère ne peut se faire que séquentiellement (accès
successif à chaque emplacement du fichier), si bien qu’il est impossible
d’accéder au bloc n avant de parcourir le bloc n-1. Ce type d’accès séquen-
tiel est assez bien illustré par le fonctionnement d’un lecteur de bande.
les tubes nommés "FIFO" 7 : permettent à deux processus sans relation de pa-
renté de s’échanger des données comme par un tube. L’écriture et la lecture
dans un tube sont nécessairement séquentielles. L’écriture rempli le tube, la
lecture le vide. On dit que la lecture des données d’un tube est destructive
(voir figure 2.8, page 40).
Essai Essai
Tube FIFO
i a s s E
Ecriture Lecture
existe un répertoire racine, d’où débutent tous les chemins possibles dans le sys-
tème de fichiers. Chaque fichier ou répertoire a un nom qui permet aux utilisateurs
du système de l’identifier. Le seul répertoire qui n’a pas de nom est le répertoire
racine.
Les systèmes de fichiers Unix n’ont pas les mêmes limitations sur les noms
que les systèmes de fichiers FAT et FAT32 utilisés par Windows. Les noms des
fichiers et des répertoires peuvent être très longs (jusqu’à 256 caractères par nom),
et ils prennent en compte la casse des lettres8 .
Les fichiers contiennent des données au sens large, ce peut être des données
(texte, image, film, son, paramètres de programmes ou du système... ), ou des
programmes. En fait, Unix (et donc Linux) manipule généralement l’ensemble de
ses composants sous la forme de fichiers. Les répertoires sont eux-mêmes des fi-
chiers spéciaux, interprétés par le système différemment des autres fichiers. Nous
verrons plus loin (voir 3.2.10, page 53) que les périphériques du système sont,
eux aussi, représentés sous la forme de fichiers. Cette orientation “fichier” systé-
matique facilite grandement l’utilisation avancée d’un système Unix, mais peut
dérouter les habitués des systèmes Windows.
Les noms de répertoires et de fichiers sont séparés par un caractère spécial. Ce
caractère est traditionnellement, sous Unix, la barre oblique de division (nommée
“slash” en anglais) : “/”. Comme le répertoire racine n’a pas de nom, il peut être
accédé directement avec un simple “slash”.
La qualification complète d’un fichier se fait en précisant le nom du répertoire
à chaque niveau et en séparant par des slashes chacun de ces noms. Cette quali-
fication porte le nom de “chemin” d’accès (“path” en anglais). L’exemple suivant
vous montre l’allure d’un chemin d’accès typique sous Unix :
/home/remi/CNAM/linux/linux.tex
Les utilisateurs du DOS et de Windows prendront garde ici au fait que Micro-
soft a préféré la barre oblique inverse (nommée “backslash” en anglais) “backs-
lash”, rendant ainsi tous ses systèmes incompatibles avec les systèmes Unix, et
générant ainsi beaucoup de problèmes supplémentaires là où il n’était pas néces-
saire d’en avoir9 .
Les utilisateurs du DOS et de Windows constateront ici que les chemins d’ac-
cès Unix ne comportent pas de spécification de lecteurs. Les systèmes de fichiers
8
Ce qui signifie qu’il fait une différence entre les caractères majuscules et minuscules. Ainsi,
trois fichiers nommés “Fichier”, “fichier” et “FICHIER” seront distingés par le système de fichiers,
alors qu’ils seraient confondus sur un système Windows.
9
Le coût de cette ânerie, ainsi que celle des marqueurs de fin de ligne dans les fichiers textes,
doit atteindre des sommes astronomiques dans tous les projets de portage ou de développement
d’applications portables.
42 CHAPITRE 2. FONCTIONNALITÉS DE LINUX
Unix sont dits mono-tête, ce qui signifie qu’ils n’ont qu’un seul point de départ :
le répertoire racine (voir figure 2.10, page 44). Les systèmes Microsoft sont multi-
têtes, puisqu’ils ont un point de départ par lecteur et par partition (voir figure 2.9,
page 43).
Le fait de n’avoir qu’un seul point de départ est beaucoup plus simple, et
permet, encore une fois, d’écrire les programmes plus simplement et donc avec
moins de bogues potentiels. Les habitués du DOS ne manquerons pas de se poser
la question :
“Mais alors, comment spécifie-t-on le lecteur que l’on veut utiliser ?”
Cette question a deux réponses :
– Premièrement, on n’accède pas aux lecteurs, mais aux systèmes de fichiers.
Les utilisateurs du DOS devront donc réapprendre qu’un lecteur représente
un périphérique physique, et qu’il est possible qu’il contienne plusieurs
systèmes de fichiers. Il est, par exemple, très courant qu’un disque dur de
grande capacité soit divisé en plusieurs partitions indépendantes, considérés
comme des entités distinctes (même par windows). Ils devront également se
rendre compte qu’un système de fichiers n’est pas nécessairement stocké sur
un lecteur : il peut être stocké dans un fichier10 , accessible par le réseau11 ,
ou encore généré par un composant du système12 .
– Cependant, le problème de l’accès aux systèmes de fichiers se pose malgré
tout. Pour accéder à un système de fichiers, il faut réaliser une opération que
l’on nomme le “montage”. Cette opération associe le répertoire racine de ce
système de fichiers à l’un des répertoires de l’arborescence existante. Ce ré-
pertoire est couramment appelé “point de montage”. Par exemple, il est cou-
rant de monter le lecteur de disquette dans le répertoire /mnt/floppy/.
Ainsi, si la disquette contient le fichier linux.tex, ce fichier sera acces-
sible grâce au chemin suivant :
/mnt/floppy/ventes1999.sdw
Cette solution permet d’accéder à tous les systèmes de fichiers de la même
manière, à partir d’un seul répertoire racine, que ces systèmes de fichiers
soient EXT2, FAT, ISO9660, NTFS ou Amiga...
En pratique, c’est nettement plus souple. Cela permet, par exemple, de dé-
placer la localisation physique de fichiers sans modifier leur emplacement
logique dans l’arborescence (pour stocker sur un volume réseau des infor-
mations qui étaient stockées sur un disque local, par exemple). Ce type
de modification est totalement transparente pour l’utilisateur final, qui ne
se rend généralement pas compte de l’emplacement physique des données
10
C’est le cas par exemple pour les images disques de CD-ROM.
11
C’est le cas des systèmes de fichiers réseau, “Network File System” en anglais.
12
C’est le cas des systèmes de fichiers virtuels du noyau (voir3.2.15, page 55).
2.2. PRINCIPE DU SYSTÈME DE FICHIERS 43
Poste de travail
|_ A: (disquette)
|_ C: (disque dur 1, partition 1)
| |_ Mes Documents
| |_ Program Files
| |_ Windows
|_ D: (disque dur 1, partition 2)
| |_ Programmes Perso
| |_ Documents Perso
|_ E: (cdrom 1)
On prendra garde à toujours démonter les systèmes de fichiers pour les lec-
teurs amovibles. Linux utilise en effet des zones de la mémoire que l’on appelle
les tampons (“buffers” en anglais), pour y stocker des données des systèmes de
fichiers montés, et il n’écrit ces données que lorsque c’est nécessaire. Ce mé-
canisme permet d’accélérer les lectures et les écritures sur les disques, mais a
l’inconvénient de nécessiter une requête de vidange des tampons (opération que
l’on appelle “sync”) avant de retirer le lecteur ou avant d’éteindre le système.
Si on ne le fait pas, des données seront certainement perdues. Le système effec-
tue le sync lorsqu’il s’arrête (par l’une des commandes halt, shutdown ou
reboot), mais il ne le fait pas si on coupe le courant brutalement. C’est pour
cela qu’il faut toujours arrêter le système proprement. De manière similaire, Li-
nux empêche l’éjection des CD-ROM tant qu’ils sont montés. En revanche, il ne
peut rien faire pour les lecteurs de disquettes, c’est à l’utilisateur de prendre garde
à les démonter avant de retirer la disquette.
Deux derniers points auxquels les utilisateurs de DOS et Windows devront
faire attention :
– Les fichiers ne sont pas identifiés par leur extension. Un nom de fichier peut
contenir un ou plusieurs points, et une extension peut être arbitrairement
longue. En particulier, un nom de fichier peut commencer par un point.
Dans ce cas, ce fichier sera considéré comme caché par les programmes, et
on ne les verra que si on le demande explicitement,
– Les systèmes de fichiers Unix font la distinction entre les majuscules et les
minuscules. Il faut donc prendre garde à la manière dont on écrit les noms
44 CHAPITRE 2. FONCTIONNALITÉS DE LINUX
13
Tous les comptes utilisateur ne sont pas forcement protégés par un mot de passe, bien que cela
ne soit pas recommandé.
Chapitre 3
Les informations données ici peuvent ne pas être correctes pour votre distribu-
tion. En effet, certaines distributions utilisent une structure légèrement différente.
Les informations données ici sont conformes à la norme de hiérarchie de systèmes
de fichiers version 2.0 (“FHS” en anglais). Vous pouvez consulter ce document
pour une description exhaustive du système de fichiers de Linux.
3.1.1 Principe
47
48 CHAPITRE 3. ARBORESCENCE D’UN SYSTÈME LINUX
TAB . 3.1 – Présentation rapide des principaux répertoires d’un système de fichier
Linux
3.2. PRÉSENTATION DES PRINCIPAUX RÉPERTOIRES 49
3.2.2 /bin/
Répertoire contenant les commandes générales nécessaires à l’utilisation cou-
rante du système. Tous les utilisateurs peuvent utiliser les commandes de ce ré-
pertoire.
Exemple de commandes de /bin/ :
– bash : l’interpréteur de commandes (shell),
– ls : permet de lister le contenu d’un répertoire,
– cd : permet de changer de répertoire courant,
– cat, more : permet d’afficher le contenu d’un fichier,
– vi : l’éditeur de texte...
3.2.3 /sbin/
Répertoire contenant les commandes nécessaires à l’administration du sys-
tème. Seuls les administrateurs ont accès à ces programmes, les autres utilisateurs
n’y ont pas accès.
Exemple de commandes de /sbin/ :
– reboot : permet de redémarrer le système,
– halt : permet d’arrêter le système,
– fdisk : permet de modifier le partitionnement des disques,
– fsck : permet de vérifier l’état des systèmes de fichiers,
– mkfs : création de systèmes de fichier...
3.2.4 /home/
Le répertoire /home/ contient les répertoires des utilisateurs disposant d’un
compte sur la machine. Chaque utilisateur possède généralement son propre réper-
toire. Le répertoire personnel de chaque utilisateur contient ses fichiers personnels
et les fichiers de configurations qui lui sont propres.
50 CHAPITRE 3. ARBORESCENCE D’UN SYSTÈME LINUX
3.2.5 /root/
Répertoire contenant le répertoire personnel de l’administrateur. Même s’il
serait tout à fait envisageable de placer ce répertoire sous /home/, il est recom-
mandé de le placer au plus près de la racine pour éviter qu’un problème sur le
système de fichiers des utilisateurs (utilisation de NFS et lien réseau cassé, par
exemple) ne l’empêche de travailler.
Ce répertoire est généralement uniquement accessible à l’administrateur sys-
tème.
3.2.6 /etc/
Ce répertoire contient les fichiers de configuration du système. Exemples de
fichiers situés dans /etc/ :
– /etc/passwd contient la liste des utilisateurs du système,
– /etc/group contient la liste des groupes du système,
– /etc/fstab contient la définition des montages de systèmes de fichiers,
– /etc/lilo.conf contient la définition des paramètres d’amorçage (uti-
lisé pour configuré un double boot, par exemple),
– /etc/exports description des répertoires exportés par NFS,
– /etc/hosts traduction d’adresses IP en noms d’hôte,
3.2. PRÉSENTATION DES PRINCIPAUX RÉPERTOIRES 51
3.2.7 /var/
Répertoire contenant toutes les données variables du système, c’est à dire les
données pouvant être modifiées lors de l’utilisation courante du système ou de ses
applications.
– /var/opt/ contient les données variables des applications.
– /var/log/ contient les fichiers de trace de fonctionnement du système 1 .
– /var/spool/ contient les données en attente de traitement. Les travaux
d’impression en cours, les mails et les fax en attente d’émission, les travaux
programmés en attente d’exécution sont tous stockés dans ce répertoire. Le
répertoire spool contient des sous-répertoires de gestion des files d’impres-
sion (lpd), de courriers (mail), de forums (news), etc. Ces sous-répertoires
peuvent contenir, momentanément, des fichiers de taille importante.
– /var/locks/ contient les verrous sur les ressources système. Certaines
ressources ne peuvent être utilisées que par une seule application (par exemple,
un modem). Les applications qui utilisent de telles ressources le signalent
en créant un fichier de verrou dans ce répertoire.
– /var/cache/ contient les données de résultats intermédiaires des appli-
cations. Les applications qui doivent stocker des résultats intermédiaires
doivent les placer dans ce répertoire.
– /var/catman contient les fichiers d’aide mis en forme. Ce répertoire
contient les pages de manuel mises en forme pour un accès plus rapide lors
1
Une grande partie du travail d’administration consiste à suivre les enregistrements afin de
détecter les mauvais fonctionnements. Le programme logrotate permet de conserver un historique
des fichiers. Il existe des outils de gestion des fichiers de trace pour permettre, entre autres, la
détection des intrusions sur le système.
52 CHAPITRE 3. ARBORESCENCE D’UN SYSTÈME LINUX
3.2.8 /usr/
Répertoire contenant les fichiers du système partageables en réseau et en lec-
ture seule.
Le répertoire /usr contient de nombreux sous-répertoires. On retrouve presque
la même organisation que sous la racine, mais le contenu est destiné aux utilisa-
teurs plus qu’au système lui-même.
La structure de /usr est la suivante :
– /usr/X11R6/ contient la hiérarchie des fichiers XWindow 2 . Ce réper-
toire contient des sous-répertoires bin/, lib/ et include/, où se trouvent
les exécutables de XWindow, les bibliothèques et les fichiers d’en-têtes pour
créer des programmes pour XWindow en C et C++. On retrouve, dans ce
répertoire, une hiérarchie de fichiers ressemblant à celle de la racine, mais
dédiée à l’environnement XWindow.
– /usr/bin/ contient les commandes utilisateurs supplémentaires 3 du sys-
tème,
– /usr/doc/ contient les documentations en ligne,
– /usr/etc/ contient la configuration des commandes utilisateurs,
– /usr/games/ contient les (éventuels) jeux,
– /usr/include/ contient les fichiers d’en-têtes du système pour le com-
pilateur C/C++. Les fichiers de ce répertoire sont utilisés pour réaliser des
programmes dans les langages de programmation C et C++.
– /usr/lib/ contient les bibliothèques partagées de tous les programmes
de /usr/bin/ et /usr/sbin/ et les bibliothèques statiques pour la
création de programmes.
– /usr/local/ contient les outils installés en dehors du contexte de la dis-
tribution. “local” ne signifie pas ici que les programmes qui se trouvent dans
ce répertoire ne peuvent pas être partagés sur le réseau, mais plutôt que ce
sont des extensions du système qu’on ne trouve donc que localement sur un
site donné. Ce sont donc les extensions qui ne font pas partie de la distribu-
tion de Linux utilisée, et qui doivent être conservées lors des mises à jour
ultérieures de cette distribution. Ce répertoire contient les sous-répertoires
bin, lib, include et src, qui ont la même signification que les répertoires du
2
Protocole X, version 11 révision 6.
3
C’est à dire les commandes autres que les commandes de base.
3.2. PRÉSENTATION DES PRINCIPAUX RÉPERTOIRES 53
3.2.9 /opt/
Répertoire contenant les applications complémentaires (add-on) n’appartenant
pas à la distribution installée.
3.2.10 /dev/
Répertoire contenant tous les fichiers spéciaux permettant d’accéder aux pé-
riphériques. Sous Linux, la plupart des périphériques sont accessibles au travers
de fichiers spéciaux, grâce auxquels l’envoi et la réception des données vers les
périphériques peuvent être réalisés de manière uniforme. Il existe un tel fichier
pour chaque périphérique.
Ce répertoire peut être géré de deux façons :
– dans un système de fichier classique. Dans ce cas, il est nécessaire de créer
un fichier spécial pour chaque périphérique installé. Cette solution présente
l’avantage de permettre un contrôle précis des droits d’accès aux périphé-
riques.
– une autre possibilité est d’utiliser un système de fichiers virtuel de type
devfs, géré directement par le noyau. Le répertoire /dev/ ne contient dans
ce cas que les fichiers spéciaux des périphériques pour lesquels le noyau
dispose d’un gestionnaire intégré ou chargé dynamiquement. Cette dernière
solution présente l’avantage de gérer correctement les périphériques bran-
ché à chaud sur le système (sur le bus USB, par exemple).
4
Elles se trouvent dans le répertoire /usr/src/linux/
54 CHAPITRE 3. ARBORESCENCE D’UN SYSTÈME LINUX
3.2.11 /mnt/
Répertoire réservé au montage des systèmes de fichiers non-permanents (CD-
ROM, disquettes, etc.). Ce répertoire peut contenir plusieurs sous-répertoires pour
chaque périphérique amovible, afin de permettre d’en monter plusieurs simulta-
nément.
Notez qu’il est assez courant de disposer de liens symboliques dans la racine
référençant les principaux systèmes de fichiers, afin d’en simplifier l’accès. Par
exemple, il est courant5 , bien que peu élégant, d’avoir un répertoire /floppy/
référençant le lecteur de disquette et un répertoire /cdrom/ référençant le lecteur
de CD-ROM.
3.2.12 /boot/
Ce répertoire contient le noyau6 de Linux et ses informations de symboles7 .
Ce répertoire est souvent le point de montage d’un système de fichiers de très
petite taille, dédié au noyau. Dans ce cas, il est recommandé de monter ce dernier
en lecture seule. On notera que sur certains systèmes, le noyau reste placé dans
le répertoire racine. Cette technique n’est pas recommandée, car on ne peut pas
monter en lecture seule la partition racine en utilisation normale du système.
5
Ce principe est appliqué sur la distribution Debian, par exemple.
6
Il s’agit généralement d’un fichier dénommé vmlinuz et contenant le Noyau comprimé de
Linux. Les noyaux comprimés se décompriment automatiquement lors de l’amorçage du système.
Ils ont l’avantage de pouvoir être stocké sur une disquette, une carte flash de faible capacité ou
derrière un lien réseau bas débit.
7
Dans le fichier /boot/System.map
3.2. PRÉSENTATION DES PRINCIPAUX RÉPERTOIRES 55
3.2.13 /tmp/
Ce répertoire permet de stocker des données temporaires. Il dispose générale-
ment de droits d’accès particuliers permettant à chaque utilisateur d’y créer des
fichiers sans pouvoir consulter les fichiers des autres utilisateurs.
3.2.14 /lib/
Répertoire contenant les bibliothèques partagées (“DLL” en anglais, pour “Dy-
namic Link Library”) utilisées par les programmes du système.
/lib/modules contient les modules additionnels du noyau. Ces modules
sont des composants logiciels du noyau, mais ne sont pas chargés immédiatement
pendant l’amorçage. Ils peuvent en revanche être chargés et déchargés dynami-
quement, lorsque le système est en fonctionnement. Il est fortement recommandé
que ce répertoire soit placé dans le système de fichiers racine.
3.2.15 /proc/
Ce répertoire représente le point de montage du pseudo système de fichiers du
noyau. Ce dernier contient des fichiers permettant d’accéder aux informations sur
le matériel, la configuration du noyau et sur les processus en cours d’exécution.
On retrouvera, par exemple, un répertoire par processus actif. Chacun porte le
numéro du processus décrit et contient les fichiers suivants :
– cmdline contient la ligne de commande qui a créé le processus,
– status contient des informations sur l’état du processus (en attente, en
exécution, propriétaire... ),
– exe est un lien vers le fichier exécutable utilisé par le processus...
Dans le répertoire /proc/, on retrouve des fichiers contenants des informa-
tions générales sur le système. Par exemple :
– uptime contient le temps de fonctionnement du système,
– stat contient diverses statistiques sur l’utilisation des ressources du sys-
tème (CPU, mémoire... ),
– meminfo contient un récapitulatif de l’utilisation de la mémoire.
– cpuinfo contient une description des CPU du système...
stepping : 2
cpu MHz : 1394.455
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 mmx fxsr sse syscall
mmxext 3dnowext 3dnow
bogomips : 2778.72
Où :
– Type de système de fichier, décrit le format utilisé par le sys-
tème de fichier à monter. Voir la liste des principaux types (voir tableau
3.2, page 57). Si l’option “-t” n’est mentionnée, ou si le type “auto” est
précisé, la recherche de type est effectuée sur le superblock (dans l’ordre :
minix, ext, ext2, xia, iso9660 sont supportés). Si cette recherche échoue,
et si /proc/filesystems existe, alors tous les types de systèmes de
fichiers listés seront essayés successivement.
Type Signification
ext2 Système de fichier standard de Linux
ext3 Système de fichier journalisé de Linux
fat Système de fichier FAT (DOS)
vfat Système de fichier FAT32 (depuis Windows
95r2)
iso9660 Système de fichier des CD-ROM
ntfs Système de fichier de Windows NT (lecture
seule)
nfs Système de fichier réseau (Unix)
smb Système de fichier réseau (Windows)
TAB . 3.2 – Principaux types de systèmes de fichiers supportés par la commande
mount
Utilisation de Linux
4.1.1 Le manuel
Le manuel en ligne est accessible par la commande man. Il est organisé en
différentes sections :
La syntaxe de la commande man est :
Par défaut, les sections sont parcourues dans l’ordre des numéros. Il est pos-
sible de préciser le numéro de section lors de l’ouverture du manuel :
man kill
man 2 kill
61
62 CHAPITRE 4. UTILISATION DE LINUX
Section Intitulé
1 les commandes utilisateur
2 les appels système
3 les bibliothèques de programmation
4 les fichiers spéciaux
5 les formats de fichiers
6 les jeux
7 divers
8 les commandes d’administration
9 le noyau
MANPATH=/usr/man:/usr/local/man
Il existe une base de mots clés pour la recherche dans les pages de manuel.
Cette base est construite par la commande /usr/sbin/makewhatis. Les
commandes apropos et whatis permettent d’effectuer des recherches dans
cette base de données. [ATR]
4.1.2 TexInfo
C’est un projet de la FSF (Free Software Foundation) pour remplacer les pages
de manuel classiques. La base de données d’informations est répartie et accessible
par la commande info. Cette commande permet de visualiser en mode interactif
des documents hypertexte. Le système est auto renseigné, il suffit de lancer info
et de naviguer dans cet environnement pour avoir l’aide en ligne. [ATR]
sont disponibles dans plusieurs formats (texte, PostScript, HTML) et sont ins-
tallés dans le répertoire /usr/doc/HOWTO. Ce sont les premiers documents à
consulter lorsqu’on recherche une information pouvant s’exprimer par Comment
faire pour ? ”.
Il existe des traductions françaises de ces documents à l’adresse suivante :
http://www.freenix.fr/linux/HOWTO/ [ATR]
Nom URL
Linux Center http ://linux-center.org/fr/
Unix Guru Universe http ://www.ugu.com/
LDP http ://sunsite.unc.edu/mdw/linux.html/
Le guide du ROOTard http ://www.freenix.fr/linux/Guide
TAB . 4.2 – Sites Web de documentation sur Linux
D’autres sites proposent des nouvelles concernant Linux et les logiciels libres
en général. Ce sont de bonnes sources pour se tenir informé des nouvelles versions
de logiciels (voir tableau 4.3, page 63).
Nom URL
Freshmeat http ://www.freshmeat.net
Da Linux French Page http ://linuxfr.org/
TAB . 4.3 – Sites Web de nouvelles sur Linux
64 CHAPITRE 4. UTILISATION DE LINUX
Les forums
Un grand nombre de forums existe traitant en totalité ou partie de Linux. Les
plus importants et les plus fréquentés sont :
– fr.comp.os.linux.configuration
– fr.comp.os.linux.annonce
– fr.comp.os.linux.moderated
– comp.os.linux.answers
– comp.os.linux.security
– comp.os.linux.setup
Par défaut, l’entrée standard est le clavier et les sorties sont dirigées sur l’écran.
Il est possible de rediriger l’entrée ou la sortie vers un fichier ou vers une autre
commande. Ceci permet d’enchaîner des traitements sur un flot de données.
4.2. LES COMMANDES 65
D’une façon générale, on retrouve donc trois flux pour toutes les commandes :
– La sortie standard, sur laquelle la commande va envoyer les réponses obte-
nues. La commande ls, par exemple, va envoyer sur la sortie standard la
liste des fichiers du répertoire courant,
– La sortie erreur, sur laquelle la commande va envoyer ses messages d’erreur.
La commande ls, par exemple, va envoyer sur la sortie erreur ses messages
indiquant les erreurs rencontrées (un fichier qui n’existe pas, un problème
de droit d’accès, une erreur de syntaxe dans les options... ),
– L’entrée standard, dans laquelle la commande va lire les réponses à ses ques-
tions. Quand la commande rm, par exemple, demande de confirmer la sup-
pression de fichier, elle lit la réponses (“y” ou “n”) sur l’entrée standard.
Par défaut, les sorties standard et erreur sont redirigées sur l’écran et l’entrée
standard est prise sur le clavier (voir figure 4.1, page 65).
Sortie standard
Clavier
Sortie erreur
Exemple :
Ainsi, ls > toto 2> erreurs2 permet d’obtenir la liste des fichiers du
répertoire courant dans le fichier “toto” et de stoker les éventuelles erreurs géné-
rées par la commandes dans le fichier “erreurs”.
Pour rediriger l’entrée standard d’une commande depuis un fichier, on utilise
< après la commande. Ainsi, rm fichier1 < fichier2 permet d’utiliser
“fichier2” pour l’entrée standard de la commande rm fichier1.
Saisie Signification
commande La commande est exécutée normalement, le
symbole d’invite sera affiché lorsqu’elle se ter-
minera.
commande & La commande est exécutée en arrière-plan, ce
qui signifie qu’elle n’a en principe pas accès au
terminal.
Le shell reprend donc la main immédiatement,
et affiche son symbole d’invite alors que la com-
mande continue à s’exécuter en tâche de fond.
Bash affiche une ligne du type [1] 2496
indiquant le numéro du job à l’arrière-plan suivi
du PID c’est-à-dire de l’identifiant de proces-
sus. Lorsque la commande se termine, Bash af-
fichera une ligne :
[1]+ Done commande
juste avant de proposer un nouveau symbole
d’invite.
commande > fichier La commande est exécutée, mais sa sortie stan-
dard est dirigée vers le fichier indiqué. Seule la
sortie d’erreur s’affiche à l’écran.
commande >> fichier La sortie standard est ajoutée en fin de fichier
sans en écraser le contenu.
commande < fichier La commande est exécutée, mais ses informa-
tions d’entrée seront lues depuis le fichier qui
est indiqué plutôt que depuis le terminal.
commande1 | commande2 Les deux commandes sont exécutées simulta-
nément, l’entrée standard de la seconde étant
connectée par un tube (pipe) à la sortie standard
de la première.
TAB . 4.4 – Syntaxe de redirection de sortie standard vers une autre commande
4.3. ENTRER ET SORTIR DE LINUX 69
/home/<login de l’utilisateur>
Sur tout système Linux, il existe un utilisateur bien particulier qui bénéficie
de tous les droits sur le système : l’administrateur du système, communément
appelé utilisateur “root”. Cet utilisateur se connecte comme tous les autres, mais
nécessite de respecter certaines précautions évidentes :
– l’accès à ce compte devra être soigneusement contrôlé puisqu’un utilisateur
connecté sur le compte root dispose de tous les droits sur le système,
– les manipulations réalisées sous le compte root doivent soigneusement ré-
fléchies, car elles sont faites “sans filet” et toute erreur de manipulation peut
avoir de graves conséquences sur le système.
Vous remarquerez que le nom du répertoire courant (“remi”, ici) appairait dans
l’invite de commande (aussi appelé le “prompt”). Ce comportement est paramé-
trable, il serait envisageable de faire apparaître le chemin complet dans l’invite de
commande5 .
4
Et disposant d’une alimentation électrique stable, c’est à dire équipée d’un onduleur.
5
Ce ne serait pas forcement judicieux, vu la longueur moyenne des chemins.
72 CHAPITRE 4. UTILISATION DE LINUX
email:
photo1.jpg photo3.jpg photo5.jpg photo7.jpg photo9.jpg
photo2.jpg photo4.jpg photo6.jpg photo8.jpg
Exemple d’utilisation des symboles de substitution :
6
Certains interpréteurs de commandes, comme le bash, offre une fonctionnalité d’aide à la
saisie des noms de commande et de fichier. Ainsi, après avoir tapé les premières lettres d’une
commande ou d’un nom de fichier, le système vous proposera la suite si vous appuyez sur la
touche TAB.
4.4. PARCOURS DU SYSTÈME DE FICHIER 73
Symbole Signification
∗ Ensemble de caractères quelconques
? Un caractère quelconque
{a, b, toto} Un caractère ou un mot valant a, b ou toto
[abc] Un caractère valant a, b ou c
[a − c] Un caractère compris entre a et c
TAB . 4.6 – Symboles de substitution
[remi@pc1 essai]$ ls
bilan1999 bilan2001 prévision2000 prévision2002
bilan2000 prévision1999 prévision2001
[remi@pc1 essai]$ ls bilan*
bilan1999 bilan2000 bilan2001
[remi@pc1 essai]$ ls *2001
bilan2001 prévision2001
[remi@pc1 essai]$ ls bilan{1999,2001}
bilan1999 bilan2001
[remi@pc1 essai]$ ls prévision200[12]
prévision2001 prévision2002
[remi@pc1 essai]$ ls bilan200?
bilan2000 bilan2001
[remi@pc1 essai]$ ls prévision200[0-2]
prévision2000 prévision2001 prévision2002
Il est possible d’obtenir plus de renseignement de la commande ls en l’utili-
sant avec l’option -l. Cette option permet de faire apparaître :
– les droits d’accès au fichier,
– les nombre de liens existants sur ce fichier,
– le nom du propriétaire de ce fichier,
– le groupe de propriétaire du fichier,
– la taille du fichier,
– la date de dernière modification.
[remi@pc1 remi]$ ls -l
total 2196
drwxrwxr-x 2 remi remi 4096 fév 24 23:42 aide/
...
drwx------ 2 remi remi 4096 fév 20 22:55 tmp/
[remi@pc1 remi]$ ls -a
4.4. PARCOURS DU SYSTÈME DE FICHIER 75
./ .gimp-1.2/
../ .gnome/
.AbiSuite/ .gnome-desktop/
aide/ .gnome_private/
.ArmageTronrc .gnucash/
.aumixrc .gnupg/
.bash_history GNUstep/
.bash_logout .gphoto/
.bash_profile .grip
.bash_profile~ .gtkrc
.bashrc .gtoasterrc
C/ .ICEauthority
Symbole Signification
.. Répertoire précédant
. Répertoire courant
/ Racine du système de fichier
~ Répertoire de connexion de l’utilisateur courant
~util Répertoire de connexion de l’utilisateur "util"
TAB . 4.7 – Symboles de définition des chemins d’accès
Des chemins absolus , c’est à dire définis depuis la racine du système de fichier.
Exemple :
cd /home/remi
Des chemins relatifs au répertoire courant. C’est à dire définissant le déplace-
ment nécessaire pour atteindre le répertoire voulu depuis le répertoire cou-
rant. Exemple :
cd ../../etc permet d’atteindre le répertoire /etc depuis le répertoire
/home/remi
[remi@pc1 essai]$ ls
bilan1999 bilan2001 prévision2000 prévision2002
bilan2000 prévision1999 prévision2001
[remi@pc1 essai]$ mkdir "Mon répertoire"
[remi@pc1 essai]$ ls
bilan1999 bilan2001 prévision1999 prévision2001
bilan2000 Mon répertoire/ prévision2000 prévision2002
[remi@pc1 essai]$ cd "Mon répertoire"
[remi@pc1 Mon répertoire]$ ls
[remi@pc1 Mon répertoire]$ pwd
/home/remi/essai/Mon répertoire
4.5. L’ÉDITEUR DE TEXTE VI 77
l’interface utilisateur de vi (voir figure 4.2, page 79). En fait, l’interface utilisateur
de vi se résume à la dernière ligne, en bas de l’écran. Austère non ?
Position courante
I : Ajout de texte en début de ligne
Voici les commandes nécessaires pour ajouter une ligne en fin de fichier :
8
Certaines versions de vi ne permettent pas les déplacements en mode “édition”
80 CHAPITRE 4. UTILISATION DE LINUX
Commande Explication
a Ajoute du texte après la position courante
A Ajoute du texte à la fin de la ligne courante
i Ajoute du texte avant la position courante
I Ajoute du texte au début de la ligne courante
o Ajoute une nouvelle ligne après la ligne courante
O Ajoute une nouvelle ligne avant la ligne courante
x Supprime le caractère courant
r Remplace le caractère courant
R Remplace les caractères suivants (mode "refrappe")
dd Efface la ligne courante
dw Efface le mot courant
d$ Efface la fin de la ligne courante
cw Change le mot courant
c$ Change la fin de la ligne courante
cˆ Change le début de la ligne courante (de la position courante
au début de la ligne)
J Joint la ligne courante et la ligne suivante
<numéro>G Atteint un numéro de ligne
G Atteint la fin du fichier
:q Quitte l’éditeur (provoque une erreur si le fichier a été mo-
difié depuis le dernier enregistrement).
:q ! Quitte l’éditeur en ignorant les modifications apportées au
fichier
:w Enregistre le fichier courant
:wq ou :x Quitte l’éditeur en enregistrant les modifications du docu-
ment
/<texte> Recherche le texte à partir de la position courante en des-
cendant dans le fichier
?<texte> Recherche le texte à partir de la position courante en remon-
tant dans le fichier
n Atteint la prochaine occurrence du texte recherché (dans le
sens défini pour la recherche)
u Annule le résultat de la dernière commande
. Recommence la dernière commande
m<car> Marque la ligne courante. La marque porte le nom du ca-
ractère suivant “m”
’<car> Retourne à une ligne marquée.
d’édition
Session
Saisie de texte
Touche "Echap"
Motif Signification
^ Début de la ligne
$ Fin de la ligne
. Caractère quelconque
[abc] Un caractère parmi a, b et c
[a-z] Un caractère entre "a" et "z"
* Répétition quelconque du motif précédant (de 0
à n fois)
+ Répétition du motif précédent (de 1 à n fois)
TAB . 4.10 – Motifs de recherche utilisables avec vi
Pour effectuer une recherche, il est possible d’utiliser des motifs de recherche
(voir tableau 4.10, page 81). Ainsi, pour rechercher toutes les lignes contenant les
82 CHAPITRE 4. UTILISATION DE LINUX
/toto.*tutu
De même, pour rechercher toutes les lignes commençant par “toto”, nous uti-
lisons la commande suivante :
/^toto
De même, pour rechercher les lignes commençant par “toto” et finissant par
un numéro, nous utiliserons la commande suivante :
/^toto.*[0-9]$
Commande Action
/<texte> Permet de recherche le texte <texte> dans le fi-
chier affiché (/<texte>/i permet de ne pas tenir
compte de la différence entre les majuscules et
les minuscules).
’n’ et ’N’ Permettent respectivement de rechercher la pro-
chaine et la précédente occurrence du texte re-
cherché avec la commande précédente.
“<n>G” Permet d’atteindre la nême ligne du fichier. Uti-
lisé seul, G permet d’atteindre la fin du fichier.
que deux fichiers indiqués, il copie le premier sur le second. Une erreur se produit
si le dernier argument n’est pas un répertoire, et si plus de deux fichiers sont
indiqués.
Voici quelques exemples d’utilisation de la commande cp :
– cp fichier1 fichier2 : Duplication de “fichier1” vers “fichier2”,
– cp fichier1 fichier2 mon_répertoire/ : Copies des fichiers
“fichier1” et “fichier2” dans le répertoire “mon_repertoire”,
– cp fichier[12] mon_répertoire/ : Idem, mais en utilisant un
motif de substitution.
Il est possible d’utiliser l’option -R pour effectuer une copie récursive de fi-
chiers (par exemple, pour recopier tous les fichiers d’un répertoire, avec les sous
répertoires qu’il contient.
L’option -i permet d’interroger l’utilisateur avant d’écraser des fichiers exis-
tants.
n’y a pas de différence entre le lien et le fichier pointé et il utilisera le lien comme
s’il s’agissait du fichier original.
On distingue deux types de liens :
– Les liens physiques,
– Les liens symboliques.
Fichier Fichier
Disque
Disque
La commande find
Il vous sera sans doute nécessaire de rechercher des fichiers selon un critère
donné dans toute une arborescence de répertoires. Pour cela, vous utiliserez la
commande find. Cette commande est très puissante, mais dispose d’une syn-
taxe assez compliquée, du fait des nombreuses possibilités qu’elle offre. Pour re-
chercher un fichier en se basant sur son nom, la syntaxe de la commande est la
suivante :
find répertoire -name nom
où répertoire est le répertoire à partir duquel la recherche doit commencer
et nom est le nom du fichier à rechercher. Ce nom peut contenir des caractères
génériques du shell (des espaces, par exemple), mais dans ce cas il doit être placé
entre guillemets afin d’éviter que ce dernier ne les interprète.
La commande locate
La commande locate9 fournit une façon sécurisée d’indexer et de recher-
cher rapidement des fichiers sur votre système. Elle exploite une base de données
des fichiers du système sur laquelle elle effectue ses recherches, ce qui lui permet
d’être beaucoup plus rapide que la commande find, qui recherche dans l’arbo-
rescence des fichier même. Ainsi, pour rechercher le fichier “toto” dans l’arbores-
cence des fichiers du système, nous utiliserons la commande suivante :
locate toto
La constitution de la base de données des fichiers du système est réalisée à
l’aide de la commande slocate -c -u (-c pour lire le fichier de paramé-
trage /etc/updatedb.conf et -u pour créer un base de données). Cette com-
mande doit être lancée régulièrement pour maintenir une base de données à jour.
Recherche
La recherche d’une chaîne de caractères dans un ou plusieurs fichiers peut se
faire à l’aide de la commande rep. Cette commande prend en premier paramètre
le texte à rechercher, puis la liste des fichiers dans lequel ce texte doit être trouvé :
Le texte peut être placé entre guillemets si nécessaire (en particulier, s’il contient
des espaces ou des caractères interprétés par le shell, comme * et ?. Utilisé sans
préciser de nom de fichier, grep recherche le texte sur l’entrée standard (par dé-
faut, le clavier).
grep accepte un grand nombre d’options, qui ne seront pas décrites ici. Par
exemple, l’option -i permet de ne pas distinguer les majuscules des minuscules
lors de la recherche. Consulter les pages de manuel pour plus d’information à ce
sujet.
Remplacement de texte
La commande jobs
La commande jobs permet d’afficher la liste des travaux pris en charge par
l’interpréteur de commande sur lequel elle est lancée.
Exemple :
La commande ps
La commande top
12
0 et 60 étant confondus.
13
0 et 24 étant confondus.
14
Les deux pouvant être combinés (exemple : 1,4,6-10,12).
4.8. L’ENVIRONNEMENT UTILISATEUR 95
Lorsque l’on utilise le shell bash, ce qui correspond à la plupart des cas,
l’environnement utilisateur est défini dans les deux fichiers suivants :
# .bash_profile
PATH=$PATH:$HOME/bin
CVSROOT=/home/sources
export PATH
unset USERNAME
# .bashrc
remi:*:500:500:Rémi LEBLOND:/home/remi:/bin/bash
nom_du_groupe:mot_de_passe:GID:liste_utilisateurs
Par exemple :
actrices:*:400:sandra,meg,michelle
4.9. DÉFINITION DES DROITS D’ACCÈS 99
Une ligne de ce fichier comporte les champs suivants, séparés par des carac-
tères ‘ :’ :
– Le nom du groupe,
– Le mot de passe encrypté du groupe. Si ce champ est vide (presque tou-
jours), aucun mot de passe n’est nécessaire.
– numéro du groupe (gid),
– liste des utilisateurs appartenant au groupe séparés par des virgules.
Lors de la connexion, un utilisateur est associé à tous les groupes dans lesquels
il est inscrit. Il peut le vérifier à l’aide de la commande id, ou groups.
[remi@pc1 remi]$ id
uid=501(remi) gid=501(remi) groupes=501(remi),100(users),
101(cvs),200(compta)
[remi@pc1 remi]$ groups
remi users cvs compta
Nous voyons ici que le groupe principal de l’utilisateur “remi” est le groupe
“remi” et qu’il fait également partie des groupes “users”, “cvs” et “compta”.
La sécurité du système est transitive, cela signifie que tout programme lancé
par un utilisateur s’exécute en son nom et reçoit donc les droits de cet utilisateur.
Le processus correspondant se voit donc attribuer les mêmes restrictions que l’uti-
lisateur qui l’a lancé. Il dispose également des droits du groupe auquel le fichier
du programme appartient. Il existe toutefois quelques exceptions à cette règle,
pour les programmes dont le comportement est bien connu et qu’il est impossible
de détourner de leur fonction initiale. C’est notamment le cas de quelques com-
mandes systèmes (comme passwd, qui permet de changer de mot de passe), qui
peuvent être lancées par les utilisateurs et qui s’exécutent toutefois au nom du
4.9. DÉFINITION DES DROITS D’ACCÈS 101
système (dans le compte root). Il est donc impossible à un utilisateur de violer les
règles de sécurité du système. Pour parvenir à ce comportement, il faut utiliser des
attributs spéciaux sur les fichiers de ces programmes.
Le premier attribut spécial est le bit “setuid” (qui est l’abréviation de l’anglais
“SET User IDentifier”. Il ne peut être placé qu’au niveau des droits du propriétaire
sur le fichier. Il permet d’indiquer que le fichier est exécutable, et que lorsque le
programme qu’il contient est lancé par un utilisateur, le processus correspondant
s’exécute avec les droits du propriétaire du fichier et non pas avec ceux de l’utili-
sateur qui l’a lancé. Cependant, le système conserve tout de même le numéro de
l’utilisateur réel qui a lancé le processus, ce qui fait que le programme peut savoir
par qui il a été lancé et au nom de qui il s’exécute. Un processus dispose donc
toujours de deux numéros d’utilisateur :
– le numéro de l’utilisateur réel (“real user id” en anglais), qui est le numéro
de l’utilisateur qui a lancé le programme,
– le numéro de l’utilisateur effectif (“effective user id” en anglais), qui est le
numéro de l’utilisateur avec les droits duquel le processus fonctionne.
Le bit setuid permet donc simplement d’affecter le numéro du propriétaire du
fichier au numéro d’utilisateur effectif du processus lorsqu’il est lancé. Le fait
de conserver le numéro de l’utilisateur réel permet au programme de réaliser des
vérifications de sécurité additionnelles. Par exemple, la commande passwd, qui
permet de changer le mot de passe d’un utilisateur, a besoin des droits de l’utili-
sateur root pour enregistrer le nouveau mot de passe. Il dispose donc du bit setuid
pour que tous les utilisateurs puissent l’utiliser. Cependant, même s’il s’exécute
au nom de l’utilisateur root, il ne doit pas permettre à n’importe qui de changer le
mot de passe des autres utilisateurs : seul l’utilisateur root a le droit de faire cette
opération. Il utilise donc le numéro de l’utilisateur réel qui a lancé la commande
pour savoir si c’est bien l’utilisateur root qui l’a lancé.
Le bit setuid est l’attribut le plus couramment utilisé, essentiellement pour
certaines commandes systèmes. Il est représenté par la lettre ’s’ (comme “Setuid”),
et il remplace le droit d’exécution (’x’) des fichiers pour le propriétaire des fichiers
(rappelons que le bit setuid implique que le fichier est exécutable). Il n’a aucune
signification pour les répertoires.
Le deuxième attribut spécial est le bit “setgid” (qui est l’abréviation de l’an-
glais “SET Group IDentifier”). Ce bit fonctionne un peu de la même manière que
le bit setuid, à ceci près qu’il fixe le numéro de groupe effectif du processus lancé
à celui de son fichier exécutable. Cet attribut est également représenté par la lettre
’s’, et remplace le droit d’exécution (’x’) pour les utilisateurs du groupe auquel
appartient le fichier exécutable. Contrairement au bit setuid cependant, il a une
signification pour les répertoires. Un répertoire disposant du bit setgid permet de
faire en sorte que tous les fichiers qui sont créés dans ce répertoire se voient au-
tomatiquement attribués le même groupe que le répertoire. Ce bit est relativement
102 CHAPITRE 4. UTILISATION DE LINUX
peu utilisé.
Enfin, le troisième et dernier attribut spécial est le bit “sticky”. Cet attribut
remplace l’attribut exécutable pour les autres utilisateurs que le propriétaire du
fichier ou du répertoire et les membres du groupe auquel il appartient. Contraire-
ment aux bits setuid et setgid, il est représenté par la lettre ’t’ (pour “sTickky”). Sa
signification est assez spéciale : elle permet de faire en sorte que les programmes
restent chargés en mémoire après leur terminaison, ce qui permet de les relancer
plus rapidement. Afin de ne pas consommer la mémoire de manière permanente,
le code du programme est placé automatiquement dans le swap s’il n’est toujours
pas relancé après un certain temps, mais même dans ce cas, tous les calculs de
chargement sont déjà effectués. Le lancement des programmes marqués de ce bit
sera donc toujours accéléré. Sachez cependant ne pas abuser du bit sticky car la
mémoire (même virtuelle) est encore une ressource rare.
Pour les répertoires, sa signification est totalement différente : elle permet de
restreindre les droits des utilisateurs sur les répertoires ayant ce bit positionné.
Ce bit fait en sorte que même si un utilisateur dispose des droits d’écriture sur
le répertoire, il ne peut pas supprimer tous les fichiers de ce répertoire. Les seuls
fichiers qu’il est autorisé à supprimer sont ses propres fichiers. Bien entendu, il
est toujours possible d’ajouter des fichiers dans le répertoire en question.
En résumé, on a donc deux symboles supplémentaires, ‘s’ et ‘t’, pouvant
prendre la place du ‘x’ dans la liste des droits. Ces symboles signifient :
‘s’ : dans le cas d’un fichier exécutable, celui-ci sera exécuté avec les droits du
propriétaire ou du groupe en fonction de la place du symbole. Dans le cas
d’un répertoire, tous les fichiers créés dans ce répertoire appartiendront au
même groupe que celui du répertoire.
‘t’ (sticky bit) : pour les fichiers exécutables, demande de garder le code en mé-
moire après l’exécution. Pour les répertoires, permet de limiter la destruc-
tion des fichiers au propriétaire du répertoire, du fichier ou au super utilisa-
teur .
La commande umask permet de fixer les droits qui seront enlevés par défaut
pour la création de nouveaux fichiers. Cette commande est généralement lancée
une fois lors de l’ouverture de session, elle est intégrée à l’interpréteur de com-
mandes et sa syntaxe varie en fonction de celui que l’on utilise. Il est conseillé de
positionner le masque en numérique pour s’affranchir des différences syntaxiques.
104 CHAPITRE 4. UTILISATION DE LINUX
Chapitre 5
Installation de Linux
Dans cette partie, nous allons apprendre à installer Linux sur une machine
de type PC faisant également fonctionner le système Windows NT. La distribution
utilisée est une Mandrake 8.1. Le but est d’obtenir une configuration conforme à
celle utilisée dans les chapitres précédents.
105
106 CHAPITRE 5. INSTALLATION DE LINUX
le pire des cas, lors du premier démarrage de Linux. Les informations dont vous
aurez certainement besoin sont les suivantes :
– type de processeur, avec sa marque et éventuellement sa vitesse,
– type de carte mère, avec sa marque et impérativement son chipset,
– type de branchement de la souris (série, PS/2, interface bus propriétaire),
– nombre de ports série, ainsi que leurs paramètres (ports d’entrée/sortie,
lignes d’interruption),
– nombre de ports parallèle, ainsi que leurs paramètres (ports d’entrée/sortie,
lignes d’interruption),
– si vous disposez d’un contrôleur SCSI, marque et modèle de ce contrôleur
(modèle du chipset de la carte SCSI),
– sinon, nom du contrôleur de disque IDE (regardez sur le chipset de la carte
mère),
– types de disques durs (IDE, IDE UltraDMA 33, 66 ou 100, SCSI), ainsi que
leurs taille et leur position dans le système (contrôleurs auxquels ils sont
connectés, numéros d’unités logiques SCSI),
– type de lecteur de CD-ROM (IDE, ATAPI, SCSI, connecté sur carte son)
et le type de leur branchement s’ils sont externes (port parallèle, SCSI ou
USB),
– nom, modèle et marque de la carte graphique, type de chipset utilisé par
cette carte et taille de sa mémoire vidéo,
– nom, modèle et marque de l’écran, avec ses fréquences de balayage hori-
zontales et verticales, sa bande passante et les fréquences recommandées
par le constructeur pour les différentes résolutions,
– type de carte son (ISA, PCI, PnP) ainsi que le nom du chipset utilisé par
cette carte,
– type de carte réseau (ISA, PCI, PnP) ainsi que le nom de son chipset,
– type de modem (interne, externe) et, si le modem est interne, sa nature (mo-
dem complet ou émulation).
Vous pouvez obtenir ces informations en consultant la documentation fournie
avec votre ordinateur, les sites Web des constructeurs des différents composants,
les informations fournies par le programme de configuration du BIOS ou affi-
chées directement par le BIOS au démarrage de la machine, ou tout simplement
en ouvrant le boîtier de la machine et en regardant ce qu’il y a à l’intérieur. Vous
pouvez également récupérer les informations indiquées dans la configuration de
MS Windows si celui-ci est installé.
Il se peut que vous n’ayez pas besoin de ces informations et que l’installa-
tion se passe sans problème. Cependant, si d’aventure Linux exige que vous les
connaissiez, mieux vaut pouvoir lui répondre.
Bien que cela soit assez rare, certains composants ou périphériques addition-
nels peuvent ne pas être gérés par Linux, faute d’avoir un gestionnaire de péri-
5.1. AVANT DE COMMENCER L’INSTALLATION 107
phérique adéquat (cet état de fait est en général dû à une rétention d’information
de la part des fabricants, qui empêchent ainsi les développeurs de Linux d’écrire
les gestionnaires de périphériques dans de bonnes conditions). C’est en particu-
lier le cas de nombre de périphériques bas de gamme conçus pour ne fonctionner
qu’avec MS Windows, ou de quelques périphériques exotiques. Les Win-modems
ont une triste réputation à ce sujet (il s’agit de modems incomplets, dont une par-
tie du traitement de signal est reporté dans un logiciel spécifique à Windows),
ainsi que des imprimantes dites “GDI”, qui ne comprennent que les commandes
graphiques de Windows. Vous pourrez également avoir des problèmes avec des
cartes de numérisation vidéo analogiques ainsi que certaines cartes de décom-
pression MPEG. Certaines marques se distinguent par le fait qu’elles refusent
obstinément de développer des gestionnaires de périphérique pour leur matériel
ou, pire encore, de fournir les informations nécessaires aux développeurs de Li-
nux pour écrire ces gestionnaires sous licence libre. Mais il est toujours recom-
mandé, de manière générale, de bien se renseigner auprès des vendeurs et des
groupes de discussion avant tout achat de matériel... Vous pourrez trouver une
liste (non exhaustive) de matériel testé sous Linux dans la liste de matériel compa-
tible (http ://www.linuxdoc.org/HOWTO/Hardware-HOWTO/). La Linux Hard-
ware Data base (http ://lhd.datapower.com/) vous permettra également d’effectuer
une recherche sur n’importe quel type de matériel et sur n’importe quel modèle
très facilement. Il existe d’autres sites réalisant périodiquement des tests sur le ma-
tériel récent, comme par exemple Linux-Hardware (http ://www.linuxhardware.org).
En fait, l’idéal est tout simplement de disposer d’un autre disque dur, que l’on
pourra consacrer complètement à l’installation de Linux. Ainsi, vous pourrez ex-
périmenter tout à loisir, sans craindre de perdre vos précieuses données. De plus,
l’installation de Linux sur un disque vierge est nettement plus facile que sur un
disque où Windows est déjà installé, parce que vous n’avez pas à dégager de la
place pour son installation. Prenez toutefois garde au fait que Linux restera ca-
pable d’accéder aux données de votre premier disque dur, et que toute erreur de
manipulation peut détruire les données qui s’y trouvent. Par exemple, si vous ne
spécifiez pas le bon disque dur lors de la création des systèmes de fichiers, vous
perdrez à nouveau toutes vos données. L’achat d’un tiroir peut être la vraie solu-
tion, car vous n’aurez qu’un seul disque à un instant donné dans votre ordinateur.
Toutefois, cette technique a l’inconvénient de ne pas vous permettre d’accéder aux
données de votre disque Windows à partir de Linux.
5.1.4 Amorçage
Pour commencer votre installation, vous devez avant tout démarrer votre or-
dinateur sous Linux. La méthode la plus simple est certainement de mettre le CD
d’amorçage de votre distribution dans le lecteur de CD et de redémarrer l’ordina-
teur. Il faut que votre BIOS soit configuré pour amorcer le système sur le lecteur
de CD pour que cette solution fonctionne. Si votre BIOS ne vous permet pas de le
faire, il ne vous reste plus qu’à utiliser l’une des disquettes fournies avec votre dis-
tribution. Dans tous les cas, Linux doit se lancer, et le programme d’installation
doit démarrer. Suivez les indications fournies avec votre distribution pour cette
étape.
En général, les distributions fournissent un petit utilitaire DOS nommé RAWRITE.EXE
qui permet de créer une disquette d’amorçage à partir d’un noyau très simplement.
Il s’utilise avec la ligne de commande suivante :
rawrite image lecteur:
où image est l’image d’une des disquettes d’amorçage (que vous trouverez
sur le CD d’amorçage de votre distribution), et lecteur est le lecteur de dis-
quette utilisé (en général, A:). Vous pouvez aussi consulter la documentation de
votre distribution pour savoir comment indiquer au noyau les modules qu’il doit
charger, ou comment créer une disquette de démarrage pour un autre noyau.
Dans la majorité des distributions, les outils nécessaires à l’installation sont
placés sur un disque virtuel en mémoire après le démarrage de Linux. C’est en
particulier le cas du programme d’installation. Cela est normal, puisque Linux
n’est pas encore installé, d’une part, et que ces outils ne tiennent pas facilement sur
une disquette, d’autre part. Ces outils sont donc souvent comprimés. Vous devez
malgré tout avoir déjà accès aux périphériques de votre ordinateur, en particulier
aux disques, pour poursuivre votre installation.
5.1. AVANT DE COMMENCER L’INSTALLATION 109
Notion de partition
Une “partition” est, comme son nom l’indique, une partie d’un disque dur. Les
partitions permettent de diviser l’espace de stockage des disques durs en zones
indépendantes de taille restreinte, et dans lesquelles différents systèmes ou diffé-
rentes données peuvent être stockées de manière totalement indépendante. L’opé-
ration de “partitionnement” est l’opération de création des différentes partitions
d’un disque dur.
L’installation de plusieurs systèmes d’exploitation nécessite souvent d’allouer
une partition à chaque système, car les systèmes d’exploitation ne comprennent
généralement pas le format des systèmes de fichiers les uns des autres. Il éga-
lement est parfois nécessaire, pour un même système, de définir plusieurs parti-
tions, qui seront utilisées à des fins spécifiques. Par exemple, Linux fonctionne
nettement mieux si on lui attribue une partition de “swap” (dite aussi “partition
d’échange”) pour stocker des données peu utilisées qui se trouve en mémoire
lorsqu’il a besoin de plus de mémoire qu’il n’en est physiquement installée sur
la machine. De même, il est possible de créer plusieurs partitions pour séparer les
données utilisateurs des programmes, ce qui permet de faciliter les mécanismes
de sauvegarde d’une part, et d’assurer une plus grande sécurité des données lors
des opérations de maintenance du système d’autre part.
Sur les machines de type PC, chaque disque dur peut être découpé en quatre
partitions dites “primaires”. La position, la taille et le type de ces partitions sont
enregistrées dans le premier secteur du disque dur, que l’on appelle souvent le
“Master Boot Record” (“MBR” en abrégé). Le MBR ne contient que quatre en-
trées pour la définition des partitions, d’où la limite de quatre partitions primaires.
Le type des partitions est un code numérique qui indique le système d’exploita-
tion capable de l’utiliser et sa nature (partition de swap ou système de fichiers par
exemple). À titre d’exemple, Linux utilise principalement deux types de partition :
les partitions de swap (numéro 82) et les partitions pour les systèmes de fichiers
(type 83).
Bien entendu, la limitation à quatre partitions seulement est extrêmement contrai-
110 CHAPITRE 5. INSTALLATION DE LINUX
gnante, aussi la notion de partition étendue a-t-elle été introduite. Une “partition
étendue” est une partition primaire spéciale, dans laquelle il est possible de définir
jusqu’à 64 sous-partitions. Ces sous-partitions sont appelées des “partitions logi-
ques”. Les données ne sont jamais stockées dans la partition étendue elle-même,
mais dans ses partitions logiques (voir figure 5.1, page 110).
Partitions logiques
On ne peut définir qu’une seule partition étendue sur un disque donné, mais
cela n’empêche pas d’avoir des partitions primaires normales à côté de celle-ci.
Il est donc recommandé, lorsque l’on crée la quatrième partition, de créer une
partition étendue et non une partition primaire, afin de se réserver la possibilité de
créer de nouvelles partitions ultérieurement. Il faut toutefois savoir que certains
systèmes ne peuvent pas être installés sur des partitions logiques (notamment DOS
et Windows 9x/Millénium), bien qu’ils soient capables d’y accéder une fois qu’ils
ont démarré.
Outre la table des partitions primaires, le MBR contient un petit programme,
appelé le “bootstrap loader”, qui permet de charger le premier secteur d’une des
partitions primaires. Ce secteur est communément appelé le “secteur de boot”,
parce qu’il contient le programme capable de charger le système d’exploitation.
La partition dont le secteur de boot est chargé par le bootstrap loader est appelée la
“partition active”. Il ne peut y avoir qu’une seule partition active à chaque instant :
celle du système d’exploitation principal.
Amorçage du système
Généralement, le programme stocké sur le secteur de boot d’une partition a
pour but de charger le système d’exploitation qui y est installé. Cependant, pour
certains systèmes d’exploitation, ce programme est très évolué et permet de lancer
5.1. AVANT DE COMMENCER L’INSTALLATION 111
Plan de partitionnement
Avant de se lancer dans l’opération de partitionnement proprement dite, il faut
établir un plan de partitionnement. Cela consiste tout simplement à déterminer la
taille et la nature de chaque partition dans le système. Il est normal, sur un système
où seul Linux sera utilisé, de disposer d’au moins trois partitions :
– une partition de swap, que Linux utilisera pour y stocker temporairement
des données lorsqu’il aura besoin de récupérer un peu de place en mémoire.
Il est recommandé de placer cette partition au début du disque (c’est à dire
au plus près du cylindre 0, là où le taux de transfert est le plus rapide),
– une partition pour le système de fichiers racine (point de montage /, dans
laquelle doit se trouver l’ensemble des fichiers du système. Cette partition
doit se trouver dans les 1024 premiers cylindres pour que le BIOS puisse y
accéder et charger le gestionnaire d’amorçage du système,
– une partition devant contenir les données des utilisateurs (point de montage
/home/.
L’avantage d’avoir une partition séparée pour toutes les données des utilisa-
teurs est considérable, puisque dans ce cas on peut mettre à jour le système ou
le réinstaller complètement sans avoir à faire de sauvegarde de ces données. De
plus, les fichiers de configuration importants peuvent être sauvegardés sur cette
partition avant la réinstallation, ce qui est extrêmement pratique. Ce type de parti-
tionnement est à prendre sérieusement en considération, surtout pour les machines
112 CHAPITRE 5. INSTALLATION DE LINUX
2000 ou XP). Cette partition pourra faire environ 1 Go, soit la taille né-
cessaire pour stocker une image disque de CD-ROM plus quelques fichiers
complémentaires. Elle pourra être de taille supérieure si un autre système
d’exploitation y est installé.
Utilisation de parted
remi:*:500:500:Rémi LEBLOND:/home/remi:/bin/bash
# useradd util1
# passwd util1
Changing password for user util1.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
1
La fonction crypt est celle utilisée pour le cryptage des mots de passe. Elle est basée sur
l’algorithme DES (Data Encryption Standard) avec des variantes prévues entre autres choses pour
éviter l’implémentation matérielle d’un casseur de code.
116 CHAPITRE 5. INSTALLATION DE LINUX
Le nouveau compte utilisateur sera inséré dans les fichiers du système quand
c’est nécessaire, le répertoire personnel sera créé, et les fichiers initiaux copiés à
partir du répertoire /etc/skel, cela dépendant des options présentes en ligne
de commandes. La commande crée un groupe pour chaque utilisateur ajouté au
système, à moins que l’option -n ne soit fournie. Comme la grande majorité des
commandes Linux, useradd accepte un grand nombre d’options permettant, par
exemple, de spécifier l’emplacement du répertoire personnel ou le groupe princi-
pal. Se reporter à la page de manuel pour plus d’informations.
A l’inverse, la commande userdel permet de supprimer des comptes utili-
sateur.
La distribution Mandrake dispose d’un outil graphique permettant de gérer les
utilisateurs et les groupe : userdrake (voir figure 5.2, page 116).
Mise en réseau
119
120 CHAPITRE 6. MISE EN RÉSEAU
Les nouvelles interfaces sont activées par défaut, mais il est possible de les désac-
tiver à l’aide du paramètre “down”.
Le nom de l’interface peut généralement prendre les valeurs suivantes :
lo : pour loopback, l’interface de réseau virtuel local à la machine,
eth0 : la première carte Ethernet installée. La deuxième carte Ethernet porterait
le nom eth1,
<nom d’une interface> :1 : le premier alias de l’interface. Il est possible de dé-
finir des alias des interfaces existantes. Chacun d’entre eux peut être confi-
guré indépendamment à l’aide de la commande ifconfig.
Les options les plus courantes sont :
netmask : Définit le masque de réseau IP pour cette interface. La valeur par dé-
faut de cette valeur correspond au masque réseau usuel pour les classes A,
B ou C (déduite de l’adresse IP), mais toute autre valeur peut être définie
selon les besoins en sous- réseaux.
up : Cette option active l’interface. Elle est implicitement spécifiée si une nou-
velle adresse est affectée à l’interface (voir plus loin).
down : Cette option arrête le fonctionnement du pilote pour cette interface, et est
utilisée lorsque les choses commencent à aller mal.
pointopoint adresse : Ce mot clé valide le mode point à point d’une interface,
signifiant qu’il existe un lien direct entre 2 machines, sans que personne
d’autre ne puisse être à l’écoute.
Si aucun argument n’est donné, ifconfig affiche simplement l’état des inter-
faces actuellement définies. Si seul le paramètre interface est donné, il affiche
seulement l’état de l’interface correspondante. Si seul le paramètre -a est fourni,
il affiche l’état de toutes les interfaces, même celles qui ne sont pas actives.
...
YPSRCDIR = /etc/NIS
YPPWDDIR = /etc/NIS
...
all: passwd group shadow
if [ -r /etc/nisdomainname ]; then
nisdomainname ?cat /etc/nisdomainname?
fi
124 CHAPITRE 6. MISE EN RÉSEAU
if [ -x ${NET}/ypserv ]; then
echo -n " ypserv?
${NET}/ypserv
fi
if [ -x ${NET}/rpc.yppasswdd ]; then
echo -n " yppasswdd?
${NET}/rpc.yppasswdd
fi
ypserver nom_du_serveur
ln -s yppasswd passwd
6.4. PARTAGE DE RESSOURCES 125
Compilation du noyau
7.1 Principe
Le noyau de Linux qui est fourni avec votre distribution est un noyau qui a
été spécialement conçu pour démarrer correctement sur le plus grand nombre de
machines possibles. Il ne s’agit donc pas d’un noyau optimal, d’où l’intérêt de
compiler un noyau plus adapté.
La compilation du noyau est une spécificité des systèmes libres, qui n’est pos-
sible que parce que l’on dispose des sources du noyau. Cependant, même pour
certains Unix commerciaux, il est possible d’effectuer une édition de liens, les
modules du noyau étant fournis sous la forme de fichiers objets. La compilation
ou l’édition de liens du noyau est une opération technique qui peut surprendre un
habitué des systèmes fermés que sont par exemple Windows ou OS/2. Cependant,
elle permet d’obtenir un noyau très petit, optimisé pour la machine sur laquelle
il tourne, et donc à la fois économe en mémoire et performant. Il est donc re-
commandé d’effectuer cette compilation : pourquoi conserver un monstre capable
de gérer des périphériques qui ne sont pas et ne seront jamais installé sur votre
système ?
La compilation du noyau de Linux nécessite de disposer des dernières sources
du noyau (version 2.4.17. au 22/10/2001) et d’un compilateur. Il est évident que
le compilateur idéal est le compilateur GNU C/C++ GCC. On utilisera la version
la plus stable actuellement, à savoir la version 2.95.3. Je supposerai dans la suite
127
128 CHAPITRE 7. COMPILATION DU NOYAU
cd /usr/src
rm linux
mkdir linux-2.4.17
ln -s linux-2.4.17 linux
7.3. PARAMÉTRAGE DE LA COMPILATION 129
Si l’on ne dispose pas encore de X11 on peut utiliser la version texte avec
menu en tapant la commande suivante :
130 CHAPITRE 7. COMPILATION DU NOYAU
make menuconfig
Quelle que soit la méthode utilisée, il faut répondre par “Y” (pour “Yes”), “N”
(pour “No”) ou “M” (pour “Module”) lorsque c’est possible. “Y” et “M” incluent
la fonctionnalité courante dans le noyau ou sous la forme d’un module, “N” la sup-
prime. “M” permet d’utiliser la fonctionnalité en tant que module du noyau. En
général, l’utilisation des modules permet d’alléger le noyau car les fonctionnalités
sont chargées et déchargées dynamiquement. Cependant, les fonctionnalités né-
cessaires au démarrage de Linux, comme les gestionnaires de disques et systèmes
de fichiers par exemple, ne doivent en aucun cas être placées dans des modules,
car alors le système ne pourrait pas démarrer.
Quand vous avez configuré votre compilation, sortez de l’utilitaire en sauve-
gardant vos modifications (“Save and Exit”).
[GIC02]
Remarque : Si vous voulez retrouver le paramétrage initial, vous pouvez uti-
liser la commande make mrproper. Il est possible de sauvegarder un état de
configuration à l’aide de la commande make backup.
make dep
make clean
make bzImage
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
default=linux
keytable=/boot/fr-latin1.klt
lba32
prompt
timeout=50
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
label=Linux
root=/dev/hdb1
append=" devfs=mount"
read-only
image=/boot/vmlinuz.old
label=VieuxLinux
root=/dev/hdb1
append=" devfs=mount"
read-only
other=/dev/hda1
label=Windows
table=/dev/hda
que les options de configuration choisies ne sont pas correctes. Il faut donc utiliser
le noyau sauvegardé, vérifier ses choix et tout recommencer. Attention cependant,
cette fois, il ne faut pas recommencer la sauvegarde du noyau, puisque cette opé-
ration écraserait le bon noyau avec un noyau défectueux.
Si le nouveau noyau démarre correctement, il ne reste plus qu’à installer les
modules [GIC02].
fois que l’on installe les modules, à l’aide de la commande depmod -a.
Les modules doivent être installés après avoir installé le noyau et redémarré le
système, faute de quoi la commande depmod peut ne pas trouver trouver tous les
symboles utilisés par les modules dans le noyau en court d’exécution [GIC02].
Chapitre 8
135
136 CHAPITRE 8. LES SCRIPTS SHELL
Table des figures
137
138 TABLE DES FIGURES
3.1 Présentation rapide des principaux répertoires d’un système de fichier Linux 48
3.2 Principaux types de systèmes de fichiers supportés par la commande mount 57
139
Index
140
INDEX 141
2, (cmd)67 Debian, 23
depmod -a (cmd), 134
AIX, 15 depmod (cmd), 134
alias (cmd), 95 devfs, 53
APRIL, 11 Distribution, 22
apropos (cmd), 62 domainname <nom domaine> (cmd),
Assembleur, 15 123
AT&T, 12
AT&T’s Bell, 14 Entrée standard, 64
EuroLinux, 21
bash (cmd), 18, 49, 96, 115 exe (fich), 55
142 INDEX
VA Linux, 20
vfat, 57
vi (cmd), 49, 77, 79, 81, 83, 88
vi : Editeur de texte, 77
vmlinuz (fich), 54, 131
whatis (cmd), 62
Window Manager, 32
XWindow, 32
[2LI] Toolinux.
[APR] Association pour la promotion et la recherche en informatique libre.
[ATR] Cours linux - installation et administration.
[GIC02] Guide d’installation et de configuration de Linux. Christian CAS-
TEYDE, 2002.
[GPM01] Le guide du pingouin migrateur... ou comment passer de Windows à
Linux. http ://home.alex.tuxfamily.org/guide/migrateur.html, 2001.
[LEA] Léa book.
[MOR88] Pierre MORVAN. Dictionnaire de l’Informatique. Larousse, 1988.
[PAS01] Principes appliqués des systèmes d’exploitation (avec Java). Vuibert
Informatique, 2001.
[RUT] Linux : Rute user’s tutorial and exposition.
145