Comment savoir quel utilisateur a supprimé un répertoire?

8

Mon serveur Ubuntu compte environ 30 utilisateurs actifs dessus. Je connais personnellement tout le monde utilisant le serveur. Récemment, quelques amis et moi travaillions sur un projet. Nous avons créé un nouveau répertoire pour le projet et comme tout le monde connaît tout le monde, nous n'avons pas pris la peine de protéger notre travail sous un tas d'autorisations. Nous aurions dû le faire, car nous nous sommes réveillés ce matin pour constater que quelqu'un avait supprimé tout notre répertoire.

Notre travail est sauvegardé tous les soirs donc ce n'est vraiment pas une grosse affaire de restaurer notre travail. Cependant, nous aimerions savoir qui l'a supprimé afin de pouvoir y faire face. Jusqu'à présent, la meilleure chose que nous ayons trouvée pour trouver notre coupable est de vérifier l'historique de tout le monde, mais c'est long et fastidieux et il y a de fortes chances que s'il y avait une intention malveillante derrière la suppression du répertoire, notre coupable ait probablement modifié le leur pour couvrir ses traces (ou bien sûr, ils pourraient utiliser un autre shell).

Donc, en gros, quelle est la façon la plus simple et la plus rapide de savoir qui a supprimé un répertoire?

Merci d'avance pour votre temps.

Rob S.
la source
2
Je ne pense pas que ce soit possible.
enzotib
4
La prochaine fois, utilisez un système de contrôle de version ou SparkleShare (qui utilise un VCS git) ou un dossier chiffré (en utilisant [gnome- ] encfs ) synchronisé avec Ubuntu One ou Dropbox.
dAnjou
@dAnjou Nous avons installé git et subversion sur notre serveur, mais puisque nous travaillons sur un site Web auquel nous ajoutions / supprimons constamment des fichiers, il semblait être une corvée inutile de se soucier d'utiliser l'un ou l'autre. Comme je l'ai mentionné dans ma question, nous aurions probablement dû créer un groupe et rendre le répertoire uniquement accessible par notre groupe. Quoi qu'il en soit, nous pouvons récupérer tout notre travail depuis que nous l'avons sauvegardé. Mon souci en ce moment est que je ne veux pas qu'un utilisateur supprime des répertoires du système avec lesquels il n'est pas affilié. Je fais confiance à tous mes utilisateurs pour ne pas faire quelque chose comme ça, donc cela me dérange vraiment.
Rob S.
Ouais, pas possible.
psusi
1
Vous pouvez surveiller les suppressions (ou modifications) des fichiers. Voir cyberciti.biz/tips/… etman auditctl
Lekensteyn

Réponses:

5

Je n'ai pas trouvé de réponse miracle à votre question; une partie de cette raison est détaillée ici: /superuser/178596/checking-user-command-history-in-unix

Cette commande simple peut vous aider à retracer ce qui s'est passé, en recherchant les commandes rm et mv dans tous les fichiers d'historique du shell dans tous les répertoires personnels des utilisateurs:

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

Il est bon que vous ayez une sauvegarde valide pour vous sauver, mais je recommande fortement de créer des groupes pour les dossiers de projet et d'ajouter simplement des comptes d'utilisateurs à ces groupes; cela vous évitera beaucoup de douleur à l'avenir.

Exemple: ajoutez un groupe et ajoutez-y des membres de l'équipe de projet

groupadd coolproject
adduser jim coolproject
adduser joe coolproject
adduser charlie coolproject

définissez les autorisations correctement de manière récursive et garantissez l'accès à l'avenir pour l'équipe, peu importe qui crée / modifie les fichiers

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

(le 2 définit la propriété du groupe sur "collant", cela garantit que le propriétaire du groupe de tous les projets reste "coolproject")

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

J'espère que ça vous aide! B-)

Chad Stovern
la source
Merci! J'ai modifié votre commande en "find / home -type f -iname. * History -print -exec grep" rm \ | mv "{} \;" afin que je puisse obtenir les noms de fichiers des historiques qui ont révélé des informations intéressantes.
Rob S.
excellent Rob! heureux d'avoir pu vous aider. =)
Chad Stovern
1

En théorie, il est possible de connaître le temps de suppression, ce qui peut réduire les utilisateurs.

Vérifiez les i_dtime spécifications ext2 .

organiser
la source