ユーザーは、次のいずれかの方法でBashのコマンド履歴を非表示にできます。
どうすればこれを無効にできますか?
できることはいくつかありますが、最終的には十分に洗練されたユーザーにとっては、簡単に回避できます。
関連する履歴制御変数(HISTFILE、HISTFILESIZE、HISTSIZE、HISTCONTROL、HISTIGNORE)を必要な値に設定し、それらを読み取り専用にすることができます。これは、ユーザーが編集できない便利なシステム全体の初期化ファイルで行います。たとえば、
readonly HISTFILE=~/.bash_history
readonly unset HISTCONTROL
または
readonly HISTCONTROL=ignoredupes
ただし、これは、ユーザーが$ HISTFILEを編集してコマンドを削除したり、ファイルを削除してから/ dev/nullにリンクしたりして、コマンドが再び非表示になるのを防ぐことはできません。
これを解決するには、$ HISTFILEに chattr のみを追加します。
chattr +a /home/alice/.bash_history
現在、.bash_historyは変更できず、追加されるだけです(何らかのプルーニングを配置することを忘れないでください)。ユーザーが行うすべてのことを確認できます...いいえ、
ユーザーがこれらの制限を回避するのは簡単です
bash --norc --noprofile
を実行できます。その後、必要な設定/初期化を含むスクリプトを簡単に入手できます。あなたは彼らがこれをしたのを見ることができますが、彼らがその後したことはわかりません。ユーザーが回避できない方法でユーザーのアクティビティをログに記録できるようにする場合は、 監査を使用する必要があります 履歴ではありません。