"sudo su -username"を使ってログインする方法について質問がありますか?

"sudo su -username"を使ってログインする方法について質問がありますか?

Linuxのトレーニングを進めながら、次の好奇心を発見しました。

これを行い、"sudo su - username"そのユーザー名アカウントにログインすると、「指ユーザー名」を実行したときにログインしているとは見なされません。

ここに画像の説明を入力してください。

この写真を撮ってください。 "jonathan"は私(現在のユーザー)で、alumni2は基本的なコマンドをテストするために作成した別のアカウントです。

Jonathanで「ログイン」すると、なぜ最後の履歴(フィンガードア2)が表示されないのですか"sudo su - alumne2"

答え1

ユーザーアカウントにアクセスする方法はいくつかあります。たとえば、コンソール、sshサーバーにログインしたり、ftpファイルをインポートまたは操作したりできますcron

これらの方法のいくつかは「ログイン」とは見なされません。

sudosuアカウントIDを仮定する方法ですが、どちらの方法もログイン方法とは見なされません。

したがって、ログを実行fingerまたは表示するlastと、lastloginそのアカウントについて報告されたアクティビティが表示されないことがあります。

おそらくこのような状況でのみ表示されます/var/log/auth.log(正確なファイル名はオペレーティングシステムによって異なります)。

答え2

Stephen Harrisがコメントで述べたように、suこれはログインコマンドではありません。代わりに、シェルの現在のIDを別のIDに置き換えます。

これはでよく説明されています。OpenBSD su のマニュアルページ

suユーティリティを使用すると、ユーザーはログアウトし、他のユーザーとしてログインしなくても、他のユーザーのユーザーとグループIDを使用してシェルを実行できます。

デフォルトでは、LOGNAME、HOME、SHELL、USER 以外の環境は変更されません。 HOME と SHELL は、ターゲットログインのデフォルト値に設定されます。 LOGNAME と USER は宛先ログインに設定されます。ただし、ターゲットログインのユーザーIDが0で、-lフラグが指定されていない場合は変更されません。呼び出されるシェルはターゲットログインのシェルです。これはsuの伝統的な行動です。

関連情報