/var/log/lastlogが巨大な希少ファイル(1.1TB)である理由はありますか?

/var/log/lastlogが巨大な希少ファイル(1.1TB)である理由はありますか?

私はファイルを効率的にスパイする方法を尋ねるいくつかの質問を読んでrsync、ファイル/var/log/lastlog/var/log/faillog

それで、私が気になったのは、これらのファイルをまれに大きなファイル(私の場合は1.1TB)として持つ必要性/背景の動機ですか?

これに関連するフォローアップ:ログファイルであると仮定しているため、このファイルを切り捨てることにはあまり興味がありません。このファイルを切り取って破損したものはありますか?

ベストアンサー1

それで、私が気になったのは、これらのファイルをまれに大きなファイル(私の場合は1.1TB)として持つ必要性/背景の動機ですか?

状況はこうなります。

/var/log/lastlogそのようなログファイルの代わりに、/var/log/syslog名前は「最後のログファイル」ではなく「最後のログインリスト」でなければなりません。

これはpam_lastlog(8)モジュールによって維持され、基本的には次のような配列です。

struct lastlog {
    time_t  ll_time;    // 4
    char    ll_line[UT_LINESIZE];   // 32
    char    ll_host[UT_HOSTSIZE];   // 256
} entry[UINT_MAX];

一般的なx86-64システムのフィールドサイズは注釈に記載されています。 1つの項目は4 + 32 + 256 = 292バイトでなければなりません。

pamモジュールを使用するプログラムは、pam_lastlog(8)ユーザーにログインするたびにそのuid * sizeof(struct lastlog)ユーザーに対応するエントリを見つけて上書きします。

このファイルを切り取って破損した部分がありますか?

あなたは実際にコマンドの出力を破損しており、lastlog(1)とにかく誰もそれを使用しません;-)

おすすめ記事