
どのユーザーがいつターミナルでどのコマンドを実行したかを知りたいです。たとえば、いずれかのユーザーが「rmdir abc」を実行して特定のディレクトリを削除した場合、どのコマンドをいつ実行したかを知る必要があります。また、これを単一のセッションで必要とするのではなく、ログを維持するのと同じようにこのデータを利用できるようにして、任意の時点で分析できるようにする必要があります。
私もそのコマンドを試しhistory
、時間も追加しましたが、コマンドの「ユーザー」は表示されず、セッション ベースなので、~/.bash_history
セッションが終了しない限り、データはファイルに追加されません。また、~/.bash_history
時間とユーザーも表示されないので、役に立ちません。どなたか助けていただけないでしょうか。システムの起動時からどのユーザーがどのコマンドをいつ実行したかを確認したいだけです。
答え1
ユーザーが実行したコマンドを確認するにはsudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
さらに詳しくはAUTHログを確認してくださいtail /var/log/auth.log | grep username
次のような同様の質問を試してください:bash 履歴でタイムスタンプを表示するにはどうすればいいですか?
答え2
それはすべてのユーザー自身の bash 履歴ファイルにあると思います。.bash 履歴ファイルのリストを取得して cat するだけです。
cd /home
find |grep .bash_history
出力:
./gediz/.bash_history
猫よりも
cat ./gediz/.bash_history
forループで実行できます
a=find ...
for i in $a
do
echo $a
cat $i
done
while ループを使用して Ubuntu の起動用のサービスを作成したり、rc.local ファイルを編集したりすることで、すべてのユーザーの .bash_history を各ループで安全な場所にバックアップできます。これにより、ユーザーが自分の .bash_history を削除した場合でも、実行された内容を確認できます。