Trois fichiers sont soudainement apparus dans mon répertoire personnel, appelés "client_state.xml", "lockfile" et "time_stats_log". Les deux derniers sont vides. Je me demande comment ils sont arrivés là. Ce n'est pas la première fois que cela se produit, mais la dernière fois c'était il y a des semaines; J'ai supprimé les fichiers et rien ne s'est cassé ni ne s'est plaint. Je n'ai pas été capable de penser à ce que je faisais à l'époque rapporté par stat $filename
. Y a-t-il un moyen de savoir d'où ils viennent?
Sinon, existe-t-il un moyen de surveiller le répertoire de base (mais pas les sous-répertoires) pour la création de fichiers?
files
monitoring
Loup
la source
la source
Réponses:
Je ne crois pas qu'il y ait un moyen de déterminer quel programme a créé un fichier.
Pour votre question alternative: vous pouvez regarder pour que le fichier soit recréé, en utilisant
inotify
.inotifywait
est une interface de ligne de commande pour leinotify
sous - système; vous pouvez lui indiquer de rechercher descreate
événements dans votre répertoire personnel:Vous voulez probablement l'exécuter avec
-m
(moniteur), ce qui lui dit de ne pas quitter après avoir vu le premier événementla source
inotify
? Il n'est pas installé (noyau 2.6.34) et il n'y en a pas/dev/inotify
.CONFIG_INOTIFY_USER
(Filesystems
->Inotify support for userspace
).inotifywait
est probablement dans un paquet nommé quelque chose commeinotify-tools
inotify-tools
paquet, donc j'ai maintenantinotifywait
(etinotifywatch
). Je l'ai testé et cela semble fonctionner.Vous pouvez regarder tout ce qui se passe sur un système de fichiers en y accédant via LoggedFS . C'est un système de fichiers empilé qui enregistre chaque accès dans une arborescence de répertoires.
La connexion de tout votre répertoire personnel peut toutefois ralentir votre système. Vous voudrez au moins écrire un fichier de configuration avec des filtres rigoureux.
Si vous disposez d'un accès root, sous Linux, vous pouvez utiliser le sous-système d'audit pour enregistrer un grand nombre d'éléments, y compris les accès au système de fichiers. Assurez-vous que le
auditd
démon est démarré, puis configurez le journal avec lequel vous souhaitez vous connecterauditctl
. Chaque opération consignée est enregistrée dans/var/log/audit/audit.log
(sur des distributions types). Pour commencer à regarder un fichier particulier:ou sous forme longue
Si vous surveillez un répertoire (avec
-w
ou-F dir=
), les fichiers qu'il contient et ses sous-répertoires de manière récursive sont également surveillés.la source
Vous voudrez peut-être jeter un coup d'œil sur
auditd
, ce paquet vous permet de faire un audit de sécurité et d'obtenir beaucoup d'informations sur qui a changé quoi dans le système de fichiers.la source
Je sais que c'est une vieille question, mais je suggérerai une autre approche au cas où quelqu'un le jugerait utile. Au départ, je publiais ceci en réponse à une question qui était dupée à celle-ci.
Une option consiste à utiliser
sysdig
: une application de surveillance du système open-source. En l'utilisant, vous pouvez surveiller l'activité d'un fichier par son nom. Supposons que vous vouliez voir quel processus créait un fichier nommé/tmp/example.txt
:À partir de cette sortie, vous pouvez voir qu'un processus nommé
touch
avec pid 5470 a ouvert le fichier.Si vous souhaitez plus d'informations, vous pouvez exécuter le "mode capture" où une trace d'appel système est collectée:
Attendez ensuite que le fichier soit créé, puis arrêtez
sysdig
et exécutez:Cela vous permettra d'explorer tout ce qui s'est passé. Vous pouvez appuyer sur
<F2>
et sélectionnerFiles
, la presse<F4>
pour rechercher le nom du fichier, puis appuyer<F6>
sur "dig" (qui affichera une sortie similaire à la commande ci-dessus). Avec cela, vous pouvez ensuite utiliser la même approche pour trouver des informations sur le processus qui a réellement créé le fichier.Il existe une version graphique de
csysdig
appeléesysdig-inspect
, si c'est plus votre tasse de thé.la source
Vous ne
inotify
pouvez pas écrire un script qui vérifie le fichier en boucle:la source