Clamav के साथ USB संग्रहण डिवाइस में किसी भी प्लग को ऑटो-स्कैन कैसे करें?


13

मैं ClamAV का उपयोग करके USB डिवाइस में किसी भी प्लग पर एक स्वचालित वायरस स्कैन करना चाहता हूं। मैं Ubuntu 12.04 का उपयोग कर रहा हूं।

निकटतम चीज़ जो मुझे मिली वह थी:

पहला मेरे लिए काम नहीं कर रहा है और दूसरा एक ज्ञात उपकरण को लक्षित करता है।

वहाँ एक ट्यूटोरियल है चारों ओर मैं याद किया है? या क्या मुझे udevनियमों के साथ कुछ मदद मिल सकती है जो किसी भी यूएसबी स्टोरेज डिवाइस पर लागू होती है? वर्तमान में कुछ भी करने के लिए कुछ भी नहीं लगता है।


आप इसके लिए एक udv नियम लिख सकते हैं।
बाराफू अल्बिनो

इसे एक बार देखें: superuser.com/questions/305723/… जहां RUN + = (फ़ाइल का स्थान) है कि यह कैसे पढ़ा जाता है मुझे विश्वास है।
कोई समय

जवाबों:


5

यह एक स्वचालित स्क्रिप्ट है। बस इसे जड़ के रूप में चलाएं। आप संपादन द्वारा निष्पादित कमांड को बदल सकते हैं /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

आप अपना उत्तर क्यों दोहरा रहे हैं और आप किसी से पोस्ट को संपादित करने के लिए क्यों पूछ रहे हैं?
लिंगोब

@ फ़िशर कैसे काम करता है?
योग

अच्छी तरह से मैंने इसे चलाया और यह SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit commandइतना काम करता है लेकिन मुझे लॉग फाइल / tmp में नहीं मिल रहा है
Lynob

कोड अपडेट किया गया। /tmp/doOnUSBinsert.log udev के लिए। /tmp/clamscanFromUdev.log क्लैमस्कन के लिए। rm /etc/udev/rules.d/80-doOnUSBinsert.rulesअद्यतन स्क्रिप्ट चलाने से पहले चलाएँ ।
totti

0

में System> Preferences> Removable Drives and Mediaवहाँ स्वचालित रूप से एक कार्यक्रम चलाने के लिए जब यूएसबी प्लग किया गया है एक खंड है।

यहाँ निम्न कमांड जोड़ें:

clamscan -r -z /media

clamscan -r -z /mediaस्वचालित रूप से स्कैन नहीं करता है, मुझे यूएसबी प्लग करना है और इसे टर्मिनल से चलाना है ... सिस्टम के बारे में, क्या सिस्टम? systemमेरे xubuntu
Lynob

डैश में, टाइप करें ibus। या टर्मिनल प्रकार में alacarte। या यह शटडाउन बटन के नीचे है।

मैं xubuntu पर हूँ, कोई एकता नहीं पानी का छींटा। Xfce डेस्कटॉप
Lynob

उबंटू 15.04 में ऐसा कोई विकल्प मौजूद नहीं है।
टीआरआईजी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.