Upload
trannhi
View
215
Download
1
Embed Size (px)
Citation preview
LE SYSTÈME DE FICHIERS LINUX
I. Objectif du chapitre :
A l’issu de ce chapitre, l’étudiant sera capable de comprendre et de manipuler les notions
suivantes : Organisation des fichiers, arborescence de répertoires, partitionnement de disque,
formatage, montage, commandes de manipulation des répertoires, commandes de manipulation
des fichiers, droits d’accès.
II. Plan du chapitre :
1. Définitions
2. Gestion des partitions
3. Utilisation du système de fichiers
4. Droits d’accès
[10]
1. DÉFINITIONS
Un système d’exploitation est un ensemble de programmes qui assurent la gestion de
l’ordinateur et de ses périphériques.
Qu’est-ce qu’un fichier ?
Pour le système d'exploitation, un fichier est une suite d'octets. Par contre, les
utilisateurs peuvent donner des significations différentes au contenu d'un fichier (suites
d'octets, suite d'enregistrements, arbre, etc.). Chaque fichier est identifié par un nom auquel
on associe un emplacement sur le disque (une référence) et possède un ensemble de
propriétés : ses attributs.
Qu’est-ce qu’un système de fichier ?
Un système de fichier est une organisation physique des données sur un support de
sauvegarde (disque dur, clé USB, DVD,…).
Qu’est-ce qu’une arborescence ?
Une arborescence est une organisation logique des fichiers sur un ou plusieurs systèmes
de fichiers.
Il s’agit d’une structure de données hiérarchique de type arbre.
Figure 3 : Exemple d’arborescence
Quelle est l’arborescence typique du système Linux ?
[11]
FichiersSous-RépertoireRépertoireRacine
/
etc
apache
samba
home user1
/
etc bin boot home root usr var dev proc
httpd.conf
exo1.c
etc : répertoire contenant les fichiers de configuration ;
bin : répertoire contenant les principales commandes disponibles pour les
utilisateurs ;
boot : répertoire contenant les fichiers de démarrage du système
contenant le noyau ;
home : répertoire contenant les répertoires personnels des utilisateurs ;
root : répertoire personnel du super-utilisateur ;
usr : répertoire contenant les logiciels et les librairies supplémentaires ;
var : répertoire contenant les journaux systèmes ;
dev : point d’entrée vers les périphériques ;
proc : pseudo-système contenant des informations sur les processus en
exécution.
Les symboles associés à l’arborescence :
Sous le système Linux, plusieurs symboles sont utilisés pour désigner les répertoires. On
cite pour cela :
Le « . » : pour désigner le répertoire courant ;
Le « .. » : pour désigner le répertoire parent ;
Le « ~ » : pour désigner le répertoire personnel de l’utilisateur ;
Il faut aussi citer à ce stade quelques commandes de base utiles pour la manipulation de
l’arborescence, à savoir :
La commande « cd » permet de changer de répertoire ;
La commande « ls » permet de lister le contenu d’un répertoire ;
La commande « pwd » permet de connaître le répertoire courant ;
Exemples :
user1@serv-linux:~ $ cd /etc/apache2user1@serv-linux:/etc/apache2 $ cd ..user1@serv-linux:/etc $ ls .user1@serv-linux:/etc $ cd ~user1@serv-linux:~ $ pwd/home/user1
2. GESTION DES PARTITIONS[12]
a. Rappels sur les disques durs :
Un disque dur est constitué de 1 ou plusieurs plateaux superposés.
Chaque plateau est divisé en pistes (tracks).
Chaque piste est divisée en secteurs (sectors).
Le cylindre est formé par les pistes de même rayon sur chaque plateau.
La capacité d’un disque dépend de la taille des secteurs et du nombre de cylindres
et donc du nombre de plateaux.
Le formatage d’un disque est effectué à 2 niveaux :
En usine : le formatage bas niveau des pistes et des secteurs ;
Par l’utilisateur : le formatage haut niveau pour créer le système de
fichiers (notamment lors de l’installation du système d’exploitation).
b. Organisation d’un disque dur :
Typiquement, un disque dur est organisé de la façon suivante :
MBR Partition Système Partition données
Le Master Boot Record (MBR) est situé dans les premiers secteurs du disque. Il est
constitué de 2 parties :
La table de partition ;
Le programme d’amorçage qui charge le noyau du système d’exploitation.
Dans un disque dur, plusieurs types de partitions peuvent coexister. On peut mentionner
les partitions principales, étendues et logiques.
[13]
Les partitions principales :
o Sont au maximum de 4
o Accepte tout type de système de fichiers.
Les partitions étendues :
o Sont destinées à contenir des partitions logiques et non au système de
fichiers,
o Nécessitent au moins une partition principale.
Les partitions logiques :
o Sont contenues dans une partition étendue,
o Accepte tout type de systèmes de fichiers.
Exemple permettant d’installer plusieurs systèmes d’exploitation :
MBR Partition principale Partition principalePartition étendue
Logique Logique Logique
c. Désignation des partitions sous Linux :
Le pointeur spécial /dev permet l’accès aux disques. Pour dénommer les disques, un
format est adopté : /dev/XXYZ où
XX désigne le type de bus : hd pour les périphériques de type IDE
sd pour les périphériques de type SATA
Y désigne la lettre de périphérique : "a" pour le maître de la nappe IDE primaire
"b" pour l'esclave de la nappe IDE primaire
[14]
Pourquoi ?
Partitionnement Intel (MBR) : c'est le mode de partitionnement historique des ordinateurs de type IBM PC-compatible et, en
2013, celui qui est le plus répandu. Dans ce modèle, une zone de 512 octets appelée le Master Boot Record (MBR) est réservée en
début de disque pour contenir l'information relative à un maximum de 4 partitions.
"c" pour le maître de la nappe IDE secondaire
"d" pour l'esclave de la nappe IDE secondaire
Z désigne le numéro de la partition
Exemples :
/dev/hda1 : partition 1 sur le 1er disque IDE
/dev/sdb2 : partition 2 sur le 2ème disque SATA
d. Les formats des systèmes de fichiers :
Les données sont normalement présentées à l'utilisateur et aux programmes selon une
organisation structurée, sous la forme de répertoires et de fichiers. Pour pouvoir stocker ces
données structurées sur un périphérique, il faut utiliser un format qui les représente sous la
forme d'une succession de blocs de données : c'est ce qu'on appelle un système de fichiers.
Sous Windows, les systèmes de fichiers disponibles sont : FAT, FAT32 et NTFS.
Sous Linux, il y plusieurs systèmes de fichiers. Le tableau suivant résume les types des
systèmes de fichiers et leurs caractéristiques.1
Nom de système de
fichiers
Journalisée ou non ?
Gestion des droits d'accès?
Notes
ext2fs(Extended File
System)Non Oui
Extended File System est le système de fichiers natif de Linux. En ses versions 1 et 2, on peut le considérer comme désuet, car il ne dispose pas de la journalisation. Ext2 peut tout de même s'avérer utile sur des disquettes 3½ et sur les autres périphériques dont l'espace de stockage est restreint, car aucun espace ne doit être réservé à un journal.
ext3fs Oui Oui
ext3 est essentiellement ext2 avec la gestion de la journalisation. Il est possible depasser une partition formatée en ext2 vers le système de fichiers ext3 (et vice versa) sans formatage.
1 Source : http://doc.ubuntu-fr.org/systeme_de_fichiers[15]
Nom de système de
fichiers
Journalisée ou non ?
Gestion des droits d'accès?
Notes
ext4fs Oui Oui
ext4 est le successeur du système de fichiers ext3. Il est cependant considéré par ses propres concepteurs comme une solution intermédiaire en attendant le vrai système de nouvelle génération que sera Btrfs
ReiserFS Oui Oui
Développé par Hans Reiser et la société Namesys, ReiserFS est reconnu particulièrement pour bien gérer les fichiers de moins de 4 ko. Un avantage du ReiserFS, par rapport à ext3, est qu'il ne nécessite pas une hiérarchisation aussi poussée: il s'avère intéressant pour le stockage de plusieurs fichiers temporaires provenant d'Internet. Par contre, ReiserFS n'est pas recommandé pour les ordinateurs portables, car le disque dur tourne en permanence, ce qui consomme beaucoup d'énergie.
FAT(File
Allocation Table)
Non Non*
Développé par Microsoft, ce système de fichiers se rencontre moins fréquemment aujourd'hui. Il reste néanmoins utilisé sur les disquettes 3½ formatées sous Windows et devrait être utilisé sous Linux si une disquette doit aussi être lue sous Windows. Il est aussi utilisé par plusieurs constructeurs comme système de fichiers pour cartes mémoires (memory sticks), car, bien documenté, ce système de fichiers reste le plus universellement utilisé et accessible.
FAT32 Non Non* Ce système de fichiers, aussi créé par Microsoft, est une évolution de son prédécesseur. Depuis ses versions 2000 SP4 et XP, Windows ne peut pas formater (ou bloque volontairement le formatage) une partition en FAT32 d'une taille supérieure à 32 Go. Cette limitation ne s'applique pas sous Linux, de même qu'avec des versions antérieures de Windows. Une partition FAT32 d'une taille supérieure à 32 Go déjà formatée pourra être lue
[16]
Nom de système de
fichiers
Journalisée ou non ?
Gestion des droits d'accès?
Notes
par Windows, peu importe sa version.
NTFS(New
Technology File System)
Oui Oui*
Ce système de fichiers a aussi été développé par Microsoft, et il reste très peu documenté. L'écriture depuis Linux sur ce système de fichiers est stable à l'aide du pilote ntfs-3g. Ce pilote est inclus de base dans Ubuntu 7.10, et disponible en paquets dans les dépôts pour les versions antérieures.
e. L’espace d’échange « swap »
L'espace d'échange, plus généralement appelée par son terme anglais swap space ou
simplement swap, est une zone d'un disque dur faisant partie de la mémoire virtuelle de
l’ordinateur. Il est utilisé pour décharger la mémoire vive physique (RAM) de l’ordinateur lorsque
celle-ci arrive à saturation. L'espace d'échange, dans Ubuntu, se trouve généralement sous une
forme de partition de disque dur – on parle alors de partition d'échange. Il peut aussi se
présenter sous forme de fichier – on parle alors de fichier d'échange.
Par défaut, Linux calcule et s'attribue automatiquement un espace d'échange suffisant ou
recommandé lors de son installation. Il n'est pas nécessaire d'effectuer des tâches
supplémentaires pour assigner un espace d'échange minimum à Linux.
Comment calculer l’espace d’échange ?
Si l’ordinateur dispose de 1 GO de RAM ou plus : On Alloue un espace d'échange de 1× à
1,5× la taille de la RAM ;
Votre ordinateur dispose de moins de 1 GO de RAM : On Alloue un espace d'échange de
1,5× à 2× la taille de votre RAM.
f. Points de montage :
Un nouveau périphérique de stockage, lorsqu'il est détecté, est la plupart du temps
monté automatiquement. Mais il peut être intéressant de monter manuellement, ou de spécifier
des options de montage ou de modifier celles des partitions système.
[17]
Un point de montage est une association entre une partition physique et l’arborescence
du système.
Pour monter un périphérique, il faut connaître son nom, qui sera de la forme /dev/sda1,
par exemple.
La commande mount permet de manipuler tous les montages de systèmes de fichier de
manière très précise. Par exemple, pour monter l'unité de stockage "/dev/sdc3" dans le dossier
"/media/stock" :
#mount /dev/sdc3 /media/stock
Le système de fichier utilisé est détecté automatiquement.
Le point de montage doit être un dossier, quelconque mais existant et vide au moment
du montage.
Ubuntu monte automatiquement au démarrage du système tous les périphériques à
partir du fichier /etc/fstab.
Pour supprimer un point de montage, on utilise la commande umount.
#umount /dev/sdc3
g. Mise en place d’un nouveau disque
Pour mettre en place une nouvelle partition dans le système, 3 étapes sont nécessaires :
Création de la partition : on utilise alors la commande fdisk.
Initialisation du système de fichiers : on utilise pour cela la commande mkfs.
Création d’un point de montage : on se sert de la commande mount.
3. UTILISATION DU SYSTÈME DE FICHIERS :
Sous linux, tout est fichier, organisé suivant une unique arborescence (dont la racine est
nommée / et dont l'administrateur est root)
A. LES DIFFÉRENTES CATÉGORIES DE FICHIERS
fichiers normaux (-) : fichiers normaux : texte : courrier, sources des
programmes, scripts, configuration ; exécutables : programmes en code binaire. La
commande suivante donne :
[18]
$ ls – l
-rwxrw-r-- soufiene ens 20 2014-10-15 14 :52 toto
fichiers répertoires (d) : ce sont des fichiers conteneurs qui contiennent des
références à d'autres fichiers. Ils permettent d'organiser les fichiers par
catégories.
La commande suivante donne :
$ ls – l
drwxr-r-- soufiene ens 100 2014-10-15 14 :43 mon_dossier
fichiers spéciaux : situés dans /dev, ce sont les points d'accès préparés par le
système aux périphériques. Le montage va réaliser une correspondance de ces
fichiers spéciaux vers leur répertoire "point de montage". Par exemple, le
fichier /dev/hda permet l'accès et le chargement du 1er disque IDE.
fichiers liens symboliques (l) : ce sont des fichiers qui ne contiennent qu'une
référence (un pointeur) à un autre fichier. Cela permet d'utiliser un même fichier
sous plusieurs noms sans avoir à le dupliquer sur le disque.
$ ls – l
lrwxrw-r-- soufiene ens 20 2014-10-15 14 :52 lientoto -> toto
B. COMMENT SE REPÉRER DANS LE SYSTÈME DE FICHIERS :
La ligne de commande suivante donne des informations sur l’utilisateur en cours, le nom
de la machine, le répertoire courant et le type d’utilisateur (super utilisateur ou utilisateur) :
Utilisateur courant Répertoire courant
Nom de la machine # : Super utilisateur
$ : Utilisateur normal
La commande pwd permet de savoir quel est le répertoire courant.
[19]
C. CONNAÎTRE LE CONTENU D’UN RÉPERTOIRE :
La commande ls permet de lister les fichiers contenus dans un répertoire.
L’option - l permet d’afficher la liste des fichiers avec détails :
L’option - a permet d’afficher la liste des tous fichiers y compris les fichiers cachés :
L’option - i permet d’afficher la liste des fichiers avec leurs numéros d’index (i-node) :
D. SE DÉPLACER DANS LE SYSTÈME DE FICHIERS :[20]
La commande cd permet de changer de répertoire.
Les symboles suivants ont une signification particulière :
« . » : le point désigne le répertoire courant. Exemple :
« .. » : les deux points désignent le répertoire parent. Exemple :
« ~ » : le tilde désigne le répertoire home de l’utilisateur courant. Exemple :
Il existe deux méthodes pour spécifier un chemin dans le système de fichiers :
Chemin relatif : dépend du répertoire courant.
Chemin absolu : débute à la racine du système (commence toujours par « / » ).
E. GÉRER LES RÉPERTOIRES :
mkdir: permet de créer un ou plusieurs répertoires, dont les noms sont précisés en
arguments. Elle renvoie un message d'erreur dans les cas où la création est
impossible.
rmdir : permet d'effacer un ou plusieurs répertoires passés en arguments.
Ces répertoires doivent être vides.
Maintenant, on va créer de nouveau le répertoire rep1 ainsi qu’un sous répertoire. On
va ensuite essayer de supprimer le répertoire rep1 :
rm – r : permet d’effacer un répertoire non vide.
F. GÉRER LES FICHIERS :[21]
cat : permet d’afficher, de créer, de copier et de concaténer des fichiers.
more : permet d’afficher à l’écran un fichier page par page. (déjà utilisé par la cmde
man).
rm : supprime un ou plusieurs fichiers d’un répertoire.
cp : permet de copier un ou plusieurs fichiers, en changeant éventuellement leurs
noms. La syntaxe est la suivante :
mv : permet de renommer un fichiers ou un répertoire, ou de déplacer un ou
plusieurs fichiers dans l'arborescence, en changeant éventuellement leurs noms.
Cette commande est équivalente à une copie puis une suppression.
ln : permet de désigner un fichier par plusieurs noms différents.
[22]
En effet, un lien est un type spécial de fichier qui fait référence à un autre fichier. Le lien
permet de créer des raccourcis vers des fichiers existants. Il permet aussi d’éviter de
stocker plusieurs fois le même fichier dans des répertoires différents.
On distingue deux types de liens :
Le lien symbolique qui est une référence vers un fichier cible. Lorsque le fichier
cible est effacé, le lien est rompu ; et au contraire, lorsque le lien est effacé, le
fichier cible n’est pas effacé.
La commande ln avec l’option –s est utilisée pour créer un lien symbolique.
Le lien physique est associé à un emplacement sur le support de stockage.
La commande ln sans option permet de créer un lien physique.
touch : permet de créer un fichier vide.
4. DROITS D'ACCÈS DES FICHIERS
Parmi les informations contenues dans l’inode de tout élément de l’arborescence,
on trouve les droits d’accès. La protection d’un élément repose sur trois droits d’accès
qui contrôlent les trois opérations de lecture (droit r pour read), d’écriture (droit w pour
write) et d’exécution (droit x pour execute). Ces trois droits (rwx) sont appliqués à trois
[23]
catégories d’utilisateurs qui sont le propriétaire (user : u) de l’élément, son groupe (group
: g) et les autres utilisateurs (others : o).
La notion de groupe correspond simplement à un ensemble d’utilisateurs
auxquels on peut attribuer les mêmes droits d’accès aux fichiers. Ainsi, chaque utilisateur
appartient à un groupe et son identité qui sert pour les contrôles d’accès est définie par
un numéro d’utilisateur (UID : User IDentification) et un numéro de groupe (GID : Group
IDentification).
Tout système a besoin de comptes spécialisés, avec des droits importants, pour
des tâches d’administration. Sous UNIX, il existe un compte root dit compte de
super-utilisateur, caractérisé par son numéro d’utilisateur (l’UID zéro) qui lui confère les
pleins pouvoirs.
La signification des droits diffère selon le type de l’élément : répertoire ou fichier
Code Répertoires Fichiers
r : lecture Explorer Voir le contenu
w : écriture Ajouter ou supprimer des
fichiers
Modifier le contenu
x : exécution Autorise l'accès au répertoire Exécuter
A. VISUALISATION DES DROITS D'ACCÈS
Pour visualiser les droits d'accès, on utilise la commande ls -l. Le 1er caractère
spécifie le type du fichier. Les 9 caractères suivants identifient les droits d'accès
(présence du droit si lettre r, w ou x ; absence de droit si caractère -) et sont structurés de
la façon suivante :
[24]
Type droits Nb Liens groupe taille date dernier accès Nom du fichier
propriétaire
[25]
B. MODIFICATION DES DROITS D'ACCÈS
Seul, le propriétaire d'un fichier ou le super utilisateur (root) peut modifier les
droits d'accès d'un fichier. Pour cela, il utilise la commande chmod avec une
description octale ou symbolique.
Pour la description symbolique chmod a la syntaxe suivante :
chmod [who]op[permission] nom_fichier
Où :
who est une combinaison de lettre u (user), g(group), o(others) ou a (all) pour
ugo. Si aucune classe n'est spécifiée. toutes les classes sont concernées.
op est l’un des symboles (+ ajouter un droit d’accès, - supprimer un droit d’accès
et = pour affecter un droit absolu : tous les autres bits sont remis à zero).
Permission est une combinaison des lettres r, w, x.
Pour la description octale, une lettre est équivalente à 1 et un tiret est
équivalent à 0 en binaire. Chacun des trois bits sont codés à part.
Par exemple, Le fichier titi est maintenant possède les droits rwx rwx r-- ce
qui est équivalent à 111 111 100 = 644.
C. INITIALISATION DES DROITS D'ACCÈS
La protection d’un fichier ainsi que les noms de son propriétaire et de son
groupe sont établis à sa création et ne peuvent être modifiés que par son
propriétaire ou par le super utilisateur (root).
La commande umask permet de définir un masque de protection des fichiers
lors de leur création. Cette commande se trouve dans le fichier .bashrc et elle peut
être exécutée à tout moment. Le masque défini doit être codé en base 8.
[26]
[27]
Institut Supérieur des Etudes Technologiques de Tozeur
Département Technologies de l’informatique
Systèmes d’exploitation 2
TD N° 2 : Gestion de fichiers sous Linux
Exercice 1 :
Soit l’arborescence suivante :
1. Créer l’arborescence ci-dessus.
2. Ecrire une ligne de commandes permettant d’afficher le contenu du répertoire
personnel /home/etudiant avec des détails sur les fichiers.
3. Ecrire une ligne de commandes permettant d’afficher le chemin absolu du répertoire
courant.
4. Ecrire une ligne de commandes permettant de passer du répertoire personnel au
répertoire images.
5. Vous êtes dans le répertoire images, écrire une ligne de commandes permettant
d’afficher les fichiers qui commencent par le mot perso.
6. Ecrire une ligne de commandes permettant d’afficher les images de type gif.
7. Ecrire une ligne de commandes permettant copier le fichier cv.txt dans le répertoire
documents.
[28]
8. Ecrire une ligne de commandes permettant de supprimer le répertoire documents
avec son contenu.
9. Ecrire une ligne de commandes permettant de créer un lien symbolique nommé
lien_images vers le dossier images.
Exercice 2 :
1. Créer un dossier nommé droits et un document monDoc.txt à l’intérieur de ce
dossier.
2. Quels sont les droits d’accès sur le fichier que vous venez de créer pour l’utilisateur ?
le groupe ? les autres ?
3. Convertir en octal les droits d’accès suivants :
4. Modifier les droits sur monDoc.txt tel qu’il soit accessible en lecture pour tout le
monde (les accès et écriture et exécution sont laissés par défaut).
5. Modifier les droits sur le document tel qu’il ait les suivant : r w x r – x r – –
6. Supprimer les droits de lecture au groupe et aux autres utilisateurs.
7. Ajouter les droits d’exécutions aux autres utilisateurs.
8. Ecrire avec plusieurs façons, l’accès total du document par tous les utilisateurs.
[29]