Bagaimana cara memindai secara otomatis semua perangkat penyimpanan usb yang terpasang dengan clamav?

13

Saya ingin melakukan pemindaian virus otomatis pada perangkat usb yang terpasang menggunakan ClamAV. Saya menggunakan Ubuntu 12.04.

Hal terdekat yang saya temukan adalah:

Yang pertama tidak berfungsi untuk saya dan yang kedua tampaknya menargetkan perangkat yang dikenal.

Apakah ada tutorial di sekitar yang saya lewatkan? Atau bisakah saya mendapatkan bantuan dengan udevaturan yang berlaku untuk perangkat penyimpanan usb yang ditambahkan? Saat ini sepertinya tidak ada yang bisa dilakukan.

ossi
sumber
Anda dapat menulis aturan udev untuk ini.
Barafu Albino
Lihat yang ini: superuser.com/questions/305723/… di mana RUN + = (lokasi file) adalah bagaimana itu dibaca saya percaya.
Tidak Ada Waktu

Jawaban:

5

Ini adalah skrip otomatis. Jalankan saja sebagai root. Anda dapat mengubah perintah yang dijalankan dengan mengedit /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
sumber
mengapa Anda mengulangi jawaban Anda dan mengapa Anda meminta seseorang untuk mengedit posting?
Lynob
@ Fischer Bagaimana cara kerjanya?
totti
baik saya menjalankannya dan itu memberikannya SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit commandberfungsi tetapi saya tidak dapat menemukan file log di / tmp
Lynob
Kode Diperbarui. /tmp/doOnUSBinsert.log untuk udev. /tmp/clamscanFromUdev.log untuk clamscan. Jalankan rm /etc/udev/rules.d/80-doOnUSBinsert.rulessebelum menjalankan skrip yang diperbarui.
totti
0

Dalam System> Preferences> Removable Drives and Mediaada bagian untuk menjalankan secara otomatis program ketika USB dicolokkan.

Di sini tambahkan perintah berikut:

clamscan -r -z /media

sumber
clamscan -r -z /mediatidak memindai secara otomatis, saya harus mencolokkan usb dan menjalankannya dari terminal ... tentang sistem, sistem apa? tidak ada bagian yang dipanggil systemdi xubuntu saya
Lynob
Di dasbor, ketik ibus. Atau dalam tipe terminal alacarte. Atau itu di bawah tombol shutdown.
Saya menggunakan xubuntu, tidak ada kesatuan tanpa tanda hubung. Desktop Xfce
Lynob
Tidak ada opsi seperti itu di Ubuntu 15.04.
TRiG