「ログインユーザー」とはまさに何ですか?

「ログインユーザー」とはまさに何ですか?
$ users
vorac


# Non-login shell, /root/.profile not sourced.
$ su
$ users
vorac

# Login shell, /root/.profile sourced.
$ su -
$ users
vorac

したがって、前の例では、別のユーザーとしてログインシェルを起動しましたが、依然として元のユーザーのみが「ログイン」されていました。 「ログインユーザー」という概念はどのように定義されていますか?

ベストアンサー1

Unix / Linuxシステムは、現在ログインしているユーザーのデータベースをファイルとして維持します/var/run/utmp(一部のUnixバリアントには並列ファイルもありますが、utmpxすべて同じ目的で使用されます)。このloginプログラムは物理コンソールのログインを制御し、Xサーバーを搭載したコンピュータのSSHデーモンまたはGUIログインプログラムは、ユーザーがログインまたはログアウトしたときにこのファイルの情報を更新します。whoコマンドはこのデータベースから情報を読み取ります。

起動するシェルは、プログラムやsshデーモンによって起動されたログインシェルと同じように動作しますが(同じinitファイルの実行など)、ログインをファイルに書き込まないというsu -点で「ログイン」シェルです。したがって、このシェルは出力に表示されないというコマンドを使用しています。loginutmpwho

一方、たとえばscreenセッションを開始し、screenファイルにエントリを記録し、utmpコマンド出力でセッションを表示できますwho

また、一部のグラフィックDEでは、ユーザーが開くすべての新しい端末ウィンドウが新しいログインと見なされてログインしますがutmp、他の場合はそうではありません。utmpフルDEセッションユーザーにログインするためのマスターエントリは1つだけです。もちろん、これは端末アプリケーションによって異なります。

おすすめ記事