Takılı herhangi bir usb depolama aygıtını clamav ile otomatik olarak nasıl tarayabilirim?


13

ClamAV kullanarak takılı herhangi bir usb cihazında otomatik virüs taraması yapmak istiyorum. Ubuntu 12.04 kullanıyorum.

Bulduğum en yakın şey:

Birincisi benim için çalışmıyor ve ikincisi bilinen bir cihazı hedefliyor gibi görünüyor.

Etrafımda kaçırdığım bir eğitim var mı? Yoksa udeveklenen herhangi bir usb depolama aygıtına uygulanan kurallar hakkında yardım alabilir miyim ? Şu anda hiçbir şey bir şey yapmıyor gibi görünüyor.


Bunun için bir udev kuralı yazabilirsiniz.
Barafu Albino

Şuna bir göz atın: superuser.com/questions/305723/… Burada RUN + = (dosyanın konumu) nasıl okunduğuna inanıyorum.
Zaman Yok

Yanıtlar:


5

Bu otomatik bir komut dosyasıdır. Sadece kök olarak çalıştırın. Düzenleyerek yürütülen komutu değiştirebilirsiniz /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

neden cevabınızı tekrarlıyorsunuz ve neden birinden postayı düzenlemesini istiyorsunuz?
Lynob

@Fischer Nasıl çalışır?
totti

iyi koştum ve o SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit commandyüzden çalışır ama verir / tmp günlük dosyasını bulamıyorum
Lynob 31:14

Kod Güncellendi. udev için /tmp/doOnUSBinsert.log. /tmp/clamscanFromUdev.log için istiridye. rm /etc/udev/rules.d/80-doOnUSBinsert.rulesGüncellenmiş komut dosyasını çalıştırmadan önce çalıştırın.
totti

0

In System> Preferences> Removable Drives and MediaUSB takıldığında otomatik olarak bir program çalıştırmak için bir bölümü vardır.

İşte aşağıdaki komutu ekleyin:

clamscan -r -z /media

clamscan -r -z /mediaotomatik olarak tarama yapmazsa, usb'yi fişe takıp terminalden çalıştırmam gerekir ... sistem hakkında, hangi sistem? systembenim
xubuntu

Kısa çizgi içine yazın ibus. Veya terminal tipinde alacarte. Veya kapatma düğmesinin altındadır.

xubuntu'dayım, birlik yok çizgi yok. Xfce masaüstü
Lynob

Ubuntu 15.04'te böyle bir seçenek yoktur.
TRiG
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.