GNU/Linux >> Tutoriales Linux >  >> Linux

¿Quién establece las variables de entorno $user y $username?

Además, ¿estas variables siempre coincidirán con el nombre de usuario conectado actualmente (lo hacen en mi sistema Debian)? ¿Puedo asumir su disponibilidad en otros sistemas Unix (similares)?

También tengo curiosidad por qué uno usaría whoami en lugar de simplemente leer cualquiera de estas variables.

Respuesta aceptada:

Es iniciar sesión .

La página del manual de inicio de sesión de Linux (1) dice:

El valor de $HOME , $USUARIO , $SHELL , $RUTA , $NOMBRE DE REGISTRO y $CORREO se configuran de acuerdo con los campos apropiados en la entrada de la contraseña.

La página del manual de inicio de sesión(1) de FreeBSD dice:

El inicio de sesión La utilidad ingresa información en el entorno (ver environ(7)) especificando el directorio de inicio del usuario (HOME), el intérprete de comando
(SHELL), la ruta de búsqueda (PATH), el tipo de terminal (TERM) y el nombre de usuario
(tanto NOMBRE DE REGISTRO como USUARIO).

Las páginas man de NetBSD, OpenBSD y OS X dicen lo mismo.

Aquí está el código fuente del inicio de sesión de util-linux:

setenv("HOME", pwd->pw_dir, 0); /* legal to override */
setenv("USER", pwd->pw_name, 1);
setenv("SHELL", pwd->pw_shell, 1);
/* ... */
setenv("LOGNAME", pwd->pw_name, 1);

Aquí está el código fuente del inicio de sesión de FreeBSD:

(void)setenv("LOGNAME", username, 1);
(void)setenv("USER", username, 1);
(void)setenv("PATH", rootlogin ? _PATH_STDPATH : _PATH_DEFPATH, 0);

Linux
  1. ¿Hacer referencia a variables de entorno *en* /etc/environment?

  2. Variables de entorno de Oracle Database y sus funciones

  3. Variables de entorno de usuario con "su" y "sudo" en Linux

  4. Establecer un entorno temporal ($PATH)

  5. Cómo desarmar muchas variables de entorno

Cómo establecer la variable de entorno en Windows

Cómo establecer y enumerar variables de entorno en Linux

Cómo establecer y enumerar variables ambientales en Linux

Cómo configurar y desactivar variables de entorno en Linux

¿La diferencia en el uso entre las variables de shell y las variables de entorno?

Variables de entorno de Linux