GNU/Linux >> Linux の 問題 >  >> Linux

$userと$usernameの環境変数を設定するのは誰ですか?

また、これらの変数は常に現在ログインしているユーザー名と一致しますか(私のDebianシステムでは一致します)?他のUnix(ライク)システムでの可用性を想定できますか?

なぜwhoamiを使うのかも気になります これらの変数のいずれかを読み取るだけでなく、

承認された回答:

ログインです 。

Linuxのlogin(1)のマニュアルページには次のように書かれています:

$ HOMEの値 、 $ USER $ SHELL $ PATH $ LOGNAME 、および $ MAIL パスワードエントリの適切なフィールドに従って設定されます。

FreeBSDのlogin(1)のマニュアルページには次のように書かれています:

ログイン ユーティリティは、ユーザーのホームディレクトリ(HOME)、コマンド
インタプリタ(SHELL)、検索パス(PATH)、端末タイプ(TERM)、およびユーザー名を指定する情報を環境に入力します(environ(7)を参照)。
(LOGNAMEとUSERの両方)。

NetBSD、OpenBSD、OSXのマニュアルページは同じことを言っています。

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);

FreeBSDログインのソースコードは次のとおりです。

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

Linux
  1. シェル変数と環境変数の使用法の違いは?

  2. * in * / etc / environment?で環境変数を参照する

  3. Linux で環境変数を設定、一覧表示、および削除する方法

  1. Oracle Databaseの環境変数とその機能

  2. putenv() と setenv() に関する質問

  3. プロセスの環境変数を読み取る方法

  1. Linuxでローカル、ユーザー、およびシステム全体の環境変数を設定および設定解除する方法

  2. Linux環境変数:LinuxVPSでの読み取りと設定の方法

  3. Linuxで環境変数とシェル変数を設定/作成する方法