Les fichiers essentiels sous Linux

Les fichiers de configuration essentiels sous Debian : Le grimoire du sysadmin

Dans l’univers Linux (et particulièrement Debian), la configuration du système ne se fait pas à coups de clics et de fenêtres surgissantes. Non, ici, on édite des fichiers texte, souvent à la main, parfois avec des tremblements. Ces fichiers, bien rangés (en théorie) dans /etc, sont les cerveaux du système. Et parfois, ses démons intérieurs.

Rappel : tout se configure dans des fichiers

Pas de base de registre obscure ni de menu caché à 12 clics. Sous Debian, tout ou presque se configure avec des fichiers texte. Certains sont simples. D’autres, capricieux. Quelques-uns, maudits.

Voici une liste des plus importants — ceux que vous devriez connaître, ne serait-ce que pour mieux comprendre ce que vous êtes en train de casser.

Fichiers de configuration système généraux

  • /etc/hostname : contient le nom d’hôte de la machine. Un seul mot. Court. Sans fioritures. Pas de fioriture ici, merci.
  • /etc/hosts : permet de faire correspondre des IP à des noms d’hôte localement, avant même de demander à DNS. Utile en cas de paranoïa ou de panne réseau.
  • /etc/resolv.conf : contient les adresses IP des serveurs DNS. Parfois écrasé automatiquement. Parfois pas. Parfois les deux.
  • /etc/network/interfaces : (traditionnel sur Debian) configure les interfaces réseau. Remplacé progressivement par systemd-networkd ou NetworkManager… mais il revient toujours.
  • /etc/hosts.allow et /etc/hosts.deny : permettent de restreindre ou autoriser l’accès à certains services via TCP Wrappers. L’équivalent du videur devant la boîte de nuit du système.

Gestion des utilisateurs et de l’authentification

  • /etc/passwd : contient les comptes utilisateurs, leurs UID, leurs dossiers personnels, etc. (Les mots de passe n’y sont plus stockés directement, rassurez-vous.)
  • /etc/shadow : contient les mots de passe chiffrés. Lisible uniquement par root. Ou par un pirate chanceux.
  • /etc/group : liste les groupes d’utilisateurs. C’est un peu l’annuaire des clubs VIP du système.
  • /etc/sudoers : fichier de configuration du fameux sudo. Modifiable uniquement via visudo, sauf si vous aimez casser la sécurité sans filet.

Boot, services, et démarrage

  • /etc/fstab : décrit les systèmes de fichiers à monter au démarrage. Une virgule oubliée, et votre machine ne boote plus. Joie.
  • /etc/sysctl.conf : permet de configurer des paramètres du noyau à chaud (réseau, mémoire, sécurité…). C’est un peu comme parler directement au cerveau du système, avec les risques que ça implique.
  • /etc/default/ : contient les fichiers de configuration par défaut pour divers services (grub, cron, etc.). Une planque à ne pas ignorer.
  • /etc/systemd/ et /etc/systemd/system/ : pour les unités (unit files) de systemd, le chef d’orchestre du démarrage. Complexe, puissant, redouté.
  • /etc/init.d/ : scripts d’init à l’ancienne (SysVinit). Toujours là pour les nostalgiques ou les systèmes très spécifiques.

Réseau et sécurité

  • /etc/ssh/sshd_config : configuration du serveur SSH. À ne pas confondre avec ssh_config, qui concerne le client.
  • /etc/firewalld/ ou /etc/ufw/ : selon votre outil de firewall. UFW (Uncomplicated Firewall) est effectivement plus simple, mais peut tout autant vous bloquer l’accès à distance.
  • /etc/nsswitch.conf : définit l’ordre dans lequel les services (DNS, fichiers, LDAP…) sont consultés pour résoudre des noms d’hôtes ou des utilisateurs.

Journaux et surveillance

  • /etc/rsyslog.conf : configuration du journal système Rsyslog (si encore utilisé).
  • /etc/logrotate.conf et /etc/logrotate.d/ : pour faire tourner, archiver et compresser les logs, parce que 5 Go de logs Apache, c’est rarement utile.

Applications et services divers

  • /etc/crontab : planification des tâches avec cron. Parfait pour automatiser scripts, sauvegardes… ou erreurs.
  • /etc/apache2/ : configuration du serveur web Apache. Attention, structure tentaculaire en sites-available et sites-enabled.
  • /etc/mysql/ ou /etc/mariadb/ : base de configuration pour les bases de données SQL. Ne pas toucher sans sauvegarde. JAMAIS.
  • /etc/php/ : toutes les versions de PHP dans des sous-dossiers. Parfois les unes contre les autres.

Environnement utilisateur

  • ~/.bashrc : configuration personnelle de l’interpréteur Bash.
  • ~/.profile : script lancé au login, peut définir des variables d’environnement.
  • /etc/skel/ : squelette copié dans chaque nouveau dossier /home lors de la création d’un utilisateur.

Conclusion : Le pouvoir est dans le fichier texte

Comprendre les fichiers de configuration, c’est tenir les clés de l’univers Linux entre ses mains. Mais ce pouvoir exige respect et prudence. Chaque ligne mal placée peut transformer un système stable en légume numérique.

Ne modifiez jamais sans sauvegarder. N’éditez pas en aveugle. Et souvenez-vous : un rm -rf /etc, même lancé « juste pour voir », ne pardonne pas.