私はDebianのすべてのログを無効にしたくなく、ルートログイン時間とログイン期間を記録するログだけを無効にしたいと思います。
端末でコマンドを実行すると、last
私のIPアドレスなどが表示され、これを無効にしたいと思います。
私が行くとき/var/log
、BTMP認識できない文字など、一部の正方形記号のみを持つファイルが空です。ウォーターアンプそれは同じです。内容を削除しましたauth.log
。
このタイプのロギングを無効にするにはどうすればよいですか?
答え1
ログフィルタリング
使用できると思いますrsyslog
。特にフィルタを追加する必要があります/etc/rsyslog.d/
。
次のメッセージの場合/var/log/secure
(例:Fedora 19):
Jun 28 13:28:18 greeneggs login: pam_unix(login:session): session opened for user saml by LOGIN(uid=0)
Jun 28 13:28:19 greeneggs login: LOGIN ON tty2 BY saml
次のフィルタを使用して無視できます。
$syslogfacility-text == 'local0' で $msg が 'login' で始まり ($msg に 'root' が含まれている場合) /dev/null
メモ:上記はテストされていませんが、この問題を大まかに解決する方法を示す例に過ぎません。
wtmpとbtmpのフィルタリング
これらのファイルはバイナリファイルなので、単に標準ツール(およびsed
)を使用して編集することはできませんawk
。本当に編集したい場合は、cron
定期的に編集する必要があります。ログインすると、2つのファイルに追加されたユーザーをフィルタリングする方法が見つかりません。
utmp、wtmp、btmp
- ユテムシステムの現在の状態、システム起動時間(通常の稼働時間を使用)の完全な記録を維持し、ユーザーがログインしてログオフした端末、システムイベントなどを記録します。
- ウォーターアンプ記録utmpで動作
- BTMP失敗したログイン試行履歴
ファイル
utmp
はテキストファイルではなく、特別に作成されたプログラムで編集する必要があるバイナリ形式です。ファイル内の実装とフィールドはシステムまたはlibcのバージョンによって異なり、utmp.h
ヘッダーファイルで定義されます。
wtmp
ユーザー名が空の場合は、接続されている端末からログアウトすることを除いて、フォーマットはbtmp
まったく同じです。utmp
また、ユーザー名のシャットダウンまたは再起動のターミナル名〜はシャットダウンまたは再起動を示し、ターミナル名のペアは日付が変更されたときの古い/新しいシステム時間を記録します。
これらのファイルを拡張するには、Perlモジュールを使用できます。ユーザー::Utmpこのファイルを変更するには、Pythonにも同様のモジュールがあります。