サーバー上のすべてのユーザーのbash履歴を検索できますか?

サーバー上のすべてのユーザーのbash履歴を検索できますか?

複数のユーザーアカウントにわたってLinuxサーバーで実行されているすべてのbashコマンドを表示したいと思います。私が使用する特定のディストリビューションはCentOS 5.7です。サーバーから.bash_historyファイルを完全に検索する方法はありますか、それとももう少しローカライズされたプロセスですかlocate | cat | grep? (これをタイプするだけでも震えています)。

ベストアンサー1

ホームディレクトリを列挙するために使用されますgetent

getent passwd |
cut -d : -f 6 |
sed 's:$:/.bash_history:' |
xargs -d '\n' grep -s -H -e "$pattern" 

ホームディレクトリがよく知られている場所にある場合は、次のように簡単にできます。

grep -e "$pattern" /home/*/.bash_history

もちろん、これはユーザーが他のシェルを使用しているのか、それとも別の値を使用しているのかについてはあまりHISTFILE言及していません。また、シェルを介して実行されていないコマンドやユーザーの$PATH。会計またはいくつかの高度な監査システムを参照してください。マイコンピュータのアクティビティを監視します。プロセスが完了した後に実行にかかった時間を確認するには?

おすすめ記事