কীভাবে ক্ল্যামভের সাথে ইউএসবি স্টোরেজ ডিভাইসযুক্ত কোনও প্লাগ ইন স্বয়ংক্রিয়ভাবে স্ক্যান করবেন?


13

আমি ক্ল্যামএভি ব্যবহার করে ইউএসবি ডিভাইসে যে কোনও প্লাগ ইন করাতে একটি স্বয়ংক্রিয় ভাইরাস স্ক্যান করতে চাই। আমি উবুন্টু 12.04 ব্যবহার করছি।

আমি যে নিকটতম জিনিসটি পেয়েছি তা হ'ল:

প্রথমটি আমার পক্ষে কাজ করছে না এবং দ্বিতীয়টি কোনও পরিচিত ডিভাইসটিকে লক্ষ্য করে বলে মনে হচ্ছে।

আমি কি মিস করেছি তার আশেপাশে কোনও টিউটোরিয়াল আছে? বা যুক্ত udevহওয়া কোনও ইউএসবি স্টোরেজ ডিভাইসে প্রযোজ্য নিয়মগুলির সাথে আমি কিছু সহায়তা পেতে পারি ? বর্তমানে কিছুই করার কিছু মনে হচ্ছে না।


আপনি এই জন্য একটি udev নিয়ম লিখতে পারেন।
বড়ফু আলবিনো

এটি পরীক্ষা করে দেখুন: 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/doOnUSBinsert.log udev এর জন্য। /tmp/clamscanFromUdev.log ক্ল্যামস্ক্যানের জন্য। rm /etc/udev/rules.d/80-doOnUSBinsert.rulesআপডেট হওয়া স্ক্রিপ্টটি চালানোর আগে চালান ।
টোট্টি

0

ইন System> Preferences> Removable Drives and Mediaসেখানে স্বয়ংক্রিয়ভাবে একটি প্রোগ্রাম চালানো যখন ইউএসবি প্লাগ ইন করা আছে একটি অধ্যায়।

এখানে নিম্নলিখিত কমান্ড যুক্ত করুন:

clamscan -r -z /media

clamscan -r -z /mediaস্বয়ংক্রিয়ভাবে স্ক্যান করে না, আমাকে ইউএসবি প্লাগ করে টার্মিনাল থেকে চালাতে হবে ... সিস্টেম সম্পর্কে, কোন সিস্টেম? systemআমার এক্সবুন্টুতে কোনও বিভাগ বলা হয়নি
লিনব

ড্যাশ এ, টাইপ করুন ibus। বা টার্মিনাল টাইপ alacarte। অথবা এটি শাটডাউন বোতামের নিচে।

আমি এক্সুবুন্টু, কোন unityক্য না ড্যাশ। এক্সএফসি ডেস্কটপ
লিনব

উবুন্টু ১৫.০৪-তে কোনও বিকল্প নেই exists
ট্রাইজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.