Wie scanne ich ein angeschlossenes USB-Speichergerät mit Clamav automatisch?

13

Ich möchte mit ClamAV einen automatischen Virenscan für jedes angeschlossene USB-Gerät durchführen. Ich benutze Ubuntu 12.04.

Das Nächste, was ich gefunden habe, war:

Der erste funktioniert bei mir nicht und der zweite scheint auf ein bekanntes Gerät abzuzielen.

Gibt es ein Tutorial, das ich verpasst habe? Oder kann ich Hilfe mit udevRegeln erhalten, die für jedes hinzugefügte USB-Speichergerät gelten? Derzeit scheint nichts etwas zu tun.

ossi
quelle
Sie können hierfür eine udev-Regel schreiben.
Barafu Albino
Schauen Sie sich dieses an: superuser.com/questions/305723/… wobei RUN + = (Speicherort der Datei) ist, wie es gelesen wird, glaube ich.
Keine Zeit,

Antworten:

5

Dies ist ein automatisiertes Skript. Führe es einfach als root aus. Sie können den ausgeführten Befehl durch Bearbeiten ändern /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
quelle
Warum wiederholen Sie Ihre Antwort und warum bitten Sie jemanden, den Beitrag zu bearbeiten?
Lynob
@Fischer Wie geht das?
Totti
SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit command
Nun,
Code aktualisiert. /tmp/doOnUSBinsert.log für udev. /tmp/clamscanFromUdev.log für clamscan. Führen Sie rm /etc/udev/rules.d/80-doOnUSBinsert.rulesvor dem Ausführen des aktualisierten Skripts aus.
Dienstag,
0

In System>Preferences > Removable Drives and Mediagibt es einen Abschnitt automatisch ein Programm zu starten , wenn USB angeschlossen ist.

Fügen Sie hier den folgenden Befehl hinzu:

clamscan -r -z /media

quelle
clamscan -r -z /mediascannt nicht automatisch, ich muss den usb anschließen und vom terminal ausführen ... über system, welches system? systemMein Xubuntu hat keinen Abschnitt aufgerufen
Lynob
Geben Sie im Bindestrich Folgendes ein ibus. Oder im Terminaltyp alacarte. Oder es ist unter der Schaltfläche zum Herunterfahren.
ich bin auf xubuntu, keine einheit, kein schlag. Xfce Desktop
Lynob
In Ubuntu 15.04 gibt es keine solche Option.
TRiG