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 leset-dynamic-hostnamede 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/hostnameet/etc/HOSTNAME, parmi d'autres sources (puisque différents systèmes d'exploitation le configurent de différentes manières), et crée unrc.conffusionné . - Le mécanisme d'importation de configuration externe utilise le
rc.conffusionné pour configurer lehostnamede ce service variable d'environnement. - Lorsque le service s'exécute,
set-dynamic-hostnamen'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.
- Le mécanisme d'importation de la configuration externe lit
- Dans systemd, il s'agit d'une action d'initialisation qui est câblée dans le code de
systemdlui-même, qui s'exécute avant même le démarrage de la gestion des services. Lesystemdle programme lui-même va et lit/etc/hostname(et aussi/proc/cmdline, mais pas/etc/HOSTNAMEni/etc/default/hostnameni/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 depuisrc.conf, et définit le nom d'hôte dynamique à partir de sa valeur.
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.conffusion". 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