Système de gestion de fichiers sous GNU/Linux

Page 1 sur 16Lecteur de document UniversityLib

Système de gestion de fichiers sous GNU/Linux

Operating Systems · notes

Browse all systèmes d'exploitation et cloud documents

Minist re de lEnseignement Sup rieur, de la Recherche Scientifique et de la Technologie

Universit Virtuelle de Tunis

Syst me dExploitation

GNU/Linux

Syst me de gestion de fichiers

Yahia Slimani

Hbib Elsmii

Attention !

Ce produit p dagogique num ris est la propri t exclusive de l'UVT. Il est

strictement interdit de la reproduire des fins commerciales. Seul le

t l chargement ou impression pour un usage personnel (1 copie par

utilisateur) est permis.

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

Objectifs du chapitre

:

" Comprendre la notion de fichier sous Unix.

" tudier

l'organisation

logique des donn es avec

le

syst me de fichiers de GNU/Linux.

" Utiliser les commandes de manipulation de fichiers.

Introduction

El ments de contenu

Les diff rents types de fichiers

Organisation des fichiers

Yahya SLIMANI/Habib SMEI

Page 1

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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 CDROM, etc.

1

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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:

1. bin : r pertoire contenant les fichiers ex cutables n cessaires au fonctionnement de

base du syst me.

2. boot : r pertoire sp cifique GNU/Linux, dans lequel sont stock s les noyaux de la

machine (kernel).

3. dev : contient tous les fichiers sp ciaux repr sentant les p riph riques du syst me

4. etc : r pertoire o sont stock s les fichiers de configuration du syst me et des

programmes (param trage par d faut).

5.

lib : contient les librairies partag es du syst me

6. 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.).

7. 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.

8. 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.

9. 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.

10. usr : Contient les fichiers des paquetages fournis par les distributions en

2

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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.

11. 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 esortie se fait exactement de la m me mani re. Ainsi, un fichier

sp cial est un fichier associ un dispositif physique d'entr esortie.

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 esortie est

r alis par blocs (512 ou 1024 octets).

" 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 esortie

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)

Advertisement

Ces types de fichiers permettent un ensemble de processus, n'ayant pas de liens de parent

particuliers, d' changer des informations.

3

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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).

4

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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, euxm 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.

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

28682

d

28877 28825

38913

cp

df

38934

38936

2

hb

32769

liste

Desktop

32797

65537

Internet. Desktop

65560

5

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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). Celleci 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

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.

6

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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 racine, dont par le symb le / (Slash)

Le syst me de fichiers, sous UNIX, utilise deux symboles particuliers pour d finir deux

Advertisement

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

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

" 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:

Le uid (user identifier) et le gid (group identifier) du fichier

Le type du fichier

Les droits d'acc s des utilisateurs ce fichier

La taille du fichier (en octets)

"

"

"

"

7

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

"

"

"

Le nombre de liens physiques sur le fichier

Les dates du dernier acc s et de derni re modification du fichier

L'adresse, sur disque, du fichier.

Remarques importantes:

" Un inSud ne contient aucun nom pour le fichier correspondant.

" 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:

"

"

Le propri taire du fichier (celui qui la cr e) symbolis par la lettre u.

Les membres du groupe auquel appartient le propri taire (groupe propri taire)

symbolis s par la lettre g.

"

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 superutilisateur. 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:

"

"

"

La lecture (r)

L' criture (w)

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

8

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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 inSud 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:

"

"

"

Le setuid: 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 setgid: 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).

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).

" 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.

La commande pwd

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

/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

9

Yahia Slimani ; Hbib Elsmii

Advertisement

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

/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 xrx rx

32797 rwx

3

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.

On distingue notamment:

(cid:131)

(cid:131)

10

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

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

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.

(cid:131)

(cid:131)

(cid:131)

(cid:131)

(cid:131)

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

inSud ).

$ cp message copiemessage

$ ls il

8211

rw r r 1

hb

hb

32 f v 9 13:28

copiemessage

8210

rw r r 1

hb

hb

32 f v 8 11:38

message

On voit, sur cet exemple, que les deux objets message et copiemessage ont chacun un nombre de

liens gal 1. Il s'agit bien de deux objets diff rents (deux inSuds 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

m me r pertoire ou dans des r pertoires diff rents.

11

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

$ ln copiemessage message lienmessage

$ ls il

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 17:28

Advertisement

lienmessage

8210

rw r r 2

hb

hb

32 f v 8 11:38

message

$ cat message lienmessage

Bienvenue dans notre syst me &

Bienvenue dans notre syst me &

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

r pertoire courant.

12

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

La commande rm

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

drwxrxrx

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

13

Yahia Slimani ; Hbib Elsmii

Universit Virtuelle de Tunis

Syst me dExploitation GNU/Linux

Syst me de gestion de fichiers

$ rmdir Travail

$ rm r /home/hb/Desktop

$ ls l /home/hb/Desktop

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.

14

Yahia Slimani ; Hbib Elsmii