Cours GNU/Linux: Le système de fichiers

Operating Systems · notes

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

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 -