web-dev-qa-db-ja.com

/ var / log / lastlogを完全に削除するにはどうすればよいですか?

私の/ var/log/lastlogファイルは巨大です。実際には数キロバイトしかないことはわかっていますが、tarはそれを知るのに十分なほど賢くないので、仮想マシンをイメージすると、ディスクの容量よりも多くのデータを読み込もうとしていると思われるため、復元が失敗します。

/ var/log/lastlogを削除して、ファイルへのすべてのログを停止したいと思います。私はセキュリティへの影響を認識しています。バックアップ戦略を維持するには、このロギングを停止する必要があります。

/etc/pam.d/loginに変更を加えたところ、/ var/log/lastlogへのログ記録が無効になると言われましたが、/ var/log/lastlogが増え続けるため、機能していないようです。

# Prints the last login info upon succesful login
# (Replaces the `LASTLOG_ENAB' option from login.defs)
#session    optional   pam_lastlog.so

何か案は?

[〜#〜]編集[〜#〜]

興味のある方は、CentrifyExpressを使用してLDAP経由でユーザーを認証します。 Centrify Expressは「無料」ですが、欠点の1つは、LDAPを介してユーザーUIDを管理できないため、サーバーにログインしたときに動的UIDが与えられることです。 Centrifyはいくつかのクレイジーな高いUID値を選択します(おそらく、サーバー上のローカルユーザーと競合しません)。/var/log/lastlogはUIDによってインデックスが付けられ、システム上の最大のUIDに対応するように拡張されます。これは、Centrifyユーザーがログインすると、UID範囲の上限のUIDを取得することを意味します。これにより、ファイルシステムによると、lastlogはわいせつな量のスペースを割り当てます。

~$ ll /var/log/lastlog
-rw-rw-r-- 1 root root 291487675780 Apr 10 16:37 /var/log/lastlog
~$ du -h /var/log/lastlog
20K     /var/log/lastlog

More Into ---> スパースファイル

6
GregB

このコマンドを試してください:

ln -sfn /dev/null /var/log/lastlog
13
johnshen64

ここでの最善の解決策は、私の意見では、tarの-S/--sparseオプションを使用して、スパースファイルを適切に処理することです。

2
Jon Lasser

サードパーティがシステムtarを使用している場合は、tarの名前をtar.realに変更します。次に、サードパーティソフトウェアによって呼び出された場合にのみ-Sを使用するtarというスクリプトを作成します。

より良いのは、ラッパースクリプトを介してサードパーティを呼び出すことです。このスクリプトは、パスの前に特別なbin dirを追加します。ここで、tarのラッパーがあり、サードパーティが絶対パスを使用していない場合にのみ機能します。

0
Tepal