¡Hola! Actualmente estoy trabajando en un sistema que no es lfs desde cero con busybox como estrella. Ahora, mi inicio de sesión dice:
(none) login:
Por lo tanto, mi nombre de host está roto. hostname
me trae (none)
también.
La guía que estaba siguiendo me dijo que lanzara el nombre de host a /etc/HOSTNAME
. También probé /etc/hostname
. No importa lo que haga, hostname
devuelve (none)
– a menos que ejecute hostname <thename>
o hostname -F /etc/hostname
. Ahora, obviamente, no quiero que esto se haga cada vez que alguien instaló la distribución recientemente, entonces, ¿cuál es el archivo predeterminado real, si no es /etc/hostname
? ?
¡Gracias de antemano!
Respuesta aceptada:
El hostname
Los comandos en los conjuntos de herramientas comunes, incluido BusyBox, no recurren a los archivos cuando se consulta el nombre de host.
Informan únicamente lo que el kernel les devuelve como el nombre de host de una llamada al sistema, que el kernel inicializa en una cadena como " (ninguno)”, modificable reconfigurando y reconstruyendo el núcleo.
(En la terminología de systemd, este es el nombre de host dinámico , también conocido como nombre de host transitorio; el que realmente informa Linux, el kernel.)
No hay "archivo predeterminado".
Por lo general, hay un servicio de disparo único que se ejecuta al inicio del sistema, bastante temprano, que busca en estos diversos archivos, extrae el nombre de host e inicializa el nombre de host del kernel con él.
(En la terminología de systemd, esta cadena de configuración es el nombre de host estático .)
Por ejemplo:
- En mi conjunto de herramientas, proporciono un
hostname
"temprano" servicio que ejecuta el conjunto de herramientasset-dynamic-hostname
Comando después de los montajes del sistema de archivos local y antes de los servicios de inicio de sesión del usuario. El trabajo se divide en cosas que se hacen (solo) cuando uno hace un cambio de configuración, y cosas que se hacen en (cada) arranque del sistema:- El mecanismo de importación de configuración externa lee
/etc/hostname
y/etc/HOSTNAME
, entre otras fuentes (ya que diferentes sistemas operativos configuran esto de diferentes maneras), y crea unrc.conf
amalgamado . - El mecanismo de importación de configuración externa utiliza el
rc.conf
combinado para configurar elhostname
de este servicio variable de entorno. - Cuando se ejecuta el servicio,
set-dynamic-hostname
no necesita preocuparse por todas las posibilidades de la fuente de configuración y simplemente toma la variable de entorno, del entorno configurado para el servicio, y establece el nombre de host dinámico a partir de él.
- El mecanismo de importación de configuración externa lee
- En systemd, esta es una acción de inicialización que está integrada en el código de
systemd
en sí mismo, que se ejecuta incluso antes de que se inicie la gestión del servicio. Elsystemd
el programa mismo va y lee/etc/hostname
(y también/proc/cmdline
, pero no/etc/HOSTNAME
ni/etc/default/hostname
ni/etc/sysconfig/network
) y lo pasa al kernel. - En Void Linux hay un script de shell de inicio que lee el nombre de host estático desde (solo)
/etc/hostname
, con un respaldo a la variable de shell leída desderc.conf
y establece el nombre de host dinámico a partir de su valor.
Si está creando un sistema "desde cero", tendrá que crear un servicio que haga el equivalente.
Las herramientas BusyBox y ToyBox para configurar el nombre de host desde un archivo son hostname -F "${filename}"
, por lo que tendrá que crear un servicio que ejecute ese comando contra /etc/hostname
o algún archivo similar.
BusyBox viene con el conjunto de herramientas de administración de servicios de runit, y un servicio runit simple sería algo así como:
#!/bin/sh -e exec 2>&1 exec hostname -F /etc/hostname
Lecturas adicionales
- Lennart Poettering et al. (2016).
hostname
. páginas del manual systemd. Freedesktop.org. - Jonathan de Boyne Pollard (2017). “
set-dynamic-hostname
“. Manual de comandos de usuario . conjunto de herramientas nosh. Software. - Jonathan de Boyne Pollard (2017). “
rc.conf
amalgamación". Guía de comida . Software. - Jonathan de Boyne Pollard (2015). “formatos externos“. Guía de comida . Software.
- Rob Landley.
hostname
. Lista de comandos de Toybox . landley.net. - https://unix.stackexchange.com/a/12832/5132