Surveillance fichier : quel user ?

Le
S
Bonjour,

Je suis en train d'écrire une appli qui utilise pyinotify pour surveiller
un répertoire dont l'utilisation au sein de ma boite est, disons,
problématique.
Si pyinotify me permet de savoir très finement les événements qui ont
lieu sur et dans ce répertoire (modification, accès, suppression, etc.),
en revanche il ne me donne pas les uid des utilisateurs à l'origine de
ces événements. Et c'est bien cela qui m'intéresse.
Je cherche depuis deux jours sur Google une librairie qui permette
d'obtenir ce genre d'informations — un genre de lsof, en plus fin —, mais
pour le moment, je sèche.
Quelqu'un aurait-il une idée ?

SW
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean-michel bain-cornu
Le #654347
Bonsoir,
Je suis en train d'écrire une appli qui utilise pyinotify pour surveiller
un répertoire dont l'utilisation au sein de ma boite est, disons,
problématique.
Si pyinotify me permet de savoir très finement les événements qui ont
lieu sur et dans ce répertoire (modification, accès, suppression, etc.),
en revanche il ne me donne pas les uid des utilisateurs à l'origine de
ces événements. Et c'est bien cela qui m'intéresse.
Je cherche depuis deux jours sur Google une librairie qui permette
d'obtenir ce genre d'informations — un genre de lsof, en plus fin —, mais
pour le moment, je sèche.
Quelqu'un aurait-il une idée ?


Si le répertoire est partagé sous linux par samba, il devrait y avoir
moyen de bricoler un truc avec la log ?

Méta-MCI (MVP)
Le #654104
Bonsoir !

Si tu es sous Windows, il existe un système de notification par WMI des évènements sur un/des
fichier(s).
Malheureusement, Python se prête mal à l'utilisation de cette technique, car il faut envoyer une
fonction-callback au système, et ensuite, mettre Python en écoute, ce qui est loin d'être évident.
Néanmoins, si tu trouves qq chose dans cette direction, je lirais volontiers le code-source.

@+

Michel Claveau
S
Le #654102
Le Thu, 18 Oct 2007 23:31:43 +0200, Méta-MCI (MVP) a écrit :

Bonsoir !

Si tu es sous Windows, il existe un système de notification par WMI des
évènements sur un/des fichier(s).
Malheureusement, Python se prête mal à l'utilisation de cette technique,
car il faut envoyer une fonction-callback au système, et ensuite, mettre
Python en écoute, ce qui est loin d'être évident. Néanmoins, si tu
trouves qq chose dans cette direction, je lirais volontiers le
code-source.

@+

Michel Claveau


Pour le moment, je ne trouve rien : je suis sous Linux et si le système
de notification d'accès à un fichier est plutôt simple à mettre en place
avec pyinotify, en revanche dès qu'il s'agit de savoir qui (uid du user)
touche au fichier, on rentre dans les appels système et ça devient plus
que corsé, franchement dangereux. Pour le moment, les seuls trucs que
j'ai dénichés qui répondent un peu à ma recherche, ce sont les rootkits
qui captent les appels systèmes, mais leur utilisation est drôlement
coton, surtout qu'en l'occurrence il faut intervenir sur un serveur en
production.
Cela dit, promis, si je trouve quelque chose, je te tiens au courant.
SW.

Amaury Forgeot d'Arc
Le #654101
Bonsoir !

Si tu es sous Windows, il existe un système de notification par WMI des
évènements sur un/des fichier(s).
Malheureusement, Python se prête mal à l'utilisation de cette technique,
car il faut envoyer une fonction-callback au système, et ensuite, mettre
Python en écoute, ce qui est loin d'être évident. Néanmoins, si tu
trouves qq chose dans cette direction, je lirais volontiers le code-source.


Windows propose les fonctions de la famille FindFirstChangeNotification,
qui fonctionne avec des types simples.

Et google m'a même trouvé quelqu'un qui l'utilise sous Python:
http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_for_changes.html

(Eh, en voilà un site intéressant pour ceux qui font du python sous
windows. Il y a plusieurs trucs à retenir)

--
Amaury

S
Le #654100
Le Thu, 18 Oct 2007 21:42:59 +0200, jean-michel bain-cornu a écrit :

Bonsoir,
Je suis en train d'écrire une appli qui utilise pyinotify pour
surveiller un répertoire dont l'utilisation au sein de ma boite est,
disons, problématique.
Si pyinotify me permet de savoir très finement les événements qui ont
lieu sur et dans ce répertoire (modification, accès, suppression,
etc.), en revanche il ne me donne pas les uid des utilisateurs à
l'origine de ces événements. Et c'est bien cela qui m'intéresse. Je
cherche depuis deux jours sur Google une librairie qui permette
d'obtenir ce genre d'informations — un genre de lsof, en plus fin —,
mais pour le moment, je sèche.
Quelqu'un aurait-il une idée ?


Si le répertoire est partagé sous linux par samba, il devrait y avoir
moyen de bricoler un truc avec la log ?


J'y ai pensé, d'autant plus qu'il s'agit de surveiller un répertoire
partagé. Mais le hic de, par exemple, smbstatus, c'est qu'il recense les
accès aux partages et les fichiers lockés, mais pas la suppression d'un
fichier ou d'un sous-répertoire. Quant aux logs, ils sont inexploitables
pour la simple raison qu'ils portent en général le nom de la machine
cliente.


S
Le #654098
Le Thu, 18 Oct 2007 15:53:58 +0000, Sébastien Weber a écrit :

Bonjour,

Je suis en train d'écrire une appli qui utilise pyinotify pour
surveiller un répertoire dont l'utilisation au sein de ma boite est,
disons, problématique.
Si pyinotify me permet de savoir très finement les événements qui ont
lieu sur et dans ce répertoire (modification, accès, suppression, etc.),
en revanche il ne me donne pas les uid des utilisateurs à l'origine de
ces événements. Et c'est bien cela qui m'intéresse. Je cherche depuis
deux jours sur Google une librairie qui permette d'obtenir ce genre
d'informations — un genre de lsof, en plus fin —, mais pour le moment,
je sèche.
Quelqu'un aurait-il une idée ?

SW


J'ai trouvé : python-lib-audit qui permet, sur les noyau 2.6, d'accéder
aux fonctions d'audit du système. En revanche, pour la documentation,
c'est à tâtons.

jean-michel bain-cornu
Le #654097
J'ai trouvé : python-lib-audit qui permet, sur les noyau 2.6, d'accéder
aux fonctions d'audit du système. En revanche, pour la documentation,
c'est à tâtons.


Je n'ai pas python-lib-audit dans google, as-tu un ptit lien ?

S
Le #653870
Le Fri, 19 Oct 2007 12:04:32 +0200, jean-michel bain-cornu a écrit :

J'ai trouvé : python-lib-audit qui permet, sur les noyau 2.6, d'accéder
aux fonctions d'audit du système. En revanche, pour la documentation,
c'est à tâtons.


Je n'ai pas python-lib-audit dans google, as-tu un ptit lien ?


http://rpmfind.net/linux/rpm2html/search.php?query=audit-lib&submit=Search
+...&system=&arch
Je suis passé par Yast (sous OpenSuse) pour l'installer en cherchant
"audit"
Mais bon, pour l'instant je ne trouve aucune doc et l'utilisation me
reste encore complètement obscure. Si tu dégottes un howto quelconque ou
des exemples, je suis preneur.

SW


Méta-MCI (MVP)
Le #653867
Bonsoir !

Et bien, merci beaucoup pour le lien.
Il y a un excellent exemple d'attente d'un évènement Windows (par win32event.WaitForSingleObject)
depuis Python.
Il suffit de mettre ça dans un thread (si c'est thread-safe...), pour construire des trucs
intéressant.

@-salutations

Michel Claveau



PS : j'avais déjà vu ce site, mais pas cette page.
Amaury Forgeot d'Arc
Le #653865
Bonsoir !

Et bien, merci beaucoup pour le lien.
Il y a un excellent exemple d'attente d'un évènement Windows (par
win32event.WaitForSingleObject) depuis Python.
Il suffit de mettre ça dans un thread (si c'est thread-safe...), pour
construire des trucs intéressant.


Euh... je ne vois pas l'intérêt du thread. WaitForSingleObject est
justement la fonction qui permet à deux threads de communiquer.

--
Amaury

Publicité
Poster une réponse
Anonyme