Administration Système

System Administration · lab

Voir tous les documents en systèmes d'exploitation et cloud

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