btmp
who -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日)。
追加資料: