GNU/Linux >> Linux Esercitazione >  >> Linux

Chi imposta le variabili di ambiente $user e $username?

Inoltre, queste variabili corrisponderanno sempre al nome utente attualmente connesso (lo fanno sul mio sistema Debian)? Posso presumere la loro disponibilità in altri sistemi Unix (simili)?

Sono anche curioso di sapere perché si dovrebbe usare whoami invece di leggere solo una di queste variabili.

Risposta accettata:

È accesso .

La pagina man di Linux login(1) dice:

Il valore per $HOME , $UTENTE , $SHELL , PERCORSO$ , $LOGNAME e $MAIL sono impostati in base agli appositi campi nell'inserimento della password.

La pagina man di FreeBSD login(1) dice:

Il accesso l'utilità inserisce le informazioni nell'ambiente (vedi environ(7)) specificando la home directory dell'utente (HOME), il comando
interprete (SHELL), il percorso di ricerca (PATH), il tipo di terminale (TERM) e il nome utente
(sia LOGNAME che USER).

Le pagine man di NetBSD, OpenBSD e OS X dicono la stessa cosa.

Ecco il codice sorgente dal login 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);

Ecco il codice sorgente dal login di FreeBSD:

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

Linux
  1. Come impostare/creare variabili di ambiente e shell in Linux

  2. La differenza di utilizzo tra variabili Shell e variabili d'ambiente?

  3. Fare riferimento a variabili d'ambiente *in* /etc/environment?

  4. Variabili d'ambiente del database Oracle e loro funzioni

  5. Variabili d'ambiente utente con "su" e "sudo" in Linux

Come impostare la variabile d'ambiente in Windows

Come impostare ed elencare le variabili di ambiente in Linux

Come impostare ed elencare variabili ambientali in Linux

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux

Variabili d'ambiente Linux

Come leggere le variabili d'ambiente di un processo