Administration Système Habib SMEI
Habib SMEI / Administration système – MP2L
1
Contenu du Module
Séance 1 : Démarrage et arrêt du système
Le démarrage du système : boot, Grub et noyau
L'activation des processus : le processus init
Les scripts de connexion
L'arrêt propre du système
Gestion du multi-boot avec LILO, et avec GRUB
Séance 2 : Gestion des utilisateurs
La gestion des utilisateurs et groupes
Structure des fichiers de gestion des utilisateurs et groupes
Les modèles de configuration des sessions d'utilisateurs
2
Contenu du Module
Séance 3 : Ajout et Suppression de logiciels
Les paquets
Les différents types d'archives
Séance 4 : La gestion des sauvegardes
Les types de sauvegarde
Les commandes de sauvegarde
3
Contenu du Module
Séance 5 : Les systèmes de fichiers
Rôle d'un système de fichiers (Rappel)
Le montage/démontage d'un système de fichiers
Commandes de création et de maintenance
Configuration et gestion des quotas
Séance 6 : La gestion des traces (logs)
Configuration et fonctionnement
Outils de traitement de journaux
Séance 7 : Les tâches administratives (at et cron)
CRON
ANACRON
AT
4
Administration Système
Le démarrage et l'arrêt du système
Habib SMEI
5
La racine du système de fichiers (rappel)
•
•
•
•
•
•
•
•
•
•
/bin : Programmes utilisateurs essentiels.
/boot : fichiers nécessaires au démarrage (bootloader, initrd, noyau)
/dev : fichiers spéciaux permettant l'accès aux périphériques.
/etc : fichiers de configuration du système et des services.
/home : Contient les répertoire privés des utilisateurs.
/initrd : utilisé pour construire l'image disque du noyau en RAM.
/lib : librairies partagées essentielles.
/mnt : contient les points de montage temporaires: cdrom, etc.
/opt : applications tierces.
/proc et /sys : SF virtuels permettant l'accès aux structures internes du
noyau.
6
La racine du système de fichiers (rappel)
•
•
•
•
•
/root : répertoire privé du super-utilisateur.
/sbin : exécutables système essentiels.
/tmp : stockage des fichiers temporaires.
/usr : arborescence contenant la plupart des fichiers des applications.
/var : données variables du système et des applications.
7
Démarrage de GNU/Linux : étapes
Le BIOS vérifie le système (POST)
Bootloader 1 lancé à partir du MBR du disque dur principal
Le Bootloader 1 lance le bootloader 2 se trouvant dans la partition /boot
Le Bootloader 2 charge le noyau Linux (kernel) et initrd en mémoire
Le noyau charge les modules nécessaires (initrd) et monte la partition root en
lecture seulement
Le noyau passe le contrôle du processus de démarrage au programme /sbin/init.
/sbin/init : chargement des services et outils de l'espace utilisateur, montage des
partitions répertoriées dans /etc/fstab.
Invite de connexion de l'utilisateur
8
Etapes de démarrage : Le BIOS
Au démarrage, exécution du BIOS (Basic Input/Output System) stocké en
ROM .
Test du système, recherche et vérification des périphériques,
principalement les périphérique d'amorçage du système (disquette, CDROM,
disque dur, disque flash, …)
Recherche du MBR sur le périphérique d'amorçage. Secteur de 512 octets,
contient le bootloader, ainsi que la table de partition du disque.
Chargement et exécution du Bootloader, suite d'instructions de démarrage
du système d'exploitation sur le périphérique.
9
Gestionnaire d'amorçage (boot manager)
C’est le programme basique servant d'interface entre le système d'exploitation et la carte mère.
10 10
Gestionnaire d'amorçage (boot manager)
Le Bios
Il est stocké dans une ROM (mémoire morte, c'est-à-dire une mémoire en lecture seule)
Ainsi il utilise les données contenues dans le CMOS pour connaître la configuration matérielle du système.
CMOS : Complementary Metal Oxide Semiconductor)
11 11
Gestionnaire d'amorçage (Rôle du Bios)
Publicité
Indépendant du système d’exploitation (Windows, Mac OS, GNU/Linux), le BIOS est le chef d’orchestre de la partie matérielle de votre machine.
C’est depuis son interface que l’on décide, par exemple, d’amorcer la machine depuis le disque dur ou depuis un CD pour réinstaller sa machine.
il détecte les éventuels problèmes matériels et communique au travers de séquences de « bip » afin d’indiquer la nature des erreurs (mémoire défectueuse, disque dur endommagé, etc.).
12 12
Gestionnaire d'amorçage (boot manager)
2- Amorçage de Linux: étape du MBR
Quand un périphérique sur lequel on peut démarrer est trouvé, le premier programme se trouvant dans le MBR est chargé en RAM puis exécuté.
Ce chargeur de démarrage fait au plus 512 octets (un secteur) et son rôle est de charger le deuxième programme.
M B R
B S
P Principale
P Principale
B S
E B R
B S
P Etendue
Lecteur Logique
13 13
Etapes de démarrage : chargeur de démarrage
Boot Record
Gestionnaire d'amorçage (boot manager)
Astuce
Pour voir le contenu du MBR :
dd if=/dev/had of=mbr.bin bs=512 count=1 (copie dans mbr.bin)
od–x mbr.bin (affichage le contenu en hexa)
À vérifier
15
Gestionnaire d'amorçage (boot manager)
Copié par le BIOS à l’@ 0x7c00 et contient:
Un programme de
chargement
Une petite table de
partitions
Un nombre magique
Chargeur d’amorçage (bootloader)
446 octets
Partition 1 Partition 2 Partition 3 Partition 4
Table de partition
Nbr magique
64 octets 2 octets
Partition flag
Start CHS
Partition byte
End CHS
Start LBA
size
16 16
Gestionnaire d'amorçage (boot manager)
Les 446 premiers octets contiennent le premier chargeur
d’amorçage:
Code exécutable et messages d’erreurs
64 octets: table des partitions
16 octets par partition (primaire ou étendue): 4 partitions max
Partition primaire: partition pouvant contenir la partition
d’amorçage d’un OS.
Partition étendue: le but est d’outre passer la limite des 4 partitions
-' plusieurs lecteurs logiques peuvent être crées
2 octets: nombre magique 0xAA55 permettant de vérifier si
le MBR est correct (délimiteur de fin de MBR)
17
Gestionnaire d'amorçage (boot manager)
Amorçage de Linux : étape du Bios
Routine du BIOS cherche un périphérique actif et démarrable (disquette,
CDROM, partition de disque, réseau, clé USB, le plus souvent, il s’agit du
disque dur) et copie les 512 octets à l’@ 0x00007c00 puis fait un saut à cette
adresse:
MBR (Master Boot Record): premier secteur du disque; tête 0, cylindre 0,
secteur 1.
MBR contient le premier chargeur d’amorçage (512 octets)
Une fois que le MBR est chargé en RAM, le BIOS lui donne le contrôle.
18 18
Etapes de démarrage
BIOS
MBR
BootLoader
Noyau
Init(pid=1)
Processus
Processus
Processus
ETAPES DE DÉMARRAGE
19
Etapes de démarrage : chargeur de démarrage
Les deux chargeurs de démarrage les plus connus : GRUB ou LILO
Exécution divisée en deux étapes :
le BIOS exécute un binaire de taille réduite stocké dans le MBR
ce 1er chargeur localise et exécute un 2è chargeur stocké à l'endroit
indiqué dans la configuration (disque dur par exemple)
LILO : configuration succinte stockée dans le MBR. A chaque changement
de configuration, une écriture dans le MBR doit être faite (/sbin/lilo -v)
GRUB : chargeur plus récent, lecture possible de la configuration sur
partition ext2,ext3 ou ext4 dans /boot/grub/grub.conf
20
Etapes de démarrage : chargeur de démarrage
Affichage de l'écran de sélection des système d'exploitation ou des
différents noyaux Linux.
En fonction du choix, exécution d'un binaire de noyau Linux stocké dans
/boot/ ; nom de type vmlinuz-<version-noyau>
chargement en mémoire de initrd, "image disque RAM initial" : utilisé
ensuite par le noyau pour charger des pilotes utiles au système (par ex.
pour disque SCSI)
Le processus de démarrage est cédé au noyau (kernel)
21
Gestionnaire d'amorçage (boot manager)
Amorçage de Linux: Le boot loader
Quand le boot loader est chargé en RAM et exécuté, un splash-screen est souvent affiché proposant les images d’OSs disponibles
22 22
Gestionnaire d'amorçage (boot manager)
Amorçage de Linux: Kernel
Publicité
Après avoir choisi, le boot loader passe la main à l'image du noyau (Kernel) et le noyau est alors décompressé.
À ce stade, le boot loader vérifie aussi le matériel, énumère les périphériques attachés.
Ils existe plusieurs types de boot loader : grub, lilo …
23 23
Gestionnaire d'amorçage (boot manager)
Les Familles de boot loader:
Microsoft : NTLDR (Windows NT) WINLOAD (Windows 7)
Open source :
GRUB (GRand Unified Bootloader) LILO (Linux loader)
Apple : Boot Camp
24 24
Etapes de démarrage : noyau Le noyau initialise et configure la mémoire, les processeurs, le système
E/S, les périphériques de stockage "standards"
Le noyau utilise ensuite initrd pour charger des pilotes et modules
spécifiques (principalement SCSI, RAID, USB) nécessaires au noyau pour
accéder au système de fichier réel et continuer le démarrage
Le fichier /boot/initrd.img est chargé en mémoire comme un périphérique de stockage
virtuel RAMDisk (par ex. /dev/ram0). Ce disque virtuel RAMDisk est ensuite monté en tant
que racine temporaire du système de fichiers (/).
Les pilotes et modules mentionnés plus haut sont maintenant chargés par le noyau.
initrd est démonté en tant que racine et la racine définitive est montée.
À ce stade, le noyau est chargé en mémoire et est désormais opérationnel. Il faut
maintenant initialiser l'environnement utilisateur.
25
Etapes de démarrage : init
Une fois le noyau chargé en mémoire, il lance le premier
processus : /bin/init
init est le père de tous les autres processus qui seront créés
par l'appel system fork()
init lit le fichier /etc/inittab pour savoir :
- quel est le fichier à exécuter pour continuer le chargement
du système
- quel est le runlevel (niveau d'exécution) par défault
- comment lancer les services pour un runlevel donné
26
Etapes de démarrage : init (suite)
/etc/inittab lance d'abord le script /etc/rc.d/rc.sysinit
si::sysinit:/etc/rc.d/rc.sysinit
rc.sysinit réalise les opérations d'initialisation du système :
initialise la variable PATH pour les autres scripts
active la partition de swap
monte les partitions de disque dur suivant /etc/fstab
initialise le nom du système (hostname)
vérifie l'intégrité du système de fichiers
démarre la gestion des quotas
initialise le "Plug and Play"
prépare la gestion des modules
initialise l'horloge système
détruit les fichiers de verrouillage
27
Etapes de démarrage : init (suite)
init lance ensuite divers processus en fonction du niveau d'exécution
(runlevel) configuré dans inittab
Le runlevel est le contexte dans lequel se trouve le système et qui va
induire l'arrêt ou le démarrage de processus. On distingue 7 runlevels
différents :
0 - Arrêt du système (Halt)
1 - Mode mono-utilisateur
2 - Mode multi-utilisateurs (sans NFS)
3 - Mode Multi-utilisateurs
4 – Non utilisé
5 - Mode Multi-utilisateurs avec login graphique
6 – Redémarrage du système (Reboot)
28
Etapes de démarrage : init (suite)
En fonction du runlevel, innitab indique à init de démarrer les processus dont les
scripts de démarrage se trouvent dans le répertoire correspondant au runlevel. Par
ex : pour runlevel 5, /etc/rc.d/rc5.d/
Ces scripts sont des liens symboliques vers des scripts existants dans le répertoire
/etc/rc.d/init.d/.
On peut ainsi modifier le lien (ajouter, supprimer, renommer) sans affecter le script
auquel il fait référence
Le nom de ces liens symboliques décrit si les processus doivent être démarrés (S,
Started) ou arrêtés (K, Killed), et dans quel ordre (le nombre suivant la 1ère lettre
du nom). ex : dans /etc/rc.d/rc5.d/ on trouve les scripts S10network et S55sshd
29
Etapes de démarrage : init (suite)
init arrête tout d'abord tous les liens symboliques K du répertoire en émettant la
commande /etc/rc.d/init.d/<commande> stop,
<commande> correspondant au processus à arrêter
Elle démarre ensuite tous les liens symboliques S :
/etc/rc.d/init.d/<commande> start
Par ex : le lien S55xinetd lancera la commande /etc/rc.d/init.d/xinetd start
Remarque : on peut utiliser ces mêmes scripts en tant que super-utilisateur (root)
pour démarrer ou arrêter des services
Par ex : /etc/rc.d/init.d/httpd stop arrêtera le serveur Web Apache
Pour les runlevels 2 à 5, le script local (S99local) pointant vers
/etc/rc.d/rc.local est le dernier à être exécuté. Ce script permet de lancer des
commandes de personnalisation du système.
30
Etapes de démarrage : init (suite)
Après avoir exécuté tout les scripts de /etc/rc.d pour le runlevel, le script
/etc/inittab établit un processus /sbin/mingetty pour chaque console virtuelle
(invites de login) assignée à ce niveau d'exécution :
Pour les runlevels 2 à 5, six consoles virtuelles sont démarrées
Le runlevel 1 (mode mono-utilisateur) n'obtient qu'une console
Pour les runlevels 0 (arrêt) et 6 (redémarrage), aucune console n'est démarrée
mingetty est un getty, un gestionnaire (GET) de terminal (TTY, teletype). Le getty
attend une connexion sur les liens série. A la connexion, il configure le lien série,
demande un login et un mot de passe, puis effectue le processus de login pour
l'utilisateur
Pour le runlevel 5 (login graphique), /etc/inittab exécute le script
/etc/X11/prefdm qui affiche le login graphique
La séquence de démarrage est terminée.
31
Etapes de démarrage : init (suite)
Exemple de fichier /etc/inittab format des lignes id:runlevels:action:process
Le niveau d'exécution par défaut
Les niveaux d'exécution possibles
Publicité
Action à faire sur l'évènement CTRL-ALT-DEL
Pour les niveaux 2 à 5, activer plusieurs consoles en mode caractère
# inittab This file describes how the INIT process should set up # the system in a certain run-level. # # Default runlevel. The runlevels used by Mandrakelinux are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit 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
Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now ... ...
Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 ... ...
32
Etapes de démarrage : init (suite)
Exemples d'actions courantes pour le fichier inittab :
respawn
Le processus est redémarré à chaque fois qu'il se termine
wait
boot
Le processus n'est démarré qu'une seul fois
Le processus est exécuté pendant le démarrage du système
initdefault
indique le mode de démarrage une fois le système
opérationnel. Si aucun n'existe, init demandera un runlevel sur
la console
sysinit
Le processus est exécuté pendant le démarrage du système. Il
est exécuté avant les entrées boot ou bootwait
ctrlaltdel
Le processus est exécuté lorsque init reçoit le signal SIGINT.
(appui simultané des touches CTRL+ALT+DEL)
33
Etapes de démarrage : Scripts de lancement
Exemple de contenu du répertoire /etc/rc5.d :
lrwxrwxrwx 1 root root 14 Jul 20 21:46 K59dund -> ../init.d/dund* lrwxrwxrwx 1 root root 14 Jul 20 21:46 K59hidd -> ../init.d/hidd* lrwxrwxrwx 1 root root 14 Jul 20 21:46 K59pand -> ../init.d/pand* lrwxrwxrwx 1 root root 14 Jul 20 21:43 S01udev -> ../init.d/udev* lrwxrwxrwx 1 root root 19 Jul 20 21:46 S05harddrake -> ../init.d/harddrake* lrwxrwxrwx 1 root root 17 Jul 20 22:02 S10network -> ../init.d/network* lrwxrwxrwx 1 root root 17 Jul 20 22:02 S11portmap -> ../init.d/portmap* lrwxrwxrwx 1 root root 16 Jul 20 22:02 S12syslog -> ../init.d/syslog* lrwxrwxrwx 1 root root 17 Jul 20 21:43 S13partmon -> ../init.d/partmon* lrwxrwxrwx 1 root root 17 Jul 20 21:46 S14nfslock -> ../init.d/nfslock* lrwxrwxrwx 1 root root 14 Jul 20 21:42 S17alsa -> ../init.d/alsa* lrwxrwxrwx 1 root root 16 Jul 20 22:03 S17ypbind -> ../init.d/ypbind* lrwxrwxrwx 1 root root 15 Jul 20 22:02 S18sound -> ../init.d/sound* lrwxrwxrwx 1 root root 13 Jul 20 21:44 S20xfs -> ../init.d/xfs* lrwxrwxrwx 1 root root 20 Jul 20 21:43 S24messagebus -> ../init.d/messagebus* lrwxrwxrwx 1 root root 19 Jul 20 21:46 S25bluetooth -> ../init.d/bluetooth* lrwxrwxrwx 1 root root 19 Jul 20 21:44 S25haldaemon -> ../init.d/haldaemon* lrwxrwxrwx 1 root root 15 Jul 20 22:02 S25netfs -> ../init.d/netfs* lrwxrwxrwx 1 root root 17 Jul 20 21:47 S29numlock -> ../init.d/numlock* lrwxrwxrwx 1 root root 12 Jul 20 21:43 S30dm -> ../init.d/dm* lrwxrwxrwx 1 root root 14 Jul 20 21:44 S33nifd -> ../init.d/nifd* ... lrwxrwxrwx 1 root root 13 Jul 20 21:46 S40atd -> ../init.d/atd* lrwxrwxrwx 1 root root 14 Jul 20 21:47 S55sshd -> ../init.d/sshd* lrwxrwxrwx 1 root root 20 Jul 20 22:02 S56rawdevices -> ../init.d/rawdevices* lrwxrwxrwx 1 root root 18 Jul 20 22:02 S75keytable -> ../init.d/keytable* lrwxrwxrwx 1 root root 15 Jul 20 17:52 S80spamd -> ../init.d/spamd* lrwxrwxrwx 1 root root 17 Jul 20 21:50 S85proftpd -> ../init.d/proftpd* lrwxrwxrwx 1 root root 15 Jul 20 22:02 S90crond -> ../init.d/crond* lrwxrwxrwx 1 root root 14 Jul 20 21:44 S92lisa -> ../init.d/lisa* lrwxrwxrwx 1 root root 17 Jul 20 22:02 S95kheader -> ../init.d/kheader* lrwxrwxrwx 1 root root 11 Jul 20 21:43 S99local -> ../rc.local*
Démarrage du réseau
Démarrage du service Son
Démarrage de la bannière de connexion en mode graphique (display manager)
Démarrage du service anti- spam
Pour finir, Lancement du script de configuration locale
34
Etapes de démarrage : Scripts de lancement
Lancement du système : boot -> init -> services
Utilitaires en mode console :
- Debian : update-rc.d
- Mandrake : chkconfig, service
le script /etc/rc.local peut contenir des personnalisations locales qui seront
lancées à la fin du processus init
Pour démarrer un service sous mandrake, on peut taper :
service <nom_du_service> start
ou encore :
/etc/rc.d/init.d/<cript_correspondant_au_service> action
action : starp | stop | restart | status | ...
35
Les scripts de connexion
Dans la plupart des distributions on trouve les étapes suivantes :
Le script /etc/profile est d'abord exécuté pour tous les utilisateurs y compris root. On y trouve la
définition initiale du PATH et umask
Celui-ci cherche à exécuter tous les scripts /etc/profile.d/*.sh
Ensuite, il y a exécution de $HOME/.bash_profile (la variable $HOME contient le chemin vers le
répertoire personnel car .bashrc est exécuté dans tout shell). Contrairement à /etc/profile, il s'agit ainsi
d'un fichier de démarrage personnel et paramétrable.
A son tour, il exécute $HOME/.bashrc, s'il existe, dans lequel il est recommandé de placer toutes les
fonctions ou alias personnels
Enfin le précédent script exécute /etc/bashrc, dans lequel on place les alias globaux et la définition
symbolique du prompt $PS1
Puis le prompt utilisateur s'affiche et le shell attend une commande
36
Arrêt propre du système
Important de suivre correctement les procédures lorsqu'on éteint un système
GNU/Linux sous peine d'endommager les systèmes de fichiers.
Ecriture sur le cache disque et pas immédiatement sur le disque.
Dans un système multi-tâches, il peut y avoir beaucoup de processus qui tournent en
arrière-plan.
La commande permettant d'arrêter proprement un système GNU/Linux s'appelle shutdown
utilisation : shutdown -h now (on substitue now avec un signe plus, suivi d'un nombre de
minutes si on veut disposer d'un délai, bien que l'on n'en n'ait généralement pas besoin sur
un système ayant un seul utilisateur).
shutdown -h +temps message, où temps est le temps en minutes restant avant que le
système ne soit arrêté, et message est une courte explication de la raison de cet arrêt.
On peut utiliser les commandes halt, (telinit ou init), ou poweroff.
37
Démarrage – Le processus complet
Démarrage d'init
Récupération du runlevel passé au noyau ou de celui marqué initdefault
Exécution du script /etc/rc.d/rc.sysinit
Exécution du script /etc/rc.d/rcX
Configure les paramètres du noyau
Charge la table des caract. écran et clavier
Configure les périphériques USB
Teste et monte les systèmes de fichiers Démarre les sous-systèmes quota, LVM, ...
Effectue quelques nettoyages
Active la mémoire virtuelle
Exécution des scripts /etc/rc.d/rcX.d/K??* avec le paramètre "stop"
Arrêt des démons
Arrêt des programmes marqués respawn
Lancement des programmes marqués respawn (getty ou X Server)
Exécution des scripts /etc/rc.d/rcX.d/S??* avec le paramètre "start"
Démarrage des démons
Attente :
- Arrêt de l'un des prog. marqué respawn
Redémarrage du programme
Arrêt du système
- Demande de chang. de runlevel
38
Home work
Chacun choisira deux séances du module(il faut couvrir tout le module), et pour chaque séance faire : Un résumé contenant :
Des illustrations (personnelles) Des animations (références)
Réponses commentées de deux activités que vous
choisissez
Deadline : Une semaine Déposez le travail dans la plateforme / espace Home Work et
envoyez une copie à [email protected]
39