Sélectionner Une Page

Répertoires et Fichiers Linux

SYSTÈMES

Lorsque l'on débute sur un système Linux, il me semble primordial de visualiser dans un premier temps l'arborescence des répertoires (dossiers) et des fichiers qui compose le système.

L'installation d'un explorateur de fichiers, comme celui sur Cockpit, permet facilement de visualiser, vérifier et "manipuler avec précaution", (téléchargement, téléversement, suppression, modifications ...) ceux-ci.

Contrairement à Windows qui organise les ressources par application, Linux répartit les fichiers selon leur fonction dans une hiérarchie unique et standardisée (FHS).

Comprendre cette structure permet de :

  • Localiser rapidement les fichiers : Savoir que les configurations sont dans /etc, les données utilisateurs dans /home et les programmes dans /usr ou /bin. 

  • Naviguer efficacement en ligne de commande : Utiliser correctement les chemins absolus (commençant par /) et relatifs pour déplacer, copier ou supprimer des fichiers.
  • Gérer les permissions et le système : Comprendre la distinction critique entre le répertoire personnel de l'utilisateur (/home/$USER) et celui de l'administrateur (/root), ou identifier les répertoires vitaux pour le démarrage (/boot).
  • Installer et configurer des logiciels : Savoir où placer les scripts locaux (/usr/local) ou accéder aux journaux système (/var/log) pour le débogage.

La racine de cette arborescence est notée / (et non C:\), et chaque dossier sert de point de départ pour accéder aux sous-répertoires spécifiques au fonctionnement du système d'exploitation.

Répertoires racine et fonction

/bin : Contient les exécutables et commandes essentielles disponibles pour tous les utilisateurs (ex: lscatcd).

/boot : Stocke les fichiers statiques nécessaires au démarrage du système, comme le noyau Linux (vmlinuz) et le chargeur d'amorçage (grub).

/dev : Répertoire de fichiers spéciaux servant d'interface de communication avec les périphériques physiques (disques, cartes réseau, etc.). 

/etc : Contient les fichiers de configuration textuels du système et des applications installées.

/home : Répertoire racine des répertoires personnels des utilisateurs standards (ex: /home/username).

/lib /lib64 : Bibliothèques partagées essentielles et modules du noyau requis par les exécutables de /bin et /sbin. 

/media : Points de montage automatiques pour les supports amovibles (clés USB, DVD, etc.).

/mnt : Point de montage pour attacher temporairement des systèmes de fichiers.

/opt : Emplacement pour les applications installées manuellement ou hors du gestionnaire de paquets standard.

/proc : Répertoire virtuel contenant des informations dynamiques sur le noyau et les processus en cours.

/root : Répertoire personnel de l'utilisateur super-administrateur (root).

/run : Stocke les données variables relatives au système depuis son dernier démarrage (états des services, utilisateurs actifs).

/sbin : Exécutables système essentiels destinés à l'administration du système (souvent réservés à root).

/srv : Données spécifiques aux services fournis par ce système (ex: données web, FTP).

/tmp : Répertoire pour les fichiers temporaires créés par les applications, généralement vidés au redémarrage.

/usr : Hiérarchie secondaire contenant la majorité des applications utilisateur, leurs bibliothèques et la documentation (ne doit pas être monté séparément).

/var : Contient les données variables qui changent fréquemment, comme les journaux système (/var/log), les bases de données, les caches et les emails.

Répertoire personnel

Le répertoire personnel de chaque utilisateur standard se trouve généralement sous /home/ suivi du nom d'utilisateur, tandis que les fichiers cachés (configurations) commencent par un point (.) et sont souvent masqués par défaut dans les gestionnaires de fichiers. C'est dans ce répertoire que se trouvent les données et fichiers de configuration des logiciels, traditionnellement sous le nom /home/$USER/.<nom de l'application>/home/$USER/.config, ou/home/$USER/.local/share/.

$USER est votre nom d'utilisateur, ~ est l'équivalent du chemin,

/home/$USER~ et $HOME sont donc équivalents et représentent le même chemin pour l'utilisateur courant.

NB Quand vous installez le système sans interface graphique, les sous-dossiers (répertoires) de l'utilisateur (Bureau, Documents, Vidéos ...) ne sont pas créés.

Répertoire serveur

Le choix entre /srv/opt, /var et /mnt dépend de la nature de vos données et de votre stratégie de gestion, car chaque répertoire a une sémantique Linux différente.

  • /srv est souvent recommandé pour l'hébergement de données et services spécifiques à la machine, car il est conçu pour les données que vous fournissez ou générez. Il permet de centraliser facilement les fichiers docker-compose, les configurations et les données applicatives dans une structure hiérarchique claire (ex: /srv/app1/), facilitant ainsi les sauvegardes globales et la migration.
  • /opt est traditionnellement réservé aux logiciels tiers ou aux applications complètes installées localement. Bien que beaucoup d'utilisateurs y placent leurs stacks Docker (/opt/docker/), cela peut sémantiquement prêter à confusion si vous distinguez les binaires des données persistantes. Il est souvent utilisé pour séparer les configurations des données brutes.
  • /var est déconseillé pour stocker vos fichiers docker-compose ou vos configurations personnelles, car il est destiné aux données variables générées par le système et les services (logs, spools). Cependant, c'est l'emplacement par défaut de l'engine Docker lui-même (/var/lib/docker). Il ne faut jamais déplacer manuellement ce répertoire sans migration appropriée via la configuration data-root dans /etc/docker/daemon.json, car c'est là que Docker stocke ses images et volumes nommés. 
  • /mnt (ou /media) est destiné aux points de montage temporaires ou matériels (disques externes, NFS, Ceph). Il est pertinent si vous stockez vos données Docker sur un disque dédié monté ailleurs (ex: /mnt/data/docker/), mais il n'est pas idéal pour la structure racine de vos configurations, car les montages peuvent changer de point d'entrée.

Recommandation principale : Pour une gestion claire et portable, la plupart des experts suggèrent d'utiliser /srv ou /opt pour structurer vos projets Docker (fichiers compose, .env, configurations), tandis que les données volumineuses ou temporaires peuvent être redirigées vers des partitions dédiées montées dans /mnt. Évitez d'utiliser /home ou /var pour la racine de vos stacks afin de faciliter les sauvegardes et les migrations.

morgyann

morgyann

Curieux de nature, j’ai découvert le monde des serveurs et plus particulièrement des applications Docker en apprenant au fil des essais et des ressources partagées sur le web. En retour, je partage ce que je connais et plus particulièrement à l'intention des débutants.

Si vous avez envie de proposer un article, n'hésitez pas à me contacter.

Soutenons l'utilisation des applications open source et leurs développeurs.