MP2L
Cours GNU/Linux
Chapitre 3 :
Le syst me de fichiers de
GNU/Linux
Introduction
1.1. Introduction
Sous GNU/Linux, la notion de fichier a une signification plus large que celle connue
usuellement. En effet, la d finition de fichier se pr sente comme un objet typ sur lequel on
pourrait appliquer un certain nombre d'op rations. Il peut correspondre un fichier disque
usuel mais il peut correspondre une ressource physique ou logique telle qu'un terminal,
une imprimante, un lecteur CD-ROM, etc.klkk
2. Les diff rents types de fichiers
GNU/Linux distingue essentiellement deux grandes classes de fichiers: les fichiers dont le contenu
est stock sur disque (les fichiers disque, les r pertoires, les liens symboliques et les tubes) et les
fichiers sp ciaux correspondant des ressources physiques (les terminaux, les imprimantes, etc.).
a) Les fichiers r guliers
Les fichiers r guliers (regular files) sont des fichiers disque. Leur contenu n'est pas n cessairement
structur . Il peut s'agir de programmes (binaires ex cutables ou en code source) ou de fichiers
contenant des donn es utilisateur ou syst me. Ces fichiers sont issus d'applications: dition de
textes, compilation d'un code source, ditions de liens, etc.
b) Les fichiers r pertoires
Ces types de fichiers sont tr s importants dans un syst me de fichier. En effet, ils permettent aux
utilisateurs d'organiser leurs fichiers de donn es. Les r pertoires suivants sont particuli rement
importants dans tout syst me GNU/Linux:
" bin : r pertoire contenant les fichiers ex cutables n cessaires au fonctionnement de
base du syst me.
" boot : r pertoire sp cifique GNU/Linux, dans lequel sont stock s les noyaux de la
machine (kernel).
Yahya SLIMANI/Habib SMEI
- Page 1 -
MP2L
Cours GNU/Linux
" dev : contient tous les fichiers sp ciaux repr sentant les p riph riques du syst me
"
"
etc : r pertoire o sont stock s les fichiers de configuration du syst me et des
programmes (param trage par d faut).
lib : contient les librairies partag es du syst me
" mnt (et/ou media) : r pertoire d di pour le montage d'autres syst mes de fichiers
"
"
"
(disquette, CD, autres disques durs, disque amovible etc.).
root : r pertoire o sont stock es les donn es de l'administrateur (super utilisateur);
c'est le r pertoire de connexion de l'administrateur.
tmp : permet de stocker les donn es temporaires cr es par les programmes des
utilisateurs. Ce r pertoire est normalement vid chaque d marrage de la machine.
var : on stocke dans ce r pertoire tous les fichiers cr s par les programmes, mais qui
doivent tre conserv s sur une certaine p riode : les courriers lectroniques arriv s ou
en partance, l'historique de connexion des utilisateurs, etc.
" usr : Contient les fichiers des paquetages fournis par les distributions en
suppl ment du syst me GNU/Linux de base. Ce syst me de fichiers peut tre
mont en lecture seule, ce qui permettra d'accro tre la s curit au niveau des
fichiers et de partager ces donn es sur le r seau via le protocole NFS (Network File
System) par exemple.
" users ou home : r pertoire tr s important dans une installation. C'est dans ce
r pertoire que seront cr es les r pertoires associ s aux comptes des utilisateurs. A
chaque compte est associ un r pertoire qui sera utilis comme r pertoire de
connexion lors de l'ouverture d'une session par le propri taire du compte.
c) Les fichiers sp ciaux
Comme nous l'avons signal pr c demment, GNU/Linux consid re les p riph riques d'entr es-
sorties comme des fichiers. Du point de vue de l'utilisateur, r f rencer un fichier r gulier, un
r pertoire ou un organe d'entr e-sortie se fait exactement de la m me mani re. Ainsi, un fichier
sp cial est un fichier associ un dispositif physique d'entr e-sortie.
On distingue deux types de fichiers sp ciaux:
" Les fichiers sp ciaux en mode bloc (block buffered devices) comme les disques. Avec de
tels p riph riques, le transfert de donn es lors d'une op ration d'entr e-sortie est r alis
par blocs (512 ou 1024 octets).
Yahya SLIMANI/Habib SMEI
- Page 2 -
MP2L
Cours GNU/Linux
" Les fichiers sp ciaux en mode caract re (character unbuffered devices) comme les
terminaux et les imprimantes. Ce type de p riph riques transfert les donn es octet par
octet (caract re par caract re) et il n'y a pas d'utilisation de caches d'entr e-sortie comme
dans le cas des p riph riques bloc. Par exemple, sous GNU/Linux, le r pertoire /dev
contient les fichiers de noms tty* qui repr sentent des fichiers sp ciaux de type caract re
et hda* sont des fichiers de type bloc.
d) Les liens symboliques
Les fichiers de type lien symbolique sont des fichiers qui pointent sur d'autres fichiers (ou
r pertoires). Ils correspondent, d'une certaine mani re, la notion de raccourci. Les liens
symboliques et les fichiers (ou r pertoires) peuvent appartenir, ou non, au m me syst me de
fichiers.
e) Les tubes nomm s (fifo)
Ces types de fichiers permettent un ensemble de processus, n'ayant pas de liens de parent
particuliers, d' changer des informations.
f) Les sockets
Il s'agit d'objets permettant la communication bidirectionnelle entre les processus (les tubes tant
unidirectionnels). Les sockets permettent aussi la communication entre des applications distantes
(applications r parties).
Publicité
3. Organisation des fichiers
Le principe de d signation est bas sur l'association faite, dans les r pertoires, entre les
cha nes de caract res et les num ros d'index des fichiers. La d signation ext rieure d'un fichier est
faite en lidentifiant avec une cha ne de caract res, relativement un r pertoire donn (cest le
r pertoire qui le contient). Notons que les r pertoires seront, eux-m mes, identifi s de la m me
mani re que les fichiers. Selon ce principe dinclusion (un fichier contenu dans un r pertoire, un
r pertoire contenu dans un autre r pertoire), nous obtenons une structure arborescente, caract ris e
par un niveau particulier (le nSud de larboresence), appel le r pertoire racine ou la racine
absolue du syst me de fichiers.
Le syst me GNU/Linux, contrairement dautres syst mes, n'utilise pas une table de
fichiers mais plusieurs et chacune est relative une arborescence bien d termin e. Le num ro
d'index du r pertoire racine de chacune des arborescences est toujours gal 2.
Yahya SLIMANI/Habib SMEI
- Page 3 -
MP2L
Cours GNU/Linux
L'acc s l'une des arborescences est possible gr ce au m canisme de montage (mounting).
Ce m canisme permet de cr er un point d'acc s cette arborescence partir de la racine absolue du
syst me de fichiers. Ce m me m canisme peut tre tendu pour acc der des r pertoires et des
fichiers situ s sur des syst mes distants et ce de mani re totalement transparente aux utilisateurs en
s'appuyant sur le protocole NFS (Network File System).
Exemple
Soit, sous GNU/Linux, l'arborescence suivante :
/
bin
boot
dev
etc
home
2
8193
28673
exports
group
passw
d
28682
28877
28825
38913
cp
df
38934
38936
2
hb
32769
liste
Desktop
32797
65537
Internet. Desktop
65560
Nous avons dit que chaque nSud de l'arborescence a un num ro d'index dans une table de fichiers.
La racine absolue (num ro d'index 2) renferme les entr es suivantes pr sent es sous forme de
couples: (nom de fichier, num ro d'index associ ): (bin,38913), (boot,2), (dev, 8193), (etc,28673) et
(home,2).
Nous remarquons que les r pertoires boot et home ont comme num ro d'index la valeur 2. Ceci
veut dire que ces deux r pertoires sont deux r pertoires racines de deux disques logiques qui seront
consid r s comme deux points de montage.
Le r pertoire bin contient, entre autres, les entr es (cp,38934) et (df,38936).
Le r pertoire etc contient, entre autres, les entr es (exports,28682), (group,28877) et (passwd,
28825).
Le r pertoire home contient, en particulier l'entr e (hb,32769). Celle-ci comprend son tour les
deux entr es (liste,32797) et (Desktop,65537) qui son tour contient l'entr e
(Internet.Desktop,65560).
Un fichier n'est accessible que si la racine du disque logique auquel il appartient a t
Yahya SLIMANI/Habib SMEI
- Page 4 -
MP2L
Cours GNU/Linux
mont e auparavant et ce relativement au disque syst me (disque dont la racine est la racine absolue
du syst me de fichiers, de num ro d'index 2). Ce disque est toujours mont et par cons quent les
fichiers et r pertoires qu'il contient sont toujours accessibles.
Pour naviguer (se d placer) dans une arborescence de fichiers, on utilise la notion de chemin
dacc s. Un chemin d'acc s un fichier ou un r pertoire (appartenant un disque mont ) est un
chemin qui part dun r pertoire donn de larborescence vers ce fichier. Si le r pertoire de d part est
la racine de larborescence, ce chemin est dit absolu . Sa principale caract ristique est quil
commence par le r pertoire racine symbolis par le symbole / (Slash). Il est repr sent par une suite
de noms, s par s par le symbole / (Slash) et d finit de mani re unique un fichier.
Par exemple, le chemin /nom1/nom2/&/nomn d finit un chemin absolu qui part de la racine pour
aboutir au fichier nomn, en passant par des noms de r pertoires interm diaires.
Avec l'exemple ci-dessus, le fichier dont le num ro d'index est 32797 aura comme chemin (ou
r f rence) absolu : /home/hb/liste
Les syst mes UNIX permettent un utilisateur de sp cifier les chemins des fichiers en
utilisant des r f rences relatives, ce qui donnera lieu des chemins dits relatifs. Ces chemins relatifs
ont comme r pertoire de d part, non plus la racine du syst me de fichiers (cas du chemin absolu),
mais plut t un r pertoire quelconque de larborescence, appel r pertoire courant ou r pertoire
de travail . Ce r pertoire pourra changer au cours du temps. Il est repr sent par une suite de
noms, s par s par le symbole / (Slash) et d finit de mani re unique un fichier. La principale
diff rence avec le chemin absolu est quun chemin relatif ne commence jamais par le r pertoire
Publicité
racine, dont par le symb le / (Slash)
Le syst me de fichiers, sous UNIX, utilise deux symboles particuliers pour d finir deux
r pertoires particuliers, qui peuvent changer au cours du temps. Le premier symbole, le point (.),
d finit le chemin absolu du r pertoire du courant ; cest donc une repr sentation abr g e de ce
chemin. Le deuxi me symbole, les deux points (..) d finit le r pertoire p re du r pertoire courant.
Gr ce ce deuxi me symbole, il est possible de remonter dans larborescence pour se rapprocher de
la racine.
Exemple
Si nous supposons que le r pertoire courant est celui qui a pour r f rence (ou chemin) absolue la
cha ne /home/hb/Desktop, alors les fichiers ayant comme num ros d'index 32797 et 8193 seront
d sign s, respectivement, par les chemins relatifs suivants : ../liste et ../../../dev
Yahya SLIMANI/Habib SMEI
- Page 5 -
MP2L
Cours GNU/Linux
Notons que le syst me GNU/Linux d finit, pour chaque utilisateur disposant dun compte
utilisateur, un r pertoire priv ou r pertoire de base (home directory) repr sent par le symbole ~
qui est son r pertoire courant lors de l'ouverture de sa session de travail. Par la suite, il lui sera
possible de changer de r pertoire courant, puis de revenir vers son r pertoire de travail
a) Notion d'i-nSud
Un i-nSud ou table dindex est une structure contenant un ensemble dattributs sur un fichier. Elle
contient typiquement les informations suivantes:
q Le uid (user identifier) et le gid (group identifier) du fichier
q Le type du fichier
q Les droits d'acc s des utilisateurs ce fichier
q La taille du fichier (en octets)
q Le nombre de liens physiques sur le fichier
q Les dates du dernier acc s et de derni re modification du fichier
q L'adresse, sur disque, du fichier.
Remarques importantes:
q Un i-nSud ne contient aucun nom pour le fichier correspondant.
q Sous GNU/Linux, chaque utilisateur est caract ris par un num ro d'utilisateur et
appartient, obligatoirement, un groupe bien d fini dutilisateurs (il peut ventuellement
appartenir plusieurs groupes). Ainsi, pour tout fichier, le syst me GNU/Linux d finit
trois classes d'utilisateurs:
o Le propri taire du fichier (celui qui la cr e) symbolis par la lettre u.
o Les membres du groupe auquel appartient le propri taire (groupe propri taire)
symbolis s par la lettre g.
o Les autres utilisateurs symbolis s par la lettre o.
Dans tout syst me GNU/Linux, lutilisateur qui dispose de tous les privil ges sur tous les
fichiers est appel le super-utilisateur. Il a pour nom d'utilisateur, un nom standard appel root et
comme num ro d'identification (uid) 0. Tous les autres utilisateurs auront des privil ges tendus sur
leurs propres fichiers (ceux quils auront cr es) et des privil ges restreints sur le reste des fichiers
(fichiers du syst me et des autres utilisateurs).
GNU/Linux d finit par ailleurs, trois types d'op rations sur les fichiers:
Yahya SLIMANI/Habib SMEI
- Page 6 -
MP2L
Cours GNU/Linux
q La lecture (r)
q L' criture (w)
q L'ex cution. (x).
Appliqu un r pertoire, le droit d'ex cution, pour un utilisateur, signifie que ce r pertoire
pourra tre utilis dans un chemin. Le droit de lecture donne la possibilit un utilisateur de lister le
contenu dun r pertoire, par contre le droit d' criture lui donne la possibilit de modifier le contenu
dun r pertoire (cr ation, suppression, modification dattributs des fichiers contenus dans le
r pertoire).
Sur un fichier r gulier (ordinaire), le droit de lecture permet de lire son contenu sans le
modifier alors que le droit d' criture donne la possibilit de modifier son contenu.
Gr ce ces droits, il est donc possible de d finir les droits dacc s ou permissions pour
chaque fichier. Ces droits ou permissions sont d finis par les propri taires des fichiers et ne portent
que sur les fichiers quils ont cr e explicitement laide de commandes ou travers le gestionnaire
de fichiers. Ils ont galement la possibilit de changer ces droits tout moment. Ces droits doivent
sp cifier pour chaque cat gorie dutilisateurs (u,g,o) les op rations permises (combinaison entre les
lettres r,w, et -). Le symbole tiret (-) signifiant labsence de droit (op ration non autoris e)
Le syst me GNU/Linux d finit, dans le i-nSud dun fichier, 9 bits pour chaque classe d'utilisateur
et chaque type d'op ration si l'op ration est permise ou pas. Trois autres bits sp ciaux sont
galement introduits:
q
q
Le set-uid: L'utilisateur qui ex cute un fichier (binaire ex cutable) aura les droits du
propri taire du fichier seulement pendant l'ex cution. Il n'a aucun effet sur les r pertoires.
Le set-gid: Le groupe auquel appartient l'utilisateur qui ex cute un fichier aura les droits
du groupe propri taire du fichier pendant l'ex cution. Sur un r pertoire, tous les fichiers qui y
ont t cr es auront le m me groupe que le r pertoire sans tenir compte du groupe propri taire
(groupe auquel appartient le cr ateur du fichier).
q
Le sticky bit: S'applique sur des r pertoires. Il emp che les utilisateurs d' liminer les
fichiers qui ne sont pas les leurs. Il n'a aucun effet sur les fichiers texte (fichiers sans mise en
forme particuli re).
b) Commandes de base du syst me de gestion de fichiers
Dans ce qui suit, on s'int resse quelques unes des commandes de manipulation des r pertoires et
des fichiers.
Yahya SLIMANI/Habib SMEI
- Page 7 -
MP2L
La commande pwd
Cours GNU/Linux
La commande pwd (print working directory) permet d'afficher la r f rence absolue au r pertoire de
travail ou r pertoire courant du processus shell (l'interpr te de commandes):
$ pwd
Publicité
/home/hb
La commande cd
La commande cd (change directory) permet de changer le r pertoire de travail. Elle permet de
naviguer dans l'arborescence. Si elle est appel e sans param tre, elle place l'utilisateur dans son
r pertoire priv .
$ cd
$ pwd
/home/hb
$ cd /etc
$ pwd
/etc
La commande ls
La commande ls (list) permet d'afficher le contenu d'un ou de plusieurs r pertoires pass s comme
param tres avec ventuellement leurs caract ristiques. Lorsqu'elle est appel e sans param tres, elle
affichera le contenu du r pertoire de travail (r pertoire courant).
$ pwd
/home/hb
$ ls
Desktop
liste
$ ls a i l d
(ou ls ail )
65537 drw xr-x r-x
3
32797 -rwx- - - - - - 1
hb
hb
hb
hb
4096 f v 1 23:36 Desktop/
107
f v 5 23:08
liste
l'option i (inode) permet d'afficher le num ro d'index associ au fichier
l'option d (directory) permet de ne pas afficher le contenu d'un r pertoire
l'option a (all) permet d'afficher tous les fichiers y compris ceux commen ant avec .
l'option l (detail) permet d'afficher les d tails des fichiers.
Yahya SLIMANI/Habib SMEI
- Page 8 -
MP2L
Cours GNU/Linux
On distingue notamment:
le type du fichier (d correspond un r pertoire, correspond un fichier r gulier),
les droits d'acc s au fichier repr sent s sur 9 caract res: rwx rwx rwx . les trois
premiers caract res concernent les droits du propri taire (droit de lecture (r), droit
d' criture (w) et droit d'ex cution (x)), les trois deuxi mes concernent les droits du
groupe propri taire sur le fichier et les trois derniers concernent les droits des autres
utilisateurs sur le fichier,
Le nombre de liens physiques sur le fichier,
Les noms du propri taire et du groupe propri taire,
La taille en octets,
La date de derni re modification
Le nom du fichier.
La commande cat
La commande cat (concatenate) permet d'afficher, sur l' cran, le contenu d'un ou de plusieurs
fichiers dont les noms sont pass s comme param tres. Sans param tres, elle affiche l'entr e partir
du clavier.
$ cat message
Bienvenue dans notre syst me &
$ cat
Bonjour
Bonjour
La commande cp
La commande cp (copy) permet de dupliquer physiquement un fichier (avec l'attribution d'un
nouvel i-nSud ).
$ cp message copiemessage
$ ls il
8211 -rw- r-- r -- 1 hb
8210 -rw- r-- r -- 1 hb
hb
hb
32 f v 9 13:28
copiemessage
32 f v 8 11:38
message
On voit, sur cet exemple, que les deux objets message et copiemessage ont chacun un nombre de
Yahya SLIMANI/Habib SMEI
- Page 9 -
MP2L
Cours GNU/Linux
liens gal 1. Il s'agit bien de deux objets diff rents (deux i-nSuds diff rents) m me s'ils
contiennent la m me chose.
La commande ln
La commande ln (link) permet d'attribuer plusieurs noms un fichier r gulier ou sp cial dans un
Publicité
m me r pertoire ou dans des r pertoires diff rents.
$ ln copiemessage message lienmessage
$ ls il
8211 -rw- r-- r -- 1 hb
8210 -rw- r-- r -- 2 hb
8210 -rw- r-- r -- 2 hb
hb
hb
hb
$ cat message lienmessage
Bienvenue dans notre syst me &
Bienvenue dans notre syst me &
32 f v 9 13:28
copiemessage
32 f v 9 17:28
lienmessage
32 f v 8 11:38
message
On constate facilement que la commande ln ne duplique pas, contrairement la commande cp, le
fichier (les deux liens ont m me num ro d'index). Elle augmente, par contre, le nombre de liens
physiques sur le fichier. Avec l'option s, la commande ln permet de cr er un lien symbolique
(ayant un num ro d'index diff rent).
$ ln -s message liensymbmessage
$ ls il copiemessage lienmessage liensymbmessage message
8211 -rw- r-- r -- 1 hb hb 32 f v 9 13:28 copiemessage
8210 -rw- r-- r -- 2 hb hb 32 f v 9 13:28
lienmessage
8218 lrwxrwxrwx 1 hb hb 7 f v 9 19:31
liensymbmessage -> message
8210 -rw- r-- r -- 2 hb hb 32 f v 9 13:28
message
On remarque, sur cet exemple, que la cr ation d'un lien symbolique n'augmente pas la valeur du
compteur de liens physiques du fichier message.
La commande mv
La commande mv (move) permet soit de renommer un fichier ou de le d placer selon que le dernier
param tre pass ( la commande mv) est nom de fichier ou d signe un r pertoire.
$ mv lienmessage lmessage # changement de nom d'un lien physique
$ mv lmessage ..
d placement du fichier d sign par lmessage vers le r pertoire parent du
Yahya SLIMANI/Habib SMEI
- Page 10 -
MP2L
r pertoire courant.
La commande rm
Cours GNU/Linux
La commande rm (remove) permet de supprimer un lien physique sur un fichier. Un fichier est
physiquement effac du disque si et seulement si le compteur de ses liens physiques est z ro.
$ ls il copiemessage lienmessage liensymbmessage message
8211 -rw- r-- r -- 1 hb hb 32 f v 9 13:28 copiemessage
8210 -rw- r-- r -- 2 hb hb 32 f v 9 13:28
lienmessage
8218 lrwxrwxrwx 1 hb hb 7 f v 9 19:31
liensymbmessage -> message
8210 -rw- r-- r -- 2 hb hb 32 f v 9 13:28
message
$ rm i lienmessage (i demande de confirmation)
rm: remove `lienmessage' ? y
$ ls il
8211 -rw- r-- r -- 1 hb hb 32 f v 9 13:28 copiemessage
8218 lrwxrwxrwx 1 hb hb 7 f v 9 19:31 liensymbmessage -> message
8210 -rw- r-- r -- 1 hb hb 32 f v 9 13:28 message
la commande mkdir
La commande mkdir (make directory) permet de cr er un r pertoire. sa cr ation, un r pertoire
contiendra uniquement les deux liens: . et .. Un tel r pertoire est qualifi de r pertoire vide.
$ mkdir Travail
$ ls ld Travail
drwxr-xr-x
2
hb hb 1024 f v 11 18:34
message
La commande rmdir
La commande rmdir (remove directory) permet la suppression d'un r pertoire vide (ne contenant
que . et ..)
$ rmdir /home/hb/Desktop
$ rmdir: `/home/hb/Desktop': Le r pertoire n'est pas vide
$ rmdir Travail
$ rm r /home/hb/Desktop
$ ls l /home/hb/Desktop
Yahya SLIMANI/Habib SMEI
- Page 11 -
MP2L
Cours GNU/Linux
ls: /home/hb/Desktop : Aucun fichier ou r pertoire de ce type
L'option r (recursive) pass e la commande rm permet de supprimer un r pertoire non vide.
Yahya SLIMANI/Habib SMEI
- Page 12 -