Académique Documents
Professionnel Documents
Culture Documents
Administration
Auteurs
Abdelmadjid BERLAT
Jean-François BOUCHAUDY
Gilles GOUBET
GUIDE DE FORMATION
1
La marque © TSOFT est une marque déposée.
La collection des guides de formation © TSOFT est éditée par la société TSOFT.
Toutes les marques citées dans cet ouvrage sont des marques déposées par leurs propriétaires respectifs.
Tous les efforts ont été faits par TSOFT pour fournir dans cet ouvrage une information claire et exacte à
la date de parution. TSOFT n’assume de responsabilités, ni pour son utilisation, ni pour les contrefaçons
de brevets ou atteintes de tierces personnes qui pourraient résulter de cette utilisation.
La loi du 11 mars 1957 n’autorisant aux termes des alinéas 2 et 3 de l’article 41, d’une part, que les
« copies ou reproductions strictement réservées à l’usage privé du copiste et non destinées à une
utilisation collective », et, d’autre part, que les analyses et les courtes citations dans un but d’exemple et
d’illustration, « toute représentation ou reproduction intégrale, ou partielle, faite sans le consentement de
l’auteur ou de ses ayants droit ou ayants cause, est illicite » (alinéa 1er de l’article 40).
Cette représentation ou reproduction, par quelque procédé que ce soit, constituerait donc une contrefaçon
sanctionnée par les articles 425 et suivants du Code pénal.
CFAO Technologie a acquis auprès de Tsoft le droit de reproduire et d’utiliser ce manuel pendant une
durée d'un an jusqu'au 30/11/04 dans le cadre des formations qu’il dispense. Ce droit n’est transmissible à
aucun tiers ou utilisateur. CFAO Technologie et Tsoft se réservent le droit de poursuivre tout
contrevenant.
Réf : TS0038
Mise à jour février 2002
Editeur
Tsoft
10, rue du Colisée
75008 Paris
http://www.tsoft.fr
Tél. : 01 56 88 29 64
Fax : 01 53 76 03 64
Avant-propos
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-1
Table des matières
Table
des matières
MODULE 1 : INTRODUCTION....................................................................... 1-1
Les caractéristiques d’UNIX .................................................................................................1-2
L’historique de Linux ............................................................................................................1-4
Le rôle de l’administrateur ....................................................................................................1-9
Quelques éléments de méthodologie ...................................................................................1-11
Comment être « root ».........................................................................................................1-13
Comment administrer ..........................................................................................................1-15
Webmin ...............................................................................................................................1-17
Le dialogue avec les utilisateurs..........................................................................................1-22
La documentation ................................................................................................................1-24
Linux et Internet ..................................................................................................................1-31
Atelier 1 : Introduction ........................................................................................................1-35
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 T-1
Table des matières
T-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Table des matières
Atelier 8 : L’impression.......................................................................................................8-13
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 T-3
Table des matières
T-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Table des matières
ANNEXES .................................................................................................A-1
Annexe A : Les commandes POSIX 2 .................................................................................A-3
Annexe B : sh - Le shell POSIX.........................................................................................A-15
Annexe C : ksh – Le Korn shell .........................................................................................A-19
Annexe D : bash – Bourne Another SHell .........................................................................A-27
Annexe E : awk – Le processeur de texte...........................................................................A-39
Annexe F : sed – Editeur en mode flot ...............................................................................A-45
Annexe G : Les principaux fichiers d’administration ........................................................A-47
Annexe H : Solutions des exercices ...................................................................................A-51
Annexe I : Les écrans de Linuxconf...................................................................................A-67
Annexe J : Webmin ...........................................................................................................A-83
Annexe K : Compilation du noyau .....................................................................................A-87
Annexe L : Dépannage (« Troubleshooting ») ...................................................................A-97
BIBLIOGRAPHIE ........................................................................................B-1
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 T-5
Préambule
Préambule
Ce guide a pour objectif de former les utilisateurs, ayant déjà une bonne pratique d’un
système UNIX ou de Linux, à l’administration de Linux. Il n’est pas nécessaire de
savoir programmer en shell pour mener à bien l’étude de l’administration, mais nous
le conseillons fortement aux utilisateurs qui souhaitent être rapidement opérationnels.
Support de formation
Le guide de formation concerne tous les utilisateurs d’un système Linux qui ont
fréquemment à exécuter des tâches de gestion et qui souhaitent être autonomes pour
les réaliser, les exploitants qui ont besoin d’une connaissance assez approfondie du
système et, bien évidemment, tous les futurs administrateurs de systèmes Linux.
Le support convient à des formations dont la durée peut être comprise entre quatre et
cinq jours.
Progression pédagogique
Introduction
Le lecteur acquiert une vision globale du système Linux, sait le rôle de
l’administrateur, ce qu’il peut faire et comment le faire.
Les fichiers
On rappelle au lecteur l’arborescence des fichiers, les droits d’accès fondamentaux. Le
lecteur apprend à identifier tous les types de fichiers et sait tous les droits existants.
La sauvegarde
Le lecteur apprend les différents types de sauvegarde existant sur Linux et les
commandes associées. Il est capable de définir ensuite une stratégie de sauvegarde.
L’arrêt et le démarrage
Le lecteur connaît les phases du démarrage et de l’arrêt du système, les actions
essentielles exécutées. Il sait paramétrer l’arrêt et le démarrage du système.
L’impression
Le lecteur sait administrer le système d’impression d’un système Linux. La connexion
d’une imprimante distante est présentée.
Le noyau
Le lecteur approfondit sa connaissance des fonctions du noyau. Il apprend à modifier
les paramètres du système et la procédure générique d’intégration d’un pilote au noyau
Linux. Le lecteur apprend également à recompiler le noyau.
Les paquetages
Le lecteur apprend à visualiser les logiciels contenus dans un paquetage et à les
installer.
Le réseau
Le lecteur apprend les éléments fondamentaux nécessaires à l’intégration d’un
système UNIX dans un réseau TCP/IP. Le module n’est cependant pas un cours
complet sur TCP/IP.
X-Window
L’utilisateur apprend à utiliser et, surtout, configurer le système graphique X11. Il en
apprend aussi les principaux composants, les clients, accessibles à travers les bureaux
du système Linux.
La sécurité
Le lecteur est sensibilisé aux problèmes liés à la sécurité et apprend les règles de base
pour veiller à la sécurité et à l’intégrité du système.
Bases de données
Le lecteur apprend à utiliser les bases de données les plus populaires du monde des
logiciels libres. A priori, le lecteur connaît le langage SQL.
• Free software,
GNU,GPL
• UNIX et Linux
• Le rôle de
l’administrateur
• root
• su, man, HOWTO,
FAQ, info
1Module 1 : Introduction
Objectifs
Après l’étude de ce chapitre, le lecteur connaît le rôle de l’administrateur du système
Linux. Il sait se connecter en tant qu’administrateur, utiliser et configurer la
documentation.
Contenu
Les caractéristiques d’UNIX
L’historique de Linux
Le rôle de l’administrateur
La connexion en tant que root, les commandes login et su
Comment administrer
Webmin
Le dialogue avec les utilisateurs
La documentation
Linux et Internet
Références
HOWTO : META-FAQ, INFO-SHEET, INDEX, CONFIG-HOWTO,
Distribution-HOWTO, Reading-List-HOWTO
Livre : Running Linux
Manuel : man(1)
Internet : http://linux.org
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-1
Module 1 : Introduction
Le système Linux est d’abord un système UNIX. C’est pourquoi il en possède les
caractéristiques.
Arborescence de fichiers et de « FS »
L’appellation système de fichiers ou son acronyme « FS » (« File System ») a une
double signification dans le système UNIX. Pour les utilisateurs et l’administrateur,
elle représente l’arborescence des fichiers du système UNIX. Un nœud de l’arbre est
de type répertoire et contient d’autres fichiers, y compris des sous-répertoires, ou d’un
autre type et c’est alors un élément terminal de l’arborescence (une feuille). Pour
l’administrateur, un système de fichiers est aussi une structure d’accueil pour une
arborescence de fichiers, créée sur un disque. C’est l’unification, par l’administrateur,
des arborescences des disques du système UNIX, qui constitue l’arborescence unique
vue par les utilisateurs.
Le principe de l’unification des arborescences a été étendu aux réseaux. Un fichier
peut résider localement mais aussi sur un disque distant (cf. Module 13 : Le réseau).
1-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
qui lui sont connectés. Les processus font appel au noyau par l’intermédiaire de
primitives issues d’une API (« Application Program Interface ») et désignent les
périphériques auxquels ils accèdent par un nom de fichier défini dans l’arborescence.
Dans UNIX, les périphériques sont vus comme des fichiers (cf. Module 10 : La
gestion des périphériques, Module 11 : Le noyau).
Les UNIX : HP-UX (HP), Solaris (SUN), AIX (IBM), UNIX SCO (SCO),
Linux
Les constructeurs ont développé leur propre système UNIX, en s’appuyant au départ
sur les systèmes AT&T ou BSD. Ils intègrent aujourd’hui les principaux standards du
monde UNIX mais continuent à offrir des particularités qui tiennent souvent plus à la
forme qu’au fond.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-3
Module 1 : Introduction
L’historique de Linux
L ’historique de Linux
1-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-5
Module 1 : Introduction
Linux est la propriété de Linus Torvald, et des personnes qui ont contribué à son
développement (torvald@transmeta.com) mais le code source aussi bien que le code
binaire sont librement et gratuitement distribués selon les termes du GPL (GNU Public
Licence) qui stipulent que tout acquéreur peut librement utiliser et même
commercialiser le produit. Cependant, toutes les modifications du produit doivent à
leur tour être librement et gratuitement disponibles pour la communauté
internationale, ce qui garantit la perpétuité du logiciel libre de droits.
Caractéristiques de Linux
• Multi-tâches.
• Multi-utilisateurs.
• Multi-plates-formes : Intel, Compaq Alpha, Sun SPARC, (Power PC, Mac et
autres en cours).
• Gestion dynamique des pilotes de périphériques : les modules sont chargés
dynamiquement.
• Conformité au standard POSIX.
• Compatibilité avec UNIX System V (AT&T) et BSD au niveau des sources.
• Support des bibliothèques UNIX aux formats COFF et ELF.
• Compatibilité binaire avec SCO SVR3 et SVR4 avec les modules d’émulation
IBCS2.
• Support du standard ISO 9660 (CD-ROM).
• Support de plusieurs systèmes de fichiers dont Windows 9x et Macintosh, en
lecture seulement pour le dernier.
• Interopérabilité avec WINDOWS, Netware.
• plate-forme de référence pour les standards Internet tels que apache, ipchains…
1-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Red Hat
L’apport principal de Red Hat est sans doute le concept de paquetage (cf. Module 13 :
les paquetages). Un paquetage comprend un logiciel, sa documentation ainsi que tous
les utilitaires qui en simplifient l’installation, la désinstallation ou la mise à jour, le
tout prêt à l’emploi sur un simple clic. Ce concept a, du reste, été repris par d’autres
distributions.
Cette distribution comprend des outils d’installation et de configuration simples
d’emploi en mode graphique ou en mode caractère. Le mode caractère, toujours
important, est d’autant plus utile pour le moment que certains constructeurs de cartes
graphiques, pour ne pas citer de noms, ont quelques réticences semble-t-il à fournir
des pilotes pour Linux (cf. Module 16 : X-Window).
Red Hat existe pour de nombreuses plates-formes parmi lesquelles on peut citer :
Intel, Compaq Alpha, Sun SPARC, Power PC et Mac (en cours).
Remarque
Linus Torvald utilise la distribution Red Hat.
Debian
Debian est une distribution non commerciale de Linux, avec l’objectif d’être de
grande qualité. Debian utilise son propre format de paquetage. Le développement de
Debian est réalisé, via l’Internet, de la même manière que le noyau Linux. Debian
supporte les plates-formes Intel, Compacq Alpha, Sun SPARC.
S.u.S.E
Basée sur la distribution Slackware, cette distribution d’origine allemande entreprend
un déploiement aux Etats-Unis. Elle possède ses propres outils d’installation et utilise
les paquetages Red Hat. L’installation se fait, via des menus, depuis le CD-ROM.
Remarque
S.u.S.E sponsorise le groupe XFree86 pour le développement de serveurs X de
diverses cartes graphiques récentes. C’est, par conséquent, un site à consulter si vous
n’avez pas de pilotes pour votre carte graphique ! (http://www.suse.de)
Mandrake
La distribution Mandrake est basée sur la Red Hat. Elle dispose de son propre outil
graphique d’installation.
Caldera
La distribution OpenLinux de Caldera inclut des produits commerciaux :
- Netscape FastTrack Web Server,
- le système de gestion de bases de données ADABAS,
- Novell Netware
EasyLinux
C’est la distribution de la société EIT.
CorelLinux
C’est la distribution de la société de la société Corel. Elle inclut le logiciel
WordPerfect. Elle est basée sur la distribution Debian et utilise l’interface KDE. Elle
dispose de son propre outil d’administration.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-7
Module 1 : Introduction
Trinux
C’est un système Linux qui fonctionne uniquement en mémoire et qui possède des
outils d’audit des réseaux (cf. Module 17 : La sécurité).
TurboLinux
C’est une version de Linux en cluster, distribuée par la société TurboLinux. Cette
distribution est payante. Elle est destinée à équiper de gros serveurs.
1-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Le rôle de l’administrateur
Le rôle de l’administrateur
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-9
Module 1 : Introduction
Ajouter un périphérique
L’ajout d’un périphérique amène à savoir créer un fichier spécial pour ce périphérique,
ajouter éventuellement un pilote de périphérique (« device driver ») au noyau ou
l’installer comme un module qui sera chargé automatiquement lors du démarrage.
1-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Pour bien accomplir sa mission, l’administrateur doit respecter des règles de bon sens
et être méthodique.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-11
Module 1 : Introduction
# cp /etc/group /etc/group.003
1-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Le nom de l’administrateur d’un système Linux est « root ». Pour avoir les privilèges
de root, encore appelé le « super user », il faut prendre l’identité de root.
Pour cela, on peut se connecter en tant que root. Quel que soit le shell de connexion de
l’administrateur, l’invite est le symbole « # », le répertoire de connexion /root.
login : root
password : xxxxxxx
#
# exit
Il est aussi possible de prendre temporairement, quand on est déjà connecté, l’identité
de l’administrateur grâce à la commande su.
$ su
password : xxxxxxx
#
# exit
$
Remarques
• root peut modifier l’invite du shell. Il est conseillé d’y conserver #.
• Le shell de connexion de root est, par défaut, le shell bash (« Bourne again
shell »). Il peut le changer, comme tous les utilisateurs.
• Il n’est pas conseillé de toujours travailler connecté en tant que root. Il est
préférable de disposer d’un compte ordinaire et d’exécuter la commande su si
nécessaire.
• La commande su change l’identité mais pas l’environnement. Pour changer
d’environnement (exécuter le fichier .bash_profile), il faut saisir su –
(cf. Module 6 : La gestion des processus).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-13
Module 1 : Introduction
• L’invite d’un utilisateur du système Linux est définie par la variable PS1 du shell
(cf. Annexe : shell bash). Par défaut, elle contient le nom de l’utilisateur, le nom
du système, le répertoire courant et, pour terminer, le symbole « $ » pour un
utilisateur ordinaire et le symbole « # » pour root. Dans le manuel, l’invite utilisée
dans les exemples est « $ » pour les utilisateurs ordinaires et « # » pour root.
• Quand on travaille dans un environnement mono utilisateur, il est possible
d’ouvrir une session avec la connexion root, sur l’une des consoles virtuelles de
votre ordinateur. En cas de problème majeur, l’administrateur dispose d’une
session déjà active.
1-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Comment administrer
Comment administrer
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-15
Module 1 : Introduction
préalables à l’exécution d’une commande. Les scripts permettent l’édition des fichiers
d’administration.
Remarque
L’annexe « Les écrans de linuxconf » décrit l’utilisation de la commande linuxconf et
présente ses principaux écrans.
1-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Webmin
Client web
Réseau TCP/IP
HTTP,MIME
/etc/webmin/miniserv.conf
miniserv.pl
/etc/webmin/miniserv.users
Serveur webmin
Description
Webmin, qui signifie Web administration, est un outil simple d’emploi pour
administrer à distance un serveur Linux. S’appuyant sur le protocole HTTP, il est
composé d’un serveur Web minimal et de scripts CGI qui réalisent les tâches
d’administration, comme la gestion des utilisateurs, la gestion des systèmes de fichiers
ou la configuration du serveur xinetd. Le serveur webmin, ainsi que tous les scripts
CGI, sont écrits langage Perl 5 dont ils n’utilisent que les modules standards. Webmin
est disponible sur le site http://www.webmin.com, au format des paquetages « rpm »
et au format archive tar compressée. Bien que la totalité de la présentation de Webmin
soit faite dans ce chapitre, nous invitons le lecteur à tester les modules de Webmin au
fur et à mesure de son avancement dans l’ouvrage. Webmin peut être utilisé pour
administrer d’autres systèmes UNIX, parmi lesquels SOLARIS.
Installation
L’exemple présente d’abord l’installation de webmin au format rpm, dans l‘exemple le
package webmin-0.91-1.
# rpm –ivh webmin-0.91-1
Aucune configuration supplémentaire n’est requise, le service webmin est
opérationnel.
Nous poursuivons avec l’installation d’une archive tar compressée, ici
webmin-0.91.tar.gz.
Il faut, par exemple, copier l’archive dans le répertoire /usr/local, l’emplacement
standard pour l’installation de logiciels récupérés sur Internet.
# cd /usr/local
# tar xzvf webmin-0.91.tar.gz
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-17
Module 1 : Introduction
Module Description
Postfix Configuration Configure le service de messagerie Postfix.
Linux RAID Gère les disques RAID 0, 1, 4, 5 et linéaires.
Manual Pages Interface des pages du manuel.
System Logs Configure le service syslog.
Webmin Help Recherche des pages web des modules Webmin.
FTP Server Configure le service ftp.
1-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-19
Module 1 : Introduction
Utilisation de webmin
Il n’y a pas de commande à exécuter pour se connecter à Webmin. Il suffit de saisir à
partir d’un navigateur, l’URL précisant le numéro de port d’écoute du serveur, puis de
renseigner la boîte de dialogue suivante avec le nom root ou un nom d’utilisateur
Webmin valide et le mot de passe correspondant.
Exemple d’URL : http://www.leserveur.ledomaine:10000/
1-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Remarque
L’annexe «Webmin» présente les principaux écrans de Webmin.
Références
Les documents de la page d’accueil du site web
« http://www.webmin.com/webmin/ » :
Introduction to Webmin.
Downloading and Installing.
Standard Modules.
Caldera’s Webmin Documentation.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-21
Module 1 : Introduction
Fichier Action
/etc/issue Le contenu du fichier /etc/issue est affiché sur le terminal avant
l’invite de connexion. Il contient normalement la version du
noyau et le nom et la version de la distribution. Ce fichier est créé
à chaque démarrage par le script /etc/rc.d/rc.local.
/etc/motd Le contenu du fichier /etc/motd est affiché sur le terminal après la
connexion, avant l’invite du shell.
1-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Exemples
# wall << fin
Arrêt du système pour maintenance exceptionnelle dans 10 minutes,
reprise dans 30 minutes environ.
fin
#
# cat /etc/motd
Le système sera arrêté toute
la journée du 15 juin pour cause de maintenance
# exit
Red Hat Linux release 7.2 (Enigma)
Kernel 2.4.7-10 on an i686
login: pierre
Password:
Le système sera arrêté toute
la journée du 15 juin pour cause de maintenance
[pierre@Linux pierre]$
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-23
Module 1 : Introduction
La documentation
La documentation
FILE(1)
FILE(1) FILE(1)
FILE(1)
man
man NAME
NAME
file
file--determines
determinesfile
file
type
type
Les pages du manuel SYNOPSIS
SYNOPSIS
file
file...
...
La documentation des paquetages DESCRIPTION
DESCRIPTION
Les HOWTO et les FAQ ....
....
FILES
FILES
Les pages info /etc/magic
/etc/magic
La commande locate SEE
SEEALSO ALSO
magic(4)...
magic(4)...
1-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Le système Linux comporte dix sections. Le tableau qui suit donne la liste de toutes
les sections du système Linux :
Section Contenu
1 Les commandes utilisateurs
8 Les commandes d’administration et de maintenance
2 Les appels système
3 La bibliothèque C
4 Les fichiers spéciaux : les périphériques
5 Le format des fichiers
6 Les jeux
7 Divers
9 Le noyau
N Les commandes tcl/tk (« Tool Command Language/ToolKit »)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-25
Module 1 : Introduction
Remarque
Nous rappelons l’importance pour l’administrateur des paragraphes « FILES » et
« SEE ALSO » de la documentation d’une commande. La première permet de
connaître tous les fichiers de configuration utilisés par la commande. La seconde
permet, à défaut d’une aide en hypertexte, de rechercher une commande ou un fichier
particulier.
L’administrateur peut ajouter des pages au manuel, nous renvoyons le lecteur à la
commande man pour de plus amples explications.
1-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Configuration de la documentation
Le manuel se trouve normalement installé dans le répertoire /usr/man.
Pour configurer la documentation en ligne, l’administrateur va éditer le fichier
/etc/man.config. Ce fichier définit principalement les répertoires de recherche des
pages du manuel, le programme qui doit être utilisé pour les afficher et l’ordre de
parcours des sections.
# cat /etc/man.config
# Every automatically generated MANPATH includes these fields
#
MANPATH /usr/man
MANPATH /usr/local/man
MANPATH /usr/X11R6/man
MANPATH /usr/lib/perl5/man
PAGER /usr/bin/less –is
CAT /bin/cat
# Default manual sections (and order) to search if -S is not specified
# and the MANSECT environment variable is not set.
MANSECT 1:8:2:3:4:5:6:7:9:tcl:n:l:p:o
# Decompress with given decompressor when input file has given extension
# The command given must act as a filter.
Sachant l’existence de ce fichier, nous déconseillons à l’administrateur de modifier
directement les variables d’environnement, telles que MANPATH.
L’administrateur peut générer, grâce à la commande makewhatis, une base de
données d’aide simplifiée nommée « whatis », utilisable par les commandes man –k
et man –f ou leurs synonymes apropos et whatis. L’option « -w » signifie à la
commande makewhatis d’utiliser les chemins aux pages du manuel, tels qu’affichés
par la commande man --path.
# makewhatis –w
Cette base de données est, sinon créée, mise à jour automatiquement par le service
cron (cf. Module 6 : La gestion des processus) le dimanche à 4h22.
$ whatis mkfs
$ apropos find
$ man –k copy
Le répertoire man contient, pour chaque section, un sous-répertoire man(x), où (x)
désigne le numéro de la section qui contient les pages du manuel dans un format qui
n’est pas de type texte. Le répertoire /var/catman contient, pour chaque section, un
sous-répertoire cat(x) qui contient les pages formatées, utilisables directement par la
commande d’affichage. Le contenu d’un répertoire cat(x) peut être détruit si
l’administrateur a besoin de libérer de l’espace sur disque. A l’inverse, la commande
makewhatis permet de générer le contenu de tous les répertoires cat(x).
Les utilisateurs autres que root peuvent choisir la commande qui doit être exécutée
pour afficher le texte du manuel. Il suffit pour cela de définir la variable
d’environnement PAGER. Par défaut, c’est la commande less qui est utilisée.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-27
Module 1 : Introduction
$ cat .profile
PAGER=/bin/more ; export PAGER
Remarques
• A l’exécution de la commande man, si un message avertit l’utilisateur d’une
attente avant l’affichage du manuel de la rubrique, cela signifie que le fichier
associé au manuel de la rubrique n’existe pas dans le répertoire cat(x), il faut
formater celui du répertoire man(x).
• Pour imprimer la sortie de la commande man, il faut préalablement éliminer les
caractères de contrôle qui génèrent le soulignement et la vidéo inverse et
demander que l’affichage soit réalisé par la commande cat. Pour cela nous
proposons la séquence suivante :
$ PAGER=/bin/cat ; export PAGER
$ man find | col –b | lpr # le filtre col élimine les caractères de contrôle
Le navigateur Gnome
Le navigateur Gnome permet en mode graphique d’accéder à l’ensemble de la
documentation. Il peut être lancé à partir des menus graphiques ou de la ligne de
commande d’une fenêtre terminal :
# gnome-help-browser &
1-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Les HOWTO
Les HOWTO sont des documents qui expliquent en détail certains aspects du
système : comment installer tel ou tel composant, comment effectuer la configuration
d’un service particulier du système en tenant compte de certaines spécificités. Ils sont
souvent le fruit d’un administrateur qui met sa connaissance à la disposition de tous
pour nous éviter des pièges et des pertes de temps inutiles.
Il existe ainsi, dans la distribution Red Hat, un HOWTO qui explique comment
fabriquer une disquette « bootable » avec les pilotes et les outils de son choix.
Le répertoire doc/HOWTO du CD-ROM Linux contient les versions ascii des fichiers
HOWTO.
Le répertoire /usr/doc/HTML contient les liens sur la documentation de la distribution.
Exemples :
« Distribution HOWTO » qui décrit les différentes distributions et comment les
obtenir.
« META-FAQ » qui décrit les différentes sources d’information.
La commande locate
La command locate permet de rechercher des fichiers et des répertoires dont on ne
connaît pas la localisation ou le nom complet.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-29
Module 1 : Introduction
1-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Linux et Internet
Linux et Internet
Linux est né grâce à l’Internet. C’est par lui qu’il continue de vivre et qu’il prospère
de jour en jour. Internet est le complément indispensable à une utilisation sérieuse de
Linux.
Nous citons les principaux sites qui traitent de Linux. Il est évident que la liste n’en est
pas exhaustive et que des modifications peuvent intervenir à n’importe quel moment.
Ainsi va la vie sur Internet.
Sites généraux
http://www.linux.org
http://www.li.org
http://www.linuxpowered.com
http://www.linuxhq.com
http://www.linuxplanet.com
http://www.tootella.com
http://www.tootlella.org
http://www.linux-center.org
Sites spécialisés
Développement
http://www.free-linuxdev.org
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-31
Module 1 : Introduction
Les journaux
Anglo-saxons
http://www.linuxjournal.com
http://www.linuxgazette.com
http://slashdot.org
http://lwn.net
http://linuxtoday.com/
Français
http://www.linuxmag-france.org
http://www.linux-pratique.org
http://www.linuxinfos.org
1-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
http://www.suse.com
http://www.debian.org
http://www.slackware.com
http://www.caldera.com
http://linux.corel.com
http://www.turbolinux.com
http://www.linux-mandrake.com/fr
http://www.easylinux.com
http://www.trinux.org
http://www.demolinux.org
Les HOWTO
Liste complète des HOWTO
http://sunsite.unc.edu/LDP/HOWTO/HOWTO-INDEX.html
Pour les obtenir
ftp://ftp.funet.fi/pub/OS/Linux/doc/HOWTO
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
Les news
Les forums Linux sont dans l’arborescence comp.os.linux.*.
Il faut notamment citer comp.os.linux.announce qui contient les nouvelles
informations sur Linux.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-33
Module 1 : Introduction
Le site http://www.deja.com permet d’accéder à une grande partie des archives des
news.
Autres liens
http://dir.yahoo.com/Computers_and_Internet/Software/Operating_Systems/
UNIX/Linux/
http://guide.voila.fr//Informatique_internet/Informatique/
Systemes_d_exploitation/Linux/
1-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 1 : Introduction
Atelier 1 : Introduction
Atelier 1 : Introduction
Objectifs :
Savoir se connecter en tant
qu’administrateur du système
Savoir utiliser la documentation
Communiquer avec les utilisateurs
Durée : 30 minutes.
Exercice n°1
Citez trois distributions Linux.
Exercice n°2
Quelle est la première distribution qui popularisa Linux ?
Exercice n°3
Citez trois logiciels GNU.
Exercice n°4
Mettre à jour la date système en vous aidant de la documentation (man date).
Exercice n°5
Quels sont les chapitres de la documentation traitant de la connexion (en anglais
« login ») ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 1-35
Module 1 : Introduction
Exercice n°6
Modifiez le fichier /etc/motd, qui affiche un message en début de connexion. Testez le
résultat en vous reconnectant.
Exercice n°7
Affichez un message sur toutes les terminaux.
Exercice n°8
Recherchez et parcourez le HOWTO « Meta-FAQ ».
1-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 2 : La gestion des utilisateurs
• Créer, modifier et
supprimer un compte
utilisateur
• Les fichiers
/etc/passwd et
/etc/group
• Les commandes
useradd, passwd,…
2Module 2 : La gestion
des utilisateurs
Objectifs
Après l’étude du chapitre, le lecteur sait gérer les comptes des utilisateurs et leurs
groupes. Il connaît la structure des fichiers qui contiennent les informations
fondamentales.
Contenu
Les fichiers /etc/passwd et /etc/group
Les commandes d’administration : useradd, passwd, su, id, …
Références
HOWTO : USER-GROUP-HOWTO
Manuel : passwd(5), group(5), useradd(8), login(1)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 2-1
Module 2 : La gestion des utilisateurs
2-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 2 : La gestion des utilisateurs
Remarques
• L’UID est une valeur comprise entre 0 et la valeur définie par la constante
UID_MAX du fichier /etc/login.defs. Les valeurs inférieures à 100 sont
généralement réservées pour des utilisateurs associés à des services standard du
système Linux. La constante UID_MIN du fichier /etc/login.defs définit la valeur
minimale des UID des utilisateurs.
• L’attribution d’un UID est de la responsabilité de l’administrateur et rien ne
l’oblige à les affecter séquentiellement. Il peut définir sa propre stratégie.
• Quand un administrateur gère un parc de machines Linux sans mettre en œuvre
d’administration centralisée (cf. Module 13 : Le réseau), il est conseillé d’attribuer
le même UID à un utilisateur qui possède un compte sur plusieurs machines du
réseau.
• Si plusieurs lignes utilisent le même UID pour plusieurs noms de connexion
différents, un seul utilisateur est en fait défini. On peut ainsi définir un utilisateur
stop, dont l’UID est 0 et qui exécute shutdown comme commande de connexion.
• Dans un système non sécurisé, le mot de passe peut être absent, ce qui permet de
se connecter sans avoir à fournir de mot de passe.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 2-3
Module 2 : La gestion des utilisateurs
Nous rappelons que la commande newgrp (cf. UNIX Utilisateur) permet de changer le
groupe de référence utilisé lors de la création de nouveaux fichiers. A défaut d’avoir
exécuté la commande newgrp, c’est le groupe de connexion qui est utilisé.
Remarques
• Un utilisateur n’a pas besoin d’être mentionné dans la liste des utilisateurs de son
groupe de connexion.
• Le champ mot de passe est rarement utilisé dans la pratique.
2-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 2 : La gestion des utilisateurs
La commande useradd
Syntaxe pour la création d’un compte
useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]] [-m [-k skeleton_dir]]
[-s shell] [-u uid [ -o]] [-n] [-r] login
Le tableau qui suit n’explicite que les options dont la seule lecture ne donne pas
l’explication.
Option Description
-c comment Le commentaire.
-d home_dir Le répertoire de connexion.
-e expire_date La date d’expiration du compte.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 2-5
Module 2 : La gestion des utilisateurs
2-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 2 : La gestion des utilisateurs
La commande passwd
La gestion des mots de passe et de leur pérennité (« Aging Information ») est réalisée
par la commande passwd, déjà connue des utilisateurs, et par la commande chage. Le
rôle principal de la commande passwd est de créer ou de modifier le mot de passe
d’un utilisateur. La commande chage gère la pérennité des mots de passe (cf. Module
17 : la sécurité).
La commande passwd a plusieurs fonctions pour l’administrateur :
• Modifier le mot de passe d’un utilisateur
# passwd Nom_utilisateur
Remarques
• Les restrictions imposées aux utilisateurs dans la définition de leur mot de passe
ne s’appliquent pas à l’administrateur qui peut attribuer n’importe quel mot de
passe à un utilisateur, sauf une chaîne vide.
• En l’absence de mot de passe, l’invite « password » n’est pas affichée à la
connexion.
Exemples
# id
uid=0(root) gid=0(root)
groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
# finger
Login Name Tty Idle Login Time Office Office Phone
cathy Cathy - Levallois 4 Apr 21 17:01
pierre Pierre - Paris 3 2:46 Apr 21 14:15
root root *2 3 Apr 21 13:30
# users
cathy pierre root
# groups
root bin daemon sys adm disk wheel
# groups cathy
cathy : cathy compta
Attribuer à cathy le mot de passe cathy
New UNIX password:
BAD PASSWORD: it is too short
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 2-7
Module 2 : La gestion des utilisateurs
2-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 2 : La gestion des utilisateurs
Password:
/home/jean $
Créer les groupes develop, compta et achats, de GID : 1000, 1001
et 1002
# groupadd -g 1000 develop
# groupadd -g 1001 compta
# groupadd -g 1002 achats
Créer un utilisateur avec des paramètres spécifiques
# useradd -u 2000 -s /bin/bash -d /home/paul -c "Paul - Angers" paul
Visualiser le compte créé précédemment
# grep paul /etc/passwd
paul:!!:2000:2000:Paul - Angers:/home/paul:/bin/bash
# grep paul /etc/group
paul:x:2000:
Ajouter paul aux groupes compta et develop
# usermod -G compta,develop paul
Lister les groupes de paul
# groups paul
paul : paul develop compta
Supprimer l’utilisateur paul (l’option -r demande la suppression
de son arborescence)
# userdel -r paul
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 2-9
Module 2 : La gestion des utilisateurs
La
Laconfiguration
configurationde
debash
bash
.bash_profile Le script exécuté à la connexion
.bashrc Le fichier de définition des alias
.bash_logout Le script exécuté à la déconnexion
LL’environnement
’environnementgraphique
graphique
Nous avons vu dans le dernier chapitre, que le répertoire /etc/skel contient les fichiers
qui sont automatiquement ajoutés dans le répertoire de connexion d’un nouveau
utilisateur. Voici le contenu type de ces fichiers.
Le fichier .bash_profile
Le fichier .bash_profile est automatiquement exécuté à la connexion d’un utilisateur.
Il permet la personnalisation de la session de travail. On y trouve principalement la
définition des variables d’environnement, dont la personnalisation de la variable
PATH.
$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME=""
export USERNAME BASH_ENV PATH
2-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 2 : La gestion des utilisateurs
Le fichier .bash_logout
Le fichier .bash_logout est exécuté à la déconnexion de l’utilisateur. Il est ainsi
possible d’automatiser la sauvegarde de fichiers ou la suppression de fichiers
temporaires dont l’existence n’est plus nécessaire.
$ cat .bash_logout
# ~/.bash_logout
echo "===================================="
echo "destruction des fichiers temporaires"
rm -i /tmp/*.tmp
echo "===================================="
$ exit
====================================
destruction des fichiers temporaires
rm: détruire `/tmp/f1.tmp'? o
rm: détruire `/tmp/f2.tmp'? o
====================================
Le fichier .Xdefaults
Le fichier .Xdefaults contient la définition des ressources utilisées par les applications
graphiques, les clients X. Il existe de nombreux autres fichiers de configuration de
l’environnement graphique et, en particulier, des bureaux gnome et KDE (cf. Module
16 : X-Window).
Remarque
La consultation de l’annexe D, consacrée au shell bash, donne, au lecteur, une vision
complète des fichiers de démarrage du shell bash.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 2-11
Module 2 : La gestion des utilisateurs
Objectifs :
Savoir créer un compte utilisateur
Savoir gérer les utilisateurs et les
groupes
Durée : 30 minutes.
Exercice n°1
Est-ce que l’utilisateur bin existe, si oui, quel est son UID ?
Exercice n°2
Comment feriez-vous pour vous connecter sous le compte de l’utilisateur « bin » ?
Exercice n°3
Existe-t-il d’autres comptes utilisateurs possédant les droits de root ?
Exercice n°4
A quels groupes appartient l’utilisateur bin ?
Exercice n°5
Créez avec useradd, en gardant toutes les valeurs par défaut, l’utilisateur pierre. Quel
est le groupe de pierre ?
Exercice n°6
Ajoutez pierre au groupe staff. Au besoin, créez ce groupe.
2-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 2 : La gestion des utilisateurs
Exercice n°7
Affichez les groupes de pierre.
Exercice n°8
Connectez-vous au compte pierre nouvellement créé de deux manières, à la connexion
et grâce à la commande su. Expliquez les deux résultats.
Exercice n°9
Que faut-il faire pour pouvoir se connecter au compte pierre ?
Exercice n°10
Changez le champ commentaire de pierre en utilisant la commande vipw. Renseignez
le champ avec le texte suivant : Pierre Henry - Tours.
Exercice n°11
Créez un compte utilisateur avec l’outil d’administration (linuxconf, …).
Exercice n°12
Créez un compte « admin » d’UID 0. Il peut servir si, par exemple, on oublie le mot
de passe de root.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 2-13
Module 3 : Les fichiers
• L’arborescence des
fichiers
• Les liens symboliques,
les tubes nommés
• Les droits
d’endossement, le
« sticky bit »
• La commande find
3Module 3 : Les fichiers
Objectifs
Après l’étude du chapitre, le lecteur connaît l’arborescence des fichiers, tous les types
de fichiers et tous les droits d’accès. Il maîtrise l’utilisation des commandes de gestion
de répertoires et particulièrement celle de la commande find.
Contenu
L’arborescence des fichiers
Les principaux répertoires
Les types de fichiers (tube nommé, socket, …)
Les droits (endossement, « sticky bit »)
Les commandes de gestion de l’arborescence
Les attributs des fichiers
Références
Le manuel : file(1), chmod(1), chattr(1), find(1)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-1
Module 3 : Les fichiers
/ «root»
«lien»
pierre cathy cathy bin cdrom floppy
3-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
boot
boot bin
bin dev
dev etc
etc home
home lib
lib mnt
mnt proc
proc root
root sbin
sbin tmp usr var
tmp usr var
rc.d
rc.d cdrom
cdrom floppy
floppy bin
bin include
include local
local man
man lib
lib
sys
sys bin
bin
rc3.d
rc3.d
cron
cron log
log mail
mail run
run spool
spool
mail
mail atat cron
cron lpd
lpd
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-3
Module 3 : Les fichiers
3-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
$ ls -l fichier
-rwxr-x--- 1 pierre stage 265 Jun 18 14:00 fichier
-- Fichier
Fichierordinaire
ordinaire
dd Répertoire
Répertoire
cc Périphérique
Périphériquecaractère
caractère
bb Périphérique
Périphériquebloc
bloc
ll Lien symbolique
Lien symbolique
pp Tube
Tubenommé
nommé(IPC)
(IPC)
ss Socket
Socketlocale
locale(IPC)
(IPC)
Nous savons déjà que le système UNIX connaît différents types de fichiers. Le tableau
qui suit en donne la liste complète et précise, pour chacun des types mentionnés, les
noms des commandes usuellement employées pour le créer et le détruire ainsi que son
utilisation.
Fichier Symbole Création Destruction
(ls –l)
Ordinaire (régulier) - vi,... rm
Les fichiers de données et les programmes.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-5
Module 3 : Les fichiers
Lien symbolique l ln –s rm
Un lien symbolique est un fichier spécial qui définit un chaînage sur un autre
fichier. Les liens symboliques permettent de conserver une compatibilité avec
d’anciennes versions de l’arborescence du système Linux ou d’un logiciel (cf.
UNIX Utilisateur – la commande ln).
3-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-7
Module 3 : Les fichiers
Exemples
# file /bin/bash
/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked,
stripped
# file /etc/passwd
/etc/passwd: ASCII text
# tail -2 /etc/passwd > fichier
# cat fichier
pierre:!!:500:500::/home/pierre:/bin/bash
paul:tbiYDmgxAcKi2:65536:65536::/home/paul:/bin/bash
# hexdump -c /etc/passwd # -c : mode caractère
0000000 p i e r r e : ! ! : 5 0 0 : 5 0
0000010 0 : : / h o m e / p i e r r e :
0000020 / b i n / b a s h \n p a u l : t
0000030 b i Y D m g x A c K i 2 : 6 5 5
0000040 3 6 : 6 5 5 3 6 : : / h o m e /
0000050 p a u l : / b i n / b a s h \n
# od -xc fichier # -x : hexadécimal -c : mode caractère
0000000 6970 7265 6572 213a 3a21 3035 3a30 3035
p i e r r e : ! ! : 5 0 0 : 5 0
0000020 3a30 2f3a 6f68 656d 702f 6569 7272 3a65
0 : : / h o m e / p i e r r e :
0000040 622f 6e69 622f 7361 0a68 6170 6c75 743a
/ b i n / b a s h \n p a u l : t
0000060 6962 4459 676d 4178 4b63 3269 363a 3535
b i Y D m g x A c K i 2 : 6 5 5
0000100 3633 363a 3535 3633 3a3a 682f 6d6f 2f65
3 6 : 6 5 5 3 6 : : / h o m e /
0000120 6170 6c75 2f3a 6962 2f6e 6162 6873 630a
p a u l : / b i n / b a s h \n
Remarque
La commande man ascii affiche les caractères ascii ainsi que les codes octaux et
hexadécimaux.
3-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
Les droits
Les droits
z Répertoire (SGID)
Les fichiers créés dans le répertoire appartiennent au groupe du répertoire
Le système Linux est un système multi-utilisateur où l’accès aux fichiers est contrôlé
par des droits. La commande ls -l permet de les afficher.
Pour contrôler l’accès à un fichier, le système UNIX divise les utilisateurs en trois
catégories :
• Le propriétaire.
• Les membres du groupe associé au fichier.
• Les autres, terme générique qui désigne tous les utilisateurs autres que le
propriétaire et les membres du groupe.
Pour chaque catégorie, il existe trois droits d’accès :
• Le droit de lecture (« read ») qui permet de lire les octets du fichier, ce qui
autorise par exemple la copie du fichier.
• Le droit d’écriture (« write ») qui permet d’ajouter, de retirer ou de modifier des
octets.
• Le droit d’exécution (« execute ») qui permet de considérer le fichier comme une
commande. Ce droit qui peut être positionné quel que soit le fichier, n’a de sens
que si le fichier est un binaire exécutable ou un script.
Le tableau du transparent nous rappelle les valeurs octales associées aux droits. La
valeur 4 désigne le droit de lecture, 2 celui d’écriture et 1 celui d’exécution. Utilisée
comme chiffre des centaines, la valeur concerne le propriétaire, des dizaines, le
groupe, et des unités, les autres.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-9
Module 3 : Les fichiers
Remarques
Pour un répertoire, les droits d’accès ont la signification suivante :
• Le droit « r » de lecture permet de connaître la liste des fichiers du répertoire,
c’est-à-dire l’exécution, avec au plus l’option « -i », de la commande ls.
• Le droit d’écriture permet de créer ou de supprimer des fichiers d’un répertoire. Il
nécessite obligatoirement le droit « x ».
• Le droit d’exécution permet l’accès aux fichiers d’un répertoire. C’est la clé
indispensable pour que les droits d’accès d’un fichier soient contrôlés. A défaut,
aucune opération n’est possible sur le fichier, quels que soient les droits de
l’utilisateur. Le droit d’exécution est aussi nécessaire pour qu’un répertoire
devienne le répertoire courant, grâce à la commande cd.
A ces droits fondamentaux s’ajoutent des droits particuliers qui s’appliquent
essentiellement aux commandes et dont l’administrateur doit impérativement
connaître la signification car ils sont fondamentaux pour la sécurité du système.
Le « sticky bit »
Le « sticky bit » correspond symboliquement à la lettre t et numériquement au droit
1000. Appliqué à un exécutable, il en facilite les chargements successifs en le
conservant, autant que faire se peut, en mémoire vive ou dans la zone d’échange
(« swap »). Appliqué à un répertoire, il limite aux propriétaires des fichiers le droit de
destruction.
3-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
# ls -ld /var/spool/lpd/epson640
drwxr-xr-x 2 root lp 1024 avr 30 11:08 /var/spool/lpd/epson640
Remarques
• Dans le résultat produit par la commande ls –l, les lettres « s » ou « t » masquent
les lettres x associées au droit d’exécution. Ces droits existent cependant. La ligne
-r-sr-sr-x 1 root root 15068 oct 2 1998 /usr/bin/lpr traduit les droits 6555
pour la commande lpr.
• Si le droit d’exécution « x » est absent, les lettres « s » et « t » sont en majuscules.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-11
Module 3 : Les fichiers
Les commandes
Les commandes présentées dans le transparent ont été étudiées dans le manuel UNIX
Utilisateur. Nous attirons l’attention du lecteur sur le fait que l’option –R, pour
récursif, existe sur les commandes chmod, chgrp, et chown. Ces commandes peuvent
agir sur toute une arborescence. Il est évident que cette possibilité doit être utilisée
avec d’infinies précautions, tant le résultat peut être désastreux sur une arborescence.
La syntaxe chown utilisateur.groupe permet de changer le propriétaire et le groupe
en une seule opération (cf. exemple).
La commande find mérite un rappel plus approfondi. Elle est souvent utilisée, compte
tenu de la richesse de ses critères, en frontal d’une autre commande, pour procéder à
la sélection de fichiers.
La commande cp –a, ou cp –dpR est similaire à la commande cp –Rfp, mais elle
préserve les liens symboliques.
La commande find
find répertoire [-critère [argument_du_critère]] ...
La commande find recherche des fichiers dans un arbre et exécute une action sur ces
fichiers. Les critères sont très nombreux, mais le plus utilisé est le nom et l’action la
plus fréquente est l’affichage du chemin d’accès aux fichiers sélectionnés.
La commande find parcourt l’arbre issu du répertoire désigné par le premier argument
et vérifie, pour chaque fichier, s’il répond aux critères énoncés.
Les critères sont contrôlés dans l’ordre de la ligne de commande. Le dernier de la liste
est un pseudo-critère qui entraîne l’affichage du chemin d’accès au fichier ou
l’exécution d’une commande.
Quand un critère n’est pas vérifié, la commande passe au fichier suivant.
3-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
Critères de sélection
-name nomfichier Le fichier doit se nommer nomfichier.
-type typefichier Les valeurs possibles de typefichier sont :
f ordinaire
d répertoire
c,b fichier spécial caractère ou bloc (/dev/xxx)
p tube nommé
s socket locale
l lien symbolique
-size taille Le fichier doit avoir la bonne taille. L’unité est par défaut le bloc
de 512 octets. On peut préciser l’unité « c » pour les caractères,
1515c (1515 caractères) , « b » pour les blocs de 512 octets,
500b et « k » pour les blocs d’un kilo-octet, 500k.
-user propriétaire Le fichier a propriétaire comme propriétaire.
-group groupe Le fichier a groupe comme groupe.
-perm lesdroits Le fichier a lesdroits comme droits d’accès.
On peut également dire –perm –lesdroits pour dire que le fichier
doit avoir au moins les droits lesdroits.
On peut également dire –perm +lesdroits pour dire que le fichier
doit avoir au moins l’un des droits lesdroits.
-ctime nbjours Le statut du fichier a été modifié il y a nbjours. Cette option
inclut la création.
-mtime nbjours La dernière modification remonte à nbjours.
-atime nbjours Le dernier accès remonte à nbjours.
Critères d’exécution
-print Afficher le chemin d’accès aux fichiers.
-exec cmde {} \; Exécuter la commande cmde avec comme argument le fichier.
-ok cmde {} \; Demander une confirmation pour exécuter la commande cmde
avec comme argument le fichier.
Les arguments des critères qui expriment une quantité peuvent prendre trois formes
différentes :
- critère n, signifie exactement n. Ainsi, « -ctime 5 » exprime créé il y a cinq jours.
- critère -n, signifie inférieur à n. « -size -1000 » exprime taille inférieure à 1000
blocs.
- critère +n, signifie supérieur à n. « -size +1000 » exprime taille supérieure à 1000
blocs.
La liaison qui existe par défaut entre les critères est un ET. Il existe des opérateurs
logiques explicites pour connecter les critères. Leur utilisation est assez peu fréquente.
Opérateur logique Expression dans la commande find
ET -a
OU -o
NON !
( expression) \( expression \)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-13
Module 3 : Les fichiers
Exemples
# du –h
4.0k ./soft-jf/CVS
9.0k ./soft-jf
10k .
# df –h
Filesystem Size Used Avail Use% Mounted on
/dev/hda6 288M 134M 139M 49% /
/dev/hda2 46M 2.6M 41M 6% /boot
…
usbdevfs 737M 737M 0 100% /proc/bus/usb
# ls -l fic*
-rw-r--r-- 1 cathy cathy 146 avr 30 12:29 fichier
-rw-r--r-- 1 cathy cathy 1044 avr 30 11:06 fic.doc
# chown pierre fichier # ne change que le propriétaire
# ls -l fichier
-rw-r--r-- 1 pierre cathy 146 avr 30 12:29 fichier
# chown paul.projet fic.doc # change le propriétaire et le groupe
# ls -l fic.doc
-rw-r--r-- 1 paul projet 1044 avr 30 11:06 fic.doc
$ find . -name marteau -print # rechercher tous les fichiers marteau
./outils.copie/outils/marteau
./outils/marteau
$ find /home -name '*.c' -print # afficher les fichiers dont le suffixe est .c
$ find . -type d -print # afficher les noms des répertoires seulement
./outils
./outils/marteau
./outils/tournevis
$ ls -l f* # le groupe de f3 n’est pas users
-rw-r--r-- 1 pierre users 24 Jun 11 16:51 f1
-rw-r--r-- 1 pierre users 21 Jun 11 16:51 f2
-rw-r--r-- 1 pierre adm 271 Oct 23 1994 f3
$ # rechercher les fichiers dont le groupe n’est pas users
$ find /home/pierre ! -group users -print
/home/pierre/f3
$ # rechercher les fichiers modifiés aujourd’hui
$ find /home -mtime 0 -print
$ # rechercher les fichiers qui n’appartiennent pas à Pierre, dont la taille est supérieure
$ # à 10000 octets ou le dernier accès remonte à moins de 30 jours
$ find /home ! -user pierre \( -size +10000c -o -atime -30 \)
$ # rechercher et détruire tous les fichiers réguliers dont la taille est nulle
$ find /home -type f -size 0 -exec rm -f {} \;
3-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
Les
Lesprincipaux
principauxattributs
attributs
a Fichier log
i Fichier non modifiable
s Fichier physiquement détruit
S Fichier synchrone
Les
Lescommandes
commandes
Les attributs d’un fichier sont des caractéristiques supplémentaires qui viennent
s’ajouter, dans le système de fichiers « ext2 » (cf. Module 4 : Les systèmes de
fichiers), aux caractéristiques habituelles.
Les attributs
Attribut Description
A L’heure et la date de dernier accès (« access time ») ne sont plus
modifiées si cet attribut est positionné, ceci par souci de
performance.
a Un fichier qui possède cet attribut ne peut, en écriture, qu’être
ouvert en ajout.
c Les écritures dans le fichier sont automatiquement compressées et
les lectures décompressées.
d Le fichier ne sera pas sauvegardé par la commande dump (cf.
Module 5 : La sauvegarde).
i Le fichier ne peut pas être modifié, détruit, renommé et il est
impossible de créer des liens sur ce fichier. Seul l’administrateur
root peut positionner cet attribut.
s Quand le fichier est détruit, les blocs de données libérés sont remis
à 0.
S Les écritures dans le fichier sont immédiatement effectuées sur le
disque. Le fichier est synchrone.
u Cet attribut permet de récupérer un fichier détruit.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-15
Module 3 : Les fichiers
Remarque
Les attributs A, c et u peuvent être positionnés mais ne fonctionnent pas actuellement.
Prévus pour une version ultérieure, nous invitons le lecteur à en vérifier le bon
fonctionnement.
Les commandes
chattr
La commande chattr permet de modifier les attributs d’un fichier. Sa syntaxe est la
suivante :
chattr [-RV] [-v version] [+-=Asacdisu] fichier…
L’option « –R », comme dans de nombreuses commandes, permet de modifier les
attributs de toute une arborescence.
L’option « –V » rend la commande bavarde.
L’option « –v version » permet de modifier la version d’un fichier, initialement fixée à
1.
lsattr
La commande lsattr visualise les attributs d’un fichier. Sa syntaxe est la suivante.
lsattr [-Radv] [fichier…]
L’option « –R » permet de visualiser les attributs de tous les fichiers d’une
arborescence.
L’option « -a », comme dans la commande ls, permet de visualiser les attributs des
fichiers dont le nom commence par « . ».
L’option « -d », comme dans la commande ls, permet de visualiser les attributs des
répertoires et pas leur contenu.
L’option « -v » affiche la version des fichiers.
Exemples
$ ls
f1 f2 f3
$ chattr +Ss f2
$ su
password :
# chattr +i f1
# exit
$ lsattr
----i--- ./f1
s--S---- ./f2
-------- ./f3
$ rm f1
rm: détruire le fichier protégé en écriture `f1'? rm: o
Ne peut délier `f2'.: Opération non permise
$ chattr –s f2
$ lsattr f2
---S---- f2
3-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 3 : Les fichiers
Objectifs :
Savoir changer les caractéristiques
d’un fichier
Gérer une arborescence de fichiers et
de répertoires
Durée : 30 minutes.
Exercice n°1
Recherchez les répertoires de nom « cron » sur votre système.
Exercice n°2
Recherchez tous les fichiers tubes de votre système.
Exercice n°3
Recherchez tous les répertoires accessibles en écriture pour les autres.
Exercice n°4
Connectez-vous avec le compte pierre et créez une arborescence de fichiers en
utilisant les commandes suivantes :
$ cp /etc/passwd /etc/group ~
$ mkdir ~/boot
$ cp /etc/inittab /etc/profile ~/boot
Listez cette arborescence en utilisant différentes commandes.
Exercice n°5
En étant connecté en tant qu’administrateur, mettez les droits 700 à l’ensemble des
fichiers de l’utilisateur pierre.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 3-17
Module 3 : Les fichiers
Exercice n°6
En utilisant le manuel, retrouvez les différentes utilisations du droit SGID dans le
système Linux.
Exercice n°7
Créez un fichier par la commande cp et rendez-le non modifiable. Listez ses attributs.
Essayez de le modifier.
3-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
• « File System »
• mount, umount
• inode
• sysv, ext2, iso9660
• mkfs,mke2fs,e2fsck
• /etc/fstab
• Les quotas
Contenu
Arborescence et systèmes de fichiers
Montage et démontage des systèmes de fichiers
Les inodes
Les différents types de systèmes de fichiers
Les systèmes de fichiers journalisés
La gestion de l’espace disque, la commande df
Panorama des commandes de gestion des systèmes de fichiers
L’automatisation du montage des systèmes de fichiers
La gestion des quotas
Références
HOWTO : automount MINI-HOWTO, quota MINI-HOWTO,
filesystems-HOWTO
Le manuel : mke2fs(8), mount(8), fstab(5), debugfs(8), e2fsck(8)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-1
Module 4 : Les systèmes de fichiers
/
/
(root)
etc bin
/home
home usr
/usr
L’arborescence (rappel)
Les utilisateurs voient une arborescence de fichiers unique. Cette arborescence est en
fait l’unification de plusieurs arbres. Chaque arbre est stocké sur un disque local du
système Linux ou bien est un arbre distant (cf. Module 15 : Le réseau). La structure
d’accueil des fichiers d’un arbre d’un disque du système Linux s’appelle un système
de fichiers (« File system »). Un disque Linux ne peut contenir qu’un seul système de
fichiers. Au cours du temps, la structure interne des systèmes de fichiers a évolué pour
s’adapter à l’augmentation de la capacité des disques et des fichiers.
La procédure d’installation de chaque système Linux effectue la création et le
peuplement des systèmes de fichiers initiaux. L’administrateur réalise ensuite la
création et la gestion des « systèmes de fichiers » supplémentaires. L’unification des
arborescences se fait en attachant la racine d’un arbre d’un disque à un répertoire d’un
système de fichiers déjà actif : on dit que l’on procède au montage du système de
fichiers (cf. Le montage des systèmes de fichiers). A défaut d’avoir réalisé cette
opération, les fichiers d’un système de fichiers sont inaccessibles. Comme il n’existe
qu’un seul attachement possible entre la racine d’un arbre d’un système de fichiers et
un répertoire, et qu’un disque ne peut contenir qu’un système de fichiers, on confond
parfois, dans l’expression, le chemin d’accès au système de fichiers (le chemin de
montage) et le disque qui le contient.
4-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
• Les disques amovibles font naturellement l’objet d’une création d’un système de
fichiers.
Des critères liés à des choix de gestion :
• La sécurité de fonctionnement est améliorée quand on dispose de plusieurs
systèmes de fichiers. Si un système de fichiers est endommagé, les dégâts sont
limités au disque qui le contient.
• Les performances sont améliorées par la diminution du temps d’accès aux fichiers.
Le morcellement des fichiers est réduit à l’espace du disque où il est stocké.
• La division de l’espace en plusieurs systèmes de fichiers permet de cloisonner
l’espace pour les utilisateurs ou les applications. Comme les utilisateurs ou les
applications n’ont le droit de création de fichiers que dans certains répertoires,
l’administrateur est certain qu’ils ne pourront pas créer de fichiers de taille
supérieure à l’espace disponible du disque où se trouvent leurs répertoires.
• Les administrateurs qui font le choix d’effectuer des sauvegardes physiques
peuvent ainsi créer des systèmes de fichiers de même taille que les unités
d’archivage.
• Certaines arborescences sont par nature d’excellentes candidates pour être des
systèmes de fichiers (beaucoup de systèmes UNIX le réalisent dès l’installation).
Citons entre autres : root (/), /boot, /usr, /home, /var, /tmp, /usr/man, /mnt.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-3
Module 4 : Les systèmes de fichiers
/ /
pierre cathy
umount
/dev/hda2
/dev/hda2 /
pierre cathy
# mount /dev/hda2 /home
# umount /home
4-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
La structure d’ext2
La notion d’inode
Un répertoire
323 55 ..
323 12 4 fic1
520 15 7 fic.bat
323 15 7 fichier
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-5
Module 4 : Les systèmes de fichiers
fichier, pour un disque donné, est l’unique moyen d’identifier sans ambiguïté un
fichier. La commande ls –i permet de connaître le numéro d’inode d’un fichier.
Nous présentons la structure d’un inode d’un système de fichiers de type « ext2 ».
C’est actuellement le système de fichiers le plus performant sous Linux. C’est, du
reste, le type de système de fichiers par défaut pour la commande mkfs qui crée les
systèmes de fichiers.
4-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-7
Module 4 : Les systèmes de fichiers
• Le nombre d’inodes.
• Le nombre d’inodes libres.
• L’état du système de fichiers : monté ou démonté.
• Le nombre de blocs par ensemble de blocs.
• Le nombre d’inodes par ensemble de blocs.
• Le nombre maximal de montage avant de réaliser un fsck automatique.
• Le nombre de montages réalisés depuis le dernier fsck.
• Date du dernier fsck.
• Temps maximum entre deux fsck.
La table des inodes.
Un inode a été décrit dans le paragraphe précédent.
Dans la table des inodes, plusieurs entrées sont réservées, notamment :
Le premièr inode qui mémorise les « bads blocs » du système de fichiers.
Le second inode qui est celui du répertoire racine du système de fichiers.
Remarque
Les informations présentées dans ce chapitre sont décrites dans les fichiers d’inclusion
du répertoire /usr/include/linux : ext2_fs.h, ext2_fs_i.h et ext2_fs_sb.h et le livre
Programmation Linux 2.0 .
4-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-9
Module 4 : Les systèmes de fichiers
ainsi au système de fichiers baptisé ext2 (« Second Extended File System »), devenu
aujourd’hui le standard de fait des systèmes de fichiers de Linux.
Les principales caractéristiques du type ext2 sont :
• La division des blocs en groupes de blocs, notion assez proche du « FFS » de
UNIX BSD. Chaque groupe de blocs possède sa table d’inodes.
• Il existe plusieurs copies du super bloc, le bloc qui contient les informations de
gestion du système de fichiers.
• La taille du bloc est déterminée à la création du système de fichiers. Elle peut être
de 1, 2 ou 4 Ko.
• La fragmentation des blocs est prévue dans les structures du système de fichiers
mais n’est pas encore implémentée. Le fragment, une division d’un bloc, est utile
dans le cas de fichiers de petite taille. Il évite une perte de place sur disque.
• Le système ext2 introduit la notion de lien symbolique rapide (« Fast Symbolic
Link »). Un lien symbolique dont la taille n’excède pas 64 octets est stocké dans
l’inode et n’occupe pas de blocs de données sur disque.
• Le paramétrage fin du système de fichiers par l’administrateur. L’administrateur
peut ainsi décider du contrôle automatique du système de fichiers par la
commande fsck, même s’il n’est pas endommagé. Les choix sont définis par des
paramètres. Le contrôle est déclenché si le compteur de montage « s_mnt_count »
a atteint la limite « s_max_mnt_count ».
• Les attributs de fichiers : suppression sécurisée d’un fichier, écriture synchrone,
… (cf. Les commandes chattr(1) et lsattr(1)).
• La taille du plus gros fichier et du système de fichiers dépend du type de
processeur : 32 ou 64 bits. Pour les ordinateurs actuels, équipés d’un processeur
32 bits, la taille du plus gros fichier est de 4 Go et la taille maximum d’un système
de fichiers ext2 de 4 To (téra-octets).
Il existe des types de système de fichiers dont le choix n’incombe pas à
l’administrateur mais relève d’utilisations particulières. Parmi ceux-ci, on peut noter le
système de fichiers des CD-ROM qui est ISO et les systèmes de fichiers en RAM,
utilisés de manière transparente lors de l’installation du système.
Le tableau qui suit liste les principaux systèmes de fichiers du monde Linux.
Système de fichiers Description
minix Le premier système de fichiers de Linux. Bien que
limité, il est pratique pour les systèmes de fichiers sur
disquette ou en RAM.
ext La version améliorée de Minix. Il est aujourd’hui
obsolète et remplacé par ext2.
xiafs Un système de fichiers dérivé de Minix. Il est stable et
simple, mais rarement utilisé.
ext2 Le standard des systèmes de fichiers sous Linux.
msdos Le système de fichiers FAT16 de MS-DOS. Il permet
le montage de systèmes de fichiers MS-DOS dans
l’arborescence Linux.
umsdos C’est un système de fichiers MS-DOS étendu. Il
implémente les noms de fichiers longs, les « UID » et
les « GID », les fichiers spéciaux, les droits POSIX sur
4-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Remarques
• Le problème du choix du type de système de fichiers à installer sur un nouveau
disque est souvent un faux problème. Le système Linux privilégie un choix, le
système ext2.
• Le montage d’un système de fichiers sur un système de fichiers d’un type différent
est possible et complètement transparent pour l’administrateur.
Les paramètres fondamentaux de création d’un système de fichiers sont :
• Le type, si ce n’est pas celui par défaut du système.
• La taille, souvent celle du disque où l’on crée le système de fichiers.
• Le nombre d’inodes.
• La taille d’un bloc.
• Le nombre de groupes de blocs.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-11
Module 4 : Les systèmes de fichiers
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 796033 318675 436234 42% /
/dev/hda6 101471 454 95777 0% /home
/dev/hda5 101471 28 96203 0% /tmp
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hda1 206040 28565 177475 14% /
/dev/hda6 26208 215 25993 1% /home
/dev/hda5 26208 40 26168 0% /tmp
L’espace disque est une ressource précieuse, même si les capacités des disques ont
considérablement évolué ces dernières années. L’administrateur doit en contrôler
l’usage.
Il dispose pour cela de commandes simples et pratiques dont nous ne faisons ici que
rappeler la signification et donner quelques options significatives.
La commande df indique l’espace libre des disques contenant des systèmes de fichiers
montés. Les tailles sont affichées en kilo-octets. Les principales options sont :
-i Affiche les informations sur l’utilisation des inodes et non des blocs.
-k Affiche les tailles en kilo-octets. L’option est significative dans le cas où
la variable POSIXLY_CORRECT est définie (cf. Remarque).
-T Affiche également le type de système de fichiers.
Remarque
Si la variable d’environnement POSIXLY_CORRECT est définie, les commandes du
et df affichent le nombre de blocs de 512 octets.
La commande find permet de rechercher des fichiers selon différents critères dont
celui de la taille et de la date du dernier accès.
4-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
A titre d’exemple, recherchons les fichiers des utilisateurs dont la taille est supérieure
à 100 Ko et dont le dernier accès remonte à plus de 90 jours :
find /home –size +100k –atime +90 –print
Il existe, en sus, des fichiers qui peuvent être détruits ou purgés, avec une périodicité
qui varie selon les cas :
Les fichiers créés par les applications dans les répertoires /tmp et /var/tmp.
Les fichiers core qui sont générés quand un processus meurt sur réception de certains
signaux, souvent émis par le noyau à la suite d’une anomalie de fonctionnement. Ils
contiennent l’image du processus quand il est mort et sont destinés aux programmeurs
qui veulent effectuer, à chaud, une analyse post-mortem de l’application. Ils peuvent
être détruits sinon sans remord.
Les fichiers log qui enregistrent des informations relatives au suivi d’un service, d’un
logiciel. Ils peuvent être purgés dès que l’administrateur a analysé leur contenu et les a
archivés si nécessaire.
Remarque
Pour vider un fichier, il suffit d’exécuter la commande :
cp /dev/null fichier
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-13
Module 4 : Les systèmes de fichiers
mkfs
Parmi les commandes standard d’UNIX, la commande mkfs est bien sûr la plus
importante. C’est elle qui crée un système de fichiers sur un disque. Elle comporte les
trois paramètres fondamentaux d’un système de fichiers :
• Le nom du disque où le système de fichiers doit être créé.
• Le type du système de fichiers à créer.
• La taille du système de fichiers à créer.
Elle peut aussi comporter d’autres options, spécifiques à un type de systèmes de
fichiers, et nous renvoyons l’administrateur au manuel de référence de son système.
Remarque
L’outil intégré d’administration linuxconf est le meilleur moyen de création d’un
système de fichiers, tant pour connaître le type de systèmes de fichiers privilégiés que
les principales options complémentaires.
4-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
mke2fs
La commande mke2fs permet de créer un système de fichiers de type ext2. Sa syntaxe
est la suivante :
mke2fs [ options] disque [ taille_du_FS_en_blocs]
Le disque est désigné par un fichier spécial de type bloc. A défaut de préciser la taille
en blocs de 1 kilo-octet du système de fichiers, le système de fichiers occupe la totalité
du disque où il est créé.
Les principales options sont :
-b taille_du_bloc Indique la taille du bloc en octets.
-i octet_par_inode Permet de calculer le nombre d’inodes. Pour chaque
« octet_par_inode » sur disque, un inode est créé. La valeur
minimale est de 1024. Pour une capacité disque de 100 Mo
et une valeur de 4096 pour l’attribut « octet_par_inode », le
nombre d’inodes sera de 25 000.
-N nombre_de_inodes Indique le nombre d’inodes qu’il y aura sur le disque.
-m pourcentage_réservé Indique le pourcentage d’espace disque réservé à
l’administrateur. La valeur par défaut est de 5%.
-S La commande mke2fs ne crée que le super bloc et le
descripteur des groupes de blocs. Il faut ensuite exécuter
e2fsck pour les initialiser à partir des autres données du
système de fichiers. Cette solution extrême n’est à mettre en
œuvre que si le super bloc et ses copies sont endommagés.
-f taille_du_fragment Cette option est reconnue mais elle n’est pas encore
implémentée. Elle permettra de fragmenter un bloc. Cela
évitera une inoccupation inutile de place disque pour les
petits fichiers.
Exemples
Création d’un système de fichiers de type Minix sur disquette.
# mkfs -t minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-15
Module 4 : Les systèmes de fichiers
mount
La commande mount réalise l’attachement d’un système de fichiers d’un disque
Linux à un répertoire d’un système de fichiers déjà monté. Elle comporte
principalement le nom du disque et le chemin absolu du répertoire de montage. Sa
syntaxe est la suivante :
mount [-hV]
mount -a [-fnrvw] [-t type]
mount [-fnrvw] [-o options [,...]] périph | rép
mount [-fnrvw] [-t type] [-o options] périph rép
-h Affiche un message d’aide.
-V Affiche le numéro de version.
-a Procède au montage de tous les systèmes de fichiers décrits dans le
fichier /etc/fstab (cf. Automatiser le montage des systèmes de
fichiers).
-t type Le type indique le type de système de fichiers qui réside sur le disque
à monter. Il est obligatoire si ce n’est pas ext2.
-f L’exécution de la commande est simulée mais elle n’est pas exécutée.
-n Le système de fichiers monté n’est pas mémorisé dans /etc/mtab.
C’est obligatoire si l’on souhaite que /etc soit sur un disque différent
de /.
-r Le système de fichiers est monté en lecture seulement.
-w Le système de fichiers est monté en lecture et en écriture. C’est la
valeur par défaut.
-v Le mode bavard.
-o options Les options qui suivent « -o » sont séparées par des virgules.
Certaines sont communes à tous les types de systèmes de fichiers,
d’autres sont spécifiques.
Communes suid/nosuid Prendre en compte, ou non, les bits « s » des
fichiers.
async/sync Les entrées/sorties sont asynchrones ou
synchrones.
ro/rw Equivalent à « -r » et « -w ».
remount Remonter un système de fichiers déjà monté.
Cette possibilité est intéressante quand on
souhaite modifier les attributs de montage
dynamiquement.
loop=[/dev/loop<n>] Monte un fichier ordinaire contenant l’image
d’un système de fichiers, par exemple créé
par dd. Le système de fichiers est associé à
un périphérique /dev/loop<n>, où <n> est
compris entre 0 et 7. A défaut, c’est le
4-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Remarque
Si un système de fichiers est monté sur un répertoire non vide, les fichiers du
répertoire sont cachés pendant toute la durée du montage. Il existe une arborescence
dédiée au montage des systèmes de fichiers : /mnt, /mnt/floppy, /mnt/cdrom.
umount
La commande umount, qui démonte un système de fichiers, rompt le lien qui existe
entre le répertoire de montage et le système de fichiers. Les fichiers du disque sont à
nouveau inaccessibles jusqu’au prochain montage.
# umount /dev/hda3
ou
# umount /mnt
L’argument de la commande umount est indifféremment le nom du disque ou le
répertoire de montage (le lien est unique).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-17
Module 4 : Les systèmes de fichiers
fsck, e2fsck
La commande fsck contrôle et répare un système de fichiers corrompu. Sa variante,
e2fsck, est propre au système de fichiers ext2. Elle évite d’avoir à préciser le type du
système de fichiers à contrôler. La commande fsck est, en général, automatiquement
exécutée sur tous les systèmes de fichiers où cela est nécessaire pendant le démarrage
du système. Lors de son utilisation manuelle, les systèmes de fichiers qui sont
contrôlés doivent être démontés, sauf le système de fichiers principal root, pour qu’il
n’y ait pas d’activité sur le disque pendant l’exécution de fsck.
Le principal argument de la commande fsck est le nom du disque à contrôler. La
commande fsck propose également de nombreuses options dont les plus significatives
sont :
-y La commande fsck n’interroge plus l’utilisateur, la réponse est oui à toutes
les questions.
-n La commande fsck n’interroge plus l’utilisateur, la réponse est non à
toutes les questions.
-t type « type » désigne le type du système de fichiers (ext2, …).
-b # # désigne le numéro du bloc qui contient la copie du super bloc à utiliser
(cas où le super bloc est corrompu).
La commande stats de debugfs donne les caractéristiques des groupes de
blocs. Pour chaque ensemble de blocs, la commande affiche
l’emplacement des « Block bitmap ». La copie du super bloc se trouve
deux blocs plus loin. Si le « block bitmap » est en 32770, le super bloc est
en 32768. On peut activer directement la commande stats :
« debugfs –R stats /dev/hda6 ».
Le temps d’exécution de la commande fsck peut être relativement long, compte tenu
du parcours croisé qu’elle effectue entre la table des inodes et les répertoires de l’arbre
pour contrôler la cohérence du système de fichiers. Elle se déroule en plusieurs phases
de contrôle et demande à l’administrateur de décider, oui ou non, des réparations qui
ne peuvent être faites automatiquement.
Quand la commande rencontre un fichier perdu, qui possède un inode mais plus de
lien, elle crée un lien pour ce fichier dans le répertoire « lost+found », situé dans la
racine du système de fichiers. Le lien attribué est le numéro d’inode, ce qui évite les
conflits de nom. Si le répertoire « lost+found » n’a pas été créé par la commande
mkfs, il faut le faire manuellement.
# mount /dev/hda3 /mnt
# cd /mnt
# mkdir lost+found
La démarche de l’administrateur qui récupère des fichiers dans le répertoire
« lost+found » pour les identifier peut être la suivante :
# mount /dev/hda3 /mnt
# cd /mnt/lost+found
# ls –l # pour connaître le propriétaire, le groupe et le type du fichier
# file * # pour connaître le type du contenu des fichiers ordinaires
# more fichier # pour un fichier de type texte (« text »)
# od fichier # pour les fichiers de données (« data »)
4-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Remarque
La commande fsck est une interface générique qui appelle la commande ad hoc
fsck.type_du_fs. Dans le cas du système de fichiers ext2, il est encore plus simple
d’utiliser la commande e2fsck.
debugfs
La commande debugfs permet de déboguer un système de fichiers. L’administrateur
peut ainsi lire ou modifier n’importe quel bloc du système de fichiers. La commande
debugfs ouvre, par défaut, le système de fichiers en lecture seulement. Il est évident
que cette commande ne doit être utilisée qu’en dernier recours et par des
administrateurs qui maîtrisent parfaitement la structure du système de fichiers.
Syntaxe
debugfs [–R requête] [–w] disque
L’option « –w » permet d’ouvrir le disque en lecture et en écriture.
L’option « –R requête » permet de faire exécuter une seule requête en mode non
interactif, ce qui peut être utile dans un script.
Afficher l’inode d’un fichier.
# ls -i /mnt/floppy
total 18
13 -rw-r--r-- 1 root root 691 mai 8 10:58 fic.user
14 -rw-r--r-- 1 root root 0 mai 8 10:58 fiche1
15 -rw-r--r-- 1 root root 0 mai 8 10:58 fiche2
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-19
Module 4 : Les systèmes de fichiers
du et df
Les commandes du et df permettent de gérer l’espace disque (cf. Gestion de l’espace
disque).
lsof
La commande lsof permet de lister les fichiers ouverts et de connaître les applications
qui y accèdent.
# lsof # liste des fichiers ouverts
# lsof /dev/hda5 # liste les processus qui accèdent au système de fichiers de la
# partition /dev/hda5
# kill $(lsof -t /dev/hda5) # tue les processus identifiés précédemment
4-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
tune2fs
La commande tune2fs permet de modifier les paramètres ajustables d’un système de
fichiers de type ext2. La syntaxe qui suit présente les principales options de tune2fs :
tune2fs [ -l ] [ -c max_montage] [ -i intervalle[d|m|w]] [ -m blocs_réservés ] device
-l Affiche le super bloc.
-c max_montage Fixe le nombre maximum de montage entre deux vérifications
du système de fichiers.
-i intervalle[d|m|w] Fixe le nombre de jours (d), mois (m) ou semaines (w) entre
deux vérifications du système de fichiers, six mois par défaut.
-m blocs_réservés Fixe le pourcentage de blocs du système de fichiers réservés à
root.
La commande tune2fs ne doit jamais être exécutée sur un système de fichiers en cours
d’utilisation, monté en lecture et en écriture.
dumpe2fs
La commande dumpe2fs affiche des informations sur le super bloc et les groupes de
blocs.
badblocks
La commande badblocks recherche les blocs physiques endommagés d’une partition.
ext2resize
La commande ext2resize permet de modifier la taille d’un système de fichiers de type
ext2. Son auteur la définit comme dangereuse et à utiliser avec précaution. La
commande ext2resize modifie la taille du système de fichiers, mais ne modifie pas la
taille de la partition qui le contient. Sa syntaxe est suivante :
ext2resize disque nouvelle_taille
Exemple de modification de la taille d’un système de fichiers créé sur disquette.
# mke2fs /dev/fd0
# ext2resize /dev/fd0 500000
ext2_resize_fs
direct hits 0 indirect hits 0 misses 0
# tune2fs -l /dev/fd0
tune2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 184
Block count: 488
Block size: 1024
…
# ext2resize /dev/fd0 1300000
ext2_resize_fs
ext2_grow_fs
ext2_block_relocate
ext2_block_relocate_grow
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-21
Module 4 : Les systèmes de fichiers
ext2_grow_group
direct hits 780 indirect hits 0 misses 1
# tune2fs -l /dev/fd0
tune2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem state: clean
…
Filesystem OS type: Linux
Inode count: 184
Block count: 1269
e2label
La commande e2label change l’étiquette d’un système de fichiers ext2.
Un exemple complet
Création d’un système de fichiers. Les blocs font 4096 octets, 10%
du disque est réservé à l’administrateur et des fragments de 1024
octets
# mke2fs -b 4096 -f 1024 -m 10 /dev/sda7
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Warning: fragments not supported. Ignoring -f option
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
52224 inodes, 52203 blocks
5220 blocks (10.00%) reserved for the super user
First data block=0
2 block groups
32768 blocks per group, 32768 fragments per group
26112 inodes per group
Superblock backups stored on blocks:
32768
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
Visualisation des informations de gestion.
# tune2fs -l /dev/sda7 > /tmp/fic
tune2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 2706277e-b296-4c15-b3df-6adbe1135397
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: filetype sparse_super
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 52224
Block count: 52203
Reserved block count: 5220
Free blocks: 50558
Free inodes: 52213
4-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 26112
Inode blocks per group: 816
Last mount time: Thu Jan 1 01:00:00 1970
Last write time: Mon Oct 30 16:32:17 2000
Mount count: 0
Maximum mount count: 20
Last checked: Mon Oct 30 16:32:14 2000
Check interval: 15552000 (6 months)
Next check after: Sat Apr 28 17:32:14 2001
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Montage du système de fichiers sur /mnt/appli
# mount /dev/sda7 /mnt/appli
# ls –iR
.:
13 fracine1 12 fracine2 11 lost+found 26113 r1
./lost+found:
./r1:
26114 ls
Vérification du disque après un « crash »
# e2fsck /dev/sda7
e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
/dev/sda7 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Unconnected directory inode 26113 (/???)
Connect to /lost+found? yes
Pass 4: Checking reference counts
Unattached inode 13
Connect to /lost+found? yes
Inode 13 ref count is 2, should be 1. Fix? yes
Inode 26113 ref count is 5, should be 2. Fix? yes
Pass 5: Checking group summary information
/dev/sda7: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda7: 15/52224 files (0.0% non-contiguous), 1659/52203 block
# mount /dev/sda7 /mnt/appli
# ls –iR
.:
12 fracine2 11 lost+found
./lost+found:
13 #13 26113 #26113
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-23
Module 4 : Les systèmes de fichiers
./lost+found/#26113:
26114 ls
Le répertoire « lost+found » contient deux fichiers trouvés. Les liens sont les numéros
d’inode des fichiers.
On essaie de reconstituer les liens d’origine.
# cd lost+found/
# ls -l
total 8
-rw-r--r-- 1 root root 6 oct 30 16:49 #13
drwxr-xr-x 2 root root 4096 oct 30 16:49 #26113
# file \#13
#13: ASCII text
# ls -R \#26113
#26113:
ls
On reconstitue si possible.
# mv \#13 ../fracine1
# mv \#26113 ../r1
Modification du nombre de blocs réservés à l’administrateur
# tune2fs –m 15 /dev/sda7
tune2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Setting reserved blocks percentage to 15 (7830 blocks)
Vérification du disque après un « crash » en utilisant une copie
du super bloc
Destruction du super bloc.
# dd if=/dev/zero of=/dev/sda7 bs=4k count=1
1+0 enregistrements lus.
1+0 enregistrements écrits.
# mount /dev/sda7 /mnt/appli
mount: you must specify the filesystem type
On indique l’adresse de la copie.
# e2fsck -b 32768 /dev/sda7
e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
/dev/sda7 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda7: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda7: 15/52224 files (0.0% non-contiguous), 1659/52203 blocks
On remonte le système de fichiers.
# mount /dev/sda7 /mnt/appli
# cd /mnt/appli
4-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
# ls –iR
.:
13 fracine1 12 fracine2 11 lost+found 26113 r1
./lost+found:
./r1:
26114 ls
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-25
Module 4 : Les systèmes de fichiers
Introduction à la journalisation
A une époque où la taille des systèmes de fichiers devient de plus en plus importante,
la journalisation vise principalement à diminuer la durée du contrôle et de la
réparation d’un système de fichiers. Elle assure aussi une meilleure intégrité des
fichiers en cas de crash.
Dans le monde UNIX, on rencontre principalement le système de fichiers « vxfs »
(« Veritas File System »), le système « JFS » (« Journaled FileSystem ») de la société
IBM et le système « XFS » de la société Silicon Graphics.
Dans le monde Linux, on rencontre le système de fichiers « ext3 », compatible avec
son prédécesseur « ext2 », le système « Reiser FS » et «XFS » déjà nommé.
L’idée maîtresse des systèmes journalisés est de conserver l’ensemble des données de
gestion du système de fichiers (« metadata ») dans un journal enregistré sur disque,
plutôt que dans les mémoires cache du système. En cas de crash, la commande fsck
contrôle la cohérence du système de fichiers, rapidement, en quelques secondes, à
partir des informations contenues dans le journal, sans avoir à analyser la totalité des
inodes et de l’arborescence des répertoires.
4-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-27
Module 4 : Les systèmes de fichiers
Option Description
-j L’option « –j » génère la création d’un système de fichiers ext3.
Le journal est interne, il est stocké dans le système de fichiers.
-J options Les options sont de la forme option=valeur,…
Les options sont :
size=taille_journal
L’unité est le méga octets. Le journal doit avoir une taille d’au
moins 1000 fois la taille du bloc du système de fichiers.
device=journal_device
Cette option indique le nom de la partition qui contient le journal
(cf. commande mke2fs, option –O).
La commande e2fsck
La commande e2fsck permet d’indiquer la localisation du système de fichiers quand il
est externe.
Option Description
-j journal L’argument de l’option « –j » indique la localisation du journal.
La commande mount
La commande mount, pour ext3 comme pour tout autre système de fichiers, permet de
préciser des options spécifiques. Les options sont de la forme –o option,…
Le tableau qui suit présente les principales options utilisables à la suite de l’option
« -o ».
Option Description
journal=update Cette option convertit un système de fichiers de révision 0 en
révision 1.
data=mode L’argument « mode » indique le type de journalisation. Les
choix possibles sont les suivants :
data=journal
Quand le système de fichiers est monté avec ce mode, les blocs
de données sont aussi écrits dans le journal. Cela nécessite un
journal d’une taille conséquente. Les blocs de données sont
écrits deux fois sur disque. Les performances s’en trouvent donc
notablement réduites.
data=ordered
C’est le mode par défaut des systèmes de fichiers de révision 1.
Dans ce mode, seuls les blocs de gestion sont journalisés. Les
blocs de données sont écrits sur disque avant que la transaction
soit terminée. Cela garantit le type d’intégrité que nous
présentons dans l’introduction.
data=writeback
Comme dans le mode précédent, seuls les blocs de gestion sont
journalisés, mais il est possible que des blocs de données
d’anciens fichiers soient alloués en double. On retrouve les
possibilités d’erreur du système de fichiers ext2.
4-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Remarques
Le système de fichiers principal (« root file system ») peut être de type ext3. Au boot,
il sera monté comme ext3, à moins que vous précisiez l’option de lilo :
rootfstype=ext2. Il est possible de fournir des options de montage en utilisant l’option
rootflags de LILO, par exemple : rootflags=data=journal.
Le système de fichiers d’un volume logique peut être de type ext3.
Les quotas (cf. Chapitre Les quotas) fonctionnent sur un système de fichiers ext3.
Certains problèmes peuvent exister selon la version du noyau.
Les commandes de nom mke3fs, e3fsck… qui peuvent exister ne sont que
l’expression de la commande équivalente pour ext2 avec l’option de journalisation.
Exemples
Création d’un système de fichiers ext2 sur le disque /dev/hda9
# mke2fs /dev/hda9
mke2fs 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09...
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: 0/13 1/13 2/13 3/13 4/13 5/13 6/13 7/13 8/13 9/13 10/13 11/13
12/13 done
Writing superblocks and filesystem accounting information: done
…
# mount /dev/hda9 /mnt/appli9
# mount
...
/dev/hda9 on /mnt/appli9 type ext2 (rw)
# df
Filesystem 1k-blocks Used Available Use% Mounted on
...
/dev/hda9 102454 13 97151 1% /mnt/appli9
Création d’un système de fichiers ext3 sur le disque /dev/hda9
# mke2fs -j /dev/hda9
mke2fs 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09
...
Creating journal (4096 blocks): done
…
# mount
...
/dev/hda9 on /mnt/appli9 type ext3 (rw)
# df
Filesystem 1k-blocks Used Available Use% Mounted on
...
/dev/hda9 102454 4127 93037 5% /mnt/appli9
Le nombre de blocs utilisés est de 4127 blocs pour le type ext3 et de 13 pour le
système de type ext2. Notons que le journal est de 4 Mo.
Conversion d’un système de fichiers ext2 en ext3
# mke2fs /dev/hda10
# mount
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-29
Module 4 : Les systèmes de fichiers
...
/dev/hda10 on /mnt/appli10 type ext2 (rw)
# tune2fs -j /dev/hda10
tune2fs 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09
Creating journal inode: done
…
# mount
...
/dev/hda10 on /mnt/appli10 type ext3 (rw)
Montage d’un système de fichiers ext3 en tant que ext2
# mount -t ext2 /dev/hda9 /mnt/appli9
...
/dev/hda9 on /mnt/appli9 type ext2 (rw)
Création d’un journal externe, ici /dev/hda11
Création du journal
# mke2fs -O journal_dev /dev/hda11
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
0 inodes, 5662 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
0 block group
32768 blocks per group, 32768 fragments per group
0 inodes per group
Superblock backups stored on blocks:
Zeroing journal device: done
Création du système de fichiers
# mke2fs -J device=/dev/hda11 /dev/hda9
mke2fs 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
...
Adding journal to device /dev/hda11: done
Writing superblocks and filesystem accounting information: done
...
# mount -t ext3 /dev/hda9 /mnt/appli9
Remarques
La création d’un journal externe nécessite un paquetage e2fsprogs très récent, de
version 1.25 ou plus de préférence.
Quand le journal est externe, il est nécessaire d’indiquer explicitement le type ext3.
4-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-31
Module 4 : Les systèmes de fichiers
Super block is in 16
Bitmap blocks (1) are :
17
Journal size 8192 (blocks 18-8210 of file /dev/hda9)
Root block 8211
Hash function "r5"
<-------------mkreiserfs, 2001------------->
reiserfsprogs 3.x.0j
# mount –t reiserfs /dev/hda9 /mnt/appli9
/dev/hda1 on /mnt/windows type vfat (rw)
/dev/hda9 on /mnt/appli9 type reiserfs (rw)
Référence pour reiserfs
Internet : reiser@idiom.com
http://www.devlinux.com/namesys
4-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
# more /etc/fstab
/dev/hda5 / ext2 defaults 1 1
/dev/hda6 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
4 6
1 2
Fichier Options Ordre de
Répertoire de contrôle
spécial montage
de montage 3 pour fsck
bloc
abritant Type de FS 5
le FS (minix,ext2, Système de
nfs,...) fichiers à sauver
pour dump
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-33
Module 4 : Les systèmes de fichiers
ou
# mount /mnt/cdrom
Il est possible de mentionner d’autres attributs :
« suid », « nosuid » qui indiquent la prise en compte (« suid ») ou non (« nosuid »)
du bit « s » des fichiers exécutables (cf. Module 3 : Les fichiers). Par défaut
l’attribut est « suid ».
« usrquota » et « grpquota » qui signifient que la gestion des quotas (cf. Les
quotas) est active pour ce système de fichiers.
Remarques
Les attributs de montage peuvent être précisés dans la ligne de commande mount.
Le choix des attributs de montage et l’automatisation peuvent être facilement réalisés
par l’outil intégré d’administration, ce qui évite de mémoriser la forme du fichier
d’automatisation.
• L’indication pour la commande de sauvegarde dump si le système de fichiers doit
être sauvegardé. Si le champ est à 0, le système de fichiers ne sera pas sauvegardé.
• L’indication pour la commande fsck de l’ordre dans lequel elle doit contrôler les
systèmes de fichiers.
# more /etc/auto.mnt
cdrom -fstype=iso9660,ro,nosuid :/dev/cdrom
4-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Remarque
L’installation du paquetage crée un fichier /etc/auto.master et un fichier /etc/auto.misc
comme modèle de détail.
Exemple
# ls /mnt/auto # le répertoire /mnt/auto est vide
# cd /mnt/auto/appli
# ls
fic1 fic2
# mount
/dev/sda5 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/sda1 on /boot type ext2 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
automount(pid933) on /mnt/auto type autofs
(rw,fd=5,pgrp=933,minproto=2,maxproto=3)
/dev/hdc on /mnt/auto/cdrom type iso9660 (ro,nosuid,nodev)
aurore6:/mnt/appli on /mnt/auto/appli type nfs (rw,nosuid,addr=192.0.0.6)
# mount #Les systèmes de fichiers sont démontés
/dev/sda5 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/sda1 on /boot type ext2 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
automount(pid933) on /mnt/auto type autofs
(rw,fd=5,pgrp=933,minproto=2,maxproto=3)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-35
Module 4 : Les systèmes de fichiers
# ls /mnt/flopext2
ls: /mnt/flopext2: Erreur d'entrée/sortie
4-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
# cd
On insère une disquette au format MS-DOS.
# cd /mnt/flopext2/
bash: cd: /mnt/flopext2/: Erreur d'entrée/sortie
# cd /mnt/floppy/
# ls
nis.doc*
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-37
Module 4 : Les systèmes de fichiers
Les quotas
Les quotas
Introduction
La mise en œuvre des quotas va permettre à l’administrateur de limiter le nombre de
fichiers ou le nombre de blocs d’un utilisateur ou d’un groupe, sur un disque. Cette
opération est assez peu utilisée dans le monde UNIX. Elle sert principalement sur les
machines de développement où les programmeurs ont rarement le sens de la mesure
quant à l’utilisation des ressources disque. A l’administrateur de faire accepter les
quotas avec psychologie.
Les quotas offrent un plus grand intérêt dans Linux qui est souvent utilisé comme
serveur de fichiers (Samba) ou comme serveur de messagerie (Sendmail, Postfix…).
Pour les fichiers aussi bien que les blocs, il existe deux limites :
• La limite « hard » qui est infranchissable. Un utilisateur ou un groupe qui atteint
sa limite « hard » de fichiers ne pourra pas en créer un de plus. L’éditeur de texte
vi refusera ainsi d’exécuter la commande de sauvegarde :w.
• La limite « soft » peut être franchie pendant un certain nombre de jours
consécutifs, sept par défaut. Si, au terme de ce laps de temps, l’utilisateur n’est pas
redescendu en dessous de sa limite « soft », le point atteint devient à son tour
infranchissable, jusqu’au retour à la normale.
Mise en oeuvre
La démarche de l’administrateur pour installer des quotas sur un disque est la
suivante :
1. Monter le système de fichiers avec l’une des options de montage « usrquota » ou
« grpquota » ou les deux. Les options « usrquota » et « grpquota » indiquent si les
quotas s’appliquent aux utilisateurs ou aux groupes.
Comme dans tous les cas, l’administrateur peut préciser les options de montage
sur la ligne de commande ou bien modifier le fichier /etc/fstab (cf. Chapitre
Automatiser le montage des systèmes de fichiers).
4-38 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
# vi /etc/fstab
/dev/hda9 /mnt/appli9 ext2 defaults,usrquota 1 2
# mount /dev/hda9
# mount
...
/dev/hda9 on /mnt/appli9 type ext2 (rw,usrquota)
2. Créer les fichiers qui mémorisent les quotas des utilisateurs et des groupes. Ces
fichiers doivent être créés dans le répertoire de montage du système de fichiers. Il
existe deux versions de quotas dans le monde Linux :
- La plus ancienne est la version 1. Les fichiers y ont pour nom quota.user pour
les utilisateurs et quota.group pour les groupes. On les crée en exécutant la
commande touch.
# cd /mnt/appli9
# touch quota.user
- La plus récente est la version 2. Les fichiers y ont pour nom aquota.user et
aquota.group. Ils doivent être créés par la commande quotacheck. Ces fichiers, à
la différence des précédents, ne sont pas initialement vides.
# quotacheck /mnt/appli9
# ls -l /mnt/appli9
total 18
-rw------- 1 root root 6144 jan 17 14:31 aquota.user
drwxr-xr-x 2 root root 12288 jan 17 14:02 lost+found
La nouvelle version des quotas supporte des UIDs et des GIDs sur 32 bits et
fonctionne sur des systèmes de fichiers autres que ext2 ou ext3, tel reiserFS.
La commande convertquota crée les fichiers aquota.user et aquota.group à partir
de leurs prédécesseurs quota.user et quota.group.Elle devra être exécutée lors
d’une mise à jour de Linux qui nécessite le passage de la version 1 à la version 2 .
3. Editer les quotas des utilisateurs.
# edquota –u pierre
Disk quotas for user pierre (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda9 0 0 0 1 5 10
# edquota –g etude
Disk quotas for group etude (gid 2000):
Filesystem blocks soft hard inodes soft hard
/dev/hda9 0 0 0 2 0 0
La commande edquota fait appel à l’éditeur vi pour présenter des lignes déjà
construites qu’il suffit de modifier. Il y a autant de lignes que de systèmes de
fichiers avec des quotas. Les limites « soft » et « hard » pour le nouveau disque
sont à zéro, ce qui signifie « pas de limite ». L’administrateur les modifie à sa
guise.
L’administrateur peut aussi, via la commande edquota –t, modifier les valeurs par
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-39
Module 4 : Les systèmes de fichiers
défaut des quotas et, en particulier, le nombre de jours où la limite « soft » peut
être dépassée.
# edquota –t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hda9 7days 7days
Si un système de fichiers avec des quotas est partagé par NFS, le démon rquotad
est démarré par l’exécution du script /etc/rc.d/init.d/nfs start
(cf. Module 7 : L’arrêt et le démarrage). Les quotas des utilisateurs qui se
connectent sur un poste client qui a réalisé le montage NFS sont définis par la
commande edquota –n ou edquota –r, exécutée sur le client.
# quotaon -a # Active les quotas pour les systèmes de fichiers montés avec
# les options « usrquota » ou « grpquota » dans /etc/fstab.
Remarque
Rappelons que l’administrateur doit modifier le fichier /etc/fstab et s’assurer que la
commande quoataon –a figure bien dans les scripts de démarrage pour que les quotas
soient systématiquement activés à chaque démarrage du système.
4-40 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
$ quota
Disk quotas for user cathy (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda9 0 0 0 3 5 10
L’administrateur peut visualiser les valeurs d’un autre utilisateur.
# quota –u pierre
Disk quotas for user pierre (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda9 10001* 10000 15000 16 0 0
Les valeurs des colonnes blocks et files représentent les valeurs actuelles et sont
fournies à titre indicatif. Elles ne peuvent pas être modifiées.
La commande warnquota permet d’envoyer un courrier aux utilisateurs qui ont
dépassé leurs quotas.
La commande repquota affiche une synthèse de l’utilisation d’un disque et des quotas
d’un système de fichiers.
# repquota /dev/hda9
*** Report for user quotas on device /dev/hda9
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
…
pierre -+ 0 0 0 10 5 10 6days
cathy -- 0 0 0 3 5 10
paul -- 0 0 0 3 0 0
# repquota –a # Tous les systèmes de fichiers avec quotas
La commande quotacheck vérifie la cohérence des tables des quotas, contenues dans
les fichiers aquota.usr et aquota.group. Pour cela, elle reconstruit de nouvelles tables,
en examinant les systèmes de fichiers, et les compare à celles des fichiers quotas. La
mise à jour des tables est effectuée, si nécessaire.
# quotacheck /dev/hda9
quotacheck: Quota for users is enabled on mountpoint /mnt/appli9 so
quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
# quotaoff /dev/hda9
# quotacheck /dev/hda9
# quotacheck -a
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-41
Module 4 : Les systèmes de fichiers
Objectifs :
Savoir monter et démonter un FS
Savoir surveiller l’espace disque
Savoir gérer l’arborescence des
fichiers en tenant compte des FS
Durée : 60 minutes.
Exercice n°1
Quels sont les différents FS montés, à quels fichiers spéciaux sont-ils associés, quels
sont leurs répertoires de montage ?
Exercice n°2
Quelle est la place libre, en blocs de 512 octets, restant sur chaque FS ?
Exercice n°3
Quelles sont les tailles de blocs possibles dans un système de fichiers de type ext2 ?
Exercice n°4
Prenez un CD-ROM ayant un format compatible ISO 9660 (la plupart le sont).
Montez-le, listez son arborescence et démontez-le.
Exercice n°5
Les systèmes de fichiers nfs et smb sont des systèmes de fichiers distribués sur un
réseau, en quoi diffèrent-ils ?
4-42 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 4 : Les systèmes de fichiers
Exercice n°6
Résumez brièvement le rôle des principales commandes de gestion de système de
fichiers de Linux.
Exercice n°7
On désire installer un logiciel pour jouer au blackjack qui fait 6 Mo dans le répertoire
/home/pierre/games/blackjack. En utilisant le résultat de la commande df, donnée ci-
après, est-ce que l’opération est réalisable ? Si non, est-ce qu’il y a une autre solution ?
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 796033 318675 436234 42% /
/dev/hda6 101471 95777 454 100% /home
/dev/hda5 101471 28 96203 0% /usr
Exercice n°8
L’utilisateur pierre visualise son fichier .profile (/home/pierre/.profile) grâce à la
commande more. L’administrateur peut-il démonter le FS /home ? Si non, pourquoi ?
Que doit-il faire pour y arriver ?
Exercice n°9
Le FS /dev/hda8 est monté sur le répertoire /games. Que doit-on faire pour que ce FS
ne soit accessible qu’à l’utilisateur pierre ?
Exercice n°10
Sans utiliser la commande debugfs, comment l’administrateur peut-il retrouver tous
les fichiers liés à un fichier dont on connaît le chemin, exemple :
/home/pierre/.profile ?
Exercice n°11
Détruisez tous les fichiers de nom « core ».
Exercice n°12
Quels sont les gros fichiers (taille supérieure à 1 Mo) modifiés il y a peu de temps
(dans la journée) ?
Exercice n°13
Quelles sont les commandes de gestion de quotas sur votre système ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 4-43
Module 4 : Les systèmes de fichiers
4-44 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
• Sauvegarde partielle,
incrémentale
• Les commandes tar,
cpio, dd
• Le format des bandes
• dump, restore
5Module 5 : La sauvegarde
Objectifs
Après l’étude du chapitre, le lecteur connaît les stratégies de sauvegarde sous UNIX et
maîtrise les outils standard de sauvegarde.
Contenu
Les différents types de sauvegarde
La commande tar
La commande cpio
La commande dd
Les commandes de sauvegarde incrémentale dump et restore
Les bandes
Références
HOWTO : ADSM-Backup, mini HOWTO Backup-with-MSDOS, Ftape-HOWTO
Le manuel : tar(1), dd(1), cpio(1), dump(8),restore(8)
Livre : Unix Backup & Recovery
Internet : http://www.backupcentral.com
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-1
Module 5 : La sauvegarde
Les scripts
L’administrateur d’un système Linux va souvent définir des scripts de sauvegarde et
de restauration des fichiers adaptés à son application et, quand c’est possible,
automatiser leur exécution pour les exécuter à heure fixe, quand le système est peu
chargé et que les fichiers ou les systèmes de fichiers sont au repos.
5-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
Plan de sauvegarde
La sauvegarde nécessite de l’administrateur du système UNIX beaucoup de discipline
et une grande rigueur.
Sans prétendre donner la liste exhaustive des questions à résoudre pour construire un
plan de sauvegarde, la liste qui suit peut aider l’administrateur à le définir :
• Que faut-il sauvegarder ?
• Avec quelle fréquence ?
• Combien de temps conservera-t-on les sauvegardes, à quel endroit, en combien
d’exemplaires ?
• A quel endroit sera stocké l’historique des sauvegardes ?
• Quel est le support le plus approprié ?
• Quels sont les besoins, en capacité, de support de sauvegarde ?
• Combien de temps, au plus, doit durer la sauvegarde ?
• Combien de temps prévoit-on pour restaurer un fichier, un système de fichiers,
est-ce raisonnable ?
• La sauvegarde doit-elle être automatique ou manuelle ?
• Quelle est la méthode de sauvegarde la plus appropriée ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-3
Module 5 : La sauvegarde
Sauver/Restaurer
tar cvf /dev/rft0 /home
tar
tar
Lister l’archive
tar tvf /dev/rft0
tar
tar
La commande tar
La commande tar sauvegarde des fichiers, y compris une arborescence de fichiers,
dans un format qui lui est propre. C’est avec la même commande qu’il est possible
d’obtenir la liste des fichiers sauvegardés et de les restituer.
La commande tar de Linux utilise des options de forme courte, « -lettre », ou longue,
« --mot_clé ». Pour conserver une compatibilité avec les autres systèmes UNIX, la
commande tar permet aussi l’emploi de clés positionnelles. A la différence d’une
option, une clé est une lettre qui n’est pas précédée du symbole « - » et l’association
des arguments aux clés est positionnelle. La création d’une sauvegarde peut être
demandée de plusieurs formes :
1. tar c …
2. tar –c …
3. tar –create …
Dans toutes les syntaxes qui suivent, la clé v (« verbose ») génère des messages
détaillés sur les opérations réalisées.
La clé f précise, par son argument FichierArchive, le nom du support d’archivage,
souvent un périphérique (« /dev/xxx »). A défaut, la commande tar de Linux envoie la
sauvegarde (« c ») ou la restitution (« x ») sur la sortie standard. On peut toutefois
explicitement utiliser, comme dans UNIX, le symbole « - » pour désigner
respectivement l’entrée et la sortie standard comme support de sauvegarde ou de
restitution.
La variable d’environnement TAPE permet d’indiquer le fichier FichierArchive.
La commande tar de Linux réalise, par défaut, des sauvegardes relatives. Elle
supprime, sur l’archive, le premier caractère, « . » ou « / », des chemins d’accès aux
fichiers. Dans tous les cas, il convient de se déplacer (commande cd) dans le répertoire
qui sert de racine pour la restitution avant d’exécuter la commande tar.
5-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
Pour exécuter une sauvegarde et, plus tard, une restauration en absolue, il faut
obligatoirement indiquer l’option « P ». A défaut de la mentionner à la restauration, la
commande tar fonctionne en relatif.
La commande tar sauvegarde les fichiers au format GNU TAR. Il est compatible avec
le format ustar de POSIX, également adopté par l’ISO. La commande pax de
WINDOWS NT et le logiciel WINZIP peuvent aussi le lire.
Remarque
Quand la commande tar est exécutée par un utilisateur qui n’est pas « root », la
commande utilise la logique de la commande cp ; pour restituer un fichier, il faut
avoir le droit de le lire et l’utilisateur qui le restitue en devient le propriétaire. Quand
c’est « root » qui effectue la restitution, il préserve les attributs des fichiers, dont le
propriétaire et le groupe.
Sauvegarde de fichiers
tar c[v][P][f FichierArchive] Fichier ...
Si les fichiers sont des répertoires, tar sauvegarde l’arborescence issue de ces
répertoires.
Restitution de fichiers
tar x[v][P][f FichierArchive] [fichier]...
A défaut de dire quels sont les fichiers à restituer, tar restitue la totalité de l’archive.
Quand cela est nécessaire, la commande tar crée les répertoires manquants pour
reconstituer une arborescence.
La variable d’environnement TAPE permet d’indiquer le fichier FichierArchive.
Exemples
L’exemple qui suit réalise la sauvegarde de l’arborescence /home. Le chemin de
sauvegarde est donné en absolue, on note que la commande tar a enlevé le / en tête du
chemin.
Sauvegarde des fichiers.
# tar cvf /dev/rft0 /home
Liste des fichiers archivés.
# tar tvf /dev/rft0
drwxr-xr-x root/root 0 1999-01-21 15:35 home/
drwxr-xr-x root/root 0 1998-12-01 16:10 home/ftp/
d--x--x--x root/root 0 1998-12-01 16:09 home/ftp/bin/
---x--x—x root/root 15236 1998-04-27 18:05 home/ftp/bin/compress
drwxr-xr-x pierre/pierre 0 1999-03-16 09:52 home/pierre/
-rw-r--r-- pierre/pierre 222 1999-01-21 11:49 home/pierre/.bash_profile
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-5
Module 5 : La sauvegarde
5-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
Remarque
Les fichiers que l’on rapatrie à partir de serveurs de fichiers sur Internet sont souvent
fournis au format tar et compressés (*.tar.gz).
Exemples
Sauvegarde du lien symbolique.
#ls -l /home/pierre/passwd
lrwxrwxrwx 1 pierre pierre 11 nov 7 12:29 /home/pierre/passwd ->
/etc/passwd
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-7
Module 5 : La sauvegarde
5-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-9
Module 5 : La sauvegarde
Sauver/Restaurer
find
find cpio
cpio
cpio
cpio
La commande cpio
La commande cpio sauvegarde sur la sortie standard les fichiers dont on saisit les
noms sur l’entrée standard, par défaut le clavier et l’écran. La redirection des entrées
et des sorties permet d’automatiser la production des noms de fichiers et de désigner le
support d’archivage qu’il faut réellement utiliser.
Les options « -v », « -c » et « -B » peuvent être utilisées dans tous les cas.
L’option « -v » demande, comme dans tar, l’affichage d’informations détaillées.
L’option « -c » signifie à cpio de mémoriser les attributs des fichiers sous une forme
ASCII, ce qui facilite l’échange de fichiers entre systèmes UNIX hétérogènes.
L’option « -B » augmente la vitesse d’exécution de cpio, qui utilise une mémoire
tampon d’entrée et de sortie de 5120 octets.
La commande cpio est multi-volume. A chaque fois qu’une archive est pleine, la
commande cpio demande l’installation d’une nouvelle archive. L’administrateur doit,
pour continuer la sauvegarde ou la restitution, saisir le nom du fichier spécial
périphérique et valider par <Entrée>. Cela permet de changer de périphérique de
sauvegarde pendant l’exécution de la commande cpio.
Sauvegarde de fichiers
cpio -o[L]
L’option « -L » demande à cpio de sauvegarder les fichiers liés et non les liens
symboliques.
Restitution de fichiers
cpio -i[umd] [Fichier...]
5-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
A défaut de dire quels sont les fichiers à restituer, cpio restitue la totalité de l’archive.
Si les noms de fichiers que l’on désire restituer sont décrits avec des jokers (*,?,[...]),
ils doivent être protégés (\,’, ").
L’option « -d » indique à cpio de reconstruire les sous-répertoires manquants.
L’option « -m » indique à cpio de conserver les dates de dernière modification pour
les fichiers restaurés.
L’option « -u » demande à la commande cpio de restaurer les fichiers
inconditionnellement. A défaut, les fichiers qui existent toujours sur disque ne sont pas
restaurés s’ils sont plus récents ou de même âge que leurs homonymes sur disque.
Exemples
Sauvegarder des fichiers sur disquette.
# cpio -ocvB > /dev/fd0
f1
/etc/group
Ctrl-D
10 blocks
Sauvegarder l’arborescence courante avec compression.
# find . -print | cpio -ocvB | compress > /dev/rft0
Sauvegarder tous les fichiers des utilisateurs modifiés depuis la modification de fref.
# find /home –type f –newer fref | cpio –ocvB > /dev/rft0
Sauvegarder le système de fichiers /usr.
# find /usr –mount | cpio –ocvB >/dev/rft0
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-11
Module 5 : La sauvegarde
La sauvegarde par dd
La sauvegarde par dd
dd if=/dev/hda1 of=/dev/rft0
dd
dd
dd of=/dev/hda1 if=/dev/rft0
if=fichier
if=fichier Le
Lefichier
fichierààcopier
copier
of=fichier
of=fichier La copie
La copie
bs=n
bs=n La
Lataille
tailledes
desblocs
blocs
skip=n
skip=n Nombre
Nombrede deblocs
blocssautés
sautésen
enentrée
entrée
seek=n
seek=n Nombre
Nombre de blocs sautés ensortie
de blocs sautés en sortie
count=n
count=n Nombre
Nombrede deblocs
blocscopiés
copiés
La commande dd
La commande dd (« Device to Device ») est destinée à la copie physique, bloc à bloc,
d’un fichier périphérique vers un fichier périphérique. Elle a été originellement créée
pour permettre la lecture ou l’écriture de bande magnétique. Sachant la logique du
système UNIX, elle peut être employée pour n’importe fichier, spécial ou régulier, à
condition que l’on dispose des droits nécessaires de lecture ou d’écriture. Elle dispose
de nombreuses possibilités qui lui permettent de lire beaucoup de fichiers, à condition
que l’on en connaisse le format. La commande dd peut être également utilisée pour
réaliser la copie physique d’un disque, y compris d’un disque contenant un système de
fichiers. Elle offre dans ce cas une grande facilité d’usage mais présente par contre
trois inconvénients :
• La commande dd copie tous les blocs, y compris ceux qui ne sont pas utilisés.
• La commande dd ne gère pas les blocs défectueux.
• La commande dd n’est pas multi-volume. Cela peut être programmé dans un
script.
Les arguments de la commande dd se présentent sous la forme :
Mot_clé=valeur
« Mot_clé » désigne une option de la commande dd et « valeur », son argument.
Argument Utilisation
if=fichier « fichier » désigne le fichier à copier, à défaut l’entrée
standard. Cette dernière possibilité est utile quand l’entrée de
dd vient d’une commande, de compression par exemple.
of=fichier « fichier » désigne le fichier résultant de la copie, à défaut la
sortie standard. Cette possibilité est utile pour envoyer la
sortie de dd vers une commande, de compression par
5-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
exemple.
bs=valeur « valeur » désigne la taille commune du bloc pour les fichiers
d’entrée et de sortie. Il est, par défaut, de 512 octets. A
chaque fois que possible, il est conseillé de l’augmenter pour
accélérer l’exécution de dd.
ibs=valeur La taille du bloc du fichier d’entrée.
obs=valeur La taille du bloc du fichier de sortie.
skip=n n indique le nombre de blocs qu’il faut sauter au début de la
copie du fichier d’entrée.
seek=n n indique le nombre de blocs à sauter au début du fichier de
sortie.
count=n n indique le nombre de blocs à copier.
conv=conversion[,con « conversion » indique la conversion à réaliser lors de la
version…] copie. Plusieurs conversions peuvent être groupées. Les
principales valeurs possibles pour « conversion » sont :
• lcase, conversion en minuscule.
• ucase, conversion en majuscule.
• ebcdic, conversion en ebcdic (code ibm).
• ascii, conversion en ascii.
• swab, échange les octets.
Exemples
Copie d’un disque et peut-être d’un système de fichiers.
# dd if=/dev/hda2 of=/dev/rft0 bs=5k
Restauration du disque et de son éventuel système de fichiers.
# dd if=/dev/rft0 of=/dev/hda2 bs=5k
Sauvegarde d’une arborescence, avec compression.
# find . -print | cpio -o | compress | dd of=/dev/rft0 bs=5k
Restauration de l’arborescence.
# dd if=/dev/rft0 bs=5k | uncompress | cpio -id
Sauvegarde d’un disque de 20 000 blocs sur deux cartouches.
# dd if=/dev/hda1 of=/dev/rft0 count=10000 # les 10 000 premiers blocs
# dd if=/dev/hda1 of=/dev/rft0 skip=10000 # les 10 000 suivants
Restauration du disque de 20 000 blocs.
# dd if=/dev/rft0 of=/dev/hda1 count=10000
# dd if=/dev/rft0 of=/dev/hda1 seek=10000
Copie d’une disquette.
# dd if=/dev/fd0 of=/tmp/floppy # le fichier de sortie est un fichier régulier
# dd if=/tmp/floppy of=/dev/fd0
Copie d’un bloc de boot d’un disque à un autre, pour un système de fichiers « s5 ».
# dd if=/dev/hda1 of=/dev/hda2 bs=1k count=1 skip=0
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-13
Module 5 : La sauvegarde
Lecture d’une bande au format IBM, contenant des images de cartes (80 caractères)
avec dix cartes par bloc. L’option « cbs » donne la taille de l’enregistrement à
l’intérieur d’un bloc.
# dd if=/dev/rft0 of=x ibs=800 cbs=80 conv=ascii,lcase
5-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-15
Module 5 : La sauvegarde
La sauvegarde incrémentale
Les commandes dump et restore sont les commandes incrémentales du système
Linux.
La commande dump possède essentiellement deux arguments :
• La clé « u » qui mémorise les paramètres de la sauvegarde dans le fichier
/etc/dumpdates.
• La clé « niveau », une valeur comprise entre 0 et 9, qui précise le niveau de
sauvegarde. La valeur 0 entraîne la sauvegarde de tous les fichiers demandés, y
compris des arbres. Une valeur comprise entre 1 et 9 provoque la sauvegarde de
tous les fichiers demandés s’ils ont été modifiés depuis la dernière sauvegarde
réalisée avec un niveau inférieur. C’est le principe de la sauvegarde incrémentale.
La sauvegarde incrémentale rend obligatoire la présence de la clé « u » qui amène
la commande dump à mémoriser les paramètres de la sauvegarde dans le fichier
/etc/dumpdates. A défaut, l’incrémental est impossible car aucun comparatif ne
peut être effectué pour décider quels sont les fichiers à sauvegarder.
• La clé « f » à laquelle est associé le nom du fichier de sauvegarde (« /dev/xxx »).
L’exemple du transparent sauvegarde l’intégralité du répertoire /home sur le support
/dev/rft0, point de départ d’une sauvegarde incrémentale, et restitue le fichier
/home/pierre/.profile.
Remarques
• La plupart des outils de sauvegarde incrémentale permettent de sauvegarder
plusieurs arbres tout en excluant certains sous-répertoires, en une seule opération.
• Les commandes dump et restore ne sont pas installées par défaut.
5-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
------------------------------------------------
--------------------------------------------------
------- fichiers modifiés le lundi
----------------- fichiers modifiés depuis lundi
--------------------------
------------------------------------
Exemples
Sauvegarde complète du système de fichiers /home de niveau 0.
# dump -0uf /dev/nst0 /home
DUMP: Date of this level 0 dump: Tue Nov 7 16:06:00 2000
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/sda5 (/ (dir home)) to /dev/st0
…
DUMP: DUMP: 6863 tape blocks on 1 volumes(s)
DUMP: finished in 22 seconds, throughput 311 KBytes/sec
DUMP: level 0 dump on Tue Nov 7 16:06:00 2000
DUMP: DUMP: Date of this level 0 dump: Tue Nov 7 16:06:00 2000
DUMP: DUMP: Date this dump completed: Tue Nov 7 16:06:22 2000
DUMP: DUMP: Average transfer rate: 311 KB/s
DUMP: DUMP IS DONE
Contenu du fichier /etc/dumpdates
# more dumpdates
/dev/sda5 0 Tue Nov 7 16:06:00 2000
Sauvegarde incrémentale de niveau 4, les fichiers du répertoire
/home/gilles ont été modifiés via la commande touch.
# dump -4uf /dev/nst0 /home
DUMP: Date of this level 4 dump: Tue Nov 7 16:11:54 2000
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-17
Module 5 : La sauvegarde
5-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
Les bandes
Les bandes
La commande mt
# mt fsf 1
# mt eom
Introduction
Des fichiers, au sens UNIX, sont sauvegardés sur une cartouche magnétique sous
forme d’une suite de blocs. Ils constituent un fichier, au sens de la sauvegarde. Ce
fichier se termine par une marque physique de fin de fichier. On peut mettre plusieurs
fichiers de sauvegarde sur la même cartouche. Le dernier se termine par deux fins de
fichiers. Les cartouches présentent également un début et une fin physiques.
Sur la cartouche, un élément mobile permet de la protéger en écriture.
Les cartouches « QIC » nécessitent une « retension » si :
• La cartouche est neuve.
• La cartouche est inutilisée depuis longtemps.
• Il se produit des erreurs de lecture/écriture.
Cette retension consiste en un déroulement complet de la bande, suivi d’un
rembobinage.
Normalement, les bandes sont vendues formatées (le formatage délimite les blocs).
Les fichiers spéciaux du système Linux permettent de préciser notamment :
• Le lecteur.
• Si la bande est rembobinée à la fermeture.
• Si l’on effectue une retension de la bande (QIC).
• La densité.
La commande mt
La commande mt permet de se positionner sur une bande magnétique, en se déplaçant
de fichier archive en fichier archive.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-19
Module 5 : La sauvegarde
# mt -f /dev/nrft0 rewind
# # La variable d’environnement TAPE indique à mt le lecteur à utiliser.
# TAPE=/dev/nrft0 ; export TAPE
# mt rewind # on rembobine
# mt fsf 1 # on saute un fichier
# mt bsf 2 # on revient en arrière de deux fichiers
# mt eof # on écrit une marque de fin de fichier
# mt asf 3 # on va au 3ème fichier (en absolu)
# mt eom # on va en fin logique de la bande
# mt status # on affiche l’état de l’unité
# mt offline # on rembobine et on déconnecte l’unité
5-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 5 : La sauvegarde
Atelier 5 : La sauvegarde
Atelier 5 : La sauvegarde
Objectifs :
Savoir réaliser des sauvegardes et
des restaurations grâce aux
commandes tar et cpio
Savoir utiliser la commande dd
Durée : 60 minutes.
Exercice n°1
Les exercices qui suivent illustrent l’utilisation de la commande tar. On utilise comme
support d’archive le fichier /tmp/pierre.sauve et l’arborescence de fichiers créée dans
l’exercice n°4 du module 3. On est connecté sous le compte de l’utilisateur pierre.
a) Sauvegardez les fichiers de pierre (l’arborescence /home/pierre).
b) Listez le contenu de la sauvegarde.
c) Détruisez un fichier, restaurez-le.
d) Détruisez l’ensemble des fichiers de pierre, restaurez-les.
e) Sauvegardez les fichiers de pierre de telle manière que l’on puisse restaurer un
fichier chez cathy. Listez le contenu de la sauvegarde.
Exercice n°2
Sans utiliser le support, quelle est la signification de « cpio -icvdumB » ?
Exercice n°3
Exercice identique à l’exercice n°1, mais en utilisant la commande cpio.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 5-21
Module 5 : La sauvegarde
Exercice n°4
Dupliquez la sauvegarde cpio (le fichier /tmp/pierre.sauve réalisé à l’exercice
précédent), avec dd sur une disquettte. Restaurez un fichier à partir de la disquette
avec cpio.
Exercice n°5
Dupliquez une disquette MS-DOS avec dd.
Exercice n°6
Quelle est la taille en bloc d’une disquette ? Utilisez la commande dd.
Exercice n°7
Listez les commandes gérant les bandes (« tape » en anglais) de votre système.
Exercice n°8
Montez le système de fichiers créé sur la disquette (Exercice n° 14 du module 4) et
réalisez une sauvegarde complète, avec la commande dump, dans un fichier ordinaire
du disque. Affichez la liste des fichiers sauvegardés. Recréez un système de fichiers
sur la disquette et restaurez les fichiers.
5-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
• Concept de processus
• PID, signal
• Démon, groupes de
processus
• ps, kill, fuser, su
• Le service cron
• Les IPC
6Module 6 :
La gestion des
processus
Objectifs
A l’issue de ce module, le lecteur connaît les concepts fondamentaux des processus du
système Linux. Il sait identifier les démons, maîtrise les commandes usuelles et le
service cron pour automatiser l’exécution de tâches périodiques. Il sait ce que sont les
IPC et il est capable de les paramétrer.
Contenu
Les processus
Panorama des commandes de gestion des processus
Le service cron
Les IPC
Références
HOWTO : Program-Library HOWTO
Livres : « The design of the UNIX Operating System »
« Programmation Linux 2.0 »
Le manuel : ps(1), kill(1), signal(7), fork(2), exec(2), environ(5), crontab(1)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-1
Module 6 : La gestion des processus
fork() init
init PID=1
PID=225
httpd
httpd kill
kill sh
sh PID=382
Processus détaché
Introduction
Lorsqu’un utilisateur demande à exécuter une commande externe (i.e. /bin/date), le
noyau Linux crée un processus (une tâche) qui exécute les instructions de la
commande. Ce processus est une entité qui, de sa création à sa mort, est identifiée par
une valeur numérique, le « PID » (« Process IDentifier ») et transite par différents
états selon qu’il s’exécute (actif), attend que le noyau lui alloue le processeur (prêt) ou
qu’un événement se produise (en attente).
A un instant donné, une valeur de PID est unique dans le système et cela garantit
qu’un processus est identifié sans ambiguïté par son PID, alors que le nom de
commande ne garantit pas l’unicité. Plusieurs instances de la commande sh
s’exécutent en même temps quand plusieurs utilisateurs sont connectés. A chaque
instance correspond un processus avec un PID unique.
La création d’un processus est réalisée par la primitive fork(2) du noyau. Rappelons
que le chiffre 2, situé entre parenthèses, désigne la section 2 du manuel de référence,
c’est-à-dire l’ensemble des primitives programmables, entre autres, en langage C.
Cette primitive crée un clone du processus qui l’exécute. Le clone, que l’on appelle
processus fils, exécute le code d’une autre commande grâce à la primitive exec(2). Il
en résulte un arbre de processus. L’ancêtre de tous les processus, init, est créé au
démarrage du système et se trouve à la racine de cet arbre. Son PID est 1.
Il existe plusieurs manières d’exécuter un processus :
• En avant-plan (« foreground ») dans une session de travail, c’est le mode normal
d’exécution d’une commande. Le shell de connexion est le père du processus qui
exécute la commande. Il attend que le processus fils se termine pour afficher à
nouveau l’invite (« prompt »).
• A l’arrière-plan (« background ») dans une session de travail, c’est le mode utilisé
quand on termine une ligne de commande par « & ». Après avoir créé le processus
fils qui exécute la commande, le shell affiche immédiatement l’invite sans attendre
la fin du processus fils. Rappelons qu’un processus d’arrière-plan est insensible au
6-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
Les signaux
Le seul moyen d’agir sur l’exécution d’un processus détaché est de lui envoyer un
signal (cf. UNIX shell : Module 12).
Le signal 1 est conventionnellement utilisé pour dire à un démon de relire ses fichiers
de configuration.
Le signal 15 (« TERM ») est conventionnellement utilisé pour dire à un démon de se
terminer. C’est d’ailleurs le signal que la commande shutdown envoie aux processus
actifs.
Le signal 9 tue le processus sans qu’il puisse intercepter le signal et exécuter une
quelconque action avant de se terminer. Le signal 9 ne doit, pour cette raison, être
utilisé qu’en dernier recours. Les fichiers de configuration et de données du service
associé au processus qui est tué brutalement sont certainement dans un état incohérent.
Le rétablissement de la cohérence doit alors être réalisé manuellement par
l’administrateur et peut s’avérer fort complexe.
Il arrive qu’un processus et ses descendants forment un groupe de processus. Le
groupe de processus est identifié par un numéro de groupe. Ce numéro de groupe est
le PID du processus « leader ». Il est possible d’envoyer un signal à l’ensemble des
membres du groupe, y compris le « leader » (cf. Panorama des commandes de gestion
de processus).
Quand un processus crée un processus fils, il peut indiquer au noyau qu’il ne souhaite
pas être averti de sa terminaison. A défaut, le noyau considère que le processus père
souhaite savoir la cause de la mort de son fils, ce qui peut se produire parce qu’il a
exécuté la primitive exit(2) ou qu’il a reçu un signal ayant provoqué sa mort. Si le fils
vient à se terminer avant que le père ne se soit mis en attente de sa fin, le noyau
conserve le descripteur du processus pour ensuite pouvoir rendre compte au père.
Durant toute cette période, le processus est dit « zombie ». Dans la liste des processus
produite par la commande ps, il apparaît comme « <defunct> »). Au cas où son père
meurt aussi, c’est le processus init qui hérite de la paternité.
Remarque
Un processus « zombie » compte pour un processus, bien qu’il n’existe plus
réellement. En cas de bogue dans une application exécutée par root, leur multiplication
peut entraîner l’effondrement du système dès que l’on a atteint le nombre maximum
de processus autorisés.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-3
Module 6 : La gestion des processus
init
init
2
~/.bash_profile
Quand un processus crée un processus fils, ce dernier hérite de son père d’un
ensemble d’éléments définis par ses ancêtres. Parmi ces éléments, ceux qui intéressent
particulièrement l’administrateur sont :
• Le répertoire courant de son père (le répertoire « . »).
• Le « umask » qui, rappelons-le, sert à définir les droits par défaut des fichiers
créés par le processus.
• Le « ulimit » qui fixe la taille du plus gros fichier que le processus peut créer.
• Les variables d’environnement dont le processus reçoit une copie. Elles ont été
créées par un ancêtre du processus, du processus init jusqu’à son père (cf. UNIX
shell : Module 5, les variables).
• Le répertoire racine (« / ») peut être modifié par la commande chroot. Le
processus et ses descendants ne voient plus que l’arbre issu du nouveau répertoire
racine.
Dans la pratique, l’administrateur est amené à ajouter, pour le bon déroulement de
logiciels applicatifs, la définition de nouvelles variables d’environnement. Pour cela,
il dispose de plusieurs fichiers (cf. Annexe D : le shell bash, les fichiers de
configuration) :
• Le fichier /etc/profile pour définir les variables valables pour tous les utilisateurs.
• Les fichiers ~/.bash_profile ou ~/.profile des seuls utilisateurs concernés par les
variables.
La variable d’environnement la plus célèbre est sans doute la variable TERM qui
permet à l’éditeur de texte vi de s’adapter au terminal de l’utilisateur.
6-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
Commandes externes
ps
La commande ps affiche des informations sur les processus en cours. La commande
ps accepte maintenant la syntaxe issue de UNIX BSD, le choix initial de Linux, ainsi
que les options de UNIX System V AT&T. Dans la forme initiale de Linux, l’option
est représentée par une lettre. Les options de type AT&T sont, comme de coutume,
des lettres précédées du caractère « - ».
En adoptant les options de UNIX System V, Linux est conforme au standard UNIX 98
de l’Open Group. Nous recommandons leur utilisation.
Les principales options de type BSD sont :
u Affiche le nom du propriétaire.
a Affiche les processus des autres utilisateurs.
l Affiche des informations supplémentaires (format long).
# ps
PID TTY STAT TIME COMMAND
396 1 S 0:00 -bash
400 5 S 0:00 /sbin/mingetty tty5
401 6 S 0:00 /sbin/mingetty tty6
990 1 S 0:00 vi 6.5.1
991 1 S 0:00 /bin/bash -c ( ps) >/tmp/voa00990 2>&1
992 1 R 0:00 ps
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-5
Module 6 : La gestion des processus
# ps l
FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME
COMMAND
100 0 396 1 0 0 1256 832 wait4 S 1 0:00 -
bash
# ps au
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
cathy 398 0.0 2.6 1244 812 3 S 06:50 0:00 -bash
paul 399 0.0 2.7 1316 860 4 S 06:50 0:00 -bash
pierre 397 0.0 2.6 1244 812 2 S 06:50 0:00 -bash
root 396 0.0 2.7 1256 832 1 S 06:50 0:00 -bash
root 400 0.0 0.9 724 296 5 S 06:50 0:00 /sbin/mingetty
tty5
root 1213 0.0 1.5 848 476 1 R 07:12 0:00 ps au
# ps –e
PID TTY TIME CMD
1? 00:00:04 init
4? 00:00:00 kswapd
229 ? 00:00:00 syslogd
254 ? 00:00:00 crond
272 ? 00:00:00 inetd
…
# ps –f
UID PID PPID C STIME TTY TIME CMD
root 510 1 0 08:16 tty1 00:00:00 login -- root
root 518 510 0 08:16 tty1 00:00:00 –bash
root 629 518 0 08:32 tty1 00:00:00 vi 6_6
root 663 629 0 08:39 tty1 00:00:00 /bin/bash -c ( ps -f) >/tmp/voc2
# ps -fu pierre
UID PID PPID C STIME TTY TIME CMD
pierre 568 511 0 08:22 tty2 00:00:00 –bash
pierre 703 568 0 08:46 tty2 00:00:00 mail cathy
kill
La commande kill envoie un signal à un (des) processus. Le signal 9 tue un processus.
# kill –9 1540 # tue le processus de PID 1540.
# kill –l # affiche la liste des signaux.
# kill –2 0 # envoie le signal à tous les processus du groupe du shell.
# kill –2 –1 # envoie le signal à tous les processus dont l’UID réel est identique à
l’UID effectif du propriétaire du shell émetteur.
# kill –2 –1540 # envoie le signal à tous les processus du groupe 1540.
6-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
killall
La commande killall envoie un signal à tous les processus qui exécutent une
commande spécifique. Le signal SIGTERM est envoyé par défaut, comme dans la
commande kill.
# killall httpd
su
La commande su permet, entre autres, de faire exécuter un processus avec une autre
identité que la sienne, ce qui est intéressant pour root qui n’a pas, quand il exécute
l’une des formes de la commande su, à fournir le mot de passe de l’utilisateur dont il
emprunte l’identité. Grâce à l’option « -c », il est possible de n’exécuter qu’une
commande, fournie immédiatement sur la même ligne de commande que id. Cette
forme est particulièrement intéressante dans les scripts.
# su pierre # prendre l’identité de pierre.
$exit
#
# su – pierre # prendre l’identité de pierre et changer d’environnement, le
fichier ~/ .bash_profile de pierre est exécuté.
$ exit
# su pierre -c "id" # exécute la commande avec l’identité de pierre.
uid=200(pierre) gid=51(stage) groups=51(stage),52(formateur)
#
ident
La commande ident affiche des informations sur la version d’une commande. Elle est
équivalente à la commande what d’Unix System V.
# ident mail
mail:
$OpenBSD: version.c,v 1.4 1996/06/08 19:48:46 christos Exp $
$OpenBSD: aux.c,v 1.4 1996/06/08 19:48:10 christos Exp $
$OpenBSD: cmd1.c,v 1.5 1996/06/08 19:48:11 christos Exp $
$OpenBSD: cmd2.c,v 1.5 1996/06/08 19:48:13 christos Exp $
strace, truss
Les commandes strace et truss permettent d’exécuter une application et de visualiser
les appels système qu’elle exécute.
strings
La commande strings affiche les chaînes de caractères ASCII présentes dans les
fichiers binaires.
# strings /bin/date
fuser
La commande fuser fournit des informations sur les processus qui ont ouvert un
fichier, même un disque (cf. Module 4 : Les systèmes de fichiers).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-7
Module 6 : La gestion des processus
lsof
La commande lsof (cf. Module 4 : Les systèmes de fichiers) permet de lister les
fichiers ouverts et de connaître les applications qui y accèdent.
# lsof -u pierre
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 968 pierre cwd DIR 8,5 4096 51296 /home/pierre
…
bash 968 pierre txt REG 8,5 512540 110453 /bin/bash
bash 1181 pierre 3r REG 8,5 1179 64945 /etc/passwd
bash 1181 pierre 255u CHR 136,1 3 /dev/pts/1
at
La commande at exécute des commandes en différé (cf. Service cron).
crontab
La commande crontab exécute des commandes périodiquement (cf. Service cron).
env
La commande env visualise l’environnement d’un shell.
ldd
La commande ldd liste toutes les bibliothèques partagées (les fichiers *.so) utilisées
par un exécutable (cf. Chapitre Les bibliothèques dynamiques).
wait
La commande wait attend que les commandes exécutées à l’arrière-plan soient
terminées pour poursuivre l’exécution du shell.
# commande1 &
# commande2 &
…
# wait
# commande_suite # est exécutée quand commande1,2,… sont terminées
Cela n’a d’intérêt que s’il existe plusieurs commandes d’arrière-plan, au moins deux.
C’est sinon le mode de fonctionnement normal du shell.
exec
La commande exec remplace le code du shell par le code de la commande. Il n’y a pas
de création de processus. Il n’y a pas de retour si la commande exec réussit.
# ps
# exec ps
…
login :
. unscript
Le shell courant exécute lui-même le script unscript.
6-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
crontab (1/2)
Crontab (1/2)
/etc/cron.allow
Fichier crontab /etc/cron.deny
/var/spool/cron/pierre
crontab
crontab SPOOL
/etc/crontab
pierre
crond
crond
Le démon crond
/var/log/cron
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-9
Module 6 : La gestion des processus
root
pierre
cathy
Tout le monde est autorisé.
# ls cron.*
cron.deny
# more cron.deny # il est vide
#
Remarques
• La commande crontab est très certainement la plus utilisée par l’administrateur à
qui cela permet d’automatiser l’exécution de nombreuses commandes, dont les
sauvegardes et la surveillance de l’activité du système.
• L’administrateur dispose du fichier /etc/crontab pour faire exécuter
périodiquement des commandes avec l’identité de n’importe quel utilisateur du
système.
6-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
crontab (2/2)
Crontab (2/2)
1 2 3 4 5
Minutes Heures Jour Mois Jour de la semaine
(0-59) (0-23) (1-31) (1-12) (0-6, 0:Dimanche)
La commande crontab
$ crontab -e # édite son crontab
$ crontab -l # liste son crontab
$ crontab -r # supprime son crontab
TSOFT - Linux Administration Module 6 : Les processus - 6.6
crontab
On a coutume d’appeler un fichier au format de la commande crontab, une « cron
table ».
L’utilisateur la crée avec un éditeur de texte. Une ligne peut être une ligne de
commande (une requête), une ligne de commentaire qui commence alors par le
symbole # ou comporter la définition d’une variable d’environnement pour les
commandes.
Les variables HOME et SHELL qui indiquent respectivement le répertoire de
connexion et le shell qui doit exécuter les commandes peuvent être redéfinies, mais
pas la variable LOGAME. Il est possible de désigner l’utilisateur qui doit recevoir les
résultats ou les erreurs par courrier en créant la variable MAILTO qui contient alors le
nom du récepteur.
Les lignes vides et les espaces en début de ligne sont ignorés.
Une ligne de commande est constituée de six champs, séparés par des espaces ou des
tabulations. Les cinq premiers définissent la périodicité et le dernier la commande à
exécuter :
Minutes Heures Jours Mois Jour de la Commande
du mois semaine
Le contenu d’un champ exprimant un élément de la périodicité peut être :
• Une valeur pour indiquer « à quel(le) » moment il faut exécuter la commande. La
valeur 15 dans le champ minute signifie à la quinzième minute, dans le champ
jour du mois, le 15 du mois.
• Une liste de valeurs, séparées par des virgules, pour indiquer « au(x)quel(le)s »
moments il faut exécuter la commande. La liste 1,3,5,7 dans le champ mois
signifie janvier, mars, mai et juillet.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-11
Module 6 : La gestion des processus
Remarques
• Il est possible de définir une fréquence en faisant suivre l’intervalle par un pas,
sous la forme « intervalle/pas ».
*/10 dans le champ des minutes est équivalent à 0,10,20,30,40,50.
6-20/2 dans le champ heure est équivalent à 6,8,10,12,14,16,18,20.
• On peut indiquer les noms des jours de la semaine et des mois plutôt que leur
numéro. Les noms sont définis en saisissant les trois premiers caractères du mot.
« sun » signifie dimanche, « mon » lundi …
• Si le champ commande comporte le caractère %, non protégé, tous les caractères
qui suivent, dans la ligne, définissent l’entrée standard de la commande. C’est la
forme cron des « here document » du shell.
Envoi du message « Tout le monde debout ! ! » à tous les utilisateurs, chaque jour
à huit heures du matin.
0 8 * * * wall %Tout le monde debout ! !
6-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
L’édition est réalisée via l’éditeur de texte vi. La commande crontab –e permet de
créer directement une « cron table » active initiale, donc vide.
Le fichier /etc/crontab
En plus des fichiers de requêtes du répertoire /var/cron, le démon crond exécute
également le fichier /etc/crontab. C'est par ce biais que se fait, entre autres, la mise à
jour quotidienne de la base de données d'aide simplifiée « whatis ».
Une ligne de ce fichier comporte les cinq champs qui définissent la périodicité. Le
sixième champ indique l’identité du propriétaire du processus qui exécutera la
commande. Le septième champ définit la commande à exécuter.
Le fichier /etc/crontab de base utilise le script /usr/bin/run-parts pour exécuter :
toutes les commandes du répertoire /etc/cron.hourly toutes les heures
toutes les commandes du répertoire /etc/cron.daily toutes les nuits
toutes les commandes du répertoire /etc/cron.weekly chaque dimanche
toutes les commandes du répertoire /etc/cron.monthly le premier jour de chaque mois
Pour exécuter une commande avec l’une de ces périodicités, il suffit à l'administrateur
de copier la commande dans le répertoire correspondant. Il est sinon possible d’ajouter
une ligne au format des requêtes cron, directement dans le fichier /etc/crontab.
# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
at
La commande at permet de faire exécuter des commandes à une heure et une date
données. C’est le démon atd qui prend en charge l’exécution des requêtes.
La commande at lit les commandes à exécuter depuis l’entrée standard. Il faut, si elles
ont été stockées dans un fichier, cas le plus fréquent, procéder à une redirection de
l’entrée standard.
$ at heure [date] < fichier_requête
L’heure et la date sont au format standard d’UNIX (cf. man date) ou intègrent des
mots clés propres à la commande date (cf. man at).
# at 1500 <fcommande # exécuter le fichier fcommande à 15 heures.
# at midnight < fcommande # exécuter le fichier fcommande à minuit.
# at now + 3 hours < fcommande # exécuter le fichier fcommande dans 3 heures.
Pour connaître les travaux soumis, il faut exécuter la commande at -l ou la commande
atq.
$ at -l
1 1999-05-11 12:30 a
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-13
Module 6 : La gestion des processus
2 1999-05-10 20:30 a
Pour supprimer un travail avant qu'il ne soit exécuté, il faut exécuter la commande
at -d ou la commande atrm :
$ at -d 2 # Supprime le travail numéro 2
batch
La commande batch utilise le même schéma de fonctionnement que at, mais on ne
précise pas d’heure ni de date d’exécution. Le travail soumis est mis en attente dans
une « FIFO » et exécuté à son tour et quand la charge système le permet.
$ batch < fcommande
$ at –l # Visualiser les travaux en attente. Les travaux ont l’extension « .b »
$ at –d 3 # Supprimer le travail numéro 3
6-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
$ compta
… Printf
printf(…); …
...
$ ps
PID TTY TIME CMD
854 pts/0 00:00:00 calcul
1029 pts/0 00:00:00 compta
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-15
Module 6 : La gestion des processus
Les bibliothèques
Une bibliothèque se présente sous la forme d’un fichier qui possède l’extension « .a »
(« archive ») pour une bibliothèque statique et l’extension « .so » (« shared object »)
pour une bibliothèque partagée.
Le nom complet d’une bibliothèque partagée inclut son numéro de version, sous la
forme MAJEUR.MINEUR. Le nom libtermcap.so.2.0.8 désigne la révision de majeur
2 et de mineur 0.8 de la bibliothèque termcap.
Une application peut utiliser une bibliothèque de version plus récente que celle utilisée
lors de la compilation, à condition que le majeur reste identique. S'il existe plusieurs
applications qui ont été conçues à partir de majeurs différents, cela implique de
conserver les différentes versions de ces bibliothèques, une version par majeur.
La politique normalement suivie lors de l’installation d’une application est de créer les
bibliothèques dynamiques dans le répertoire /lib et d’avoir, d’autre part, un lien
symbolique pour chaque majeur, qui pointe sur la bibliothèque la plus récente
compatible avec ce majeur, par exemple :
# ls -l libresolv*
-rwxr-xr-x 1 root root 169720 fév 29 2000 libresolv-2.1.3.so
lrwxrwxrwx 1 root root 18 sep 1 12:38 libresolv.so.2 -> libresolv-2.1.3.so
Remarque
Si pour une raison ou pour une autre, des bibliothèques essentielles, comme libc , la
bibliothèque standard du langage C, venaient à ne plus être accessibles, les
commandes ne fonctionneraient plus. Il faut donc impérativement posséder des
disquettes de démarrage qui contiennent les principales commandes (cp, ls, …), créées
par édition de lien statique. Ces disquettes permettent de réparer le système, par
exemple, en restaurant les bibliothèques (cf. Annexe J : Dépannage).
Pour la raison que l’on vient de mentionner, la mise à jour de ces bibliothèques est
périlleuse. Il est plutôt conseillé de réaliser une mise à jour du système. Pour y
procéder, il faut utiliser la commande « ln –sf » qui permet de remplacer un lien sans
qu’il y ait de vacance.
6-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
Exemples
$ cat motcode.c
#include <stdio.h>
#include <string.h>
main()
{
char *motcode="linux"; char motut[100];
printf("Saisissez un mot : "); gets(motut);
if ( ! strcmp(motut,motcode))
printf("Bravo, le mot codé est linux\n");
else
printf("Perdu, il fallait trouver linux\n");
}
$ cc -static motcode.c -o motcode.sta # compilation en statique
$ cc motcode.c -o motcode.dyn # compilation en dynamique
$ ls –l mot*. ? ? ? # motcode.dyn est dynamique, motcode.sta est statique
-rwxrwxr-x 1 gilles gilles 12103 nov 7 17:21 motcode.dyn
-rwxrwxr-x 1 gilles gilles 965445 nov 7 17:22 motcode.sta
$ motcode.dyn # la bibliothèque standard du langage C est inaccessible
motcode.dyn: error in loading shared libraries: libc.so.6: cannot open shared ob
ject file: No such file or directory
$ ldd /bin/tcsh
libnsl.so.1 => /lib/libnsl.so.1 (0x4001c000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40032000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40036000)
libc.so.6 => /lib/libc.so.6 (0x40063000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ objdump -x /bin/tcsh | grep NEEDED
/bin/tcsh: no symbols
NEEDED libnsl.so.1
NEEDED libtermcap.so.2
NEEDED libcrypt.so.1
NEEDED libc.so.6
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-17
Module 6 : La gestion des processus
Les IPC
Les IPC
Introduction
Les IPC (« Inter Process Communication ») désignent des mécanismes de
synchronisation et de communication implémentés dans le noyau Linux, auxquels les
processus applicatifs font appel pour échanger des données ou régler des problèmes de
concurrence d’accès à des ressources.
Les processus utilisent, pour cela, des primitives du noyau. Les IPC sont décrits dans
la section 2 du manuel de référence.
En quoi, alors, l’administrateur est-il concerné ?
Cela le concerne à trois niveaux :
• Parfaire sa connaissance globale du système.
• Etre capable d’identifier les IPC utilisés par les processus, vérifier que leur
nombre est suffisant et à en supprimer à la main en cas de « plantage » d’un
logiciel.
• Savoir modifier les paramètres du système si les ressources IPC viennent à
manquer pour exécuter les processus applicatifs. L’administrateur qui n’est pas un
spécialiste de la programmation système consulte la documentation du logiciel
pour déterminer le nombre de ressources IPC qui convient.
6-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
Les commandes
Il existe deux commandes qui traitent des IPC :
La commande ipcs qui les visualise.
# ipcs # visualise les informations essentielles des trois catégories
# ipcs –q # visualise les informations essentielles des files de messages
# ipcs –m # visualise les informations essentielles des mémoires partagées
# ipcs –s # visualise les informations essentielles des sémaphores
Dans tous les cas, la commande ipcs affiche, en colonne, des informations relatives
aux IPC existantes :
key La clé désigne le nom de l’IPC. Il a été choisi par le créateur de l’IPC.
id L’identificateur de « l’IPC » désigne une valeur attribuée par le noyau à la
création de l’IPC. C’est l’équivalent du « handle » d’un fichier. L’en-tête de
colonne est respectivement shmid, semid et msqid pour les zones de
mémoire partagée, les sémaphores et les files d’attentes de messages.
owner Le nom du propriétaire de l’IPC.
perms Le champ perms définit, sous forme numérique, les droits d’accès à l’IPC.
La lecture en est identique à celle des droits des fichiers.
bytes | nsems | used_bytes
Selon l’en-tête de colonne, le champ désigne respectivement :
La taille de la zone de mémoire partagée (bytes).
Le nombre de sémaphores d’un tableau de sémaphores.
Le nombre d’octets occupés dans une file d’attente de messages.
Les colonnes supplémentaires des zones de mémoire partagées sont respectivement le
nombre de processus attachés à cette zone (nattach) et l’état de la zone (status).
La colonne supplémentaire des sémaphores est l’état de la zone (status).
La colonne supplémentaire des files d’attente de messages est le nombre de messages
en attente.
# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 0 nobody 600 46084 11 dest
------ Semaphore Arrays --------
key semid owner perms nsems status
0x0000000a 0 root 666 1
------ Message Queues --------
key msqid owner perms used-bytes messages
0x00000000 0 root 700 0 0
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-19
Module 6 : La gestion des processus
6-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 6 : La gestion des processus
Objectifs :
Savoir lancer et arrêter une
application
Savoir gérer le service cron pour
activer des tâches périodiques
Durée : 30 minutes.
Exercice n°1
Est-ce que l’application « crond » est active ? Si oui, quel est son PID ?
Exercice n°2
On exécute la commande suivante :
$ sleep 200 &
a) Quel est son père ?
b) Tuer cette application.
Exercice n°3
L’utilisateur pierre étant connecté, tuez son shell de connexion.
Exercice n°4
Comment autoriser tout le monde à utiliser la commande crontab ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 6-21
Module 6 : La gestion des processus
Exercice n°6
Quel est le nom du fichier log utilisé par le démon cron ?
Visualisez-le.
Exercice n°7
Créez, sous le compte de pierre, un fichier crontab qui réalise les actions suivantes :
a) Ajout toutes les minutes du message « Bonjour » suivi de la date, au fichier
/tmp/log.
b) Liste des processus tous les ¼ d’heure, de 8h à 17h du lundi au vendredi, dans le
fichier /tmp/processus.
Listez le crontab actif et supprimez-le après avoir constaté qu’il fonctionne.
Exercice n°8
Sauvegardez le fichier crontab de l’administrateur, et ensuite ajoutez-y l’action
suivante :
Ajout toutes les vingt minutes de la date au fichier /tmp/log.
Cette action doit être exécutée avec les droits de l’utilisateur pierre.
Exercice n°9
En analysant le résultat de la commande ps aux, indiquez, selon votre avis, quelles
sont les applications susceptibles d’être des démons.
Exercice n°10
Ajoutez la variable d’environnement « PAYS=France » à tous les utilisateurs.
Exercice n°11
Quelles sont les commandes gérant les IPC sur votre système ?
Exercice n°12
Quelles sont les bibliothèques dynamiques respectivement utilisées par les
commandes cp et kedit ?
6-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
• LILO
• Système de fichiers
root, swap primaire,
périphérique de boot
• mkbootdisk, « rescue »
• Le processus init, le
fichier /etc/inittab
• Les scripts /etc/rc
• shutdown
7Module 7 : L’arrêt et le
démarrage
Objectifs
Après l’étude du chapitre, le lecteur sait démarrer et arrêter le système. Il maîtrise le
paramétrage de l’arrêt et du démarrage.
Contenu
Le démarrage d’un PC
Le démarrage du système Linux
Le processus init
Les scripts /etc/rc
Les sessions
L’arrêt du système
Références
HOWTO : lilo mini-HOWTO, Boot-Prompt HOWTO, Bootdisk-HOWTO,
Multi-boot-with-Lilo-HOWTO, From-PowerUp-to-bash-prompt-HOWTO
Le manuel : lilo(8), inittab(5), init(1), shutdown(8)
Internet : les sites des distributions Linux (http://www.redhat.com…)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-1
Module 7 : L’arrêt et le démarrage
Le disque dur d’un PC peut être partitionné. Un système d’exploitation (Windows 9x,
NT ou Linux) peut être installé dans l’une des partitions et il est possible que
plusieurs systèmes cohabitent sur un même disque dur, un par partition. Dans ce
dernier cas, un système est actif à la fois et c’est celui-ci qui est chargé en mémoire au
démarrage de l’ordinateur.
Le transparent schématise un disque qui contiend trois partitions où sont
successivement installés les systèmes Windows 9x, NT et Linux.
Le premier secteur du disque contient ce que l’on appelle le « MBR » (« Master Boot
Record ») qui décrit le partitionnement du disque. Il est à l’origine du chargement, on
dit aussi amorce ou « boot » du système actif, quel qu’il soit.
La structure du MBR est la suivante :
• Les 446 premiers octets contiennent un programme de chargement, « loader » en
anglais, qui va démarrer l’exécution du programme de chargement propre au
système d’exploitation actif.
• Les 64 octets qui suivent décrivent les partitions : taille, localisation, type et statut.
Cette table ne contient actuellement que quatre entrées. Il en résulte qu’un disque
ne peut contenir que quatre partitions dites primaires ou principales. Pour dépasser
cette limite, il est possible de définir une des partitions primaires comme partition
étendue. La partition étendue peut contenir des partitions logiques.
• Les deux derniers octets du MBR constituent le « magic number », une valeur
numérique que certains systèmes utilisent pour vérifier la signature du secteur.
Le processus de démarrage d’un PC commence par l’exécution automatique d’un
programme de chargement situé dans le « BIOS » (« Basic Input Output System »). Le
BIOS réside dans la mémoire morte de type « ROM » (« Read Only Memory »). Ce
programme charge le programme de chargement du MBR, qui prend la relève.
Il existe plusieurs programmes de chargement qui peuvent être installés dans le MBR.
Dans le cas le plus simple, le chargeur choisit le système d’exploitation de la partition
7-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
active ou, sinon, offre la possibilité de choisir le système d’exploitation que l’on
souhaite effectivement démarrer. Le programme de chargement charge à son tour le
secteur de « boot » du système d’exploitation choisi. C’est ce dernier qui procède au
chargement effectif du système d’exploitation en RAM.
Dans les cas où Linux cohabite avec un système d’exploitation de type Windows NT,
il est possible de choisir le système d’exploitation au moment du démarrage du PC,
même si la stratégie utilisée change en fonction du chargeur.
Les principaux chargeurs sont :
LILO Le chargeur de Linux (« LInux LOader ») sait charger tous les
systèmes d’exploitation qui fonctionnent sur PC.
Boot Manager Le chargeur « boot manager » a été conçu par IBM pour OS/2. Le
boot manager charge un exécutable installé sur une partition
séparée. C’est lui qui propose le choix du système à exécuter. Cette
solution a l’inconvénient de monopoliser une partition primaire.
NT Loader Le chargeur de Windows NT recherche les systèmes à proposer
dans un fichier de sa propre partition.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-3
Module 7 : L’arrêt et le démarrage
# fichier /etc/lilo.conf
boot=/dev/hda
delay=100
image=/boot/vmlinux
root=/dev/hda1
label=linux
other=/dev/hda4
label=dos
7-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Le fichier /etc/lilo.conf.
C’est le fichier de configuration de la commande lilo. Il spécifie les différents noyaux
Linux et éventuellement les autres systèmes d’exploitation que les programmes de
démarrage peuvent activer. Il définit des options dont certaines sont générales et
d’autres ne s’appliquent qu’à un noyau particulier. Enfin, il précise où sont installés
les programmes de démarrage :
• Dans le premier secteur d'une disquette
• Dans le MBR du premier disque dur
• Dans le secteur de boot de la partition Linux
Dans les deux premiers cas, LILO contient le boot primaire. Il est donc autonome pour
démarrer Linux. Dans le troisième cas, il se résume au boot secondaire et il doit donc
être activé par un tiers (« boot manager » de OS/2 ou « NT Loader », ...).
Le fichier /etc/lilo.conf
Un exemple de fichier
# paramètres globaux
boot=/dev/hda
delay=100
# paramètres de l’image
image=/boot/vmlinux
root=/dev/hda1
label=linux
# paramètres de l’image
other=/dev/hda4
label=dos
Structure du fichier
Le fichier est constitué de lignes qui définissent des paramètres de la forme :
nom=valeur
Les paramètres qui précèdent la première configuration sont globaux. Chaque
configuration est introduite par le mot clé « image= » dans le cas d’un noyau Linux,
ou bien par le mot clé « other= » s’il s’agit d'un autre système d’exploitation. Les
paramètres qui suivent (root, label, ...) ne s’appliquent qu’à l’image courante. Pour une
meilleure lisibilité, on les indente. Le caractère « # » introduit un commentaire.
Les principaux paramètres globaux
boot=<Loacalisation de lilo>
boot=/dev/fd0 pour la disquette.
boot=/dev/hda dans le MBR d’un disque IDE.
boot=/dev/hda2 en tête d’une partition linux
install=<Chemin d’accès du chargeur (« boot loader »), par défaut /boot/boot.b>
map=<Chemin du fichier des blocs du chargeur (« map file »), par défaut /boot/map.>
compact Accélère le chargement du noyau. Elle n’est pas possible avec tous les
disques.
delay=<Délai en dixièmes de secondes, avant le démarrage automatique>
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-5
Module 7 : L’arrêt et le démarrage
La commande lilo
La commande lilo installe le chargeur et crée le fichier map. Elle est configurée, par
défaut, par le fichier /etc/lilo.conf ou par le fichier associé à l'option « -C ». L’option
« –t » permet de tester la syntaxe des options et du fichier lilo.conf. La liste qui suit
indique les options importantes. Certaines sont équivalentes aux paramètres de
lilo.conf :
-b boot=<Périphérique de démarrage>
-c compact # Pour un chargement plus rapide
-d delay=<Délai (en 1/10 secondes)>
-D default=<L’image à charger par défaut>
-i install= <Le chemin du chargeur>
-m map=<Le chemin du fichier map à créer>
-v verbose=<Le niveau de commentaires (valeur comprise entre 1 et 5)>
Mise en œuvre
Précautions préalables
La mauvaise utilisation de lilo peut détruire la configuration actuelle du système. Il est
donc préférable de réaliser une sauvegarde complète du système qui permette une
réinstallation après crash. Il faut au minimum sauvegarder la configuration actuelle de
lilo et le MBR. Il est vivement recommandé également de posséder une disquette de
démarrage (cf. La commande mkbootdisk et l’annexe J : Dépannage).
# cp /etc/lilo.conf /etc/lilo.conf.old
# dd if=/dev/hda of=/mnt/floppy/MBR bs=512 count=1
Le MBR peut être ultérieurement réinstallé par la commande MS-DOS.
c:\> fdisk /MBR
7-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Utilisation avancée
Il existe des options de configuration complémentaires :
Linear Force le système à utiliser des numéros de secteur linéaire plutôt que des
adresses de la forme : cylindre, tête, secteur. Cette option est nécessaire
pour certains disques. Elle est incompatible avec compact.
message=<Le fichier qui contient le message affiché avant le prompt de lilo>
message=/boot/bootmesg.txt
backup=<Le fichier de sauvegarde du secteur de démarrage>
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-7
Module 7 : L’arrêt et le démarrage
vga=<normal|extended|1|2|3|ask>
Cette option précise le mode vga qui doit être utilisé lors du démarrage.
ro,read-only
Cette option provoque le montage du système de fichiers root en lecture
seulement. Cela permet d’y exécuter la commande fsck. Cette option est
utilisée habituellement.
rw,read-write
A l’inverse, cette option provoque le montage immédiat du système de
fichiers root en lecture écriture.
mem=<La taille de la mémoire vive prise en compte par le noyau>
Cette option permet ainsi de réduire la mémoire à des fins de tests.
mem=32m.
ramdisk=<La taille en Ko d’un disque virtuel en mémoire vive>
password=<Mot_de_passe>
Le mot de passe « Mot-de-passe> est demandé au démarrage.
restricted Le mot de passe n’est demandé que si l’on passe des paramètres à
l’image, par exemple : « linux single ».
alias=<Alias pour l’image, en plus du label>
single-key Autorise le chargement d’une image par l’appui d’une simple touche,
sans validation. Il faut que le label ou l'alias ne comporte qu’un seul
caractère.
init=<Le programme qui remplace init>
init=/bin/sh
initrd=<Disque à charger en mémoire>
Permet le chargement d'un disque en mémoire par le chargeur. Ce disque
virtuel peut être monté en tant que FS root.
panic=<Timeout>
Provoque un redémarrage automatique en cas de crash au bout du
timeout. Timeout est exprimé en secondes.
loader=<Chargeur>
Spécifie, pour un système différent de Linux, le boot secondaire.
loader=/boot/chain.b Le chargeur par défaut
loader=/boot/any_d.b Permet de démarrer une partition Windows 95/98
située sur le deuxième disque.
table=<Disque>
Spécifie, pour un système différent de Linux, le disque qui contient la
table des partitions.
Références
• Le manuel en ligne : lilo(8), lilo.conf(5).
• La documentation du paquetage : /usr/doc/lilo-*/README, c’est la
documentation la plus complète sur lilo. Elle décline notamment toutes les options
et contient une section « Troubleshooting ».
• Les HOW-TO :
- Lilo-Mini How-to : exemples types d’utilisation de LILO
- The Linux Bootdisk HOWTO : la création d’un mini-système Linux, comme
par exemple une disquette de démarrage
7-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
bash #
3. Il suffit ensuite de diagnostiquer et de réparer le système de fichiers du disque dur.
Si les dégâts ne sont pas irrémédiables, on peut espérer récupérer le système de
fichiers. Dans le cas contraire, nous souhaitons à l’administrateur de disposer de
sauvegardes récentes.
L’exemple qui suit suppose que le système de fichiers root est /dev/hda5.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-9
Module 7 : L’arrêt et le démarrage
7-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
menucolor=15,1
menudefault=Win98, 15
[linux]
shell=c:\loadlin.exe c:\linux\vmlinuz root=/dev/hda2 ro
[win98]
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-11
Module 7 : L’arrêt et le démarrage
init
init
(PID=1)
(PID=1)
/etc/inittab
Applications
compatibles
avec le niveau
courant
Principes de fonctionnement
Le système Linux offre plusieurs niveaux de fonctionnement. A chacun d’eux
correspond un certain nombre de services pour les utilisateurs. Le rôle de la
commande init, qui a comme argument le niveau de fonctionnement choisi, est
d’activer tous les processus associés à ce niveau. La commande init trouve la
définition des commandes à exécuter pour un niveau donné dans le fichier /etc/inittab.
On ne peut avoir qu’un seul niveau de fonctionnement actif à la fois.
Une commande peut être associée à plusieurs niveaux. Cela permet de définir des
services qui sont activés pour plusieurs niveaux. Pour le reste, on trouve deux cas de
figure :
• Un niveau en englobe un autre. Il ajoute de nouveaux services à ceux déjà offerts
par le niveau précédent. Le niveau 4 offrira, par exemple, tous les services du
niveau 3 plus un service particulier.
• Un niveau offre des services totalement différents de ceux offerts par les autres
niveaux. Le changement de niveau se traduit alors par une forme complètement
nouvelle de fonctionnement.
Au démarrage du système, lorsque le noyau crée le processus init, il ne spécifie pas de
niveau. C’est le niveau défini par défaut dans inittab qui est choisi.
Si l’on change de niveau de fonctionnement, init envoie le signal SIGTERM (le signal
15 ) à tous les processus qui ne sont pas concernés par le nouveau niveau demandé.
Au bout de cinq secondes, les processus qui ne sont pas terminés reçoivent le signal
SIGKILL (le signal 9) qui, rappelons-le, ne peut pas être intercepté. L’option
« -t Nb_secondes» de la commande init permet de fixer ce « time out ».
7-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Les niveaux
Il existe onze niveaux définis par les chiffres de 0 à 9, plus le niveau s ou S.
Le tableau qui suit présente leur usage conventionnel.
Niveau Utilisation conventionnelle
0 Le niveau 0 est utilisé pour arrêter le système. La commande shutdown
exécute, en final, le basculement au niveau 0 (init 0).
1 Le niveau 1 est associé au mode maintenance. Dans ce mode, tous les
systèmes de fichiers sont montés mais seul un nombre restreint de services
est démarré. Les utilisateurs ne peuvent pas se connecter. La console
opérateur est disponible pour l’administrateur root.
2 Le niveau 2 est associé au mode multi-utilisateur. Les systèmes de fichiers
sont montés, les services, y compris réseau, sauf NFS, sont démarrés et
autorisent des connexions, via la commande telnet.
3 Le niveau 3 est associé au démarrage des services de partage de fichiers à
distance, tel que « NFS » (« Network File System »). Le niveau 3 est
typiquement un sur ensemble du niveau 2.
4 Le niveau 4, rarement utilisé, est associé à un mode multi-utilisateur
spécifique, propre à un site.
5 Le niveau 5 est associé au mode de connexion graphique, via le démon
xdm.
6 Le niveau 6 est associé à l’arrêt et au redémarrage du système.
s, S Le niveau « s » ou « S », indifféremment, est associé au mode « un seul
utilisateur » (« single user »). Dans ce mode, les systèmes de fichiers des
utilisateurs sont montés mais seuls les processus fondamentaux pour le
bon fonctionnement du système sont démarrés et un shell en mode root est
activé sur la console maîtresse. Le niveau « s » ne requiert pas de fichier
/etc/inittab et n’y est pas référencé.
7,8,9 A définir par l’utilisateur.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-13
Module 7 : L’arrêt et le démarrage
[root@(none)/root]#
LILO boot : linux single
bash #
Il existe aussi des pseudo-niveaux, les niveaux « a », « b » et « c ». Ils permettent de
faire exécuter les commandes qui sont associées à l’un de ces niveaux, en sus de celles
déjà exécutées pour le niveau courant. Ils ne se traduisent pas par un changement de
niveau. Cela permet à l’administrateur de rassembler toutes les commandes dans
/etc/inittab, plutôt que de les activer manuellement.
Remarque
Les processus qui résultent de l’exécution de commandes associées aux pseudo-
niveaux « a », « b » et « c » ne sont pas tués lors d’un véritable changement de niveau.
Il existe aussi le niveau « q » qui, par le biais de la commande init q, demande à init
de relire le fichier /etc/inittab.
7-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Le fichier /etc/inittab
$ more /etc/inittab
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
5:2345:respawn:/sbin/mingetty tty5
1 2 3 4
Etiquette Niveaux Action Commande
Les commandes
telinit Permet de changer de niveau
runlevel Permet de connaître le niveau courant
Le fichier /etc/inittab
Le fichier /etc/inittab détermine quelles sont les commandes que le processus init doit
exécuter pour un niveau donné. Le processus init l’examine séquentiellement. C’est
un fichier composé de lignes de texte. Chaque ligne est une ligne de commentaires qui
commence par le caractère # où elle définit une commande à exécuter. Une ligne de
commande est composée de quatre champs séparés par le caractère :.
Id : [niveau …]:action:commande [ # commentaire ]
Les champs ont la signification suivante :
Champ Signification
Id Le champ « id » est composé d’au plus quatre caractères et n’a comme
seule utilité que d’identifier la ligne. Il est ignoré par le processus init.
Niveau Le champ « niveau » permet à init de décider si la commande doit être
prise en compte pour le niveau demandé. Il est possible de préciser
plusieurs niveaux. Un champ vide est équivalent à 0123456 (tous les
niveaux sauf « s »). On comprend ainsi comment faire pour qu’un
niveau en englobe un autre. Ajoutons un service, actif pour le niveau 4,
qui s’ajoute à ceux du niveau 3.
1. On édite le fichier /etc/inittab (vi /etc/inittab).
2. On ajoute la ligne spécifique au niveau 4.
Id4:4:----------:----------------------------
Avant :
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-15
Module 7 : L’arrêt et le démarrage
id31:23:---------:--------------------------
id3:3:----------:----------------------------
Après
id31:234:---------:--------------------------
id3:34:----------:----------------------------
Remarque
L’administrateur est très rarement concerné par la modification des
lignes « tous niveaux », qui sont associées à des commandes
fondamentales dont il ne faut surtout pas modifier la logique
d’exécution.
Action Le champ « action » indique à init le contexte dans lequel la
commande doit être exécutée. Pour chaque cas, il existe deux variantes
possibles, avec ou sans attente. Dans le cas avec attente (« wait »), init
attend que le processus qui exécute la commande soit terminé pour
passer à la ligne suivante. Dans le cas sans attente, init passe à
l’exécution de la ligne suivante du fichier, sans attendre que le
processus en cours soit achevé. Ceci permet de décider d’une exécution
séquentielle (attente) ou parallèle (sans attente) des commandes du
fichier inittab. Les valeurs possibles sont :
sysinit Les lignes dont le champ action est « sysinit » sont
exécutées une seule fois, lors du démarrage à froid du
système. Les lignes en « sysinit » ne tiennent pas compte
des niveaux. Elles sont par nature « tous niveaux » et
exécutent les commandes fondamentales et nécessaires au
bon fonctionnement du système.
boot Les lignes dont le champ action est « boot » sont
exécutées la première fois que l’on active l’un des niveaux
du champ niveau. Elles ne le sont plus ensuite.
Soit la ligne :
Bo23:23:boot:cmd
Le niveau de fonctionnement actuel est 2, la commande
cmd a été exécutée. La commande émise par
l’administrateur est :
# init 3
La ligne est ignorée, le service a déjà été activé lors
du boot en niveau 2.
Avec le champ « boot », le processus init n’attend pas que
le processus soit terminé pour exécuter le reste du fichier
inittab.
bootwait Le principe de fonctionnement est le même que
précédemment mais init attend que l’exécution de la
commande soit terminée pour poursuivre.
7-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-17
Module 7 : L’arrêt et le démarrage
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel
it.pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:12345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/usr/bin/X11/xdm -nodaemon
Les commandes
Les commandes sont simples et peu nombreuses :
La commande runlevel affiche le niveau de fonctionnement courant.
La commande init permet de changer de niveau.
# runlevel
53
Remarque
La valeur 5 représente le niveau précédent et la valeur 3 le niveau actuel de
fonctionnement.
# init 2
# init s
# init a
La commande telinit a le même effet.
# telinit 2
# telinit –t 12 s # Le signal SIGKILL est envoyé douze secondes après le signal
# SIGTERM
Remarque
Le changement de niveau est souvent réalisé via une commande, souvent un script, qui
cache à l’administrateur l’exécution de la commande init. Le script shutdown en est
un exemple significatif. Pour exécuter manuellement la commande init,
l’administrateur doit parfaitement maîtriser le contenu du fichier inittab.
7-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Le script rc.sysinit
Le processus init commence d’abord par exécuter le script /etc/rc.d/rc.sysinit qui
contient des commandes de contrôle et d’initialisation indispensables au
fonctionnement de Linux. Les principales opérations sont :
• Initialisation de la variable PATH avec les répertoires /bin, /usr/bin, /sbin et
/usr/sbin.
• Initialisation des disques de « swap ».
• Détermination du nom de la machine, le « hostname ».
• Vérification du système de fichiers principal root et montage du pseudo-système
de fichiers /proc.
• Montage de tous les systèmes de fichiers, à l’exception des systèmes de fichiers
NFS.
• Suppression des fichiers verrous des services « uucp », « X », …
• Initialisation des ports série.
• Chargement des pilotes dynamiques, les modules (cf. Module 11 : Les
périphériques).
• Création du fichier /var/log/dmesg qui contient la configuration du système.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-19
Module 7 : L’arrêt et le démarrage
Le script rc.local
Le dernier script exécuté par init est le script run commands /etc/rc.d/rc.local, qui est
pratiquement vide. C’est ce script que l’administrateur modifie pour que soient
exécutées des commandes propres au site, tels des démons associés à des logiciels
spécifiques.
Remarque
L’ajout d’un système de fichiers, d’un disque de swap secondaire ou la mise en place
des quotas ne requièrent normalement pas de modification des run commands. Il suffit
de modifier le fichier de montage automatique (cf. Module 4 : Les systèmes de
fichiers).
7-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
init
init
/etc/inittab
/etc/rc.d/rc3.d/*
/etc/rc.d/rc
/etc/rc.d/rc33
K20rwhod
K20rwhod S40crond
S40crond S50inet
S50inet S60lpd
S60lpd S80sendmail
S80sendmail
Introduction
Les premiers systèmes UNIX, avant que n’existent les niveaux de fonctionnement et
le fichier inittab, possédaient un seul fichier rc, exécuté directement par init. Le
schéma adopté aujourd’hui dans Linux est simple et la lecture du fichier /etc/inittab
nous renseigne. C’est le script /etc/rc.d/rc qui exécute les actions pour le niveau qui
lui est passé en argument. Ainsi le démarrage du niveau 2 est exécuté par le script
/etc/rc.d/rc appelé de la manière suivante : /etc/rc.d/rc 2.
Le schéma de programme du script rc est simple. Il comporte deux boucles de
programmes. La première déclenche l’exécution des scripts K* du répertoire
/etc/rc.d/rc<n>.d, la seconde celle des scripts S* du même répertoire
/etc/rc.d/rc<n>.d. La lettre « K » signifie « kill » et « S » « start ». Elles ont comme
rôle respectif d’arrêter ou de démarrer un service. Le nombre qui suit la lettre « K » ou
« S » guide l’ordre d’exécution, celui des noms de fichiers générés par le shell par
« K* » ou « S* ». Le suffixe nous fait comprendre le contenu du script.
Le script S40crond démarre le démon crond. Il est clair que le répertoire /etc/rc2.d,
associé au démarrage du système en mode multi-utilisateur, contient essentiellement,
et peut-être uniquement, des scripts Snnxxx, alors que le répertoire /etc/rc0.d, associé
à l’arrêt du système, ne contient que des scripts Knnxxx, à l’exception du script
S00halt.
Exemples
Extraits du script /etc/rc.d/rc
# Is there an rc directory for this new runlevel?
if [ -d /etc/rc.d/rc$runlevel.d ]; then
# First, run the KILL scripts.
for i in /etc/rc.d/rc$runlevel.d/K*; do
# Check if the script is there.
[ ! -f $i ] && continue
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-21
Module 7 : L’arrêt et le démarrage
Remarques
La commande chkconfig permet d’automatiser le lancement et l’arrêt des services
utilisateurs (crond, nfsfs, sendmail, ...) en configurant les scripts du répertoire
/etc/rc.d/init.d et en créant les liens symboliques correspondants dans les différents
répertoires /etc/rc.d/rc<n> (cf. man chkconfig).
La commande ntsysv, est une interface conviviale à la commande chkconfig. Elle
permet de réaliser les mêmes opérations à partir d’un menu comportant des cases à
cocher ou à décocher, selon que l’on veut activer ou désactiver un service.
7-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Remarque
Quand l’administrateur veut arrêter ou démarrer manuellement un service, crond par
exemple, en saisissant une ligne de commande et être certain de ne pas oublier
d’exécuter des opérations, il peut exécuter la ligne de commande suivante :
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-23
Module 7 : L’arrêt et le démarrage
# Start daemons.
echo -n "Starting lpd: "
daemon lpd
echo
touch /var/lock/subsys/lpd ;;
stop)
# Stop daemons.
echo -n "Shutting down lpd: "
killproc lpd
echo
rm -f /var/lock/subsys/lpd ;;
esac
La commande chkconfig
La commande chkconfig est un moyen simple pour définir les niveaux pour lesquels
un service doit être démarré ou arrêté.
Elle permet de visualiser, d’ajouter ou de retirer un service pour un ou plusieurs
niveaux de fonctionnement.
Syntaxe
Sa syntaxe est la suivante :
Afficher les services et le mode arrêt ou démarrage selon les niveaux.
chkconfig --list [service]
Ajouter un service.
chkconfig --add service
Retirer un service.
chkconfig --del service
Positionner le mode arrêt ou démarrage selon les niveaux indiqués.
chkconfig [--level niveaux] service <on|off|reset>
Exemples
Nous prenons comme exemple le service autofs. La configuration actuelle est :
Contenu du répertoire /etc/rc/d/init.d pour le service autofs.
# ls au*
autofs
Recherche des liens pour démarrer ou arrêter le service.
# find .. -name '*auto*'
../init.d/autofs
../rc0.d/K82autofs
../rc1.d/K82autofs
../rc2.d/K82autofs
../rc3.d/S18autofs
../rc4.d/S18autofs
../rc5.d/S18autofs
../rc6.d/K82autofs
Visualisation, via chkconfig.
7-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-25
Module 7 : L’arrêt et le démarrage
Les sessions
Les sessions
init
init /etc/inittab
getty
getty getty
getty
tty0 tty1
/etc/gettydefs
login
login login
login
/etc/passwd
/etc/bashrc
sh
sh bash
bash
Principes
La commande getty affiche l’invite de connexion « login : » sur les terminaux passifs
connectés par une liaison filaire asynchrone, multiplexée ou non.
Le processus qui l’exécute est créé par init, via le fichier /etc/inittab avec un champ
action à « respawn ».
Dans la pratique, on rencontre de moins en moins de terminaux de type texte
connectés ainsi au système Linux. Les connexions se font essentiellement à partir d’un
poste client, connecté sur le réseau, et fonctionnant en émulation terminal.
Cependant, Linux offre douze consoles virtuelles, accessibles sur la console maîtresse
de l’ordinateur. Pour gérer ces consoles virtuelles, Linux utilise la commande
mingetty, qui est une commande getty allégée. Il est possible d'ouvrir une session de
travail par console virtuelle. La commutation d’une console virtuelle à une autre se fait
par la combinaison de touches <ALT> <F1> pour la première, <ALT> <F2> pour la
deuxième, et ainsi de suite.
# grep getty /etc/inittab
# Run gettys in standard runlevels
1:12345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
Remarques
• Sur les douze consoles virtuelles possibles, six seulement sont activées par le
fichier /etc/inittab. Pour en activer d’autres, il suffit de compléter ce fichier en
ajoutant des lignes construites sur le même modèle que celles déjà définies.
• A partir d’une session graphique, il faut utiliser la touche <CTRL> en plus des
touches <ALT> <Fnuméro> pour basculer sur une des consoles virtuelles. Ainsi,
7-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
getty, mingetty
La commande getty peut prendre en charge la gestion d’un terminal connecté sur le
port série. Elle requiert alors deux arguments : l’identification de la liaison sur laquelle
est connecté le terminal (le port de connexion) et la clé d’entrée dans le fichier
/etc/getttydefs pour paramétrer la liaison. La clé est souvent l’expression de la vitesse
de la liaison en bits par seconde.
Une ligne du fichier /etc/gettydefs est composée de champs séparés par le caractère #.
Sa structure est la suivante :
Clé d’entrée # paramètres initiaux # paramètres finaux # invite # clé suite
avant la connexion après la connexion
Les paramètres initiaux et finaux sont constitués d’identificateurs, séparés par des
espaces, qui définissent les caractéristiques de la liaison, telles que la vitesse, la parité,
etc.
Ces identificateurs sont présentés dans la documentation de la commande stty ou dans
la présentation des principes de gestion des terminaux (man stty, man 3 termios).
La clé « clé suite » renvoie à une autre entrée de /etc/gettydefs, qui sera utilisée par la
commande getty, pour tenter un autre paramétrage, au cas où celui-ci ne
fonctionnerait pas. Cette fonctionnalité est utile dans le cas d’une liaison par modem
pour chaîner les clés des différentes possibilités de fonctionnement du modem.
La commande mingetty utilise l'entrée suivante du fichier /etc/gettydefs :
# 38400 fixed baud Dumb Terminal entry
DT38400# B38400 CS8 CLOCAL CRTSCTS # B38400 SANE -ISTRIP CLOCAL
CRTSCTS #@S login: #DT38400
Paramètre Signification
B38400 La vitesse de la ligne.
CLOCAL Désactive le signal de commande de modem.
CRTSCTS Active le protocole RTS/CTS.
-ISTRIP N'efface pas le huitième bit des caractères en entrée.
SANE Positionne ou inhibe d’autres drapeaux standard (cf. man stty).
@S Désigne le nom réseau de la machine (« Hostaname ») (cf. man
getty).
Remarque
Les connexions réalisées sur un réseau TCP/IP, via l’émulation de terminal « telnet »,
ne sont pas concernées par la commande getty. Le démon principal du réseau inetd
crée, à chaque demande de connexion via telnet, un démon serveur, telnetd, qui alloue
un pseudo-terminal pour la session. Le processus telnetd est le père du processus qui
exécute le shell et il prend fin en même temps que la session, donc du shell.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-27
Module 7 : L’arrêt et le démarrage
7-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Le fichier /etc/termcap
Le fichier /etc/termcap
TERM=vt100 sh
sh
export TERM TERM=vt100
TERM=vt100
~/.bash_profile <ESC>[2J
vi
vi
TERM=vt100
TERM=vt100
/etc/termcap
Principe de fonctionnement
Le programme qui a besoin d’utiliser les séquences de contrôle d’un terminal doit
trouver son nom dans la variable d’environnement TERM.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-29
Module 7 : L’arrêt et le démarrage
L’alternative terminfo
La base de données, connue sous le nom de terminfo, représente une alternative
efficace au fichier /etc/termcap. L’accès à la définition des séquences de contrôle d’un
terminal par un programme se fait toujours grâce à la variable TERM. Il est plus
rapide car il existe un fichier par terminal. Pour améliorer encore les temps d’accès, le
format du fichier est binaire. C’est la commande tic qui fabrique la base de données de
termcap.
La base de données terminfo est située dans le répertoire /usr/share/terminfo. Elle
consiste en un ensemble de répertoires nommés « a », « b » ... Le répertoire « v »
contient les fichiers de tous les terminaux dont le nom commence par « v ». Le nom
du fichier est celui du terminal qu’il décrit, vt100 par exemple.
Une commande utilise /etc/termcap ou la base de données terminfo selon le choix
réalisé par le programmeur. Ce n’est pas l’utilisateur qui en décide.
7-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Principes
L’arrêt du système est réalisé par la commande shutdown qui, toutes les cinq minutes,
avertit les utilisateurs de l’arrêt imminent du système et, pour terminer, bascule le
système UNIX dans le niveau de fonctionnement 0 pour un arrêt définitif du système.
Mis à part l’apprentissage des options de la commande shutdown, le paramétrage de
l’arrêt du système nous renvoie directement au fonctionnement du processus init et à
la lecture des scripts /etc/rc.d/rc0.d/*, qui s’inscrit complètement dans la logique des
scripts rc<n>.
On exécute les scripts du répertoire /etc/rc.d/rc0.d, c’est-à-dire les scripts du répertoire
/etc/rc.d/init.d avec l’argument stop, à l’exception du script S00halt qui est appelé
avec l’argument start.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-31
Module 7 : L’arrêt et le démarrage
Exemples
Arrêt immédiat.
# shutdown -h now
The system is going DOWN for system halt NOW !!
# shutdown –g0 -y
Arrêt dans 15 minutes
# shutdown -h +15
Broadcast message from root (ttyp1) Fri May 14 09:01:45 1999...
7-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-33
Module 7 : L’arrêt et le démarrage
Objectifs :
Comprendre le démarrage de son
système
Savoir modifier le démarrage en
modifiant /etc/inittab et les scripts
/etc/*rc*
Savoir arrêter le système avec
shutdown
Durée : 60 minutes.
Remarque préalable
Les exercices n°8, 9, 11, 12 et 15 peuvent être regroupés pour minimiser les arrêts et
les redémarrages.
Exercice n°1
L’utilisation de la commande lilo est-elle dangereuse ? Pourquoi ?
Exercice n°2
Modifiez l’exemple du fichier lilo.conf pour permettre l’activation du noyau
/boot/linux.old.
Exercice n°3
Créez une disquette de démarrage qui active le noyau courant dans la partition Linux
qui réside sur /dev/hda2 et démarre, par défaut, au bout de 10 secondes, un système
Windows sur /dev/hda1.
Exercice n°4
Quel est le niveau de fonctionnement actuel pour init ?
7-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 7 : L’arrêt et le démarrage
Exercice n°5
A quoi correspond le niveau 5 d’init ?
Vérifiez en l’utilisant comme niveau initial de démarrage.
Exercice n°6
Quels sont les scripts qui sont activés au niveau 2 d’init ?
Exercice n°7
Quelles différences existent, sur votre système Linux, entre les niveaux 2 et 3 ?
Exercice n°8
Dans le fichier inittab, ajoutez une application qui enregistre la date dans le fichier
/home/pierre/date.log et qui est lancée dans le niveau usuel (le niveau 3). Réalisez un
arrêt et un redémarrage pour tester la commande.
Exercice n°9
Sans supprimer la ligne ajoutée dans l’exercice n°5, désactivez la commande.
Exercice n°10
Quel est le script de démarrage du niveau 3 qui active le démon crond ?
Exercice n°11
Créez un script qui écrit le résultat de la commande ps dans le fichier
/home/pierre/ps.log. Ce script doit s’exécuter au démarrage au niveau 3. Réalisez un
arrêt et un redémarrage pour tester la commande.
Exercice n°12
Provoquez l’arrêt complet du système dans trois minutes avec l’affichage du message
« arrêt pour maintenance ». Eteignez le système et ensuite remettez-le sous tension,
lisez les messages qui s’affichent.
Exercice n°13
Visualisez les messages affichés lors du dernier démarrage.
Exercice n°14
Passez en mode maintenance (niveau S), modifiez la date et l’heure système et
revenez au mode multi-utilisateur (niveau 3).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 7-35
Module 7 : L’arrêt et le démarrage
Exercice n°15
Ecrivez un script qui enregistre la date à la fin du fichier /home/pierre/arret. Ce script
doit être activé automatiquement à chaque arrêt du système. Réalisez un arrêt et un
redémarrage pour tester la commande.
Exercice n°16
Faites en sorte que l’utilisateur pierre possède la commande vi comme application
gérant sa session : vi remplacera son shell de connexion et à chaque démarrage vi sera
activé, la sortie de vi entraînera la fin de la session. Testez et reconfigurez la session
dans l’état antérieur.
Exercice n°17
Générez et testez un jeu de disquettes de récupération (« rescue ») à partir de votre
CD-ROM. Testez ce jeu en montant le système de fichiers root actuel sur le répertoire
/mnt du système de fichiers généré en mémoire (après redémarrage).
Exercice n°18
Créez un nouveau mode d’exploitation, associé à l’un des niveaux 7, 8 et 9, qui active
un shell d’administration sur la console maîtresse (sans saisie du mot de passe). Testez
ce nouveau mode.
7-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 8 : L’impression
• spool d’impression
• Le démon lpd
• Les commandes lpr,
lpq, lprm
• La commande de
gestion des
imprimantes lpc
8Module 8 : L’impression
Objectifs
Après la lecture de ce module, le lecteur sait administrer les files d’attente
d’impression. Le principe des imprimantes déportées lui a été présenté.
Contenu
Les files d’attente d’impression (les spools)
Les commandes lpr, lpq, lprm, lpc, lpd.
Références
HOWTO : Config-HOWTO, Printing-HOWTO, Printing-Usage-HOWTO,
Hardware-HOWTO, LPRng-HOWTO
Le manuel : printcap(5), lpd(8)
Livres : Running linux, Network printing
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 8-1
Module 8 : L’impression
c’est une
cfxx dfxx
imprimante
qui imprime
lpd
lpd
/dev/lp1
Introduction
Le système Linux a adopté le service d’impression du système UNIX BSD, plus
connu sous la dénomination « LPD » (« Line Printer Daemon »), acronyme du démon
d’impression de ce service.
Le service LPD, basé sur les protocoles TCP/IP, fonctionne selon le modèle
client-serveur. En tant que serveur, il peut exécuter des requêtes d’impression émises
localement ou venant d’un client distant. En tant que client, il peut diriger les requêtes
émises localement vers un serveur LPD distant. Le serveur distant n’est pas
nécessairement un système Linux. Cela peut être un autre système UNIX, un serveur
Windows NT ou une imprimante connectée directement sur le réseau.
A chaque imprimante, désignée par son nom de fichier spécial périphérique
/dev/lp<n>, sont associées une ou plusieurs files d’attente, souvent une, dans
lesquelles sont mémorisées les requêtes d’impression des utilisateurs, émises via la
commande lpr. La file d’attente constitue le « spool ». Dans le cas d’une impression
déportée, la file d’attente locale est associée à une file distante d’un hôte distant.
C’est au moment du dépôt de la requête par la commande lpr (cf. Les commandes
d’impression) que l’utilisateur désigne, avec l’option « -P nom_de_lafile_d_attente »,
la file d’attente d’impression, en fait un répertoire situé généralement dans le
répertoire /var/spool/lpd.
Les utilisateurs n’ont pas à connaître le fichier spécial périphérique de l’imprimante
ou, dans le cas d’une impression déportée, l’adresse IP du serveur d’impression. Le
nom de la file d’attente sélectionnée suffit, pour les utilisateurs, à identifier le support
d’impression.
8-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 8 : L’impression
Le démon lpd
Le démon lpd est exécuté par le script S60lpd lors du démarrage du système (cf.
Module 7 : L’arrêt et le démarrage). Le démon lpd lit alors le fichier /etc/printcap
afin de connaître les imprimantes installées.
Remarque
Comme lpd est un service TCP/IP qui fonctionne en client-serveur, il exécute les
appels système de l’API « socket » (cf. Module 15 : Le réseau) accept(2) et listen(2),
pour prendre en compte les requêtes des utilisateurs.
Le démon lpd fait exécuter les requêtes d’impression d’une file d’attente, un spool,
par un processus fils. Le fichier lock du spool concerné prévient la création de
plusieurs processus fils pour le même spool. Ce fichier contient le PID du processus
fils lpd et le nom du fichier de contrôle de la requête en cours de traitement. On trouve
aussi un deuxième fichier, status, qui décrit l'état de l'imprimante.
# cd /var/spool/lpd
# cat epson/lock
391
cfA001Aa00390
# cat epson/status
epson is ready and printing
# cat hp6/status
waiting for hp6 to become ready (offline ?)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 8-3
Module 8 : L’impression
Remarques
Le fichier /etc/hosts.lpd contient le nom de tous les ordinateurs clients autorisés à
imprimer. On met un nom d’ordinateur par ligne. Le fichier /etc/hosts.equiv est un
fichier qui est utilisé pour autoriser des clients d’autres services que le service TCP/IP
(cf. Module 15 : Le réseau).
4. Dans le cas où la file d’attente est attachée à une imprimante locale, le démon lpd,
sur la base des informations du fichier /etc/printcap, fait exécuter les requêtes en
attente par un processus fils. Ce fils est créé, si besoin est. Il en existe un par file
d’attente. Dans le cas d’une file attachée à une file d’attente distante, le démon lpd
initie une connexion TCP sur le serveur distant, transfère les fichiers cfxx et dfxx
dans le spool distant et notifie au démon lpd distant l’arrivée de la requête. Il
supprime localement les fichiers cfxx et dfxx.
Remarque
Le service lpd est défini par l’X/OPEN dans le guide de programmation XPG4 et dans
le RFC 1179.
8-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 8 : L’impression
f2
lpr
lpr f2 f1
f1
lpq
lpq
f2
lprm
lprm f2 f1
La commande lpr
La commande lpr permet de déposer une requête d’impression dans un spool.
Rappelons que la commande lpr crée deux fichiers dans le répertoire de spool (cf. Le
fonctionnement de lpd) : le fichier de contrôle, nommé cfxx (« Control File xx ») et un
fichier de données, nommé dfxx (« Data File xx »).
Une fois ces fichiers créés, lpr envoie un signal au démon lpd, qui lance alors un autre
démon lpd, pour traiter cette requête ; ce dernier restera actif jusqu’à ce qu’il n’y ait
plus de requêtes dans cette file d'attente.
Si, depuis la machine locale, le service lpd n’est pas accessible (l’appel système
connect retourne en erreur), lpr affiche le mesage :
lpr: connect: Connexion refusée.
jobs queued, but cannot start daemon.
Syntaxe
lpr [-Pprinter] [-#num] [-mrs] [name ...]
Les lignes qui suivent mentionnent les principales options de la commande lpr. Nous
renvoyons le lecteur au manuel de la commande pour trouver la liste exhaustive des
possibilités.
-P imp Impression sur le spool imp au lieu du spool par défaut. La
variable d'environnement PRINTER définit sinon la file d’attente par
défaut.
-m L’utilisateur est prévenu par un message envoyé par mail en fin
d’impression.
-r Le fichier à imprimer est détruit en fin d'impression.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 8-5
Module 8 : L’impression
La commande lpq
La commande lpq affiche des informations sur le spool.
Syntaxe
lpq [-l] [-P imp] [Numéro_de_job ...] [Nom_utilisateur ...]
-P imp Spécifie le spool imp au lieu du spool par défaut. La
variable d'environnement PRINTER définit sinon la file d’attente
par défaut.
-l Affiche des informations détaillées.
Numéro_de_job Indique le numéro de la requête pour laquelle on veut
des informations.
Nom_utilisateur Indique le nom de l’utilisateur pour lequel on veut
des informations.
Exemples
# lpq
printing disabled
Rank Owner Job Files Total Size
1st pierre 25 .bash_profile 220 bytes
1st cathy 21 /etc/hosts 43 bytes
2nd cathy 22 /etc/group 395 bytes
3rd pierre 23 /etc/passwd 676 bytes
4th pierre 24 /etc/services 4534 bytes
5th root 26 /etc/profile 516 bytes
# lpq -P hp6
no entries
# lpq -P hplanman
hplanman is ready and printing
Rank Owner Job Files Total Size
active root 0 /etc/passwd 676 bytes
8-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 8 : L’impression
La commande lprm
La commande lprm permet de détruire des requêtes d'impression.
Syntaxe
lprm [-P imp] [-] [Numéro_de_job ... ] [Nom_utilisateur ...]
-P imp Supprime sur le spool imp au lieu du spool par défaut. La
variable d'environnement PRINTER définit sinon la file d’attente
par défaut.
- Détruit toutes les requêtes de l’utilisateur. Dans le cas de root,
détruit toutes les requêtes du spool.
Numéro_de_job Indique le numéro de la requête à supprimer.
Nom_utilisateur Indique le nom de l’utilisateur pour lequel on veut
supprimer toutes les requêtes.
Remarque
La commande lprm commence par tuer le démon lpd qui prend en charge
l’impression des requêtes du spool avant de détruire une requête. Le démon associé au
spool est ensuite exécuté.
Exemples
Détruit la requête 26.
# lprm 26
dfA026Aa01215 dequeued
cfA026Aa01215 dequeued
Affiche les requêtes du spool par défaut.
# lpq
printing disabled
Rank Owner Job Files Total Size
1st pierre 25 bash_profile 220 bytes
1st cathy 21 /etc/hosts 43 bytes
2nd cathy 22 /etc/group 395 bytes
3rd pierre 23 /etc/passwd 676 bytes
4th pierre 24 /etc/services 4534 bytes
Détruit toutes les requêtes de pierre.
# lprm pierre
dfA023Aa00993 dequeued
cfA023Aa00993 dequeued
dfA024Aa00995 dequeued
cfA024Aa00995 dequeued
dfA025Aa00997 dequeued
cfA025Aa00997 dequeued
# lpq
printing disabled
Rank Owner Job Files Total Size
1st cathy 21 /etc/hosts 43 bytes
2nd cathy 22 /etc/group 395 bytes
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 8-7
Module 8 : L’impression
Le fichier /etc/printcap
Le fichier /etc/printcap contient la description de toutes les imprimantes accessibles
depuis la machine. Ce fichier peut être modifié manuellement mais il est fortement
conseillé d’agir sur lui indirectement, via la commande lpc ou l’outil printtool.
La structure du fichier est similaire à celle du fichier /etc/termcap. La description
d’une imprimante est constituée de champs séparés les uns des autres par le caractère
« : ». La description d’une imprimante est constituée d’une seule ligne logique répartie
sur plusieurs lignes physiques du fichier. Le caractère « \ », quand il est en fin de
ligne, est le caractère de suite. Il indique que la description se poursuit sur la ligne
suivante du fichier. Les commentaires sont définis par le caractère « # ». Le premier
champ définit tous les synonymes qui désignent l’imprimante. Ils sont séparés par le
caractère « | » .
Le nom réservé lp désigne l’imprimante par défaut. Un utilisateur peut définir sa
propre imprimante par défaut via la variable d’environnement PRINTER.
Les paramètres de description sont composés de deux caractères aux formats suivants :
XX Le paramètre XX est booléen, vrai si présent, faux si absent.
XX=chaîne Le paramètre XX prend comme valeur la chaîne de caractères « chaîne ».
XX#nombre Le paramètre XX a la valeur numérique « nombre ».
Les principaux paramètres sont :
Nom Type Description
sd chaîne « Spool Directory », définit le répertoire de la file d'attente.
lf chaîne « Log File », définit le fichier « log » des erreurs.
af chaîne « Acounting File », définit le fichier comptable.
mx numérique Taille du plus gros fichier. La valeur 0 indique une taille
illimitée.
8-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 8 : L’impression
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 8-9
Module 8 : L’impression
L’outil printtool
L’outil graphique /usr/bin/printtool est un script TCL exécuté par le shell wish
(Windowing shell).
Cet outil est accessible à travers les menus de KDE ou GNOME. Il peut aussi être
exécuté comme commande dans un terminal exécuté sur le bureau.
Les informations à fournir lors de la création d'un spool sont :
• Le type de file d’attente : locale ou distante.
• Le nom de la file d’attente, souvent le nom de l’imprimante.
• Le répertoire de la file d’attente, par défaut /var/spool/lpd/nom_de_file_d_attente.
• Le port physique, dans le cas d'une imprimante locale, par défaut /dev/lp0 (cf.
Module 11 : Les périphériques).
• Le nom de la machine distante et le nom de la file d'attente distante dans le cas
d'une imprimante déportée.
• Le nom du filtre spécifique à chaque type d’imprimante. C’est lui qui met les
données à imprimer dans un format compréhensible par l’imprimante.
• Les paramètres de mise en page : taille du papier, impression noire ou couleur, ...
Notons, en particulier, la case « send EOF after job to eject page ? » que certaines
imprimantes obligent à cocher pour éjecter la dernière page imprimée.
Remarques
Les imprimantes déportées peuvent être d’une autre catégorie que celle associée au
service lpd. Linux supporte aussi des imprimantes distantes d'autres systèmes
d'exploitation. On trouve comme possibilités :
Les imprimantes Lan Manager, utilisant le protocole SMB (« Server Messages
Block ») du système Windows NT (cf. Module 15 : Le réseau - Samba).
Les imprimantes Netware de Novell, utilisant le protocole NCP (« Netware Core
Protocol »).
Dans les deux cas, il faudra fournir un nom d’utilisateur et un mot de passe, définis sur
la machine distante, et le mot de passe est enregistré en clair dans un fichier !!!
La commande lpc
La commande lpc permet de gérer les spools, d’afficher des informations sur le
service, d’activer ou de désactiver un spool, de le purger, d’arrêter ou de démarrer le
démon lpd.
Syntaxe
lpc [commande [argument] ...]
En l’absence de commande, lpc affiche un prompt et passe en mode interactif.
8-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 8 : L’impression
Dans le tableau qui suit, le terme « imp » désigne le nom de la file d’attente sur
laquelle lpc doit opérer. L’attribut « all » permet d’agir sur toutes les files d’attente.
Les principales commandes sont :
Commande Description
status imp Affiche des informations sur le spool imp.
abort imp | all Arrête l’impression en cours et remet le job dans le spool.
clean imp | all Supprime toutes les requêtes.
disable imp | all Désactive la mise en file d’attente. Le dépôt de requêtes par la
commande lpr n’est plus possible.
down imp message Arrête une imprimante et écrit le message « message » dans le
fichier status du répertoire de spool imp. Ce message est
affiché sur l’écran des utilisateurs qui tentent de déposer des
requêtes sur cette file d’attente.
enable imp | all Active la mise en file d'attente. Le dépôt de requêtes par la
commande lpr est possible.
start imp Lance le démon d'impression du spool imp. Cette commande
démarre l’impression des requêtes en attente.
stop imp Arrête le démon du spool imp. Les requêtes déposées restent
bloquées en file d’attente..
restart imp | all Redémarre le démon (souvent après une fin anormale).
topq imp numreq Place la requête numreq en début de file d’attente.
topq imp user Place les requêtes de l’utilisateur « user » en début de la file
d’attente.
up imp Redémarre une imprimante arrêtée par down.
exit Quitte le programme lpc.
help Affiche de l’aide.
help commande Affiche de l’aide sur la commande.
Exemples de gestion du spool avec la commande lpc
# lpq
lp is ready and printing
Rank Owner Job Files Total Size
active cathy 21 /etc/hosts 43 bytes
1st cathy 22 /etc/group 395 bytes
2nd pierre 23 /etc/passwd 676 bytes
3rd pierre 24 /etc/services 4534 bytes
4th pierre 25 .bash_profile 220 bytes
5th root 26 /etc/profile 516 bytes
# lpc
lpc> help Commands may be abbreviated. Commands are:
abort enable disable help restart status topq ?
disable hp6
hp6:
queuing disabled
lpc> stop hp6
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 8-11
Module 8 : L’impression
hp6:
printing disabled
lpc> status hp6
hp6:
queuing is disabled
printing is disabled
no entries
no daemon present
lpc>
lpc> enable hp6
hp6:
queuing enabled
lpc> start hp6
hp6:
printing enabled
daemon started
lpc> status hp6
hp6:
queuing is enabled
printing is enabled
no entries
no daemon present
lpc> topq epson 25
epson:
moved cfA025Aa00997
lpc>q
# lpq
lp is ready and printing
Rank Owner Job Files Total Size
1st pierre 25 .bash_profile 220 bytes
1st cathy 21 /etc/hosts 43 bytes
2nd cathy 22 /etc/group 395 bytes
3rd pierre 23 /etc/passwd 676 bytes
4th pierre 24 /etc/services 4534 bytes
5th root 26 /etc/profile 516 bytes
8-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 8 : L’impression
Atelier 8 : L’impression
Atelier 8 : L’impression
Objectif :
Savoir ajouter et configurer un spool
d’impression
Durée : 15 minutes.
Exercice n°1
Quelles sont les différentes files d’attente d’impression (spool) définies sur votre
système ?
Exercice n°2
Est-ce que le démon gérant le multi-spooler d’impression est actif ?
Exercice n°3
Ajoutez une file d’attente d’impression associée au fichier disque /home/pierre/imp.
Réalisez quelques impressions sur cette file, à fin de tests.
Exercice n°4
Quelles sont les commandes gérant l’impression sur votre système ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 8-13
Module 9 : Les disques
9Module 9
Les disques
Objectifs
Après la lecture de ce module, le lecteur sait la définition et toutes les utilisations
possibles d’un disque au sens du système Linux.
Contenu
Les disques
Ajout d’un disque
Les disques RAID
Les striped disks
Le swap
Les partitions
Références
HOWTO : Linux-Partition mini HOWTO, Bootdisk-HOWTO, Large-Disk-HOWTO,
Multi-Disk-HOWTO, Software-RAID-HOWTO, LVM-HOWTO,
Swap-Space mini HOWTO, Hard-Disk-Upgrade mini HOWTO,
SCSI-HOWTO, SCSI-Programming-HOWTO, Root-RAID-HOWTO,
Partition-Rescue-mini-HOWTO
Le manuel : hdparm(8), scsi_info(8), fdisk(8), lvm(8), mkraid(8), mkswap(8)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-1
Module 9 : Les disques
Les
Lesdisques
disquesIDE
IDE
Les
Lesdisques
disquesSCSI
SCSI
CDROM DAT
Le contrôleur de disque dur des premiers PC se trouvait sur une carte d’extension. La
plus célèbre des interfaces utilisées alors se nommait ST-506. On ne pouvait installer
qu’un seul contrôleur de ce type. Il pilotait, au plus, deux disques durs avec un taux de
transfert relativement modeste.
Une nouvelle interface, l’ESDI (« Enhanced Small Device Interface ») est ensuite
apparue. Elle apportait de meilleures vitesses de transfert et de plus grandes capacités
de stockage. Le manque de compatibilité entre les disques et les contrôleurs ESDI,
parfois du même constructeur, a grandement contribué à en limiter la durée de vie.
L’interface IDE
Avec l’interface IDE (« Integrated Device Electronics »), chaque lecteur de disque
possède son propre contrôleur. La première spécification de l’interface IDE apparut
sous la dénomination ATA (« AT-Attachment »), nom officiel de la technologie IDE.
Il décrit le protocole de connexion des disques durs à un PC (AT désignant le PC de
l’époque). Un contrôleur IDE permet de piloter deux disques durs, un maître et un
esclave. Le contrôleur IDE est souvent intégré à la carte mère de l’ordinateur.
La norme IDE a connu une première évolution, ATA-2, plus communément connue
sous le nom de EIDE (« Extended Integrated Device Electronics » ). Elle définit des
vitesses de transfert plus élevées et permet principalement au contrôleur de piloter
jusqu’à quatre disques. Le contrôleur dispose de deux ports IDE, le port principal et le
port secondaire, qui supportent chacun un disque maître et un disque esclave.
La deuxième évolution, la plus connue, est désignée par le terme ATAPI (« ATA
Pocket Interface »). Elle décrit la connexion des CD-ROMs et des lecteurs de
cartouches DAT (« Digital Audio Tape ») à un PC.
Comme il existe plusieurs types de disques IDE, il est nécessaire de faire reconnaître
le disque par le BIOS de son PC. Le BIOS (« Basic Input Output System ») mémorise
la configuration matérielle de l’ordinateur. Pour qu’un disque soit reconnu du BIOS, il
faut renseigner la géométrie du disque : nombre de têtes de lecture et d’écriture,
9-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
nombre de cylindres, nombre de pistes par cylindre et nombre de secteurs par piste.
Les BIOS proposent une option de reconnaissance automatique.
Le lecteur de disque IDE doit être matériellement configuré pour être en accord avec
sa position de maître ou d’esclave piloté par le port principal ou le port secondaire.
Cette configuration se fait, sur le disque dur, avec des cavaliers, petits commutateurs
enfichés sur des broches.
L’interface SCSI
L’interface SCSI (« Small Computer System Interface ») est une interface déjà
ancienne qui ne fut portée que tardivement sur les PC.
Cette interface permet de connecter plusieurs périphériques différents, principalement
des disques durs, des lecteurs de CD-ROM et des lecteurs de bandes. Le premier
périphérique est connecté au contrôleur SCSI et les suivants sont reliés les uns aux
autres et forment ainsi une chaîne SCSI, dont le contrôleur est le premier maillon. On
doit activer un « terminateur SCSI » sur le dernier périphérique (cf. Documentation de
votre carte SCSI).
Chaque élément de la chaîne SCSI, y compris la carte contrôleur, est identifié par un
numéro, qu’on appelle l’identificateur (Id) SCSI. Ces identificateurs sont assignés par
le BIOS de la carte SCSI (cf. Documentation de votre carte SCSI).
Remarques
• Un lecteur SCSI n’a pas besoin d’être connu par le BIOS de l’ordinateur. Il est
entièrement géré par le BIOS spécifique du contrôleur SCSI.
• Le standard SCSI a évolué afin d’intégrer plus de périphériques et d’augmenter les
taux de transfert. On trouve ainsi les standards SCSI-2 et Wide SCSI.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-3
Module 9 : Les disques
Partition /dev/hda2
de 20 000 blocs
Un
volume Utilisation
Utilisation::
physique ••FS
FS
••swap
swap
••Disque
Disquedédié
dédié
9-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-5
Module 9 : Les disques
9-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
en mode texte.
sfdisk Une commande de partitionnement proche de fdisk. Les
commandes de partionnement sont passées en argument et les
données sont lues sur l’entrée standard. Cette commande est utile
quand elle est utilisée dans un script.
drakConf Outil graphique de Mandrake qui permet le partitionnement.
fips Outil rudimentaire pour redimensionner les partitions Windows
(cf. Module 10 : Installation de Linux).
partition-magic Outil commercial qui permet de redimensionner les partitions sans
perte de données.
gnu-parted Outil du monde libre qui permet de redimensionner les partitions
sans pertes de données.
La commande fdisk
La commande fdisk, bien connue des utilisateurs de PC, permet de gérer le
partitionnement d’un disque.
Syntaxe
fdisk [Nom_du_lecteur]
En l’absence du nom du lecteur, la commande fdisk utilise le premier lecteur IDE
/dev/hda. L’utilisateur dispose de plusieurs commandes dont les principales sont
résumées dans le tableau qui suit :
Commandes Description
p Affiche la liste des partitions. La commande fdisk –l est équivalente.
m Affiche la liste des commandes.
n Ajout d’une nouvelle partition. Il faut en préciser le type primaire ou
logique, le cylindre de début et la taille que l’on peut exprimer en
méga-octets.
a Définit la partition de boot. La commande a active ou désactive la
partition concernée comme partition de boot selon qu’elle l’était déjà
ou pas.
d Supprime une partition.
l Affiche la liste des types de partitions reconnues par Linux (Linux
native, swap, FAT, …).
t Attribue un type à une partition, tel que défini précédemment (Linux
native, swap, …).
w Enregistre les modifications et quitte.
q Quitte sans enregistrer les modifications.
Exemples
# fdisk
Using /dev/hda as default device!
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 524 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-7
Module 9 : Les disques
9-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
La commande cfdisk
La commande cfdisk (« curses fdsik ») est une alternative, plus simple d’emploi, à la
commande fdisk. Elle fonctionne avec des menus déroulants. Pour répondre à la
curiosité de son nom, il faut se souvenir que la bibliothèque curses est la bibliothèque
standard du système UNIX, pour développer des programmes semi-graphiques pour
des terminaux de type texte. Elle fonctionne donc avec telnet.
Exemple
# cfdisk
cfdisk 0.8l
Disk Drive: /dev/hda
Heads: 255 Sectors per Track: 63 Cylinders: 524
Name Flags Part Type FS Type [Label] Size (MB)
--------------------------------------------------------------------------------
hda1 Boot Primary Win95 FAT32 2502.32
hda5 Logical Linux ext2 1004.07
hda6 Logical Linux Swap 39.23
hda7 Logical Linux 203.96
Pri/Log Free Space 360.84
[ Help ] [ New ] [ Print ] [ Quit ] [ Units ] [ Write ]
Create a new logical partition
cfdisk 0.8l
Disk Drive: /dev/hda
Heads: 255 Sectors per Track: 63 Cylinders: 524
Name Flags Part Type FS Type [Label] Size (MB)
--------------------------------------------------------------------------------
hda1 Boot Primary Win95 FAT32 2502.32
hda5 Logical Linux ext2 1004.07
hda6 Logical Linux Swap 39.23
hda7 Logical Linux 203.96
hda8 Logical Linux 360.84
[Bootable] [ Delete ] [ Help ] [Maximize] [ Print ] [ Quit ] [ Type ] [
Units ] [ Write ]
Wrote partition table, but re-read table failed. Reboot to update table.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-9
Module 9 : Les disques
Opérations de base
1) Installez physiquement le nouveau disque. Cette procédure est différente selon
que le disque est de type IDE ou SCSI.
Cas d’un disque IDE
Branchez le disque sur le port primaire ou sur le port secondaire du contrôleur
IDE. Selon que, sur ce port, le disque est unique ou pas, vous devrez positionner
un cavalier pour indiquer s’il est unique (« single »), maître (« master ») ou
esclave « slave »). Ce choix dépend des périphériques déjà installés pour ce port
et de leur propre configuration. Nous invitons vivement le lecteur à consulter la
documentation de son ordinateur ou à contacter l’assistance technique du
fabricant.
Demandez au BIOS de procéder à la reconnaissance automatique du nouveau
disque. Pour exécuter le programme « setup » du BIOS, il faut appuyer sur la
touche mentionnée pendant le démarrage de votre PC, souvent « Suppr ». Il suffit
ensuite de naviguer dans les menus du « setup » et d’exécuter la commande de
détection, normalement l’option « IDE HDD AUTO DETECTION ». Pensez à
vérifier que la géométrie du disque, telle que détectée par le BIOS, est bien celle
du disque.
Cas d’un disque SCSI
Si vous installez également la carte SCSI dans votre ordinateur, il faut, au
préalable, installer le pilote SCSI de la carte (cf. Module 12 : Le noyau). Si le
nouveau disque est le dernier élément de la chaîne SCSI, il faut également activer
son terminateur, grâce à un cavalier présent sur le disque.
9-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Remarque
Le disque SCSI n’a pas à être reconnu par le BIOS du PC. Il est entièrement géré
par le BIOS SCSI de la carte. Linux voit le disque exactement comme le voit le
BIOS SCSI de la carte.
2) Formatez et partitionnez le disque. Pour cela, on utilise la commande fdsik ou sa
variante cfdisk, afin de créer des partitions qui pourront être utilisées comme
partitions de « swap » secondaires, des systèmes de fichiers additionnels ou bien
dédiées à des logiciels.
3) Créez éventuellement des fichiers spéciaux pour le disque nouvellement installé.
Cette opération n’est exécutée que dans des cas très particuliers. Le programme
d’installation de Linux a en effet créé, dans le répertoire /dev, les noms pour les
huit premiers disques. Si cette opération doit être réalisée, il faut utiliser la
commande mknod (cf . Module 11 : Les périphériques).
Opérations spécifiques
L’usage le plus fréquent d’un disque, souvenons-nous qu’une partition est un disque,
est de contenir un système de fichiers. L’administrateur doit alors créer un système de
fichiers sur ce disque et automatiser son montage (cf. Module 4 : Les systèmes de
fichiers).
L’administrateur peut aussi décider d’utiliser le disque comme disque de « swap ».
Quand c’est un disque dédié à une application, c’est évidemment elle qui prend en
charge les opérations d’initialisation.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-11
Module 9 : Les disques
Ordinateur sous
Disque RAID
UNIX, NT, Netware, ...
SCSI
Principaux
Principauxniveaux
niveauxde
deRAID
RAID: :
0:0: Fusion
Fusion
1:1: Miroir
Miroir
3:3: Fusion
Fusionavec
avecparité
parité
5:5: Fusion
Fusion avecparité
avec paritérépartie
répartiesur
surles
lesdisques
disques
Disques en miroir
La technique des disques en miroir consiste à dupliquer l’écriture des données sur
plusieurs disques, typiquement deux, pour se prémunir contre la perte de données en
cas de défaillance d’un disque. Les disques en miroir sont gérés par le logiciel ou par
le matériel, la seconde technique étant la plus efficace.
Disques RAID
La mise en œuvre des disques en miroir et des bandes de parité se fait le plus souvent
grâce à l’utilisation de disques conformes aux spécifications « RAID » (« Redundant
Arrays of Independant Disks »). On parle en fait de disques RAID. Ils trouvent leur
origine dans un projet de recherche sur les systèmes à tolérance de panne, mené par
l’université de Berkeley en Californie.
Il existe plusieurs spécifications de disques RAID, connues sous les appellations
RAID 0, RAID 1, RAID 2, RAID 3, RAID 4 et RAID 5.
9-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Les solutions les plus courantes dans les systèmes à tolérance de panne sont le RAID 1
et le RAID 5.
Le choix est essentiellement fonction de la nature des applications, du coût et des
performances attendues.
Remarque
Un disque RAID est transparent pour le système qui le voit comme un disque. Les
performances sont supérieures à celles obtenues en émulant le disque RAID au niveau
du noyau. Dans ce dernier cas, les performances pourront être améliorées en éclatant
les entrées/sorties sur plusieurs contrôleurs.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-13
Module 9 : Les disques
que l’on a décrite, dans la plupart des distributions, dans le fichier /etc/raidtab. Il
permet au noyau de pouvoir reconnaître les RAIDs existants sans attendre que le
disque contenant le répertoire /etc, généralement le système de fichiers racine, soit
monté. Le « persistent super block » permet qu’un ensemble RAID contienne le
système de fichiers racine.
Le noyau fait une auto-détection du RAID grâce au « persistent super block » qu’il
trouve sur chaque disque du RAID. Le RAID est réellement démarré par rc.sysinit,
dans la distribution RedHat, si les fichiers /etc/raidtab et /proc/mdstat existent. Le
script /etc/rc.d/init.d/halt appelle la commande raidstop.
Le tableau qui suit résume les principaux attributs d’un ensemble RAID logiciel de
Linux :
Mode Nombre Nombre de Avantages et inconvénients
de disques disques de
requis réparations
pour le
RAID
Linéaire Au moins Aucun Un disque peut dépasser la taille physique du
deux plus grand disque dur du système. Si un
disque est endommagé, les données du RAID
sont perdues.
RAID 0 Au moins Aucun En plus de l’avantage précédent, on améliore
deux la vitesse des opérations de lecture et
d’écriture, qui s’effectuent en parallèle, si les
deux disques sont liés à des contrôleurs
distincts. Si un disque est endommagé, les
données du RAID sont perdues.
RAID1 Deux De zéro à n Les écritures se font en miroir sur les deux
disques disques. Si l’un des disques est hors service, le
second contient la copie des données.
RAID 4 Au moins De zéro à n Ce niveau n’est pas très utilisé. Un disque est
trois utilisé pour stocker une bande de parité. Si un
disque est endommagé, le disque de parité
permet de reconstituer les données. Le disque
de parité doit être mis à jour à chaque écriture
réalisée sur l’un des disques du RAID.
RAID 5 Au moins De zéro à n Les bandes sont réparties uniformément sur
trois tous les disques du RAID.
Le paquetage
Le paquetage « raidtools-*.rpm » doit être installé pour que le RAID puisse être mis
en œuvre.
Les commandes
Linux propose un ensemble de commandes pour créer et administrer un RAID :
mkraid /dev/md<n> Initialise un ensemble de disques RAID.
Les principales options sont :
-c, --configfile fichier_de_config. (à défaut de /etc/raidtab)
–really-force pour forcer l’écrasement du RAID existant.
Ceci entraîne la perte des données.
9-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-15
Module 9 : Les disques
Exemple de RAID0
Les disques disponibles pour les exemples RAID0 et RAID1
# fdisk -l /dev/hda
Disk /dev/hda: 255 heads, 63 sectors, 525 cylinders
Units = cylindres of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 132 1060258+ 6 FAT16
…
/dev/hda6 392 474 666666 fd Linux raid
autodetect
…
# fdisk -l /dev/hdb
Disk /dev/hdb: 64 heads, 63 sectors, 1023 cylindersUnits =
cylindres of 4032 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 * 1 563 1134976+ b Win95 FAT32
/dev/hdb2 564 894 667296 fd Linux raid
autodetect
# cat /etc/raidtab
# mode RAID0 - Les deux disques /dev/hda6 et /dev/hdb2 constituent
# un seul disque, écriture en parallèle
# /dev/hda6 392 474 666666 fd Linux raid
# /dev/hdb2 564 894 667296 fd Linux raid
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/hda6
raid-disk 0
device /dev/hdb2
raid-disk 1
#mkraid
# more /proc/mdstat
Personalities : [raid0]
read_ahead 1024 sectors
md0 : active raid0 hdb2[1] hda6[0] 1333760 blocks 4k chunks
unused devices: <none>
# raidstop /dev/md0
# more /proc/mdstat
Personalities : [raid0]
read_ahead 1024 sectors
unused devices: <none>
# raidstart /dev/md0
# mke2fs -b 4096 -R stride=1 /dev/md0
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
166848 inodes, 333440 blocks
9-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Exemple de RAID1
# cat /etc/raidtab
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
persistent-superblock 1
chunk-size 8
device /dev/hda6
raid-disk 0
device /dev/hdb2
raid-disk 1
# mkraid /dev/md0
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda6, 666666kB, raid superblock at 666560kB
disk 1: /dev/hdb2, 667296kB, raid superblock at 667200kB
# more /proc/mdstat
Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdb2[1] hda6[0] 666560 blocks [2/2] [UU] resync=3% finish=5.7
min
unused devices: <none>
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-17
Module 9 : Les disques
9-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
md0 : active raid5 hdb8[3] hdb7[2] hdb6[1] hdb5[0] 193280 blocks level 5, 8k chu
nk, algorithm 2 [3/3] [UUU] resync=7% finish=4.8min
unused devices: <none>
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-19
Module 9 : Les disques
# more /proc/mdstat
Personalities : [raid5]
read_ahead 1024 sectors
md0 : active raid5 hdb8[1] hdb7[2] hdb5[0] 193280 blocks level 5, 8k chunk,
algorithm 2 [3/3] [UUU]
unused devices: <none>
9-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Volume physique
Groupe de (PV)
volumes
(VG)
Volume logique
(LV)
Utilisation
Utilisation::
lv1
••FS
FS
lv2
Espace libre
••swap
swap
••disque
disquedédié
dédié
Les concepts
Un groupe de volumes (« Volum Group ») est un ensemble de disques physiques,
encore appelés volumes physiques (« Physical Volum »). Un groupe de volumes peut
au plus comporter 256 volumes physiques. Il est aisé d’ajouter ou de retirer un volume
physique d’un groupe de volumes. Un système qui utilise les groupes de volumes est
constitué d’au moins un groupe constitué d’au moins un volume physique.
L’espace total d’un groupe de volumes est constitué d’un ensemble d’unités (granules)
d’allocation physique (« Physical Extent » ) qui peuvent être allouées à des disques
logiques ou volumes logiques (« Logical Volum »). La taille d’un volume logique est
si besoin arrondie pour correspondre à un nombre entier de « Physical extent ». Le
nombre maximum de volumes logiques par groupe de volumes est de 256 et la taille
d’un « extent » est de quatre Mo, par défaut.
Un volume logique est constitué d’un certain nombre d’unités d’allocation logiques
(« Logical Extent ») qui correspondent aux « Physical Extent » allouées dans le groupe
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-21
Module 9 : Les disques
de volumes. Les unités d’allocation physiques qui ont été allouées ne sont pas
contiguës.
Le tableau qui suit rappelle les sigles utilisés pour les différents concepts qui viennent
d’être présentés :
Sigle Description
PV Un disque physique.
VG Un groupe de volumes.
LV Un volume logique.
PE Une unité d’allocation physique.
LE Une unité d’allocation logique.
Un volume logique, comme tous les disques UNIX, possède, dans le répertoire /dev,
l’entrée qui le désigne en mode bloc.
Les gestionnaires de volumes logiques proposent des noms par défaut pour les groupes
et les volumes logiques, mais l’administrateur peut librement choisir des noms à sa
convenance.
/dev/volume_groupe/volume_logique
Remarque
Grâce aux volumes logiques, la taille d’un disque peut être supérieure à la taille d’un
disque physique et celle d’un fichier également.
Les principales opérations que l’on peut réaliser sur les groupes de volumes sont :
• La création d’un groupe de volumes.
• L’ajout d’un disque physique à un groupe de volumes.
• Le retrait d’un disque physique d’un groupe de volumes.
• Le rattachement d’un disque physique à un nouveau groupe de volumes.
Les principales opérations que l’on peut réaliser sur les volumes logiques sont :
• La création ou la suppression d’un volume logique.
• L’extension ou la réduction de la taille d’un volume logique.
Remarques
S’il est possible de réduire la taille d’un volume logique, on en est souvent empêché
par les données qu’il contient et qui seraient endommagées.
Quand on étend la taille d’un volume logique qui contient un système de fichiers, il ne
faut surtout pas oublier d’augmenter également la taille du système de fichiers.
L’espace nouvellement alloué reste sinon inexploité.
Les commandes
Il existe un grand nombre de commandes. Toutes n’ont pas le même degré
d’importance. Le tableau qui suit en donne la liste, mais seules les commandes
fondamentales sont ensuite développées :
9-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Commande Description
pvcreate La commande pvcreate est la première commande à exécuter pour un
disque que l’on souhaite ensuite intégrer à un groupe de volumes. Si
ce disque est une partition (/dev/hda8), elle doit être marquée du type
0x8e (cf. Commande fdisk). Si le disque est un disque physique dans
sa totalité (/dev/hda), le premier secteur doit être mis à 0 (dd
if=/dev/zero of=/dev/hda count=1). Les disques peuvent être de type
IDE, SCSI, loop (cf. Module 4 : Les systèmes de fichiers), ou de type
RAID. Dans les deux derniers cas, nous renvoyons le lecteur aux
commandes losetup(8) et mdadd(8).
Syntaxe :
pvcreate [-f[f]] [-y] PV [PV…]
L’option « –y » pour répondre oui à toutes les questions.
L’option « –ff » pour forcer la réinitialisation d’un PV appartenant à
un groupe de volumes.
vgcreate La commande qui crée un groupe de volumes.
Syntaxe :
vgcreate [-s taille_PE[kmg] [-l maxLV] [-p maxPV] nomVG PV…
Par défaut, taille_PE vaut 4 Mo, maxLV et maxPV valent 256.
La commande crée un répertoire /dev/nomVG.
lvcreate La commande qui crée un volume logique.
Syntaxe :
lvcreate [-l taille_en_PE] [-L taille_en_Mo] [-n nomLV] nomVG
Il est obligatoire de mentionner la taille, exprimée en PE ou Mo.
Le volume logique possède évidemment un nom de fichier spécial. Si
un nom a été fourni grâce à l’option « -n », le volume logique se
nommera /dev/nomVG/nomLV. A défaut, le volume logique
s’appellera /dev/nomVG/lvol<n>.
vgdisplay La commande qui visualise les caractéristiques d’un groupe de
volumes.
Syntaxe :
vgdisplay [-v] nomVG
lvdisplay La commande qui visualise les caractéristiques d’un volume logique.
Syntaxe :
lgdisplay [-v] /dev/nomVG/nomLV
vgextend La commande qui étend un groupe de volumes par incorporation de
nouveaux PVs.
Syntaxe :
vgextend nomVG PV…
lvextend La commande qui accroît la taille d’un volume logique.
Syntaxe :
lvextend [-l [+]taille_PE] [-L [+]taille_Mo] /dev/nomVG/nomLV
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-23
Module 9 : Les disques
9-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Exemples
Les disques disponibles
# fdisk -l /dev/hda
Disk /dev/hda: 255 heads, 63 sectors, 525 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
…
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-25
Module 9 : Les disques
9-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-27
Module 9 : Les disques
Filesystem label=
OS type: Linux
…
# mke2fs -b 4096 -N 100 /dev/cao/programme
…
On monte le système de fichiers
# mkdir /cao
# mkdir /cao/database
# mkdir /cao/programme
# mount /dev/cao/database /cao/database/
# mount /dev/cao/programme /cao/programme/
# mount
…
/dev/cao/database on /cao/database type ext2 (rw)
/dev/cao/programme on /cao/programme type ext2 (rw)
# df
Filesystem 1k-blocks Used Available Use% Mounted on
…
/dev/cao/database 77792 20 73884 0% /cao/database
/dev/cao/programme 53216 20 50536 0% /cao/programme
On étend le volume logique /dev/cao/database
#vgdisplay cao
VG Name cao
VG Size 276 MB
…
PE Size 4 MB
Total PE 69
Alloc PE / Size 32 / 128 MB
Free PE / Size 37 / 148 MB
# lvextend -L +48M /dev/cao/database
lvextend -- extending logical volume "/dev/cao/database" to 124 MB
lvextend -- doing automatic backup of volume group "cao"
lvextend -- logical volume "/dev/cao/database" successfully extended
# lvdisplay /dev/cao/database
--- Logical volume ---
LV Name /dev/cao/database
VG Name cao
…
LV Size 124 MB
Current LE 31
Allocated LE 31
Allocation next free
Read ahead sectors 128
Block device 58:0
On étend ensuite le système de fichiers
# e2fsck -f /dev/cao/database # Opération préalable nécessaire
# resize2fs /dev/cao/database # Par défaut, tout l’espace libre
9-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-29
Module 9 : Les disques
9-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Le « swap »
Le swap
swap
mémoire
Principes
Le « swapping » est un mécanisme d’échange de données entre la mémoire RAM et
un espace sur disque spécialement aménagé à cet effet.
Pour réaliser les échanges avec le maximum d’efficacité, le système Linux oblige, dès
l’installation du système, à créer un disque de swap, dit disque de swap primaire,
réservé à cet usage.
Il est généralement conseillé de créer un disque de swap primaire d’une taille égale à
au moins deux fois la taille de la RAM. L’administrateur peut affiner le calcul de la
taille du disque de swap. La règle de calcul n’est pas complexe mais prend souvent en
compte des informations que l’administrateur ignore.
La version 2.1 du noyau a introduit une nouvelle technique de gestion du swap. Une
signature dans les dix derniers octets de la première page du swap permet de
distinguer l’ancienne de la nouvelle, respectivement « SWAP_SPACE » pour
l'ancienne et « SWAPSPACE2 » pour la nouvelle.
Dans l'ancienne technique, la première page contient une table « bit map » où chaque
bit est associé à une page de swap du disque de swap. Un simple calcul nous montre
que pour une taille de page de 4096 octets, la plus courante sur PC, la taille d’un
disque de swap peut être au plus de 127 Mo.
Dans la nouvelle technique, il n'y a plus de « bit map », la taille maximum d’un disque
de swap est définie par un nombre entier qui dépend du processeur. Elle est de 2 Go
pour le processeur Intel 386. On atteint alors des capacités plus conformes aux besoins
actuels des applications.
Si la taille du disque de swap s’avère insuffisante, le fichier /proc/swaps ou la
commande free permettent de surveiller l’utilisation du swap. On peut créer des
disques de swap secondaires. Le fichier /proc/swaps contient également la définition
des différents espaces de swap.
Les swaps peuvent être créés :
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-31
Module 9 : Les disques
• Sur un nouveau disque Linux dédié à cet usage. Le disque est une partition qui
occupe éventuellement la totalité d’un disque physique.
• Dans un fichier.
Remarque
Pour améliorer la rapidité des échanges, il est préférable de créer deux disques de
swap de 20 Mo sur deux disques physiques différents, plutôt qu’un seul disque de 40
Mo.
Si l’administrateur n’a plus d’espace disque libre disponible, Linux permet de faire du
swap dans un fichier de l’arborescence. Les performances sont moindres mais cela
permet de pallier temporairement l’insuffisance d’espace disque.
Les zones de swap sont généralement activées automatiquement au démarrage du
système UNIX par le script /etc/rc.d/rc.sysinit qui exécute la commande swapon –a,
d’origine BSD. Cette dernière active tous les disques de swap définis dans le fichier
/etc/fstab.
Un premier disque de swap est créé lors de l’installation du système Linux (cf. Module
10 : Installation de Linux). La commande mkswap permet d’ajouter des swaps
secondaires sur un disque ou dans un fichier, que l’on peut alors activer manuellement
grâce à la commande swapon. Symétriquement, la commande swapoff permet de
désactiver un swap.
Syntaxe
mkswap [-c] [ -v0| -v1 ] [-f] périphérique [taille_en_Ko]
L’option « -c » permet de rechercher les blocs défectueux du disque.
L’option « –v0 » demande de créer un swap selon l’ancienne technique
(« SWAP_SPACE »).
L’option « –v1 » demande de créer un swap selon la nouvelle technique
(« SWAP_SPACE2 »).
Il faut noter que Linux crée par défaut un swap selon l’ancienne technique, si la taille
du swap n’excède pas la taille maximum du swap selon cette technique ou si la
version du noyau Linux est inférieure à 2.1.117.
L’option « –f », sur une station dotée d’un processeur SPARC, force la création du
swap, même si le disque contient un système de fichiers valide. La création n’est pas
réalisée sinon.
L’argument « périphérique » désigne le disque ou le fichier ordinaire où doit être créé
le swap. Dans le cas où le swap est créé dans un fichier ordinaire, le fichier doit avoir
été préalablement créé d’une taille au moins égale à celle du swap qu’il va contenir.
Ceci peut être réalisé facilement par la commande dd (cf. Exemples).
Par défaut, la totalité du disque est utilisée pour le swap à créer. L’option «
taille_en_blocs » est maintenue pour la compatibilité avec les anciennes versions.
Exemples
Création d’une partition swap secondaire. On commence par créer la partition avec la
commande fdisk.
# fdisk /dev/hda
Using /dev/hda as default device!
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 524 cylinders
Units = cylinders of 16065 * 512 bytes
9-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-33
Module 9 : Les disques
9-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
/dev/hda8
oracle
oracle Disque dédié
••Une
Uneapplication
applicationutilise
utilisede
demanière
manièreexclusive
exclusiveun
undisque.
disque.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-35
Module 9 : Les disques
Objectifs :
Comprendre les possibilités
d’organisation d’un système UNIX
Comprendre les opérations que
nécessite l’ajout d’un disque
Faire le lien entre ressource physique
et FS
Durée : 30 minutes.
Exercice n°1
Quels sont les types de disques supportés par Linux ?
Exercice n°2
Quel est le nom du fichier spécial du deuxième disque IDE ?
Exercice n°3
Quel est le nom du fichier spécial de la première partition du premier disque SCSI ?
Exercice n°4
Indiquez les plages de valeurs des partitions physiques et des partitions logiques d’un
disque IDE.
Exercice n°5
Listez les commandes gérant l’espace de swap de votre système.
Exercice n°6
Quels sont les espaces de swap actifs de votre système ?
9-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 9 : Les disques
Exercice n°7
Procédez à la création d’une partition logique.
Exercice n°8
Créez un swap sur la partition définie à l’exercice n° 7.
Exercice n°9
Créez un swap dans un fichier de 16 Mo spécialement créé à cet effet.
Exercice n°10
Affichez l’espace libre des swaps de votre système.
Exercice n°11
Nous suggérons au lecteur qui dispose d’espace disque de créer un disque RAID0, en
reproduisant l’exemple du support. Il n’y a évidemment de corrigé en annexe. Une
mise en pratique favorise la compréhension du mécanisme.
Exercice n°12
De la même manière, le lecteur peut créer un groupe de volume.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 9-37
Module 10 : Installation de Linux
• Disquette de boot,
rawrite, FIPS,
• Installation locale, en
réseau
• Partitions, « FS »,
Disk Druid,
• Paquetages, LILO
10Module 10 :
Installation de Linux
Objectifs
Après la lecture de ce module, le lecteur sait installer un système Linux.
Contenu
Les principes d’installation de Linux
Les types d’installation
Le partitionnement
Les étapes de l’installation de Linux
Le multi-boot avec LILO
Le démarrage de Linux depuis un autre système
L’installation réseau
Références
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-1
Module 10 : Installation de Linux
Aujourd’hui, l’installation d’un système Linux n’a plus la complexité des premières
versions et ne nécessite plus une connaissance approfondie du système. Elle est
réalisée par une procédure d’installation qui évite de connaître les commandes
utilisées. Il suffit de répondre à un ensemble de questions pour lesquelles il est souvent
nécessaire d’avoir préalablement, hors du feu de l’action, prévu les bonnes réponses.
Répondre au hasard ou accepter une valeur par défaut, sans en savoir les
conséquences, amène souvent à reprendre complètement l’installation. « On corrigera
plus tard » nécessite souvent une expérience que l’on n’a pas encore ou alors, on
saurait répondre.
Il est possible de définir quelques éléments essentiels qu’il faut connaître avant de
démarrer l’installation :
Quelle est la configuration physique de son ordinateur ?
• Combien de disques ? Quelle taille ont-ils individuellement et globalement ?
Quel est le type de contrôleur, IDE ou SCSI ?
• Quels sont les systèmes de fichiers que le système va automatiquement créer ?
Quel espace disque vont-ils occuper ?
• Quelle taille pour le disque de swap primaire ?
• Quelle taille pour le système de fichiers des utilisateurs (/home) ?
• Faut-il créer des systèmes de fichiers supplémentaires ? Si oui, immédiatement ?
Si non, quel espace doit-on laisser pour les partitions ?
Remarque
Pour connaître la configuration physique de son ordinateur et les caractéristiques des
périphériques existants, on peut utiliser d’autres systèmes d’exploitation, notamment
Windows. Sous Windows 95, on utilise l’outil « Système » du panneau de
configuration. Si un système Linux est déjà installé et à défaut d’une commande
adaptée, le répertoire /proc est riche de fichiers d’informations.
10-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-3
Module 10 : Installation de Linux
Installation
Installationlocale
locale
boot CD Linux
Installation
Installationréseau
réseau
bootnet
Réseau
TCP/IP
serveur
10-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Disquettes d’installation
La distribution Linux Red Hat comprend plusieurs CD-ROMs (Binaires, Sources et
outils divers ). Si le lecteur de CD-ROM de votre ordinateur n’est pas « bootable »,
vous pouvez fabriquer une disquette de démarrage (« boot ») qui permet de démarrer
votre ordinateur.
La disquette de démarrage contient LILO, un noyau Linux avec un nombre minimum
de pilotes de périphériques et un système de fichiers root contenant l’essentiel pour
réaliser l’installation.
Dans le cas d’une installation réseau, vous devez générer à partir du CD-ROM Linux,
une disquette de démarrage spéciale, que l’on baptisera « bootnet ».
Dans le cas où vous installez Linux à partir d’un CD-ROM PCMCIA, il vous faut en
plus de la disquette de démarrage, générer une disquette supplémentaire que l’on
baptisera « pcmcia ».
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-5
Module 10 : Installation de Linux
10-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Remarques
• Le répertoire de montage du CD-ROM peut être choisi librement, il suffit que ce
dernier existe.
• Si vous fabriquez les disquettes à partir d’un autre système UNIX que Linux, le
type de système de fichiers CD-ROM peut être différent d’ISO9660, et nous vous
invitons à consulter le manuel de votre système. La commande de montage du
CD-ROM pourrait être :
# mount -f HS /dev/cdrom /cdrom # typiquement SCO UNIX
# mount -F cdfs /dev/cdrom /cdrom # UNIX SVR4
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-7
Module 10 : Installation de Linux
Le partitionnement
Le partitionnement
Espace
Espacedisque
disquedisponible
disponible
Installation Linux
Un disque Win 9x Win 9x
IDE Espace Linux
libre
Linux
/dev/hda3
Aucun
Aucunespace
espacelibre
libre /dev/hda4
10-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
/var Elle est importante Elle est le pendant de « /usr ». Elle contient les
pour un serveur. requêtes adressées aux services des utilisateurs et
les fichiers historiques (fichiers log).
On peut l’estimer à
environ 50 Mo.
/tmp Sa taille dépend aussi Elle contient des fichiers temporaires créés par
du nombre de services des commandes et des services. La création
installés. On peut spécifique d’une partition pour /tmp évite la
l’estimer à environ 50 saturation de la partition root, où /tmp réside
Mo. sinon, par des fichiers temporaires trop
volumineux.
/home Sa taille dépend du Elle contient les répertoires de connexion des
nombre d’utilisateurs utilisateurs du système. La création spécifique
et de leur d’une partition pour /home évite la saturation de la
consommation partition root, où /home réside sinon, par des
d’espace disque. utilisateurs trop gourmands.
/usr/src Sa taille est d’au Elle contient les sources du noyau et des
minimum 30 Mo. paquetages. Elle est indispensable pour régénérer
un noyau personnalisé.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-9
Module 10 : Installation de Linux
Appuyez sur n’importe quelle touche pour voir s’afficher sur l’écran :
Partition Table
| | Start | | End | Start |Number of|
Part.|boot|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors | MB
-----+----+----------------+------+----------------+--------+---------+----
1 |yes | 1 0 1| 06h| 63 355 63| 63| 1435329| 700
2 | no | 0 356 1| 05h| 63 618 63| 1435392| 1060416| 517
3 | no | 0 0 0| 00h| 0 0 0| 0| 0| 0
4 | no | 0 0 0| 00h| 0 0 0| 0| 0| 0
10-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Reserved sectors: 1
Number of FATs: 2
Number of root directory entries: 512
Number of sectors (short): 0
Media descriptor byte: f8h
Sectors per FAT: 176
Sectors per track: 63
Drive heads: 64
Hidden sectors: 63
Number of sectors (long): 1435329
Physical drive number: 80h
Signature: 29h
Checking boot sector … OK
Checking FAT … OK
Checking for free space … OK
Il vous est ensuite demandé si vous voulez sauver sur disquette votre ancienne
configuration, afin de pouvoir la restaurer plus tard. Acceptez en tapant « y » (yes),
puis tapez aussi « y » quand il vous sera demandé si vous avez inséré une disquette
formatée dans le lecteur de disquettes. Il s’agit de la disquette de boot déjà présente
dans le lecteur de disquettes.
Do you want to make a backup of your root and boot sector before
Proceeding (y/n) ? y
Do you have a bootable floppy disk in drive A : as described in the
Documentation (y/n) ? y
Writing file a:\rootboot.000
A présent, il ne vous reste plus qu’à utiliser les touches <flèche gauche> et <flèche
droite> pour choisir la nouvelle taille de la partition.
Enter start cylinder for new parttion (349 - 355)
Use the curtsor key to choose the cylinder, <enter> to continue
Old partitionCylinder New partition
687.1 MB 349 13.8 MB
A la fin, après avoir validé votre choix en appuyant sur la touche <Entrée>, les
caractéristiques de la nouvelle partition s’affichent sur l’écran. Il suffit de taper « c »
(continue) pour finaliser la création de la partition dans laquelle vous installerez
Linux, et de confirmer en frappant « y » (yes) pour terminer.
First cluster : 43962
Last cluster : 44843
Testing if empty … OK
New partition Table
| | Start | | End | Start |Number of|
Part.|boot|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors | MB
-----+----+----------------+------+----------------+--------+---------+----
1 |yes | 1 0 1| 06h| 63 348 63| 63| 1407105| 687
2 | no | 0 356 1| 05h| 63 618 63| 1435392| 1060416| 517
3 | no | 0 349 1| 06h| 63 355 63| 1407168| 28224| 13
4 | no | 0 0 0| 00h| 0 0 0| 0| 0| 0
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-11
Module 10 : Installation de Linux
10-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Nous allons à présent décrire avec précision toutes les étapes de l’installation du
système Linux depuis un CD-ROM local. Les autres types d’installation sont présentés
en fin du module.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-13
Module 10 : Installation de Linux
3. Choisir le clavier
Sélectionnez « fr-latin1 »
4. Choisir la méthode d’installation
Sélectionnez « CD-ROM local », puis cliquez sur « OK ». Le programme
d’installation tente alors de détecter votre lecteur de CD-ROM. Il affiche un message
d’erreur en cas d’échec.
Remarque
Un lecteur de CD-ROM IDE-ATAPI ne pose aucun problème à Linux. Si vous
disposez d’un lecteur de CD-ROM SCSI, vous serez amené à indiquer le bon pilote.
Linux supporte les CD-ROM SCSI les plus courants. Vous serez cependant peut-être
invité à fournir quelques paramètres au pilote du lecteur (cf. Documentation du lecteur
de CD-ROM).
Une fois le CD-ROM reconnu, le programme d’installation vous demande si vous
souhaitez réaliser une installation ou une mise à jour. Dans le cas présent, vous
répondez « Installation ».
Puis, vous êtes invité à choisir la classe d’installation parmi « station », « serveur » ou
« personnalisée ». Nous présentons la classe « personnalisée ».
Remarque
Il existe un choix « mise à jour » qui permet, entre autres, d’installer des paquetages et
de régénérer la disquette de démarrage.
10-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-15
Module 10 : Installation de Linux
Il vous est ensuite demandé de sélectionner le moniteur. Le choix s’effectue aussi dans
une liste. A défaut de trouver votre moniteur, vous choisissez « Personnel ». Il vous
est demandé de choisir dans une liste la plage des fréquences verticales ainsi que la
fréquence de synchronisation horizontale de votre moniteur.
Remarque
Vous pouvez choisir des fréquences verticales inférieures à celles réellement
supportées par votre moniteur, mais en aucun cas supérieures. Vous risqueriez alors de
l’endommager (cf. Guide du moniteur).
Une fois les choix terminés, le programme d’installation vous demande si vous voulez
qu’il teste votre configuration graphique pour définir les modes de résolution par
défaut. Quand le test est terminé, vous gardez la liberté de les modifier.
11. Configuration du réseau
Vous pouvez configurer Linux pour votre réseau local (cf. Module 15 : Le réseau).
Pour cela, si vous n’optez pas pour une détection automatique, il vous faut
sélectionner la carte réseau qui équipe votre ordinateur et fournir les paramètres de
configuration de la carte : l’IRQ (souvent 3 ou 5 par défaut) et le champ I/O Address
(souvent 300 par défaut). Cette dernière information doit être fournie en hexadécimal.
Pour cela, on la préfixe par 0x, ce qui donne 0x300 pour l’adresse 300.
Après les paramètres de la carte réseau, vous devez renseigner la configuration de base
de TCP/IP :
• Le nom du domaine,
• Le nom d’hôte que vous attribuez à l’ordinateur dans le réseau,
• L’adresse IP de votre machine,
• Le masque de réseau,
• L’adresse du routeur par défaut (« Default gateway ») de votre réseau local.
12. Configuration de la zone géographique
Cette information permet de configurer Linux avec l’heure spécifique de votre pays, la
France.
Sélectionnez simplement « Europe/Paris » et Linux fera le reste.
13. Sélection des services Linux
Les services Linux sélectionnés seront ensuite activés automatiquement lors du
passage au mode multi-utilisateur. Il s’agit en fait des démons démarrés par les scripts
/etc/rc* (cf. Module 7 :L’arrêt et le démarrage).
14. Installation d’une imprimante
Vous pouvez configurer facilement votre imprimante. Pour les paramètres à fournir,
nous vous renvoyons au module 8 qui traite de l’impression.
15. Choix du mot de passe de root
Le programme d’installation vous demande de saisir le mot de passe de l’utilisateur
root. Ce mot de passe, très important, doit être saisi deux fois avant d’être mémorisé.
16. Configuration du démarrage de votre système Linux
Le programme d’installation vous demande si vous souhaitez créer une disquette de
démarrage. Nous vous recommandons de répondre par l’affirmative et d’insérer, à sa
demande, une disquette vierge dans le lecteur. Cette disquette vous permettra ensuite
de démarrer votre système si le programme de chargement « LILO » du disque dur est
endommagé.
10-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Il faut, pour terminer, indiquer où le chargeur LILO doit être installé. Vous avez deux
possibilités :
• Dans le secteur MBR (cf. Module 7 :L’arrêt et le démarrage).
• Dans le premier secteur de la partition de boot de Linux (/boot). Dans ce dernier
cas, le chargeur LILO doit être activé par le chargeur d’un autre système
d’exploitation ou depuis la disquette de boot créée à l’étape précédente.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-17
Module 10 : Installation de Linux
Le
Lechargeur
chargeurLILO
LILO
Que charger ?
Principes
Le chargeur LILO peut démarrer le chargement d’un autre système d’exploitation que
Linux, le plus souvent Windows 9x ou NT.
Pour cela, il faut que LILO réside dans le secteur MBR et il faut indiquer la partition
où réside l’autre système d’exploitation dans le fichier de configuration du chargeur
LILO, le fichier /etc/lilo.conf. Pour terminer, vous devez exécuter la commande
/sbin/lilo.
Remarque
Chaque fois que l’on modifie le fichier /etc/lilo.conf ou que l’on recompile le noyau, il
faut exécuter la commande lilo.
Exemple d’ajout du système d’exploitation de la partition C : au chargeur LILO
# cat /etc/lilo.conf # on a ajouté, par vi, la partie other
boot=/dev/hda5
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz- 2.4.7-10
label=linux
root=/dev/hda5
read-only
other=/dev/hda1
label=win95
table=/dev/hda
#/sbin/lilo
Added linux *
Added win95
10-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Lorsque LILO affiche son invite « LILO : », il suffit d’appuyer sur la touche <TAB>
pour connaître les systèmes d’exploitation que l’on peut exécuter et ensuite, de saisir
le nom du système que l’on souhaite effectivement démarrer.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-19
Module 10 : Installation de Linux
Windows 9x
LILO Partition Linux
LOADLIN
Noyau Linux
vmlinuz
Quand LILO est installé dans le secteur de boot de la partition Linux, il peut être
activé par le chargeur du système qui réside dans le MBR, comme boot manager du
système OS/2 ou ntldr de Windows NT.
Le chargeur boot manager présente un inconvénient qui peut être dissuasif. Ce
chargeur nécessite une partition principale pour lui tout seul.
Nous avons choisi de présenter la solution NT loader de Windows NT.
La prise en charge de LILO par le chargeur se fait en partie sous Linux et en partie
sous Windows NT ou Windows 9x.
Pour que le chargeur NT (« ntldr ») sache activer le secteur de boot d’un autre
système, il suffit que celui-ci soit dans un fichier dont le chargeur ntldr connaisse le
nom. Il suffit donc de copier le secteur de boot de la partition Linux dans un fichier du
disque dur « C: » et de le renseigner dans le fichier de configuration du chargeur de
NT.
Sous Linux, supposons que la partition Linux est la partition /dev/hda3 et que la
partition C: corresponde à la partition /dev/hda1 de Linux. Deux solutions sont
possibles :
1. Monter la partition « C: » et créer directement le fichier contenant LILO sur la
partition « C: ».
# mount –t msdos /dev/hda1 /mnt
# dd if=/dev/hda3 of=/mnt/bootsect.lnx count=1 bs=512
# ls –l /mnt/bootsect.lnx
2. Créer le fichier sur une disquette au format DOS et le copier ensuite sur « C: ».
# dd if=/dev/hda3 of=/tmp/bootsect.lnx count=1 bs=512
# mcopy /tmp/bootsect.lnx a :
10-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-21
Module 10 : Installation de Linux
L’installation réseau
L’installation réseau
Installation
Installationréseau
réseau
/
Réseau
/home TCP/IP
bootnet
swap
Serveur
d’installation
L’installation réseau peut être réalisée à partir d’un serveur NFS (UNIX, Linux) ou
d’un serveur FTP (Site Internet ou privé).
Ce type d’installation nécessite que vous ayez une carte réseau d’un type très répandu,
c’est le cas par exemple des cartes 3com, car le programme d’installation ne connaît
qu’un nombre restreint de cartes réseau.
10-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Que vous utilisiez un serveur NFS, un serveur FTP ou un serveur HTTP (serveur
Web), la première partie de l’installation est commune aux trois méthodes, nous ne la
décrivons qu’une fois.
Partie commune aux trois types d’installation (NFS, FTP, HTTP)
Démarrez l’installation à partir de la disquette d’installation réseau « bootnet »,
comme pour une installation locale.
On doit, par la suite, sélectionner la carte réseau parmi les cartes disponibles, puis
choisir l’option [Autoprobe] pour que le programme d’installation détermine
automatiquement les paramètres « IRQ » et « I/O Address » de la carte ou l’option
[Specify] si vous souhaitez renseigner les paramètres vous-même.
Si la carte n’est pas détectée, vous ne pouvez pas continuer l’installation, sinon
l’écran suivant vous propose de configurer l’adresse IP de votre machine
manuellement [Adresse IP statique], [BOOTP] via un serveur BOOTP, ou [DHCP] via
un serveur DHCP (cf. Module 15 : Le réseau ).
Si vous choisissez l’option [Adresse IP statique], l’écran suivant vous demande de
saisir l’adresse IP que vous voulez affecter à votre ordinateur, ainsi que le masque de
réseau, la passerelle par défaut et l’adresse IP de votre serveur de noms primaire.
Entrez l’adresse IP de votre ordinateur et passez aux champs suivants. Le programme
d’installation renseignera les autres champs automatiquement. Si vous êtes connecté à
un réseau local qui dispose d’un serveur de noms (DNS), saisissez son adresse IP,
sinon effacez tout ce qu’il peut y avoir dans ce champ et validez avec le bouton
« OK ».
Si vous avez choisi l’option [BOOTP] ou l’option [DHCP], votre machine est
automatiquement configurée.
L’écran suivant vous demande de saisir le nom de votre domaine (par exemple
masociete.fr), le nom de votre ordinateur ainsi que les adresses IP des serveurs de
noms secondaires et tertiaires. Si vous ne disposez pas de ces informations, vous
pouvez ne pas renseigner les rubriques et directement valider avec le bouton « OK ».
Installation à partir d’un serveur NFS
Vous êtes maintenant invité à entrer le nom ou l’adresse IP du serveur NFS, ainsi que
le répertoire où se trouve la distribution RedHat. Saisissez ces deux informations, et
l’écran suivant vous indique que l’installation se poursuit normalement, ou vous
affiche un message d’erreur en cas de problème.
A titre d’exemple, si sur le serveur NFS, le CD-ROM ou une image sur disque dur du
CD-ROM de la distribution est monté dans le répertoire /intall_reso, vous devez saisir
« /install_reso » pour la rubrique « Chemin du répertoire RedHat ».
En cas de succès, le reste est identique à une installation locale.
Installation à partir d’un serveur FTP
Vous êtes maintenant invité à entrer le nom ou l’adresse IP du site serveur FTP, ainsi
que le répertoire où se trouve la distribution RedHat. Saisissez ces deux informations
dans tous les cas.
A titre d’exemple, si sur le serveur FTP, la distribution Red Hat est dans le répertoire
/public/linux_redhat, vous devez saisir « /public/linux_redhat» pour la rubrique
« Chemin du répertoire Red Hat ».
Si votre serveur FTP n’accepte pas de connexions anonymes, le cas d’un réseau privé
par exemple, ou si vous êtes dans un réseau local où les accès au reste du monde
passent par une machine qu’on appelle « proxy » c’est-à-dire un mandataire et que
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-23
Module 10 : Installation de Linux
votre serveur FTP n’est pas dans votre réseau local, vous devez activer l’option
[Utilisation d’un ftp non anonyme ou d’un service mandataire (proxy)]
Si vous avez activé l’option [Utilisation d’un ftp non anonyme ou d’un service
mandataire (proxy)], vous devrez saisir :
• Le nom du compte utilisateur ainsi que le mot de passe correspondant dans le cas
où votre serveur FTP n’accepte pas de connexions anonymes.
• L’adresse IP de la machine mandataire (proxy), ainsi que le numéro de port du
service proxy, normalement 80 ou 21.
Installation à partir d’un serveur HTTP
Vous êtes maintenant invité à entrer le nom ou l’adresse IP du site serveur HTTP,
ainsi que le répertoire où se trouve la distribution RedHat. Saisissez ces deux
informations dans tous les cas.
A titre d’exemple, si sur le serveur HTTP, la distribution Red Hat est dans le
répertoire /linux/redhat, vous devez saisir « /linux/redhat » pour la rubrique « Chemin
du répertoire Red Hat ».
Si votre serveur HTTP n’accepte pas de connexions anonymes (réseau privé par
exemple), ou si vous êtes dans un réseau local où les accès au reste du monde passent
par une machine qu’on appelle « proxy » c’est-à-dire un mandataire et que votre
serveur HTTP n’est pas dans votre réseau local, vous devez activer l’option
[Utilisation d’un ftp non anonyme ou d’un service mandataire (proxy)]
Si vous avez activé l’option [Utilisation d’un ftp non anonyme ou d’un service
mandataire (proxy)], vous devrez saisir :
• Le nom du compte utilisateur ainsi que le mot de passe correspondant dans le cas
où votre serveur HTTP n’accepte pas de connexions anonymes.
• L’adresse IP de la machine mandataire (proxy), ainsi que le numéro de port du
service proxy , normalement 80.
10-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 10 : Installation de Linux
Objectifs :
Savoir installer le système Linux
localement ou depuis un réseau
Créer des partitions utiles au système
Linux
Configurer le multi-boot
Durée : 30 minutes.
Exercice n°1
Combien de partitions, au minimum, nécessite l’installation d’un système Linux, et
lesquelles ?
Exercice n°2
Linux peut-il démarrer à partir d’une partition logique ?
Exercice n°3
Citez quelques-unes des partitions types que l’on peut créer lors de l’installation de
Linux. Indiquez leur contenu.
Exercice n°4
En dehors de l’installation à partir d’un CD-ROM local, quelles sont les autres
installations possibles du système Linux ?
Exercice n°5
Où peut-on installer LILO ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 10-25
Module 10 : Installation de Linux
Exercice n°6
Si LILO est installé dans le premier secteur de la partition Linux, comment démarrer
le système Linux ?
10-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
• Périphérique, pilote,
contrôleur
• API du système Linux
• Fichier spécial (/dev),
majeur, mineur
• Mode caractère et
mode bloc
• Les modules, kmod et
modprobe
11Module 11 : La gestion
des périphériques
Objectifs
Après la lecture de ce module, le lecteur connaît les caractéristiques des périphériques
d’un système Linux et les principales conventions de nommage des périphériques. Il
sait identifier les périphériques configurés dans le système.
Contenu
Introduction à la gestion des périphériques
Les fichiers spéciaux
Les modules
L’USB
Références
HOWTO : Hardware-HOWTO
Le manuel : lspnp(8), scsi_info(8), lspci(8), lsusb(8), ide_info(8), st(4), MAJOR(9),
isdnctrl(8), fd(4), hd(4), lp(4)
Livre : Linux Hardware Handbook
Internet : http://lhd.datapower.com (« Linux Hardware Database »)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-1
Module 11 : La gestion des périphériques
Noyau
Processus
Processus
Pilote
open(«/dev/périphérique», ...)
Fichier
Contrôleur CPU spécial
Périphérique
Bus
Introduction
L’architecture physique des systèmes informatiques est fonctionnellement la même
sur tous les ordinateurs. Il existe un ou plusieurs bus où circulent les informations de
données et de commandes échangées entre l’unité centrale de l’ordinateur (le « CPU »,
« Central Processor Unit ») et les processeurs d’entrées/sorties que sont les
contrôleurs de périphériques.
Les contrôleurs de périphériques sont capables de piloter plusieurs périphériques d’un
même type, cas d’un contrôleur de disques IDE, par exemple, ou plusieurs
périphériques de types différents, tel un contrôleur « SCSI » (« Small Computer
System Interface »).
Dans le système Linux, les périphériques sont vus comme des fichiers. Les processus
agissent sur les périphériques par l’intermédiaire de primitives. Les primitives sont des
fonctions du langage C, dont le code est dans le noyau Linux et pas dans les processus.
L’ensemble des primitives définies dans une norme, comme « POSIX », constitue une
« API » (« Application Program Interface »).
Quand un processus veut lire ou écrire des données depuis ou vers un périphérique, il
doit préalablement procéder à l’ouverture du fichier spécial associé au périphérique,
grâce à la primitive « open » et ensuite lire ou écrire des données avec les primitives
« read » ou « write », comme il le ferait pour un fichier de données classiques, de type
texte ou binaire. Ces primitives appartiennent donc au module de gestion de fichiers
du noyau.
Les opérations de lecture ou d’écriture physiques de données vers le périphérique, via
le contrôleur, sont rassemblées dans le pilote (« driver ») associé au contrôleur. Le
pilote est également un module du noyau.
C’est dans le fichier spécial /dev/périphérique que le système de gestion de fichiers
trouve les informations nécessaires pour s’adresser au pilote concerné par le
périphérique ouvert par un processus.
11-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
Le PC et ses entrées-sorties
L’unité centrale d’un PC dialogue avec les cartes d’interface grâce à un ensemble de
bus :
• Le bus local (« CPU bus » ou « local bus »). C’est le bus qui travaille à la vitesse
du Processeur, il permet essentiellement l’accès à la mémoire. Les contrôleurs PCI
et AGP sont branchés sur ce bus.
• ISA (« Industry Standard Architecture »). C’est le plus ancien bus disponible sur
un PC. Les cartes d’interface supportées sont de 8 ou 16 bits. Les connecteurs
d’extension (« slots ») 16 bits acceptent les cartes 8 bits. Le bus, qui travaille à
8.33 MHz, permet un taux de transfert de 8 Mo/s. Du fait de son ancienneté et de
sa simplicité, il existe, pour ce bus, un très grand nombre de cartes d’interface.
• PCI (« Peripheral Componant Interconnect »). C’est le bus le plus puissant. Il
travaille à 33 MHz, et permet des échanges en 32 bits à un débit de 132 Mo/sec.
Ce bus est tout à fait adapté au branchement de cartes contrôleurs SCSI et aux
cartes réseaux à haut débit. Les contrôleurs IDE, USB et ISA, inclus sur la carte
mère, sont souvent reliés au bus PCI.
• AGP (« Accelerated Graphics Port »). C’est une forme particulière de bus PCI,
adaptée aux cartes d’interface graphique, qui utilise des fréquences supérieures à
33 MHz.
Le mode opératoire
Il y a deux types de configurations. L’une est matérielle et l’autre logicielle. La
configuration matérielle peut être faite en positionnant des micro-interrupteurs
(« switches ») et des cavaliers situés sur la carte d’interface. La configuration
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-3
Module 11 : La gestion des périphériques
logicielle consiste à fournir aux pilotes les valeurs des paramètres d’entrées-sorties
choisis. Ces configurations constituent la principale difficulté pour ajouter un
périphérique. L’utilisation, par différents périphériques, des mêmes paramètres
engendre des conflits. L’idéal est de pouvoir automatiser ces configurations.
Les cartes PCI
Le bus PCI est dit « intelligent ». Il permet une configuration automatique des
paramètres d’entrées-sorties.
Les cartes ISA, le PnP
Les anciennes cartes ISA doivent obligatoirement être configurées manuellement. Les
cartes récentes peuvent être configurées manuellement ou bien par le PnP (« Plug aNd
Play »). Le PnP est une sorte de protocole entre la carte d’interface et le système
d’exploitation.
11-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
Mode :
Majeur Mineur
c caractère
b bloc
Introduction
Les fichiers spéciaux ont leurs noms définis dans l’arborescence, dans le répertoire
/dev. La commande ls –l permet, comme pour n’importe quel fichier, d’en connaître
les attributs.
Le premier caractère « c » ou « b » identifie le type du périphérique : « c » pour le
mode caractère, « b » pour le type bloc. Rappelons que le type « c » ou « b » identifie
le type d’échange de données entre le module de gestion de fichiers et le pilote du
périphérique. En mode caractère, il n’y a pas d’utilisation des buffers du système.
L’échange se fait par groupes d’octets.
Les deux autres attributs essentiels d’un fichier périphérique sont la paire
d’information que l’on trouve, en lieu et place de la taille d’un fichier ordinaire. Ce
sont, respectivement, le majeur et le mineur du fichier spécial.
Le majeur, associé au type du périphérique (« c » ou « b »), identifie le pilote et, en
conséquence, le contrôleur du périphérique.
Le mineur identifie très souvent le périphérique mais il peut aussi désigner une
particularité physique d’un périphérique :
• Une partition d’un disque.
• Un emplacement (« slot ») d’un contrôleur de bus.
• Une particularité d’un périphérique : densité, rembobinage à la fermeture, ...
Prenons, par exemple, le cas de la console maîtresse, qui est un périphérique du noyau.
Le numéro de majeur est 4, mais l’on peut avoir jusqu’à 64 mineurs (de 0 à 63) qui
correspondent à des consoles virtuelles de nom /dev/tty0 à /dev/tty63. C'est, par défaut,
la console virtuelle de numéro 1, de mineur 1, qui est associée à la console maîtresse
physique. Il faut alors presser la combinaison de touches <ALT> <F2> pour activer la
console virtuelle numéro 2 de mineur 2, et ainsi de suite.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-5
Module 11 : La gestion des périphériques
Les noms /dev/console et /dev/tty0, qui ont le mineur 0, désignent la console courante.
# ls -l /dev/console /dev/tty[0-6]
crw------- 1 root root 4, 0 aoû 28 07:35 /dev/console
crw------- 1 root root 4, 0 mai 5 1998 /dev/tty0
crw------- 1 root tty 4, 1 aoû 28 09:03 /dev/tty1
crw------- 1 root root 4, 2 aoû 28 07:35 /dev/tty2
crw------- 1 root root 4, 3 aoû 28 07:35 /dev/tty3
crw------- 1 root root 4, 4 aoû 28 07:35 /dev/tty4
crw------- 1 root root 4, 5 aoû 28 07:35 /dev/tty5
crw------- 1 root root 4, 6 aoû 28 07:35 /dev/tty6
Remarques
• Le programme d’installation crée le nom /dev/console et les noms des consoles
virtuelles /dev/tty0 à /dev/tty12 seulement. Les autres consoles peuvent être
ajoutées sans compilation du noyau (depuis la version 1.1.54 du noyau) avec la
commande mknod ou le script /dev/MAKEDEV présenté plus loin dans ce
chapitre.
• Il arrive parfois que plusieurs noms de périphériques différents aient le même
majeur et le même mineur. Ils sont équivalents à des liens symboliques, souvent
créés pour fournir des noms simplifiés de périphériques. Ils ne traduisent alors
aucune particularité de fonctionnement, à la différence de ceux dont le mineur
diffère et qui ont des inodes différents. Il est en effet plus simple de désigner le
lecteur de CD-ROM par le nom standard /dev/cdrom plutôt que par /dev/cdu535
pour un lecteur Sony et /dev/mcd0 pour un lecteur Mitsumi.
11-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-7
Module 11 : La gestion des périphériques
Pour créer les noms des fichiers spéciaux des périphériques usuels tels que les disques,
les bandes, les imprimantes, dont les pilotes sont livrés avec la distribution Linux en
votre possession, la démarche la plus simple est d’exécuter le script /dev/MAKEDEV
qui se charge de créer tous les noms de fichiers périphériques que peut supporter votre
machine.
Nous vous conseillons d’exécuter la commande man MAKEDEV pour savoir si votre
périphérique est pris en compte par le script MAKEDEV.
11-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
Trouver le pilote
Intégrer le pilote au noyau
Recompiler le noyau
Charger le module
Configurer la carte d’interface
Paramétrer le pilote
Tester le pilote
Les techniques associées à l’ajout d’un périphérique sont très dépendantes de la nature
du périphérique, mais il est possible de dégager certaines règles générales, notamment
liées à la gestion des pilotes.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-9
Module 11 : La gestion des périphériques
11-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
Paramétrer le pilote
Les paramètres sont gérés automatiquement dans le cas des cartes PCI et dans le cas
des cartes ISA PnP (cf.Paragraphe suivant).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-11
Module 11 : La gestion des périphériques
Dans le cas d’une carte ISA non PnP, il faut indiquer au pilote les paramètres qui ont
été positionnés matériellement. Ceci peut être effectué directement au démarrage par
l’intermédiaire de lilo, en argument du noyau, ou par la ligne « append= » (cf. Module
7 : L’arrrêt et le démarrage - chapitre lilo). L’exemple qui suit réalise le paramétrage
d’une carte réseau d’alias eth0, d’IRQ 10, et d’adresse d’entrées-sorties commençant
en 0x210 :
linux ether=10,0x210,eth0
Ou
append = "ether=10,0x210,eth0"
Si le pilote peut être chargé dynamiquement, on donne ces informations en paramètre
de la commande insmod ou par l’intermédiaire du fichier /etc/conf.modules (cf.
Module 12 : Le noyau – chapitre Les modules).
# insmod 3c509 io=0x330 irq=12
Remarque
Dans le cas d’une carte réseau, linuxconf, dans la section de configuration « adapter »,
permet non seulement le choix de l’adresse IP mais aussi celui du pilote Ethernet et
son paramétrage.
Tester le pilote
Lors du démarrage du système ou du chargement du pilote, le noyau affichera un
message d’initialisation disponible dans son fichier log /var/adm/messages ou
visualisable par la commande dmesg :
# dmesg | grep 8139
rtl8139.c :v1.07 5/6/99 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/drivers/rtl8139.html
eth0 : RealTek RTL8139 Fast Ethernet 0xd400, IRQ 11, 00:48:54:3b:30:69.
Des messages d’erreur peuvent apparaître :
Lp : driver loaded but no device found
Certains développeurs de pilote fournissent un logiciel de test, qui peut donner des
renseignements complémentaires. Ce logiciel est disponible sur le site Internet qui
propose le téléchargement du pilote.
# more rtl8139-diag.c
/* rtl8139-diag.c : Diagnostics/EEPROM setup for RealTek8129/8139 chips.
…
Références : http://www.scyld.com/diag/index.html
…
Pour terminer, le meilleur test est d’utiliser le périphérique. Dans le cas d’une carte
réseau, on essaiera d’échanger des données en réseau.
Le logiciel LOTHAR
C’est un logiciel graphique qui rassemble de nombreux outils qui permettent de
simplifier l’ajout d’un périphérique.
Référence : http://www-linux-mandrake.com/lothar/
11-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
BUS LOCAL
Adaptateur PCI
BUS PCI
L’interface SCSI
L’interface SCSI (« Small Computer System Interface ») est l’interface la plus
puissante pour brancher des disques ou des unités à supports amovibles (CD-ROM,
cartouche, …). Malheureusement, cette interface n’est pas disponible, en standard, sur
les PC. Elle nécessite d’ajouter un contrôleur SCSI qui peut gérer jusqu’à sept
périphériques SCSI chaînés les uns aux autres (cf. Module 9 : Les disques). Les
pilotes SCSI sont fournis dans toutes les distributions Linux. Le pilote de base est le
pilote sg qui est un pilote générique, mais de bas niveau. Il convient pour des scanners
ou des graveurs de CD-ROM. Le pilote sg intègre le pilote scsi_mod qui constitue le
cœur du système SCSI. Le pilote sg s’appuie sur le pilote de la carte contrôleur SCSI,
par exemple aha1542 pour une carte Adaptec 1542. Les pilotes de haut niveau sd, st et
sr, en mode bloc, permettent respectivement de gérer des disques, des lecteurs de
cartouche et des CD-ROMs. Le pilote sg peut également s’appuyer sur des
périphériques IDE par l’intermédiaire du pilote ATAPI, ce qui permet la gestion des
unités à support amovible qui sont vues comme des périphériques SCSI.
L’interface EIDE
Cette interface est présente dans tous les PC. C’est l’interface la plus utilisée. Les
pilotes EIDE sont fournis en standard. L’interface EIDE (« Enhanced Integrated
Device Electronics ») ne permet que de raccorder deux disques par contrôleur (cf.
Module 9 : Les disques).
L’interface ATAPI
L’interface ATAPI (« Advanced Technology Attachment Packet Interface »)
correspond en fait à l’interface EIDE, mais utilisée pour les périphériques qui ne sont
pas des disques, comme les CD-ROMs et les lecteurs de cartouche.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-13
Module 11 : La gestion des périphériques
L’interface parallèle
L’interface parallèle est principalement utilisée pour relier une imprimante, mais elle
peut être utilisée à d’autres fins, comme brancher une caméra (« WebCam ») ou un
lecteur ZIP Iomega. Son débit est de 2 Mo/s. Le pilote de base est paride qui fournit
la plupart des méthodes d’accès au port parallèle. Il existe également des pilotes de
plus haut niveau : pd pour les disques IDE, pcd pour les CD-ROMs ATAPI, pf pour
les disques ATAPI, pt pour les lecteurs de bande et pg pour le support générique
ATAPI. L’usage de plusieurs périphériques sur le même port parallèle nécessite le
pilote parport.
L’interface série
L’interface série, plus connue sous le nom RS-232, est une des plus anciennes
interfaces de l’informatique. Contrairement à l’interface parallèle où les données sont
échangées octet par octet, les données sont transmises bit à bit. Par contre, l’échange
peut se faire sur des distances qui peuvent être très importantes, via l’utilisation de
modem. L’utilisation principale de cette interface est le branchement à un réseau en
utilisant le réseau téléphonique commuté (RTC). Un PC est normalement livré avec
deux ports série appelés COM1 et COM2 (terminologie MSDOS). Ces ports sont
accessibles sous Linux grâce aux fichiers /dev/ttyS0 et /dev/ttyS1. On établit un lien
symbolique entre le port utilisé et le fichier /dev/modem. Le logiciel minicom permet
de tester une liaison série.
L’interface USB
L’interface USB (« Universal Serial Bus ») est une technologie série, comme la
RS-232. Cette interface est récente et elle n’équipe pas les anciens PC.. L’interface est
très souple, car elle permet de brancher ou débrancher les périphériques « à chaud ».
Elle peut être utilisée pour brancher une souris, un modem, un scanner, un lecteur ZIP
Iomega…(cf. Chapitre USB).
11-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
liste, par exemple /dev/sdc. On peut créer un lien pour le référencer plus simplement.
L’utilisation de la partition n°4 permet une gestion commune d’un support par Linux
et par Windows.
# ln –s /dev/sda4 /dev/zip
La partition peut être montée par la commande mount, elle utilise le système de
fichiers vfat. On peut la monter au démarrage en modifiant /etc/fstab (cf. Module 4 :
Les systèmes de fichiers).
# grep zip /etc/fstab
/dev/zip /mnt/zip vfat noauto,user 0 0
# eject zip
Carte son
Les cartes son sont disponibles au format ISA ou PCI. Les cartes son sont très
inégalement supportées par Linux. De nombreux pilotes, et en conséquence, de
nombreux fichiers périphériques permettent la gestion du son. Citons par exemple le
fichier /dev/dsp qui permet d’écouter ou d’enregistrer des fichiers .au. Le logiciel
sndconfig permet de configurer une carte son et le logiciel aumix (en mode texte)
permet de réaliser des tests.
Souris
Il existe plusieurs modes de raccordement d’une souris à un PC. Les plus courants
sont la liaison série (/dev/ttyS[01]) et le port PS/2 (/dev/psaux). Le logiciel
mouseconfig permet de configurer l’accès à la souris.
Scanner
Le logiciel SANE (« Scanner Access Now Easy ») est un ensemble de programmes qui
permettent l’accès à un scanner. Il est similaire à ce que permet l’interface TWAIN
dans le monde Windows. SANE fonctionne avec les scanners HP, Logitech, Epson, …
Imprimante
Une imprimante est le plus souvent accessible par l’interface parallèle (/dev/lp[01]) et,
éventuellement, par le port série. Elle ne nécessite pas de pilote spécifique. Ce que
l’on appelle vulgairement pilote d’imprimante est en fait un logiciel qui génère des
caractères de contrôle de l’impression (cf. Module 8 : L’impression).
Carte réseau
Les cartes réseaux sont au format ISA ou PCI. Elles sont très inégalement supportées
par Linux. La technologie Ethernet est la plus utilisée au sein des entreprises et, en
conséquence, les cartes réseaux sont principalement des cartes Ethernet. Les cartes
réseaux sont utilisées généralement avec les pilotes TCP/IP (cf. Module 15 : Le
réseau).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-15
Module 11 : La gestion des périphériques
Carte graphique
Une carte graphique est au format PCI, AGP ou propre au bus local du PC. Les cartes
graphiques sont très inégalement supportées par Linux. Contrairement aux autres
périphériques, le pilote ne fait pas partie du noyau, mais est intégré au serveur X. En
conséquence, selon le type de carte, il faut choisir le serveur X adapté. De même, la
configuration du pilote (modèle, quantité de mémoire vive, « clok chip », …) se fera
en configurant le serveur (cf. Module 16 : X-Window). Si votre carte n’est pas
reconnue au niveau des serveurs Xfree86, l’ultime solution est d’utiliser le pilote fb
(« framebuffer »).
Références
Le manuel.
PNP : isapnp(8), isapnp.conf(5), pnpdump(8)
La documentation du noyau (répertoire /usr/src/linux/Documentation ).
Le bus PCI : pci.txt.
L’interface parallèle : parport.txt, paride.txt.
L’interface IDE : ide.txt.
L’interface SCSI : scsi.txt
Les paramètres du noyau (par exemple l’activation de PnP) :
kernel-parameters.txt
Les fichiers périphériques (nom, mode, majeur) : devices.txt.
Etc.
Il existe aussi plusieurs répertoires : fb/, isdsn/, network/, sound/
Les paramètres d’entrées-sorties des principales cartes réseaux :
network/net-modules.txt
Les HOWTO.
Hardware Howto, PCI-Howto, PCMCIA-Howto, Plug-and-Play Howto, SCSI Howto,
Serial Howto, Sound Howto, CD-ROM Howto, CD-Writing Howto, FrameBuffer
Howto, Ftape Howto, modem Howto, Ethernet Howto, Laptop Howto, UPS Howto,
mini Howto ZIP-Drive, …
Internet.
Le logiciel SANE (scanner) : http://tsx-11.mit.edu/pub/linux/packages/sane/
Les scanners compatibles SANE : http://www.mostang.com/sane/sane-backends.html
Linux Hardware Database : http://lhd.datapower.com
Les modems : http://www.linmodems.org
L’interface USB : http://www.linux-usb.org
Les cartes vidéo : http://www.xfree86.org
Les joysticks : http://www.linuxgames.com/joystick/
Les périphériques supportées par RedHat : http://www.redhat.com/support/hardware/
11-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
L’USB
L ’USB
Contrôleur USB
Hub racine
Clavier Hub
Périphériques
composites
Introduction
L’USB (« Universal Serial Bus ») est une interface qui permet de relier des
périphériques à un PC. Elle a été créée par Intel, Microsoft, Compaq et NEC, qui
désiraient une interface économique. Sa première spécification date de 1996. Elle
possède les caractéristiques suivantes :
• Elle permet la connexion à chaud de périphériques (« Hot pluggable »).
• Elle permet de relier jusqu’à 126 périphériques au PC.
• Les périphériques reliés sont de tout type : clavier, souris, joystick, scanner,
imprimante, lecteur de disquettes, ZIP, modem, caméra, ...
• La vitesse de transfert s’étale de 1.5 Mbits/s à 12 Mbits/s. La prochaine
version , la version 2, permettra un débit de 480 Mbits/s.
L’interface USB, de type série, n’utilise qu’un seul type de connecteur.
On peut facilement étendre le bus USB en ajoutant des Hubs. L’ensemble des
connexions forme un arbre.
La technologie USB
Le contrôleur USB
Les contrôleurs USB sont intégrés à la carte mère ou présents sur une carte contrôleur
de bus PCI. Les contrôleurs USB sont compatibles avec l’interface OHCI (« Open
Host Controller Interface ») de Compaq ou avec l’interface UHCI (« Universal Host
Controller Interface ») d’Intel. Le contrôleur USB doit être actif pour qu’il fonctionne.
Il peut être désactivé au niveau du setup.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-17
Module 11 : La gestion des périphériques
Le bus USB
La description du bus USB est libre. C’est donc une technologie ouverte (IEEE 1275 ).
Les périphériques sont reliés entre eux par des Hubs. L’ensemble forme un arbre. La
racine de cet arbre est le Hub faisant partie du système, appelé Hub racine. Chaque
périphérique et chaque hub possèdent une adresse. Certains périphériques, dits
composites, peuvent inclure un hub. D’autres peuvent avoir des périphériques
associés, par exemple un clavier auquel est reliée une souris. Dans ce cas, ils ne
possèdent qu’une seule adresse.
Un Hub USB permet de relier des périphériques et d’autres Hubs au Hub
hiérarchiquement supérieur. Il gère l’ajout ou le retrait d’un périphérique. Il gère
également l’alimentation du périphérique. Si on utilise l’alimentation du système, on
ne peut utiliser que des périphériques de faible puissance (limitée à 100 mA). Si on
utilise des Bus auto-alimentés, il n’y a pas de problème.
Le Hub racine (le sommet de l’arbre) est créé virtuellement par le contrôleur USB
pour unifier l’architecture. Il a un rôle de supervision. C’est lui qui joue l’arbitre des
transferts. Il décide du périphérique qui dialogue avec le contrôleur USB. C’est lui qui
interroge les périphériques à intervalle régulier (« polling »). L’USB ne permet qu’un
dialogue du type maître-esclave entre le système, représenté par le hub racine, et un
périphérique USB.
Les périphériques USB
Les périphériques USB sont divisés en classes. Chaque classe est gérée par un pilote
particulier. Un constructeur de périphériques USB peut très bien ajouter des éléments
spécifiques. Ces éléments ne peuvent être gérés par des pilotes génériques et imposent
des pilotes « maisons ».
Un périphérique connaît sa classe. L’appartenance à une classe implique notamment
de savoir comment est réalisée sa configuration et comment les données sont
transférées.
Voici les principales classes :
• Hub
• Interface humaine HID (« Human Interface Device »): clavier, souris,
joystick.
• Communication : modem, interface Numeris (ISDN)
• Sortie série (« Serial Converter »)
• Audio
• Moniteur
• Imprimante
• Scanner
• Appareils photos, caméra
• Stockage : lecteur de disquette, ZIP, disque Jaz ...
Descripteurs
Un périphérique est caractérisé par un ensemble de descripteur :
• Numéro de périphérique (« device number »).
Ce numéro, de 1 à 127, est unique et il est attribué lors du branchement du
périphérique.
11-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
USB et Linux
Le noyau Linux et l’interface USB
L’USB n’est quasiment pas supporté par les premiers noyaux 2.2.x. Le support
commence avec l’apparition des noyaux 2.3.x. Des patches permettent une mise à
niveau des noyaux 2.2.x. C’est seulement avec le noyau 2.2.18 que le support de
l’USB est natif et encore très incomplet. Le noyau 2.4 intègre mieux la technologie
USB. Il permet notamment la connexion à chaud (« hotplug ») et la gestion des
périphériques de stockage (Zip, lecteurs de disquettes ...).
Pilotes USB
L’usage de pilotes dynamiques est l’approche la plus logique. Elle se marie très bien
avec la connexion à chaud. Les pilotes sont empilés selon les usages. A la base, on
trouve le pilote du contrôleur. Il est fait de deux parties : une partie générique
(« usbcore ») et une partie spécifique du type de contrôleur (« usb-uhci ou usb-ohci »).
On trouve ensuite le pilote associé à la classe ou à l’interface : scanner.o, printer.o ...
L’USB device FS
L’USB device FS est un système de fichiers généré automatiquement et qui permet à
un développeur d’écrire des pilotes USB se présentant comme des applications
ordinaires. Ce FS permet à un administrateur de récolter une grande masse
d’informations sur les périphériques connectés.
L’USB device FS est normalement monté sur le répertoire /proc/bus/usb. Ce répertoire
contient ensuite les fichiers suivants :
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-19
Module 11 : La gestion des périphériques
11-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-21
Module 11 : La gestion des périphériques
# lsmod
Module Size Used by
nls_iso8859-1 2880 1 (autoclean)
nls_cp437 4384 1 (autoclean)
sd_mod 11728 1 (autoclean)
msdos 5424 1 (autoclean)
11-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 11 : La gestion des périphériques
Références
Internet : http://www.usb.org Les spécifications du Bus USB.
http://www.linux-usb.org/ Le projet de support de l’USB par
Linux.
http://linuxusbguide.sourceforge.net L’USB-Guide décrit l’utilisation de
chaque type de périphérique.
http://www.qbik.ch/usb/devices Les périphériques USB supportés par
Linux.
http://www.linux-usb.org/FAQ.htm FAQ.
http://www.kernel.org Les noyaux Linux.
http://linux-hotplug.sourceforge.net/ La connexion à chaud de périphériques
sous Linux.
les fichiers du paquetage documentation du noyau : /usr/share/doc/kernel-doc-*/usb/
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 11-23
Module 11 : La gestion des périphériques
Objectif :
Comprendre comment sont gérés les
périphériques sous UNIX
Durée : 15 minutes.
Exercice n°1
Quels sont les majeur et mineur du périphérique /dev/fd0 ?
Exercice n°2
Quels sont les fichiers spéciaux, dont /dev/fd0, associés au pilote gérant /dev/fd0 ?
Exercice n°3
Grâce à la documentation, trouvez les commandes pour formater une disquette.
Exercice n°4
Toujours en utilisant la documentation, quel est le nom de fichier à utiliser pour
formater une disquette ?
11-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
• Noyau
• API du système UNIX
• IPC
• « streams »
12Module 12 : Le noyau
Objectifs
Après l’étude de ce module, le lecteur sait comment, pourquoi et quand il est
nécessaire de construire un nouveau noyau.
Contenu
Le rôle du noyau
Historique du noyau
Pourquoi modifier ou reconstruire un noyau
La reconstruction d’un nouveau noyau
Informations sur le système, les périphériques
Le service syslog
Références
HOWTO : Kernel-HOWTO
Livre : Understanding the Linux Kernel
Internet : http://www.kernel.org
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-1
Module 12 : Le noyau
Le rôle du noyau
Le rôle du noyau
Processus
HARD Le noyau
Table système
••Gestion
Gestiondes
desprocessus
processus
••Gestion
Gestion desfichiers
des fichiers
••Gestion
Gestiondes
despériphériques
périphériques
Pilotes
L’API Linux
Le rôle du noyau
Le noyau Linux est un fichier exécutable qui existe sur le disque de boot, dans le
répertoire /boot. Son nom, qui n’est pas standardisé, est souvent vmlinuz.
Le noyau assure la gestion des ressources physiques et logiques du système
informatique :
• La gestion des périphériques qui est réalisée par les pilotes de périphériques
intégrés au noyau.
• La gestion des fichiers qui s’appuie sur la couche VFS (« Virtual File System »).
VFS permet une vision uniforme des systèmes de fichiers, même si chaque
système de fichiers possède son propre pilote.
• La gestion des processus qui est prise en charge par l’ordonnanceur (« process
scheduler ») qui assure l’allocation du ou des processeurs aux processus qu’il
contrôle. Dans un mode de fonctionnement en temps partagé, cas le plus fréquent
pour les systèmes Linux, le partage du processeur vise à l’équité entre les
processus.
12-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-3
Module 12 : Le noyau
Historique du noyau
Historique du noyau
La naissance
En septembre 1991, Linus Torvald livre dans le forum Internet comp.os.minix sa
première version de Linux, la version 0.01. Elle s’inspire du système Minix, tout en
étant totalement originale. Minix lui même correspond au portage, pour la plate-forme
Intel 8086, du système Unix version 7.
Cette première version est faite pour le seul processeur Intel 386, qui supporte le mode
protégé. Cela permet aux différents processus de s’exécuter indépendamment les uns
des autres, chacun occupant un espace virtuel différent. Un processus ne peut faire
échouer un autre processus, ni faire échouer le noyau lui-même. Avec Linux 0.01, le
monde libre possède enfin un système d’exploitation destiné à être autre chose qu’un
jouet. Cette première version utilise les outils GNU : le bash, le compilateur GCC, ce
qui permet à terme le portage des logiciels libres écrits en C et conçus pour Unix.
Contrairement au système d’exploitation Hurd, qui à l’époque était encore dans les
limbes (et qui l’est toujours), Linux est un noyau monolithique. Il n’est pas basé sur
des micro-noyaux. Un micro-noyau n’est responsable que de l’ordonnancement des
tâches pour un ou plusieurs processeurs. Un système multi-processeurs peut comporter
plusieurs micro-noyaux. Les autres fonctions du système d’exploitation (la gestion des
entrées-sorties, la gestion des systèmes de fichiers ...) sont réalisées par des tâches
concurrentes. Inversement, un noyau monolithique accomplit l’ensemble des
opérations demandées par les processus, l’ordonnancement bien sûr, mais aussi la
gestion des entrées-sorties et la gestion de fichiers. La plupart des experts de l’époque,
dont A. Tannebaum (le père de Minix), ont critiqué Linus Torvald de ce choix. On
peut signaler que le système Windows a suivi une voie identique à Linux en optant
également pour un système d’exploitation monolithique.
Linus Torvald, après son postage de la version 0.01, reçoit par retour du courrier une
foules de commentaires, de résultat de tests, de découvertes de bugs. En octobre 1991,
il livre sa deuxième version, la version 0.02. Elle supporte maintenant tout un
ensemble d’outils GNU : sed, make, compress, ... Parmi les premiers supporters, un
12-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
dénommé Alan Cox, devient rapidement l’un des principaux développeurs de Linux,
outre Linus lui-même.
La version 0.03 apparaît quelques semaines plus tard. En décembre, on en est déjà à la
version 0.10. Elle est en encore très rudimentaire, Il n’y a pas de « login ». On obtient
le prompt du bash à la fin du boot. Les périphériques supportés sont peu nombreux,
disques durs de type AT et clavier qwerty. Il faut attendre la version 0.11 pour la
gestion du lecteur de disquette ! Après la version 0.12 qui introduit le paging, on saute
directement à la version 0.96. On a ensuite les versions 0.97, 0.98 et .099.
La version 2.0
Cette version de juin 1996 est la première qui supporte plusieurs architectures : Digital
et ensuite SPARC. Les premières versions ne fonctionnaient que sur les processeurs
Intel x86. Linux supporte les systèmes multiprocesseurs (jusqu’à 4 processeurs en
SMP). Le noyau devient modulaire. Ce dernier point est très important. Jusqu’à cette
version l’adjonction de nouveaux pilotes nécessitait la recompilation du noyau. Cette
opération (cf. Chapitre : La construction d’un nouveau noyau) n’est pas une opération
simple et nécessite le redémarrage du système. Des erreurs de configuration entraînent
immanquablement des crashs systèmes. Avec un noyau modulaire, l’ajout et le retrait
de pilotes peuvent être réalisés de manière dynamique, par exemple lors de l’accès au
périphérique (cf. Chapitre : Les modules).
La version 2.2
Cette version date de janvier 1999. Elle va de paire avec la notoriété croissante de
Linux qui compte déjà plus de 10 millions d’utilisateurs ! La version 2.2 apporte les
améliorations suivantes :
• Support complet des processeurs suivants : x86 , SPARC, Ultra, Alpha, m68k
et PowerPC .
• Accès au CD-ROM via la norme ATAPI.
• Support audio modulaire.
• Intégration des pilotes « frame-buffers » comme base de tout le système
graphique.
• Support de nouveaux systèmes de fichiers : Amiga FFS, Macintosh HFS,
ROM Filesystem, UFS, CODA, OS/2, HPFS, NTFS...
La version 2.4
La version 2.4 voit le jour en janvier 2001. Avec elle, Le système Linux conforte sa
place de leader des systèmes d’exploitation libres. Il s’affirme comme système
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-5
Module 12 : Le noyau
12-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Références
Internet : http://www.kernel.org/
http://www.linux10.org/history/
http://features.linuxtoday.com/search.php3?author=Joe:Pranevich
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-7
Module 12 : Le noyau
12-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-9
Module 12 : Le noyau
12-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-11
Module 12 : Le noyau
3. Configurer le noyau
C’est l’étape la plus importante. Elle consiste à créer le fichier /usr/src/linux/.config
qui contient le paramétrage du noyau, principalement la liste des pilotes à intégrer au
nouveau noyau, ainsi que le mode d’insertion des pilotes, statique ou dynamique.
Dans le cas d’une insertion statique, le pilote est une composante présente en
permanence dans le noyau. Dans le cas d’une insertion dynamique, le pilote se
présente sous forme d’un module qui peut être chargé dynamiquement.
La configuration du noyau est réalisée par la commande make , le standard utilisé
dans les installations et les compilations de logiciels sous UNIX. La commande make
s’appuie sur un fichier de commandes, appelé Makefile. Ce fichier est situé, par
défaut, dans le répertoire courant. Il décrit toutes les tâches à réaliser pour atteindre un
but (« target »). La commande make n’exécute que les commandes qui s’appliquent
aux fichiers modifiés depuis sa dernière exécution.
Le fichier Makefile du noyau Linux donne trois modes de configuration selon
l’argument fourni à l’exécution de la commande make, le mode ligne de commande,
le mode menu dans un terminal texte ou le mode graphique sous forme de fenêtres
X-Window.
Vous devez d’abord aller dans le répertoire /usr/src/linux où se trouve le « Makefile »,
puis exécutez la commande make en indiquant le mode choisi :
• Mode X-Window
# make xconfig
• Mode menu texte
# make menuconfig
• Mode ligne de commande
# make config
Quelle que soit la forme utilisée, une copie de sauvegarde de l’ancienne configuration
du noyau est créée sous le nom .config.old. Il est préférable d’effectuer sa propre copie
si l’on recommence plusieurs fois cette opération, cela sera généralement le cas! Il est
important également de noter que la prochaine configuration du noyau s’appuiera sur
la précédente.
Dans l’étape de configuration, vous êtes invité, pour chaque pilote, système de fichiers
ou autres composants du noyau, à indiquer s’il doit être pris en compte ou pas. Pour
cela, vous choisirez :
y (yes) Le composant est intégré au noyau (insertion statique).
n (no) Le composant n’est pas pris en compte.
m (Module) Le composant est géré en tant que module (insertion dynamique).
En annexe, il est présenté un exemple d’utilisation commenté de « menu config ». Il
faut remarquer que certains choix nécessitent un grand niveau d’expertise. Un
débutant se contentera le plus souvent de compiler un noyau plus récent que le sien,
mais sans changer les options proposées.
Noyau monolithique ou noyau modulaire
Le choix du type de noyau, monolithique ou modulaire, est parmi les plus importants
de la phase de configuration. Dans le cas d’un noyau monolithique, tous les pilotes
sont inclus en permanence dans le noyau. Dans un noyau modulaire, les pilotes, s’ils
12-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
ne sont pas inclus dans le noyau, sont compilés sous forme de module et chargés à la
demande. C’est le paramètre CONFIG_MODULE qui fixe le choix.
4. Compiler le noyau
C’est l’étape la plus longue. Elle comporte plusieurs phases, la création d’un fichier de
dépendances, le nettoyage des anciens fichiers (*.o) et la compilation proprement dite.
# make dep
# make clean
# make bzImage
Il est possible d’enchaîner ces actions :
# make dep clean bzImage > result.txt
A l’issue de ces opérations, le nouveau noyau, de nom bzImage, est créé dans le
répertoire /usr/src/linux/arch/i386/boot.
Au lieu d’utiliser « make bzImage », on peut exécuter « make bzdisk ». Cette dernière
forme copie le noyau bzImage sur une disquette. Il est fort possible de le faire
directement :
# cp /usr/src/linux/arch/i386/boot/bzImage /dev/fd0
Cette opération est très pratique pour tester un nouveau noyau sans modifier, via lilo,
la configuration de démarrage.
Remarques
On peut également exécuter « make zImage » au lieu de « make bzImage ». C’est
d'ailleurs l'ancienne pratique. Elle permet de construire un noyau non compressé, de
nom /usr/src/linux/vmlinux. Le noyau résultant est très souvent trop gros, et il ne peut
être démarré par lilo. Le fichier est /usr/src/linux/vmlinux également créé par « make
bzImage ».
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-13
Module 12 : Le noyau
Le fichier System.map est un fichier ASCII qui contient les adresses des symboles
externes du noyau. Il est utilisé par l’application klogd qui enregistre les messages du
noyau.
image=/boot/vmlinuz-2.4.7-10
label=linux
root=/dev/hda2
read-only
other=/dev/hda1
label=win98
table=/dev/hda
Le fichier /etc/lilo.conf après les modifications :
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=500
image=/boot/vmlinuz-2.4.16 # Votre nouveau noyau
label=linux # Le label de votre nouveau noyau
root=/dev/hda2
read-only
image=/boot/vmlinuz-2.4.7-10.old # Votre ancien noyau
label=linux.old # Le label de votre ancien noyau
12-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
root=/dev/hda2
read-only
other=/dev/hda1
label=win98
table=/dev/hda
Il ne vous reste plus, à présent, qu’à exécuter la commande /sbin/lilo (cf. Module 7 :
L’arrêt et le démarrage) qui se charge de mettre à jour les fichiers binaires du
répertoire /boot, finalisant ainsi la construction de votre nouveau noyau.
#/sbin/lilo
Added linux *
Added linux.old
Added win98
8. Créer une disquette de démarrage
Cette opération permettra de démarrer sur le nouveau noyau dans le cas où le bloc de
démarrage du disque ou le noyau sont endommagés.
# mkbootdisk 2.4.16 # Si 2.4.16 est le numéro de version de votre noyau.
9. Arrêter et redémarrer votre système
Pour activer votre nouveau noyau, il faut arrêter et redémarrer votre ordinateur.
En cas de problème avec le nouveau noyau, il faut redémarrer votre ordinateur et à
l’invite « LILO boot : », saisir le label de votre ancien noyau « linux.old » (cf. Le
fichier /etc/lilo.conf).
Il ne vous reste plus qu’à recommencer toutes les étapes de la construction d’un
nouveau noyau en évitant les erreurs commises précédemment.
Références
/usr/src/linux/README
Contient une vue globale de la compilation du noyau.
/usr/src/linux/Documentation/*
Ce répertoire est une mine d’informations, citons simplement les fichiers suivant :
Configure.help Explique en détail chaque élément du make config.
modules.txt Traite des modules.
Kernel-HOWTO Explique en détail comment compiler le noyau.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-15
Module 12 : Le noyau
12-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Les modules
Les modules
Les commandes
insmod Charge un module
lsmod Liste les modules
rmmod Retire un module
depmod Établit les dépendances entre les modules
modprobe Charge ou retire un module et ses dépendances
Les fichiers
/etc/conf.modules ou /etc/modules.conf
Fichier de configuration pour kerneld et modprobe
/lib/modules/*/modules.dep
Fichier de dépendances entre modules
Introduction
Depuis la version 2.0 du noyau Linux, certains pilotes comme les pilotes SCSI ou les
pilotes de cartes réseaux ne sont plus nécessairement intégrés au noyau par une édition
de liens préalable. Pour que les modifications résultant de cette édition de liens soient
prises en compte, il est nécessaire de procéder à l’arrêt et au redémarrage du système
Linux. Les pilotes peuvent être chargés puis liés (« linkés ») dynamiquement au noyau
en cours d’exécution et retirés automatiquement s’il n’y a plus de processus qui les
utilisent.
Le code objet compilé de ces pilotes est appelé un module. Un module ne fait pas
partie du code du noyau Linux, initialement chargé en mémoire, mais se trouve dans
des fichiers compilés, dont l’extension est « .o ». Ils sont regroupés, par type de
pilotes, dans le répertoire /lib/modules/numéro_de_version_du_noyau. On y trouve un
sous-répertoire par type de modules. Ainsi, le sous-répertoire net contient les pilotes
du réseau et le sous-répertoire scsi contient les pilotes des périphériques SCSI.
# ls -l /lib/modules/2.4.7-10
total 36
drwxr-xr-x 2 root root 1024 Sep 23 18:10 block
drwxr-xr-x 2 root root 1024 Sep 23 18:10 cdrom
drwxr-xr-x 2 root root 1024 Sep 23 18:10 fs
drwxr-xr-x 2 root root 1024 Sep 23 18:10 ipv4
drwxr-xr-x 2 root root 3072 Sep 23 18:10 misc
-rw-r--r-- 1 root root 23312 Nov 9 10:05 modules.dep
drwxr-xr-x 2 root root 2048 Sep 23 18:10 net
drwxr-xr-x 2 root root 1024 Sep 23 18:10 pcmcia
drwxr-xr-x 2 root root 1024 Sep 23 18:10 scsi
drwxr-xr-x 2 root root 1024 Sep 23 18:10 video
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-17
Module 12 : Le noyau
Remarque
L’usage de modules est un paramètre du noyau, qui n’est pas obligatoire, bien que
fortement recommandé (cf. Module 12 : Le noyau).
Le concept de modules présente bien des avantages pour un parc de machines de
même architecture matérielle, par exemple des PC à base de processeurs INTEL,
AMD ou CYRIX :
• Le déploiement du système Linux est facilité pour des configurations matérielles
différentes. Le système nécessite un noyau minimum commun et des modules
spécifiques pour les pilotes propres à chacun des ordinateurs. La même disquette
de boot, contenant un noyau minimal, peut démarrer n'importe quelle machine afin
de pouvoir réparer un système endommagé.
• Il n’y a plus lieu de reconstruire un nouveau noyau et de redémarrer le système en
cas de changement de pilote ou de périphérique. Ceci ne s’applique pas seulement
aux pilotes fournis avec la distribution Linux, mais également aux pilotes que l'on
acquiert ou que l’on écrit soi-même et que l’on peut ainsi tester.
• L’utilisation de la mémoire est optimisée. Le noyau reste en permanence et en
totalité en mémoire. Il ne fait jamais l’objet d’échange entre la mémoire et la zone
de swap. Les pilotes intégrés dans le noyau sont en mémoire dès le chargement du
noyau et encombrent la mémoire inutilement même s’ils ne sont pas utilisés, alors
que les modules sont chargés dynamiquement selon les besoins.
12-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
La commande rmmod
La commande rmmod permet de retirer un module si ce dernier n’est pas utilisé par
un processus ou s’il n’est pas requis par d’autres modules chargés.
Syntaxe
rmmod nom_de_module
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-19
Module 12 : Le noyau
Exemple
Retrait du pilote de la carte 3com précédemment chargé.
# rmmod 3c509 # Ou rmmod 3c509.o
La commande depmod
La principale fonction de la commande depmod, qui est exécutée depuis le script de
démarrage /etc/rc.d/rc.sysinit, est de créer, à chaque démarrage du système, le fichier
/lib/modules/*/modules.dep. Il décrit principalement les chemins de recherche des
modules ainsi que les dépendances.
/lib/modules/preferred/misc/v_midi.o: /lib/modules/preferred/misc/sound.o
/lib/modules/preferred/misc/sb.o: /lib/modules/preferred/misc/soundcore.o \
/lib/modules/preferred/misc/uart401.o /lib/modules/preferred/misc/sound.o
Remarque
La commande depmod -a n’est exécutée que si le noyau supporte la gestion des
modules (cf. Module 12 : Le noyau).
La commande modprobe
A la façon des Makefile, bien connus dans le monde UNIX, la commande modprobe
permet d’automatiser la gestion des modules, le chargement ou le retrait d’un ou de
plusieurs modules et des modules dépendants sur la base des informations contenues
dans le fichier modules.dep.
Syntaxe
Charger un module et tous ses modules requis :
modprobe nom_de_module [ paramètre=valeur ...]
Retirer un module et toutes ses dépendances, si elles ne sont pas requises par d’autres
modules :
modprobe -r nom_de_module
Lister tous les modules d’un type donné. Le type est en fait le nom du répertoire qui
contient les modules, net par exemple :
modprobe -l -t type
Charger une liste de modules d’un type donné :
modprobe -a -t type modules_a_charger
Remarque
Les jokers fichiers sont autorisés dans l’expression modules_a_charger.
Afficher la configuration courante :
modprobe –c
12-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
# unzip pctel.zip
Archive: pctel.zip
inflating: src/module/Makefile
inflating: src/module/ptmodule.c
inflating: lib/control.a
inflating: lib/dsp.a
inflating: lib/hal.a
inflating: lib/ptserial.a
inflating: lib/pctel.o
2. Il faut vérifier que le module qui vient d’être téléchargé n’est pas incompatible
avec la version actuelle du noyau. Pour cela, on tente d’insérer le module, sous sa
forme objet, tel qu’on vient de le récupérer.
# cd lib
# insmod pctel.o # on tente de le charger
pctel.o: kernel-module version mismatch
pctel.o was compiled for kernel version 2.2.5
while this kernel is version 2.4.7-10.
3. En cas de conflit de version, il faut le recompiler.
# cd ../src/module # il faut le compiler
# ls
Makefile ptmodule.c
# make
gcc -D__KERNEL__ -DMODULE -Wall -O -fomit-frame-pointer -I../../include
-c -ptmodule.o ptmodule.c
rm -f ../../lib/pctel.o
ld -r -o ../../lib/pctel.o ptmodule.o ../../lib/control.a ../../lib/hal.a ../../lib/dsp.a
./../lib/ptserial.a
#
4. Vérification des modules actuellement chargés.
# lsmod
Module Size Used by
lockd 31592 1 (autoclean)
sunrpc 53540 1 (autoclean) [lockd]
ppp 20268 0 (autoclean) (unused)
slhc 4568 0 (autoclean) [ppp]
ne 6768 1 (autoclean)
...
5. Insertion du module, nouvellement compilé.
# cd ../../lib
# insmod pctel.o
# lsmod
Module Size Used by
pctel 681528 0 (unused)
lockd 31592 1 (autoclean)
sunrpc 53540 1 (autoclean) [lockd]
ppp 20268 0 (autoclean) (unused)
slhc 4568 0 (autoclean) [ppp]
ne 6768 1 (autoclean)
...
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-21
Module 12 : Le noyau
La première ligne définit sound comme alias du pilote sb (fichier sb.o), le pilote d’une
carte Sound Blaster.
La deuxième ligne définit midi comme alias pour le pilote opl3 (fichier opl3.o).
Les deux dernières lignes définissent les paramètres de configuration matérielle des
pilotes.
Remarque
Les lignes du fichier /etc/conf.modules sont traitées par un shell, ce qui autorise
l’utilisation des caractères spéciaux du shell (cf. L’ouvrage : UNIX Shell).
Les lignes blanches et le texte qui suit le caractère « # » sont considérés comme des
commentaires et ignorés.
Le caractère « \ », en fin de ligne, indique que la configuration se poursuit sur la ligne
suivante.
12-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-23
Module 12 : Le noyau
# more /proc/ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
…
00a0-00bf : pic2
fc80-fcff : eth0
12-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-25
Module 12 : Le noyau
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
12-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
La commande sysctl
La commande sysctl permet d’afficher la valeur de ces paramètres et, quand cela est
possible, d’en modifier la valeur dynamiquement. Pour désigner un paramètre, on
utilise des variables dont le nom est construit de la manière suivante :
type_de_paramètre.Nom_de_variable où nom_de_variable est précisément le nom du
fichier paramètre. La variable fs.file-max désigne ainsi le paramètre Nombre
maximum de fichiers ouverts (cf. fichier /proc/sys/fs/file-max).
Syntaxe
sysctl [-n] variable...
sysctl [-n] -w variable=valeur...
sysctl [-n] -p <Nom_de_fichier>
sysctl [-n] -a
sysctl [-n] -A
Les options.
-a Affiche la valeur de toutes les variables.
-A Identique à l'option « a ».
-n Supprime l’affichage du nom de variable.
-w Permet de modifier une variable.
-p Nom_de_fichier .
Utilise ce fichier de configuration au lieu du fichier, par défaut, /etc/sysctl.conf.
Exemples
# cd /proc/sys
# ls
debug dev fs kernel net proc sunrpc vm
# ls fs
dentry-state dquot-nr file-nr inode-nr super-max
dquot-max file-max inode-max inode-state super-nr
# sysctl –a
...
fs.file-max = 4096
fs.file-nr = 449 19 4096
fs.inode-max = 8192
...
# sysctl fs.file-max
fs.file-max = 4096
# sysctl -w fs.file-max=8192
fs.file-max = 8192
# echo "fs.file-max=8192" >> /etc/sysctl.conf # Le changement est permanent
# cat /etc/sysctl.conf
...
# Disables automatic defragmentation (needed for masquerading, LVS)
net.ipv4.ip_always_defrag = 0
# Disables the magic-sysrq key
kernel.sysrq = 0
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-27
Module 12 : Le noyau
fs.file-max = 8192
...
Remarque
La modification de ces paramètres doit être réalisée en connaissance de cause pour ne
pas perturber le bon fonctionnement du système et dégrader les performances.
Si la valeur d’une variable contient des caractères spéciaux du shell, vous devez les
protéger afin d’interdire leur interprétation par le shell (cf. Le livre Shell - mêmes
auteurs et même éditeur).
Le fichier de configuration /etc/sysctl.conf
Si vous souhaitez que les changements soient permanents, il vous suffit de définir les
variables concernées dans le fichier /etc/sysctl.conf.
12-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Les IPC
Les IPC
Les IPC
IPC
messages
Kernel Sémaphores
Mémoires
partagées
Introduction
Les IPC (« Inter Process Communication ») sont des mécanismes de synchronisation
de processus et d’échange ou de partage de données entre processus. Leur nombre et
leurs attributs sont des paramètres du noyau. La modification des paramètres associés
aux IPC (« Inter Process Communication ») n’est pas simple. Il est souhaitable que les
logiciels d’application documentent simplement l’utilisation des ressources système
(fichiers, processus et IPC).
Il existe trois catégories d’IPCs :
• Les sémaphores pour la synchronisation.
• Les files d’attente de messages pour l’échange de données avec synchronisation.
• Les segments de mémoire partagée pour le partage d’informations.
Une ressource de type IPC est identifiée par un identificateur ou une clé. C’est
l’identificateur qui est le plus souvent utilisé. Deux commandes existent pour
visualiser les IPC et leurs attributs, et les détruire : ipcs et ipcrm.
La commande ipcs
Syntaxe
ipcs [ -qmsctal]
Description
La commande ipcs affiche des informations sur les ressources IPC existantes.
-l Affiche les valeurs maximum pour les ressources IPC.
-q Informations sur les files d’attente de messages.
-m Informations sur les segments de mémoire partagée.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-29
Module 12 : Le noyau
La commande ipcrm
Syntaxe
ipcrm [msg | shm | sem ] id
Description
La commande ipcrm supprime une ressource de type IPC. L’option indique le type,
avec comme argument son « ID ».
Exemple
$ipcs
----- Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 0 nobody 600 46084 11 dest
…
12-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
$ipcrm shm 0
Les paramètres des IPC
Les paramètres des IPC sont définis dans des fichiers d’en-tête utilisés à la
compilation du noyau. L’administrateur qui souhaite modifier les valeurs des
paramètres des IPC est confronté, sous Linux, à deux problèmes, la connaissance et la
compréhension des IPC et celle de la structure d’un programme écrit en langage C.
Les fichiers d’en-tête sont dans le répertoire /usr/src/linux-2.4.7-10/include/linux.
Les quelques lignes qui suivent sont extraites du fichier msg.h et représentent la
définition de quelques paramètres des files d’attente de messages.
#define MSGMNI 128 /* <= 1K */ /* max # of msg queue identifiers */
#define MSGMAX 4056 /* <= 4056 */ /* max size of message (bytes) */
#define MSGMNB 16384 /* ? */ /* default max size of a message queue */
/* unused */
#define MSGPOOL (MSGMNI*MSGMNB/1024) /* size in kilobytes of message pool */
#define MSGTQL MSGMNB /* number of system message headers */
#define MSGMAP MSGMNB /* number of entries in message map */
Les fichiers de définition des paramètres des IPC sont msg.h, shm.h et sem.h pour les
files d’attente de messages, les zones de mémoire partagée et les sémaphores. Le
lecteur trouve, dans le tableau qui suit, la liste des paramètres des IPC.
Paramètres des files d’attente de messages Identificateur
Nombre d’entrées de la table de gestion des segments de messages MSGMAP
Longueur maximum d’un message MSGMAX
Longueur maximum d’une file MSGMNB
Nombre maximum de files dans le système MSGMNI
Taille, en octets, d’un segment de message.
Un message est stocké dans un ensemble contigu de segments
MSGSSZ * MSGSEG <= 128 Ko MSGSSZ
Nombre d’en-têtes de messages dans le système
(nombre maximum de messages en suspens) MSGQTL
Nombre de segments de message dans le système MSGSEG
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-31
Module 12 : Le noyau
Commandes
z uname Affiche la version de l’OS, son nom, ...
z dmesg Affiche les données du démarrage
z ident Affiche les versions des logiciels
Fichier
z /var/log/messages Contient les messages du démarrage
Il existe des commandes qui permettent d’obtenir des informations utiles sur le
système. A défaut d’être fondamentales pour l’administration, elles participent
souvent à la connaissance globale du système que l’on administre.
uname
La commande uname permet d’obtenir le nom du système Linux, le nom d’hôte de
l’ordinateur (son nom réseau), la version du système et le type de licence.
$ uname
Linux
$ uname –n
aurore.linux
$ uname –a
Linux aurore1.goubet.fr 2.4.7-10 #1 Thu Sep 6 17:27:27 EDT 2001 i686 unknown
dmesg
La commande dmesg visualise les informations affichées à la console maîtresse lors
du démarrage du système Linux.
$ dmesg
:4b:2a:06:97, IRQ 9
8K byte-wide RAM 5:3 Rx:Tx split, autoselect/10baseT interface.
Enabling bus-master transmits and whole-frame receives.
3c59x.c:v0.99 4/7/98 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html
loading device 'eth0'...
…
12-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
ident
La commande ident affiche les commentaires de type RCS extraits du fichier auquel
on applique la commande. RCS est un système de gestion de versions de logiciels
développés, à l’origine, dans UNIX BSD.
# ident lsmod
lsmod:
$Id: lsmod.c,v 1.1 1997/09/10 22:14:48 rth Exp $
$Id: module.h,v 1.4 1998/05/20 15:07:49 jj Exp $
$Id: util.h,v 1.1 1997/09/10 22:13:04 rth Exp $
$Id: logger.h,v 1.1 1997/09/10 22:14:47 rth Exp $
$Id: logger.c,v 1.1 1997/09/10 22:14:47 rth Exp $
$Id: util.h,v 1.1 1997/09/10 22:13:04 rth Exp $
$Id: sys_qm.c,v 1.2 1997/09/10 22:28:54 rth Exp $
$Id: module.h,v 1.4 1998/05/20 15:07:49 jj Exp $
$Id: xmalloc.c,v 1.1 1997/09/10 22:22:37 rth Exp $
$Id: util.h,v 1.1 1997/09/10 22:13:04 rth Exp $
$Id: xrealloc.c,v 1.1 1997/09/10 22:22:38 rth Exp $
$Id: util.h,v 1.1 1997/09/10 22:13:04 rth Exp $
Le fichier /var/log/messages
# more messages
Sep 23 21:44:34 linux syslogd 1.3-3: restart.
Sep 23 21:44:34 linux syslog: syslogd startup succeeded
Sep 23 21:44:34 linux syslog: klogd startup succeeded
Sep 23 21:44:34 linux kernel: klogd 1.3-3, log source = /proc/kmsg started.
Sep 23 21:44:34 linux kernel: Inspecting /boot/System.map-2.2.5-15
Sep 23 21:44:36 linux atd: atd startup succeeded
Sep 23 21:44:37 linux kernel: Loaded 7132 symbols from /boot/System.map-2.2.5-15
…
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-33
Module 12 : Le noyau
Le service « syslog »
La journalisation des messages d’erreurs: syslogd
$ more /etc/syslog.conf
*.err;auth.notice /dev/console
*.err;daemon,auth.notice /var/log/messages
lpr.debug root
*.emerg *
1 2 3
Sous-système Niveau Destinataire
(kern, mail, (emerg, (fichier, périphérique,
lpr, daemon, alert, crit, e-mail, *: tous les
auth, *: tous err, warn, utilisateurs connectés)
les sous- notice, info,
systèmes) debug,
none)
Introduction
Le démon syslogd reçoit des messages d’erreur émis par le noyau ou les démons de
certains services (les sous-systèmes). Le fichier /etc/syslog.conf permet à
l’administrateur de décider de la destination des messages pour chaque sous-système
et selon le degré de sévérité de l’erreur.
Sur chaque ligne du fichier /etc/syslog.conf qui n’est pas un commentaire, on
indique, comme premier champ, une liste des sous-systèmes avec, pour chacun d’entre
eux, le niveau de sévérité du message. Le second champ indique la destination du
message.
La structure d’une ligne est donc formellement définie de la manière suivante :
Priorité [ ; priorité … ] action
Un champ priorité est de la forme :
Sous-système[, sous-système …] .niveau
Le caractère * utilisé pour désigner un sous-système signifie tous les sous-systèmes.
Le caractère * comme niveau signifie tous les niveaux.
Le champ action désigne la destination du message.
La première ligne de l’exemple du transparent montre que les messages d’erreur de
tous les sous-systèmes et de notification du sous-système d’authentification sont
affichés sur la console maîtresse. La seconde ligne nous dit que ces messages ainsi que
les messages de notification du sous-système daemon sont dirigés vers le fichier
/var/log/messages. La troisième ligne nous dit que les messages de type debug du
sous-système lpr sont envoyés à root. La quatrième ligne nous dit que les messages
urgents de tous les sous-systèmes sont envoyés à tous les utilisateurs.
12-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Les sous-systèmes
Les sous-systèmes possibles sont :
Sous-système Signification
auth, authpriv Le service de sécurité et d’authentification. Le terme « auth » est
obsolète, il faut maintenant utiliser « authpriv ».
cron Le service cron.
daemon Les démons du système.
kern Le noyau.
lpr Le service d’impression.
mail Le service de messagerie.
news Le sous-système réseau.
syslog Le démon syslog lui-même.
user Messages envoyés par les processus des utilisateurs.
uucp Le sous-système uucp (« Unix to Unix CoPy »).
local0 à local7 huit possibilités réservées à un usage local.
Remarque
Un niveau de sévérité englobe les niveaux de sévérité supérieurs, ainsi le niveau err
englobe les niveaux crit, alert, et emerg.
Les messages sont écrits par le noyau dans /dev/error et par les sous-systèmes dans le
tube nommé /dev/syslog.
Des messages distants sont reçus sur la « socket » liée au port 514.
Le champ action peut être :
• Un fichier.
• Un hôte distant, le champ a alors la forme @hôte.
Le démon syslogd de l’hôte distant doit avoir été démarré avec l’option « -r » pour
accepter les messages entrants.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-35
Module 12 : Le noyau
12-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 12 : Le noyau
Atelier 12 : Le noyau
Atelier 11 : Le noyau
Objectifs :
Savoir reconstruire un noyau pour
ajouter un pilote ou modifier une
fonctionnalité du système
Savoir rechercher les pilotes et les
périphériques présents sur le
système
Savoir afficher des informations
concernant le système
Durée minimum : 35 minutes.
Exercice n°1
Quelle est la version actuelle de votre noyau ?
Exercice n°2
Quelles sont les caractéristiques de votre processeur ?
Exercice n°3
Quel est le nombre maximum d’inodes qu’il est possible d’utiliser simultanément ?
Portez ce paramètre à 8192.
Exercice n°4
Affichez les paramètres des sémaphores de votre système Linux.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 12-37
Module 12 : Le noyau
Exercice n°6
Utilisez la commande logger pour copier le message « serveur xxx a démarré » sur le
fichier log de votre système. Lisez ensuite le message généré.
Exercice n°7
Listez les périphériques et leur port d’entrées-sorties.
Exercice n°8
Quels sont tous les modules qui sont chargés au démarrage de votre système ?
Exercice n°9
Listez tous les modules chargés de votre système.
Donnez deux solutions.
Exercice n°10
Ajoutez le module SCSI sg (ou un autre si vous l’utilisez déjà).
Affichez à nouveau les modules.
Retirez le module sg.
Affichez à nouveau les modules.
12-38 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 13 : Les paquetages
• Les paquetages
(« packages »)
• La commande en mode
texte rpm
• La commande en mode
graphique gnorpm
13Module 13 : Les
paquetages
Objectifs
Après la lecture de ce module, le lecteur connaît les caractéristiques des paquetages. Il
sait les installer et les retirer, en totalité ou partiellement.
Contenu
Introduction à la gestion des paquetages
La commande rpm
La commande gnorpm
Références
HOWTO : RPM-HOWTO
Le manuel : rpm(8)
Internet : http://rpmfind.net
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 13-1
Module 13 : Les paquetages
Les
Lescommandes
commandes
La commande rpm
La commande principale qui permet de
- Créer des paquetages
- D’installer ou de retirer un paquetage
- D’afficher des informations sur les paquetages
La commande gnorpm
L’interface graphique de la commande rpm
La commande rpm2cpio
Convertit un fichier rpm au format cpio
Le RPM (« Red Hat Package Manager ») est un système qui permet de gérer
l’installation ou la désinstallation d’applications fournies sous forme de paquetages
(« package »). Ce système, bien que créé par la société Red Hat, est un logiciel ouvert
sous licence GPL (cf. http://www.rpm.org).
Un paquetage se présente sous forme d’un fichier au format RPM. Ce fichier a
l’extension « .rpm ». Il contient les fichiers à installer, mais aussi des informations
générales sur le paquetage, comme la version, la description, et le script d’installation
du paquetage.
La gestion des paquetages est principalement réalisée par la commande rpm. La
commande gnorpm est une interface graphique à la commande rpm. Elle en simplifie
l’usage par la convivialité du mode graphique. Elle ne peut évidemment être exécutée
que dans un environnement X (cf. Module 16 : X-Window).
La commande rpm2cpio convertit un fichier au format rpm en un fichier au format
cpio.
Bien que beaucoup de distributions Linux utilisent les paquetages RPM, il existe un
autre logiciel de gestion de paquetages, très performant, « apt-get » fourni dans la
distribution Debian.
13-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 13 : Les paquetages
La commande rpm
La commande rpm
La
Lamise
miseen
enœuvre
œuvrede
derpm
rpm
Installer un paquetage
# rpm -i le_paquetage.rpm
Retirer un paquetage
# rpm -e le_paquetage
Afficher les paquetages installés
# rpm -qa
Afficher les caractéristiques d’un paquetage
# rpm -qpi le_paquetage.rpm
Afficher les composants d’un paquetage
# rpm -qpl le_paquetage.rpm
La commande rpm
La commande rpm gère les paquetages au format rpm.
Syntaxe
rpm –option_principale [ options_secondaires] [le_paquetage]
Options
Le tableau qui suit donne la liste essentielle des options « option_principale » de
la commande rpm, hormis celles de construction de paquetage.
Option Description
-i Installe un paquetage.
-U Mise à jour d’un paquetage.
-e Désinstalle un paquetage.
-q Affiche des informations sur un paquetage. L’option
complémentaire « -p » permet de préciser le nom d’un
paquetage non installé. Le nom doit alors être fourni sous la
forme d’une URL pour FTP.
-V Vérifie un paquetage.
--version Affiche la version.
--help Affiche les options de la commande rpm.
--checking Vérifie la signature d’un paquetage.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 13-3
Module 13 : Les paquetages
Exemples
Remarque
Avant d’installer un paquetage de la distribution Red Hat, il faut monter le CD-ROM
d’installation sur le répertoire /mnt/cdrom. Les fichiers *.rpm se trouvent dans le
répertoire /RedHat/RPMS du CD-ROM.
Installer un paquetage.
# cd /mnt/cdrom/RedHat/RPMS # le répertoire où réside les paquetages
# ls *77*
compat-egcs-g77-5.2-1.0.3a.1.i386.rpm make-3.77-6.i386.rpm
egcs-g77-1.1.2-12.i386.rpm
# rpm -i egcs-g77-1.1.2-12.i386.rpm
13-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 13 : Les paquetages
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 13-5
Module 13 : Les paquetages
13-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 13 : Les paquetages
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 13-7
Module 13 : Les paquetages
La commande GnoRPM
La commande GnoRPM
La commande GnoRPM est une interface graphique conviviale pour la gestion des
paquetages.
L’écran principal affiche des boutons et des dossiers. Chaque dossier contient une
distribution, c’est-à-dire un ensemble cohérent de paquetages : développement,
jeux, …
13-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 13 : Les paquetages
Unselect
La commande Unselect permet de désélectionner des paquetages sélectionnés.
Uninstall
Cette commande désinstalle les paquetages sélectionnés.
Query
Cette commande permet d’obtenir la description des paquetages sélectionnés, la liste
de leurs composants et leurs attributs (nom, version, date, taille, vendeur,
distribution, …).
Verify
Cette commande compare les informations, notamment la taille et les droits, des
paquetages installés sélectionnés et des fichiers RPM.
Find
Cette commande recherche des paquetages selon différents critères.
Web Find
Cette commande recherche des paquetages sur le Web, via la commande rpmfind. Le
même site @ peut avoir plusieurs noms, http://rufus.w3.org/linux/RPM ou
http://rpmfind.net. Ce site contient un nombre très élevé de paquetages. Il faut
évidemment une liaison Internet.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 13-9
Module 13 : Les paquetages
Objectif :
Apprendre à gérer les paquetages de
Linux
Durée : 25 minutes.
Exercice n°1
Affichez les paquetages installés, combien sont-ils ?
Exercice n°2
Affichez les paquetages du CD-ROM d’installation, combien sont-ils ?
Exercice n°3
Affichez les informations du paquetage dont la commande bash fait partie.
Exercice n°4
Installez le paquetage « gnuchess ». Affichez sa description au préalable !
13-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
• Mémoire virtuelle,
« paging » et
« swapping »
• Diagnostics et remèdes
• La commande vmstat
• Automatiser la
surveillance
14Module 14 :
La gestion des
performances
Objectifs
Après la lecture de ce module, le lecteur sait quelles sont les principales ressources à
surveiller et comment, les commandes existantes et particulièrement la commande sar.
Contenu
Les ressources à surveiller
Panorama des commandes de surveillance du système
Surveiller le système avec la commande vmstat
Références
HOWTO : Benchmarking-HOWTO
Le manuel : vmstat8), uptime(8), top(8), ps(1)
Livre : System Performance Tuning
Internet : http://www.tunelinux.com
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-1
Module 14 : La gestion des performances
Pagination et swapping
Rappelons que les processeurs actuels fonctionnent avec des mécanismes de mémoire
virtuelle. L’espace adressable d’un processus est virtuel. Il représente un espace
logique supérieur en taille à l’espace physique adressable.
L’espace mémoire du processus (code, données et pile) est découpé en pages. La taille
d’une page est de quelques kilo-octets, souvent quatre. Quand le processeur doit
accéder à une donnée ou à une instruction, il en convertit l’adresse virtuelle en une
adresse physique. Pour cela, il divise l’adresse virtuelle par la taille de la page. Le
14-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
quotient lui fournit le numéro de la page et le reste, l’offset de la cellule mémoire dans
la page.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-3
Module 14 : La gestion des performances
vmstat
La commande vmstat affiche des statistiques sur les ressources du système, dont les
processus, la mémoire, l’activité du CPU. Le chapitre qui suit en donne une
présentation détaillée.
iostat
La commande iostat affiche des statistiques sur l’utilisation des disques.
uptime
La commande uptime affiche des statistiques sur la charge du système durant la
dernière, les cinq et les quinze dernières minutes.
# uptime
5:54pm up 36 min, 4 users, load average: 0.01, 0.05, 0.01
free
La commande affiche la quantité totale de mémoire vive et de swap ainsi que la
quantité de mémoire libre. Par défaut, les résultats sont affichés en Ko.
# free
total used free shared buffers cached
Mem: 63140 21648 41492 15836 1284 13940
-/+ buffers/cache: 6424 56716
Swap: 36284 0 36284
14-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
ps
La commande ps affiche des informations sur les processus. La commande ps de
Linux dispose de très nombreuses options et nous renvoyons le lecteur au manuel de la
commande. Les options « a », « u » et « x » utilisées dans l’exemple qui suit, ont la
signification suivante :
Option Description
a Affiche les processus des utilisateurs.
u Affiche le nom des utilisateurs et l’heure de début du processus.
x Affiche les processus détachés d’un terminal, donc les démons.
-e Affiche tous les processus.
-f Affiche de nombreuses informations sur les processus, dont le PPID,
c’est-à-dire le PID du processus père.
-u utilisateur Affiche les processus de l’utilisateur « utilisateur ».
s Affiche les signaux gérés par le processus.
v Affiche des informations sur l’utilisation de la mémoire virtuelle.
-H Montre la hiérarchie des processus.
# ps aux | head
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
bin 142 0.0 0.5 752 320 ? S 17:18 0:00 portmap
daemon 176 0.0 0.6 784 404 ? S 17:18 0:00 /usr/sbin/atd
jf 246 0.0 1.2 1248 820 3 S 17:18 0:00 -bash
jf 616 0.0 1.0 1200 648 3 S 17:48 0:00 sh
usr/X11R6/bin/sta
...
# ps -ef | tail –5
root 414 1 0 11:40 tty6 00:00:00 /sbin/mingetty tty6
root 416 1 0 11:40 ? 00:00:00 update (bdflush)
root 419 409 0 11:50 tty1 00:00:00 –bash
root 480 419 0 12:04 tty1 00:00:00 ps –ef
root 481 419 0 12:04 tty1 00:00:00 tail -5
pstree
La commande pstree affiche l’arbre des processus. L’arbre est construit d’après la
filiation des processus.
$ pstree
init-+-atd
|-2*[bash]
|-bash---startx---xinit-+-X
| `-sh-+-twm
| |-xclock
| `-xterm---bash---bash---ksh-+-pstree
| `-xterm---bash---xedit
|-crond
|-gpm
...
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-5
Module 14 : La gestion des performances
top
La commande top est un logiciel libre qui affiche en permanence des informations
générales sur les processus et les ressources. Par défaut les processus les plus
gourmands en temps de calcul sont placés en tête.
Syntaxe
top [ d delai]
où délai exprime la durée en secondes entre deux rafraîchissements d’écran.
Une fois la commande top démarrée, l’utilisateur dispose de commandes interactives
qu’il peut exécuter en saisissant une lettre pour indiquer la commande à exécuter.
Le tableau qui suit mentionne quelques-unes de ces commandes :
Commande Description
espace Rafraîchît immédiatement l’écran.
h Affiche une aide en ligne.
k Tue le processus dont on saisit ensuite le PID.
i N’affiche pas les zombies.
q Termine top.
M Affiche les processus en fonction de l’usage de la mémoire et pas de
celui du CPU.
14-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
w
La commande w affiche les processus des utilisateurs connectés.
$ w
5:59pm up 41 min, 5 users, load average: 0.02, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 5:18pm 10:38 0.06s 0.06s -bash
root tty2 5:18pm 20:45 0.10s 0.10s -bash
jf tty3 5:35pm 10:31 0.63s 0.03s sh
/usr/X11R6/bin/star
jf ttyp0 :0.0 5:49pm 0.00s 0.18s 0.01s w
jf ttyp1 :0.0 5:57pm 2:15 0.11s 0.02s bash
time
La commande time affiche le temps CPU consommé par un processus :
• Le temps réel écoulé entre sa création et sa mort.
• Le temps consommé pour exécuter des instructions en mode « user », les
instructions du processus, les calculs par exemple.
• Le temps consommé pour exécuter des instructions en mode « kernel », les
primitives du noyau.
La commande time de Linux affiche d’autres informations sur l’utilisation de la
mémoire.
$ time cal 12 1999
December 1999
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
0.01user 0.02system 0:00.03elapsed 90%CPU
(0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (83major+17minor)pagefaults 0swaps
La somme de « user » et de « system » est inférieure ou égale à « elapsed ».
netstat
La commande netstat affiche des informations sur l’utilisation du réseau. Cette
commande est développée dans les manuels qui traitent de TCP/IP. La commande
netstat possède de nombreuses options, parmi lesquelles :
-a Affiche l’état des sockets.
-i Affiche l’état des interfaces configurées sur le système.
-n Affiche les numéros de port, de réseau et les adresses.
-s Affiche les statistiques sur les protocoles.
-r Affiche les tables de routage.
sar
La commande sar produit des rapports sur l’utilisation des ressources du système.
Remarque
Les commandes sar et iostat sont disponibles dans le paquetage RedHat systat-3.2.4-
3.i386.rpm.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-7
Module 14 : La gestion des performances
Surveillance
Surveillancedes
desressources
ressourcesavec
avecla
lacommande
commandesar
sar
Introduction
La commande sar produit des rapports sur l’utilisation des ressources du système. Les
options de la commande permettent de préciser les ressources à surveiller. Il existe
deux stratégies de mise en œuvre de la commande :
1. Définir sa propre politique de surveillance en intégrant les demandes
d’exécution de la commande sar dans la «crontab » de root, en redirigeant les
résultats dans des journaux de bord.
2. Utiliser le service de surveillance des processus mis en œuvre dans les scripts
sa1 et sa2, activés eux aussi par une « crontab ».Le script sa1 exécute la commande
sadc qui collecte les informations et les écrit dans le fichier journalier, au format
binaire, /var/log/sa/sa<jj>, où <jj> désigne le jour du mois (sa12 pour le douzième
jour).
Le script sa2 exécute la commande sar pour produire quotidiennement les données
dans un fichier au format texte /var/log/sa/sar<jj>.
Exemple de table « cron »
#
# activity reports every 10 minutes everyday.
*/20 8-19 * * * /usr/lib/sa/sa1 600 6 &
#
# Activity reports every an hour on Saturday and Sunday.
0 * * * 0,6 /usr/lib/sa/sa1 &
#
# Daily summary prepared at 19:05.
5 19 * * * /usr/lib/sa/sa2 -A &
L’utilisation de sa2 n’est pas une obligation et la ligne qui le concerne peut être mise
en commentaire dans la table de root et remplacée par une ligne de commande sar
personnalisée pour quelques types de ressources particulières. Dans ce cas, la
14-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
commande sar lit directement les données dans le fichier /var/log/sa/sa<jj> et produit
les résultats sur la sortie standard.
La commande sar se trouve dans le répertoire /usr/bin. La commande sadc, les deux
scripts sa1 et sa2 et un modèle de crontab se trouvent dans le répertoire /usr/lib/sa.
Les options de la commande sar sont nombreuses. La suite du chapitre en présente
certaines. Nous renvoyons l’administrateur au manuel de référence de la commande
sar pour comprendre, si besoin est, l’en-tête des colonnes produites par la commande.
Syntaxe
sar [-A] [ -s hh :mm :ss] [ -e hh :mm :ss ] [ -i intervalle] [-o fichier | -f fichier ] [t [n]]
-A est équivalent à –abBcdghmOpqrRSuvwy.
La valeur « n » désigne le nombre de rapports et « t » l’intervalle en secondes. Par
défaut, le nombre de rapports est illimité et la commande doit être interrompue par
« CTRL C ».
L’option –o fichier permet de stocker les données dans « fichier » dans un format
binaire, pour une lecture ultérieure avec la seconde forme et l’option –f fichier.
l’option –s heure permet de dire l’heure de début et –e heure l’heure de fin de
l’examen des performances.
L’option –i précise l’intervalle.
Les principales options de sar sont les suivantes :
Option Ressource surveillée
-A Option équivalente à –bBcrRuvwWy –I SUM –I PROC –n FULL –U ALL
-u Utilisation du CPU. L’option –u est appliquée par défaut.
-b Statistiques sur les entrées-sorties du disque.
-B Informations sur la pagination.
-c Nombre de processus créés par seconde.
-I arg Statistiques sur les interruptions (« IRQ »). L’option est de la forme
« -I N°IRQ | SUM | PROC | ALL | XALL ».
-n arg Informations sur l’activité du réseau. L’option est de la forme
« -n DEV – EDEV | SOCK | FULL ».
-r Statistiques d’utilisation de la mémoire et du swap.
-R Statistiques sur l’utilisation de la mémoire, mémoire partagée, mémoire
cache, buffers…
-v Etat des tables du noyau.
-W Etat du swapping.
-x arg Etat des processus. L’option est de la forme « -x N°PID | SELF | SUM |
ALL ».
-y Activité des terminaux.
Exemples
# sar 5 3 # Le processeur
Linux 2.2.16-22 (aurore11.goubet.fr) 23.03.2001
17:13:51 CPU %user %nice %system %idle
17:13:56 all 0,20 0,00 1,60 98,20
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-9
Module 14 : La gestion des performances
14-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
Surveillance
Surveillancedes
desressources
ressourcesavec
avecla
lacommande
commandevmstat
vmstat
Introduction
La commande vmstat permet de surveiller les principales ressources du système.
La commande vmstat affiche les informations périodiquement sur l’écran. Lorsque
l’administrateur souhaite surveiller les ressources sur une longue période, et récupérer
les résultats dans un fichier qu’il analysera ultérieurement, il convient de faire
exécuter la commande par l’intermédiaire de la commande crontab.
Syntaxe
vmstat [-n] [ délai ] [ n]]
Dans sa forme la plus simple, la commande vmstat donne des informations moyennes
calculées depuis le démarrage du système.
# vmstat
L’argument « délai » exprime l’intervalle de temps en secondes entre chaque mesure.
L’argument « n » qui peut le suivre indique le nombre de mesures à effectuer. Par
défaut, il est infini.
L’option « -n » n’a de sens que dans le cas où le nombre de mesures est illimité. Sa
présence limite l’affichage des en-têtes de colonnes au démarrage de la commande.
Elles sont sinon affichées toutes les vingt-trois mesures, pour être toujours visibles à
l’écran.
Les champs affichés par la commande vmstat sont les suivants :
Champ Description
procs Les processus
r Nombre de processus en attente du processeur.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-11
Module 14 : La gestion des performances
Exemples
$ vmstat 5 10
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
0 0 0 424 52448 144 3852 1 3 4 1 117 42 4 0 96
1 0 0 424 52184 144 3936 0 0 27 0 159 125 3 1 96
1 0 0 424 48020 272 7612 0 0 730 1 203 283 53 5 41
2 0 0 424 43524 336 11864 0 0 837 4 217 365 45 9 46
2 0 0 424 39644 464 15756 0 0 717 2 229 351 25 11 64
0 1 0 424 35068 528 20188 0 0 847 7 242 398 22 11 68
0 1 0 424 31640 656 23552 0 0 579 8 214 331 20 16 64
1 0 0 424 28112 784 26740 0 0 579 7 211 348 25 10 65
1 0 0 424 25484 784 29396 6 0 533 10 177 216 50 3 47
0 0 0 424 22248 912 32576 0 0 592 4 227 411 37 14 49
14-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
La comptabilité BSD
Panorama des commandes de surveillance du système
La comptabilité du CPU
z accton Active/désactive la comptabilité
z sa Affiche les résultats par catégories
z lastcomm Affiche les données comptables
La comptabilité des connexions
z login Enregistre les connexions
z ac Affiche les temps de connexions
z last Affiche les dernières connexions
La comptabilité des impressions
z pac Affiche les données comptables
Introduction
Sur un système BSD, on peut enregistrer l’usage du CPU, les temps de connexion et
les impressions. L’exploitation de ces données permet de mesurer l’utilisation du
système, en particulier de connaître les utilisateurs qui consomment le plus de
ressources. A l’époque de la création de ce système comptable, les données
enregistrées étaient utilisées pour émettre des factures.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-13
Module 14 : La gestion des performances
14-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-15
Module 14 : La gestion des performances
Objectif :
Savoir contrôler l’utilisation du CPU
et de la mémoire, surveiller et
paramétrer la pagination (« paging ») et
dimensionner l’espace d’échange
(« swapping »).
Paramétrer les entrées/sorties.
Durée : 15 minutes.
Exercice n°1
On mesure l’activité du CPU, de la mémoire et des entrées/sorties blocs, avec la
commande vmstat. On réalise dix mesures à cinq secondes d’intervalle.
Exercice n°2
On relance la commande exécutée dans l’exercice n°1, mais après avoir exécuté les
commandes suivantes (qui réalisent beaucoup d’entrées/sorties) :
$ find / -type f -print -exec grep -i UNIX {} \ ; | wc -l &
$ find / -type f -print -exec grep -i UNIX {} \ ; | wc -l &
$ find / -type f -print -exec grep -i UNIX {} \ ; | wc -l &
Exercice n°3
On relance la commande exécutée dans l’exercice n°1, mais après avoir exécuté les
commandes suivantes (qui utilisent beaucoup de CPU) :
$ cat > calcul
BEGIN {
var = 2.5
while (1) {
var *= 3
var /= 3
}
}
CTRL-D
14-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 14 : La gestion des performances
Exercice n°4
On relance la commande exécutée dans l’exercice n°1, mais après avoir exécuté les
commandes suivantes (qui utilisent beaucoup de mémoire) :
$ cat > memoire
BEGIN {
for(i=0; i<100000000 ; i++)
tb1[i] = i ;
}
CTRL-D
$ awk -fmemoire /dev/null &
$ awk -fmemoire /dev/null &
$ awk -fmemoire /dev/null &
Exercice n°5
On relance la commande exécutée dans l’exercice n°1, mais après avoir lancé les
commandes des exercices n°2, 3 et 4.
Remarque : il est plus simple d’utiliser un script pour lancer toutes ces commandes.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 14-17
Module 15 : Le réseau
• TCP/IP
• Les commandes ping,
ifconfig,…
• Les services
(/etc/services)
• Commandes remote
• NFS, NIS
• Samba
15Module 15 : Le réseau
Objectifs
Après l’étude de ce chapitre, le lecteur sait les éléments fondamentaux de
l’administration de systèmes Linux dans un environnement TCP/IP. A défaut de
maîtriser la totalité du domaine, il est autonome pour réaliser les actions essentielles.
Contenu
TCP/IP, panorama des protocoles
Ajouter un système dans un réseau IP
Les services réseau
Les commandes remote
NFS (présentation), les RPC
NIS, NIS+
ftpd, le transfert de fichiers
sendmail ou le e-mail
DHCP
Apache, le serveur Web
Samba
named, le serveur DNS
Références
HOWTO : Net-HOWTO, NET3-4-HOWTO, Networking-overview HOWTO,
Config-HOWTO
Livres : Linux Network Administrator’s Guide
Linux Network Servers
Internet : http://www.linuxenrezo.org
http://www.linuxenrezo.com
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-1
Module 15 : Le réseau
NFS,
NFS, FTP,
FTP,Telnet,
Telnet,e-mail,
e-mail,Web,...
Web,... Processus
DNS,...
DNS,...
API Socket
UDP
UDP TCP
TCP
Pilotes
IP
IP ICMP, ARP
Pilotes
Ethernet,
Ethernet,Token
TokenRing+llc,
Ring+llc,RS232+slip/ppp,...
RS232+slip/ppp,... +
Cartes
Le réseau TCP/IP trouve ses origines dans les travaux de recherche du « DARPA »
(« Defense Advanced Research Project Agency ») qui débutent en 1970 et débouchent
sur ARPANET.
Le « DARPA » finança l’université de Berkeley qui intégra les protocoles de base de
TCP/IP au système UNIX BSD 4.
TCP/IP se popularisa alors car il intégra des protocoles applicatifs et les primitives
qu’on appelle les « sockets ». Les « sockets » sont une interface générique de
programmation d’échanges de données entre les machines d’un réseau.
L’IAB (« Internet Activities Board ») est l’organisme qui supervise l’ensemble des
protocoles de TCP/IP.
Il supervise deux organisations :
• L’IRTF (« Internet Research Task Force ») qui est responsable des
développements de protocoles.
• L’IETF (« Internet Engineering Task Force ») qui est responsable du réseau
Internet.
L’attribution des adresses réseau est l’affaire du NIC (« Network Information
Center »), dont le correspondant français est l’INRIA.
L’ensemble des protocoles de TCP/IP sont décrits dans des documents que l’on
appelle des « RFC » (« Request For Comments »).
La couche supérieure est celle des applicatifs qui, selon les cas, utilisent la couche de
transport UDP ou TCP.
NFS (« Network File System ») est un protocole de partage de fichiers à distance (cf.
NFS).
DNS (« Domain Name System ») est un service qui associe un nom d’hôte à une
adresse IP.
15-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Les protocoles présentés sont ceux de la version IP.V4. L’évolution vers la version
IP.V6 qui permettra d’adresser plus de stations pour un plus grand nombre de réseaux
est rendue inéluctable par l’évolution du réseau mondial Internet. La compatibilité
avec la version 4 est assurée.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-3
Module 15 : Le réseau
Le principe
La mise en réseau d’un ordinateur dans un réseau IP obéit, pour une première partie,
aux règles d’installation d’un périphérique dans le système Linux.
Il est ensuite nécessaire de paramétrer l’interface réseau nouvellement installée.
Pour cela, plusieurs opérations sont nécessaires :
• Définir l’adresse IP de l’ordinateur hôte, ainsi que le « netmask » associé.
L’adresse IP est une adresse définie sur 32 bits et qui se représente par quatre
nombres séparés par le symbole « . » : n1.n2.n3.n4.
15-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-5
Module 15 : Le réseau
15-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Client Serveurs
ftp
ftp inetd
inetd in.ftpd
in.ftpd In.talkd
In.talkd
3245 21 517
Socket associée
au port 3245
TCP/IP
TCP/IP TCP/IP
TCP/IP
Dialogue réseau
Le service inetd
Le démon principal du réseau, inetd, est configuré via les fichiers /etc/services et
/etc/inetd.conf.
Dans le fichier /etc/services, un service est associé à un numéro de port. Les requêtes
destinées à un serveur sont identifiées par le numéro de port. Le fichier associe un
nom à un numéro de port.
Le fichier /etc/inetd.conf
Dans le fichier /etc/inetd.conf, une application serveur est associée à un nom de port. Il
y est précisé l’identité (« UID ») sous laquelle elle sera exécutée. Le paramètre
« nowait » indique qu’il y aura un serveur par client, c’est le cas de in.telnetd, et le
paramètre « wait », qu’il y aura un seul serveur pour l’ensemble des clients. C’est le
cas de in.talkd, le serveur qui permet le dialogue avec la commande talk.
Le tableau qui suit mentionne quelques ports associés à des services définis dans
/etc/services :
Port Service
21 ftp
23 telnet
53 domain (DNS)
80 http
Quand un client émet une demande de connexion, FTP par exemple, la requête est
émise via une socket attachée à un port local d’un numéro supérieur à 1023, alloué
dynamiquement pour la session. La requête de connexion, reçue, sur le serveur distant,
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-7
Module 15 : Le réseau
par le démon inetd, contient le numéro du port du service demandé, ici 21. Le démon
inetd exécute alors un démon serveur in.ftpd dédié à cette connexion et dont la durée
de vie est celle de la session FTP.
Une application serveur, comme httpd (le serveur Web Apache), n’est normalement
pas exécutée par inetd, mais directement via les scripts de démarrage rc.
Extrait du fichier /etc/inetd.conf
# These are standard services.
#
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
#
Remarques
La modification du fichier /etc/inetd.conf consiste le plus souvent à insérer ou
supprimer le caractère # au début d’une ligne pour activer ou désactiver un service.
Exemple :
# vi /etc/inetd.conf
# ps -e | grep inetd
590 ? 00:00:00 inetd
# kill -1 590 # Ou kill -HUP 590
Extrait du fichier /etc/services
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
sh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
La commande netstat permet de visualiser les connexions actives, les adresses IP et
les numéros de port (cf. Module 14 : La gestion des performances).
15-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Le « wrapper » tcpd
Un « wrapper » offre une couche de protection. Il contrôle l’accès à des services
réseaux grâce à des fichiers contenant des listes de contrôle d’accès (« ACL »).
Lors de l’installation de Linux, la plupart des services réseaux activés à travers le
fichier inetd.conf, le sont via tcpd.
Extrait de inetd.conf :
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd –l –a
Chaque fois qu’une requête est adressée au service FTP, le démon principal du réseau,
inetd, active tcpd plutôt que in.ftpd directement.
tcpd met à jour un journal de bord (« log ») et vérifie que le client est autorisé à
utiliser le service. Dans l’affirmative, tcpd exécute le serveur demandé, in.ftpd dans
l’exemple.
Les listes de contrôle d’accès sont conservées dans les fichiers :
/etc/hosts.allow et
/etc/hosts.deny
Le format de ces fichiers est décrit dans le manuel hosts_access(5). Si les fichiers
n’existent pas ou sont vides, il n’y a pas de contrôle d’accès.
Dans le cas contraire, l’administrateur du système Linux utilise le fichier hosts.allow
ou hosts.deny pour indiquer les clients qui sont autorisés ou interdits de service.
Le contrôle d’accès est global, pour l’ensemble des services, ou peut être décidé
service par service, pour chaque ordinateur hôte ou pour un domaine.
La structure d’une ligne de l’un des deux fichiers ACL est :
liste_de_démon : liste_de_client [ : commande ]
Les listes sont composées des identificateurs de démons ou de clients, séparés par des
virgules ou des espaces.
Les noms des hôtes ou des clients peuvent être des mots clés pour désigner un
ensemble prédéfini.
Extrait du fichier /etc/hosts.allow :
in.ftpd : LOCAL, .societe.com
Tous les clients dont le nom ne comporte pas de point (LOCAL) et les clients du
domaine societe.com ont le droit d’utiliser le service FTP de l’hôte.
xinetd
Le logiciel xinetd est destiné à remplacer inetd. Il apporte de nouvelles possibilités de
configuration et un paramétrage plus fin des informations enregistrées dans les
journaux de bord. Il est toujours possible de continuer d’utiliser inetd. Il faut choisir
d’exécuter l’un ou l’autre, au démarrage, via les scripts inetd ou xinetd du répertoire
/etc/rc.d/init.d (cf. Module 7 : L’arrêt et le démarrage).
Le programme xinetd est configuré par le fichier /etc/xinetd.conf, dont voici un
exemple :
# xinetd.conf
defaults
{
instances = 60
log_type = SYSLOG authpriv
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-9
Module 15 : Le réseau
Dans le fichier associé à un service, on retrouve les informations présentes dans une
ligne du fichier /etc/inetd.conf, mais sous une forme différente.
Voici les principaux paramètres :
id Identifie le service.
socket_type Indique la nature de la socket : stream pour une application TCP,
dgram pour une application UDP.
protocol Indique le protocole : tcp ou udp.
port Indique le numéro de port. A défaut, c’est le numéro associé
au nom du service dans le fichier /etc/services.
wait Si ce paramètre a la valeur no, xinetd active un serveur par client.
S’il a la valeur yes, xinetd n’active qu’un seul serveur pour
l’ensemble des clients.
user Indique le compte sous lequel s’exécute l’application serveur.
server Indique le chemin d’accès de l’application serveur.
server_args Précise les arguments transmis au serveur.
disable Si ce paramètre a la valeur yes, le service est désactivé.
Remarque
Le programme itox (ou inetd2xinetd) permet de convertir un fichier /etc/inetd.conf en
son équivalent au format xinetd. Le résultat de la conversion est envoyé sur la sortie
standard et doit donc être redirigé.
Références
Les fichiers du répertoire /etc/xinetd.d fournissent les exemples clés pour utiliser
correctement ce service.
Le manuel : xinetd(8), xinetd.conf(5) et xinetd.log(5).
15-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Les commandes
z rcp Copie de fichiers distants
z rsh Exécution à distance de commandes
z rlogin Connexion à distance
z rwho Liste des utilisateurs connectés au réseau
Les fichiers
z /etc/hosts.equiv Les systèmes équivalents
Les commandes remote, d’origine BSD, sont destinées à faire exécuter une action sur
une machine distante, via une seule ligne de commande, sans avoir à activer un service
spécifique tel que telnet ou ftp. Les commandes remote peuvent éviter de
s’authentifier explicitement lors de leur exécution.
Ces commandes sont pratiques à mettre en œuvre au cours d’une session ou dans un
script.
Elles sont a priori spécifiques des systèmes UNIX, même si certaines implémentations
ont été développées pour d’autres systèmes d’exploitation.
Pour l’ensemble des commandes remote et les exemples associés, nous supposons que
l’utilisateur s’appelle pierre, qu’il est connecté sur la machine venus et que la machine
distante est mars.
rcp
La commande rcp réalise des copies de fichiers entre ordinateurs. C’est une
alternative à la commande ftp.
Copie sur mars
venus $ rcp fichier mars:fichier.copie
Copie de fichier depuis mars
venus $ rcp mars:fichier .
Remarque
L’option « –r » de la commande cp est valable dans rcp.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-11
Module 15 : Le réseau
rlogin
La commande rlogin permet de se connecter à une machine distante. C’est une
alternative à telnet. Le service rlogin nécessite le démon serveur in.rlogind qui écoute
sur le port tcp 513.
venus $ rlogin mars
mars $ comande
mars $ exit
venus $
rsh
La commande rsh permet d’exécuter une commande sur une machine distante. Le
service shell nécessite le démon serveur in.rshd qui écoute sur le port 514.
venus $ rsh mars rm fichier
rwho
La commande rwho donne la liste des utilisateurs connectés au réseau.
Equivalence de machines
Pour que les commandes remote s’exécutent sans que l’utilisateur ait à fournir un
mot de passe, il faut que la machine distante, dans notre cas venus, déclare l’utilisateur
pierre de la machine mars équivalent à l’utilisateur pierre de la machine venus. Le
fichier /etc/hosts.equiv permet de définir les équivalences entre utilisateurs.
Le fichier /etc/hosts.equiv n’autorise pas les accès « root » qui nécessite le fichier
/root/.rhosts, d’un format identique, si /root est le répertoire de connexion de
l’utilisateur.
Ce fichier contient des lignes de commentaire ou de définition d’équivalences. La
syntaxe d’une équivalence est :
Hôte
Exemple
mars Tous les utilisateurs qui ont un compte de même
venus nom sur mars et venus sont équivalents.
Remarques
Les commandes remote n’offrent aucune sécurité, sauf si le système « kerberos » est
installé. Dans ce cas, et sauf utilisation explicite de l’option « –K », les commandes
remote utilisent le système d’authentification kerberos. Grâce à l’utilisation de
l’option « –x », les échanges sont cryptés.
A défaut du système Kerberos qui est lourd et complexe, on peut utiliser les
commandes du service SSH, décrites dans le module « La sécurité ».
15-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Quand la commande rdist est utilisée sans option, elle exécute les actions définies
dans le fichier distfile du répertoire courant. Elle utilise la commande rsh. Voici
quelques options :
-f fic Spécifie le nom du fichier de commande, par défaut distfile ou Distfile.
-n Affiche les commandes sans les exécuter.
-P cmd Indique le protocole utilisé pour exécuter les commandes à distance, par
défaut rsh. Pour utiliser ssh, il faut en donner le chemin d’accès, par
exemple : rdist –P /usr/local/bin/ssh.
-D Indique le mode debug.
-l options Paramètre la mise à jour du journal de bord local. Les options sont de la
forme facilité=type:… Les types indiquent le niveau des messages :
change, info, notice, noerror, ferror, warning, debug, all.
Exemple : -l stdout=all:syslog=change,notice:file=/tmp/rdist.log=all.
-L options Paramètre la mise à jour du journal de bord distant.
Le fichier distfile
Le fichier distfile contient les opérations que la commande rdist doit exécuter.
Le début du fichier peut définir des variables, référencées ultérieurement par
$nom_de_la_variable. Le fichier permet de réaliser des mises à jour très sophistiquées
(cf. rdist(1)). Cette commande est couramment utilisée pour avoir des fichiers
identiques sur plusieurs machines :
( fichier … ) -> [utilisateur@]ordinateur …
install ;
Exemple
Alice possède des fichiers sur l’ordinateur venus, elle veut les mettre à jour sur
l’ordinateur mars. Son accès à mars est autorisé par le fichier /etc/hosts.equiv ou par le
fichier ~alice/.rhosts.
venus$ cal > un_fic
venus$ mkdir rep
venus$ cp /etc/passwd /etc/group rep
venus$ cat distfile
HOSTS = ( mars )
FILES = ( /home/alice/rep /home/alice/un_fic )
${FILES} -> ${HOSTS}
install ;
venus$ rdist
mars: updating host mars
mars: /home/alice/rep: installing
mars: /home/alice/rep: mkdir
mars: /home/alice/rep/passwd: installing
mars: /home/alice/rep/group: installing
mars: /home/alice/un_fic: installing
mars: updating of mars finished
venus$ echo "++++++++++" >> un_fic
venus$ rdist
mars: updating host mars
mars: /home/alice/un_fic: updating
mars: updating of mars finished
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-13
Module 15 : Le réseau
/ /
venus
venus mars
mars
RPC
15-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
2. Le fichier /etc/exports
Le fichier /etc/exports indique les arborescences du serveur qui peuvent montées à
distance et par quel client. Son format est le suivant :
Répertoire client(droits)…
/export/games venus(rw) saturne(rw)
/doc (ro)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-15
Module 15 : Le réseau
L’arborescence /export/games est accessible par les clients venus et saturne en lecture
et en écriture. L’arborescence /doc est accessible à tout le monde, mais en lecture
seulement.
Pour prévenir les démons mountd et nfsd de la modification du fichier /etc/exports, il
faut arrêter et redémarrer les services.
# /etc/rc.d/init.d/nfs stop
# /etc/rc.d/init.d/nfs start
15-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Liste des serveurs supportant une application RPC Version 2 particulière. La liste est
obtenue grâce à un « broadcast » UDP. On peut utiliser le nom de l’application ou son
numéro (cf. Le fichier /etc/rpc).
# rpcinfo -b nfs 2
# rpcinfo -b 100003 2
Liste des clients NFS locaux.
# showmount
Liste des clients d’un serveur NFS distant.
# showmount venus
Liste des ressources d’un serveur NFS distant, montées par des clients .
# showmount -d venus
Liste des ressources montées et des clients d’un serveur NFS.
# showmount -a venus
Liste des ressources exportées par un serveur NFS.
# showmount -e venus
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-17
Module 15 : Le réseau
NIS
NIS
Domaine
DomaineNIS
NIS
«MAPS»
Serveur NIS
maître
Client NIS
Introduction
NIS (« Network Information Service ») est un service réseau qui permet
l’administration centralisée de bases de données de configuration. Grâce à NIS, on
peut gérer, entre autres, les comptes des utilisateurs et des groupes d’utilisateurs de
plusieurs systèmes UNIX à partir d’un seul poste.
Les bases de données gérées par NIS s’appellent des « NIS maps ». Si on installe NIS,
les maps sont utilisées en complément des fichiers /etc/passwd et /etc/group. Outre les
fichiers d’administration, n’importe quel fichier structuré en champs peut être géré par
NIS. Les fichiers d’administration liés au réseau (/etc/hosts, /etc/services, ...) sont
avantageusement gérés à travers des maps. NIS offre donc une alternative à DNS.
NIS est un service réseau fonctionnant en client-serveur organisé en domaines. Un
client NIS demande à un serveur NIS un champ d’une base de données en fournissant
une clé, par exemple le nom d’un utilisateur, pour obtenir son mot de passe codé. Un
serveur du domaine lui répond.
Les maps sont distribuées sur les différents serveurs d’un domaine NIS. Il n’y a qu’un
seul serveur maître par domaine, il est le garant de l’unicité des informations. Les
autres serveurs, appelés serveurs esclaves, ne contiennent qu’une copie des données.
Les applications NIS reposent sur des bibliothèques RPC, et en conséquence peuvent
être utilisées en mode sécurisé. Dans ce mode, les transactions réseaux sont cryptées
et authentifiées.
L’utilisation de NIS est quasi indispensable si l’on gère un parc important de systèmes
UNIX utilisant NFS. L’authentification sur laquelle repose NFS est basée sur les UID
et GID. Si l’on veut qu’un utilisateur possède les mêmes droits sur un ensemble de
systèmes UNIX et Linux, il doit être créé avec les mêmes UID et GID sur chacune des
machines. NIS résout le problème en ne créant l’utilisateur qu’une seule fois sur le
serveur maître, les autres systèmes appartenant au même domaine accèdent à ce
compte unique.
15-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
NIS a été créé par la société Sun sous le nom, à l’origine, de « Yellow Pages ». De
même que pour ses produits RPC et NFS, Sun a mis dans le domaine public la
description des protocoles sur lesquels repose NIS et licencie à faible prix sa
technologie. Le service NIS est disponible sur tous les systèmes Linux. NIS permet
donc d’administrer de manière centralisée un parc hétérogène de systèmes Linux.
Les maps
L’arborescence d’un serveur NIS est située dans le répertoire /var/yp et les maps dans
le répertoire /var/yp/nom_domaine, où nom_domaine désigne le nom du domaine NIS,
défini par l’administrateur. Les maps sont construites à partir de fichiers
d’administration de Linux. Le format d’une map, appelé DBM, est un format binaire,
implémenté à l’origine dans le système UNIX BSD. Les maps sont des tables indexées
sur une clé (nom, UID, adresse IP…). Cette organisation interne permet une recherche
de type « hachage », plus rapide qu’une recherche séquentielle dans un fichier texte.
Un fichier ASCII peut engendrer plusieurs fichiers, selon le nombre de clés de
recherche. Le tableau qui suit indique quelques noms de maps.
Fichier ASCII maps NIS Clé de recherche
/etc/passwd passwd.byname Le nom d’utilisateur
passwd.byuid L’UID de l’utilisateur
/etc/group group.byname Le nom du groupe
group.bygid Le GID du groupe
/etc/hosts hosts.byname Le nom d’hôte
hosts.byaddr L’adresse IP de l’hôte
Une map contient aussi des clés d’identification propres. Ces clés sont
automatiquement valorisées lors de la création d’une map :
Clé Valeur
YP_MASTER_NAME Le nom d’hôte du serveur maître
YP_INPUT_NAME Le chemin et le nom du fichier texte qui a produit la map
YP_OUTPUT_NAME Le chemin et le nom du fichier map lui-même
YP_LAST_MODIFIED La date et l’heure de dernière modification de la map
Les maps du serveur maître et des serveurs esclaves sont créées en même temps que
les serveurs, par la commande ypinit. La commande make permet de reconstruire une
(des) map(s) du serveur maître (cf. Configuration du serveur maître) et les
commandes yppush et ypxfr de recopier une map du serveur maître vers un serveur
esclave (cf. Configuration d’un serveur esclave).
Exemples
# cd /var/yp
# make # reconstruit toutes les maps dont l’image texte est plus récente
# make passwd # reconstruit, si nécessaire, la map passwd
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-19
Module 15 : Le réseau
15-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-21
Module 15 : Le réseau
15-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-23
Module 15 : Le réseau
Remarque
Le message « Trying ypxfrd ... not running » n’indique pas une erreur d’exécution,
mais que le démon rpc.ypxfrd, dont la fonction est d’accélérer le transfert de maps
volumineuses, n’est pas activé sur le serveur maître. Les maps ont quand même été
transférées.
15-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
La sécurité d’accès
Le contrôle d’accès des clients
Le fichier /var/yp/securenets définit les clients autorisés à se connecter à un serveur.
Ce fichier contient des paires d’informations netmask/réseau. L’adresse IP d’un client
doit correspondre à au moins l’une des deux informations.
Exemple de fichiers securenets
# securenets This file defines the access rights to your NIS server for NIS clients.
# Always allow access for localhost
255.0.0.0 127.0.0.0
# This line gives access to everybody. PLEASE ADJUST!
0.0.0.0 0.0.0.0
La sécurité d’accès aux maps du serveur
Le fichier /etc/ypserv.conf configure l’accès aux maps du serveur pour ypserv et
rpc.ypxfrd.
Dans sa version initiale, tous les clients sont autorisés.
Le fichier contient des lignes de définition d’options de la forme :
option: [yes|no]
et des lignes de définition de règles de la forme :
hôte:map:security:mangle[:filed]
La principale option est :
dns yes|no Si dns est à yes, le serveur interroge le serveur dns, si la map hosts ne
permet pas de résoudre le nom d’hôte.
Les composants d’une règle sont :
hôte L’adresse IP d’un hôte, le caractère « * » est autorisé pour tous.
map Le nom de la map, le caractère « * » est autorisé pour tous.
security Une valeur parmi les quatre possibilités : none, port, deny et des.
none Pas de règle de sécurité.
port L’accès n’est autorisé qu’au port inférieur à 1024.
Si « mangle » vaut yes, l’accès est autorisé, mais le mot de passe
est remplacé par « x ».
deny L’accès est interdit.
des Une authentification des est nécessaire.
Extrait du fichier /etc/ypserv.conf.
dns: no
# Host : Map : Security : Passwd_mangle
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-25
Module 15 : Le réseau
# under MSDOG everbody is root and can access ports < 1024 !!!
* : shadow.byname : port : yes
* : passwd.adjunct.byname : port : yes
15-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-27
Module 15 : Le réseau
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
gmake[1]: Leaving directory `/var/yp/univers'
On vérifie maintenant si celine est bien dans la map passwd.byname.
# ypmatch celine passwd
celine:8zwxmlHcJwjFo:508:508::/home/celine:/bin/bash
Opérations sur l’hôte mars.planete.
La dernière opération consiste à lui créer un répertoire de connexion, ainsi que les
fichiers de paramétrage de sa session (.profile, .kshrc, etc.) sur le serveur mars.
# mkdir /home/celine
# cp -r /etc/skel/* /home/celine
# chown -R celine /home/celine
Test de la connexion de celine.
mars login: celine
Password:
Last login: Thu Jun 22 21:46:11 on tty3
$
$ id
uid=504(celine) gid=501(xgrp) groups=501(xgrp)
$
Deuxième exemple
Pierre possède déjà un compte sur l’hôte mars.planete, et l’on souhaite que ce dernier
soit géré en NIS. Il s’agit du transfert d’un compte local en compte NIS. Il suffit alors
de lui créer un compte NIS sur le serveur maître saturne.planete, et de supprimer sur
mars.planete son compte local, sans supprimer son répertoire de connexion ni ses
fichiers.
Opérations sur le serveur maître saturne.planete.
# useradd -M –u 2000 pierre # L’option «-M» interdit la création du répertoire
de connexion de pierre sur le serveur saturne. On conserve l’UID actuel de
pierre.
# passwd pierre
Changing password for user pierre
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully
# cd /var/yp
# make
gmake[1]: Entering directory `/var/yp/univers'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
gmake[1]: Leaving directory `/var/yp/univers'
Opération sur l’hôte mars.planete.
15-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-29
Module 15 : Le réseau
Le
Letransfert
transfertde
defichiers
fichiers
put
ftp ftpd
get
Réseau
TCP/IP
client serveur
FTP est un service TCP/IP qui permet le transfert de fichiers. Il fonctionne en client-
serveur et le démon ftpd joue le rôle de serveur de fichiers. C’est un paquetage
standard de Linux. Le démon ftpd est démarré par le démon principal du réseau inetd.
Le démon in.ftpd
in.ftpd est la commande serveur dont les principales options sont :
-l Les sessions de transfert de fichiers sont enregistrées via le service syslog.
-d Des informations supplémentaires (« debugging ») sont envoyées à syslog.
-a Le fichier de configuration du service FTP ftpaccess est utilisé. Il ne l’est pas
sinon.
Le ftp anonyme
A l’ouverture d’une session ftp, le client doit normalement fournir un nom et un mot
de passe. Ces données d’authentification doivent correspondre à un compte
d’utilisateur défini dans le fichier /etc/passwd. Pour permettre à des utilisateurs
d’établir une session ftp sur un serveur où ils ne possèdent pas de compte, on crée un
utilisateur ftp. Le client fournit alors comme information d’authentification le nom
anonymous et comme mot de passe son e-mail, pierre@societe.com.
nom : anonymous
mot de passe : pierre@societe.com
Pour garantir la sécurité, le démon in.ftpd exécute la commande chroot sur le
répertoire de connexion de l’utilisateur ftp (~ftp). La commande chroot fait du
15-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
répertoire associé, ici ~ftp, la racine de l’arbre que voit l’utilisateur connecté. Le reste
de l’arbre lui est caché.
Il faut créer un mini-système Linux sous le répertoire ~ftp, sans lequel rien ne serait
possible.
Les fichiers qui sont accessibles par les clients doivent se trouver dans l’arborescence
~ftp/pub.
1. Création du répertoire /home/ftp
# mkdir /home/ftp
# chmod 555 /home/ftp
2. Création des répertoires bin, lib, etc et pub
# cd ~ftp
# mkdir bin lib etc pub
# chmod 111 bin lib etc
# chmod 555 pub # On attribue les droits 777 si l’on autorise la commande put.
3. Copie du fichier d’administration /etc/group et /etc/passwd
# cd etc
# cp /etc/passwd /etc/group .
Remarque
On peut expurger ces fichiers pour n’y laisser que les comptes existant dans
l’arborescence /home/ftp.
4. Copie de la commande ls et de ses bibliothèques
# cd ~ftp/bin
# cp /bin/ls .
# cp /lib/libc.so.6 /lib/ld-linux.so.2 .
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-31
Module 15 : Le réseau
Le courrier électronique
Le e-mail
UA MTA
smtp
MIME smtp
UA MTA
POP ou
IMAP
Le service de courrier électronique, e-mail, permet aux utilisateurs qui possèdent une
boîte aux lettres d’envoyer ou de recevoir du courrier. La boîte aux lettres est
identifiée par son adresse e-mail.
15-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
• Le composant DA (« Deliver Agent »), dont le rôle est de stocker dans une boîte
aux lettres un courrier venant d’un MTA.
Les protocoles
SMTP
Le protocole SMTP (« Simple Mail Transfer Protocol ») permet le transfert de
messages entre un UA et un MTA ou entre MTA, dans un réseau, Internet ou intranet,
TCP/IP.
ESMTP
Le protocole « Extended SMTP » est une modernisation du protocole SMTP. La
représentation des données utilise 8 bits au lieu de 7 bits dans SMTP. Cela simplifie la
manipulation des caractères accentués et des données binaires.
POP, IMAP
Les protocoles POP (« Post Office Protocol ») et IMAP (« Interactive Mail Access
Protocol ») permettent l’accès à une boîte aux lettres distante, souvent localisée chez
un fournisseur d’accès Internet (« Internet Provider »). Ces protocoles sont
nécessaires aux utilisateurs d’UA comme Outlook ou kmail, qui fonctionnent sur des
postes de travail qui ne possèdent pas de serveurs de messagerie (MTA) ou dont le
serveur de messagerie (MTA) n’est pas en service en permanence.
MIME
Le protocole MIME (« Multipurpose Internet Mail Extension ») permet de spécifier le
format d’une partie d’un courrier. Ce protocole est utilisé pour envoyer des documents
attachés, des fichiers, au texte du message.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-33
Module 15 : Le réseau
15-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
L’un des tests les plus probants consiste à jouer le rôle d’un UA, en utilisant les
protocoles SMTP et POP, via telnet. Il faut bien connaître ces protocoles. Le
paragraphe suivant décrit le protocole SMTP et, en fin de chapitre, le lecteur trouvera,
en référence, les RFC qui décrivent POP3 et IMAP.
Le protocole SMTP
Le protocole SMTP (« Simple Mail Transfer Protocol ») est le protocole réseau
d’échange de messages entre MTA, dans le contexte d’un réseau Internet ou intranet
TCP/IP.
Le format des messages est très simple :
• Un en-tête, qui comporte notamment les adresses :
adresse e-mail source
adresse e-mail destination
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-35
Module 15 : Le réseau
• Le corps du message ASCII. Le corps est séparé de l’en-tête par une ligne
blanche.
Le tableau qui suit présente quelques requêtes SMTP :
HELO présenter le client au serveur.
MAIL donner l’adresse de l’émetteur.
RCPT donner l’adresse du destinataire.
DATA donner le message en ASCII 7 bits.
VRFY vérifier si un compte existe, exemple : VRFY <pierre>.
EXPN connaître les membres d’une liste de diffusion, exemple : EXPN <users>.
QUIT terminer le dialogue.
Exemple d’une session SMTP :
$ telnet venus 25
Trying 192.0.0.110 ...
Connected to saturne
Escape character is ‘^]’
220 venus SMTP
HELO saturne
250 saturne
MAIL From:pierre@venus
250 OK
RCPT To:louis@saturne
250 OK
DATA
354 Start mail imput; end with <CRLF>.<CRLF>
coucou
.
250 OK
QUIT
221 venus Terminating
Connection closed by Foreign host
$
Le logiciel fetchmail
Le logiciel fetchmail permet la récupération de courrier via POP ou IMAP. Il peut être
configuré en tant que démon pour une récupération périodique et automatique du
courrier. fetchmail transfère le courrier récupéré sur le port 25 (SMTP) de la machine
locale, ce qui en permet un traitement normal par sendmail.
Le logiciel fetchmail est tout à fait adapté au rapatriement du courrier d’un serveur de
messagerie d’un réseau local, à partir d’un serveur distant, par exemple au delà d’un
firewall.
Exemple d’utilisation :
Le fichier de configuration ~/.fetchmailrc :
poll mars protocol pop3
user "alice" password "alice", is "alice" here
user "sandrine" password "sandrine", is "beatrice" here;
Démarrage de fetchmail, en mode démon, avec récupération du courrier toutes les
900 secondes :
15-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
# fetchmail -d 900
Références de la messagerie
Les RFC : 821, 822, 1425 (SMTP), 1651 (ESMTP), 1081, 1082 (POP3), 1176
(IMAP), 1521, 1522 (MIME).
HOWTO :
Mail-HOWTO,
Mail-User-HOWTO,
Mail-Administratoir-HOWTO
man : mail(1), fetchmail(1)
L’aide en ligne de kmail.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-37
Module 15 : Le réseau
sendmail
sendmailLes types d ’installation
smtp
sendmail sendmail
/etc/sendmail.cfg
« provider »
/var/spool/mqueue de mail
Pierre@venus
/var/spool/mail/pierre
Le logiciel sendmail est un agent de transport (un MTA : «Message Transfer Agent»).
Ce programme est incroyablement complexe, pour supporter la complexité du
transport du courrier. Il a été écrit par Eric Allman à l’époque où il était étudiant à
l’université de Berkeley.
15-38 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-39
Module 15 : Le réseau
Exécution de sendmail
Exécution de sendmail comme démon
La commande sendmail est normalement exécutée au démarrage du système. Si ce
n’est pas le cas, il faut activer le script /etc/rc.d/init.d/sendmail au boot (cf. Module 7 :
L’arrêt et le démarrage).
# mini-script d’activation de sendmail
if [ -f /usr/sbin/sendmail ]; then
(cd /var/spool/mqueue; rm -f *)
/usr/sbin/sendmail -bd -q1h
echo -n ’ sendmail’ >/dev/console
fi
On peut démarrer et arrêter manuellement sendmail :
# cd /etc/rc.d/init.d
# ./sendmail start # lance sendmail
# ./sendmail stop # arrête sendmail
Lancement dissocié des rôles de sendmail
L’option « –bd » précise à sendmail de se mettre à l’écoute du port 25 et ainsi d’être
prêt à récupérer du courrier rentrant. L’option « –q1h » demande à sendmail de traiter
la file d’attente de courrier toutes les heures afin de retransmettre le courrier ou de le
délivrer en local. Il est possible de dissocier ces deux rôles.
# sendmail -bd
# sendmail -q1h
La commande sendmail –q ne traite la file qu’une fois. On peut donc la lancer par un
crontab.
15-40 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Les alias
Le fichier /etc/aliases va permettre de :
• Définir des surnoms pour les utilisateurs.
• Faire suivre le courrier vers d’autres ordinateurs.
• Créer des listes de diffusion (« Mailing List »).
Exemple de fichier /etc/aliases
# Surnom d’utilisateur
postmaster: root
paul.dupont : paul
# Faire suivre le courrier
pierre:
\pierre@venus
# Remarque : l’anti-slash empêche la réinterprétation du nom.
# Exemple de listes de diffusion
comptables: cathy, jeanne, alice, pierre
developpeurs: pierre,
jean,
thomas@saturne
toutlemonde: comptables, developpeurs, root
Mise à jour des alias
Le logiciel sendmail n’utilise pas directement le fichier /etc/aliases, mais des fichiers
binaires. Pour mettre à jour les alias, on utilise la commande newaliases ou l’option
« -bi » de sendmail.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-41
Module 15 : Le réseau
# cat sendmail.cf
…
Fw/etc/sendmail.cw
DR
DH
DM
…
Le fichier /etc/sendmail.cw doit préciser la liste des sites périphériques.
# cat sendmail.cw
venus.societe.com
mars.societe.com
Configuration d’un site périphérique, par exemple venus.
Le fichier de configuration /etc/sendmail.cf doit adresser le site central :
# cat sendmail.cf
…
DRsoleil.societe.com
DHsoleil.societe.com
DMsoleil.societe.com
…
Deuxième exemple : les adresses e-mail sont des adresses de
domaines
Si l’on veut des adresses e-mail qui ne comportent que l’adresse du domaine, comme
par exemple « pierre@societe.com », on peut procéder comme suit :
Il faut configurer le serveur DNS du domaine pour qu’il permette aux différents
systèmes d’adresser le site central :
@ IN MX 10 soleil.societe.com.
Il faut aussi configurer le DNS du site central :
# cat /etc/resolv.conf
domain societe.com
nameserver 192.168.218.11
Dans le fichier /etc/sendmail.cf, le domaine doit être éventuellement précisé :
# cat sendmail.cf
…
Dj$m
15-42 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
DHCP
DHCP
Pilote Serveur
IP DHCP
Réseau
TCP/IP
Le principe
Le protocole DHCP (« Dynamic Host Configuration Protocol ») permet à une station,
lors de son démarrage, d’obtenir dynamiquement des informations de configuration,
en particulier son adresse IP, à partir d’un serveur DHCP.
Au démarrage, la station émet un message de diffusion (« DHCP DISCOVER ») de
demande d’adresse IP. La totalité des serveurs DHCP qui reçoivent cette demande
proposent leur offre (« DHCP OFFER »).
La station choisit le premier qui a répondu, mais toujours par un message de diffusion
(« DHCP REQUEST ») pour que les autres serveurs sachent qu’ils n’ont pas été
retenus. Le serveur qui a été choisi répond par un message de diffusion (« DHCP
ACK »), la station n’ayant pas encore d’adresse.
Un serveur a trois manières d’allouer une adresse :
L’allocation manuelle – l’administrateur associe une adresse IP à une adresse MAC.
L’allocation automatique – le serveur fournit l’adresse à partir d’un ensemble
d’adresses réservées à cet effet.
L’allocation dynamique – le serveur fournit l’adresse à partir d’un ensemble
d’adresses réservées à cet effet, mais la possession de l’adresse est limitée dans le
temps.
Outre l’adresse, DHCP permet d’obtenir d’autres informations, telles le netmask, des
tables de routage, la configuration DNS et même des informations propriétaires du
système d’exploitation comme, par exemple, l’adresse d’un serveur Wins dans le cas
des applications NetBios.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-43
Module 15 : Le réseau
Le manuel nous fournit des détails supplémentaires. Nous renvoyons le lecteur aux
chapitres suivants :
dhcpd(8) Le démon dhcp.
dhcpd.conf(5) Le format du fichier dhcpd.conf.
dhcp-options(5) Les options possibles de dhcp.
dhcprelay(8) Le relais dhcp
Le fichier /var/state/dhcp/dhcpd.leases doit exister. Si besoin, il faut le créer en
exécutant la commande :
# touch /var/state/dhcp/dhcpd.leases
15-44 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Apache
Apache
Navigateur CGI
HTTP, MIME
Client httpd
web
Pages web
Réseau
TCP/IP
httpd.conf
Introduction à Apache
Apache est le serveur Web le plus performant et le plus utilisé sur Internet. C’est un
logiciel libre, donc gratuit (licence GNU). Il est fourni, en standard, dans toutes les
distributions Linux.
Nous rappelons qu’un navigateur (« Browser »), comme « Internet Explorer (IE) »
de Microsoft ou « Netscape Communicator » de Netscape, visualise des pages Web.
Une page Web contient des données multimédias (texte, son, vidéo) en hypertexte. Un
simple clic renvoie à une autre page Web.
Architecture réseau
Un serveur Apache, caractérisé par le démon httpd, communique avec un client (IE ou
Communicator) grâce au protocole HTTP (« Hyper Text Transfer Protocol »). Le
protocole HTTP est un protocole standard de la famille des protocoles TCP/IP. HTTP
utilise le protocole MIME pour décrire le format des fichiers échangés : texte, html,
image (GIF, JPEG, …).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-45
Module 15 : Le réseau
Installation, désinstallation
Le logiciel Apache est normalement installé quand Linux est installé en tant que
serveur. Il est possible de le désinstaller pour installer une version plus récente (cf.
Module 13 : Les paquetages).
# rpm -qa | grep apache # vérifie si Apache est installé
# rpm -e apache-1.3.6-7 # désinstalle Apache
# cd /mnt/cdrom/RedHat/RPMS
# rpm -ivh apache-*.rpm # installe les paquetages d’Aapache
Arborescence du serveur
L’arborescence du serveur Apache comporte essentiellement deux branches. La
première contient les fichiers d’administration du serveur et la deuxième, les données
gérées par le serveur.
L’arborescence d’administration du serveur
Dans la configuration, cette arborescence est référencée sous le nom de ServerRoot.
Par défaut, c’est le répertoire /etc/httpd. Ses principaux composants sont les
répertoires et les fichiers suivants :
conf Le répertoire qui contient les fichiers de configuration.
conf/httpd.conf Le principal fichier de configuration, souvent même le
seul. Selon sa configuration, les deux fichiers suivants ne
sont pas pris en compte.
conf/srm.conf Le fichier de configuration du traitement des requêtes.
Il indique l’emplacement des documents et des scripts
CGI.
conf/access.conf Le fichier qui définit le contrôle d’accès.
logs C’est le répertoire qui contient les fichiers journaux de bord (logs). C’est
en fait un lien sur /var/log/httpd.
logs/access_log Le fichier qui enregistre les requêtes des clients.
logs/error_log Le fichier qui mémorise les erreurs.
modules Le répertoire qui contient les bibliothèques partagées utilisées par le
serveur. Ce répertoire est en fait un lien sur /usr/lib/apache.
php3.ini Le fichier de configuration du module PHP.
Remarque
Le fichier /var/log/messages, via le service Syslog, enregistre également l’activité du
serveur.
L’arborescence des données
Elle contient les données du serveur. Le répertoire /home/httpd est sa valeur par
défaut.
html Le répertoire qui contient les pages Web. Cette arborescence est
référencée sous le nom de DocumentRoot.
html/index.html La page d’accueil du site.
cgi-bin Le répertoire qui contient les scripts CGI.
15-46 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Remarques
Le logiciel Lynx est un navigateur fonctionnant en mode texte. Il n’est pas dans le
même paquetage qu’Apache.
Le serveur Apache se présente, par défaut, sous forme d’un ensemble de démons
httpd pour assurer de meilleures performances.
La commande httpd
La commande httpd est l’unique application qui compose le serveur Apache. Il est
possible de l’activer à partir du script /etc/rc.d/init.d/httpd ou directement en lui
passant éventuellement des paramètres.
Les principales options
-h Affiche un résumé des options et de la syntaxe.
-d Spécifie le répertoire racine de l’administration.
-f Spécifie le nom du fichier de configuration en remplacement de
/etc/httpd/conf/httpd.conf.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-47
Module 15 : Le réseau
La configuration du serveur
La configuration du serveur est principalement réalisée par le fichier conf/httpd.conf.
Les principales directives de ce fichier sont :
ServerType Spécifie le mode de lancement du serveur : « Standalone » ou
« inetd ». Le mode inetd est peu utilisé. Dans ce cas, le serveur
Apache est activé par l’application inetd.
ServerName Fixe le nom réseau du serveur.
ServerAdmin Indique l’adresse e-mail du responsable du site.
ServerRoot Spécifie le répertoire racine de l’administration du serveur, celle
qui contient les sous-répertoires conf et logs. Cette directive est
nécessaire si on lance le serveur avec l’option « –f ».
User L’utilisateur auquel appartiennent les processus httpd.
Group Le groupe auquel appartiennent les processus httpd.
Port Le port réseau auquel s’associe Apache, par défaut 80.
Listen Spécifie un couple « hôte:port ». Contrairement à la directive
précédente, il peut y avoir plusieurs directives Listen. Cela
permet à Apache de répondre à des requêtes adressées à plusieurs
noms de machines, en fait à plusieurs adresses IP, sur des ports
particuliers. Cette directive est généralement associée à l’usage
des serveurs virtuels (« Virtual Hosts ») décrits plus loin.
Remarque
Par défaut, Apache écoute sur toutes les interfaces et donc sur plusieurs adresses IP,
Listen permet de restreindre l’écoute à certaines interfaces.
AccessConfig Le fichier qui contient les directives concernant la sécurité
d’accès, conf/access.conf par défaut. Si l’on désire centraliser la
configuration dans httpd.conf, on spécifie le fichier /dev/null.
ResourceConfig Le fichier de ressources. Il contient notamment l’emplacement
des documents et des scripts CGI. Si l’on désire centraliser la
configuration dans httpd.conf, on spécifie le fichier /dev/null.
DocumentRoot Le répertoire qui contient les pages Web.
ScriptAlias Spécifie l’emplacement des scripts CGI (cf. Les CGI).
15-48 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-49
Module 15 : Le réseau
</BODY>
</HTML>
# vi page.html
# cat page.html
<HTML>
<HEAD><TITLE>Page</TITLE>
</HEAD>
<BODY>
BONJOUR
<IMG SRC="apache_pb.gif">
<P> ... Le Web !
<A HREF="index.html">cliquer ici</A>
</BODY>
</HTML>
# cp /home/httpd/icons/apache_pb.gif .
# httpd –f /home/www/conf/httpd.conf # on lance le serveur
# netstat -a | grep 8000 # Vérifie si le serveur est à l’écoute du port 8000
# lynx http://localhost:8000/index.html # la page est vue comme une page texte
Remarque
Ce site fonctionne très bien avec le navigateur IE, qui reconnaît le type des documents
transmis sans utiliser obligatoirement MIME. Inversement, les navigateurs Netscape et
Lynx ont besoin des types MIME, transmis par le serveur. Pour un fonctionnement
correct, il faut utiliser les bibliothèques dynamiques référencées dans le fichier
httpd.conf d’origine.
15-50 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-51
Module 15 : Le réseau
15-52 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
grande différence est que le langage PHP est ouvert et qu’ASP est une technologie
propriétaire de Microsoft.
Il existe plusieurs solutions, sous Linux, pour traduire ou interpréter des pages ASP,
mais elles sont partielles du fait de la nature propriétaire d’ASP.
Le module Perl Apache::ASP disponible sous licence GPL
(http://www.nodeworks.com/asp).
Le traducteur ASP2PHP qui traduit du ASP en PHP (http://asp2php.naken/cc).
Réaliser un proxy
Apache, ou un de ses sites virtuels, peut jouer le rôle de proxy. Ceci permet aux
navigateurs qui ont désigné votre serveur comme proxy, de se servir de lui comme
intermédiaire pour accéder aux sites distants. Cette approche a deux intérêts
indépendants et complémentaires à la fois :
Un serveur proxy installé sur un pare-feu (cf. Le chapitre Pare-feu) autorise l’accès
aux sites extérieurs.
Le proxy peut être configuré pour conserver en mémoire et sur disque les différentes
pages auxquelles les clients ont accédé. Le serveur joue ainsi un rôle de « cache », ce
qui améliore les performances d’accès dès qu’un client accède à une des pages déjà
présentes dans ce cache.
Exemple de configuration d’un serveur Apache utilisé comme
proxy
Seules sont indiquées les lignes dont on a enlevé le symbole « # » qui les commentait.
On modifie éventuellement le numéro de port, 80 par défaut. Il faut aussi dans la
directive proxy spécifier le nom du domaine autorisé (Allow). La directive proxy n’est
pas obligatoire.
# cat httpd.conf
…
Port 8080
…
# Proxy Server directives. Uncomment the following lines to
# enable the proxy server:
#
<IfModule mod_proxy.c>
ProxyRequests On
#
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from .mon_domaine
</Directory>
## To enable the cache as well, edit and uncomment the following lines:
# (no cacheing without CacheRoot)
#
CacheRoot "/var/cache/httpd"
CacheSize 5
CacheGcInterval 4
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-53
Module 15 : Le réseau
</IfModule>
…
Configuration d’un navigateur
Exemple de configuration d’Internet Explorer :
Choisir [Outils][Options Internet][Connexions][Paramètres LAN].
On coche ensuite « Utiliser un serveur proxy » et grâce au bouton « Avancé », on
rentre l’adresse et le port du proxy, ici le port 8080.
Les performances
Plusieurs directives permettent d’ajuster les paramètres système du serveur Apache :
MaxClients Spécifie le nombre maximum de clients gérés
simultanément. Les clients en surnombre sont dans
l’attente qu’un des processus fils se libère.
MaxRequestPerChild Spécifie le nombre maximum de requêtes traitées par un
processus fils avant qu’il ne meure. Si la valeur de cette
directive est 0, les processus fils ne meurent jamais.
StartServers Nombre de processus httpd fils lancés au démarrage.
MaxSpareServers Nombre maximum de serveurs inoccupés que l’on
conserve, par défaut 10.
MinSpareServers Nombre minimum de serveurs inoccupés que l’on
conserve, par défaut 1. Quand le dernier processus fils
devient occupé, le serveur maître lance un nouveau fils.
15-54 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-55
Module 15 : Le réseau
Remarque
Un fichier .htpaccess contient la même information qu’une directive Directory excepté
la balise elle-même qui n’est pas présente. Pour pouvoir utiliser un fichier .htpaccess,
il faut que la directive « AllowOveride » du répertoire (ou par défaut des répertoires
de plus haut niveau) le permette, par exemple en ayant la valeur « All ».
# htpasswd -c /etc/httpd/conf/users pierre
New password:
Re-type new password:
Adding password for user pierre
Cette commande, avec l’option « –c », crée le fichier de mot de passe
/etc/httpd/conf/users et y ajoute une ligne pour l’utilisateur pierre. Le mot de passe y
est conservé crypté.
Création du mot de passe de cathy.
# htpasswd /etc/httpd/conf/users cathy
# lynx ’http://localhost/jf/page.html’
La requête à une page d’un répertoire protégé déclenche la saisie d’un couple nom/mot
de passe au niveau du navigateur.
Les modules
La conception du logiciel Apache est modulaire. Il est tout à fait possible d’ajouter des
modules, grâce à une API créée par les concepteurs d’Apache. Les sources étant
disponibles, il est possible d’inclure les modules additionnels, dès la compilation, afin
d’avoir un logiciel plus performant. La distribution RedHat utilise, par défaut,
l’édition de liens dynamiques (cf. Module 6 : Les processus). Les modules httpd_core
et mod_so sont les seuls présents dans l’exécutable. Les autres sont chargés à la
demande en suivant les directives du fichier de configuration.
Les directives associées aux modules sont : LoadModule, AddModule,
ClearModuleList.
Remarques
C’est le module mod_so qui permet le chargement des autres modules
dynamiquement.
La liste des modules présents dans le fichier de configuration ne peut être altérée que
par un expert qui connaît bien les sources du logiciel.
15-56 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
TransferLog
CustomLog Spécifie le nom et le format du fichier log qui enregistre les
requêtes des clients. Le fichier est normalement
/var/log/httpd/access_log et le format « custom ».
ErrorLog Spécifie le nom du fichier log qui enregistre les erreurs,
normalement /var/log/httpd/error_log.
HostnameLookup Précise si Apache réalise un « reverse-DNS », c’est-à-dire une
recherche du nom du client pour la mise à jour des logs. Par
défaut, la valeur est « off ».
LogLevel Indique le niveau de log, par défaut « warm »
(cf. Module 12 : Le noyau - syslogd).
Extraits des fichiers de logs
# tail /var/log/httpd/access_log
192.168.218.1 - - [10/Dec/2000:22:54:25 +0100] "GET /~jf/toto.txt HTTP/1.1" 200 19
192.168.218.1 - - [10/Dec/2000:23:30:39 +0100] "GET /manual/mod/index.html
HTTP/1.1" 304 -
192.168.218.1 - - [10/Dec/2000:23:34:00 +0100] "GET /manual/mod/mod_so.html
HTTP/1.1" 200 5976
# tail /var/log/httpd/error_log
[Sun Dec 10 22:22:38 2000] [notice] caught SIGTERM, shutting down
[Sun Dec 10 22:22:44 2000] [notice] Apache/1.3.12 (Unix) (Red Hat/Linux) PHP/3.
0.15 mod_perl/1.21 configured -- resuming normal operations
[Sun Dec 10 23:28:36 2000] [crit] (98)Adresse déjà utilisée: make_sock: could not
bind to port 80
Connaître l’état du serveur
On peut connaître l’état du serveur grâce à l’URL http://serveur/server-status.
Il faut, pour que cela fonctionne, enlever les commentaires associés à la directive
<Location /server-status>…</Location>. Pour obtenir le maximum de
renseignements, on enlève également le commentaire devant la directive
« ExtendedStatus On ».
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-57
Module 15 : Le réseau
Samba
SAMBA
# smb.conf
[global]
workgroup = WORKGROUP
security = share
null passwords = yes
…
[jeux]
comment = jeux en freeware
path = /usr/games/windows
public = yes
read only = yes
browsable = yes
Samba est un logiciel libre, sous licence GNU, qui transforme Linux en un véritable
serveur de fichiers et d’imprimantes LAN MANAGER (Windows 3.x, 9x et NT). Il
concurrence Windows sur son propre terrain.
Architecture réseau
Samba utilise le protocole SMB (« Server Message Block ») de Microsoft, pour
accéder aux ressources.
SMB utilise le protocole Netbios RFC pour gérer les noms des ressources et l’échange
de données.
Netbios RFC correspond à la version de Netbios pour TCP/IP.
Le protocole Browser, qui repose sur SMB, permet de connaître la liste des serveurs
disponibles et les ressources d’un serveur. Le « Master Browser » est l’ordinateur qui
centralise les ressources.
15-58 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-59
Module 15 : Le réseau
La configuration
La configuration de Samba est réalisée à travers le fichier smb.conf, normalement situé
sous /etc.
Ce fichier comporte des sections. Chaque section est identifiée par un nom entre
crochets et définit une ressource partagée, par exemple [jeux]. Il existe trois sections
spéciales prédéfinies, [global], [homes] et [printers]. Les sections [homes] et [printers]
font des répertoires de connexion des utilisateurs et des imprimantes du système des
ressources partagées.
On doit spécifier le groupe de travail ou le domaine grâce au champ workgroup :
workgroup= WORKGROUP
Par ailleurs, la configuration par défaut de ces trois sections est généralement
satisfaisante. Si l’on désire ajouter des sections, on édite le fichier smb.conf et on y
ajoute une section comme dans l’exemple du transparent.
[ section ]
argument = valeur ...
Remarques
Le nom Netbios du serveur est, par défaut, son nom réseau (uname –n). On peut
forcer sa valeur grâce à la directive « netbios name= ».
Si l’on veut que Samba joue le rôle de serveur Wins, on utilise la directive
« wins support=yes ».
Le début d’une section marque la fin de la précédente. Il n’y a pas de différence entre
les minuscules et les majuscules.
Le paramétrage par défaut de la section [printers] qui configure l’impression, est
généralement correct et permet l’accès aux imprimantes définies dans le fichier
/etc/printcap.
15-60 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
La sécurité
Sécurité au niveau des utilisateurs ou des ressources
Pour limiter le partage d’une ressource, SMB offre le choix entre deux techniques,
exclusives l’une de l’autre :
• USER-LEVEL
Chaque utilisateur a des droits propres à chaque ressource qu’il peut utiliser. Une
ACL (« Access Control List ») est associée à chaque ressource, qui indique les
utilisateurs et les groupes qui ont accès à la ressource. Cette stratégie implique que
tous les utilisateurs aient un compte sur le serveur.
Dans le cas de Linux, les comptes SMB correspondent logiquement à des comptes
Unix définies dans /etc/passwd. C’est pourquoi un utilisateur qui se connecte sous
Windows doit posséder le compte correspondant sous Linux.
• SHARE-LEVEL
Les mêmes droits s’appliquent à tous les utilisateurs. Il suffit de connaître le mot
de passe associé à la ressource, si elle en possède un.
Dans tous les cas, pour pouvoir accéder à des ressources réseaux, un utilisateur
Windows doit se connecter en utilisant un nom et un mot de passe. Ces informations
sont ensuite transmises lors de l’accès aux ressources.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-61
Module 15 : Le réseau
15-62 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-63
Module 15 : Le réseau
# mkdir /home/staff
# useradd paul
# passwd paul
# chown paul /home/staff
# chgrp staff /home/staff
# chmod 775 /home/staff
Accès en user-level, avec chiffrement.
La section [rpierre] décrit un répertoire accessible uniquement à pierre.
# more /etc/smb.conf
[global]
workgroup = WORKGROUP
…
security = user
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
…
[rpierre]
path = /usr/pierre
valid users = pierre
public = no
writeable = yes
create mask = 0700
# mkdir /usr/pierre
# useradd pierre
# smbpasswd –a pierre
# chown pierre /usr/pierre
# chmod 700 /usr/pierre
15-64 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-65
Module 15 : Le réseau
Pour accéder à une ressource, on clique sur la ressource dans la fenêtre « Voisinage
réseau » ou on lance des commandes :
c:\> net use H: \\le_serveur\la_ressource
c:\> H: on se déplace dans le répertoire distant
Poste Linux
Sur un poste Linux, on peut utiliser les commandes fournies dans le paquetage Samba,
principalement smbclient qui émule un client SMB. En mode interactif cette
commande ressemble à la commande ftp de transfert de fichiers, mais elle dialogue
avec un serveur SMB. L’utilisation de cette commande est un bon moyen de tester une
configuration Samba mais aussi d’accéder en tant que client à un serveur Windows.
Tester si le format de smb.conf est correct
$ testparm
Afficher les ordinateurs actifs d’un workgroup ou d’un domaine
$ nmblookup WORKGROUP
Afficher les ressources d’un serveur, la commande demande un mot de passe,
éventuellement vide
$ smbclient -L le_serveur
Password :
L’opération est identique, mais on demande à ne pas entrer le mot de passe. Le
serveur est local
$ smbclient -L localhost -N
On accède à une ressource de type disque (utilisation proche de ftp)
$ smbclient //serveur/ressource mot_de passe -U utilisateur
smb> help
…
On accède à une ressource de type imprimante
$ smbclient //serveur/imprimante -P
smb> print fichier
smb> quit
Logs
En plus de l’utilisation des commandes smbclient ou testparm, un moyen de
dépannage de Samba est constitué par la lecture de ses journaux de bord.
Plusieurs paramètres de la section [global] permettent de paramétrer ses journaux.
log file = /var/log/samba/log.%m
Ce paramètre indique le nom du fichier log de Samba. En utilisant la variable %m,
Samba va constituer un fichier log par machine cliente.
max log size = 5000
Ce paramètre fixe la taille maximum du fichier log en kilo-octets. Si le maximum est
atteint, Samba renomme le fichier avec l’extension .o.
15-66 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
debug level = 3
Spécifie le niveau de détails des informations écrites dans les journaux. Le paramètre
peut prendre les valeurs de 0 à 10, par défaut 0, la valeur 3 est la plus utile dans un
objectif de dépannage.
syslog = 1
Indique quels sont les messages envoyés au service syslog.
0 Uniquement les erreurs (error)
1 Les avertissements (warning)
2 Remarque (notice)
3 Informations (info)
syslog only = yes | no
Si ce paramètre est égal à « yes », Samba n’utilise pas ses propres journaux, mais
uniquement le service syslog.
Références
HOWTO : SMB-HOWTO.
Le fichier /etc/smb.conf. Ce fichier est le fichier de configuration de Samba, il est
abondamment commenté, et contient de nombreux exemples de configuration mis en
commentaire.
Le manuel : samba(7), smb.conf(5), smbclient(1), smbpasswd(1), smbd(8),
swat(8) (le logiciel swat permet l’administration d’un serveur Samba à
partir d’un navigateur, tel Netscape).
Le répertoire /usr/doc/samba-*/. Ce répertoire contient une grande masse
d’informations et de nombreux exemples. Tout ce qui est nécessaire à l’utilisation de
Samba s’y trouve.
Les livres : (cf. La bibliographie).
Internet : le site officiel de Samba, http://www.samba.org.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-67
Module 15 : Le réseau
Introduction
Rappelons que le service DNS (« Domain Name Service ») permet à un hôte qui
connaît le nom d’un autre hôte du réseau, mais pas son adresse IP, de l’obtenir en
s’adressant à un serveur DNS.
Dans le système Linux, le démon named joue le rôle de serveur DNS. Il peut être
configuré de trois manières différentes :
• « caching-only » : un serveur DNS tampon n’a pas autorité pour répondre à une
requête, mais il peut, par contre, retransmettre la demande à un autre serveur si la
requête est récursive, et répondre ensuite au client. Le serveur mémorise, en
mémoire tampon, les réponses pour faire face à de nouvelles requêtes identiques.
• « primary master » : un serveur DNS maître principal est la source des
informations associées à un domaine DNS. Il a autorité pour répondre à une
requête.
• « secondary master » : un serveur DNS maître secondaire contient une copie des
informations mises à jour au niveau du serveur maître principal. Il a également
autorité pour répondre à une requête.
La configuration du démon named est faite dans les fichiers suivants :
named.conf : ce fichier indique les fonctions de named et les noms des fichiers de
configuration. Les noms utilisés dans la suite sont donnés à titre d’exemple.
named.ca : ce fichier contient les adresses IP des serveurs du domaine racine
(« root » ou « . »). On peut utiliser le fichier fourni dans le paquetage.
named.local : ce fichier permet de résoudre l’adresse de boucle locale (« localhost »).
named.hosts : ce fichier, qualifié de « zone file », contient les noms DNS et les
adresses IP correspondantes des hôtes d’un domaine.
15-68 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Le fichier /etc/named.conf
Les commentaires commencent par // ou # ou bien sont de type C (/* …*/).
La structure du fichier est la suivante : une suite de sections terminées par « ; ».
Chaque section est introduite par un en-tête suivi d’un bloc délimité par des accolades.
Le bloc contient une suite d’énoncés terminés par « ; ».
Une section « zone » décrit un domaine DNS.
L’énoncé type précise le rôle du serveur :
type master ; # serveur maître
type slave ; # serveur secondaire
type hint ; # serveur cache
L’énoncé « file » précise le nom du fichier qui contient la description du domaine.
Voici un exemple d’une section décrivant un domaine pour laquelle le serveur joue le
rôle de serveur principal :
zone "societe.com"{
type master;
file "societe.com";
};
Voici un autre exemple, mais pour un serveur secondaire :
zone "societe2.com"{
type slave;
file "societe2.com";
masters {
192.0.0.4 ; # adresse IP du serveur primaire
}
};
La première section est généralement la section « options », qui décrit des
caractéristiques communes à l’ensemble des sections, par exemple le répertoire qui
contient les fichiers de configuration. Exemple :
options {
directory "/var/named";
};
Remarque
Le nom et le format du fichier de configuration de named ont changé à partir de la
version 8 du paquetage bind. L’ancien fichier s’appelait named.boot. Le script Perl
/usr/doc/bind-*/named-bootconf/Grot/named-bootconf.pl permet la conversion de
l’ancien format au nouveau.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-69
Module 15 : Le réseau
L’enregistrement SOA
Syntaxe
@ ttl IN SOA nom_du_serveur_principal e-mail de 1 administrateur (
numéro_de_série
rafraîchissement
nouvel_essai
expire
minimum )
IN NS nom_d_un_serveur_maître
…
Description
Un enregistrement SOA indique les serveurs maîtres d’un domaine et les paramètres
généraux de l’ensemble des enregistrements. Le numéro de série doit être incrémenté
à chaque modification. Le paramètre rafraîchissement, exprimé en secondes, indique
à un serveur secondaire le temps au bout duquel il vérifie si le numéro de série a été
modifié. Si c’est le cas, le fichier de zone est téléchargé de nouveau.
Le paramètre nouvel_essai, exprimé en secondes, indique à un serveur secondaire le
temps au bout duquel il vérifie de nouveau le numéro de série, en cas d’échec.
Le paramètre expire, exprimé en secondes, indique la durée de vie des données.
Le paramètre minimum, exprimé en secondes, indique le temps minimum durant
lequel les données sont conservées dans la mémoire tampon (cache).
15-70 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Remarques
• Dans l’adresse e-mail de l’administrateur, le caractère « @ » est remplacé par le
caractère « . ».
• Le caractère « ; » indique le début d’un commentaire.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-71
Module 15 : Le réseau
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS annuaire.societe.com.
IN NS bootin.societe.com.
1 IN PTR venus.societe.com.
2 IN PTR saturne.societe.com.
3 IN PTR annuaire.societe.com.
4 IN PTR bottin.societe.com.
# cat /var/named/named.local
@ 86400 IN SOA localhost. root.localhost. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS localhost.
1 IN PTR localhost.
# tail /var/named/named.ca
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
nslookup
La commande nslookup est l’outil adéquat pour mettre au point une configuration
DNS et obtenir des informations provenant de n’importe quel serveur DNS.
L’exemple qui suit illustre quelques possibilités de la commande nslookup.
Aide en ligne.
> help
Traduit un nom DNS en adresse IP.
> www.societe.com
Idem, mais on utilise un nom appartenant au domaine courant.
> www
Change de serveur de nom.
> server name.bidon.com
Change le domaine par défaut.
> set domain=societe.com
Visualise la liste des serveurs de nom d’un domaine.
15-72 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Le démon named
Le démon named doit être activé sur un serveur.
Syntaxe
named [-d niveau_debogage] [-p port] [-(b|c) fichier_de_configuration]
[-f –q –r ] [ -u utilisateur] [-g groupe] [-t repertoire][-w repertoire]
[fichier_de_configuration]
Le fichier de configuration est indiqué par le dernier argument ou est introduit par les
options « –b » ou « –c », par défaut c’est le fichier /etc/named.conf.
-d niv Active le débogage en précisant le niveau.
-p port Indique le port réseau d’écoute.
-f Le démon s’exécute en avant-plan.
-q Trace les requêtes.
-r Supprime la récursion.
-u util Le compte utilisateur sous lequel le serveur s’exécute.
-g gr Le compte groupe sous lequel le serveur s’exécute.
-t rep Le répertoire utilisé pour effectuer un « chroot ».
-w rep Le répertoire de travail (par défaut le répertoire courant).
Les signaux
Le démon réagit à la réception de certains signaux. L’envoi de signaux est
particulièrement utile pour la mise au point. Le tableau qui suit en donne la liste.
SIGHUP Le serveur relie sa base de données.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-73
Module 15 : Le réseau
15-74 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 15 : Le réseau
Atelier 15 : Le réseau
Atelier 13 : Le réseau
Objectifs :
Savoir configurer un poste pour
l’ajouter à un réseau TCP/IP
Savoir ajouter un logiciel réseau
Durée : 30 minutes.
Exercice n°1
Quel est le nom réseau de votre système ?
Exercice n°2
Quels sont les adresses IP, le netmask et les passerelles connus de votre système ?
Exercice n°3
Est-ce qu’il y a une application serveur FTP active sur votre système ?
Exercice n°4
Est-ce qu’une application serveur FTP est active sur le système distant ?
Exercice n°5
Est-ce que l’application « inetd » est active sur votre système ? Quels sont les ports
TCP (notés symboliquement) gérés par elle ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 15-75
Module 15 : Le réseau
Exercice n°6
Changez les adresses IP et les netmasks de votre système et du système distant (qui
doivent être sur le même réseau physique et non connectés à Internet), en utilisant les
valeurs suivantes :
- Votre système : Adresse IP : 133.45.11.12, Netmask : 255.255.0.0
- Le système distant : Adresse IP : 133.45.44.45, Netmask : 255.255.0.0
Testez la connexion par un ping, et remettez ensuite les anciennes valeurs.
Exercice n°7
Faites en sorte que votre système puisse utiliser les commandes remote en local, par
exemple :
$ rcp localhost:/etc/group ~/group.old
Exercice n°8
Testez la présence du système distant avec la commande ping. La commande est
programmée pour s’arrêter au bout de vingt secondes, les résultats sont mémorisés
dans un fichier.
15-76 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
• X-Window
• Les clients X : xterm,
xclock…
• La commande
Xconfigurator
• Le DISPLAY
• Le démon XDM
• Le bureau KDE, gnome
16odule 16 : X-Window
Objectifs
Après l’étude de ce chapitre, le lecteur sait configurer X-Window pour travailler en
mode graphique avec le système Linux.
Contenu
Présentation de X-Window
Les principaux clients
La configuration du service
Le serveur X
Le service de connexion xdm
Le bureau KDE
Le bureau gnome
Références
HOWTO : Xfree86-HOWTO, Xwindow-user-HOWTO, Framebuffer-HOWTO
Le manuel : xdm(1), startx(1), et l’aide en mode graphique
Fichier : XF86Config
Livre : X-Window Administrator’s Guide
Internet : http://www.x11.org
http://www.kde.org
http://www.gnome.org
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-1
Module 16 : X-Window
Le système X-Window
Le système X-Window
xterm
Serveur X xclock
Protocole X
twm
clients X
Réseau
TCP/IP
Terminal x
Hôte
Linux
Le modèle client-serveur
Le système X est composé d’un serveur X et de clients X qui dialoguent selon le
protocole X.
L’application serveur X s’exécute sur l’un des écrans virtuels de Linux utilisé en mode
graphique, un terminal X ou un PC fonctionnant avec un logiciel d’émulation de
terminal X.
Elle gère le matériel :
• L’écran graphique
• Le clavier
• La souris
Les clients X sont des applications graphiques qui s’affichent dans des fenêtres gérées
par le serveur X. Il peut s’agir d’un éditeur de texte, d’un logiciel de dessin, de jeux…
Dans le cas des terminaux virtuels de Linux en mode graphique, il s’agit de clients
locaux qui s’exécutent sur le même ordinateur que le serveur.
16-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Comme le protocole X est un protocole réseau supporté par TCP/IP, les clients
peuvent être répartis sur plusieurs ordinateurs.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-3
Module 16 : X-Window
16-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
La configuration du serveur X
La configuration du serveur X
Déroulement de Xconfigurator
3. Xconfigurator affiche la liste des moniteurs qu’il connaît. Encore une fois, si
votre moniteur n’apparaît pas dans la liste, vous pouvez choisir « personnel ». Il
vous faudra alors préciser les fréquences de synchronisation horizontale et
verticale de votre moniteur (cf. La documentation du moniteur).
Remarque
Dans l’ignorance des fréquences de balayage, choisissez les plus basses parmi
celles proposées par Xconfigurator.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-5
Module 16 : X-Window
16-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
#!/bin/sh
#~/.xinitrc, ~/.xsession ou ~/.Xclients
xsetroot -solid cyan
xrdb -y merge ~/.Xresources
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-7
Module 16 : X-Window
Démarrage personnalisé
On active les clients en tâche d’arrière-plan et on termine le script en exécutant le
gestionnaire de fenêtres (twm, fvwm, fvwm2…) en tâche d’avant-plan ou via la
commande exec.
Démarrage d’un bureau
On démarre l’exécution du bureau que l’on a choisi :
• KDE
exec startkde
• GNOME
exec gnome-session
Le DISPLAY
Le « DISPLAY » désigne l’adresse du serveur X. Cette information doit
impérativement être connue par les applications clientes X. A défaut, elles seraient
incapables d’identifier le serveur X avec lequel elles dialoguent pendant leur
exécution. Si un client X ne connaît pas le « DISPLAY », l’exécution du client échoue
dès le démarrage de son exécution.
La désignation du « DISPLAY » a la forme suivante :
[hôte]:terminal.[écran]
L’hôte désigne le nom ou l’adresse IP du serveur X, par défaut le client et le
serveur s’exécutent sur la même machine. Terminal désigne le numéro du
terminal si le serveur supporte plusieurs terminaux, c’est très souvent 0 et écran,
le numéro de l’écran si le terminal possède plusieurs écrans, par défaut 0 s’il n’y
a qu’un écran.
Exemples
:0 Le système local.
Saturne:0 Le premier terminal X associé au système Saturne.
Saturne:0.0 Saturne est un hôte ou un terminal X.
Saturne:1.0 Le deuxième terminal de la station Saturne. Saturne
est un hôte Linux ou UNIX pour supporter
plusieurs terminaux X.
Saturne:0.1 Le deuxième écran du premier terminal X. Cette
situation est assez rare.
16-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-9
Module 16 : X-Window
Remarques
Les serveurs de connexions doivent être correctement configurés en XDMCP (cf. le
fichier Xaccess de ces serveurs).
Il est possible d’indiquer en paramètre de l’option « –indirect » le nom du système
local qui apparaît alors dans la liste des serveurs disponibles. Le système local ne doit
pas activer directement la session X. Le serveur local doit être mit en commentaire
dans le fichier Xservers :
# :0 local /usr/X11R6/bin/X
De plus, le fichier Xaccess doit être correctement configuré pour accepter les
demandes XDCMP (cf. paragraphe précédent). Le fichier Xaccess définit les
autorisations d’accès XDMCP. La ressource DisplayManager.requestPort du fichier
xdm-config indique si les accès sont acceptés par le serveur X sur le port UDP 177.
Dans le cas où le serveur de connexion fonctionne avec le bureau GNOME, il faut,
dans le fichier /etc/X11/gdm/gdm.conf, positionner l’option Enable de la section
xdmcp à un pour que le service de connexion du client soit celui de gnome plutôt que
xdm.
[ xdmcp ]
Enable = 1
• On active le serveur X sans aucun client, mais on autorise les accès distants :
# X -ac
Remarques
Un système Unix ou Linux peut activer directement des clients pour ce serveur X en
précisant ses coordonnées (cf. le paragraphe « Démarrage d’un client X »), par
exemple :
$ xterm -display saturne:0
Un système UNIX ou Linux peut également activer directement une connexion
graphique via le fichier Xservers :
saturne :0 foreign
Références
Le manuel xdm(8)
Le XDMCP HOWTO
Le livre « X Window System Administrator’s Guide »
16-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
La sécurité
Un terminal X peut refuser l’accès à des clients distants en paramétrant, pour le
premier terminal, le fichier /etc/X0.host ou pendant une session avec la commande
xhost.
$ xhost + # autorise tous les clients de n’importe quel hôte du
réseau
$xhost +mars # autorise les clients de mars
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-11
Module 16 : X-Window
Exemples
$ xclock –fg grey –bg yellow &
$ xterm –g 75x25+10+10 &
$ xterm –xrm 'xterm*ttyModes : erase ^H' &
Remarque
Le fichier /usr/X11R6/lib/X11.rgb.txt donne le nom de toutes les couleurs disponibles
et leur décomposition en rouge, vert et bleu (« RVB »).
16-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Accessoires de bureau
xterm Un émulateur de terminal texte.
xclock, oclock Des horloges.
xcalc Une calculatrice.
xbiff Un client qui notifie l’arrivée de courrier.
xmh Le client qui gère le courrier.
xload Le client qui mesure la charge du système.
xmag Une loupe.
xman Le client qui affiche la documentation.
xedit Un éditeur de texte pleine page et plein écran.
xkill Un client qui met fin à une application cliente.
xrefresh Un client qui rafraîchit l’écran, en partie ou en totalité.
xclipboard Le presse-papier.
xcutsel Le client qui copie la sélection en cours.
xconsole Le client qui affiche les messages destinés à la console maîtresse
(/dev/console).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-13
Module 16 : X-Window
Sécurité
xhost Contrôle l’accès des clients au serveur X.
xauth Contrôle l’accès des utilisateurs au service X.
Outils graphiques
xwd Stocke l’image d’une fenêtre dans un fichier.
xwud Affiche un fichier produit par xwd.
bitmap Un éditeur de fichier « bitmap ».
atobm, bmtoa Outils de conversion de fichiers « bitmap » en ascii et
réciproquement.
Informations
xlsclients Affiche la liste des clients d’un serveur X.
xdpyinfo Affiche les caractéristiques d’un serveur X.
xwininfo Affiche les caractéristiques d’une fenêtre.
xlsatoms Affiche les « atomes » définis sur le serveur.
xev Affiche la trace des événements.
16-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Divers
xeyes Des yeux qui s’affichent sur l’écran.
ico Une animation en 3D.
xlogo Affiche le logo X.
Gestionnaire de fenêtres
twm Le gestionnaire standard de X.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-15
Module 16 : X-Window
xterm
xterm
xterm est un émulateur de terminal. Les fichiers de démarrage des sessions X activent
fréquemment un premier client xterm pour que l’utilisateur puisse exécuter des
commandes, de la même manière que si l’on travaille dans une session locale ou
telnet, en mode texte.
Les séquences de contrôle d’un terminal xterm sont proches de celles d’un terminal
vt100 de la société Digital Equipment. Le client xterm peut également émuler un
terminal graphique de la société Tektronics.
Le paramétrage de xterm peut être effectué grâce aux fichiers de ressources ou par les
options de la ligne de commande ou, encore, par les menus « popup ». xterm permet
de réaliser du copier/coller.
Le tableau qui suit indique les options de la ligne de commande :
Option Description
-t Le mode est Tectronics et non vt.
-132 Le terminal a 132 colonnes, 80 par défaut.
-g géométrie Définit la géométrie. Contrairement aux autres clients X, la
largeur exprime le nombre de colonnes et la hauteur le nombre
de lignes.
-sb Demande l’affichage d’un ascenseur vertical.
-sl # Demande la mémorisation de « # » lignes qui pourront être
visibles grâce à l’ascenseur. La valeur par défaut est de 64.
-e cmd La commande cmd est exécutée dans la fenêtre du client xterm.
-ls Le shell qui est exécuté est un shell de connexion. Le fichier
.profile ou .login est exécuté.
16-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-17
Module 16 : X-Window
twm
fwm
Utilisation de twm
Chaque fenêtre créée est dotée d’une barre de titre horizontale. En plus du titre, la
barre contient deux boutons, le bouton de gauche qui permet d’iconifier la fenêtre et le
bouton de droite qui permet de modifier la taille de la fenêtre.
Pour déplacer la fenêtre, il suffit de faire glisser la barre de titre.
Quand le pointeur de la souris est dans la barre de titre, il faut cliquer sur le bouton
gauche de la souris pour faire passer la fenêtre en avant-plan et sur le bouton du milieu
pour la faire passer en arrière-plan.
Quand le pointeur de la souris est dans la fenêtre racine, un clic sur le bouton gauche
de la souris fait apparaître le menu de la fenêtre racine.
Le « focus », qui indique la fenêtre qui a le contrôle à un instant donné, appartient à
celle dans lequel se trouve le pointeur de la souris. L’option « focus » du menu racine
permet de donner explicitement le « focus » à une fenêtre.
16-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
La configuration de twm
La couleur, l’aspect des fenêtres et le menu racine de twm sont paramétrables. Cela se
réalise dans un fichier de configuration. Le fichier /etc/X11/twm/system.twmrc est
utilisé par défaut, si l’utilisateur n’a pas défini de fichier $HOME/.twmrc.
Une autre possibilité consiste à indiquer le fichier de configuration, sur la ligne de
commande, au moment de l’exécution de twm.
$ twm –f fichier_confi &
Exemple de fichier de configuration
# $HOME/.twmrc
# couleurs
Color
{
TitleBackground "red"
BorderColor "green"
IconBackground "blue"
MenuBackground "yellow"
MenuForeground "blue"
}
# menu racine
Button1=:root:f-menu "Special"
# menu "Special"
menu "Special"
{
"Racine" f.title
"Fermer" f.iconify
"Ouvrir" f.iconify
"Tuer" f.destroy
"" f.nop
"Terminal" f.exec "/usr/X11R6/bin/xterm &"
"Exit" f.quit
}
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-19
Module 16 : X-Window
Les ressources
Les ressources
Xterm*scrollBar: False
terminal*scrollBar: True
xterm*background: green
*eightBitInput: True
CTRL-D
$ xrdb -merge ~/.Xresources
$ xterm -name terminal &
Les ressources sont des données qui servent à paramétrer les clients X. Une ressource
peut définir un emplacement, une couleur, une chaîne de caractères, une police, une
image…
La définition des ressources est dans un fichier texte.
16-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
XTerm*scrollBar: True
Il est possible de nommer une instance en particulier, via l’option « -name » et de
définir un paramétrage qui lui soit propre :
terminal*scrollBar: True
Comme le nom d’instance est par défaut, le nom de la classe en minuscule, on peut
paramétrer toutes les instances qui n’ont pas de nom :
xterm*scrollBar: True
La commande xrdb
La commande xrdb mémorise des ressources directement sur le serveur X. Elles sont
accessibles à tous les clients du serveur. Nous mentionnons à la suite quelques
utilisations courantes de la commande xrdb.
• Fusion des ressources courantes avec celles définies dans un fichier, ici
$HOME/.Xresources :
$ xrdb –merge $HOME/.Xresources
• Initialisation des ressources du serveur avec un fichier, ici $HOME/.Xresources :
$ xrdb –load $HOME/.Xresources
• Suppression des ressources d’un serveur :
$ xrdb –remove
• Visualisation des ressources courantes :
$ xrdb –query
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-21
Module 16 : X-Window
KDE
KDE
Utilisation
Le bureau KDE s’inspire de CDE, le bureau standard de UNIX, et de Windows 95. La
lettre K du panneau situé en bas de l'écran (appelé également tableau de bord), permet
d’accéder au menu principal, l’équivalent du menu Démarrer de Windows 95. Le
panneau, comme sous CDE, en plus de la date et de l’heure, contient les principales
applications (gestionnaires de fichiers, terminal,aide, ...) ainsi que l’accès à quatre
écrans virtuels. L’utilisateur répartit les différentes applications qu’il exécute dans ces
écrans virtuels, huit au maximum. Deux petits boutons sont présents dans le panneau,
l’un pour clore la session et l’autre pour verrouiller l’écran.
La barre des tâches, normalement en haut de l’écran, liste les applications actives et
permet de basculer de l’une à l’autre comme sous Windows.
Chaque fenêtre contient une barre de titre qui permet de déplacer la fenêtre. Trois
boutons, comme sous Windows, permettent d’iconifier, de maximaliser et de fermer la
fenêtre. En plus du bouton Icône, en haut à gauche, il y a une petite punaise qui fixe la
fenêtre. Elle est désormais visible de tous les bureaux virtuels. Le menu Icône dispose
de la commande Vers le bureau, qui autorise à changer l’écran virtuel où réside
l’application.
Sur le bureau, des icônes représentent des applications, des données ou des répertoires.
Si l’on clique dessus, on active l’application qui lui est associée ou le gestionnaire de
fichiers dans le cas d’une icône répertoire.
La commande kwmcom, qui travaille en mode texte, permet de dialoguer avec KDE.
On peut réorganiser les fenêtres, passer d’un écran virtuel à un autre, fermer une
fenêtre, mettre fin à l’environnement, ...).
16-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-23
Module 16 : X-Window
Multimédia
kmid Karaoké.
kmidi Lecteur de fichiers MIDI (*.mid).
kscd Recherche des informations associées à un CD audio.
kmedia Lecteur de fichiers audio (*.mid, *.mod, *.wav).
Graphiques
kview Visualiseur d’images.
kdvi Affiche les fichiers LaTex *.dvi.
kfax Visualise des fax (format G3, G3-D2 ou G4).
ksendfax Envoie des fax.
ksnapshot Réalise des captures d’écran.
kpaint Logiciel de dessin.
kghostview Visualise des fichiers postscript.
Internet
krn Lecteur de news.
kmail Agent de messagerie, gère MIME et PGP.
kget Permet le suivi des téléchargements.
kppp Permet la configuration des liaisons PPP.
kwebtree Analyse une arborescence de pages Web.
Réseau
ktelnet Client telnet.
knu Une variante des commandes ping, traceroute, finger et
hostname.
Jeux
De nombreux jeux sont disponibles : Astéroïdes, balone, Mahjong, Othello, Same, …
Configuration de KDE
La configuration de KDE peut être effectuée par les menus Tableau de bord et
Configuration du menu principal K ou par le l’application centre de contrôle de KDE,
kcontrol.
16-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
kcontrol
Le centre de contrôle KDE est proche du panneau de configuration de Windows ; il
donne l’accès à la configuration des éléments suivants :
• Applications
• Bureau (arrière-plan, couleurs, économiseur d’écran, langue, ...).
• Périphériques d’entrée (souris, clavier).
• Réseau.
• Information (mémoire, processeur).
• Sons.
• Fenêtres.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-25
Module 16 : X-Window
gnome
gnome
GNOME (« GNU Network Object Model Environment » ) est le bureau par défaut de
la distribution Linux RedHat. C’est un logiciel libre développé dans le cadre du projet
GNU. Le site officiel de GNOME est http://www.gnome.org. GNOME est plus récent
que KDE et en conséquence moins complet. En revanche, il intègre les dernières
technologies. L’architecture CORBA, bien connue dans le monde de l’objet, est la
base d’interopérabilité logiciel. Contrairement à KDE, GNOME n’est pas associé à un
gestionnaire de fenêtres prédéfini, il peut en utiliser plusieurs.
Utilisation
Comme KDE, GNOME dispose d’un panneau situé en bas de l’écran qui permet
d’accéder aux principales fonctionnalités. Il possède des icônes qui permettent de
déclencher des applications et un menu général représenté par le logo de GNOME :
une trace de pas.
Les principales applications GNOME
gmc Le logiciel de gestion de fichier qui reprend les fonctionnalités de
Midnight Commander qui était en mode texte.
Gedit Editeur de texte.
Emacs L’éditeur de texte emacs.
GHex Editeur en hexadécimal de texte binaire.
Calendar Calendrier et agenda.
gnomecard Carnet d’adresses.
Gnumeric Un tableur.
Gimp Le célèbre logiciel de retouche d’images et de création graphique.
gftp Un client graphique FTP.
GnoRPM Une interface graphique au gestionnaire de package RPM.
16-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Remarque
GNOME dispose également d’applications multimédias, Internet et des jeux.
Globalement il offre un panel d’outils presque aussi complet que KDE.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-27
Module 16 : X-Window
fvwm2
fvwm2
fvwm2 est un gestionnaire de fenêtres qui dérive de twm, simple d’emploi, et qui
fournit un bureau virtuel. L’encadrement des fenêtres ressemble à celui de Motif, le
standard Unix. Dans le cas où l’on n’utilise pas de bureau, fvwm2 correspond à
l’environnement graphique par défaut de Linux.
fvwm2 ajoute une décoration aux fenêtres qui comprend un bord et une barre de titre
avec des boutons. Le bord permet d’agrandir ou de réduire la fenêtre. La barre de titre
permet de déplacer la fenêtre. Les deux boutons de droite provoquent respectivement
l’iconification et l’agrandissement maximum de la fenêtre. Le bouton de droite et le
bouton système permettent de fermer la fenêtre et de faire apparaître un menu.
Si l’on clique dans la fenêtre racine, on fait apparaître le menu racine. Ce menu
déclenche des applications, il sert également à mettre fin à la session.
fvwm2 fournit plusieurs écrans qui forment un seul grand bureau virtuel. On peut
passer d’un écran à l’autre, soit en cliquant sur la zone correspondante dans le panneau
du bas soit simplement en approchant le curseur d’un des bords de la fenêtre racine.
fvwm2 recherche d’abord le fichier ~/.fvwm2rc. S’il ne le trouve pas, il recherche
ensuite le fichier /etc/X11/fvwm2/system.fvw2rc. Ce fichier, notamment, définit la
taille du bureau virtuel, les styles et le menu racine.
16-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 16 : X-Window
Atelier 16 : X-Window
Atelier 16 : X-Window
Objectifs :
Savoir configurer un poste pour
utiliser les outils graphiques
Durée : 30 minutes.
Exercice n°1
Quel est le fichier de configuration de votre serveur X ?
Exercice n°2
Configurez le compte d’un utilisateur pour twm :
1. Créez un nouvel utilisateur
2. Créez le fichier $HOME/.Xclients en vous inspirant du fichier $HOME/.xinitrc
décrit dans le chapitre « Démarrage d’une session X »
3. Après vous être connecté sous le nom de ce nouvel utilisateur, exécutez la
commande startx
4. Si le nouvel utilisateur souhaite utiliser KDE, que doit-il faire ?
Exercice n°3
A partir d’une fenêtre xterm :
1. Exécutez un éditeur de texte (xedit, kedit…)
2. Affichez la valeur de la variable DISPLAY
3. Exécutez à nouveau le client « éditeur de texte » en utilisant l’option « -display »
du client
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 16-29
Module 16 : X-Window
Exercice n°4
Exécutez le client xclock avec une couleur de fond déterminée :
Spécifiez la couleur de fond pour toutes les horloges de tous les utilisateurs.
Spécifiez la couleur de fond pour toutes les horloges d’un utilisateur.
Exécutez l’horloge en imposant la couleur rouge.
Exercice n°5
Comment l’administrateur peut-il imposer kdm comme service de connexion ?
16-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
• Mot de passe, le
« password aging »
• Règles de sécurité
• Les droits d’endossement
• Audit
• « proxy »
• « firewall »
17Module 17 : La sécurité
Objectifs
Après l’étude de ce module, le lecteur connaît les principales règles de sécurité qu’il
doit appliquer en tant qu’administrateur et enseigner aux utilisateurs. Il est capable de
procéder à un audit simplifié de son système.
Contenu
La sécurité informatique
La sécurité de connexion
Le paquetage shadow et PAM
La sécurité pour les utilisateurs
Les droits d’endossement et la sécurité
Les logiciels libres d’audit sur Internet
Références
HOWTO : security-HOWTO
Le manuel : pam(8), ssh(1), login(1), shadow(5)
Les livres : Practical UNIX & Internet Security
Maximum Linux Security
Internet : http://info.cert.org
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-1
Module 17 : La sécurité
La sécurité informatique
La sécurité informatique
Les objectifs
z La sécurité de connexion
z L’intégrité des données
z La confidentialité des données
Les moyens
z L’authentification (mot de passe, ...)
z Le chiffrement
z La sécurité physique
z La prévention, l’information
z Les droits
z Les sommes de contrôle (« checksum »), les sauvegardes
z La surveillance et l’audit du système
z Les gardes-barrières (« firewalls »)
17-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
externes par des utilisateurs non avertis ou qui n’en ont pas besoin pour, par
exemple, limiter le risque de rapatriement de virus.
Le niveau de sécurité atteint par le système UNIX est le niveau de sécurité C2. Le
niveau C2 est une référence définie et exigée de l’administration américaine et le
système doit procurer :
• Une authentification des utilisateurs.
• La protection des ressources, en particulier des fichiers.
• La protection de la mémoire.
• La possibilité de procéder à l’audit du système.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-3
Module 17 : La sécurité
La cryptologie
La cryptologie
RSA RSA
Texte en Texte en
clair clair
Pierre Cathy
Définition de la cryptologie
La cryptologie comprend un ensemble de techniques qui permettent d’assurer la
confidentialité des données et l’authentification de correspondants.
La base de la cryptologie est constituée d’algorithmes de chiffrement, appelé
également méthode cryptographique. Ces algorithmes permettent de rendre
incompréhensible un message pour toutes les personnes autres que son destinataire.
Les algorithmes de chiffrement sont de deux types :
• Symétriques, à clé secrète.
• Asymétriques, à clé publique.
Les algorithmes de chiffrement ne sont en fait qu’un élément d’un système assurant la
confidentialité et l’authentification. C’est la notion de protocole qui constitue
l’élément central d’une solution utilisant la cryptologie. Un protocole cryptographique
a pour objectif la confidentialité, l’authentification, la signature…, et utilise pour ce
faire un ou plusieurs algorithmes. De plus, il règle tous les problèmes de sécurité
associés à l’échange des clés.
17-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Un message en clair, par exemple BONJOUR, est chiffré lettre par lettre. Chaque
lettre est décalée dans l’ordre alphabétique d’un nombre de lettres convenu d’avance.
Ce nombre constitue la clé secrète qui ne doit être connue que des correspondants. En
prenant trois comme décalage, le message en clair BONJOUR devient le
cryptogramme ERQMRXU. Le cryptogramme peut circuler sur le réseau, sans danger,
car une personne qui intercepte le message ne peut le déchiffrer, ne possédant pas la
clé.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-5
Module 17 : La sécurité
17-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
• SSL : ce protocole intervient au niveau des sockets et peut ainsi sécuriser toutes
les applications TCP/IP. SSL est le protocole actuellement le plus utilisé pour
sécuriser les échanges Web sur Internet.
• C-SET : ce protocole de niveau applicatif permet de sécuriser les paiements sur
Internet. Il devrait se généraliser dans les prochaines années.
• PEM et PGP sont utilisés pour transmettre du courrier électronique crypté et
authentifié.
• Secure Shell (SSH) remplace les commandes remote d’Unix, mais avec cryptage
des données et authentification des partenaires.
Linux et la cryptographie
PGP
PGP (« Pretty Good Privacy »), créé par Phil Zimmermann, est un logiciel qui permet
de chiffrer, signer et authentifier des fichiers ou des e-mails. Ce logiciel est disponible
dans tous les environnements y compris avec les sources, et bien sûr disponible sous
Linux (cf. http://www.pgp.com). Le GNU a créé une version libre de droits de PGP qui
s’appelle GPG (cf. http://www.gnupg.org).
SSH
SSH remplace les commandes remote en offrant en plus la confidentialité des
échanges. Le chapitre suivant le décrit plus en détails.
Kerberos
Kerberos nécessite des applications Kerberorisées et un poste utilisé comme serveur
Kerberos. Cette technique est bien plus complexe à mettre en œuvre que SSH. Les
principales distributions ne fournissent pas Kerberos en standard, mais comme ses
sources sont disponibles, il est possible de l’implémenter sous Linux.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-7
Module 17 : La sécurité
SSL
SSL est disponible pour le logiciel Apache, notamment sous la forme du module
mod_ssl. Il permet ainsi de créer des sites Web utilisant le paiement électronique (cf.
http://www.apache-ssl.org, http://www.modssl.org).
CFS
Le système de fichiers CFS (« Cryptographic FS ») permet de conserver, chiffrée, une
arborescence de fichiers (cf. http://www.zedz.net/redhat).
CIPE
CIPE (« Cryptographic IP Encapsulation ») permet de construire un VPN (« Virtual
Private Network ») sur Internet. C’est-à-dire qu’il permet de mettre en place un canal
chiffré reliant deux pare-feu distants, appartenant à la même société.
md5sum
Cette commande permet de générer l’empreinte MD5 d’un fichier.
cryptdir
Cette commande permet de chiffrer les fichiers d’un répertoire.
Remarque
La plupart des produits présentés ne sont pas présents dans la distribution RedHat, du
fait de la législation américaine qui restreint l’exportation des méthodes
cryptographiques. Il est par contre possible de les télécharger à partir de sites
européens.
Références cryptographiques
• Le man : md5sum(1), cryptdir(1), pgp(1), gpg(1), ssh(1).
• Les sites Internet précités.
• Le HOWTO Secure-Programs-HOWTO.
• Les livres suivants :
Cryptologie appliquée de Bruce Schneier
PGP par Simson Garfinkel
Web Security & Commerce par Simson Garfinkel et Gene Spafford
17-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
SSH
SSH
venus mars
L’équivalent de rlogin
venus$ ssh mars
L’équivalent de rsh
venus$ ssh mars ps –ef
L’équivalent de rcp
venus$ scp mars:/etc/group /tmp
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-9
Module 17 : La sécurité
Remarque
L’installation du paquetage serveur crée un couple de clés publique/privée qui
identifie l’ordinateur serveur.
Sur le client
Sur le client, on utilise la commande ssh pour activer une connexion. Dans l’exemple,
on se connecte au compte de pierre sur le serveur mars à partir du poste venus,
l’utilisateur donne le mot de passe associé au compte de pierre.
venus$ ssh -l pierre mars
Warning : Permanently added ’mars.soc.fr, 192.168.218.10’ (RSA) to the list of
known hosts.
Pierre@mars.soc.fr’s password : XXXXXX
Last login : Fri Dec 22 12:51:23 2000 From 192.168.218.10
Bonjour
mars$
Lors de la connexion, le serveur envoie sa clé publique. Cette clé est utilisée pour
échanger une clé privée de session et tous les échanges suivants sont chiffrés,
notamment le mot de passe de l’utilisateur. Ce type de connexion offre une totale
sécurité y compris pour une connexion de root transitant sur Internet.
Remarques
On peut également spécifier le compte de connexion sous une forme email :
venus$ ssh pierre@mars
Si l’on n’indique pas le nom de connexion, on suit la même logique que la commande
rlogin. La connexion a lieu sous le compte homonyme du compte local. Si pierre est
connecté sur venus et désire se connecter sur mars sous le compte pierre, il saisit
simplement la commande suivante :
venus$ ssh mars
17-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Protocol
La (les) version(s) du protocole SSH supportée(s) par le serveur. Les valeurs
possibles sont 1 et 2 et par défaut 1.
Ciphers
Liste les algorithmes à clés privées supportés par le protocole Version 2.
Par défaut : 3des-cbs,blowfish,arcfour,cast128-cbc.
AllowUsers
Ce mot clé est suivi d’une liste de noms d’utilisateurs, séparés par des
espaces. Cette directive restreint l’usage de ssh aux seuls utilisateurs mentionnés.
DenyUsers
Cette directive permet d’interdire l’usage de ssh à certains utilisateurs.
AllowGroups, DenyGroups
Ces directives suivent la même logique que les directives AllowUsers et
DenyUsers, mais s’appliquent à des groupes d’utilisateurs.
PermitEmptyPAsswords
Autorise ou non des mots de passe vides.
PermitRootLogin
Autorise ou non la connexion à distance de l’administrateur (root).
RhostsAuthentication
Spécifie le mode Rhosts comme mode d’authentification des clients. sshd se
comporte alors comme rshd et autorise les connexions en se basant sur les fichiers
/etc/hosts.equiv et ~/.rhosts. Ce mode d’authentification n’offre évidemment pas
plus de sécurité que rsh. Par défaut la directive est positionnée à no.
RSAAuthentication
Spécifie le mode RSA comme mode d’authentification des clients. Par défaut la
directive a la valeur yes.
RhostsRSSAAuthentication
Spécifie si l’authentification RSA est utilisée avec l’authentification Rhosts. Par
défaut la directive a la valeur no.
ServerKeyBits
Spécifie la taille des clés publiques. La valeur minimum est de 512 bits, la valeur
par défaut est de 768.
DSAAuthentication
Cette directive a pour valeur yes ou no. Elle indique si l’authentification DSA est
autorisée. Elle l’est par défaut.
PasswordAuthentication
Cette directive a pour valeur yes ou no. Elle indique si l’authentification par mot
de passe est autorisée.
UseLogin
Spécifie si le programme login est utilisé pour les sessions interactives. Par défaut
cette directive a la valeur no.
LogLevel
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-11
Module 17 : La sécurité
Indique le niveau de log du serveur. Les valeurs possibles sont : QUIET, FATAL,
ERROR, INFO, VERBOSE et DEBUG. INFO est le niveau par défaut.
17-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-13
Module 17 : La sécurité
La sécurité de connexion
La sécurité de connexion
Les commandes
z login, su Réalisent la connexion
z passwd Modifie un mot de passe
z chpasswd Met à jour, en batch, les mots de passe
z who Liste les utilisateurs connectés
z last Liste les dernières connexions
Les fichiers
z /etc/passwd Définit les comptes des utilisateurs
z /etc/nologin Interdit la connexion
z /etc/securetty Les terminaux où root peut se connecter
z /var/log/secure Historique des connexions qui ont échoué
La sécurité de connexion est assurée par des commandes et des fichiers de données.
Le transparent du chapitre présente les plus significatifs du système Linux. Les
commandes et les fichiers qui ne sont pas présentés dans ce chapitre, le sont dans la
suite du module, en particulier le paquetage « shadow » et le système PAM. La
connaissance de ces deux ensembles est, en effet, indispensable si l’on souhaite
sécuriser le système Linux.
Les commandes
login
La connexion d’un utilisateur se fait par le biais des commandes login et su.
Le fichier /etc/usertty permet de restreindre la connexion des utilisateurs à travers la
commande login.
su (cf. Module 6 : Les processus)
passwd (cf. Le paquetage shadow).
chpasswd
La commande chpasswd permet de modifier les mots de passe en mode batch. Le
fichier d’entrée, par défaut l’entrée standard, contient des couples :
«nom:mot-de_passe ».
# cat maj_passwd
pierre:mot_de_passe
cathy:mot_de_passe
# chpasswd <maj_passwd
who
La commande who affiche la liste des utilisateurs connectés.
17-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
last
La commande last affiche les connexions mémorisées dans le fichier /var/log/wtmp.
On peut restreindre l’affichage aux connexions d’un utilisateur.
# last
jf tty3 Tue Jun 29 11:13 - 11:14 (00:00)
jf tty2 Tue Jun 29 10:41 still logged in
root tty1 Tue Jun 29 10:41 still logged in
reboot system boot Tue Jun 29 10:40
wtmp begins Tue Jun 29 10:40:46 1999
Les fichiers
/etc/passwd (cf. Module 2 : Les utilisateurs)
/etc/nologin
L’existence du fichier /etc/nologin interdit la connexion des utilisateurs.
L’administrateur root est le seul à pouvoir se connecter.
/etc/securetty
Le fichier /etc/securetty indique les terminaux où root peut se connecter. On met une
liaison tty par ligne du fichier, sans préciser l’en-tête /dev.
# more securetty
tty1
tty2
tty3
/var/log/secure
Historique des connexions qui ont échoué.
# more secure
Sep 23 16:29:53 linux7 login: ROOT LOGIN ON tty1
Sep 23 17:32:12 linux7 login: LOGIN ON tty2 BY jf
Sep 27 13:24:02 linux7 in.telnetd[634]: connect from 192.0.0.209
Sep 27 13:24:08 linux7 login: LOGIN ON 0 BY gilles FROM 192.0.0.209
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-15
Module 17 : La sécurité
Le paquetage shadow
Le paquetage shadow
Les fichiers
z /etc/shadow Contient les mots de passe et les
informations de « password aging »
z /etc/passwd Définit les comptes des utilisateurs
z /etc/login.defs Définit les paramètres généraux du
« password aging »
Les commandes
z pwconv Crée le fichier shadow
z pwunconv Détruit le fichier shadow
z chage Modifie le « password aging »
z passwd Modifie les mots de passe
Le paquetage shadow
Le paquetage shadow apporte deux fonctionnalités intéressantes quant à la sécurité :
1. La dissimulation des mots de passe cryptés.
2. Une gestion efficace du « password aging », c’est-à-dire de la gestion de la durée
de vie des mots de passe.
Les mots de passe et les attributs liés à leur durée de vie sont stockés dans le fichier
/etc/shadow. Ce fichier n’est visible et, a fortiori modifiable, que par le seul
administrateur root.
La commande pwconv crée le fichier /etc/shadow. Il est aussitôt activé et utilisé pour
les connexions des utilisateurs. Pour revenir au mode traditionnel, sans le fichier
/etc/shadow, il suffit d’exécuter la commande inverse, pwunconv, qui remet les mots
de passe cryptés dans /etc/passwd et détruit /etc/shadow.
Le fichier /etc/passwd
Le fichier qui décrit les comptes des utilisateurs ne contient plus les mots de passe.
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
Le fichier /etc/shadow
Une ligne du fichier contient le mot de passe et ses attributs pour un utilisateur. Les
champs sont séparés, comme dans /etc/passwd, par le symbole « : ».
Sa structure est la suivante :
Champ1:Champ2:Champ3:Champ4:Champ5:Champ6: Champ7:Champ8:Champ9
17-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Champ Signification
1 Nom de l’utilisateur.
2 Mot de passe crypté.
3 Nombre de jours écoulés entre le premier janvier 1970 et la dernière
modification du mot de passe.
4 Nombre minimum de jours requis entre deux modifications du mot de
passe.
5 Nombre maximum de jours au bout duquel une modification est
obligatoire. Si ce champ est inférieur à la valeur du champ précédent,
l’utilisateur ne peut pas modifier son mot de passe.
6 Nombre de jours avant lequel l’utilisateur doit être averti de l’expiration
prochaine du mot de passe.
7 Nombre de jours avant que le compte soit verrouillé, quand le mot de
passe est expiré.
8 Date d’expiration du mot de passe, exprimée en nombre de jours écoulés
depuis le premier janvier 1970.
9 Champ réservé.
# cat /etc/shadow
root:BpOj2f.G83VNc:10771:0:99999:7:::
bin:*:10771:0:99999:7:::
daemon:*:10771:0:99999:7:::
thomas:QzsIUyS3eGiY6:10771:0:30:7:::134525940
Le fichier /etc/login.defs
Le fichier /etc/login.defs contient les valeurs par défaut du « password aging ». Ces
valeurs sont utilisées lors de la création du fichier /etc/shadow par la commande
pwconv et à la création d’un compte utilisateur.
Ce fichier est abondamment commenté.
# more login.defs
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be
used.
# PASS_MIN_DAYS Minimum number of days allowed between
password
hanges.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password
xpires.
#
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-17
Module 17 : La sécurité
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
La commande chage
Cette commande est l’interface privilégiée pour configurer le fichier /etc/shadow.
C’est elle qui permet de visualiser, grâce à l’option « -l », ou de modifier le
« password aging » d’un utilisateur, c’est-à-dire de modifier les attributs qui traitent de
la pérennité du mot de passe :
Fixer la date d’expiration du mot de passe d’un utilisateur.
# chage –E aaaa/mm/jj Nom_utilisateur
Obliger un utilisateur à changer son mot de passe au bout de Nb_jours.
# chage –M Nb_jours Nom_utilisateur
Visualiser les attributs du mot de passe d’un utilisateur.
# chage –l Nom_utilisateur
Modifier les attributs de façon interactive. La commande demande la nouvelle valeur
de chaque attribut. La frappe immédiate de « Entrée », sans saisie de valeur laisse
l’attribut inchangé.
# chage Nom_utilisateur
Syntaxe
chage [-m mindays] [-M maxdays] [-d lastday] [-l inactive][-E expire_date]
[-W warndays] utilisateur
chage –l utilisateur
Exemple
# chage -l thomas
Minimum: 0
Maximum: 30
Warning: 7
Inactive: -1
Last Change: Jun 29, 1999
Password Expires: Jul 29, 1999
Password Inactive: Never
Account Expires: Never
# date '+%d/%m/%y'
11/06/99
# chage –E 06/10/99 # verrouille le compte, la date est antérieure à la date du
jour
# chage E 0 # déverrouille le compte
17-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
La commande passwd
Cette commande permet de modifier le mot de passe (cf. Module 2 : Les utilisateurs).
Le paquetage shadow contient également les commandes grpconv et grpunconv qui
permettent la gestion du fichier /etc/group. Il est rare que l’on ait à les mettre en
œuvre.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-19
Module 17 : La sécurité
PAM
PAM
# cat /etc/pam.d/login
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so nullok
use_authtok md5 shadow
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_console.so
17-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-21
Module 17 : La sécurité
IP Masquerading
L’« IP Masquerading », traduction d’adresses IP, permet à un ensemble d’ordinateurs
d’être vu comme une seule machine. Cette technique peut être utilisée par un firewall
de type routeur filtrant. On peut remarquer qu’un routeur à base de proxy n’a pas
besoin de la traduction d’adresses, car les réseaux qu’il relie s’ignorent mutuellement.
Un des principaux intérêts de l’IP Masquerading est d’autoriser des réseaux privés à
utiliser Internet avec une seule adresse Internet.
Les adresses IP des réseaux privés
Les firewalls utilisant des proxys ou la traduction d’adresses peuvent masquer
complètement les détails d’un réseau privé. On pourrait imaginer, en conséquence, que
n’importe quelle adresse puisse être utilisée dans le réseau privé. Cela n’est pas
possible car il y a un problème, la mise à jour des tables de routage du firewall quand
ce dernier a besoin d’adresser un réseau qui possède la même adresse que le réseau
privé. La solution consiste à utiliser les adresses réservées à cet effet par les instances
d’Internet. Ces adresses ne sont attribuées à aucun réseau directement accessible sur
Internet.
Adresses de classe A : 10.0.0.0 à 10.255.255.255
Adresses de classe B : 172.16.0.0 à 172.31.255.255
Adresses de classe C : 192.168.0.0 à 192.168.255.255
17-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Netfilter
Le noyau 2.4 utilise une nouvelle technique de filtrage, Netfilter
(cf. www.netfilter.org), compatible avec les outils ipfwadm et ipchains.
Références
Howto :
Firewall-HOWTO qui concerne les pare-feu en général.
IPCHAINS-HOWTO : qui concerne l’utilisation d’ipchains.
Linux NET-3-HOWTO qui traite du réseau en général, il contient quelques
éléments sur les pare-feu.
IP-Masquerading HOWTO, très complet, il indique entre autres comment
compiler le noyau pour avoir le masquerading et les modules du noyau à charger
en fonction des options particulières voulues.
PPP-HOWTO, Ethernet-HOWTO
Livres : (cf. bibliographie).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-29
Module 17 : La sécurité
# squid.conf
http_port 3128
cache_mem 16 MB
cache_dir /var/spool/squid 100 16 128
cache_access_log /var/log/squid/access.log
ftp_user squid@societe.com
acl lan src 192.168.218.0/255.255.255.0
http_access allow lan
cache_effective_user squid
cache_effective_group squid
SQUID est un logiciel proxy pour les protocoles HTTP, Gopher et FTP. Il permet
facilement de construire un pare-feu de type multi-domicilié. En dehors de son
utilisation à des fins de sécurité, il peut être utilisé comme cache pour améliorer les
performances d’accès au Web.
Démarrage du proxy
Il est possible de démarrer automatiquement le proxy Squid (cf. Module 7 : L’arrêt et
le démarrage). Pour le démarrer ou l’arrêter manuellement, on exécute les opérations
suivantes :
# cd /etc/rc.d/init.d
# ./squid start # pour le démarrer
…
# ./squid stop # pour l’arrêter
17-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Remarque
Les journaux de bord (logs) grossissent très vite. On doit les détruire ou les
réinitialiser périodiquement. Si on veut les détruire, il faut arrêter Squid. On peut les
réinitialiser sans arrêter l’exploitation avec la commande suivante :
# squid -k rotate
La configuration du proxy
C’est le fichier /etc/squid/squid.conf qui configure complètement le proxy. Ce fichier
est abondamment commenté. Tous les paramètres par défaut sont indiqués à titre
d’exemple, mis en commentaire.
Remarque
Le paramétrage du cache est un des éléments clés de la configuration. Plus le cache est
important, meilleures seront les performances. Il est conseillé d’avoir un serveur avec
au moins 512 Mo de mémoire vive et 10 Go de mémoire disque.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-31
Module 17 : La sécurité
acl Cette balise permet de créer une ACL (« Access Control List »), une liste
de contrôle d’accès. Cette liste intervient dans les autorisations ou les
interdictions d’accès aux protocoles gérés par le proxy (cf. Le paramètre
suivant).
http_access Cette balise permet d’autoriser ou d’interdire l’accès Web aux ACL
données en paramètres.
cache_mgr L’adresse e-mail du responsable du proxy, par défaut webmaster.
cache_effective_user
Le compte utilisateur sous lequel s’exécute le proxy, par défaut Squid.
cache_effective_group
Le compte groupe sous lequel s’exécute le proxy.
17-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
cache_effective_user squid
cache_effective_group squid
Remarque
Il n’est pas nécessaire de configurer le routage, aussi bien sur le réseau intérieur que
sur le réseau extérieur, car on utilise un pare-feu de type multi-domicilié, donc non
routeur, abritant des logiciels proxys.
Règles de sécurité
Les règles de sécurité sont :
• On autorise tous les accès du réseau intérieur en tant que client Web.
• Le reste est interdit.
Mise en œuvre
On désactive le routage sur le pare-feu.
# echo 0 > /proc/sys/net/ipv4/ip_forward
On configure SQUID sur le pare-feu et on l’active.
La configuration par défaut suffit. Une seule modification est nécessaire. Il faut
autoriser les accès des postes du réseau intérieur. Il est possible également d’utiliser le
fichier donné en exemple dans la section précédente.
# cd /etc/squid
# cp squid.conf squid.conf.old
# vi squid.conf
…
acl lan src 192.168.218.0/255.255.255.0
…
http_access allow lan
…
# cd /etc/rc.d/init.d
# ./squid start
Configuration des navigateurs du réseau intérieur
Dans notre cas on choisit 192.168.218.11 pour l'adresse du proxy et 3128 pour son
port.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-33
Module 17 : La sécurité
IP Masquerading
L’« IP Masquerading », traduction d’adresses IP, permet à un ensemble d’ordinateurs
d’être vu comme une seule machine. Cette technique peut être utilisée par un firewall
de type routeur filtrant. On peut remarquer qu’un routeur à base de proxy n’a pas
besoin de la traduction d’adresses, car les réseaux qu’il relie s’ignorent mutuellement.
Un des principaux intérêts de l’IP Masquerading est d’autoriser des réseaux privés à
utiliser Internet avec une seule adresse Internet.
Les adresses IP des réseaux privés
Les firewalls utilisant des proxys ou la traduction d’adresses peuvent masquer
complètement les détails d’un réseau privé. On pourrait imaginer, en conséquence, que
n’importe quelle adresse puisse être utilisée dans le réseau privé. Cela n’est pas
possible car il y a un problème, la mise à jour des tables de routage du firewall quand
ce dernier a besoin d’adresser un réseau qui possède la même adresse que le réseau
privé. La solution consiste à utiliser les adresses réservées à cet effet par les instances
d’Internet. Ces adresses ne sont attribuées à aucun réseau directement accessible sur
Internet.
Adresses de classe A : 10.0.0.0 à 10.255.255.255
Adresses de classe B : 172.16.0.0 à 172.31.255.255
Adresses de classe C : 192.168.0.0 à 192.168.255.255
17-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Netfilter
Le noyau 2.4 utilise une nouvelle technique de filtrage, Netfilter
(cf. www.netfilter.org), compatible avec les outils ipfwadm et ipchains.
Références
Howto :
Firewall-HOWTO qui concerne les pare-feu en général.
IPCHAINS-HOWTO : qui concerne l’utilisation d’ipchains.
Linux NET-3-HOWTO qui traite du réseau en général, il contient quelques
éléments sur les pare-feu.
IP-Masquerading HOWTO, très complet, il indique entre autres comment
compiler le noyau pour avoir le masquerading et les modules du noyau à charger
en fonction des options particulières voulues.
PPP-HOWTO, Ethernet-HOWTO
Livres : (cf. bibliographie).
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-29
Module 17 : La sécurité
# squid.conf
http_port 3128
cache_mem 16 MB
cache_dir /var/spool/squid 100 16 128
cache_access_log /var/log/squid/access.log
ftp_user squid@societe.com
acl lan src 192.168.218.0/255.255.255.0
http_access allow lan
cache_effective_user squid
cache_effective_group squid
SQUID est un logiciel proxy pour les protocoles HTTP, Gopher et FTP. Il permet
facilement de construire un pare-feu de type multi-domicilié. En dehors de son
utilisation à des fins de sécurité, il peut être utilisé comme cache pour améliorer les
performances d’accès au Web.
Démarrage du proxy
Il est possible de démarrer automatiquement le proxy Squid (cf. Module 7 : L’arrêt et
le démarrage). Pour le démarrer ou l’arrêter manuellement, on exécute les opérations
suivantes :
# cd /etc/rc.d/init.d
# ./squid start # pour le démarrer
…
# ./squid stop # pour l’arrêter
17-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Remarque
Les journaux de bord (logs) grossissent très vite. On doit les détruire ou les
réinitialiser périodiquement. Si on veut les détruire, il faut arrêter Squid. On peut les
réinitialiser sans arrêter l’exploitation avec la commande suivante :
# squid -k rotate
La configuration du proxy
C’est le fichier /etc/squid/squid.conf qui configure complètement le proxy. Ce fichier
est abondamment commenté. Tous les paramètres par défaut sont indiqués à titre
d’exemple, mis en commentaire.
Remarque
Le paramétrage du cache est un des éléments clés de la configuration. Plus le cache est
important, meilleures seront les performances. Il est conseillé d’avoir un serveur avec
au moins 512 Mo de mémoire vive et 10 Go de mémoire disque.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-31
Module 17 : La sécurité
acl Cette balise permet de créer une ACL (« Access Control List »), une liste
de contrôle d’accès. Cette liste intervient dans les autorisations ou les
interdictions d’accès aux protocoles gérés par le proxy (cf. Le paramètre
suivant).
http_access Cette balise permet d’autoriser ou d’interdire l’accès Web aux ACL
données en paramètres.
cache_mgr L’adresse e-mail du responsable du proxy, par défaut webmaster.
cache_effective_user
Le compte utilisateur sous lequel s’exécute le proxy, par défaut Squid.
cache_effective_group
Le compte groupe sous lequel s’exécute le proxy.
17-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
cache_effective_user squid
cache_effective_group squid
Remarque
Il n’est pas nécessaire de configurer le routage, aussi bien sur le réseau intérieur que
sur le réseau extérieur, car on utilise un pare-feu de type multi-domicilié, donc non
routeur, abritant des logiciels proxys.
Règles de sécurité
Les règles de sécurité sont :
• On autorise tous les accès du réseau intérieur en tant que client Web.
• Le reste est interdit.
Mise en œuvre
On désactive le routage sur le pare-feu.
# echo 0 > /proc/sys/net/ipv4/ip_forward
On configure SQUID sur le pare-feu et on l’active.
La configuration par défaut suffit. Une seule modification est nécessaire. Il faut
autoriser les accès des postes du réseau intérieur. Il est possible également d’utiliser le
fichier donné en exemple dans la section précédente.
# cd /etc/squid
# cp squid.conf squid.conf.old
# vi squid.conf
…
acl lan src 192.168.218.0/255.255.255.0
…
http_access allow lan
…
# cd /etc/rc.d/init.d
# ./squid start
Configuration des navigateurs du réseau intérieur
Dans notre cas on choisit 192.168.218.11 pour l'adresse du proxy et 3128 pour son
port.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-33
Module 17 : La sécurité
Un exemple d’accès
Sur le poste 192.168.218.1 appartenant au réseau intérieur, on accède à la page
d’accueil du serveur 173.17.0.2 faisant partie du réseau extérieur.
Extrait du log du serveur 173.17.0.2 :
173.17.0.1 - - [02/Dec/2000:13:53:24 +0100] "GET / HTTP/1.0" 304 -
173.17.0.1 - - [02/Dec/2000:13:53:24 +0100] "GET /poweredby.gif HTTP/1.0" 304 -
173.17.0.1 - - [02/Dec/2000:13:53:24 +0100] "GET /icons/apache_pb.gif HTTP/1.0"
304 –
Extrait du log de SQUID :
975762311.099 75 192.168.218.1 TCP_MISS/304 206 GET http://173.17.0.2/ -
DIR
ECT/173.17.0.2 -
975762311.188 26 192.168.218.1 TCP_MISS/304 206 GET
ttp://173.17.0.2/powere
dby.gif - DIRECT/173.17.0.2 -
975762311.210 109 192.168.218.1 TCP_MISS/304 206 GET
ttp://173.17.0.2/icons/
apache_pb.gif - DIRECT/173.17.0.2 –
17-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Le concept de chaîne
Une chaîne est constituée d’une suite de règles, créées par l’option « –A ». Pour
chaque règle, on indique la politique à suivre, via l’option « –j », laisser passer le
paquet ou l’abandonner. Si la règle ne s’applique pas au paquet, on passe à la règle
suivante de la chaîne. Enfin, si aucune règle de la chaîne ne s’applique, la politique de
la chaîne, définie par l’option « -P », s’applique au paquet.
Les chaînes prédéfinies et le parcours d’un paquet
• Un paquet entrant passe d’abord par la chaîne « input chain ».
• Si le paquet n’est pas rejeté, il passe ensuite dans le module de routage.
• A la sortie du module de routage, il passe par la chaîne « forward chain ».
• Si le paquet n’est pas rejeté, il passe par la chaîne « output chain ».
• Si le paquet n’est pas rejeté, il ressort !
Il existe des cas particuliers :
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-35
Module 17 : La sécurité
17-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-37
Module 17 : La sécurité
Ajouter une règle qui rejette les paquets entrants de connexion destinés au réseau
173.17.0.0/16.
# ipchains –A input –d 173.17.0.0/16 --syn –j REJECT
Supprimer la possibilité de faire un « ping localhost » au niveau du pare-feu.
# ipchains –A input –s 127.0.0.1 –p icmp –j DENY
# ping 127.0.0.1
…
…100%packet loss
Supprimer la première règle de la chaîne « input ».
# ipchains –D input 1
Supprimer l’ensemble de toutes les règles (remettre la configuration de départ).
# ipchains -X
# ipchains -F
# ipchains –P input ACCEPT
# ipchains –P output ACCEPT
# ipchains –P forward ACCEPT
Activer le masquerading sur la première liaison modem.
# ipchains –P forward DENY
# ipchains –A forward –i ppp0 –j MASQ
Rejeter tous les paquets entrants.
# ipchains –A input –s 0/0 –j DENY # ou ipchains –A input –j DENY
Vérifier si un paquet passe, en fonction des règles courantes. Dans le cas présent, le
paquet de connexion au serveur 192.168.1.2 sur le port 80, et provenant du client
192.168.1.6 sur le port 5685, le paquet arrivant d’abord sur la chaîne « input » et
provenant de l’interface eth0. En résumé, une demande de connexion à un serveur
Web.
# ipchains –C input –p tcp –y –i eth0 –s 192.168.1.6 5685 –d 192.168.1.2 80
packet accepted.
17-38 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
• Dans un premier temps, les messages ICMP sont autorisés à des fins de tests
(ping). Ils seront ultérieurement limités.
• Dans un premier temps, la connexion au pare-feu, via telnet, est autorisée à partir
du serveur Web interne.
• Le reste est interdit.
Paramétrage d’un poste du réseau intérieur
Sur un système Linux, il suffit de choisir le pare-feu comme routeur :
# route add default gw 192.168.218.11
Paramétrage d’un poste du réseau extérieur
Sur un système Linux, on ajoute le réseau intérieur dans les tables de routage :
# route add –net 192.168.218.0 netmask 255.255.255.0 gw 173.17.0.1
Paramétrage du pare-feu
# /sbin/ipchains -P input DENY
# /sbin/ipchains -A input -p tcp -s 192.168.218.1 \
> -d 192.168.218.11 23 -j ACCEPT
# /sbin/ipchains -A input -p icmp -j ACCEPT
# /sbin/ipchains -A input -p tcp \
> -s 173.17.0.0/16 -d 192.168.218.1 80 --syn -j ACCEPT
# /sbin/ipchains -A input -p tcp \
> -s 173.17.0.0/16 -d 192.168.218.0/24 80 --syn -j DENY
# /sbin/ipchains -A input -p tcp -s 0.0.0.0/0 80 -b -j ACCEPT
# echo 1 > /proc/sys/net/ipv4/ip_forward # active le routage
# ipchains -L –n
Chain input (policy DENY):
target prot opt source destination ports
ACCEPT tcp ------ 192.168.218.1 192.168.218.11 * -> 23
ACCEPT icmp ------ 0.0.0.0/0 0.0.0.0/0 * -> *
ACCEPT tcp -y---- 173.17.0.0/16 192.168.218.1 * -> 80
DENY tcp -y---- 173.17.0.0/16 192.168.218.0/24 * -> 80
ACCEPT tcp ------ 0.0.0.0/0 0.0.0.0/0 80 -> *
ACCEPT tcp ------ 0.0.0.0/0 0.0.0.0/0 * -> 80
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-39
Module 17 : La sécurité
Remarque
On peut mettre en évidence le masquerading, en regardant le log
/etc/httpd/logs/access_log d’un serveur Web Apache, qui se trouve, par exemple, sur
le réseau extérieur 173.17.0.2 et qui est atteint à partir d’un navigateur installé sur un
poste du réseau intérieur, 192.168.218.1 par exemple. Dans le log, c’est l’adresse du
pare-feu (173.17.0.1) qui apparaît et non le véritable client (192.168.218.1).
17-40 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 17 : La sécurité
Atelier 17 : La sécurité
Atelier 14 : La sécurité
Objectif :
Savoir gérer la sécurité de connexion
Durée : 15 minutes.
Exercice n°1
Quel est le mot de passe, sous forme cryptée, de l’utilisateur pierre ?
Exercice n°2
Forcez l’utilisateur pierre à changer son mot de passe tous les quinze jours. Faites en
sorte qu’il soit prévenu trois jours avant.
Exercice n°3
Recherchez les fichiers exécutables par tout le monde, qui possèdent des droits
d’endossement.
Exercice n°4
Listez les dernières connexions.
Exercice n°5
Quelles sont les règles de sécurité utilisées par la commande rlogin ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 17-41
Module 17 : La sécurité
Exercice N°6
17-42 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 18 : Bases de données
• Base de données
• Tables
• Langage SQL
• MySQL
• PostgreSQL
18Module 18 : Bases de
données
Objectifs
Après l’étude de ce module, le lecteur connaît l’existence de deux logiciels libres de
gestion de base de données pour UNIX et Linux. Les exemples lui permettent une
première mise en œuvre.
Contenu
MySQL,
PostgreSQL
Références
HOWTO : Oracle8-HOWTO
Livres : MySQL and mSQL
POSTGRESQL : Introduction and concepts
Oracle 8i sous Linux
Internet : http://www.mysql.com
http://www.postgresql.org
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 18-1
Module 18 : Bases de données
MySQL
MySQL
SGBD gratuit.
Permet un accès SQL à une base données en client/serveur en
réseau.
Fonctionne sur l'ensemble des systèmes Unix et sur Windows.
Conçu en Multi-Thread, il est très rapide.
Accessible à partir des langages C, Perl, Java (via JDBC),
Python, …
Utilisé principalement pour les applications Web.
Caractéristiques de MySQL
Le serveur MySQL a été conçu en multi-thread. Il est très simple et, par conséquent,
très rapide. Son intérêt majeur est son utilisation dans des applications Web, par
exemple, une application Perl/CGI. Cette application est activée par un serveur
Apache sous Linux qui, grâce à l’interface DBI, permet l’ accès à une base
MySQL.Perl, Apache, Linux et MySQL sont tous gratuits et performants. MySQL
fonctionne sur plus de 500 000 serveurs, et la société TcX, qui est à l'origine de
MySQL, gère grâce à ce SGBD, plus de 40 bases comprenant 10 000 tables et
totalisant plus de 100 Go de données.
On peut accéder à une base MySQL avec des applications en langage C, en Perl, en
PHP, en Java (via JDBC) ou Python, ...
Par rapport aux autres bases de données, comme Oracle ou Informix, MySQL apporte
les restrictions suivantes :
• pas de transactions.
• pas de « Triggers » (réflexes).
• pas de procédures stockées.
• pas de sous-sélections.
• pas d’approche objet.
Dans le monde des bases de données libres sous Unix, MySQL est une alternative aux
logiciels mSQL et PostgreSQL.
18-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 18 : Bases de données
Histoire de MySQL
En 1994, Michael Widenius, de la société suédoise TcX, adapte mSQL pour accéder
aux fichiers ISAM de la base maison UNIREG. mSQL avait été créé par David
Hughes à l'université Bond en Australie. Il s'était inspiré de la base Postgres (qui
succédait à Ingres), mais avec une interface SQL. A l'époque Postgres ne connaissait
pas SQL. En 1995, TcX met MySQL 1.0 à disposition sur Internet.
Structure
Il y a un répertoire par base de données : /var/lib/mysql/<la_base>/
Pour chaque table, il y a trois fichiers :
la_table.ISD Le fichier de données
la_table.ISM Le fichier qui contient les clés
la_table.frm Le fichier qui contient la structure de la table
Administration
Installation de MySQL
Il convient d’installer les paquetages de MySQL :
# rpm –ivh MySQL-3*.rpm # installe le serveur
# rpm –ivh MySQL-client*.rpm # installe le client
Remarque
Les paquetages de MySQL ne sont pas livrés avec la distribution RedHat, il faut se
les procurer sur Internet. Le célèbre site http://rufus.w3.org les contient.
Démarrage de MySQL
Le démarrage de MySQL s’effectue très simplement :
# safe_mysqld &
Remarques
Il existe aussi le script mysql.server qui peut être lancé par les scripts de démarrage.Un
journal de bord (log) est créé si on utilise ‘'option --log. Le log est présent dans le
fichier /var/lib/mysql/le_serveur.log. A chaque lancement, il ajoute un numéro
d’historique.
On peut également démarrer la base en mode débogage avec l’option « --debug ».
Il est possible de démarrer et d’arrêter un serveur MySQL grâce au script
/etc/rc.d/init.d/mysql en donnant en argument le mot start ou le mot stop.
Arrêt
Il existe une commande d’arrêt de MySQL, la commande mysqladmin.
# mysqladmin shutdown -u root -p
L’option « -u root » n’est pas nécessaire si on est déjà connecté en tant que root.
L’option « -p » provoque la demande du mot de passe.
On peut également fournir le mot de passe en argument avec l’option
« --password=mot_de_passe ». Ceci est peu recommandé, souvenons-nous de la
commande ps –ef.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 18-3
Module 18 : Bases de données
18-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 18 : Bases de données
La sécurité
Les comptes utilisateurs et les droits d’accès aux bases sont mémorisés dans les tables
de la base mysql.
user Définit les utilisateurs.
db Définit les accès aux tables.
host Définit les hôtes qui peuvent accéder aux bases.
tables_priv, columns_priv
Définit les accès. Cette table est mise à jour par les ordres sql GRANT et
REVOKE.
Remarque
Il existe également la table func qui n'a pas de rapport avec la sécurité.
La logique de contrôle d’accès est la suivante :
1) A la connexion, MySQL se sert de la table user pour vérifier si l’utilisateur est
autorisé à partir de l’hôte client utilisé. Un mot de passe est éventuellement nécessaire.
1-1) MySQL recherche d’abord l’hôte dans la table user, en privilégiant les
noms qui n’ont pas de jocker « % ». Un champ Host vide est traité comme
contenant « % ».
1-2) Si MySQL a trouvé un hôte qui correspond, il recherche l’utilisateur,
toujours dans la base user, en privilégiant les noms d’utilisateurs qui n’ont pas
de jocker « % ». Un champ User vide, ou le nom « nobody », est traité comme
« % ».
2) Une fois connecté, MySQL vérifie les accès en se basant sur les tables user, db,
host, tables_priv et columns_priv.
Si la table user donne l’autorisation, l’accès est immédiatement donné. Sinon, MySQL
recherche les autorisations dans les autres tables en respectant l’ordre suivant :
1 – db
2 – tables_priv
3 – columns_priv
Ajout d’un utilisateur qui possède un mot de passe vide
La valeur « % » dans le champ Host, signifie que l’utilisateur peut se connecter à
partir d’un poste quelconque. S’il se connecte à partir du poste local (localhost), il
devra utiliser l’option « -h hote », et comme hôte, le nom réseau du site et non
localhost, qui correspond à la valeur par défaut.
mysql> use mysql ;
mysql> insert into user (Host, User, Password) values (’%’, ’pierre’,’’) ;
Changement du mot de passe d’un utilisateur
mysql> use mysql ;
mysql> update user set Password = password(’mot_de_passe’) where user=’pierre’;
Mise à jour de l’instance en mémoire
Cette action est nécessaire si l’on doit modifier les tables de la base mysql.
# mysqladmin reload --password=mot_de_passe
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 18-5
Module 18 : Bases de données
18-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 18 : Bases de données
PostgreSQL
PostgreSQL
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 18-7
Module 18 : Bases de données
postgresql-dump Permettre une mise à jour d’une base lors d’un changement de
version.
postmaster Le serveur multi-utilisateur (« multi-user backend »).
psql Le client interactif.
VACCUM Analyser ou nettoyer une base, à faire périodiquement.
Administration
Installation
PostgreSQL est livré en standard dans les distributions RedHat. Les deux principaux
paquetages sont :
• postgresql-server-*.rpm Contient le serveur (postmaster).
• postgresql-*.rpm Contient les bibliothèques et le client.
Deux autres paquetages sont très intéressants :
• postgresql-odbc-*.rpm Apporte le support ODBC.
• postgresql-perl-*.rpm Permet d’utiliser Perl pour l’accès au SGBD.
Arrêt et démarrage
L’arrêt et le démarrage sont classiques :
# cd /etc/rc.d/init.d
# ./postgresql start # démarre la base
# ./postgresql stop # arrête la base
Remarques
La première fois que l’on lance PostgreSQL, il crée la base système et une base
d’exemple vide « template1 ».
Si l’on veut vérifier que le serveur est actif, on lance la commande suivante :
# ps –ef | grep postmaster
18-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 18 : Bases de données
La sécurité
L’installation de PostgreSQL crée l’utilisateur postgres, l’administrateur (DBA). Cet
utilisateur à la fois Linux et PostgreSQL, permet la gestion des bases et des
utilisateurs postgresql.
Les comptes utilisateurs et leur mot de passe (initialisé à vide) sont stockés dans la
table système « pg_user ».
Création d’un utilisateur
# su postgres
bash$ createuser pierre
Enter user's postgres ID -> 100
Is user "pierre" allowed to create databases (y/n) y
Is user "pierre" a superuser? (y/n) n
createuser: pierre was successfully added
bash$
Modifier le mot de passe d’un utilisateur
# su postgres
bash$ psql template1
…
template1=> update pg_user set passwd = 'ibm3090' where usename='cathy';
UPDATE 0
Modification des droits d’un utilisateur, via l’ordre SQL grant
Dans l’exemple qui suit, on donne tous les droits à pierre sur la table pers, créée plus
loin dans le paragraphe Utilisation.
# su postgres
bash$ psql essai
…
essai=> grant all on pers to pierre ;
CHANGE
essai=> \z
Database = essai
+----------+--------------------------+
| Relation | Grant/Revoke Permissions |
+----------+--------------------------+
| pers | {"=","pierre=arwR"} |
+----------+--------------------------+
essai=>
Gérer les accès distants
Le fichier /var/lib/pgsql/pg_hba.conf permet de gérer les accès distants. Par défaut, il
n’y a que les accès locaux qui sont autorisés. Si l’on désire accepter toutes les
connexions, on retire le commentaire devant la ligne suivante :
host all 0.0.0.0 0.0.0.0 trust
Utilisation, la commande psql
La commande psql correspond à un client postgresql. Elle permet d’utiliser une base
de données. On se connecte par défaut sous le compte homonyme du compte Unix
sous lequel on est connecté. Si l’on veut se connecter sous un autre compte, on utilise
l’option « –u ».
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 18-9
Module 18 : Bases de données
Quelques options :
-c requête Permettre d’activer une requête fournie en argument.
-f fichier Indiquer un fichier contenant des requêtes.
-o fichier Indiquer un fichier de sorties.
-h hôte Permettre de donner l’adresse du serveur.
-p port Spécifier le port du serveur, par défaut 5432 (TCP).
-H Provoquer une sortie au format HTML.
-l Afficher la liste des bases de données.
-u Provoquer la demande du nom et du mot de passe de l’utilisateur.
Quelques commandes :
\dS Afficher la liste des tables système.
\dt Afficher la liste des tables de la base courante (non système).
\d Afficher la liste de toutes les tables, y compris les tables système.
\d table Afficher les champs d’une table.
\l Afficher la liste des bases de données.
\z Afficher les autorisations.
\!cmd Exécuter une commande via un shell.
\df Afficher les fonctions.
\connect base [user]
Se connecter à une autre base.
\q Quitter.
Exemples
Afficher les bases existantes.
$ psql -l
$ psql -h localhost -p 5432 -l # idem
Se connecter à une base.
$ psql essai
$ psql # idem, si on est l’utilisateur essai
$ psql template1 –u # se connecter sous un autre compte.
Username: cathy
Password:
$ psql -h venus template1 # accès distant
Afficher la liste des tables d’une base.
$ psql -c ’\dt’ essai
Récupérer dans un fichier le résultat d’une requête.
$ psql -c 'select * from pers' -o result essai
Récupérer dans un fichier le résultat d’une requête, mais au format HTML.
$ psql -c 'select * from pers' -o -H result.html essai
18-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Module 18 : Bases de données
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 18-11
Module 18 : Bases de données
Objectif :
Avoir une première approche des
outils libres de gestion de bases de
données.
Durée : 30 minutes.
Exercice n°1
Reproduisez les exemples d’utilisation de MySQL pour vous familiariser avec l’outil.
Exercice n°2
Reproduisez les exemples d’utilisation de PostgreSQL pour vous familiariser avec
l’outil.
18-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexes
A. Annexes
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-1
Annexe A : Les commandes POSIX 2
bc - Calculatrice.
bc [-l] [fichier ...]
cd - Change de répertoire.
cd [chemin]
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-3
Annexe A : Les commandes POSIX 2
-p Utilise la valeur par défaut de la variable PATH, pour rechercher une commande
standard.
cmd Le nom du fichier qui contient la commande à exécuter, surchage éventuellement le nom
d’une commande interne ou d’une fonction.
cp - Copie de fichier.
cp [-fip] fichier1 fichier2
cp [-R | -r] [-fip] fichier ... rep
-u N’utilise pas la variable TZ, et renvoie donc l’heure universelle au lieu de l’heure
locale.
+format Spécifie un format d’affichage. Ex : +"%H".
A-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe A : Les commandes POSIX 2
ed - Edite un texte.
ed [-p ch] [-s] [fichier]
Liste des symboles utilisés : (, ), |, &, = , >, >=, <, <=, !=, +, -, *, /, %, :.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-5
Annexe A : Les commandes POSIX 2
fold - Affiche les lignes d’un fichier avec une limite de la longueur de ligne.
fold [-bs] [ -w larg ] [ fichier ...]
-w larg Fixe la largueur maximale d’une ligne à larg caractères, par défaut 80.
-b L’unité de larg est en octet (« byte »).
-s Si la coupure a lieu au niveau d’un blanc, les blancs suivants sont ignorés.
A-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe A : Les commandes POSIX 2
-a nb Produit une ligne pour chaque ligne non appariée du fichier numéro nb.
-v nb Produit seulement une sortie pour les lignes non appariées du fichier numéro 1.
-e ch Remplace une sortie vide par la chaîne ch.
-o liste Spécifie les champs présents en sortie.
-t car Spécifie le délimiteur de champ.
-1 ch Spécifie le champ de jointure du fichier 1.
-2 ch Spécifie le champ de jointure du fichier 2.
ln - Crée un lien.
ln [-f] fichier1 fichier2
ln [-f] fichier ... chemin
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-7
Annexe A : Les commandes POSIX 2
lp - Imprime un fichier.
lp [-c] [-d dest] [-n nb] [fichier ...]
-c Fait une copie du fichier avant de le mettre dans la file d’attente d’impression.
-d dest Envoie l’impression sur dest.
-n nb Impression en nb copies.
mv - Déplace un lien.
mv [-fi] fichier1 fichier2
mv [-fi] fichier ... chemin
A-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe A : Les commandes POSIX 2
-s Utilise le caractère tab au lieu du séparateur de ligne, comme délimiteur des éléments à
fusionner.
-d liste Utilise les caractères de la liste, au lieu du séparateur de ligne, comme délimiteur des
éléments à fusionner.
(1) Sauvegarde.
(2) Liste le contenu de l’archive.
(3) Restauration.
(4) Copie d’arborescence.
-d Les répertoires sont sauvegardés ou restaurés.
-i Permet de renommer interactivement les fichiers.
-u Restauration inconditionnelle (-r), sauvegarde inconditionnelle (-w -a).
-v («verbose») Une ligne est affichée pour chaque fichier sauvé/restauré.
-X L’exploration arborescente s’arrête lorsque l’on change de périphérique.
-b bs Spécifie la taille des blocs.
-a Ajout des fichiers en fin d’archive.
-f ar Le fichier ar est le support d’archive, par défaut, l’entrées ou la sortie standard.
-o opt Permet de spécifier des options non standard.
-s sub Modifie le nom des fichiers en se basant sur la chaîne sub.
-x form Spécifie le format de l’archive : cpio ou ustar, par défaut ustar.
-c Prend en compte tous les fichiers, exceptés ceux spécifiés par les modèles.
-n Ne prend en compte que le premier fichier correspondant au modèle.
-k Empêche la restauration d’effacer des fichiers.
-p ch Spécifie grâce à la chaîne ch, les caractéristiques conservées ou non des fichiers restaurés.
-l Des liens sont créés si possible.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-9
Annexe A : Les commandes POSIX 2
rm - Détruit un fichier.
rm [-fiRr] fichier ...
A-10 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe A : Les commandes POSIX 2
-n Supprime la sortie par défaut : normalement chaque ligne non modifiée est
recopiée sur la sortie standard.
script Une instruction sed.
-e script Une instruction sed.
-f prg Le fichier prg contient une suite d’instructions sed.
sleep - Temporisation.
sleep secondes
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-11
Annexe A : Les commandes POSIX 2
A-12 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe A : Les commandes POSIX 2
touch - Crée un fichier vide ou met à jour la date de modification d’un fichier.
touch [-acm] [-r fic | -t tmp] fichier ...
-c Tous les caractères qui ne se trouvent pas dans la première chaîne sont remplacés par le
dernier caractère de la deuxième chaîne.
-s Remplace la répétition d’un caractère par un seul.
-d Détruit tous les caractères qui se trouvent dans la chaîne 1.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-13
Annexe A : Les commandes POSIX 2
A-14 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe B : sh – Le shell POSIX
-a,-C,-e,-f,-n,-u,-v,-x
Voir la description de la commande interne set.
script Le script exécuté par le shell.
-c Le shell exécute la commande cmd.
-i Shell interactif.
-s Lit les commandes à partir de l’entrée standard.
La commande interne set
set [-aCefnuvx] [arg ...]
set [+aCefnuvx] [arg ...]
set -- [arg ...]
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-15
Annexe B : sh – Le shell POSIX
Les commentaires
# ....<New Line>
Les fonctions
Identificateur () {Liste ;}
Substitution de répertoires
~ Le répertoire de connexion.
~jean Le répertoire de connexion de jean.
Les caractères de protection (d’échappement)
\ Annule la signification du caractère suivant.
’...’ Annule tous les caractères.
"..." Annule tous les caractères, sauf `, \, et $.
Remplacement de noms de fichiers
* Correspond à une chaîne quelconque, même vide.
? Correspond à un caractère quelconque.
[[domaine]...] Un des caractères du domaine.
[![domaine]...] Aucun des caractères du domaine.
Substitution de commandes
`commande` ou $(commande)
Les redirections
[n]<mot Redirection de l’entrée standard.
[n]>mot Redirection de la sortie standard.
[n]>| mot Idem, mais ne tient pas compte de noclobber.
[n]>> mot Redirection de la sortie standard en ajout à mot.
[n]<> mot Mot devient l’entrée et la sortie standard.
[n]<<[-] ch L’entrée du shell est lue jusqu’à la ligne correspondant à ch. Si - est
ajouté à <<, les tabulations de début sont supprimées.
[n]<&m L’entrée standard est dupliquée dans le descripteur m.
[n]>&m La sortie standard est dupliquée dans le descripteur m.
[n]<&- L’entrée standard est fermée.
[n]>&- La sortie standard est fermée.
A-16 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe B : sh – Le shell POSIX
Opérateurs unaires
- moins
! non
~ complément à un
Opérateurs binaires
* multiplication
/ division entière
% modulo
+ addition
- soustraction
<< décalage à gauche
>> décalage à droite
< inférieur à
<= inférieur ou égal à
> supérieur à
>= supérieur ou égal à
== égal à
!= différent
& et binaire
^ ou binaire exclusif
| ou binaire
&& et logique
|| ou logique
= affectation
op= exp = exp op exp
*= /= %= ~= <<= >>= &= ^= |=
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-17
Annexe B : sh – Le shell POSIX
A-18 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe C : ksh – Le Korn shell
Fonction
ksh - Appelle le Korn shell.
Syntaxe
ksh [-i] [+|-aefhkntuvx] [-o Option][-c Chaîne | -s | Fichier [Paramètre]]
Options
-i Shell interactif.
-c cmd Exécute la commande cmd.
-p Permet aux IDs réel et effectif d’être différents.
-r Shell restreint.
-s Commandes lues à partir de l’entrée standard.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-19
Annexe C : ksh – Le Korn shell
A-20 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe C : ksh – Le Korn shell
Les redirections
<Fichier Redirection de l’entrée standard.
>Fichier Redirection de la sortie standard.
>| Fichier Idem, mais ne tient pas compte de noclobber.
>> Fichier Redirection de la sortie standard en ajout au fichier.
<> Fichier Le fichier devient l’entrée et la sortie standard.
<<[-] Mot L’entrée du shell est lue jusqu’à la ligne correspondant à Mot. Si - est
ajouté à <<, les tabulations de début sont supprimées.
<&n L’entrée standard est dupliquée dans le descripteur n.
>&n La sortie standard est dupliquée dans le descripteur n.
<&- L’entrée standard est fermée.
>&- La sortie standard est fermée.
<&p L’entrée du coprocessus est déplacée vers l’entrée standard.
>&p La sortie du coprocessus est déplacée vers la sortie standard.
n>&m Duplique le descripteur n dans m.
Les expressions de variables
$nom La valeur de la variable.
${nom} Idem.
${#nom[*]} Le nombre d’éléments du tableau.
${nom[*]} Tous les éléments du tableau.
${nom[0]} Le premier élément du tableau.
${nom[:]-mot} Mot si nulle ou non définie.
${nom[:]=mot} Affecte mot si nulle ou non définie.
${nom[:]?mot} Affiche mot et exit si non définie.
${nom[:]+mot} Mot si non nulle.
${nom#modèle} Supprime le petit modèle à gauche.
${nom##modèle} Supprime le grand modèle à gauche.
${nom%modèle} Supprime le petit modèle à droite.
${nom%%modèle} Supprime le grand modèle à droite.
Les variables internes du shell
$0 Nom du script.
$1-$9 Paramètres du shell (1 à 9).
$* Tous les paramètres.
$@ Idem (mais "$@" eq. à "$1" "$2"...).
$# Nombre de paramètres.
$- Options du shell.
$? Code retour de la dernière commande.
$$ PID du shell.
$! PID du dernier processus shell lancé en arrière-plan.
Les variables - les variables prédéfinies
ERRNO Code erreur du dernier appel système.
LINENO Ligne courante du script.
OLDPWD Répertoire précédent.
OPTARG (cf. getopts)
OPTIND (cf. getopts)
PPID PID du processus père.
PWD Répertoire courant.
RANDOM Nombre aléatoire.
REPLY Réponse à un select.
SECONDS Temps écoulé depuis le lancement du shell.
CDPATH Répertoires explorés par cd.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-21
Annexe C : ksh – Le Korn shell
A-22 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe C : ksh – Le Korn shell
Expression composée
(E) Vrai si E est vraie.
!E Vrai si E est fausse.
E1 && E2 Vrai si E1 et E2 sont vraies.
E1 || E2 Vrai si E1 ou E2 est vraie.
Les expressions arithmétiques
expression
terme
(expression)
exp_avec_opérateur_unaire
exp_avec_opérateur_binaire
Terme
variable_entière
[base#]constant
Opérateurs unaires
- moins
! non
~ complément à un
Opérateurs binaires
* multiplication
/ division entière
% modulo
+ addition
- soustraction
<< décalage à gauche
>> décalage à droite
< inférieur à
<= inférieur ou égal à
> supérieur à
>= supérieur ou égal à
== égal à
!= différent
& et binaire
^ ou binaire exclusif
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-23
Annexe C : ksh – Le Korn shell
| ou binaire
&& et logique
|| ou logique
= affectation
op= exp = exp op exp
*= /= %= ~= <<= >>= &= ^= |=
Les commandes internes
: [Arg ...] Etend les arguments, retourne vrai.
. Fichier [Arg...] Le shell courant exécute le fichier.
alias [-tx] Nom[=Valeur]] ...
Crée ou liste les alias.
-x Exporte l’alias.
-t Crée un alias « repéré » par le chemin absolu.
bg [Travail ...] Place les travaux en arrière-plan.
break [n] Sort de n niveaux de boucle.
cd [Arg] Change de répertoire.
continue [n] Passe à l’itération suivante, n indique le nombre
d’imbrications.
echo [Arg ...] (cf. La commande echo)
eval [Arg ...] Les arguments sont lus comme entrée du shell et ensuite
exécutés.
exec [Arg ...] La commande donnée en argument se substitue au shell.
exit [n] Provoque la sortie du shell avec l’état de sortie n.
export [Nom[=Valeur]] ... Les noms spécifiés sont exportés.
fc [-e Nom_éditeur] [-nlr] [Première [Dernière]]
Liste les commandes ou les édite.
fg [travail ...] Place le travail spécifié au premier plan.
getopts Chaîne_options Nom [Arg ...]
Extrait les options (cf. paragraphe suivant).
jobs [-lnp] [travail ...] Liste les travaux spécifiés.
kill -l Liste des signaux.
kill [-Signal] Travail ... Transmet un signal (par défaut TERM) aux travaux
spécifiés.
Désigne un travail :
PID
%Numéro_Travail
%Chaîne Travail qui commence par Chaîne.
%?Chaîne Travail qui contient Chaîne.
%% Travail en cours.
%+ Equivalent à %%.
%- Travail précédent.
let Exp ... Evalue les expressions.
newgrp [-] [group] Change le groupe courant.
print [-Rnpreu[n]] [Arg...] Affiche les arguments.
-R Ecrit en mode brut.
-n Empêche d’ajouter une ligne sur la sortie.
-p Envoie les arguments vers le tube généré par
l’intermédiaire de |&.
-r Ecrit en mode brut.
-e Envoie les arguments vers le fichier historique.
-u Ecrit la sortie vers le fichier de descripteur u.
pwd Affiche le répertoire courant.
A-24 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe C : ksh – Le Korn shell
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-25
Annexe C : ksh – Le Korn shell
getopts
getopts Chaîne_options Nom [Argument ...]
Vérifie les options d’un argument. Si aucun argument n’est spécifié, le paramètre
Chaîne_options contient les lettres reconnues par la commande getopts. Si une lettre
est suivie d’un signe deux-points (:), l’option doit comporter un argument. Un espace
peut séparer l’option et l’argument. La commande getopts place la lettre
correspondant à l’option suivante dans la variable Nom lorsque le signe + précède
l’argument. L’index de l’argument suivant est enregistré dans OPTIND. L’argument
d’option, s’il existe, est placé dans OPTARG. Si un signe deux-points (:) est placé au
début du paramètre Chaîne_options, la commande getopts enregistre la lettre
correspondant à une option incorrecte dans OPTARG, et attribue la valeur ? à la
variable Nom d’une option inconnue, ou la valeur : lorsqu’une option requise n’est pas
spécifiée. L’état de sortie est différent de zéro lorsqu’il n’y a plus d’option.
A-26 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe D : bash – Bourne Another Shell
Fonction
bash - Appelle le Bourne Another Shell.
Syntaxe
bash [option...] [script...]
Voir la commande set pour les autres options d’une seule lettre.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-27
Annexe D : bash – Bourne Another Shell
-p Mode privilégié.
Le fichier $ENV n’est pas exécuté, les fonctions ne sont pas héritées.
-t Sort après l’exécution d’une commande.
-u Traite les paramètres non définis en tant qu’erreurs.
-v Mode verbose.
-x Trace les commandes.
-C Equivalent au drapeau noclobber.
-H Active l’utilisation de l’historique des commandes de style C-Shell (!!, ...).
-P Utilise les répertoires physiques au lieu des liens symboliques correspondants.
- Désactive les options « -x » et « -v ». Signale la fin des options.
-- Débute la liste d’arguments, même si le premier argument commence par « + »
ou « -».
A-28 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe D : bash – Bourne Another Shell
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-29
Annexe D : bash – Bourne Another Shell
Les accolades peuvent être imbriquées et elles sont interprétées avant les autres
caractères spéciaux.
A-30 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe D : bash – Bourne Another Shell
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-31
Annexe D : bash – Bourne Another Shell
Dans le cas d’un shell non interactif, la variable PS1 est vide.
L’instruction let
let expression ...
L’expansion arithmétique
$[ expression ]
$((expression))
Opérateurs unaires
- moins
+ plus
! non
~ complément à un
Opérateurs binaires
* multiplication
/ division entière
% modulo
+ addition
- soustraction
<< décalage à gauche
>> décalage à droite
A-32 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe D : bash – Bourne Another Shell
< inférieur à
<= inférieur ou égal à
> supérieur à
>= supérieur ou égal à
== égal à
!= différent
& et binaire
^ ou binaire exclusif
| ou binaire
&& et logique
|| ou logique
= affectation
op= exp = exp op exp
*= /= %= ~= <<= >>= &= ^= |=
Expression composée
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-33
Annexe D : bash – Bourne Another Shell
Vérifie les options d’un argument. Si aucun argument n’est spécifié, le paramètre
Chaîne_options contient les lettres reconnues par la commande getopts. Si une lettre
est suivie d’un signe deux-points (:), l’option doit comporter un argument. Un espace
peut séparer l’option et l’argument. La commande getopts place la lettre
correspondant à l’option suivante dans la variable Nom lorsque le signe + précède
l’argument. L’index de l’argument suivant est enregistré dans OPTIND. L’argument
d’option, s’il existe, est placé dans OPTARG. Si un signe deux-points (:) est placé au
début du paramètre Chaîne_options, la commande getopts enregistre la lettre
correspondant à une option incorrecte dans OPTARG, et attribue la valeur ? à la
variable Nom d’une option inconnue, ou la valeur : lorsqu’une option requise n’est pas
spécifiée. L’état de sortie est différent de zéro lorsqu’il n’y a plus d’option.
Les commandes internes
: [Arg ...] Etend les arguments, retourne vrai.
. Fichier [Arg...]
source Fichier [Arg...]
Le shell courant exécute le fichier.
alias [Nom[=valeur]...]
Crée ou liste les alias.
bg [Travail ...] Place les travaux en arrière-plan.
break [n] Sort de n niveaux de boucle.
builtin [Arg...] Exécute la commande interne au lieu d’une fonction qui porte
le même nom.
bind
bind [-m KEYMAP] [-lvd] [-q NAME]
bind [-m KEYMAP] –f FILENAME
bind [-m KEYMAP] KEYSEQ:FUNCTION-NAME
Affiche les associations courantes ou réalise des associations.
-m KEYMAP Utilise KEYMAP pour les associations. Les valeurs
possibles sont emacs, emacs-standard, emacs-meta, emacs-ctlx,
vi, vi-move, vi-command, vi-insert.
-l Liste le nom des fonctions readline.
-v Liste le nom des fonctions et leur association.
-d Sortie des associations pour une relecture ultérieure.
-f FILENAME Lit les associations à partir d’un fichier.
-q NAME Spécifie les touches associées à NAME.
command [-pVv] cmd [arg ...]
Exécute la commande cmd, surcharge éventuellement le nom
d’une commande interne ou d’une fonction.
-p Utilise la valeur par défaut de la variable PATH, pour rechercher
une commande standard.
-v,-V Affiche des informations sur la commande.
continue [n] Passe à l’itération suivante, n indique le nombre d’imbrications.
declare [-frxi] [NAME[=VALUE]]
typeset [-frxi] [NAME[=VALUE]]
Déclare des variables ou leur donne des attributs.
-f Les noms correspondent à des fonctions.
A-34 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe D : bash – Bourne Another Shell
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-35
Annexe D : bash – Bourne Another Shell
A-36 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe D : bash – Bourne Another Shell
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-37
Annexe D : bash – Bourne Another Shell
La complétion
On peut compléter un nom de fichier en utilisant le caractère Tabulation. Ce caractère
peut également être utilisé pour proposer un choix lors de la saisie d’une variable
(texte commençant par $), d’un utilisateur (texte commençant par ~), d’un nom
d’ordinateur (texte commençant par @) ou d’une commande.
Les fichiers de démarrage
Pour un shell de connexion (l’option « –noprofile » n’étant pas utilisée) :
- A la connexion
1) /etc/profile
2) ~/.bash_profile s’il existe
~/.bash_login sinon
~/.profile si aucun des précédents n’existe
3) ~/.bashrc s’il est activé par l’un des scripts précédents
4) /etc/bashrc activé par ~/.bashrc
- A la déconnexion
~/.bash_logout
Pour un shell interactif qui n’est pas de connexion (sans les options « -norc » ou
« -rcfile ») :
~/.bashrc
Pour un shell invoqué avec l’option « -posix », un seul fichier est exécuté :
$ENV
Les fichiers
/bin/bash L’exécutable
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
$BASH_ENV
$ENV Fichiers de démarrage (cf. Les fichiers de démarrage).
~/.bash Fichier de clôture.
~/.bash_logout Script exécuté automatiquement à la déconnexion.
$INPUTRC
~/.inputrc Fichiers contenant la définition des touches d’édition de commande
du mode emacs.
~/.bash_history
Fichier historique des commandes. C’est la valeur par défaut de la
variable HISTFILE. Si cette variable est détruite, le shell ne
sauvegarde pas l’historique des commandes quand il se termine.
A-38 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe E : Le processeur de texte
Remarque :
Les commentaires sont précédés du caractère #.
Les énoncés sont des ordres AWK séparés par des « ; » ou des sauts de ligne.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-39
Annexe E : Le processeur de texte
Les critères
Les critères sont utilisés par AWK pour sélectionner les lignes d’entrée qui
déclenchent l’action qui suit.
A-40 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe E : Le processeur de texte
Les variables
$0 L’enregistrement (ligne) courant.
$1, $2, ... Les champs de l’enregistrement courant.
ARGC Le nombre d’éléments du tableau des arguments de la ligne de
commandes.
ARGV Le tableau des arguments de la ligne de commandes.
CONVFMT Le format pour convertir des nombres en chaînes par la
commande printf.
ENVIRON Tableau associatif contenant l’environnement, le nom d’une
variable d’environnement est utilisé comme indice.
FILENAME Le nom du fichier d’entrée courant.
FNR Nombre d’enregistrements lus (du fichier courant).
FS Séparateur de champs en entrée.
NR Nombre d’enregistrements lus (tous les fichiers confondus).
NF Nombre de champs de l’enregistrement courant.
OFMT Le format pour les nombres de la commande printf dans les
instructions de sortie.
OFS Le séparateur de champs de la commande print, l’espace par
défaut.
ORS Le séparateur d’enregistrements de la commande print,
le « new line » par défaut.
RLENGTH Longueur de la chaîne traitée par la fonction match.
RS Séparateur d’enregistrements en entrée.
RSTART Le point de départ de la chaîne trouvée par la fonction match.
SUBSEP Séparateur d’indices d’un élément de tableaux.
Les expressions
Les opérateurs mathématiques
Les opérateurs unaires - (moins) et + (plus).
Les opérateurs binaires :
+, -, /, ^, *, %
Remarque :
^ correspond à l’exponentiation et % au modulo.
La concaténation de chaînes
Il suffit d’indiquer les chaînes les unes derrière les autres, ex : $3 = $1$2.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-41
Annexe E : Le processeur de texte
Les tableaux
Un élément d’un tableau
tb[i]
Un élément d’un tableau à deux dimensions
tab[i,j]
Un élément d’un tableau associatif
table["pierre"]
Supprimer un élément de tableau
delete tb[i]
Tester l’existence d’un élément de tableau (indice in tableau)
"pierre" in table
Les fonctions définies par l’utilisateur
function nom(arg1,arg2,...) { énoncé … }
Les instructions
if ( condition ) énoncé [ else énoncé ]
while ( condition ) énoncé
do énoncé while ( condition )
for ( exp ; condition ; exp ) énoncé
for ( variable in tableau ) énoncé
delete tableau[ domaine ]
print [ liste_d_expression ] [ > exp ]
printf format [, liste_d_expression ]
break
continue
next
exit [ expression ]
return [ expression ]
expression
Les fonctions prédéfinies
atan2(y,x) La tangente de y/x.
cos( x ) Le cosinus de x, x étant exprimé en radian.
sin( x ) Le sinus de x, x étant exprimé en radian.
exp( x ) La fonction exponentielle de x.
log( x ) Le logarithme de x.
sqrt(x) La racine carrée de x.
int( x ) Renvoie la partie entière de x.
rand( ) Renvoie un nombre aléatoire n, avec 0 <= n < 1.
srand( [exp] ) Utilise exp pour initialiser la génération des nombres aléatoires,
par défaut utilise l’heure.
gsub(exp,ch,[In]) Identique à la fonction sub, mais toutes les occurrences de
l’expression régulière exp sont remplacées.
sub(exp,ch,[In]) Remplace la première occurrence de l’expression régulière exp,
par la chaîne ch dans la chaîne In. Si In n’est pas précisé, on
utilise $0.
length(x) Renvoie la longueur de la chaîne x.
index(x,y) Renvoie la position de la chaîne x dans la chaîne y, sinon
renvoie 0.
match(ch1,ch2) Recherche la chaîne ch1 dans la chaîne ch2, renvoie la position
de départ ou 0 si la chaîne n’a pas été trouvée.
substr(x,i,l) Renvoie la sous-chaîne de x, qui commence au ième caractère et
de longueur l.
A-42 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe E : Le processeur de texte
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-43
Annexe F : Sed – Editeur en mode flot
Les adresses correspondent à des lignes du texte. Elles peuvent s’exprimer selon les
expressions suivantes :
num Le numéro num de la ligne.
$ La dernière ligne.
/exp/ La première ligne qui satisfait l’expression régulière exp. Le caractère
/ peut être remplacé par un caractère quelconque.
Si aucune adresse n’est précisée, la commande agit sur chaque ligne du texte.
Dans la description des commandes, la syntaxe [2] signifie que la commande peut être
précédée d’un domaine d’adresse : adresse,adresse ; [1] signifie que la commande ne
peut être précédée que d’une seule adresse.
[2]c\
text Substitue le texte courant par text.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-45
Annexe F : Sed – Editeur en mode flot
[1]i\
text Insère le texte text avant la prochaine sortie.
[2]N Ajoute les lignes sélectionnées à l’espace des modèles en les séparant
d’un saut de ligne. On peut utiliser cette commande pour rechercher des
modèles s’étendant sur plusieurs lignes.
[2]s/exp_reg/ch_sub/[drapeaux]
La commande substitue la chaîne correspondant à l’expression régulière
exp_reg par la chaîne ch_sub.
Le séparateur / peut être remplacé par un séparateur quelconque.
Dans la chaîne ch_sub, le caractère & correspond à la chaîne trouvée.
Dans la chaîne ch_sub, l’expression \n correspond à la nième sous-
expression \(...\) de l’expression régulière exp_reg.
Les drapeaux suivants sont supportés :
n Le remplacement porte seulement sur la nième occurrence.
g Remplace toutes les occurrences de la ligne.
p Toutes les occurrences sont affichées.
w fic Ecrit dans le fichier fic les lignes substituées.
[2]t [etiq] Saut à l’étiquette etiq si une substitution a été faite dans la ligne courante.
A-46 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe G : Les principaux fichiers d’administration
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-47
Annexe G : Les principaux fichiers d’administration
A-48 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe G : Les principaux fichiers d’administration
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-49
Annexe H : Solutions des exercices
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-51
Annexe H : Solutions des exercices
# groupadd staff
Exercice N° 7
# groups pierre
ou
# id pierre
Exercice N° 8
Le mot de passe de pierre n’est pas défini. La connexion n’est pas possible.
L’administrateur root peut utiliser la commande su pour se connecter au compte de
pierre, le mot de passe ne lui est pas demandé.
# su pierre
Exercice N° 9
Il faut créer le mot de passe de pierre.
# passwd pierre
Exercice N° 10
Il faut éditer le fichier /etc/passwd et vérifier ensuite sa cohérence.
# vipw
# pwck
Exercice N°11
La solution proposée est réalisée avec linuxconf. Dans linuxconf, choisissez le menu
Comptes utilisateurs -> Normal -> Comptes utilisateurs -> Ajouter. Il suffit de
renseigner les différents champs de la boite de dialogue.
Exercice N°12
# man useradd
# useradd –u 0 –o admin
# vi /etc/group
root:x:0:root,admin
# passwd admin
…
login : admin
password : xxxxx
# id
uid=0(root) gid=505(admin) groups=505(admin),0(root)
A-52 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe H : Solutions des exercices
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-53
Annexe H : Solutions des exercices
démontage de /home n’est pas possible car on ne peut pas démonter un FS qui est en
cours d’utilisation. L’administrateur peut tuer les applications qui utilisent un fichier
grâce à la commande fuser, par exemple :
# fuser -k /dev/hda6 # Si /home est associé à /dev/hda6
# umount /dev/hda6
Exercice N° 9
Pour donner le FS à pierre, il suffit que le répertoire racine du FS appartienne à pierre.
En pratique, on monte le FS et on change le propriétaire du répertoire de montage.
# mount /dev/hda8 /games
# chown pierre /games
Exercice N° 10
$ ls -i .profile
3542 .profile
$ find /home -xdev -exec ls -i {} \; | grep 3542
$ find /home -xdev -inum 3542
Exercice N° 11
# find / -type f -name core -exec rm -f {} \;
Exercice N° 12
# find / -size + 2000 -mtime 0 -print
Exercice N° 13
$ man -k quota
Exercice N° 14
Exécuter les opérations suivantes. Il est préférable de les exécuter en mode
maintenance (cf. Module 7 :L’ arrêt et le démarrage) pour ne pas être gêné par les
utilisateurs.
1 - Etudier la faisabilité du transfert en calculant la taille de l’arborescence à
transférer.
# du -k -s /home/pierre
2 - Sauvegarder l’arborescence par précaution (cf. Module 5 : La sauvegarde).
3 - Créer un FS sur la disquette, tester sa cohérence et afficher l’espace libre.
# mkfs /dev/fd0 1440 # Ou simplement mkfs /dev/fd0
# fsck /dev/fd0 # Ou fsck -t ext2
/dev/fd0
# df /dev/fd0
4 - Le monter sur un répertoire transitoire.
# mount /dev/fd0 /mnt/floppy
5 - Déplacer les fichiers dans ce répertoire.
# mv /home/pierre/* /home/pierre/.[!.]* /mnt/floppy
ou
# cp -Rp /home/pierre/* /home/pierre/.[!.]* /mnt/floppy
# rm -Rf /home/pierre/*
6 - Donner la racine du FS à pierre.
# chown pierre /mnt/floppy
7 - Activer le FS au démarrage.
# cp /etc/fstab /etc/fstab.old
# grep -v "/dev/fd0" /etc/fstab > /tmp/fstab
# echo "/dev/fd0 /home/pierre ext2 rw 0 0" >> /tmp/fstab
# mv /tmp/fstab /etc/fstab
Remarque :
Il est préférable d’utiliser linuxconf pour réaliser cette opération.
8 – Tester.
# umount /mnt/floppy
A-54 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe H : Solutions des exercices
# mount /home/pierre
# su - pierre
Remarque :
Il est préférable de remettre le compte dans les conditions initiales pour le reste du
cours.
Atelier 5 : La sauvegarde
Exercice N° 1
a) $ tar cvf /tmp/pierre.sauve /home/pierre
Remarques :
On peut utiliser ~ ou $HOME pour /home/pierre.
On peut réaliser une sauvegarde absolue :
$ tar cvPf /tmp/pierre.sauve ~
b) $ tar tvf /tmp/pierre.sauve
c) $ cd ; rm passwd
$ cd /
$ tar xvf /tmp/pierre.sauve home/pierre/passwd
d ) $ rm -Rf ~/* ~/.[!.]*
$ cd /
$ tar xvf /tmp/pierre.sauve
e) Il faut réaliser une sauvegarde relative à partir du répertoire de connexion de
pierre :
$ cd ; tar cvf /tmp/pierre.sauve . # « . » : le répertoire courant
$ tar tvf /tmp/pierre.sauve
Exercice N° 2
$ man cpio
Exercice N° 3
a) $ find ~ -print | cpio -ocvB > /tmp/pierre.sauve
b) $ cpio -icvBt < /tmp/pierre.sauve
c) $ cd ; rm boot/profile
$ cpio -icvdumB /home/pierre/boot/profile < /tmp/pierre.sauve
d ) $ rm -Rf ~/* ~/.[!.]*
$ cpio -icvdumB < /tmp/pierre.sauve
e) Il faut réaliser une sauvegarde « relative » :
$ cd ; find . -print | cpio -ocvB > /tmp/pierre.sauve # « . » : le répertoire
courant
$ cpio -icvBt < /tmp/pierre.sauve
Exercice N° 4
$ dd if=/tmp/pierre.sauve of=/dev/fd0
$ cd ; rm boot/profile
$ cpio -icvdumB boot/profile < /dev/fd0
Exercice N° 5
a) On met la disquette au format MS-DOS dans le lecteur :
$ dd if=/dev/fd0 of=/tmp/disquette
b) On met une disquette vierge.
$ dd if=/tmp/disquette of=/dev/fd0
Exercice N° 6
$ dd if=/dev/fd0 of=/dev/null
Exercice N° 7
$ man -k tape
Exercice N° 8
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-55
Annexe H : Solutions des exercices
Montage du floppy
# mount /dev/fd0 /mnt/floppy
Sauvegarde des fichiers
# dump 0uf /tmp/sauve.dump /mnt/floppy
Affichage de la liste des fichiers
# restore tf /tmp/sauve.dump
Fabrication du système de fichiers
# umount /mnt/floppy
# mke2fs /dev/fd0
Restauration des fichiers
# mount /dev/fd0 /mnt/floppy
# cd /mnt/floppy
# restore rf /tmp/sauve.dump
A-56 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe H : Solutions des exercices
Exercice N° 9
Les processus qui ont un faible PID ont toutes les chances d’être des démons, car ils
ont été lancés au démarrage et sont toujours actifs. D’autre part, le nom d’un démon se
termine fréquemment par la lettre « d ». Enfin, les démons, le plus souvent, ne sont
pas gérés par un terminal (le contenu de la colonne TTY, produite par la commande ps
vaut ?).
Exercice N° 10
# cp /etc/profile /etc/profile.old
# echo ″# ajout de pierre a titre d’exercice″ >> /etc/profile
# echo ″PAYS=France ; export PAYS″ >> /etc/profile
Remarque :
On peut tester le résulat en lançant la commande env après s’être reconnecté.
Exercice N° 11
$ man -k IPC
Exercice N°12
$ whereis cp
$ ldd /bin/cp
$ whereis kedit
$ ldd /usr/bin/kedit
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-57
Annexe H : Solutions des exercices
prompt
install=/mnt/floppy/boot.b
map=/mnt/floppy/map
default=dos
image=/boot/vmlinuz-2.4.7-10
label=linux
root=/dev/hda2
other=/dev/hda1
label=dos
# /sbin/lilo –C /tmp/lilo.conf –v –t
# /sbin/lilo –C /tmp/lilo.conf
Exercice N° 4
# runlevel
Exercice N°5
Au niveau 5, le processus init exécute la commande xdm qui permet d’avoir des
connexions en mode graphique (X Window). Il n’y a plus lieu de lancer manuellement
l’interface graphique par la commande startx.
Exercice N° 6
# cd /etc/rc.d/rc2.d
# ls
Exercice N° 7
Les services de NFS ne sont pas actifs au niveau 2. Ils sont démarrés au niveau 3.
Exercice N°8
# cp /etc/inittab /etc/inittab.old
# echo ″dl:3:once:date >> /home/pierre/date.log 2>&1″ >> /etc/inittab
# init 6
Exercice N° 9
# sed ’s/^dl:3:once/dl:2:off/’ /etc/inittab > /tmp/tempo
# cp /etc/inittab /etc/inittab.sav
# mv /tmp/tempo /etc/inittab
Exercice N° 10
# cd /etc/rc.d/rc3.d
# grep crond *
Exercice N° 11
# cd /etc/rc.d/init.d
# echo ″ps -ef > /home/pierre/ps.log 2>&1″ > essai
# chmod 700 essai
# cd ../rc3.d
# ln -s ../init.d/essai S99essai
# init 6
Exercice N°12
# man shutdown
# shutdown -h +3 "arrêt pour maintenance"
Exercice N° 13
# dmesg
et
# more /var/log/messages
Exercice N° 14
# shutdown now
ou
A-58 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe H : Solutions des exercices
# telinit s
# date 0815093099 # par exemple pour le 15/08/99 à 9h30
# telinit 3
Exercice N° 15
# cd /etc/rc.d/init.d
# echo ″date >> /home/pierre/arret 2>&1″ > arret
# chmod 700 arret
# cd .. /rc0.d
# ln -s ../init.d/arret S00arret
# cd ../rc6.d
# ln -s ../init.d/arret S00arret
# shutdown -r now
Remarque
Il est possible d’appeler le script K00arret. Il faut alors que le fichier
/var/lock/subsys/arret existe pour que le script K00arret soit exécuté.
Exercice N° 16
# cp /etc/passwd /etc/passwd.old
# sed ’/^pierre/s/:[^:]*sh$/:\/bin\/vi/’ /etc/passwd > /tmp/tempo
# mv /tmp/tempo /etc/passwd
# su - pierre
# mv /etc/passwd.old /etc/passwd
Exercice N°17
Sous MSDOS, exécutez la commande rawrite pour copier les fichiers images de
boot.img et rescue.img du répertoire dosutils du CD-ROM sur les disquettes boot et
root, préalablement formatées. Le reste de l’opération est exécuté à partir de Linux .
# df # Pour connaître le système de fichiers /.
Création de la disquette de boot.
# uname –a
# mkbootdisk 2.4.7-10
Créaton de la disquette « rescue ».
# mount /dev/cdrom
# cd /mnt/cdrom/images
# dd if=rescue.img of=/dev/fd0
On démarre à partir de la disquette de boot.
LILO : rescue
On installe la deuxième disquette, quand elle est demandée. Un shell d’administraton
est activé.
# mount /dev/hda2 /mnt
# ls -l /mnt
# umount /mnt
# e2fsck /dev/hda2
Exercice N°18
# cp /etc/inittab /etc/inittab.old
# echo "z:789:respawn:/bin/sh </dev/console >/dev/console 2>&1" >> /etc/inittab
# telinit 7
Atelier 8 : L’impression
Exercice N° 1
$ more /etc/printcap
Exercice N° 2
$ ps -ef | grep lpd
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-59
Annexe H : Solutions des exercices
Exercice N° 3
# cp /etc/printcap /etc/printcap.old
# echo "imp:sd=/var/spool/lpd/imp:\\" /etc/printcap
# echo -e "\t:lp=/home/pierre/imp" >> /etc/printcap
# mkdir /var/spool/lpd/imp
# chown lp /var/spool/lpd/imp
# touch /home/pierre/imp
# cd /etc/rc.d/init.d
# ./lpd stop
# ./lpd start
# su - pierre
# lpr -P imp /etc/group
Remarque
En environnement X, il est plus simple d’exécuter :
# printtool &
Exercice N° 4
$ man -k printer
A-60 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe H : Solutions des exercices
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-61
Annexe H : Solutions des exercices
fdformat [ -n ] device
DESCRIPTION
fdformat does a low level format on a floppy disk. device
is usually one of the following (for floppy devices, the
major = 2, and the minor is shown for informational purposes only):
/dev/fd0d360 (minor = 4)
Atelier 12 : Le noyau
Exercice N° 1
# uname -a
Exercice N° 2
Pour connaître les caractéristiques de votre processeur, il convient d’exécuter la
commande
# cat /proc/cpuinfo
Exercice N° 3
Pour modifier le nombre d’inodes que l’on peut utiliser simultanément, il faut
modifier le fichier /proc/sys/fs/inode-max.
# cat /proc/sys/fs/inode-max
4096
# echo 8192 > /proc/sys/fs/inode-max
Rappelons que ce nombre ne doit pas être inférieur à celui défini par file-max.
Exercice N° 4
Pour connaître les paramètres des sémaphores, il faut visualiser le fichier
/usr/src/linux-version-du-noyau/include/linux/sem.h. Rappelons que la modification se
fait en modifiant les lignes de la forme #define SEMxxx valeur et qu’il faut ensuite
compiler le noyau.
Exercice N°5
Suivre les étapes de la démonstration du chapitre « construire un nouveau noyau ».
Exercice N°6
$ man logger
$ logger -s -p user.notice "Serveur xxx a démarré"
# tail /var/log/messages
Exercice N°7
# more /proc/ioports
Exercice N°8
# grep modprobe /etc/rc.d/rc.sysinit
Exercice N°9
# lsmod
ou
# cat /proc/modules
Exercice N°10
# cd /lib/modules/2.4.7-10
# cd scsi
# insmod sg
# lsmod
Module Size Used by
sg 4080 0 (unused)
nfsd 151576 8 (autoclean)
lockd 31208 1 (autoclean) [nfsd]
sunrpc 52420 1 (autoclean) [nfsd lockd]
A-62 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe H : Solutions des exercices
3c59x 18472 1
# rmmod sg
# lsmod
Module Size Used by
nfsd 151576 8 (autoclean)
lockd 31208 1 (autoclean) [nfsd]
sunrpc 52420 1 (autoclean) [nfsd lockd]
3c59x 18472 1
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-63
Annexe H : Solutions des exercices
Atelier 15 : Le réseau
Exercice N° 1
$ uname -n
Exercice N° 2
# ifconfig
# netstat -nr
Exercice N° 3
$ netstat -a | grep ftp
Si l’on ajoute l’option « -p », la commande netstat affiche le PID de chaque
commande identifiée.
Exercice N° 4
$ telnet distant 21
Trying 133.45.11.12
Connected to distant
Escape character ’^]’ .
200 -
200 - scosysv FTP server (Version 2.1W(1)) ready.
QUIT
221 Goodbye.
Connection closed by foreign host.
$
Exercice N° 5
# ps -ef | grep inetd
# grep stream /etc/inetd.conf | grep –v "^#"
Exercice N° 6
Manipulations effectuées sur le système local (idem sur le système distant) :
# ifconfig -a
# ifconfig eth0 down
# ifconfig eth0 133.45.11.12 netmask 255.255.0.0 up # Sur votre système local
# route add -net 133.45.0.0 netmask 255.255.0.0 dev eth0
# ifconfig eth0 133.45.44.45 netmask 255.255.0.0 up # Sur le système distant
# route add -net 133.45.0.0 netmask 255.255.0.0 dev eth0
# ping 133.45.11.12 # on teste le système local
# ping 133.45.44.45 # on teste le système distant
Remarque :
Si l’on désire mémoriser la configuration, on peut modifier le fichier /etc/rc2.d/S85tcp.
Il est bien sûr préférable d’utiliser l’outil d’administration linuxconf.
Exercice N° 7
# echo ’localhost’ >> /etc/hosts.equiv
Exercice N° 8
$ ping distant > result &
$ { sleep 20 ; kill -INT $! ; } &
Atelier 16 : X-Window
Exercice N° 1
Le fichier de configuration du serveur X se nomme XF86Config. Il est en ASCII.
on peut le visualiser facilement :
# more /etc/X11/XF86Config
Exercice N° 2
1) # useradd paul
# passwd paul
A-64 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe H : Solutions des exercices
2) # su - paul
$ cat > .Xclients
# .Xclients
xsetroot -solid cyan
xterm -g 70x20+0+0 &
fvwm2
CTRL-D
$ chmod u+x .Xclients
3) $ startx
4) $ mv .Xclients .Xclients.old
$ cat > .Xclients
# .Xclients
exec startkde
CTRL-D
$ chmod u+x .Xclients
$ startx
Exercice N° 3
1) $ kedit &
2) $ echo $DISPLAY
:0.0
3) $ kedit -display $(uname -n):0 &
Exercice N° 4
1) # cd /usr/lib/X11/app-defaults
# cp XTerm Xterm.old # on sauvegarde la configuration actuelle !
# cat >> Xterm # on ajoute la configuration de la couleur
*background: blue
CTRL-D
$ xterm & # on teste (dans la fenêtre xterm d’un utilisateur)
# mv XTerm.old Xterm # on remet les choses dans l’ordre
2) $ cd
$ cat > Xterm
*background: green
CTRL-D
3) $ xterm -bg red &
$ xterm -xrm "*background: red" &
Exercice N° 5
En modifiant le lien /etc/X11/prefdm pour l’associer à /usr/bin/kdm. Il est sinon
associé à gdm, le service de connexion de gnome.
Atelier 17 : La sécurité
Exercice N° 1
$ man -k password
$ man 5 shadow
# grep pierre /etc/shadow
Exercice N° 2
# chage -M 15 -W 3 pierre
Exercice N° 3
# find / -type f -perm +6000
Exercice N° 4
# last | head
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-65
Annexe H : Solutions des exercices
Exercice N° 5
# more /etc/pam.d/rlogin
Exercice N° 6
Il existe deux solutions :
1. Mettre en commentaire la ligne qui limite les accès à certains terminaux dans le
fichier /etc/pam.d/login :
#auth required /lib/security/pam_securetty.so
2. Renommer le fichier /etc/securetty
A-66 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-67
Annexe I : Les écrans de Linuxconfig
L’écran Réseau -> Tâches clientes -> Routage et Passerelles -> Par défaut
A-68 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
L’écran Réseau -> Tâches Serveur -> Serveur de fichier samba -> Conf par défaut pour
un répertoire
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-69
Annexe I : Les écrans de Linuxconfig
A-70 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-71
Annexe I : Les écrans de Linuxconfig
L’écran Système de fichiers -> Configurer les partitions et les fichiers d’échange
A-72 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-73
Annexe I : Les écrans de Linuxconfig
L’écran mode de démarrage -> Mode -> Mode de démarrage par défaut
A-74 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
L’écran Contrôler -> Panneau de configuration -> Contrôler l’activité des services
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-75
Annexe I : Les écrans de Linuxconfig
A-76 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
L’écran Contrôler -> Panneau de configuration -> Configurer les tâches préprogrammées
du super utilisateur
L’écran Contrôler -> Panneau de configuration -> Contrôler les liens PPP/SLIP/PLIP
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-77
Annexe I : Les écrans de Linuxconfig
L’écran Contrôler -> Contrôler les fichiers et les systèmes -> Configurer tous les fichiers
de config
A-78 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
L’écran Contrôler -> Contrôler les fichiers et les systèmes -> Configurer toutes les
commandes et les démons
L’écran Contrôler -> Contrôler les fichiers et les systèmes -> Configurer les permissions et
appartenance des fichiers
L’écran Contrôler -> Contrôler les fichiers et les systèmes -> Configurer les modules de
linuxconf
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-79
Annexe I : Les écrans de Linuxconfig
L’écran Contrôler -> Contrôler les fichiers et les systèmes -> Configurer les profils du
système
L’écran Contrôler -> Contrôler les fichiers et les systèmes -> Créer les suppléments de
linuxconf
A-80 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe I : Les écrans de Linuxconfig
L’écran Fonctionnalités
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-81
Annexe J : Webmin
Annexe J : Webmin
Le Menu principal
Les principales options : les adresses IP d’écoute dans le cas d’une machine avec
plusieurs cartes réseau, le numéro de port du serveur, l’ajout, la modification et la
suppression de modules, la liste des hôtes autorisés à se connecter au serveur.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-83
Annexe J : Webmin
Le Menu System
A-84 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe J : Webmin
Le Menu Hardware
Le menu Hardware couvre la gestion des disques et des partitions, la gestion des
impressions, la configuration de base du réseau, la configuration des chargeurs LILO
et GRUB, l’heure et la date (système et CMOS).
Le Menu servers
Le menu servers couvre les services réseau DHCP, DNS, Apache, SAMBA, ftp,
Xinetd, Sendmail, Postfix, fetchmail, SSH, MySQL …
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-85
Annexe J : Webmin
Le Menu Others
Le Gestionnaire de fichiers
A-86 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe K : Compilation du noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-87
Annexe K : Compilation du noyau
Cette option vous permet d’utiliser des modules compilés avec d’autres versions du
noyau, vous pouvez raisonnablement répondre « n » et recompiler les modules à
chaque fois que vous construirez un nouveau noyau.
Kernel module loader (CONFIG_KMOD) [Y/n/?]
Cette option permet au noyau de charger dynamiquement un module requis par un
processus, via la commande insmod ou modprobe : vous répondrez normalement
« y ».
General setup
Networking support (CONFIG_NET) [Y/n/?]
Vous ne pouvez que répondre « y » à cette option, car les programmes Linux et UNIX
utilisent aussi en local les mécanismes de communication réseau.
PCI support (CONFIG_PCI) [Y/n/?]
Si vous avez un bus PCI, répondez « y ».
PCI access mode (BIOS, Direct, Any) [Any]
Si vous avez des cartes PCI, gardez le choix par défaut (Any) pour que Linux puisse, si
le BIOS échoue, procéder à la détection des périphériques PCI.
PCI quirks (CONFIG_PCI_QUIRKS) [Y/n/?]
Cette option permet à Linux d’initialiser le bus PCI en cas de défaillance du BIOS.
Backward-compatible /proc/pci (CONFIG_PCI_OLD_PROC) [Y/n/?]
Cette option installe l’ancienne interface /proc/pci des anciens noyaux Linux en plus
de la nouvelle /proc/bus/pci pour assurer la compatibilité des nombreux programmes
utilisant /proc/pci. Dans le doute répondez « y ».
MCA support (CONFIG_MCA) [N/y/?]
Répondez « y » seulement si vous avez un ordinateur PS/2 IBM, équipé d’un bus
MCA.
SGI Visual Workstation support (CONFIG_VISWS) [N/y/?]
Normalement vous répondrez « n », sauf si votre PC est à base de puces SGI comme
c’est le cas des quelques PC utilisant des composants Legacy. Nous vous renvoyons à
la documentation de votre PC et au fichier sgi-visws.txt.
System V IPC (CONFIG_SYSVIPC) [Y/n/?]
Les IPCs système V sont utilisés par les applications, répondez « y ».
BSD Process Accounting (CONFIG_BSD_PROCESS_ACCT) [Y/n/?]
Vous pouvez répondre « y » à cette option qui est utile pour les informations de
comptabilité des processus.
Sysctl support (CONFIG_SYSCTL) [Y/n/?]
Cette option permet de régler dynamiquement certaines variables ainsi que la taille de
certaines tables système du noyau sans avoir ni à redémarrer le système ni à
régénérer un nouveau noyau, aussi répondez « y ».
Kernel support for a.out binaries (CONFIG_BINFMT_AOUT) [M/n/y/?]
Avant la version 2.0 du noyau Linux, les exécutables étaient au format a.out. Ils sont
maintenant au format ELF. Vous répondrez « y » uniquement dans le cas où vous
avez d’anciennes applications au format a.out, sans les sources qui vous auraient
permis de les recompiler au format ELF. Dans le doute, répondez « m ».
A-88 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe K : Compilation du noyau
Remarque
La commande file (cf. L'ouvrage UNIX Utilisateur des mêmes auteurs) permet de
connaître le format d'un exécutable (syntaxe : file fichier_exécutable).
Kernel support for ELF binaries (CONFIG_BINFMT_ELF) [Y/m/n/?]
C’est actuellement le format standard des exécutables Linux, répondez « y » sans
aucune hésitation.
Kernel support for MISC binaries (CONFIG_BINFMT_MISC) [M/n/y/?]
Cette option est une solution globale pour la prise en compte de certaines applications
comme des programmes « Java » ou « Python », par exemple. Il vous suffit de taper le
nom de l’application et le noyau Linux se charge du reste. Vous pouvez même
exécuter ainsi des programmes MS-DOS grâce à l'émulateur DOSEMU.
Répondez « y » à cette option, ainsi qu’à l’option « proc filesystem support
(CONFIG_PROC_FS) » présentée plus loin.
Parallel port support (CONFIG_PARPORT) [M/n/y/?]
Répondez « y » à cette option, car le port parallèle est couramment utilisé pour
connecter une imprimante, et même d'autres périphériques comme un lecteur de
cartouches par exemple notamment.
PC-style hardware (CONFIG_PARPORT_PC) [M/n/y?]
Tous les PCs, ainsi que certaines stations Alpha, sont, en standard, équipés d’un port
parallèle style PC. Vous répondrez « m » à cette option car cette dernière est
disponible sous forme de module.
Support foreign hardware (CONFIG_PARPORT_OTHER) [N/y/?]
Vous répondez « n », à moins de disposer d’un port parallèle spécifique.
Advanced Power Management BIOS support (CONFIG_APM) [Y/n/?]
Cette option d’économie d’énergie est principalement destinée aux portables,
répondez « n » .
Plug And Play support
Plug and Play support (CONFIG_PNP) [Y/n/?]
Répondez « y » à cette option de reconnaissance des périphériques Plug And Play.
Auto-probe for parallel devices (CONFIG_PNP_PARPORT) [M/n/y/?]
Cette option permet aux périphériques conformes au standard IEEE 1284 de
s’identifier entre eux automatiquement, répondez « m » si vous voulez l’activer, dans
le doute, vous répondrez « n ».
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
(CONFIG_BLK_DEV_IDE) [Y/n/?]
Cette option installe un pilote IDE évolué capable de contrôler quatre cartes IDE, ce
qui autorise au total huit périphériques IDE (cf. Module 9 : Les disques Linux). Si
vous avez au moins un périphérique IDE, répondez « y ». On doit, de toute manière,
obligatoirement répondre « y » si le système de fichiers root « / » est sur un disque
IDE.
Use old disk-only driver on primary interface (CONFIG_BLK_DEV_HD_IDE)
[N/y/?]
Il s’agit des pilotes antérieurs aux pilotes IDE évolués, répondez « n » si vous avez un
disque IDE.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-89
Annexe K : Compilation du noyau
A-90 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe K : Compilation du noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-91
Annexe K : Compilation du noyau
A-92 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe K : Compilation du noyau
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-93
Annexe K : Compilation du noyau
A-94 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe K : Compilation du noyau
Filesystems
Quota support (CONFIG_QUOTA) [Y/n/?]
Les quotas peuvent être très utiles pour la gestion de l'espace disque (cf. Module 4 :
Les systèmes de fichiers), répondez « y » ou « m ».
Kernel automounter support (CONFIG_AUTOFS_FS) [M/y/n/?]
Cette option permet le montage (NFS) « à la demande » de systèmes de fichiers
distants, aussi vous répondrez normalement « n ».
Suit une liste de systèmes de fichiers UNIX, Linux, et autres origines, dont la plupart
sont inutiles, aussi nous vous recommandons de ne retenir que la liste suivante.
Systèmes de fichiers non Linux :
- DOS FAT fs support et tous ses composants
- ISO9660 CDROM filesystem support
- Microsoft Joliet CDROM extensions
- NTFS filesystem support (read only)
Systèmes de fichiers Linux :
Nous commentons maintenant les systèmes de fichiers Linux que nous vous
recommandons d’activer :
Minix fs support (CONFIG_MINIX_FS) [M/n/y/?]
Répondez « y » ou « m » pour utiliser ce système de fichier économique avec des
disquettes.
/proc filesystem support (CONFIG_PROC_FS) [Y/n/?]
Dans le répertoire /proc, le noyau crée et met à jour en temps réel deux types de
fichiers :
- Des fichiers dont le nom ne contient que des chiffres (le PID du processus) contenant
l'image des processus actifs, et qui sont exploitées par les commandes qui affichent
des informations sur les processus comme la commande ps.
- Des fichiers qui contiennent des informations sur l’état courant du système, comme
la mémoire et le swap libres (cf. Module 4 : Les systèmes de fichiers), les modules
chargés ou les ressources système utilisées (cf. Module 11 : Les périphériques).
Vous devez en toute logique répondre « y ».
Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?]
C’est le système de fichiers standard de Linux, répondez « y ».
Suit ensuite une liste de systèmes de fichiers réseaux, nous vous recommandons
d’activer les suivants en répondant « y » ou « m » :
- NFS filesystem support, sans l'option « Emulate Sun NFS server »
- SMB filesystem ainsi que tous ses composants
- NCP, seulement si vous devez accéder à des ressources de serveurs NOVELL,
auquel cas vous devrez aussi sélectionner les options afférentes.
Partitions types
Normalement, vous devez répondre « n » à cette option qui propose d’intégrer le
partitionnement BSD, Macintosh ou SUN à votre système Linux.
Native language support
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-95
Annexe K : Compilation du noyau
A-96 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe L : Dépannage (« Troubleshooting »)
Les problèmes
Les causes de dysfonctionnement sont très diverses. Il peut se produire qu’une
application ne démarre pas ou bien que la procédure de lancement de Linux s’arrête.
Voici une liste de problèmes parmi les plus importants :
• Le système ne démarre pas.
• Le système est planté (CRASH ou panic).
• Une application ne démarre pas.
• Une application serveur ne démarre pas.
• Le réseau ne fonctionne plus.
• Une application ne réagit plus.
• Une sauvegarde paraît corrompue.
• Un utilisateur a perdu son mot de passe.
• Vous avez perdu le mot de passe de root.
• Vous n’avez plus d’espace disque.
• Vous avez trop de zombies sur le système.
• Le système de fichiers root est corrompu.
• Le clavier ne fonctionne plus très bien.
Cette liste n’est pas exhaustive. En fonction de votre expérience, vous pouvez rajouter
des items.
Solutions globales
Quel que soit le problème, il existe une approche globale :
Anticipation
« Gouverner c’est prévoir », si l’on est conscient des problèmes avant qu’ils ne
surviennent, il est possible de préparer une riposte a priori.
Voici quelques conseils :
Mémoriser (sur papier, sur disquette, …) les fichiers de configuration et le résultat des
commandes d’information.
Comprendre comment le système fonctionne, comment les applications fonctionnent,
comment le réseau fonctionne. Plus vous connaîtrez votre système, plus vous serez
capable de comprendre les messages d’erreur et les raisons des dysfonctionnements.
Vous serez capable également de prévoir vous-même les problèmes et de leur donner
une solution ad hoc :
• Activer les journaux de bord du système et des applications.
• Tenir un journal de bord pour enregistrer vos actions d’administrateur, les
problèmes qui surviennent et les solutions que vous appliquez.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-97
Annexe L : Dépannage (« Troubleshooting »)
• Lire le présent chapitre et connaître les problèmes et les solutions associées liés au
mauvais fonctionnement du système. Tester les solutions présentées.
• Quand le problème survient, le décrire et essayer de le résoudre.
• En quelques phrases, décrire clairement le problème. Indiquer également la date et
l’heure, et le message d’erreur complet. Si le problème est lié à un logiciel, on
recherche la version du logiciel (… --version) et les bibliothèques dynamiques
(ldd). On précise les arguments de lancement et le script d’activation. Enfin, on
reproduit les fichiers de configuration. On inscrit le tout dans le cahier
d’administration.
• Essayez de lister les éléments extérieurs qui ont pu jouer un rôle dans l’apparition
du problème : la version du noyau (uname –a), les différents pilotes présents
(lsmod), les processus présents (ps –ef), les crontabs, le niveau d’init (runlevel),
l’environnement (env), l’identité de l’utilisateur (id)... Encore une fois, la
connaissance du fonctionnement du système permet de créer une liste réaliste et
utile.
• Lisez les journaux de bord pour avoir de plus amples informations, en particulier
/var/log/messages.
• Lisez la documentation qui relève du problème (le man, les HOWTO, les fichiers
présents dans /usr/doc/ …). Consulter les FAQs des forums Internet.
• En un mot, essayez de comprendre le problème. Ecrire noir sur blanc ces
hypothèses et les commandes de tests ou de réparation à effectuer.
Essayez de reproduire le problème. Bien sûr, si c’est possible et si cela n’entraîne pas
de situation désastreuse. Si on peut reproduire le problème, c’est la preuve que l’on a
déterminé ses causes.
Demandez de l’aide. Si l’on ne sait pas résoudre le problème, on doit demander de
l’aide à un collègue, à la cellule prévue à cet effet dans votre société, à une « HOT
LINE » ou adresser un message à un forum Internet. Dans tous les cas, vous devez
décrire le problème, comme indiqué précédemment. Vous devez aussi indiquer vos
démarches pour le comprendre et le corriger, notamment les pages de manuels que
vous avez lues. Vous risquez, sinon, de recevoir en réponse un cinglant RTFB (« Read
The F… Books »), que l’on pourrait traduire par : lire cette P… de documentation.
Astuce
Gardez en permanence une connexion à root sur la console maîtresse. Ainsi
l’administrateur peut toujours intervenir.
Heuristiques
• Redémarrez le système et les applications.
• Réinstallez le système et les applications.
• Réinstallez une version stable du système et des applications (plus anciennes ou
plus récentes).
• Réinstallez le système et les applications sur un autre ordinateur.
A-98 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe L : Dépannage (« Troubleshooting »)
Anticipation
• Enregistrez les paramètres stockés dans l’Eprom de votre PC : la géométrie de vos
disques, la configuration de la mémoire…
• Mémorisez les caractéristiques physiques et logiques de vos disques :
# ls /proc/ide # liste des disques IDE
# cat /proc/scsi/scsi # liste des disques SCSI
# hdparm /dev/hda # les paramètres physiques d’un disque
# fdisk -l /dev/hda # la table des partitions d’un disque
# df # la liste des FS actifs et le FS root
# ls –l /dev/hda2 # liste les majeurs et mineurs du FS root (ici /dev/hda2)
# cat /etc/fstab # liste les FS et le swap
• Réalisez régulièrement des sauvegardes de vos fichiers et/ou de vos FS.
• Conservez les supports d’installation (disquettes, CD-ROM, notices …).
• Mémorisez le bloc de boot de votre disque de démarrage :
# dd if=/dev/hda of=/dev/fd0 bs=512 count=1
• Créez une disquette de démarrage (cf. Paragraphe suivant).
• Conservez une copie du fichier /etc/inittab et des scripts de démarrage (les RC).
• Utilisez si possible un onduleur.
• Disposez de matériels de rechange (claviers, écrans, disques, ...) et même d’un
poste complet.
Eléments à vérifier si un système ne démarre pas et ne donne
aucun message
• La prise de courant est-elle branchée ?
• La prise de courant est-elle alimentée ?
• L’écran est-il allumé ? Le contraste et la luminosité sont-ils corrects ?
• Les périphériques (disques, contrôleurs, …) sont-ils correctement enfichés ?
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-99
Annexe L : Dépannage (« Troubleshooting »)
Restaurer le MBR
Si l’on désire restaurer le MBR, le secteur de boot du disque de démarrage, il faut
premièrement en avoir une copie et deuxièmement une disquette bootable (cf. Les
paragraphes précédents). Si on a sauvegardé le MBR sur le premier secteur d’une
disquette, on utilise la commande suivante pour le restaurer :
# dd of=/dev/hda if=/dev/fd0 bs=512 count=1
# fsck -f /dev/hda5
3. Si la réparation réalisée par fsck n’est pas suffisante, on doit restaurer le système
de fichiers root à partir d’une sauvegarde après l’avoir recréé.
# mkfs -c /dev/hda5
# cd /mnt
A-100 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe L : Dépannage (« Troubleshooting »)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-101
Annexe L : Dépannage (« Troubleshooting »)
est d’installer une version plus récente de l’application qui génère ces zombies. En
effet leur présence est toujours liée à un bug applicatif.
Votre application présente un bug applicatif
Envoyez un e-mail au développeur de l’application. L’adresse e-mail du développeur
est généralement indiquée dans le man. On ne se résout à cette mesure qu’en dernière
analyse et pour des applications qui sont encore en phase de tests.
A-102 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe L : Dépannage (« Troubleshooting »)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-103
Annexe L : Dépannage (« Troubleshooting »)
*pde = 00001067
*pte = 00000000
Oops: 0000
CPU: 0
EIP: 0010 :[<0202d079]
EFLAGS: 00010216
eax: 00000041 ebx: 00001000 ecx: 0000004b edx: 0156b018
esi: 0202e000 edi: 0800aed4 ebp: 01106f90 esp: 01106f6c
ds: 0018 es: 002b fs: 002b gs: 002b ss: 0018
Process cat (pid : 597, process nr : 31, stackpage=01106000)
Stack: 02020018 0202d004 00f992e8 01257440 0800a000 00001000 01257440
00001000 00f992e8 00120e7a 00f992e8 01257440 0800a000 00001000
0800a000 00001000 bffffbd8 0010a602 0010a602 00000003 00001000
Call Trace: [<02020018>] [<0202d004>] [<00120e7a>] [<0010a602>]
Code : f3 a5 83 e3 03 89 d9 f3 a4 07 8b 45 14 8d 65 f4 5b 5e 5f 89
Anticipation
La précaution la plus importante est de lire le fichier /var/log/messages fréquemment,
en recherchant les messages provenant du noyau (« kernel »).
Surveiller les performances de votre système (vmstat, free, …). Un crash système est
souvent annoncé par des problèmes de performances.
Paramétrer le système pour un reboot automatique ou non. On peut configurer le
noyau, via lilo, pour qu’il redémarre automatiquement après un crash. Par exemple,
« panic=30 » signifie que le système redémarre au bout de 30 secondes après un crash
du noyau. Cette pratique est bonne pour un serveur qui utilise a priori des logiciels et
un noyau stable et que l’on veut opérationnel en permanence. Inversement, pour un
système de test, c’est une bien mauvaise idée.
Divers
Un utilisateur a perdu son mot de passe
L’administrateur lui attribue un nouveau mot de passe :
# passwd pierre
L’administrateur a perdu son propre mot de passe
L’administrateur peut, s’il l’a autorisé, redémarrer le système et, à l’invite de LILO,
saisir « linux single », action qui démarre le système en mode maintenance, sans avoir
à fournir de mot de passe. L’administrateur a aussi tout intérêt à créer un autre compte
ayant les droits de root, c’est-à-dire l’UID 0, avec un mot de passe spécifique. Ce
compte est un compte de secours.
# useradd -u 0 -o –d /root operateur
# passwd operateur
Le clavier fonctionne incorrectement
Si le clavier d’un terminal ou de la console maîtresse ne fonctionne pas correctement,
on peut essayer les actions suivantes :
• Exécuter la commande <ctrl-j> stty sane<ctrl-j> qui réinitialise le clavier.
• Se déconnecter et se reconnecter. La procédure de connexion réinitialise le clavier.
• Si l’on ne peut plus se connecter sur la console maîtresse, redémarrer le système.
A-104 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Annexe L : Dépannage (« Troubleshooting »)
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 A-105
Bibliographie
Bibliographie
UNIX Administrateur
par Jean-François Bouchaudy et Gilles Goubet, 1999,
aux éditions Eyrolles, Tsoft
Programming Perl
par Larry Wall, Tom Christiansen & Randal L. Schwartz, 1996, aux éditions O’Reilly.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 B-1
Bibliographie
Système Linux
traduction française du précédent, 2000, aux éditions O’Reilly France.
Linux Undercover
Red Hat Software, 1998, édité par Eric S. Raymond.
Linux in a Nutshell
par Siever, 1999, aux éditions O’Reilly & Associates.
B-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Bibliographie
Linux Internals
par Moshe Bar, 2000, aux éditions Mac Graw Hill.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 B-3
Bibliographie
NFS et NIS
Managing NFS and NIS
par Hal Stern, aux éditions O’Reilly & Associates.
E-mail
Sendmail
par Bryan Costales & all, 1993, aux éditions O’Reilly & Associates.
Running Qmail
par Blum, 2000, aux éditions SAMS.
Apache et le web
Apache, The Definitive Guide
par Ben Laurie & Peter Laurie, 1997, aux éditions O’Reilly & Associates.
B-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Bibliographie
Professional Apache
par Peter Wainwright, chez Wrox
Apache professionnel
traduction du précédent, chez Eyrolles.
Samba
Samba in 24 hours teach yourself
par Carter, aux éditions SAMS.
Samba, L’intro
Par Gerald Carter & Richard Sharpe, 1999, aux éditions Campus Press.
Using Samba
par Peter Kelly & all, 1999, aux éditions O’Reilly.
Dns
DNS and Bind
par Liu, 1998, aux éditions O’Reilly & Associates.
Divers
Internet et Intranet sous Linux Guide pratique pour l’entreprise
Par H. Holz, B. Schmitt et A. Tikart, 1999, aux éditions Eyrolles.
KDE
KDE teach yourself in 24 hours
par Wells, 1999, aux éditions SAMS.
Guidexpress KDE
par H. Wehr, 2000, aux éditions Micro Applications.
KDE Bible
par Nash, 2000, aux éditions IDG Books.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 B-5
Bibliographie
Linux Security
par Flowers, 1999, aux éditions New Riders.
Firewalls
Linux Firewalls
par Ziegler, 1999, aux éditions New Riders.
Bases de données sous Linux: Installer et configurer MySQL, PostgreSQL, Oracle 8i,
traduction du précédent, 2000, aux édition Eyrolles.
Oracle
Oracle Database Administration on Unix Systems
par Lynnwood Brown, 1997.
MySQL
MySQL and mSQL
par Yarger, 1999, aux éditions O’Reilly & Associates.
B-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Bibliographie
PostgreSQL
Postgesql: Introduction and Concepts
par Momijan, aux éditions Addison Wesley.
DB2
DB2 Universal Database Version 7.1 for Unix, Linux, Windows and OS2
par Baklarz, 2001, aux éditions Prentice Hall.
TCL/TK in a Nutshell
par Raines, 1999, aux édition O’Reilly & Associates.
Programming Python
par Lutz, 1997, aux éditions O’Reilly & Associates.
Programmer avec Ot
Par M. Dalheimer, 2000, aux éditions O’Reilly & Associates.
Programmation Linux
Par N. Matthew et R. Stones, 2000, aux éditions Eyrolles.
Linux en entreprise
par Asbury, 2000, aux éditions Eyrolles.
Détaille la mise en ouvre de 10 applications d'entreprise associant les langages (Java, C/C++,
Perl) et les technologies (Apache, Corba, XML, MySQL, LDAP) les plus utilisés du moment.
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 B-7
Bibliographie
Mandrake
Linux Mandrake 7.0
aux editions CampusPress (livre officiel).
Debian
Debian GNU/Linux
par J. Goerzen et O.Othman, 1999, aux éditions New Riders.
SUSE
Linux snapshot SUSE 6.0
1999, aux éditions S.U.S.E.
Corel Linux
Corel Linux Starter Kit: The Official Guide
par Merlino, 2000, aux éditions Mac Graw Hill.
Caldera
Caldera OpenLinux Desktop 2.4
par Caldera, aux éditions Prentice Hall.
TurboLinux
TurboLinux Bible
par Duprey, 2000, aux éditions IDG Books.
Linux et Windows
Unix and Windows 2000 Handbook: Planning Integration and Administration
par Harvel, 2000, aux éditions Prentice Hall.
B-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Bibliographie
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 B-9
Index
IIndex
& ....................................................................................6-8 /etc/skel.................................................................. 2-6, 2-10
/boot ............................................................................12-10 /etc/smb.conf............................................................... 15-60
/boot/bootb ......................................................................7-4 /etc/syslog.conf ........................................................... 12-34
/dev/md<n>..........................................Voir disque multiple /etc/termcap .................................................................. 7-29
/etc/auto.master .............................................................4-34 /etc/ypserv.conf........................................................... 15-25
/etc/auto.misc ................................................................4-35 /lib/modules/$(uname –r)/........................................... 12-11
/etc/bashrc .....................................................................2-11 /proc............................................................................ 12-23
/etc/conf.modules ........................................................12-22 /proc/ide/......................................................................... 9-3
/etc/crontab...........................................................6-10, 6-13 /proc/mdstat .................................................................. 9-15
/etc/default/login .........................................................17-14 /proc/modules ............................................................. 12-18
/etc/dumpdates..................................................... Voir dump /proc/scsi/........................................................................ 9-3
/etc/exports ..................................................................15-15 /usr/share/terminfo ........................................................ 7-30
/etc/fstab ........................................................................4-33 /usr/src/linux/.config ................................................... 12-12
/etc/gettydefs .................................................................7-27 /usr/src/linux/Documentation/proc.txt ................. Voir /proc
/etc/group ........................................................................2-4 /var/log/cron.................................................................. 6-10
/etc/hhtpd.....................................................................15-46 /var/log/messages................................... 12-33, 12-34, A-98
/etc/host.lpd .....................................................................8-3 /var/yp/makefile.......................................................... 15-21
/etc/hosts .......................................................................15-5 /var/yp/securenets ....................................................... 15-25
/etc/hosts.allow - /etc/hosts.deny...................................15-9 ~/.bash_logout .............................................................. 2-11
/etc/hosts.equiv............................................................15-12 ~/.bash_profile ..............................................2-10, 6-4, 7-28
/etc/inetd.conf................................................................15-7 ~/.bash_rc ..................................................................... 2-10
/etc/initttab ....................................................................7-15
/etc/issue........................................................................1-22
/etc/ld.so.cache ..............................................................6-16
/etc/lilo.conf ........................... 4-4, 7-4, 10-18, 10-19, 12-11
A
/etc/login.defs.......................................................2-3, 17-17
/etc/man.config..............................................................1-27 accton.......................................................................... 14-13
/etc/mdstat .....................................................................9-14 adesse e-mail............................................................... 15-32
/etc/motd .......................................................................1-22 adresse IP...................................................................... 15-4
/etc/named.ca...............................................................15-68 adresse virtuelle ............................................................ 14-2
/etc/named.conf ...........................................................15-68 adresses d’entrées-sorties.............................................. 11-3
/etc/named.hosts ..........................................................15-68 AGP .............................................................................. 11-3
/etc/named.local ..........................................................15-68 alias.............................................................................. A-24
/etc/nologin....................................................................7-28 allexport ............................................................. A-19, A-28
/etc/nsswitch.conf...............................................15-6, 15-20 Apache........................................................................ 15-45
/etc/passwd ......................................................................2-2 API....................................................................... 11-2, 12-2
/etc/printcap..............................................................8-3, 8-8 arborescence de fichiers.................................................. 3-2
/etc/profile .......................................................................6-4 arborescence Linux ......................................................... 3-3
/etc/raidtab ...........................................................9-14, 9-15 ARPANET.................................................................... 15-2
/etc/rc.d/rc .....................................................................7-21 Arrêt du système .........................Voir commande shutdown
/etc/rc.d/rc.sysinit ..........................................................7-19 arrière-plan...................................................................... 6-2
/etc/rc.d/rc<n>.d ............................................................7-21 ascii................................................................................. 3-8
/etc/resolv.conf ..............................................................15-6 ASP............................................................................. 15-52
/etc/sendmail.cf ...........................................................15-38 AT&T ............................................................................. 1-3
/etc/services...................................................................15-7 ATAPI ............................................................................ 9-2
/etc/shadow..................................................................17-16 attributs d’un fichier...................................................... 3-15
/etc/shutdown.allow.......................................................7-32 authentification ............................................................. 17-2
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 I-1
Index
I-2 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Index
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 I-3
Index
I-4 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Index
H
K
hash .............................................................................. A-22
head ................................................................................ A-6 KDE................................................................... 16-4, 16-22
HISTFILE ..........................................................A-22, A-30 KDE - les applications ................................................ 16-23
Historique du noyau ......................................................12-4 kernel-headers............................................................. 12-11
history .......................................................................... A-22 kernel-source .............................................................. 12-11
HISTSIZE ..........................................................A-22, A-30 keyword ....................................................................... A-19
HOME......................................................A-17, A-22, A-31 kill.............................................................. A-7, A-24, A-36
HOWTO...............................................................1-24, 1-29 killall............................................................................... 6-7
HTTP...........................................................................15-45 Korn shell .......................................................... A-19, A-27
ksh ..................................................................... A-19, A-27
I
L
IAB................................................................................15-2
id ................................................................................... A-7 LAN MANAGER....................................................... 15-58
IDE..................................................................................9-2 LANG .......................................................................... A-17
Identification d'un processus ..................................Voir PID last .............................................................................. 14-14
IETF ..............................................................................15-2 lastcomm..................................................................... 14-13
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 I-5
Index
I-6 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Index
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 I-7
Index
I-8 Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004
Index
X Y
Noyau - version 1 ..........................................................12-5 yast................................................................................ 1-16
X11................................................................................16-2 ypinit........................................................................... 15-22
xargs............................................................................. A-14
xdm ...............................................................................16-8
xdm - configuration.......................................................16-9
XDMCP ........................................................................16-9
Z
XDR ............................................................................15-14
XFree86...........................................................................1-7 zombie ....................................................................... A-101
XFS ...............................................................................4-32
Copie légale autorisée par Tsoft © à CFAO Technologie jusqu'au 30/11/2004 I-9
Avis du lecteur
Vous avez choisi les ouvrages TSOFT pour vous former ou former d’autres personnes. Vous
êtes donc les premiers concernés pour qu’à votre prochaine commande, le guide de
formation ait été rectifié si nécessaire ou complété s’il le faut.
Critiques et suggestions