誰がプログラムを呼び出したのか、どうすればわかりますか?

誰がプログラムを呼び出したのか、どうすればわかりますか?

夏時間を取り上げて興味深いものを見つけました。

現在の時刻が午後2時であると仮定すると、夏時間は午後3時に開始され、+1時間オフセットされます。

午後3時以降、hwlockは1時間増加した時間情報を表示します。

私の考えでは、いくつかのプログラムがhwclockを呼び出して時間情報を変更したことは間違いありません。

どのプログラムがこれを実行したのか、どうすればわかりますか? Linuxシェルは、通話履歴の履歴を表示するいくつかのコマンドをサポートしていますか?

良い

# log hwclock
# program_xxx invoke it at p.m. 3:00

ベストアンサー1

通常、コマンドの出力はローカルタイムhwclockゾーンにあり、タイムゾーン定義には夏時間変換が含まれます。

Linuxカーネルの内部時計(ほとんどのUnixシリーズシステムと同様)は、常に内部的にUTC時間で実行されます。現地時間が必要なときはいつでも、タイムゾーン定義を使用して内部 UTC 表現を現地時間に変換します。 DST変換が発生した場合は「現地時間」を意味します。飛び出しそうだ必要に応じて前後に。同時に、現地時間値とともに報告されるタイムゾーンオフセットも変更されます。一般的に、DST プレフィックスが追加または削除された場合、またはタイムゾーンが UTC 時間の +/- オフセットで表される場合、オフセット値は夏時間の切り替え時にも変更されました。

hwclock出力がUTCタイムゾーン(例:)として表示されるように要求すると、TZ=UTC hwclock時間が通常どおり進むことがわかり、DSTに変換するときに特別なことは発生しません。

したがって、実際の説明は次のとおりです。特別なコマンドは実行されませんでしたが、有効期限に指定さ/etc/localtimeれた古いUTCオフセット値と、新しい期間に定義された新しいオフセットが適用されました。zdump -v /etc/localtime必要に応じて、過去と将来のDST遷移時間の両方を表示できます。ローカルタイムゾーンの記録に夏時間以外の変更がある場合は、その内容も含める必要があります。

ただし、実際の質問に対して特定のコマンドを実行した人を見つけるための信頼できる唯一の方法は、サブシステム(auditdおよび関連ツール)を監査することです。サブシステムは、/var/log/audit構成時にログ(または必要に応じてカスタムディレクトリ)を生成します。ただし、起動時から内容のみ記録します。適切なロギングがまだ構成されていない場合、過去のイベントには役立ちません。

おすすめ記事