Fichiers système Linux

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Fichiers de configuration système de base (bannières, comptes, réseau)
Emplacement /etc/
Contexte Fichiers texte indépendants, lus au login ou au boot — pas de service à redémarrer pour la plupart
Voir aussi Fstab (montages), Systemctl

Panorama de quelques fichiers de configuration système sous /etc/, souvent oubliés parce qu'ils changent rarement, mais utiles à connaître pour personnaliser une bannière de connexion, comprendre la liste des shells ou protocoles disponibles, ou retrouver les valeurs par défaut d'un fichier modifié par erreur.

Bannières et message du jour

Trois fichiers texte affichés à différents moments de la connexion :

/etc/issue        # bannière affichée avant l'invite de connexion locale (console/getty)
/etc/issue.net    # bannière affichée avant l'invite de connexion SSH
/etc/motd         # message affiché juste après une connexion réussie (« message of the day »)

Pour que /etc/issue.net soit effectivement utilisé par SSH, il faut que sshd_config contienne Banner /etc/issue.net (souvent absent par défaut). Les deux fichiers /etc/issue* acceptent quelques séquences d'échappement (\n pour le nom d'hôte, \r pour la version du noyau...), voir man issue.

Modèle des nouveaux comptes : /etc/skel

Le contenu de /etc/skel est copié tel quel dans le répertoire personnel de tout nouvel utilisateur créé avec useradd -m (fichiers de config shell par défaut comme .bashrc, .profile...). Modifier /etc/skel n'affecte que les comptes créés après coup, pas les comptes existants.

Purge automatique du spool des mails

Tâche cron classique pour éviter que /var/spool/mail (ou /var/spool/mqueue) ne sature le disque avec des mails système jamais lus :

find /var/spool/ -type f -size +1500 -ctime +15 -delete

Supprime les fichiers de plus de 1500 blocs de 512 octets (environ 750 Ko) dont le statut (ctime) n'a pas changé depuis plus de 15 jours. Adapter les seuils -size/-ctime au volume réel de mails système du serveur avant de déployer ce genre de purge en cron.

Fichiers de référence réseau et comptes

/etc/protocols    # table des protocoles IP connus (numéro <-> nom, ex: tcp = 6, udp = 17)
/etc/services     # table des services réseau connus (nom <-> port/protocole, ex: ssh = 22/tcp)
/etc/shells       # liste des shells de login valides sur la machine (chsh, useradd -s, PAM la consultent)
/etc/securetty    # liste des terminaux depuis lesquels root peut se connecter directement

Un terminal absent de /etc/securetty refuse la connexion root en direct (utile pour forcer le passage par su/sudo depuis un compte nommé) — ce fichier n'est consulté que pour le login local, pas pour SSH (qui a son propre réglage PermitRootLogin).

Réinitialiser /etc/services et /etc/protocols

Si l'un de ces fichiers a été corrompu ou mal édité, le paquet netbase (Debian/Ubuntu) fournit les versions par défaut de /etc/services, /etc/protocols, /etc/rpc et /etc/ethertypes — les réinstaller restaure ces fichiers à leur contenu d'origine :

apt-get --reinstall --purge install netbase

Voir aussi

  • Fstab — montages au démarrage, y compris les montages bind (mount --bind / entrée none ... bind dans /etc/fstab)
  • Systemctl — gestion des services sous systemd