GNU/Linux >> Belajar Linux >  >> Linux

Siapa yang Menetapkan Variabel Lingkungan $user Dan $username?

Juga, apakah variabel-variabel ini akan selalu cocok dengan nama pengguna yang saat ini masuk (mereka lakukan di sistem Debian saya)? Dapatkah saya mengasumsikan ketersediaannya di sistem Unix(-like) lain?

Saya juga ingin tahu mengapa seseorang menggunakan whoami daripada hanya membaca salah satu variabel ini.

Jawaban yang Diterima:

Ini masuk .

Halaman manual login Linux (1) mengatakan:

Nilai untuk $HOME , $USER , $SHELL , $PATH , $LOGNAME , dan $MAIL diatur sesuai dengan bidang yang sesuai dalam entri kata sandi.

Halaman manual login(1) FreeBSD mengatakan:

Masuk utilitas memasukkan informasi ke dalam lingkungan (lihat environ(7)) menentukan direktori home pengguna (HOME), command
interpreter (SHELL), jalur pencarian (PATH), tipe terminal (TERM) dan nama pengguna
(baik LOGNAME dan USER).

Halaman manual NetBSD, OpenBSD dan OS X mengatakan hal yang sama.

Berikut kode sumber dari 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);

Berikut kode sumber dari login FreeBSD:

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

Linux
  1. Cara Mengatur dan Menghapus Variabel Lingkungan Lokal, Pengguna dan Sistem di Linux

  2. Variabel Lingkungan Linux:Cara Membaca dan Mengatur di VPS Linux

  3. Cara Mengatur/Membuat Variabel Lingkungan dan Shell di Linux

  1. Variabel Lingkungan Database Oracle dan Fungsinya

  2. Pertanyaan tentang putenv() dan setenv()

  3. Cara membaca variabel lingkungan dari suatu proses

  1. Cara Mengatur, Mendaftar, dan Menghapus Variabel Lingkungan di Linux

  2. Variabel Lingkungan Pengguna Dengan "su" dan "sudo" di Linux

  3. Memeriksa variabel lingkungan