Vous êtes sur la page 1sur 142

Exercice droits d'exécution

Soit l'execution de la ligne de commande suivante:


$ ls -l tp1.txt
-rwxr-xr-x 3 jdupont jdupont 4096 2011-11-21 18:23 tp1.txt

•Expliquer d'une façon détaillée le résultat obtenu.


•On souhaite appliquer la ligne de commande suivante:
$ chmod u+rwx,g+rw,o+r toto.txt
•Que fait cette commande
•Que faire pour voir le résultat de l'exécution
•A quels droits correspondent les entiers 751; 521; 214 et 150 ?
•Par quels entiers sont codés les droits rw-r- -r- - et rwxr-xr-x ?
Administration & Sécurité des Systèmes
d’Exploitation

Chapitre 3:
La gestion de paquetages
Les installateurs en ligne
Archivage et Compression

2
Gestionnaire de packets/ Packet

Un gestionnaire de paquets est un (ou plusieurs)


outil(s) automatisant le processus d’installation,
désinstallation, mise à jour de logiciels installés
sur un système informatique.

Un paquet est une archive comprenant les


fichiers informatiques, les informations et
procédures nécessaires à l’installation d’un
logiciel sur un système d’exploitation.

3
Utilité du gestionnaire de packet

Permet d’effectuer différentes opérations sur les paquets


disponibles :

 Installation, mise à jour, et désinstallation ;

 Utilisation des paquets provenant de supports variés


(CD d’installation, dépôts sur internet, partage réseau…) ;

Vérification des sommes de contrôle de chaque paquet


récupéré pour en vérifier l’intégrité ;

Vérification des dépendances logicielles afin d’obtenir


une version fonctionnelle d’un paquetage
4
Nomenclature des systèmes de paquets

On trouve deux grands types de système de paquets :

 RPM : Redhat Enterprise Linux, Fedora, Centos, …

 DPKG: Debian, Ubuntu, Mint, Raspbian, …

5
Les paquetages RPM
RedHat Package Manager RPM:
Installation
#rpm –ivh le_package.rpm
Désinstallation
#rpm -e le_package
Composants d’un package
rpm –apl le_package
Packages installés
rpm –qa
……
Yum : installaeur en ligne

6
Commandes rpm usuelles
La gestion des packages nécessitent des droits d'administrateur (root).
• Installer un nouveau paquetage
rpm –ivh nom_paquet.rpm
-h: afficher une barre de progression
-v: installation bavarde (Utile lors d’une erreur)
L'option -vh peut être appliquée sur la majorité des commandes rpm .
-i: installer le paquetage
• Désinstaller un paquetage
rpm –e nom_paquet
-e: "erase" Effacer
.

7
Commandes rpm usuelles
• Mettre à jour un paquet ou l’installer s’il n’existe pas
rpm -Uvh nom_fichier.rpm
-U: « Upgrade » (mise à jour en anglais)

• Mettre à jour un paquet seulement


rpm -Fvh nom_fichier.rpm

8
Commandes rpm usuelles
• Interroger la base de données:
rpm -q

rpm -qa: lister tous les paquets installés. rpm -qa | grep -i rpm
rpm -qi <fichier.rpm>: afficher une page d'information sur le paquet

rpm -ql <paquet>: Lister les fichiers d’un paquet


rpm -qf <paquet>: Lister le paquet au quel appartient un fichier
rpm -q --requires <paquet>: afficher les dépendance du paquet

La base de données RPM est /usr/lib/rpm

9
Les paquetages RPM

Application
Exercice 1 Gestion logiciel

10
L’installateur en ligne Redhat

Yum

11
Yum(Yellow dog Updater Modified)
 Outils (sous forme de commandes) qui permet de gérer
les packages RPM en ligne.

 C'est une sur-couche à RPM gérant les dépendances en


téléchargeant ce qui est nécessaire (similaire à APT de
Debian…)

 Cherche les paquets sur différentes sources (sites


internet) que l'on appelle des dépôts.

 Dépôt: regroupe un ensemble de packages. Chaque


dépôt doit être ajouté à la configuration de Yum pour
être utilisé.
12
Yum(Yellow dog Updater Modified)

• Les dépôts sont placés : /etc/yum.conf ou /etc/yum.repos.d

• Smart est par exemple une alternative à Yum. Contrairement


à Smart, Yum s'utilise uniquement en ligne de commande.
• Plusieurs interfaces graphiques simplifient (encore) l'utilisation
de YUM: yumex…

13
Commande YUM
Commande
#yum list Liste tous les paquets installés sur le systéme
# yum list <paquet> Recherche un paquet
Yum accepte les * (qui remplace 0 à n caractères):
Exemple: # yum list test\*
Pour lister les paquets installés et ceux qui peuvent être
installer commençant par test.
# yum install <paquet> Installe un paquet

#yum update <paquet> Met à jour un paquet RPM

# yum remove <paquet> Supprime un paquet

#yum search <paquet> Trouve le paquet sur le depôt rpm

14
Les paquetages RPM

Application
Exercice 2 Gestion logiciel

15
DPKG:
Les paquetages Deb Installation
#dpkg -i nom_fichier.deb

Debian Package Désinstallation


#dpkg -r <paquet>
Composants d’un package
dpkg -L <paquet>
Packages installés
dpkg –l
……
Apt : installaeur en ligne

16
Installation des paquetages

Debian
• La distribution Debian utilise son propre système de paquetage
dont les fichiers sont reconnaissables par l’extention .deb .
• Les systèmes basés sur Debian utilise généralement des
utilitaires de gestion de paquets:
• dpkg (debian package)
• et des utilitaires de niveau supérieur:
• apt (Advanced Packaging Tool ), dselect …
• Pour simplifier, apt est considéré comme une surcouche sur
dpkg.

17
Commandes dpkg(1/2)

#dpkg -i nom_fichier.deb Installe un paquet au format.deb


(option -i, ou -–install)

#dpkg -r <paquet> Désinstalle un paquet sans supprimer ses fichiers de


(-r ou –-remove) configuration

#dpkg -P <paquet> Désinstalle un paquet et supprime ses fichiers de


(-P ou --purge) configuration

#dpkg --reconfigure <paquet> Reconfigure un paquet déjà installé

18
Commandes dpkg(2/2)
Commande
dpkg –p <paquet> Affiche des informations sur un paquet déjà installé

dpkg –l Liste les paquets installés


Pour filtrer sur un nom de paquet précis: dpkg -l |
grep nom_paquet

dpkg -L <paquet> Affiche la liste des fichiers du paquet

dpkg -S <fichier> Donne le paquetage auquel appartient le fichier

dpkg -s <paquet> Affiche l’état et les informations relatifs à un paquet


installé

La base de données DPKG est /var/lib/dpkg


19
L’installateur en ligne Debian

Apt

20
APT(Advanced Packaging Tool)
• Un système complet et avancé de gestion de paquets
(installation, mise à jour et suppression).
• APT:
– Interroge les serveurs déclarés dans le fichier /etc/apt/sources.list
– Prend en charge directement le téléchargement et l'installation des dépendances,
c'est-à-dire des programmes prérequis (indispensables au bon fonctionnement du
logiciel).

• Plusieurs interfaces graphiques à APT sont disponibles:


Aptitude(mode texte plein écran), Synaptic(mode graphique)...

• Le fichier /etc/apt/sources.list: Permet de décrire de façon


permanente les sources de paquets (cdrom, url ..) à télécharger

21
apt-get

Commande
apt-get update Construit la base en interrogeant chacune des sources, conformément
aux choix des sources présentes dans sources.list
Met à jour la liste des paquets à partir des sources du fichier
Remarque: Il faut remettre à jour cette base régulièrement afin de la
synchroniser avec l'évolution des paquets sur les sites-sources

apt-get upgrate Met à jour tous les paquets installés (ayant des versions récentes)
apt get dist-upgrade Met à jour toute la distribution

apt-get install Installe un paquet


<paquet>

apt-get remove Désinstalle le paquet spécifié


<paquet>

apt-get autoclean Supprime les informations uniquement sur les paquets qui peuvent ne
plus être téléchargé
22
Commande apt-cache

Commande
apt-cache Permet d’obtenir des informations au
sujet d'un paquet installé

apt-cache search mot-clé Liste les paquets contenant un mot-clé

apt-cache show paquet Fournit une rapide description d'un


paquet

apt-cache depends paquet Affiche les dépendance d'un paquet

23
Paquetage

Application

24
Administration & Sécurité des Systèmes
d’Exploitation

Archivage et Compression

25
Compiler et installer des programmes
à partir des sources

Les archives:

On appelle archive un ensemble de fichiers qui ont une


relation et stockés dans un fichier unique (pour faciliter la
copie, par exemple).

La commande permettant de rassembler fichiers et


sous-répertoires dans une archive est tar.

C'est pourquoi il est courant de dire qu'un fichier tar est


une archive.
26
Compiler et installer des programmes
à partir des sources

La commande tar (=Type ARchive) est une ancienne


commande Unix qui permet d'archiver des fichiers

Utiliser pour faire des sauvegardes d'un ensemble


de fichiers en un seul fichier.

Par défaut la taille du fichier .tar créer, est identique


a la taille de l’ensemble des fichier source

27
Compiler et installer des programmes
à partir des sources

La commande d’archivage tar:

tar fonction options fichiers

Fonctions courantes:
-c: Crée une nouvelle archive.
-t: liste les fichiers rassemblés dans un fichier tar.
-x: Extrait le contenu d'un fichier tar.

Options courantes:
-f file: Spécifie le nom du fichier tar.

28
Compiler et installer des programmes
à partir des sources

La commande d’archivage tar:

tar -cvf monbackup.tar ~

tar -cvf usr.tar /usr

tar -tvf monbackup.tar

tar -xvf monbackup.tar

29
Compiler et installer des programmes
à partir des sources

Principe de compression:

Avantages
Contre
Inconvénients
??
30
Compiler et installer des programmes
à partir des sources

La compression des fichiers :


La compression permet d'économiser l'espace de
stockage et les besoins inhérents au transfert de
fichiers.

Il existe de nombreux utilitaires de compression de


fichiers:
compress, uncompress: Le plus ancien algorithme de compression
gzip, gunzip: Le plus utilisé.
bzip2, bunzip2: Le meilleur algorithme de compression.

Une fois qu'une archive a été créée, elle peut être


compressée. 31
Compiler et installer des programmes
à partir des sources

Application

32
Administration & Sécurité des Systèmes
d’Exploitation

Compiler et installer des


programmes à partir des sources

1- Les Bibliothèques

33
Compiler et installer des programmes
à partir des sources

Les bases de la compilation


Il existe des types de langage de programmation :

- Les « langages de script », permettent de lancer


directement des programmes écrits dans ces langages
de programmation.

- Les « langages compilés » comme le C ou le C++,


exigent au contraire que le programme écrit dans ce
langage soit converti, « compilé », en un fichier
binaire en langage machine, pour pouvoir être
exécuté.
34
Compiler et installer des programmes
à partir des sources

Les bases de la compilation


La compilation a lieu en principe une fois et ensuite,
c'est le fichier binaire qui sera exécuté, et non sa
«source» en C, ou C++.
La compilation traduit un texte lisible par l'homme, la
«source», en un fichier lisible par la machine, le fichier
«binaire».
La première chose dont on a besoin pour compiler est
un compilateur.
Sous Linux, le compilateur est gcc pour les
programmes écrits en C et g++ pour les programmes
écrits en C++. 35
Compiler et installer des programmes
à partir des sources

Les bases de la compilation


le programmeur n'écrit pas la totalité de ces
programmes.
Il utilise des bibliothèques qui lui fournissent un
ensemble de fonctions déjà disponibles
communément utilisées.
Le programmeur introduit seulement un lien dans le
fichier source, lien qui renvoie à une bibliothèque ou à
une fonction de cette bibliothèque.
Le binaire compilé aura besoin de cette bibliothèque
pour être exécuté. 36
Gérer les bibliothèques partagées
Les Liens:

Ce lien peut être statique ou dynamique.


Un lien statique signifie que l'exécutable final
contiendra les fonctions de la bibliothèque dans ses
propres fichiers.
Sous Linux, la bibliothèque prend alors l'extension .a
Inconvénient: Le programme final est très volumineux et il consomme beaucoup de ressource
mémoire lors de chargement.Si plusieurs programmes utilisent la même bibliothèque, donc sa
taille va etre multiplier plusieurs fois

Un lien dynamique signifie que la bibliothèque devra


être chargée en mémoire RAM quand le programme
aura besoin d'exécuter les fonctions qu'elle contient.
Sous Linux, la bibliothèque prend alors l'extension .so 37
Gérer les bibliothèques partagées
Les répertoires par défaut
des bibliothèques standards :
/lib: utilisé principalement par les programmes de /bin.

/usr/lib: utilisé principalement par les programmes de


/usr/bin.

Le fichier /etc/ld.so.conf est utilisé par le système pour


indiquer les éventuelles autres localisations des
bibliothèques.
38
Gérer les bibliothèques partagées
Les répertoires par défaut
des bibliothèques standards :

Le fichier /etc/ld.so.conf sert donc à configurer les


chemins de recherche des bibliothèques partagées.

Par défaut, le chargeur rechercher les bibliothèques


partagées dans les répertoires /lib et /usr/lib.

Pour ajouter un chemin de recherche, on peut ajouter


une ligne dans le fichier ld.so.conf
39
Gérer les bibliothèques partagées
Les répertoires par défaut
des bibliothèques standards :

Le fichier ld.so.conf n'est pas utilisé directement par le


chargeur, à la place celui-ci utilise un cache binaire avec
les informations des bibliothèques.
Ce cache est stocké dans le fichier /etc/ld.so.cache.
Pour que les bibliothèques des chemins
de ld.so.conf soient intégrés au cache, il faut utiliser la
commande ldconfig.
Une erreur courante est de modifier ld.so.conf et
d'oublier de lancer ldconfig. 40
Gérer les bibliothèques partagées
Dépendance de bibliothèques :

Pour afficher la liste des dépendances d'un programme (ou d'une


bibliothèque) en termes de bibliothèques partagées, utilisez ldd.

41
Gérer les bibliothèques partagées
Chargeur de liens :

Le chargeur de liens ld.so cherche la bibliothèque dont


un programme a besoin et la charge en mémoire RAM.

L'ordre de recherche de ld.so est :

1- LD_LIBRARY_PATH
2- Le fichier cache /etc/ld.so.cache
3- Les répertoires par défaut /lib et /usr/lib

42
Gérer les bibliothèques partagées
LD_LIBRARY_PATH

Vous pouvez tester l'effet d'une nouvelle bibliothèque


avant de l'utiliser pour tous vos programmes.
Pour ce faire, vous pouvez installer les bibliothèques
partagées dans un dossier et puis définissez la variable
d'environnement LD_LIBRARY_PATH.
Cette variable d'environnement spécifie les répertoires
supplémentaires pour la recherche pour les
bibliothèques.
$ export LD_LIBRARY_PATH=/usr/local/testlib
43
Administration & Sécurité des Systèmes
d’Exploitation

Compiler et installer des


programmes à partir des sources

1- Compilation et installation

44
Compiler et installer des programmes
à partir des sources

Outils GNU:

L'installation d'un programme à partir des sources se


résume à la suite de commandes :

# ./configure
# make
# make install

La dernière commande demande généralement les droits


super-utilisateur (root) pour s'exécuter avec succès.

45
Compiler et installer des programmes
à partir des sources

Outils GNU:

Sous Linux, toutes les sources peuvent être compilées


avec la chaine d'outils standard de GNU.

• gcc est un compilateur C

• g++ est un compilateur C++

46
Compiler et installer des programmes
à partir des sources

./configure

C'est la première commande que vous devez taper.

En pratique elle va faire 2 choses :

-Tout d'abord vérifier que toutes les dépendances


sont présentes.

-Configurer et écrire un fichier Makefile qui


contiendra les ordres de compilation.

47
Compiler et installer des programmes
à partir des sources

./configure

Pour la partie configuration, il y a un certain nombre


de paramètres à passer à la commande.

Pour en avoir la liste :


$ ./configure --help

Le paramètre le plus utilisé est --prefix= qui spécifie le


répertoire dans lequel on veut installer le logiciel.
Par défaut c'est /usr/local, ce qui est très bien
lorsqu'on est dans une distribution standard.
48
Compiler et installer des programmes
à partir des sources

make

C'est la 2e commande.

Celle ci ne vous demandera rien, elle effectue juste la


compilation.

Elle sera plus ou moins longue selon la taille du projet.

Elle peut s'arrêter en cas de problème de compilation.

49
Compiler et installer des programmes
à partir des sources

Make install

Cette command est séparée de make, bien que les règles


font qu'en général make install effectue le make si besoin.

En effet, cette commande doit être tapée en tant que


root si des droits spéciaux sont requis pour
l'installation du logiciel.
c'est le cas si vous installez celui-ci ailleurs que dans votre
home.

50
Compiler et installer des programmes
à partir des sources

Outils GNU:

Beaucoup d'archives contiennent des fichiers


d'information (README, INSTALL) qui expliquent comment
le programme doit être compilé et installé.

Les fichiers Makefile.in et configure.in sont les fichiers


de base servant à produire le Makefile final.

Le fichier configure est généralement un script qui va


explorer le système et produire un Makefile final.

51
Compiler et installer des programmes
à partir des sources

Recap

52
Compiler et installer des programmes
à partir des sources

Exemple simple de make:

53
Compiler et installer des programmes
à partir des sources

Autre Exemple : Etape extraction

54
Compiler et installer des programmes
à partir des sources

Autre Exemple : Etape extraction


A titre d’exemple
Contenu de configure.in

55
Compiler et installer des programmes
à partir des sources

A titre d’exemple
Contenu de Makefile.in

56
Compiler et installer des programmes
à partir des sources

./configure

57
Compiler et installer des programmes
à partir des sources

make
Compiler et installer des programmes
à partir des sources

Lien interessant :

http://raphaello.univ-fcomte.fr/Linux/11-InstallationApplications/InstallationApplications.htm
Administration & Sécurité des Systèmes
d’Exploitation
Chapitre 3

FHS et Gestion de Disques

Unité Pédagogique Systèmes

60
Plan de partitionnement
Objectifs :

• Concevoir le plan de partitionnement des disques


d'un système Linux.

• L'allocation de systèmes de fichiers ou d'espaces de


swap.

• L'adaptation de ce plan aux besoins auxquels le


système devra répondre.

61
Plan de partitionnement
Partitions / et swap :

• Lorsque l'on fait une installation, il est nécessaire de


créer au minimum deux partitions :

– / (système de fichiers racine): partition contenant la


distribution Linux.

– Espace de swap : partition permettant au noyau de faire


tourner plus de processus que la RAM seule ne pourrait en
supporter.

62
Plan de partitionnement
Partitions Swap :

• La partition de swap n'a pas besoin d'un système de


fichiers.

• Le noyau pourra y accéder en mode brut (raw mode).

• Cela permet d'éviter les surcoûts dus aux appels


systèmes nécessaires à l'utilisation d'un système de
fichiers.

63
Problèmes de vitesse des disques.
Usage :

Avant de décider votre plan de partitionnement, vous


devez connaitre les types d'applications qui tourneront
sur votre système.

Serveur de mails
Serveur Web
Applications graphiques s'appuyant sur X-Window
et plus encore

64
Problèmes de vitesse des disques.
Usage :

Si votre système possède plusieurs disques, utilisez le


plus rapide pour conserver la majorité de vos données.

/ Contient la plupart des utilitaires systèmes qui ne sont pas


souvent utilisés. le disque le plus lent.

/var/log contient beaucoup d'informations de log.  Le disque


le plus rapide.

/usr : La prévision d'utiliser de nombreux clients démarrant de


nombreuses applications graphiques pousse souvent à mettre
cette partition sur un disque rapide.
65
Problèmes de vitesse des disques.
Exemple d'applications systèmes:

Pour distribuer les e-mails, Sendmail écrits dans deux


queues de mail.

Généralement /var/spool/mqueue et /var/spool/mail


ainsi qu'à d'autres endroits.

Apache utilise différents fichiers, deux fichiers de logs


pour enregistrer et accéder aux pages actuelles.

Apache passe un temps non négligeable à écrire dans


ces fichiers de logs. 66
Administration & Sécurité des Systèmes
d’Exploitation

FHS :
Filesystem Hierarchy Standard

Par : Samir CHERIF


cherif.samir@gmail.com

67
Introduction
Objectifs :

La disposition des fichiers dans l'arborescence des systèmes


Unix n'est pas d'une compréhension évidente de prime abord.

Il est cependant indispensable de connaître les règles qui


président à la distribution des fichiers et répertoires dans le
système des fichiers afin de :

- Déterminer un plan de sauvegarde


- Gérer la sécurité
- Agir efficacement lors de la résolution des problèmes
- Installer des logiciels non disponibles sous formes de paquetage

68
Introduction
Objectifs :

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 système de fichiers pour les systèmes Unix.

La plupart des distributions Linux s'y conforme même s'il reste


beaucoup de différences dans les détails d'implémentation.

69
Introduction
Sous Unix un fichier est :
o toujours désigné par un nom.
o possède un unique inode (certaines informations concernant le fichier).
o possède les fonctionnalités suivantes :
 ouverture
 fermeture.
 lecture (consultation).
 écriture (modification)

Un fichier peut être :


o ordinaire (on utilise parfois le terme "normal") (-)
o un répertoire (d)
o un lien symbolique (l)
o un pseudo-fichier :
 accès caractère par caractère (c)
 dispositif de communication (p)
 accès par bloc (b)

70
Filesystem Hierarchy Standard
FHS:
La racine de l'arborescence Linux contient ces répertoires :
bin programmes utilisateur essentiels (nécessaires au démarrage du système)
boot fichiers nécessaires au chargement de Linux (bootloader, initrd, noyau)
dev fichiers spéciaux offrant l'accès aux périphériques
etc configuration du système et des services
home répertoires principaux des utilisateurs
lib librairies partagées essentielles (nécessaires au démarrage du système)
mnt contient des points de montage temporaires (cdrom, floppy, etc.)
proc et sys systèmes de fichiers virtuels permettant d'accéder aux structures internes
du noyau (sys est nouveau depuis la version 2.6 de Linux)
root répertoire principal de l'utilisateur root
sbin exécutables système essentiels (nécessaires au démarrage du système)
tmp répertoire pour le stockage de fichiers temporaires
usr arborescence contenant la plupart des fichiers des applications
var données vivantes du système et des applications

71
/etc /lib

• /etc/X11 : fichiers et répertoires de configuration du système et des applications


• /etc/rc* : configuration du système X11
/etc • /etc/pam.d : configuration, par service, des Pluggable Authentication Modules

• /etc/httpd : fichiers de configuration du serveurWeb Apache


• /etc/mail : fichiers de configuration du système de messagerie Sendmail
/etc • /etc/ssh : fichiers de configuration et clés asymétriques d'OpenSSH

• /lib/modules modules du noyau


• /lib/security librairies PAM (Pluggable Authentication Modules)
/lib • /lib/iptables greffons iptables
• /lib/kbd codages clavier et polices de la console

72
/usr

/usr/bin la plupart des programmes utilisateur


/usr/games jeux …
/usr/include en-têtes standards pour le développement

/usr /usr/lib librairies (.so pour Shared Objects) et autres ressources


partagées
/usr/libexec binaires exécutables appelés par d'autres programmes

/usr/share ressources partagées indépendantes de la plate-forme


(pages de manuel, documentation, fichiers de données, etc.)

/usr/src sources du système (noyau, paquetages, etc.)

73
/var

/var/tmp fichiers temporaires préservés entre deux


démarrages
/var/www racine du serveurWeb
/var/log journaux du système et des applications
/var /var/spool données en attente d'un traitement
/var/spool/mail boîtes aux lettres des utilisateurs
/var/spool/cron tâches planifiées par les utilisateurs
/var/spool/lpd files pour le système d'impression

74
Les catégories

La FHS spécifie deux catégories indépendante de fichiers

A données partagées / A données variables /


non partagées non variables (statique)

Les données Les données non


Les données Les données
partagées partagées sont
variables statiques ne sont
peuvent être spécifique à une
peuvent être pas modifiable
partagées entre hôte donné (sauf via les fichier
(comme les fichiers modifiés de configuration)
les hôtes de configuration).

75
Les inodes

Les inodes (contraction de « index » et « node », en français : nœud


d'index) sont des structures de données contenant des informations
concernant les fichiers stockés dans certains systèmes de
fichiers (notamment de type Linux/Unix).

À chaque fichier correspond un numéro d'inode (i-number) dans le système


de fichiers dans lequel il réside, unique au périphérique sur lequel il est
situé.

Les inodes peuvent, selon le système de fichiers, contenir aussi des


informations concernant le fichier, tel que son créateur (ou propriétaire),
son type d'accès (par exemple sous Unix : lecture, écriture et exécution),
etc.

76
Les inodes

Les inodes contiennent notamment les métadonnées des


systèmes de fichiers, et en particulier celles concernant
les droits d'accès.

Les inodes sont créés lors de la création du système de


fichiers.

La quantité d'inodes (généralement déterminée lors du formatage


et dépendant de la taille de la partition) indique le nombre
maximum de fichiers que le système de fichiers peut
contenir.

77
Les inodes

Le numéro d'inode est un entier unique pour le périphérique


dans lequel il est stocké.

Le numéro d'inode d'un fichier toto peut être affiché avec la


commande

ls -i toto

78
Les Inodes

79
Les Inodes

Les Commandes
ls –i
df -i

80
Les Inodes

La Commande stat

81
Les Systèmes de fichier

Les systèmes de fichiers existent pour vous permettre de


stocker, lire et manipuler des données sur un lecteur block.

En fait, les systèmes de fichiers sont la seule manière efficace


d'accéder au contenu des lecteurs block.

Un système de fichiers maintient la structure interne des


données (meta-data) qui fait que vos données restent
organisées et accessibles.

82
Exemple de lecteur block : Disque dur, DVD, Disquette …
La Journalisation

• Un journal est la partie d'un système de fichiers journalisé


qui trace les opérations d'écriture tant qu'elles ne sont pas
terminées et cela en vue de garantir l'intégrité des données
en cas d'arrêt brutal.

• L'intérêt est de pouvoir plus facilement et plus rapidement


récupérer les données en cas d'arrêt brutal du système
d'exploitation (coupure d'alimentation, plantage du
système, etc.), alors que les partitions n'ont pas été
correctement synchronisées et démontées.

83
Les Types

ext2: Ancien et très stable.


Fonctionne pour des fichiers dont la taille est supérieurs à ~2-3K.

ext3: Extension pour la journalisation de ext2.


Journaliser un système de fichiers revient à ajouter une nouvelle structure
de données appelée un journal.

reiserfs: Système de fichiers journalisé.


Plus performant pour les fichiers de petit taille (internet)

XFS: Système de fichiers journalisé; pour optimiser la manipulation des très


gros fichiers, de plus de 9 ExaBytes (9'000'000'000 GigaBytes).

JFS: Un autre système de fichiers journalisé créé par IBM.

FAT32 et NTFS: Le système de fichiers journalisé de MS-Windows.

84
Les Types

85
Créer des partitions /systèmes de fichiers

Quelques utilitaires:
fdisk
parted
mkfs , mke2fs
dumpe2fs
tune2fs
fsck
mount , partprobe
/etc/fstab, /etc/mtab
86
Créer des partitions : fdisk

Pourquoi créer différentes partitions ?


Comment créer une partition ?

Avec la commande fdisk [disque]

fdisk est un programme utilisé pour la création et la manipulation de tables


de partitions.
# fdisk – l afficher la table de partitions.
Exemple : fdisk /dev/sda

Options:
n : ----> pour ajouter une partition
p : ----> pour afficher la table de partitions
m : ---->pour afficher le help
w: ---- > enregistrer les modifications 87
Créer des partitions : fdisk

88
Créer des partitions: fdisk

89
Créer des partitions

Pour enregistrer les


modification il faut appuyer sur
« w » avant de quitter fdisk

90
Créer des partitions : parted

91
• partprobe:
– Informe le noyau des nouvelles modifications
faites sur la table de partitions
– A invoqué après chaque modification faites par la
commande fdisk
Création d’un Systèmes de fichiers

Pour créer un système de fichiers sur une partition, il faut utiliser mkfs.

mkfs est utilisé pour formater un système de fichiers Linux sur un


périphérique, généralement une partition de disque dur.

mkfs [options] -t [fstype] lecteur [blocksize]

Principales options:

-t: fstype: Type de système de fichiers.

-c: Contrôle des bad blocks du lecteur avant la construction d'un


système de fichiers.

mkfs.ext3 /dev/hda1
mkfs -t ext3 /dev/hda1  les 2 commandes sont équivalentes
93
Création d’un Systèmes de fichiers

94
Création d’un Système de fichiers étendu

Pour créer un système de fichiers étendu (ext2, ext3) sur une partition,
il faut utiliser mke2fs.

mke2fs [options] device [blocksize]

Principales options:

-b: Specify the block sizefstype: Type de système de fichiers.


-c: Contrôle si le lecteurs contient des blocks défectueux avant de
construire le système de fichiers.
-j: Crée le système de fichiers avec un journal ext3.
-L: Donne un label au système de fichiers.

95
Contrôle du systèmes de fichiers

L’utilitaire dumpe2fs permet d’afficher des informations du


sur le système de fichiers d’une partition:
Type de système de fichiers,
Nombre d’inodes,
Date de création du sytème de fichiers,
Date du dernier montage,
Date de dernière écriture,
…….etc

Exemple : dumpe2fs –b /dev/sda1

 Affiche la liste des bloc défectueux

96
Modification d’un Système de fichier

Pour modifier un système de fichiers étendu, il faut utiliser


tune2fs.
tune2fs [options] device
Principales options:
-l: Liste le contenu du superblock d'un système de fichiers.
-L: Donne un label au volume d'un système de fichiers.
-j : Pour passer de ext2 a ext3

97
tune2fs

98
fsck
Si le système de fichier est endommagé ou corrompu, l’utilitaire fsck est utilisé pour vérifier
et corriger le système

L’option –i permet de corriger les fichier corrompu

Remarque: pour des raisons de sécurité des données présentes sur le disque, il est
fortement déconseillé de lancer un fsck sur une partition montée

99
Monter et démonter un système de fichiers
maniére temporaire

La commande mount permet de monter un système de fichiers (partition,


lecteur de disquette, DVD ...).

La commande mount -a permet de monter tous les systèmes de fichiers


déclarés dans le fichier /etc/fstab.

La syntaxe : mount -t système_de _fichier -o option point_de_montage

Exemple montage : mount -t vfat /dev/hda1 -o ro /Dos


mount /dev/hda1 /Dos
mount /dev/cdrom /cdrom

Exemple démontage : umount /Dos

On peut préciser l'option -o suivie ro pour monter un périphérique en


lecture seule, tel qu'un CD-ROM ou une disquette protégée en écriture par
exemple.
100
Monter et démonter un système de fichiers
maniére temporaire

101
Montage permanant /etc/fstab

Le fichier /etc/fstab contient tous les fichiers systèmes et les informations


relatives qui seront utilisées pour monter un lecteur au démarrage du système

Exemple de fichier fstab :

Les options
Le point de
de montage Ordre de
L'emplacement montage
Le type de séparées par 1= vérification
physique du
système de des virgules : Sauvegardé
système de le répertoire la partition 0 = ne pas
fichiers (ro, rw,
fichiers doit déjà verifier
noauto, user,
exister
exec …)
102
Les option de montage de /etc/fstab

ro pour monter le système de fichiers en lecture seule,

rw pour monter le système de fichiers en lecture-écriture,

noauto pour que le système de fichiers ne soit pas monté au démarrage (option
contraire : auto),

user pour qu'un simple utilisateur puisse monter et démonter le système de fichiers
et pas seulement le root (option contraire : nouser),

uid, gid et umask pour définir des permissions pour l'ensemble du système de
fichiers (pour les systèmes déficients comme fat ou ntfs),

defaults pour les options par défaut (notamment rw, auto et nouser),
et enfin sw pour les systèmes de swap.

103
Administration & Sécurité des
Systèmes d’Exploitation

3- Journalisation avec
SysLog

Par: L’équipe
administration
système 104
Principes

syslog, pour « System Logging »

C’est un système de journalisation utilisé par


un grand nombre de logiciels système.

Chacun de ces logiciel, tournant en général en


tâche de fond, utilise syslog pour transmettre
des informations sur des évènements survenus
en cours de fonctionnement.

syslog est lui-même un daemon syslogd qui


tourne avec un autre daemon klogd, qui logue
plus précisément les messages d'erreur du
noyau. Vous avez donc en fait deux daemon qui
105 tournent sur votre machine.
Fichier de Configuration

Par défaut les fichiers de log se trouvent dans


/var/log.

Le fichier de configuration de syslog est dans


/etc/syslog.conf.

Par mesure de sécurité, il est d'usage de mettre


le répertoire /var/log dans une partition
propre afin d'éviter qu'une saturation de ce
répertoire n'entraîne un arrêt du système tout
entier.

106
Fichier Log

Les fichiers de log du systéme sont les


suivants :

/var/log/messages est le fichier système qui


récupère tout.

/var/log/secure Contient les informations de


connexions. Chaque login y est enregistré.

/var/log/maillog Contient un enregistrement


du trafic de courrier entrant et sortant.

/var/log/spooler Contient les messages


d'erreur des daemons uucp (Unix to Unix
107
Copy Protocol) et innd (news).
/etc/syslog.conf

Fichier de conf de syslogd organisé en 2


colonnes :

la première (sélecteur) définit l'origine (service


+ priorité)

la seconde (action) la destination (fichier,


console, machine …)

<service.priorité> </path/fichier> |
</dev/ttyX> | @<host>

Par exemple pour récupérer les logs critiques


(crit) des programmes de gestion de mail (mail)
108 et les rediriger dans la console /dev/tty8 :
Services / Niveaux
Pour répartir ces Chaque services peut
informations, syslog disp être divisé en 8
ose de 12 services niveaux, selon
possibles. l'importance du
message :
KERN
USER EMERG
MAIL ALERT
DAEMON CRIT
AUTH ERR
SYSLOG WARNING
LPR NOTICE
NEWS INFO
UUCP DEBUG
CRON
AUTHPRIV du plus grave au
109 FTP moins grave.
Les Services
auth ou Messages de sécurité et
security d'authentification.
La même chose que précédemment,
authpriv
mais logs plus privés
cron Messages de crontab et de at
Messages systémes générés par le
daemon
daemon
ftp Messages du serveur ftp
kern Messages du noyau
lpr Messages du serveur d'impression
mail Messages du serveur de messagerie
news Messages du serveur de news
syslog Messages de syslog lui-même
Messages générés par le programme en
user
cours d'un utilisateur
110 uucp Messages UUCP
Les Niveaux de Priorités
7 debug Messages de debogage
6 info Messages d'information
Messages un peu plus
5 notice importants que les
messages info
warning ou Messages
4
warn d'avertissement
3 err Messages d'erreur
2 crit Situation critique
Situation critique
1 alert nécessitant une
intervention immédiate
emerg ou
0 Système inutilisable
111 panic
Formalisme
une étoile * pour désigner toutes les valeurs possibles
d'un champ.

une virgule , pour séparer 2 noms de services

un point virgule ; pour assembler deux sélecteurs

un tiret - en suffixe pour écrire dans la cible en différé


(consomme moins de ressources mais à n'utiliser que
pour les logs non critiques).

la priorité none signifie qu'aucun message ne doit être


loggé pour le service correspondant.

Exemple1 : pour écrire les logs d'erreur des services de


mail et de news en différé dans /var/log/test.log :

mail,news.err -/var/log/test.log
112
Exemple
Log tous les messages du noyau vers le fichier
/var/log/kernel

kern.* /var/log/kernel

Log tous les messages dans le fichier /var/log/messages


à partir du niveau info, sauf les messages du mail, que
l'on place dans un autre fichier et les messages authpriv

*.info;mail.none;authpriv.none /var/log/messages

Placer ici les messages authpriv qui donne les


connexions infructueuses, les connexions avec la
commande su.

authpriv.* /var/log/secure
113
Exemple

Log tous les messages de mail et les place dans le fichier


maillog.

mail.* /var/log/maillog

Log tous les messages d'urgence rendant le système


instable dans le fichiers /var/log/secure.

*.emerg /var/log/secure

Dirige tous les messages vers la console 12. Avantage vous


n'êtes pas obligé d'ouvrir une session pour avoir les
messages

*.* /dev/tty12
114
Administration & Sécurité des
Systèmes d’Exploitation

Planification des
taches avec Cron

Par: L’équipe
administration
système 115
Introduction
Cron est un daemon utilisé pour programmer
des tâches devant être exécutées à un moment
précis.

Chaque utilisateur a un fichier crontab, lui


permettant d'indiquer les actions et à quelles
périodes, elles devront être exécutées.

Il y a également un fichier crontab pour le


système, permettant les tâches techniques, pour
la mise à jour des différents programmes ou
autres besoins périodiques.
116
System CRON jobs

117
System CRON jobs

Le fichier de configuration du cron est


/etc/crontab

118
System CRON jobs

Il est conseillé (et plus facile) de mettre les


scripts à lancer dans les dossiers préconfigurer
:

/etc/cron.hourly les scripts qui existent dans ce dossier ce


lancent chaque heure.

/etc/cron.daily

/etc/cron.weekly

/etc/cron.mounthly

119
System CRON jobs

Pour utiliser cron, ajoutez simplement les entrées


à votre fichier /etc/crontab, Chaque ligne
représente une commande à exécuter.

La table de configuration doit être remplie de la


façon
mm hhsuivante
jj MM JJ: user commande > log

mm : les minutes 0-59 JJ : le jour de la semaine 0-7


0 et 7 représentes le
dimenche
hh : les heures 00-23 user : le nom de l’utilisateur

jj : le numéro de jour du mois Commande : commande à


1-31 lancer
MM : le numéro du mois 1- Log : le nom du fichier log
120
12
Formalisme
Utilisez le format suivant pour les valeurs périodiques :

• Une valeur pour indiquer quand il faut exécuter la


commande.
Ex : la valeur 15 dans le champ minute signifie la
quinzième minute.

• Une liste de valeurs séparées par des virgules.


Ex : 1,4,7,10 dans le champ mois pour janvier, avril , juillet
, octobre.

• Un intervalle de valeurs.
Ex : 1-5 dans le champ jour de la semaine indique du lundi
(1) au vendredi (5) . Le 0 est le dimanche et le 6 le samedi.

• Le caractère * pour toutes les valeurs possibles.


Ex : * dans le champ jour du mois indique tous les jours
121 du ou des mois.
System CRON jobs

Exemples
1 2 3 4 * root /usr/bin/apt-get update
Cela va exécuter la commande /usr/bin/apt-
get update tous les Avril (4), qui tombent un 3
Avril (3), à 2h01.

une étoile (toutes les valeurs) :


* 2 * 4 5 root /usr/bin/apt-get update

tous les vendredis (5), d’Avril (4), à 2h (2), et


toutes les minutes (*).
122
System CRON jobs

Une plage:
1 2 * 4 5-7 root /usr/bin/apt-get update

Tous les vendredis, samedis et dimanches (5-


7), d’Avril (4), à 2h01

un multiple :
*/10 2 3 4 * root /usr/bin/apt-get update

Tous les Avril (4), qui tombent un 3 Avril (3), à


2h et toutes les 10 minutes (*/10).

123
System CRON jobs
Une plage:
1 2 3 4 3,5,7 root /usr/bin/apt-get update

tous les mercredis, vendredis et dimanches (4,5,7),


d’Avril (4), qui tombent un 3 Avril (3), à 2h01.

1 2 3 4 * root run-parts /home/salah/mes_taches

L’options run-parts est utilisé pour lancer un ensemble


de commandes dans un répertoire bien déterminé.

124
System CRON jobs

Il existe des raccourcis intéressants :

@reboot Run once, at startup.


@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".

125
Exercice

Rédiger la ligne crontab pour :

1) Exécution de df tous les jours, toute l’année,


toute les 2 minutes :

*/2 * * * * root df >>


/tmp/libre

2) Exécution du script fin_travail.sh qui se


trouve dans le repertoire /root/script tous les
jours ouvrables (de lun a vend) à 17h00 heures
:0 17 * * 1-5 root run-parts
/root/script
126
Remarque
$ ls cron.daily

00-logwatch 0anacron makewhatis.cron


slocate.cron
00webalizer logrotate rpm tmpwatch

Parmi les programmes exécutés, remarquez


logrotate qui permet d’effectuer des
sauvegardes et de renommer des
fichiers logs et des journaux du système.

Le programme tmpwatch est chargé de


nettoyer le système des fichiers inutilisés (dans
/tmp par exemple).
127
User CRON jobs

La sécurité dans CRON :

/etc/cron.allow

/etc/cron.deny

Si le fichier /etc/cron.allow existe, alors vous devez être


présent dans ce fichier pour être autorisé à utiliser
cette commande.

Si le fichier /etc/cron.allow n'existe pas mais que


/etc/cron.deny existe, alors vous ne devez pas être
mentionné dans le fichier /etc/cron.deny afin de
pouvoir utiliser cette commande.
128
User CRON jobs

129
User CRON jobs

Tous les utilisateurs peuvent planifier


l’exécution de tâches. c'est pourquoi chacun
dispose de sa propre crontab.

Un utilistaeur peut éditer les commandes à


planifier :
crontab –e

Afficher la liste des tâches programmées


crontab -l
00 * * * * /usr/bin/xclock -display :0.0

Supprimer la table cron


130 crontab -r
User CRON jobs

Pour l’administrateur root :

Afficher la liste des tâches programmées d’un


utilisateur :
#crontab -u salah -l
00 * * * * /usr/bin/xclock -display :0.0

Supprimer la table cron d’un utilisateur :


# crontab -u salah -r

131
KCRON
Quelques outils
permettent
d’éditer une
crontab de
manière visuelle
sans passer par
un éditeur de
texte.

L’outil kcron sous


KDE est très
populaire et très
bien adapté pour
cela.

132
ANACRON jobs
anachronistic command
scheduler

133
ANACRON jobs

l’inconvénient du système CRON est si le


système est stoppé au moment de l'exécution
de la tâche, celle-ci est ignorée.

Anacron est donc né pour permettre


l'exécution de tâches sans nécessité de laisser
la machine allumée 24h/24.

Notez bien qu'anacron n'est pas du tout


destiné à remplacer cron, il est complémentaire
134
et il coexiste avec lui…
ANACRON jobs

Anacron utilise des indications de temps


relatives (« une fois par jour / par semaine /
par mois ») au lieu de références temporelles
absolues (« le 14 janvier 2008 à 15h 30 »).

De la sorte, même si vous « manquez » un


moment ou une date particulière où
l'exécution d'un « job » était prévue, celui-ci
sera tout de même exécuté peu de temps
après le prochain démarrage du système.

135
ANACRON jobs
Anacron est un programme « standard » (c’est
pas un démon / service), il est lancé :

- Au démarrage du système via un


script d’init (/etc/init.d/anacron)

- Via le crontab système, on verra ce


dernier point lors de la description des
interaction cron/anacron

Le fichier de configuration d ’anacron est


/etc/anacrontab

136
ANACRON jobs

Le fichier de configuration d ’anacron est


/etc/anacrontab

1 5 Montre /usr/bin/xclock -display :0.0

Dans l’exemple ci-dessus la commande xclock


sera exécutée tous les jours 5 minutes après
le démarrage d’anacron.
137
ANACRON jobs
Si la machine reboot plusieurs fois dans la
journée, anacron est exécuté plusieurs fois.

Afin de ne pas lancer une tache quotidienne à


chaque reboot anacron stock la date (format
AAAAMMJJ) de sa dernière exécution dans un
fichier de « log » portant le nom de la tache et
présent dans /var/spool/anacron.

Lorsqu’il parcours les taches qui lui sont


affecté, anacron vient donc lire le fichier de
« log » correspondant, compare la date du
jour, la date de dernière exécution et
l’intervalle de la tache et la lance le cas
échéant.
138
At
jobs

139
at et le demon atd

Atd est un démon qui s’occupe des


commandes à exécuter une seule fois à un
instant précis et futur

De nombreuses tâches sont régulièrement


planifiées :

– la rotation des logs;


– mise à jour de la base de données du
programme locate;
– les sauvegardes;
– des scripts d'entretien (comme le nettoyage
des fichiers temporaires).
140
Syntaxe

dans 2 minutes :

# at now + 2 minutes
Entrée
at> ls /bin > /fich.log Entrée
"Ctrl+D"

à 13h37 :

# at 13:37
Entrée
at> ls /bin > /fich.log Entrée
141 "Ctrl+D"
at et le demon atd

La commande :

atq pour voir la liste de taches

atrm num_tache : pour supprimer une tache

142