TAGS CLOUD
Incrementa dimensioniDecrementa dimensioni
La "vita'' dei file in un sistema GNU/Linux
Il file system è soggetto a mutamenti continui e in costante evoluzione ma il kernel sa sempre cosa accade e agisce di conseguenza. Scopri come
(pagina 10 di 10)


Inotify e la notifica degli avvisi tramite e-mail
Supponiamo di voler essere avvertiti, tramite e-mail, di ogni accesso come utente root alla nostra macchina costantemente esposta su Internet. Di norma ogni qual volta si verifica questo evento nel file /var/log/auth.log viene scritta una riga del tipo:
May 12 18:26:51 machine-name login[11611]:
ROOT LOGIN on ‘ttyX’

Nella configurazione di base oltre all’indirizzo e-mail a cui vorremmo essere avvertiti inseriremo il file “/var/log/auth.log” come file da monitorare e la stringa “ROOT.LOGIN” come stringa da cercare. Da notare il punto che simboleggia lo spazio bianco: quest’ultimo carattere è vietato in quanto il programma si avvale della nota utility grep, occorre quindi inserire tanti punti quanti sono gli spazi nella stringa in questione. Terminata la configurazione bisogna avviare il programma logsend in modalità batch per iniziare l’attività di monitoraggio. La sintassi del comando è logsend start. Gli accessi come utente root avvengono anche tramite il comando su (switch user); vanno quindi intercettati anche questi eventi che a loro volta lasciano questo tipo di traccia sul file /var/log/auth.log:

May 7 19:11:43 machine-name su[10242]:Successful
su for root by some_user
A questo punto, bisogna riavviare la configurazione di logsend e cambiare la stringa di ricerca in questo modo: ROOT. LOGIN\|Successful.su.for.root.by. Da notare come l’operatore OR è implementato tramite i due caratteri \|. Infine, non resta che riavviare logsend con logsend restart per cominciare a utilizzare la nuova configurazione. Per gli amanti della riga comando va detto che è possibile configurare manualmente logsend senza utilizzare l’interfaccia testuale. Nel file README dell’applicazione è, infatti, illustrata la struttura dei file creati sotto la directory $HOME/.logsend.
Udev: un caso reale di utilizzo del nuovo sistema di notifica
Per ultimo citiamo un importante fruitore dei servizi di inotify e cioè il sistema per la gestione dell’hardware udev. Questa piattaforma rappresenta, praticamente, la nuova infrastruttura, corredata da una serie di utility, che “gira” in user space e gestisce in modo dinamico il popolamento della directory /dev affinché solo le interfacce (i file) dei dispositivi realmente collegati al sistema siano presenti al suo interno. Ebbene, udevd, il processo demone (il servizio) di udev, eseguito al boot della macchina attraverso lo script /etc/init.d/udev, carica in memoria tutte le regole leggendo i file /etc/udev/rules.d/*.rules. In caso di successiva modifica delle regole, il kernel utilizza proprio inotify per comunicare i cambiamenti a udevd e provvede quindi all’aggiornamento delle proprie regole. A questo punto è chiaro come siano particolarmente importanti in questo caso alcune caratteristiche di inotify. Ad esempio, la comunicazione tramite file descriptor che permette di gestire in tempo reale gli eventi.

Link utili
Risorse su Internet per approfondire
http://inotify.aiken.cz/?section=
inotify-cxx&page=about=en
http://search.cpan.org/~mlehmann/Linux-
Inotify2-1.1/Inotify2.pm
http://pyinotify.sourceforge.net
http://jnotify.sourceforge.net
http://tab.snarc.org/projects/ocaml_inotify
http://inotify-tools.sourceforge.net
http://inotify.aiken.cz/?section=incron&page=about=en
http://distanz.ch/inotail
http://logsend.sourceforge.net
http://iwatch.sourceforge.net
http://mswatch.sourceforge.net
Pagina 10/10
Lascia un commento
Tag: file system, linux, kernel, udev, sistema di notifica, inotify, applicazione logsend, utility incron
Condividi