Raduの答えは非常に有益です。 https://askubuntu.com/questions/376932/why-who-command-does-not-shows-root-as-a-logged-in-user しかし、これは「Linuxでの「ログイン」の正確な定義とは何ですか?
ベストアンサー1
誰もが同意できる正確な定義を見つけることができるかもしれません。おそらく「/bin/login
またはそれと同等の」ものかもしれません。これはsu
、端末の既存のログインに代わるものではなく、ログインの特徴の1つは、一度に1つの端末に1人しかログインできないことです。
私の定義については議論の余地があるかもしれません。 「ログイン」とは、現在誰も使用していない端末(またはXモニター)で新しいセッションを開始することを意味します。しかし、新しい端末を作ったらどうでしょうか? xtermを起動すると、新しいttyを作成してもログインする気がしません。認証を要求しないためです(Xセッションの開始時に認証するかstartx
。
一方、新しいssh接続を開始することは、対話型シェルでは/bin/login
なくリモートで実行するようにコマンドを指定しない限り、ログインに非常に似ています。その操作には認証が必要ですが、そうではありません。正確に「ログイン」するような気がしません。
who
あなたがリンクした元の質問は、「ログイン」が何を意味するのかという哲学的な質問ではなく、具体的なもの(コマンド)に関するものなので、答えるのは簡単です。正確な答えはwho
レポートファイルの内容ですutmp
。特定のタスク(su
または)がに項目を記録しているかどうか疑問に思う場合、通常、答えは「状況によって異なります」ですxterm
。端末がに追加されるかどうかを制御するオプションがあります。ssh localhost -l root
utmp
xterm
-ut
+ut
utmp
では、以下を使用してscreen
現在のttyの項目を切り替えることができますutmp
。 Lはログインを意味します。CtrlAL
SSHの場合、専用オプションは表示されません。いくつかの実験の後にttyを生成すると、utmp
非対話型コマンドを実行してもssh -t localhost w
アイテムを取得できるようです(自己リストに表示されます)。w