如何使用clamav自动扫描任何插入的USB存储设备?


13

我想使用ClamAV对插入的任何USB设备进行自动病毒扫描。我正在使用Ubuntu 12.04。

我发现的最接近的东西是:

第一个不适用于我,第二个似乎针对已知设备。

我错过了周围的教程吗?还是可以获取udev适用于添加的任何USB存储设备的规则的帮助?目前似乎什么也没做。


您可以为此编写一个udev规则。
Barafu Albino 2014年

请查看以下内容:superuser.com/questions/305723/…我相信其中RUN + =(文件的位置)是读取方式。
No Time

Answers:


5

这是一个自动化脚本。只需以root身份运行它。您可以通过编辑更改执行的命令/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

为什么要重复回答,为什么要请人编辑帖子?
Lynob 2014年

@Fischer它是如何工作的?
托蒂2014年

好吧,我运行了它,它SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit command可以正常工作,但是我在/ tmp中找不到日志文件
Lynob,2014年

代码已更新。/tmp/doOnUSBinsert.log用于udev。/tmp/clamscanFromUdev.log中的clamscan。运行rm /etc/udev/rules.d/80-doOnUSBinsert.rules运行更新的脚本之前。
托蒂2014年

0

System> Preferences> Removable Drives and Media有当USB插入时自动运行的程序的一部分。

在这里添加以下命令:

clamscan -r -z /media

clamscan -r -z /media不会自动扫描,我必须插入USB并从终端运行它...关于系统,什么系统?有没有所谓的部分system在我的Xubuntu
Lynob

在破折号中,键入ibus。或终端类型alacarte。还是在关机按钮下。

我在xubuntu上,不团结不破折号。Xfce桌面
Lynob

Ubuntu 15.04中不存在此类选项。
TRiG
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.