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)
Publicité
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
Publicité
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
Publicité
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
Publicité
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