Académique Documents
Professionnel Documents
Culture Documents
Administration Linux
Administration Linux
Les bases de
l'administration
du systme Linux
Ce document peut tre librement lu, stock, reproduit, diffus, traduit et cit par tous moyens et sur tous supports aux conditions suivantes :
! tout lecteur ou utilisateur de ce document reconnat avoir pris connaissance de ce qu'aucune garantie n'est donne quant son contenu, tous points de
vue, notamment vracit, prcision et adquation pour toute utilisation ;
! il n'est procd aucune modification autre que cosmtique, changement de format de reprsentation, traduction, correction d'une erreur de syntaxe
vidente, ou en accord avec les clauses ci-dessous ;
! le nom, le logo et les coordonnes de l'auteur devront tre prservs sur toutes les versions drives du document tous les endroits o ils apparaissent
dans l'original, les noms et logos d'autres contributeurs ne pourront pas apparatre dans une taille suprieure celle des auteurs prcdents, des
commentaires ou additions peuvent tres insrs condition d'apparatre clairement comme tels ;
! les traductions ou fragments doivent faire clairement rfrence une copie originale complte, si possible une copie facilement accessible ;
! les traductions et les commentaires ou ajouts insrs doivent tre dats et leur(s) auteur(s) doi(ven)t tre identifiable(s) (ventuellement au travers d'un
alias) ;
! cette licence est prserve et s'applique l'ensemble du document et des modifications et ajouts ventuels (sauf en cas de citation courte), quelqu'en soit
le format de reprsentation ;
! quel que soit le mode de stockage, reproduction ou diffusion, toute version imprime doit contenir une rfrence une version numrique librement
accessible au moment de la premire diffusion de la version imprime, toute personne ayant accs une version numrise de ce document doit
pouvoir en faire une copie numrise dans un format directement utilisable et si possible ditable, suivant les standards publics, et publiquement
documents en usage ;
! la transmission de ce document un tiers se fait avec transmission de cette licence, sans modification, et en particulier sans addition de clause ou
contrainte nouvelle, explicite ou implicite, lie ou non cette transmission. En particulier, en cas d'inclusion dans une base de donnes ou une
collection, le propritaire ou l'exploitant de la base ou de la collection s'interdit tout droit de regard li ce stockage et concernant l'utilisation qui
pourrait tre faite du document aprs extraction de la base ou de la collection, seul ou en relation avec d'autres documents.
Toute incompatibilit des clauses ci-dessus avec des dispositions ou contraintes lgales, contractuelles ou judiciaires implique une limitation
correspondante : droit de lecture, utilisation ou redistribution verbatim ou modifie du document.
Adapt de la licence Licence LLDD v1, octobre 1997, Libre reproduction Copyright Bernard Lang [F1450324322014].
URL : http://pauillac.inria.fr/~lang/licence/lldd.html
L'original de ce document est disponible cette URL : http://sebastien.nameche.fr/cours
Pr-requis et droulement
Ce support de cours a pour objet la formation aux bases de l'administration du systme
Linux. La pratique du systme Unix ou Linux d'un point de vue utilisateur
n'y est pas aborde.
En particulier, on attend de chaque stagiaire qu'il :
- matrise l'utilisation d'Unix (commandes shell de base) ;
- sache modifier des fichiers au format texte l'aide de l'un des diteurs
traditionnellement disponibles sous Unix (vi, emacs, pico, etc.).
La dure thorique de ce module de formation est d'une journe et demie.
Il s'agit d'une formation interactive, il est donc tout fait indiqu d'interrompre le
formateur pour lui poser des questions, lui faire prciser certains points, demander l'tude
d'un cas particulier, etc.
Responsabilits de l'administrateur
Trois grandes familles de tches incombent l'administrateur Unix : grer le systme, les
services et la scurit.
Surveiller et assurer la bonne marche du systme au quotidien :
- surveiller les ressources (disque, mmoire, CPU, etc.) ;
- planifier l'ajout de ressources.
Administrer les services dploys :
- grer les utilisateurs ;
- installer et configurer les applications ;
- planifier les migrations.
Prvoir et grer les incidents et les intrusions (tches transversales) :
- installer les correctifs de scurit ;
- durcir le systme et les applications ;
- mettre en oeuvre un plan de sauvegarde ;
- superviser le systme et les applications.
L'utilisateur root
Pour raliser les tches d'administration, on utilise le compte traditionnellement appel
root ( ne pas confondre avec la racine de l'arborescence qui porte le mme nom).
De ce point de vue, le systme de gestion des droits la mode Unix est plutt primitif, un
utilisateur spcial dispose des droits lui permettant d'accder l'intgralit du systme.
Tous les autres utilisateurs sont soumis au systme de gestion des permissions d'accs.
Il est donc assez difficile, sous Unix, de dlguer l'administration d'un sous-systme des
utilisateurs.
Arborescence
La disposition des fichiers dans l'arborescence des systmes Unix n'est, en gnral, pas
d'une comprhension vidente de prime abord.
Il est cependant indispensable de connatre les rgles qui prsident la distribution des
fichiers et rpertoires dans le systme des fichiers afin de :
- dterminer un plan de sauvegarde ;
- grer la scurit ;
- agir efficacement lors de la rsolution des problmes ;
- installer des logiciels non disponibles sous formes de paquetage ;
- etc.
Un document, le FHS (Filesystem Hierarchy Standard disponible sur cette page
:http://www.pathname.com/fhs/), a pour ambition de proposer la normalisation de
l'organisation de systme de fichiers pour les systmes Unix.
La plupart des distributions Linux s'y conforme mme s'il reste beaucoup de diffrences
dans les dtails d'implmentation.
/etc et /lib
/etc
/etc/X11
/etc/rc*
/etc/pam.d
/usr
/usr/bin
/usr/games
/usr/include
/usr/lib
/usr/libexec
/usr/local
/usr/sbin
/usr/share
/usr/src
excutables
en-ttes pour le dveloppement en C
librairies et autres ressources partages
pages de manuel
ressources partages indpendantes de la plate-forme
/var
/var/account
/var/cache
/var/lib
/var/lib/rpm
/var/lock
/var/lock/subsys
/var/log
/var/run
/var/spool
/var/spool/mail
/var/spool/cron
/var/spool/lpd
/var/spool/mqueue
/var/tmp
/var/www
Paquetages
Un paquetage contient :
- les fichiers (excutables, librairies, fichiers de configuration, ressources, etc.)
ncessaires pour excuter un programme ;
- un ensemble de scripts qui configurent le programme automatiquement aprs son
installation ;
- les informations sur le propritaire et permissions d'accs de chaque fichier ;
- des informations optionnelles sur les paquetages dpendants et les services fournis ;
- une description du paquetage.
L'ensemble des informations de tous les paquetages installs sont stocks dans une base
de donnes gre par l'utilitaire rpm (Redhat Package Management) pour les distributions
bases sur RedHat et les outils dpkg et apt pour la distribution Debian.
rpm
Le nom d'un fichier de paquetage est constitu du nom du paquetage, du numro de
version du logiciel et du numro de version du paquetage spars par des caractres - .
Par exemple : openssl-0.9.7a-35.rpm
Exemples d'utilisation de rpm :
* installation d'un paquetage : rpm -i fichier.rpm
* mise--jour d'un paquetage : rpm -U fichier.rpm
* suppression d'un paquetage : rpm -e paquetage
* vrification d'un paquetage : rpm -V paquetage
* interrogation sur les paquetages installs :
- liste des fichiers d'un paquetage : rpm -ql paquetage
- paquetage contenant un fichier : rpm -qf /chemin/vers/fichier
- informations sur un paquetage : rpm -qi paquetage
- liste trie de tous les paquetage installs : rpm -qa |sort
* interrogation sur un fichier de paquetage :
- liste des fichiers : rpm -qpl fichier.rpm
- informations : rpm -qpi fichier.rpm
(c) 2004, Sbastien Namche (sebastien@nameche.fr) - 12
Utilisateurs Unix
Les attributs qui caractrisent un utilisateur Unix sont :
- un nom de connexion (login) ;
- un mot de passe ;
- un identifiant numrique unique (UID) ;
- un groupe primaire (GID) ;
- un commentaire (appel gecos);
- le rpertoire principal de l'utilisateur (home directory) ;
- un interprteur de commandes (shell) par dfaut.
Un utilisateur est identifi par le systme par son UID. L'utilisateur root a pour UID 0.
C'est cette caractristique qui lui confre un accs complet au systme.
L'ensemble de ces lments est stock dans le fichier /etc/passwd au format texte. Les
champs sont spars par le caractre : . Par exemple :
jo:x:500:500:Jo Dalton:/home/jo:/bin/bash
Groupes Unix
Les attributs qui caractrisent un groupe Unix sont :
- un nom ;
- un mot de passe (jamais utilis) ;
- un identifiant numrique unique (GID) ;
- une liste d'utilisateurs membres.
La liste des utilisateurs peut tre vide ou contenir un plusieurs nom d'utilisateurs spars
par un caractre , .
L'ensemble de ces lments est stock dans le fichier /etc/group au format texte. Les
champs sont spars par le caractre : . Par exemple :
daltons:x:100:jo,jack,william,averell
Relations utilisateurs/groupes
La commande id permet de lister les informations
(UID, GID, groupes) relatives aux utilisateurs.
redondant
$ id jo
uid=500(jo) gid=500(jo) groupes=500(jo),499(daltons)
(Voir galement la
commande groups.)
groupes
nom
GID
membres
root
root
bin
root,bin,daemon
...
...
...
daltons
499
jo,jack,william,averell
jo
500
jack
501
william
502
averell
503
utilisateurs
login
UID
GID
root
bin
...
...
...
jo
500
500
jack
501
501
william
502
502
averell
503
503
a pour membres
a comme groupe primaire
(c) 2004, Sbastien Namche (sebastien@nameche.fr) - 20
Conventions
En gnral, la liste des utilisateurs est segmente ainsi :
- l'utilisateur dont l'UID est 0 est le root ;
- les utilisateurs dont l'UID est infrieur une certaine valeur sont des utilisateurs
systmes ;
- les utilisateurs dont l'UID est compris entre cette valeur et 65533 sont des
utilisateurs rels, cette plage peut quelquefois tre elle-mme subdivise (par
exemple lors de l'utilisation de NIS ou Winbind) ;
- l'utilisateur dont l'UID est 65534 est nobody ou nfsnobody (pour les
systmes qui supportent les UID sur 32 bits, afin de conserver une compatibilit
avec les anciens serveurs NFS).
Souvent, chaque utilisateur correspond un groupe :
- dont le GID est identique l'UID de l'utilisateur ;
- dont le nom est le mme que celui de l'utilisateur ;
- qui est le groupe primaire de l'utilisateur.
Le support des utilisateurs cods sur 32 bits commence arriver dans les distributions
rcentes afin de porter le nombre d'utilisateurs possibles de 65535 plus de 4 millions.
Il est possible de rediriger ces messages selon leur origine et/ou leur niveau vers des
fichiers, la console, etc. voire vers le Syslog d'une autre machine.
Le fichier de configuration de syslogd est /etc/syslog.conf.
Par dfaut, la quasi totalit des messages sont dirigs vers un ensemble de fichier situs
dans le rpertoire /var/log.
syslog.conf
Une ligne du fichier /etc/syslog.conf est de la forme :
facility.priority[,facility.priority,...]
action
syslog.conf
Les niveaux de priorits (par ordre de gravit) sont :
debug
info
notice
warning
err
crit
alert
emerg
Une priorit reprsente galement toutes les priorits qui lui sont suprieures except si
elle est prcde du signe = (dans ce cas, elle ne reprsente qu'elle-mme).
La priorit none indique de ne pas tenir compte du message pour la facilit concerne
tandis que * reprsente tous les niveaux.
Le caractre ! utilis devant la priorit indique de ne pas en tenir compte.
/var/log/cron
messages
semaine 2
messages
messages.1
(actif)
(semaine 1)
semaine 3
messages
messages.1
messages.2
(actif)
(semaine 2)
(semaine 1)
semaine 4
messages
messages.1
messages.2
messages.3
(actif)
(semaine 3)
(semaine 2)
(semaine 1)
semaine 5
messages
messages.1
messages.2
messages.3
(actif)
(semaine 4)
(semaine 3)
(semaine 2)
(actif)
(semaine 1)
(c) 2004, Sbastien Namche (sebastien@nameche.fr) - 30
Dmarrage du systme
Juste aprs avoir dmarr, initialis le matriel et mont la
partition racine en lecture seule, le noyau dmarre le
processus /sbin/init.
init est l'anctre de tous les autres processus du systme
(cela est visible avec la commande pstree).
BIOS
MBR
Bootloader
Noyau
init[1]
processus
processus
processus
processus
processus
Runlevels
Un runlevel dcrit un tat du systme. Il existe sept runlevels distincts.
Caque runlevel correspond une utilisation du systme :
0
1
2
3
4
5
6
arrt du systme
mode de maintenance (single user mode, s ou S peuvent tre utiliss)
mode normal sans NFS
mode normal
inutilis
mode normal avec X Window (dfaut si un environnement Gnome ou KDE
est install)
redmarrage du systme
Le caractre X
fait rfrence au
runlevel cible.
rcupration du runlevel
pass en paramtre au noyau
ou, dfaut, de celui
marqu initdefault
excution du script
/etc/rc.d/rc.sysinit
(marqu sysinit)
excution du script
/etc/rc.d/rc
avec le paramtre X
arrt des
programmes
marqus respawn
redmarrage
du programme
arrt des
dmons
dmarrage
des dmons
arrt du
systme
Changer de runlevel
Un runlevel prcis peut tre atteint :
- en le passant comme paramtre au noyau dans la configuration du chargeur de
dmarrage ou en modifiant de manire temporaire les paramtres de dmarrage du
noyau ;
- en utilisant les commandes init ou telinit lorsque le systme est dmarr, il est
ainsi possible de passer d'un runlevel l'autre sans arrter le systme ;
- en le configurant comme runlevel par dfaut (pour le prochain dmarrage du
systme) dans le fichier /etc/inittab, la ligne initdefault ;
- en utilisant la commandes shutdown qui envoie un signal init.
Avec le chargeur de dmarrage GRUB (GRand Unified Bootloader), les paramtres de
dmarrage par dfaut du noyau sont situs dans le fichier /boot/grub/grub.conf
(lignes kernel).
Une interface rudimentaire permettant de modifier de manire temporaire les paramtres
du noyau est disponible lors de la phase de dmarrage de GRUB en appuyant sur la
touche e .
O nom est le nom d'un service (tel que prsent dans le rpertoire /etc/init.d) et
action le type d'action entreprendre :
- stop arrte le service ;
- start dmarre le service ;
- reload demande au service de relire sa configuration ;
- status affiche l'tat du service.
On peut galement utiliser cette syntaxe :
# /etc/init.d/nom action
# mkdir /mnt/tmp
# mount -o loop -t ext3 /var/local/myfs /mnt/tmp
# echo /dev/hda9 /opt ext3 loop 1 2 >> /etc/fstab
init 1
umount /usr
fsck -t ext3 -f /dev/hda7
mount /usr
init 5
mkdir /mnt/archives
touch /etc/passwd.smb
chmod 600 /etc/passwd.smb
vi /etc/passwd.smb
Ajouter les lignes suivantes au fichier :
username = utilisateur
password = mot_de_passe
Puis enregistrer. ]
# mount -t smb -o workgroup=WG,credentials=/etc/passwd.smb
//serveur/archives /mnt/archives
# echo //serveur/archives /mnt/archives smb
workgroup=WG,credentials=/etc/passwd.smb 0 0 >> /etc/fstab
\
\
# mkswap /swapfile
Initialisation de la version de l'espace de swap 1, taille = 104853 kB
# swapon /swapfile
# echo /swapfile swap swap defaults 0 0 >> /etc/fstab
# swapon -s
Filename
Type
Size
Used
Priority
/dev/hda3
partition
524152 0
-1
/swapfile
file
102392 0
-2
Archives
tar (pour Tape ARchiver) est une commande Unix qui permet de grer des archives
Certaines versions de tar enregistrent le chemin absolu des fichiers archivs si celui-ci
est indiqu. Attention lors de la restauration ! En gnral, on considre qu'il est sage
d'archiver un rpertoire en prcisant son nom depuis son parent (chemin relatif).
Archives
La commande tar ne compresse pas les donnes. Il faut pour cela utiliser la commande
compress :
# cd /; tar cf /mnt/backups/backup-home.tar home
# compress /mnt/backups/backup-home.tar
La commande compress remplace les fichiers donns sur sa ligne de commande par des
versions compresses de ceux-ci. L'extension .Z est ajoute leur nom.
Une autre manire de faire consiste utiliser un tube :
# cd /; tar cf - home | compress > /mnt/backups/backup-home.tar.Z
(Le caractre - reprsente ici la sortie standard.)
Enfin, si la version de tar utilise est celle du projet GNU, l'option Z permet de
simplifier la ligne de commande :
# cd /; tar cZf /mnt/backups/backup-home.tar.gz home
commande
dcompression
uncompress
gunzip
bunzip2
efficacit
vitesse
moyenne
bonne
excellente
moyenne
moyenne
lente
extension
gnre
.Z
.gz
.bz2
option
GNU tar
Z
z
j
Archives
L'option t de la commande tar permet de lister le contenu d'une archive. L'option
v permet d'accrotre le niveau de dtails affichs.
Par exemple :
# tar tvzf /mnt/backups/backup-home.tar.gz
.../...
Enfin, l'option x permet d'extraire le contenu d'une archive. Sans autre prcision, le
contenu de l'archive est restaur dans le rpertoire courant si un chemin relatif a t utilis
lors de la cration de l'archive ou dans le rpertoire original si c'est un chemin absolu qui
a t utilis.
Par exemple :
# mkdir /home/tmp-restauration
# cd /home/tmp-restauration
# tar xzf /mnt/backups/backup-home.tar.gz
Modules du noyau
Certaines fonctionnalits du noyau Linux peuvent tre compiles indpendamment de
celui-ci. Elles sont compiles sous forme de module. L'utilisation des modules tend se
gnraliser.
Avantages :
- rduction de la taille du noyau ;
- configuration dynamique du matriel ;
- possibilit d'ajout de certaines fonctionnalits sans recompiler le noyau ;
- des pilotes de priphriques peuvent tre livrs sous forme de binaires.
Inconvnients :
- complexit accrue.
Les modules se prsentent sous forme de fichiers binaires et sont installs dans le
rpertoire /lib/modules/version_du_noyau.
Modules du noyau
Un ensemble de commandes permettent de manipuler les modules. Pour afficher la liste
de ceux qui sont actuellement chargs par le noyau :
# lsmod
Module
parport_pc
lp
parport
autofs4
sunrpc
8139too
Size
19392
8236
29640
10624
101064
17792
Used by
1
0
2 parport_pc,lp
0
1
0
.../...
Charger un module :
# insmod /chemin/module.o [symbole=valeur ...]
Modules du noyau
Un module peut dpendre d'un ou plusieurs autres modules. Afin de charger un module et
tous ceux qui lui sont ncessaires, on utilise la commande modprobe la place de
insmod. Un autre intrt de modprobe est qu'il n'est pas ncessaire de lui donner le
chemin complet d'accs au fichier du module.
Afin d'viter de spcifier chaque fois les paramtres des modules, ceux-ci sont stocks
dans le fichier /etc/modules.conf (ou /etc/modprobe.conf pour les noyaux 2.6).
Si une fonctionnalit lui manque, le noyau Linux va essayer de combler cette lacune en
recherchant un module adquat. Il utilisera pour cela le contenu des fichiers
modules.conf ou modprobe.conf.
Par exemple, une ligne de ce fichier est gnralement destine configurer la carte rseau
:
alias eth0 eepro100
va provoquer la recherche d'un module eth0 qui est un alias vers le nom du module
rellement utilis (eepro100.o).
(c) 2004, Sbastien Namche (sebastien@nameche.fr) - 50
Interfaces
L'lment de base de la configuration de rseau Linux est l'interface.
Un systme Linux en possde gnralement plusieurs.
Elles sont nommes en fonction de leur type et numrotes dans l'ordre
d'activation des pilotes de priphriques et selon leur position sur le bus physique
de donnes.
Les types d'interfaces les plus reprsents sont :
- lo
interface dite de loopback ;
- ethn interfaces Ethernet ;
- pppn liens PPP.
L'interface lo est toujours associe l'adresse IP 127.0.0.1, la procdure
d'installation du systme se charge de raliser cette association.
Les interfaces de type Ethernet sont configures galement par la procdure
d'installation si elles ont t dtectes.
Interfaces
Les pilotes de priphriques sont trs souvent disponibles sous forme de modules
du noyau. Ces modules peuvent tre activs de deux manires diffrentes :
- le noyau charge le module de manire automatique lorsqu'une commande
ifconfig fait rfrence une interface qui n'est pas connue, un alias
doit
exister dans le fichier /etc/modules.conf :
alias eth0 3c59x
La commande ifconfig
La commande ifconfig est utilise pour activer et configurer les interfaces.
L'option -a permet d'afficher la liste dtaille des interfaces rseau du systme :
# ifconfig -a
eth0
Lien encap:Ethernet HWaddr 00:20:ED:36:3C:EE
inet adr:192.168.200.200 Bcast:192.168.200.255 Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15356 errors:0 dropped:0 overruns:0 frame:0
TX packets:12392 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:1745320 (1.6 Mb) TX bytes:4365502 (4.1 Mb)
Interruption:10 Adresse de base:0x5f00
lo
La commande ifconfig
Les interfaces sont actives ou dsactives comme ceci :
# ifconfig eth0 up
# ifconfig eth0 down
Routes statiques
La gestion des routes se fait avec la commande route.
Pour afficher la table de routage statique, il est possible d'utiliser l'une de ces deux
commandes :
# route
Table de routage IP du noyau
Destination
Passerelle
192.168.200.0 *
default
lucky.luke.net
# netstat -r
Table de routage IP du noyau
Destination
Passerelle
192.168.200.0 *
default
lucky.luke.net
Genmask
255.255.255.0
0.0.0.0
Use Iface
0 eth0
0 eth0
Genmask
255.255.255.0
0.0.0.0
Routes statiques
Trois cas sont considrer pour l'ajout de route :
- ajout d'une route vers une machine isole :
# route add -host 10.20.30.1 gw 192.168.200.2
La cible d'une route peut tre une passerelle (gw) ou une interface (dev).
Dans le premier cas, l'adresse IP ou le nom de la passerelle peuvent tre utiliss.
Voici comment supprimer une route :
# route del -net 10.20.30.0 netmask 255.255.0.0
Le paramtre search indique les domaines qui seront utiliss comme suffixes de
recherche. Chacun des paramtres nameserver spcifie un serveur de noms
DNS.
Le fichier /etc/hosts contient des dfinitions de noms statiques :
127.0.0.1
192.168.200.201
192.168.200.1
localhost.localdomain
jack.luke.net jack
gw
localhost
Outils
Les outils suivants peuvent s'avrer utiles lors de la mise au point d'une
configuration rseau sous Linux :
- Tester la connectivit IP :
# ping jo.luke.net
Rfrences
Livres
Administration Linux 200% Rob Flickenger, collectif O'Reilly
Le systme Linux Matt Welsh, Matthias Kalle Dalheimer, Terry Dawson et
Lar Kaufman O'Reilly
Les bases de l'administration systme leen Frisch O'Reilly
Administration rseau sous Linux Olaf Kirch et Terry Dawson O'Reilly
Sites Web
Linux France http://www.linux-france.org
Le site de la socit Redhat http://www.redhat.fr
Le site du projet Fedora http://fedora.redhat.com
Autres
Le forum fr.comp.os.linux sur USENET
Linux Magazine , mensuel