GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Quel est le fichier par défaut pour `hostname` ?

Salut ! Je travaille actuellement sur un système non-lfs à partir de zéro avec busybox comme star. Maintenant, mon identifiant indique :

(none) login:

Par conséquent, mon nom d'hôte est cassé. hostname m'apporte (none) aussi.

Le guide que je suivais m'a dit de jeter le nom d'hôte à /etc/HOSTNAME . J'ai aussi essayé /etc/hostname . Peu importe ce que je fais, hostname renvoie (none) - sauf si j'exécute hostname <thename> ou hostname -F /etc/hostname . Maintenant, évidemment, je ne veux pas que cela soit fait à chaque fois que quelqu'un vient d'installer la distribution - alors quel est le vrai fichier par défaut, sinon /etc/hostname ?

Merci d'avance !

Réponse acceptée :

Le hostname Les commandes dans les ensembles d'outils courants, y compris BusyBox, ne reviennent pas aux fichiers lors de la requête du nom d'hôte. (aucun)", modifiable en reconfigurant et en reconstruisant le noyau.
(Dans la terminologie systemd, il s'agit du nom d'hôte dynamique , alias nom d'hôte transitoire; celui qui est réellement rapporté par Linux, le noyau.)
Il n'y a pas "fichier par défaut".

Il existe généralement un service unique qui s'exécute au démarrage du système, assez tôt, qui recherche dans ces différents fichiers, extrait le nom d'hôte et initialise le nom d'hôte du noyau avec.
(Dans la terminologie systemd, cette chaîne de configuration est le nom d'hôte statique .)
Par exemple :

  • Dans mon ensemble d'outils, je fournis un hostname "précoce" service qui exécute le set-dynamic-hostname de l'ensemble d'outils commande après le montage du système de fichiers local et avant les services de connexion de l'utilisateur. Le travail est divisé en choses qui sont faites (uniquement) quand on fait un changement de configuration, et des choses qui sont faites à (chaque) démarrage du système :
    • Le mécanisme d'importation de la configuration externe lit /etc/hostname et /etc/HOSTNAME , parmi d'autres sources (puisque différents systèmes d'exploitation le configurent de différentes manières), et crée un rc.conf fusionné .
    • Le mécanisme d'importation de configuration externe utilise le rc.conf fusionné pour configurer le hostname de ce service variable d'environnement.
    • Lorsque le service s'exécute, set-dynamic-hostname n'a pas besoin de se soucier de toutes les possibilités de source de configuration et prend simplement la variable d'environnement, de l'environnement configuré pour le service, et définit le nom d'hôte dynamique à partir de celui-ci.
  • Dans systemd, il s'agit d'une action d'initialisation qui est câblée dans le code de systemd lui-même, qui s'exécute avant même le démarrage de la gestion des services. Le systemd le programme lui-même va et lit /etc/hostname (et aussi /proc/cmdline , mais pas /etc/HOSTNAME ni /etc/default/hostname ni /etc/sysconfig/network ) et le transmet au noyau.
  • Dans Void Linux, il existe un script shell de démarrage qui lit le nom d'hôte statique depuis (uniquement) /etc/hostname , avec un retour à la variable shell lue depuis rc.conf , et définit le nom d'hôte dynamique à partir de sa valeur.
Connexe:Feuille de triche Linux +

Si vous construisez un système "à partir de zéro", vous devrez créer un service qui fait l'équivalent.
Les outils BusyBox et ToyBox pour définir le nom d'hôte à partir d'un fichier sont hostname -F "${filename}" , vous devrez donc créer un service qui exécute cette commande sur /etc/hostname ou un tel fichier.

BusyBox est livré avec l'ensemble d'outils de gestion de service de runit, et un service runit simple ressemblerait à :

#!/bin/sh -e
exec 2>&1
exec hostname -F /etc/hostname

Autres lectures

  • Lennart Poettering et al. (2016). hostnamectl . pages de manuel systemd. Freedesktop.org.
  • Jonathan de Boyne Pollard (2017). "set-dynamic-hostname “. Manuel des commandes utilisateur . ensemble d'outils de bouffe. Logiciels.
  • Jonathan de Boyne Pollard (2017). "rc.conf fusion". Guide bouffe . Logiciels.
  • Jonathan de Boyne Pollard (2015). "formats externes". Guide bouffe . Logiciels.
  • Rob Landley. hostname . Liste des commandes du Toybox . landley.net.
  • https://unix.stackexchange.com/a/12832/5132

Linux
  1. Tutoriel de commande de nom d'hôte Linux pour les débutants (5 exemples)

  2. Une introduction au fichier Linux /etc/fstab

  3. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  4. Linux - Comment définir l'affinité CPU par défaut pour tous les démons dans Systemd ?

  5. Comprendre le fichier /etc/inittab sous Linux

Comprendre le fichier /etc/shadow

La bonne façon de modifier les fichiers /etc/passwd et /etc/group sous Linux

Qu'est-ce que le fichier /etc/passwd sous Linux ?

Comment changer le nom d'hôte sur Debian Linux

Comprendre le fichier /etc/fstab sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions