いくつかのカーネルアップデートを使用して、RHEL5.8を実行しているテストPCの起動履歴とログイン履歴を抽出しようとしています。 _last -f /var/log/wtmp
_を使用することから始めましたが、いくつかの奇妙な結果に気づきました。さらに調査したところ、utmp形式と一致しない16進データの大きなブロックがファイルに書き込まれていることがわかりました。
これらのブロックは、ASCII値を持つ数百バイトがあるため、ASCII値のように見えます。たとえば、_0a30 7831 6234 6636 3762 652c 0930 7839 3562 3037
_は_0x1b4f67be,.0x95b07
_から取得されます。構造内の未使用の最後の20バイト。
調査を続けましたが、ASCII textは、起動時に出力されるテキストの一部と一致します-dmesg
からの出力のように見えます。画面に出力されるテキストもプログラムが起動し、起動時に読み取られる構成ファイルからのexcertを確認したとき。
Wtmpファイルが毎分大きくなるにつれて、シリアルポートのagetty
によってnullセクションが生成されると思われます。 _i/etc/inittab
_の行をコメントアウトすると
_7:2345:respawn:/sbin/agetty -h -t 60 ttyS0 115200 vt102
_
その後、wtmpは成長を停止します。
ファイルシステムで衝突が発生する可能性があります。 iノードを確認しましたが、共有されていないようです。
Utmp構造にはいくつかの文字列値が含まれていますが、ほとんどの場合、ゼロに設定されているように見えます。
これらのエントリの原因は何ですか? wtmpが信頼できないということですか?これらのエントリが本物である場合、それらを解読する方法はありますか?
以下は、16進エディターから貼り付けられたwtmpファイルからの抜粋です。
last
に従った出力を持つ最後の賢明なエントリ:
root tty1 Fri Nov 29 10:19 - crash (00:03)
_00312300: 0700 0000 850b 0000 7474 7931 0000 0000 ........tty1....
00312310: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312320: 0000 0000 0000 0000 3100 0000 726f 6f74 ........1...root
00312330: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312340: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312350: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312360: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312370: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312380: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312390: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312400: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312410: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312420: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312430: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312440: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312450: 0000 0000 3e6a 9852 89b0 0000 0000 0000 ....>j.R........
00312460: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312470: 0000 0000 0000 0000 0000 0000 0000 0000 ................
_
その場合、エントリは完全にnulになり、last
によって表示されません。
_00312480: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312490: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312500: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312510: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312520: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312530: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312540: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312550: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312560: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312570: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312580: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312590: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
_
ASCIIデータのブロックがファイルに書き込まれているように見えるまで。これはutmp構造の途中から始まり、last
からも出力されません。
_00312f00: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f10: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f20: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f30: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f40: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f50: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f60: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f70: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f80: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fa0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fd0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fe0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312ff0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00313000: 0930 7862 3130 3264 6131 332c 0a30 7830 .0xb102da13,.0x0
00313010: 3939 6264 3532 392c 0930 7863 6634 3364 99bd529,.0xcf43d
00313020: 3936 312c 0930 7838 3235 6336 3331 662c 961,.0x825c631f,
00313030: 0930 7863 6233 6662 3130 372c 0a30 7865 .0xcb3fb107,.0xe
00313040: 3336 3265 3739 392c 0930 7866 3231 3362 362e799,.0xf213b
00313050: 3730 642c 0930 7830 3133 6537 3465 622c 70d,.0x013e74eb,
00313060: 0930 7832 3039 3539 6335 652c 0a30 7865 .0x20959c5e,.0xe
00313070: 3166 6663 6631 642c 0930 7865 6532 6438 1ffcf1d,.0xee2d8
_
さらにASCIIバイトが続きます。これは、last
によって次のように解釈されます。
27dba1f, 4f6fe3c,*0xe 0xed51abc6,*0xf Sun Oct 8 21:09 - crash (6626+14:13)
_00313080: 3232 382c 0930 7865 3466 3666 6533 632c 228,.0xe4f6fe3c,
00313090: 0930 7865 6139 6531 6135 322c 0a30 7862 .0xea9e1a52,.0xb
003130a0: 3035 3935 6366 372c 0930 7863 3237 6462 0595cf7,.0xc27db
003130b0: 6131 662c 0930 7865 6339 3866 3162 612c a1f,.0xec98f1ba,
003130c0: 0930 7835 6135 3465 3261 632c 0a30 7865 .0x5a54e2ac,.0xe
003130d0: 6435 3161 6263 362c 0930 7866 6536 3361 d51abc6,.0xfe63a
003130e0: 3364 352c 0930 7866 3932 3161 3831 352c 3d5,.0xf921a815,
003130f0: 0930 7837 3732 3239 6262 662c 0a30 7837 .0x77229bbf,.0x7
00313100: 3032 3230 3363 392c 0930 7861 6337 6166 02203c9,.0xac7af
00313110: 3635 392c 0930 7834 3632 6639 3338 362c 659,.0x462f9386,
00313120: 0930 7863 3562 3834 3630 622c 0a30 7862 .0xc5b8460b,.0xb
00313130: 6231 6166 3862 382c 0930 7839 3238 3065 b1af8b8,.0x9280e
00313140: 6161 622c 0930 7861 3361 3265 3639 332c aab,.0xa3a2e693,
00313150: 0930 7861 3565 3231 3361 362c 0a30 7832 .0xa5e213a6,.0x2
00313160: 6130 6262 3861 322c 0930 7865 6639 3362 a0bb8a2,.0xef93b
00313170: 3061 632c 0930 7835 3936 3537 3530 352c 0ac,.0x59657505,
00313180: 0930 7839 3066 6632 6366 362c 0a30 7864 .0x90ff2cf6,.0xd
00313190: 3931 3564 6438 322c 0930 7864 6135 3061 915dd82,.0xda50a
003131a0: 3337 332c 0930 7834 6338 3936 3137 612c 373,.0x4c89617a,
003131b0: 0930 7834 6435 3465 3832 662c 0a30 7865 .0x4d54e82f,.0xe
003131c0: 3237 6161 6537 322c 0930 7839 6230 6237 27aae72,.0x9b0b7
003131d0: 6234 312c 0930 7830 3264 6263 3863 352c b41,.0x02dbc8c5,
003131e0: 0930 7865 3134 6532 6139 372c 0a30 7831 .0xe14e2a97,.0x1
003131f0: 6234 6636 3762 652c 0930 7839 3562 3037 b4f67be,.0x95b07
_
このブロックは、次のutmpブロックがキャプチャされるまで続きます。これはlast
で次のように示されます。
reboot system boot 2.6.30.9 Fri Nov 29 10:23 (340+04:17)
_00315900: 0800 0000 2302 0000 0000 0000 0000 0000 ....#...........
00315910: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315920: 0000 0000 0000 0000 7369 0000 0000 0000 ........si......
00315930: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315940: 0000 0000 0000 0000 0000 0000 322e 362e ............2.6.
00315950: 3330 2e39 0000 0000 0000 0000 0000 0000 30.9............
00315960: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315970: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315980: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315990: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a00: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a10: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a20: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a30: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a40: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a50: 0000 0000 1f6b 9852 b481 0600 0000 0000 .....k.R........
00315a60: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a70: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a80: 0200 0000 0000 0000 7e00 0000 0000 0000 ........~.......
00315a90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315aa0: 0000 0000 0000 0000 7e7e 0000 7265 626f ........~~..rebo
00315ab0: 6f74 0000 0000 0000 0000 0000 0000 0000 ot..............
00315ac0: 0000 0000 0000 0000 0000 0000 322e 362e ............2.6.
00315ad0: 3330 2e39 0000 0000 0000 0000 0000 0000 30.9............
00315ae0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315af0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b00: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b10: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b20: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b30: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b40: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b50: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b60: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b70: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b80: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315ba0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bd0: 0000 0000 1f6b 9852 ce16 0700 0000 0000 .....k.R........
00315be0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bf0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
_
エントリはしばらくの間再び意味があり、その後、同様のASCIIデータを表示します。
私は最終的にそれを追跡しました。
システムには、特定のプロセスに接続できない場合にシステムを再起動するウォッチドッグがあります。問題は、アプリケーションがSIGTERMまたはSIGKILLで強制終了され、最初にウォッチドッグから切断されなかったことでした。これは、SIGINTが使用されている場合に切断されます。
シャットダウン中のこの再起動により、これらの不要なバイトがwtmpに書き込まれます。 /etc/init.dに起動スクリプトとシャットダウンスクリプトを記述し、chkconfigを使用してrc#.dにリンクを設定しましたが、問題は解決しました/
これは、たとえばによって読み取られるバイナリファイルです。 last
(デフォルトは/var/log/wtmp
ですが、-f
で別のターゲットを指定することもできます)。
したがって、最後の適切なエントリがあるかどうかは、ファイルへのアクセスを最後に実装する方法とその使用方法に完全に依存します(ロビン方式でアクセスされるラウンドでアクセスされる固定長の固定数のレコードは、たとえば1つのオプションです)。
wtmp
ファイルとutmp
ファイルはバイナリファイルであり、ASCIIではありません。したがって、非ASCIIデータが表示されることが予想されます。それらを読みたい場合は、last
コマンドを使用してください。そのコマンドが機能する場合、ファイルはOKです。
形式の例はman 5 wtmp
にあり、これは ここ と読むことができます。
そのページもこれに言及しています:
Libc5のutmp構造体がlibc6で変更されていることに注意してください。このため、古いlibc5構造体を使用するバイナリは、/ var/run/utmpおよび/または/ var/log/wtmpを破損します。
last
が失敗した場合、それが文字化けしたhexdumpを説明している可能性がありますか?