btmpがログインしたユーザーのユーザー名を表示しないのはなぜですか?

btmpがログインしたユーザーのユーザー名を表示しないのはなぜですか?

btmpwho -aファイルとコマンドの出力を比較しようとしています。

理由はわかりませんが、btmp file現在のユーザー名は表示されず、UNKNOWNユーザー名フィールドに表示されます。私(ユーザー名:debian)がセッションにログインしました。

以下の出力を観察してください。

virt00# who -a
           system boot  2016-03-06 19:36
           run-level 5  2016-03-06 19:36
debian   - tty1         2016-03-06 19:36 00:33        1006
debian   + pts/0        2016-03-06 19:43   .          1037 (192.168.56.1)

virt00# last -f /var/log/btmp | grep still
UNKNOWN  tty1                          Sat Feb 20 16:24   still logged in
virt00#

2つの間に違いがある理由とSSHを介してログインし、仮想マシンで別のセッションが実行される理由を説明してください。

ありがとうございます。

答え1

現在ログインしているユーザーはwho -a絶対に読んだり、/var/log/btmp読んwhoだり、表示したりできないからです。/var/run/utmp

一方、/var/log/btmp失敗したログイン試行は保存されます。


私は状況を再現し、次のようにしました。

  • そこに行きましたtty5(何でもできますtty

  • システムに存在しないユーザーが入力されました。

  • ランダムなパスワードが与えられたとき

  • ログインプロンプトに無効なパスワードが再表示されます。

  • /var/log/btmpしかし、次の項目があります。

    UNKNOWN  tty5  Mon Mar 21 16:16   still logged in 
    

    しばらくすると、次のようになります。

    UNKNOWN  tty5  Mon Mar 21 16:16    gone - no logout
    

答え2

このファイルは/var/log/btmp追跡します失敗ログインしようとしました。誰もが問題なくログインしても何も表示されません。

機能をテストするときにtelnet(sshではない)を使用すると、「Unknown」レコード(Debian 7)のみが表示されます。プロンプトで不明なユーザー名を指定するとエラーが発生します。これはUbuntuスレッドに表示されるシナリオに似ています。sshdは/var/log/btmpに追加されません。。このシステムでは、SSHを使用した接続は決して失敗しません。

速読ソースコードlast直接提供できる場所は表示されていません。UNKNOWNこれは、レコードが生成されたアプリケーションで発生する可能性があります/var/log/btmp

あなたの設定では、ログインプロセスが実際のユーザー名を取得して記録できないようです。それの質問で/var/log/btmp。のようにutmp, あります役に立たない削除されないアイテムbtmp(アイテムを作成したプログラムはそのアイテムを削除する必要があります - これはいいえオートコンプリート)。あなたの例は、1ヶ月前(2月20日)のエントリを示しており(同じttyに既知のユーザーとしてログインしているため)、現在のログインとは何の関係もありません。今後マシンが最後に開始された時間(3月3日)。

追加資料:

関連情報