接続されたUSBストレージデバイスをclamavで自動スキャンする方法は?


13

ClamAVを使用して、接続されたUSBデバイスで自動ウイルススキャンを実行したいと思います。Ubuntu 12.04を使用しています。

私が見つけた最も近いものは:

最初のものは私のために機能しておらず、2番目のものは既知のデバイスをターゲットにしているようです。

私が見逃した周辺のチュートリアルはありますか?または、udev追加されたUSBストレージデバイスに適用されるルールに関するヘルプを入手できますか?現在、何も何もしないようです。


このために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

なぜあなたは答えを繰り返しているのですか、なぜ誰かに投稿の編集を依頼しているのですか?
リノブ

@Fischerどのように機能しますか?
トッティ

よく私はそれを実行し、それが与えSUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit command、それが動作しますので、私は中に/ tmpのログファイルを見つけることができません
Lynob

コードが更新されました。/dev/doOnUSBinsert.log for udev。clamscanの/tmp/clamscanFromUdev.log。rm /etc/udev/rules.d/80-doOnUSBinsert.rules更新されたスクリプトを実行する前に実行します。
トッティ

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.