Come eseguire la scansione automatica di qualsiasi dispositivo di archiviazione USB collegato con clamav?


13

Vorrei fare una scansione automatica dei virus su qualsiasi dispositivo USB collegato tramite ClamAV. Sto usando Ubuntu 12.04.

La cosa più vicina che ho trovato è stata:

Il primo non funziona per me e il secondo sembra indirizzare un dispositivo noto.

C'è un tutorial in giro che mi sono perso? O posso ottenere aiuto con le udevregole che si applicano a qualsiasi dispositivo di archiviazione USB aggiunto? Attualmente nulla sembra fare nulla.


È possibile scrivere una regola udev per questo.
Barafu Albino,

Dai un'occhiata a questo: superuser.com/questions/305723/… dove RUN + = (posizione del file) è come viene letto credo.
No Time,

Risposte:


5

Questo è uno script automatizzato. Eseguilo come root. È possibile modificare il comando eseguito modificando /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

perché stai ripetendo la tua risposta e perché stai chiedendo a qualcuno di modificare il post?
Lynob,

@Fischer Come funziona?
Totti,

bene l'ho eseguito e dà SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit commandcosì che funzioni ma non riesco a trovare il file di registro in / tmp
Lynob

Codice aggiornato. /tmp/doOnUSBinsert.log per udev. /tmp/clamscanFromUdev.log per clamscan. Esegui rm /etc/udev/rules.d/80-doOnUSBinsert.rulesprima di eseguire lo script aggiornato.
Totti,

0

In System> Preferences> Removable Drives and Mediac'è una sezione per eseguire automaticamente un programma quando USB è collegato.

Qui aggiungi il seguente comando:

clamscan -r -z /media

clamscan -r -z /medianon esegue la scansione automaticamente, devo collegare l'USB ed eseguirlo dal terminale ... sul sistema, quale sistema? non c'è nessuna sezione chiamata systemsul mio xubuntu
Lynob

Nel trattino, digitare ibus. O in tipo terminale alacarte. Oppure si trova sotto il pulsante di spegnimento.

sono su Xubuntu, nessuna unità, nessun trattino. Desktop Xfce
Lynob,

Nessuna opzione del genere esiste in Ubuntu 15.04.
TRiG
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.