Jak automatycznie skanować dowolne podłączone urządzenie pamięci USB za pomocą Clamav?


13

Chciałbym wykonać automatyczne skanowanie antywirusowe na dowolnym podłączonym urządzeniu USB za pomocą ClamAV. Używam Ubuntu 12.04.

Najbliższą rzeczą, jaką znalazłem, było:

Pierwszy nie działa dla mnie, a drugi wydaje się być celem znanego urządzenia.

Czy jest jakiś samouczek, który przegapiłem? Czy mogę uzyskać pomoc dotyczącą udevreguł mających zastosowanie do dowolnego dodanego urządzenia pamięci USB? Obecnie wydaje się, że nic nie robi.


Możesz do tego napisać regułę udev.
Barafu Albino

Sprawdź to: superuser.com/questions/305723/... gdzie RUN + = (lokalizacja pliku) to sposób, w jaki jest czytany.
Nie ma czasu,

Odpowiedzi:


5

To jest skrypt automatyczny. Po prostu uruchom go jako root. Możesz zmienić polecenie wykonane przez edycję /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

dlaczego powtarzasz swoją odpowiedź i dlaczego prosisz kogoś o edycję postu?
Lynob

@Fischer Jak to działa?
totti

dobrze, uruchomiłem go i daje, SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit commandwięc działa, ale nie mogę znaleźć pliku dziennika w / tmp
Lynob

Kod zaktualizowany. /tmp/doOnUSBinsert.log dla udev. /tmp/clamscanFromUdev.log dla clamscan. Uruchom rm /etc/udev/rules.d/80-doOnUSBinsert.rulesprzed uruchomieniem zaktualizowanego skryptu.
totti

0

W System> Preferences> Removable Drives and Mediaistnieje punkt do automatycznego uruchamiania programu po USB jest podłączony.

Dodaj następujące polecenie:

clamscan -r -z /media

clamscan -r -z /medianie skanuje automatycznie, muszę podłączyć USB i uruchomić go z terminala ... o systemie, jaki system? systemna moim
xubuntu

W myślniku wpisz ibus. Lub w typie terminala alacarte. Lub znajduje się pod przyciskiem zamykania.

Jestem na Xubuntu, bez jedności, bez kreski. Pulpit Xfce
Lynob

W Ubuntu 15.04 nie ma takiej opcji.
TRiG
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.