Comment analyser automatiquement tout périphérique de stockage USB branché avec clamav?

13

Je voudrais effectuer une analyse antivirus automatique sur tout périphérique USB branché utilisant ClamAV. J'utilise Ubuntu 12.04.

La chose la plus proche que j'ai trouvée était:

Le premier ne fonctionne pas pour moi et le second semble viser un appareil connu.

Y a-t-il un tutoriel autour que j'ai manqué? Ou puis-je obtenir de l'aide avec les udevrègles qui s'appliquent à tout périphérique de stockage USB ajouté? Actuellement, rien ne semble rien faire.

ossi
la source
Vous pouvez écrire une règle udev pour cela.
Barafu Albino
Consultez celui-ci: superuser.com/questions/305723/… où RUN + = (emplacement du fichier) est la façon dont il est lu, je crois.
Pas de temps

Réponses:

5

Il s'agit d'un script automatisé. Il suffit de l'exécuter en tant que root. Vous pouvez modifier la commande exécutée en modifiant /usr/bin/doOnUSBinsert.

#!/bin/bash
#doOnUSBinsert_0.2.sh
#Author : Totti
# Make it executable by running 'sudo chmod  x doOnUSBinsert_0.2.sh'


if ! [ -f /etc/udev/rules.d/80-doOnUSBinsert.rules ]
then        # rule not added
   cp "$0" /usr/bin/doOnUSBinsert
   chmod u x /usr/bin/doOnUSBinsert

#   echo 'SUBSYSTEM=="usb", ACTION=="add", RUN ="/path/to/script.sh"' | sudo tee     /etc/udev/rules.d/80-clamscan.rules
   echo 'SUBSYSTEM=="usb", ACTION=="add", RUN ="/usr/bin/doOnUSBinsert & "' | tee     /etc/udev/rules.d/80-doOnUSBinsert.rules
   if  [ $? -eq 0 ]
   then
     echo 'Rule Successfully added. See file "/usr/bin/doOnUSBinsert" if you wish to edit the command'
     exit 0
    else
     echo 'ERROR while adding rule'
     exit 1
   fi
fi



lfile="/tmp/doOnUSBinsert.log"     # udev
lfile2="/tmp/clamscanFromUdev.log"   # clamscan
lfile3="/tmp/doOnUSBinsert_mount.log"   # mount


main ()
{
sleep 12  # let the partitions to mount

   #cat /proc/$$/environ | tr '�' 'n' >> /tmp/udevEnvirn.txt
echo "found $ID_SERIAL"   >> "$lfile"
  cat /etc/mtab | grep "^$part_c"   >> "$lfile.3"

if [ "$ID_SERIAL"x = 'x' ]
then
 echo "Exiting on empty ID_SERIAL"   >> "$lfile"
 exit 1
fi

#Eg: ID_SERIAL --> /dev/disk/by-id/usb-sandisk....42343254343543
#i=0
echo 'searching partitions'   >> "$lfile"

for partitionPath in  $( find /dev/disk/by-id/ -name "*$ID_SERIAL*part*" )
do
  echo "current partition = $partitionPath"   >> "$lfile"
 # part[i  ]="$( readlink -f "$partition" )"        # Eg Output: /dev/sdb1     , /dev/sdb2
  part_c="$( readlink -f $partitionPath )"   
  mpoint="$( cat /etc/mtab | grep "^$part_c"  | awk '{print $2}' )"

  echo "partitionPath= $partitionPath, part = $part_c, mountpoint=  $mpoint"  >>     "$lfile"

  echo "Scaning -->  $mpoint"  >> "$lfile.2"
  ############################################
  clamscan -r --bell "$mpoint"/*  >> "$lfile.2"
  #############################################
done
}


main &
echo ______________________________________  >> "$lfile"
exit 0
totti
la source
pourquoi répétez-vous votre réponse et pourquoi demandez-vous à quelqu'un de modifier le message?
Lynob
@Fischer Comment ça marche?
totti
eh bien je l'ai couru et ça donne SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit commanddonc ça marche mais je ne trouve pas le fichier journal dans / tmp
Lynob
Code mis à jour. /tmp/doOnUSBinsert.log pour udev. /tmp/clamscanFromUdev.log pour clamscan. Exécutez rm /etc/udev/rules.d/80-doOnUSBinsert.rulesavant d'exécuter le script mis à jour.
totti
0

Dans System> Preferences> Removable Drives and Mediail y a une section pour exécuter automatiquement un programme lorsque USB est branché.

Ajoutez ici la commande suivante:

clamscan -r -z /media

la source
clamscan -r -z /mediane scanne pas automatiquement, je dois brancher l'USB et l'exécuter à partir du terminal ... sur le système, quel système? il n'y a pas de section appelée systemsur mon xubuntu
Lynob
Dans le tiret, tapez ibus . Ou en type terminal alacarte. Ou c'est sous le bouton d'arrêt.
je suis sur xubuntu, pas d'unité pas de tiret. Bureau Xfce
Lynob
Aucune option de ce type n'existe dans Ubuntu 15.04.
TRiG