web-dev-qa-db-ja.com

ディレクトリを削除したユーザーを確認するにはどうすればよいですか?

私のUbuntuサーバーには、約30人のアクティブユーザーがいます。私は、サーバーを使用しているすべての人を個人的に知っています。最近、数人の友人と私はプロジェクトに取り組んでいました。私たちはプロジェクト用に新しいディレクトリを作成しました。誰もが知っているので、私たちはたくさんの許可の下で私たちの仕事を保護しませんでした。ただし、今朝起きて誰かがディレクトリ全体を削除したのを見つけたので、そうすべきです。

私たちの仕事は毎晩バックアップされているので、私たちの仕事を回復することは大したことではありません。しかし、私たちは彼らに立ち向かうために誰がそれを削除したかを知りたいです。これまでのところ、犯人を見つけるために私たちが考え出した最高のことは、全員のバッシュ履歴をチェックすることですが、これは長く退屈であり、ディレクトリ削除の背後に悪意がある場合、犯人がおそらく自分のトラックをカバーするように修正した可能性があります(またはもちろん、別のシェルを使用する場合があります)。

だから、基本的に、誰がディレクトリを削除したかを知る最も簡単で迅速な方法は何ですか?

お時間をいただきありがとうございます。

8
Rob S.

あなたの質問に対する魔法の弾丸の答えが見つかりませんでした。その理由の一部は次のとおりです。 https://superuser.com/questions/178596/checking-user-command-history-in-unix

この単純なコマンドは、すべてのユーザーのホームディレクトリにあるすべてのシェル履歴ファイルでrmおよびmvコマンドを検索して、何が起こったかを追跡するのに役立ちます。

find /home -type f -iname .*history -exec grep "rm\|mv" {} \;

有効なバックアップを保存しておくのは良いことですが、プロジェクトフォルダ用のグループをいくつか作成し、それらのグループにユーザーアカウントを追加することを強くお勧めします。これにより、将来的に多くの苦痛が軽減されます。

例:グループを追加し、プロジェクトチームメンバーを追加します

groupadd coolproject
adduser jim coolproject
adduser joe coolproject
adduser charlie coolproject

パーミッションを適切に再帰的に設定し、誰がファイルを作成/編集するかに関係なく、チームの今後のアクセスを保証します

chown -R yourusername:coolproject /path/to/projectdir
find /path/to/projectdir -type d -exec chmod 2775 {} \;

(2はグループ所有権を「スティッキー」に設定します。これにより、プロジェクトのグループ所有者は「coolproject」のままになります)

find /path/to/projectdir -type f -exec chmod 664 {} \;

それがあなたを助けることを願っています! B-)

5
Chad Stovern

理論的には、削除時間を見つけることが可能であるため、ユーザーを絞り込むことができます。

i_dtimeext2仕様 を確認してください。

1
arrange