web-dev-qa-db-ja.com

export USER = myNameを使用しても、whoamiの出力は変更されません

私が見た この例

$ whoami
MatsP
$ g++ -Wall -std=c++0x getenv.cpp 
$ ./a.out
MatsP
$ export USER=DonaldDuck
$ ./a.out
DonaldDuck

しかし、私にとってはそれは機能しません。私はDebianマシンにいます。 export -pを使用しましたが、実際に変数が変更されました。 bachrcを更新しましたが、まだ何もありません。上記を達成する方法は? whoamiはデフォルト値を表示します。

1
traveller

Linuxのwhoamiは、USER変数を読み取りません。

「通常のシステム」(たとえばLDAPを使用しないことを意味します)では、geteuid(2)システムコールを実行して現在の有効なユーザーIDを取得し、/etc/passwdを読み取ってユーザー名を検索します。

1
tlund