Linux / À quoi servent les principaux répertoires du système ?

Dans l’arborescence Linux, /etc contient surtout la configuration du système, /usr les programmes et ressources installés, /var les données variables et /home les répertoires personnels habituels. Tout part de la racine /, mais certains chemins désignent des systèmes de fichiers montés ou des interfaces du noyau, pas des dossiers ordinaires du disque.

Comprendre la racine et les points de montage

Un chemin absolu commence par /. Par exemple, /etc/ssh/sshd_config indique un fichier dans ssh, lui-même sous etc. Voici un extrait schématique ; il ne décrit pas tous les répertoires et liens de chaque distribution :

/
├── boot
├── dev
├── etc
├── home
├── proc
├── root
├── run
├── sys
├── tmp
├── usr
└── var

Un disque ou un partage réseau peut être rattaché à un point de montage de cette même arborescence. Ainsi, /home peut appartenir à un autre système de fichiers sans devenir une racine séparée dans les chemins utilisés. Pour voir le système de fichiers contenant un chemin existant :

findmnt -T /
findmnt -T /home

Examinez les colonnes de cible, source et type : elles peuvent montrer le même système de fichiers ou des montages distincts. Dans un conteneur, la racine visible peut aussi différer de celle de l’hôte. Le guide sur les chemins et les répertoires principaux (en anglais) développe les notions de chemin absolu et relatif.

Repérer rapidement les principaux répertoires

Chemin Rôle habituel Repère
/ Départ de l’arborescence visible. Racine du système de fichiers.
/bin Commandes usuelles ; souvent un lien vers /usr/bin. Binary, programmes exécutables.
/boot Noyaux et éléments de démarrage selon la distribution. Démarrage.
/dev Nœuds de périphériques, terminaux et interfaces spéciales. Device, périphérique.
/etc Configuration propre au système et aux services. Réglages administratifs.
/home Répertoires personnels des utilisateurs ordinaires. Données personnelles.
/lib, /lib64 Bibliothèques ou liens de compatibilité ; disposition variable. Library, bibliothèque.
/media Montages de supports amovibles selon l’environnement. Clé USB, disque amovible.
/mnt Point ou ensemble de points de montage temporaires. Mount, monter.
/opt Arborescences de logiciels complémentaires. Installation d’un fournisseur.
/proc Interface vers les processus et des informations du noyau. Process, processus.
/root Répertoire personnel habituel de l’administrateur root. À distinguer de /.
/run État d’exécution temporaire depuis le démarrage. Sockets, fichiers PID.
/sbin Commandes d’administration ou lien de compatibilité. System binaries.
/srv Données que le système fournit à ses clients. Service.
/sys Interface structurée vers périphériques, pilotes et objets du noyau. System.
/tmp Fichiers temporaires soumis au nettoyage. Temporary.
/usr Programmes, bibliothèques et ressources partagées installés. Ne désigne pas les dossiers personnels.
/var Données persistantes qui évoluent pendant l’utilisation. Variable.

Ces repères décrivent des conventions, avec des adaptations selon les distributions. Le Filesystem Hierarchy Standard 3.0, copie publiée par Debian décrit la hiérarchie traditionnelle. Les systèmes modernes peuvent notamment remplacer des chemins historiques par des liens symboliques : observez toujours l’installation réelle.

Séparer configuration et fichiers personnels

/etc : les réglages du système

/etc héberge la configuration locale : comptes dans /etc/passwd, montages dans /etc/fstab, correspondances locales de noms dans /etc/hosts ou réglages du serveur SSH dans /etc/ssh/sshd_config. Ce sont des exemples de chemins, pas des fichiers à modifier tous ensemble.

Les réglages personnels d’une application se trouvent plutôt dans le répertoire de l’utilisateur, par exemple sous ~/.config. Un logiciel peut aussi combiner des valeurs fournies sous /usr, des réglages locaux sous /etc et des valeurs temporaires sous /run ; l’ordre précis dépend du logiciel. Vérifiez sa documentation avant de modifier une configuration.

/home et /root : deux sortes de répertoires personnels

Un utilisateur ordinaire peut avoir un répertoire tel que /home/alice, mais le chemin est défini dans la base des comptes et peut être différent, distant ou créé à la demande. Les comptes de service n’ont pas nécessairement de dossier sous /home. Pour le compte courant :

printf '%s\n' "$HOME"
getent passwd "$(id -un)"
pwd

La variable HOME indique le répertoire personnel utilisé dans la session ; getent interroge la base des comptes, dont un champ précise le répertoire déclaré. pwd affiche le répertoire de travail actuel, qui peut être tout autre chose.

/root est le répertoire personnel habituel du compte root. Il est distinct de /, la racine de l’arborescence. Un compte root peut travailler dans n’importe quel répertoire autorisé ; le nom du compte ne change pas le sens de ces deux chemins.

Situer les programmes et les bibliothèques

/usr, /bin, /sbin et les bibliothèques

/usr regroupe une grande partie des logiciels installés par la distribution. Son nom ne signifie pas qu’il faut y ranger les fichiers personnels. /usr/bin contient de nombreuses commandes ; /usr/share contient notamment documentation, icônes et ressources indépendantes de l’architecture.

Les bibliothèques fournissent du code partagé par les programmes. Leur emplacement dépend de l’architecture et de la distribution : vous pouvez rencontrer /usr/lib64 sur certaines distributions, ou un répertoire comme /usr/lib/x86_64-linux-gnu sur Debian/Ubuntu. Un système 64 bits ne range donc pas nécessairement toutes ses bibliothèques dans /lib64. La politique Debian sur la hiérarchie et les bibliothèques explicite ses adaptations.

ls -ld /bin /sbin /lib /lib64
readlink -f /bin
command -v ls

La première commande affiche un l et une cible pour un lien symbolique ; un chemin absent peut produire un message d’erreur sans que le système soit mal installé. Dans de nombreuses distributions, /bin mène à /usr/bin et les anciens chemins de bibliothèques sont aussi des liens. Le détail de /sbin et /usr/sbin varie ; ne déplacez pas les fichiers pour reproduire un schéma.

La distinction historique entre commandes générales et administratives ne constitue pas un contrôle de privilèges : ce sont les permissions, la politique et les capacités du programme qui déterminent ce qu’un utilisateur peut faire. La description moderne de la hiérarchie par le groupe UAPI, encore en évolution, présente notamment les liens de compatibilité et la séparation des données.

/usr/local et /opt : les installations complémentaires

/usr/local sert aux logiciels et ressources installés localement par l’administration, par exemple une commande sous /usr/local/bin. Cela permet de les distinguer des fichiers gérés par les paquets de la distribution. Un programme local placé plus tôt dans le chemin de recherche peut toutefois masquer une commande de même nom ; vérifiez sa provenance avec command -v.

/opt accueille couramment l’arborescence autonome d’un logiciel ou d’un fournisseur, telle que /opt/application. Ce n’est pas l’unique méthode de distribution possible. Ses configurations et données variables peuvent être séparées ailleurs ; suivez la documentation du fournisseur pour une mise à jour ou une suppression.

Distinguer les données variables et celles des services

/var : état, journaux, cache et files d’attente

/var contient des données qui évoluent pendant le fonctionnement. Le terme « variable » ne signifie pas « jetable » : une base de données applicative sous /var/lib peut être essentielle.

  • /var/log : journaux persistants de services et du système selon leur configuration. Certains journaux peuvent aussi être volatils sous /run/log.
  • /var/lib : données d’état durables des logiciels et services ; leur sauvegarde doit respecter les contraintes de l’application.
  • /var/cache : cache normalement régénérable par le logiciel, à nettoyer avec ses outils et conditions plutôt qu’en supprimant tout pendant son utilisation.
  • /var/spool : travaux en attente, par exemple messages ou impressions, selon les services installés.
ls /var/log

Une liste partiellement inaccessible peut simplement refléter les droits du compte. Pour un problème d’espace disque, identifiez le volume et les fichiers concernés, puis utilisez la rotation ou les outils du service. Ne supprimez pas indistinctement le contenu de /var.

/srv : les contenus fournis aux clients

/srv peut contenir des documents web ou des fichiers distribués par un service, par exemple /srv/www. L’emplacement réel dépend de la configuration : un serveur web peut utiliser /var/www ou un autre chemin. Ne déduisez pas la racine de publication du seul nom du répertoire.

Pour une migration, relevez le chemin configuré, les permissions, les étiquettes de sécurité et les données réellement nécessaires. Copier le programme sous /usr ne suffit pas à récupérer le contenu servi ou son état applicatif.

Comprendre /dev, /proc et /sys

/dev : accéder aux périphériques et interfaces spéciales

/dev contient notamment les nœuds de disques, partitions et terminaux, tels que /dev/sda, /dev/nvme0n1 ou /dev/tty. Les noms dépendent du matériel et du système. /dev/null est une interface spéciale qui élimine les données qu’on y écrit ; ce n’est pas un disque.

Un nœud de périphérique ne se manipule pas comme un document : écrire sur un périphérique bloc peut remplacer les données du disque. Pour une simple exploration, consultez les types et permissions avec ls -l /dev/null /dev/tty, sans écrire sur un disque.

/proc et /sys : des interfaces du noyau

/proc fournit des informations sur les processus et le noyau via un pseudo-système de fichiers. Un identifiant de processus apparaît sous la forme d’un répertoire numérique ; /proc/self se rapporte au processus qui consulte ce chemin. Pour observer des informations générales :

cat /proc/cpuinfo
cat /proc/meminfo

La sortie est produite à partir de l’état du système. Les fichiers ne représentent pas une collection de rapports ordinaires à sauvegarder ou effacer. La documentation du noyau sur proc décrit aussi les restrictions d’accès et les interfaces modifiables.

/sys, généralement fourni par sysfs, présente périphériques, pilotes et objets du noyau selon une organisation structurée. Vous pouvez consulter ses classes :

ls /sys/class

La documentation du noyau sur sysfs explique les attributs exposés. Certains fichiers sous /sys ou /proc/sys permettent de changer le comportement du système : ne les considérez pas tous comme des fichiers passifs. Dans un conteneur ou un environnement restreint, ces interfaces peuvent être absentes, filtrées ou en lecture seule.

Différencier /run, /tmp et /var/tmp

/run contient l’état temporaire nécessaire aux services en cours d’exécution : sockets, fichiers contenant un identifiant de processus, informations de session. Il est normalement volatil et recréé au démarrage, souvent avec tmpfs. Un socket sous /run n’est pas une sauvegarde du service.

/tmp est destiné aux fichiers temporaires. Son stockage et son nettoyage dépendent de la distribution et de la politique locale : il peut être en mémoire, nettoyé périodiquement ou vidé au démarrage. /var/tmp est traditionnellement prévu pour des fichiers temporaires conservés entre les redémarrages, mais reste soumis à une politique de nettoyage.

Ne placez pas de document important dans ces emplacements en comptant sur une durée de conservation implicite. Les programmes doivent créer leurs fichiers temporaires de manière sûre dans ces espaces partagés. Un répertoire personnel ou un stockage applicatif prévu à cet effet convient mieux à des données durables.

Reconnaître /boot, /media et /mnt

/boot : les éléments utilisés au démarrage

Selon la distribution, /boot contient des noyaux, images initiales de démarrage et fichiers du chargeur. Un nom comme vmlinuz-… désigne un exemple de fichier de noyau, pas un nom identique sur toutes les machines. La partition système EFI peut être montée sous /boot/efi, /efi ou ailleurs selon l’installation.

Une machine virtuelle complète peut avoir ces éléments, tandis qu’un conteneur utilise le noyau de l’hôte et peut ne pas avoir de contenu de démarrage exploitable. Ne nettoyez pas manuellement les fichiers de noyau sans tenir compte du gestionnaire de paquets et de la possibilité de redémarrer.

/media et /mnt : les systèmes de fichiers rattachés

/media est associé aux supports amovibles ; un bureau peut aussi monter une clé USB sous /run/media. /mnt est couramment utilisé pour un montage temporaire effectué par l’administration. Ces noms sont des conventions, pas des restrictions imposées au matériel.

Monter un système de fichiers sur un répertoire masque temporairement le contenu précédent de ce répertoire sans l’effacer. Avant une opération, vérifiez le périphérique réel et le point de montage. Le guide d’ajout et de montage d’un disque explique cette préparation et le retour arrière ; il ne faut pas appliquer un nom d’exemple comme /dev/sdb1 à un disque non identifié.

Utiliser ces repères dans une recherche réelle

Pour trouver un réglage, commencez par la documentation du logiciel puis sa configuration sous /etc. Pour retrouver une commande, utilisez command -v plutôt que de parcourir tous les dossiers. Pour un état ou des données de service, distinguez le durable sous /var du temporaire sous /run.

Les commandes du guide de navigation avec pwd, ls et cd (en anglais) aident ensuite à explorer les chemins. Comprendre le rôle d’un répertoire permet de choisir quoi consulter et sauvegarder ; ce rôle ne suffit jamais à décider de supprimer son contenu.