¿La variable de entorno $ HOME siempre se establece en un sistema Linux?

13

Suponiendo que la máquina está ejecutando un kernel de Linux, las sesiones utilizan el shell Bash y todo usa configuraciones predeterminadas (ningún usuario ha realizado ningún cambio en los archivos de configuración), ¿podemos suponer que la $HOMEvariable de entorno siempre está configurada?

Yanhan
fuente
nobodyno tiene hogar! (Es nobody, el usuario.)
devnull
1
@devnull no tiene una página de inicio (es decir, tiene un directorio de inicio especificado que no existe), no significa el $ HOME env. No se puede establecer la variable. Si se establece, simplemente no tiene que apuntar a un directorio existente ni a la inclusión en el hogar/etc/passwd
Anthon

Respuestas:

17

Si. La especificación POSIX requiere que el sistema operativo establezca un valor para $ HOME:

INICIO
El sistema inicializará esta variable en el momento del inicio de sesión para que sea una ruta de acceso del directorio de inicio del usuario. Ver pwd.h.

¿Qué pasa con el usuario nobody?

# su - nobody
No directory, logging in with HOME=/
$ echo $HOME
/

Aunque nobodyno tiene un hogar verdadero, HOMEestá configurado en el directorio raíz.

John1024
fuente
No es el shell lo que establece HOME, ninguno de los shells comunes lo hace, excepto zsh. Es el programa que te conecta (incluidos métodos como cron).
Gilles 'SO- deja de ser malvado'