Linux-Mandrake: |
Guide de l'utilisateur |
et Manuel de référence |
MandrakeSoft
Janvier 2000 http://www.linux-mandrake.com
Aujourd'hui, un système Unix est gros, très gros, et c'est particulièrement vrai avec Linux: la profusion de logiciels disponibles en ferait un système ingérable s'il n'y avait des lignes de conduite quant au placement des fichiers dans l'arborescence.
Le standard reconnu en la matière est le FHS
(Filesystem Hierarchy Standard,
« norme pour les hiérarchies de systèmes de fichiers »), et
il en est à sa version 2.0 à l'heure où ce manuel est écrit. Le document
décrivant la norme est disponible sur Internet en différents
formats à http://www.pathname.com/fhs/
. Ce chapitre n'en est qu'un
résumé succinct, mais qui devrait vous suffire pour savoir dans quel
répertoire rechercher (ou mettre) un fichier donné.
Les données sur un système Unix peuvent être classées selon ces deux critères. Vous aurez deviné ce que signifient l'un et l'autre: des données partagées sont des données pouvant être communes à plusieurs machines le long d'un réseau, tandis que des données non partagées ne le peuvent pas. Des données statiques n'ont pas à être modifiées en utilisation normale, tandis que des données non statiques peuvent l'être. Au fur et à mesure que nous explorerons l'arborescence, nous classerons les différents répertoires dans chacune de ces catégories.
Notez que ces classements sont seulement recommandés: vous n'êtes pas
obligé(e) de suivre ces recommandations, mais adopter ces lignes de
conduite vous aidera grandement pour gérer votre système. Notez
également que la distinction statique/non statique n'a pour portée que
l'utilisation du système et pas sa configuration. Si vous installez un
programme, vous aurez bien évidemment à modifier des répertoires
« normalement » statiques, tels que /usr
par exemple.
/
Le répertoire racine contient toute la hiérarchie du système. Il est inclassable puisque ses sous-répertoires peuvent être statiques ou non, partagés ou non. Voici un liste des principaux répertoires et sous-répertoires:
/bin
: binaires essentiels au système. Ce répertoire renferme
les commandes de base qui sont susceptibles d'être utilisées par tout le
monde et nécessaires pour utiliser le système: ls
,
cp
, login, etc. Statique, non partagé.
/boot
: contient les fichiers nécessaires au gestionnaire de
démarrage de Linux (LILO dans le cas des architectures
Intel). Cela peut ou non comprendre le noyau: s'il n'est pas
ici, il doit être situé dans la racine. Statique, non partagé.
/dev
: fichiers périphériques du système (dev
pour
DEVices, « périphériques »). Statique, non
partagé.
/etc
: ce répertoire contient tous les fichiers de
configuration spécifiques à la machine.
/home
: contient tous les répertoires personnels des
utilisateurs du système. Ce répertoire peut ou non être partagé (les
grands réseaux le rendent généralement partagé par NFS), et il est
évidemment non statique.
/lib
: ce répertoire contient les bibliothèques essentielles
au système ainsi que les modules du noyau, dans /lib/modules
.
Toutes les bibliothèques nécessaires aux binaires présents dans les
répertoires du système /bin
et /sbin
, doivent s'y trouver,
ainsi que l'éditeur de liens ld.so
. Statique, non partagé.
/mnt
: répertoire contenant les points de montage pour les
systèmes de fichiers temporaires. Non statique, non partagé.
/opt
: ce répertoire contient des paquetages non nécessaires
au fonctionnement du système. Il est recommandé que les fichiers
statiques (binaires, bibliothèques, pages de manuel, etc.) de tels
paquetages aient leur place dans le fichier /opt/nom_du_paquetage
et que leurs fichiers de configuration spécifiques à la machine soient
placés dans le répertoire /etc/opt
.
/root
: répertoire personnel du Tout-Puissant. Non statique,
non partagé.
/usr
: voir section suivante. Statique, partagé.
/sbin
: contient les binaires systèmes essentiels au
démarrage du système, exploitables uniquement par root
.
L'utilisateur peut les exécuter aussi mais il n'en obtiendrait pas grand
chose en général. Statique, non partagé.
/tmp
: répertoire destiné à contenir les fichiers
temporaires que peuvent créer certains programmes. Non statique, non
partagé.
/var
: emplacement pour les données souvent modifiées par
des programmes (par exemple le serveur de courrier électronique, les
programmes d'audit, le serveur d'impression, etc.). Tout /var
est
non statique, mais ses différents sous-répertoires peuvent être partagés
ou non./usr
: le gros morceauLe répertoire /usr
est le principal répertoire de stockage des
applications. Tous les binaires dans ce répertoire ne doivent pas être
nécessaires au démarrage ou à l'entretien du système, puisque très
souvent la hiérarchie /usr
est sur un système de fichiers séparé.
Étant donnée sa taille souvent importante, /usr
possède sa propre
hiérarchie de sous-répertoires. Nous n'en citerons que quelques-uns:
/usr/X11R6
: toute la hiérarchie de X Window System. Tous
les binaires nécessaires au fonctionnement de X (cela comprend
bien sûr les serveurs X) et toutes les bibliothèques nécessaires
doivent s'y trouver. Le répertoire portant le nom
/usr/X11R6/lib/X11
contient les aspects de la configuration de
X qui ne varient pas de machine à machine. Nous avons déjà vu
que la configuration spécifique pour chaque machine est dans
/etc/X11
.
/usr/bin
: ce répertoire contient la grande majorité des
programmes binaires du système. Tout programme binaire qui
n'est pas nécessaire à l'entretien du système et n'est pas un programme
d'administration du système doit se trouver dans ce répertoire, à
l'exception des programmes que vous installez vous-mêmes, qui doivent
être dans /usr/local
.
/usr/lib
: ce répertoire contient toutes les bibliothèques
nécessaires pour employer les programmes situés dans le répertoire
/usr/bin
et /usr/sbin
. Il existe également un lien
symbolique /usr/lib/X11
qui pointe vers le répertoire renfermant
les bibliothèques de X Window System, c'est-à-dire /usr/X11R6/lib
(si X Window System est installé, bien sûr).
/usr/local
: c'est dans ce répertoire que vous devrez
installer vos applications personnelles. Le programme d'installation y
aura créé toute la hiérarchie nécessaire: lib/
, man/
, etc.
/usr/share/
: ce répertoire contient toutes les données
nécessaires aux applications dans /usr/
, ainsi que toutes les
données indépendantes de la plate-forme. Vous y trouverez notamment les
informations de zones et de localisation (zoneinfo
et
locale
).Il existe également des répertoires /usr/doc
et /usr/man
,
qui contiennent respectivement la documentation des applications et les
pages de manuel du système, mais le standard recommande qu'ils soient
peu à peu déplacés dans /usr/share
.
/var
: données modifiables en cours d'utilisationLe répertoire /var
contient toutes les données de fonctionnement
des programmes qui tournent sur le système. Contrairement aux données de
travail dans /tmp
, ces données doivent être conservées intactes
lors d'un redémarrage. Il existe de nombreux sous-répertoires, et
quelques-uns sont très utiles:
/var/log
: contient les fichiers d'audit du système;
/var/spool
: contient les fichiers de travail des démons du
système. Par exemple, /var/spool/lpd
contient les fichiers de
travail du serveur d'impressions et le répertoire /var/spool/mail
contient les fichiers de travail du serveur de courrier électronique
(donc tout le courrier qui arrive et sort de votre système).
/var/run
: ce répertoire sert à conserver une trace de tous
les processus en cours d'utilisation par le système, de façon à pouvoir
agir sur ces processus lors d'un changement de niveau d'exécution du
système (voir un chapitre précédent)./etc
: les fichiers de configurationLe répertoire /etc
est un des répertoires essentiels de tout
système Unix. Il contient tous les fichiers de configuration de
base du système. Ne l'effacez surtout pas pour gagner de la place! De
même, si vous voulez étaler votre arborescence sur plusieurs partitions,
sachez que /etc
ne doit pas être mis sur une partition séparée:
il est nécessaire à l'initialisation du système.
Quelques fichiers importants sont:
passwd
et shadow
: ces deux fichiers sont des
fichiers texte qui contiennent tous les utilisateurs du système ainsi
que leurs mots de passe (cryptés :)
). shadow
n'est là que
si vous utilisez les mots de passe shadow, mais c'est l'option
par défaut de l'installation;
inittab
: c'est le fichier de configuration du programme
init
, qui joue un rôle fondamental lors du démarrage du
système ainsi que nous le verrons plus tard;
services
: ce fichier contient une énumération des services
réseau existants;
profile
: il s'agit du fichier de configuration du
shell, bien que certains shells en utilisent d'autres. Par
exemple, Bash utilise bashrc
;
crontab
: fichier de configuration de cron
,
programme chargé de l'exécution périodique de commandes.Il existe également certains sous-répertoires pour les programmes dont
la configuration requiert un grand nombre de fichiers. C'est le cas de
X Window System, par exemple, qui dispose de tout le répertoire
/etc/X11
.