複数のユーザーアカウントにわたって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
。会計またはいくつかの高度な監査システムを参照してください。マイコンピュータのアクティビティを監視します。、プロセスが完了した後に実行にかかった時間を確認するには?。