clamav를 사용하여 연결된 USB 저장 장치를 자동 스캔하는 방법은 무엇입니까?


13

ClamAV를 사용하여 연결된 모든 USB 장치에서 자동 바이러스 검사를 수행하고 싶습니다. 우분투 12.04를 사용하고 있습니다.

내가 찾은 가장 가까운 것은 :

첫 번째는 나를 위해 작동하지 않으며 두 번째는 알려진 장치를 대상으로하는 것 같습니다.

내가 놓친 주위에 자습서가 있습니까? 아니면 udev추가 된 USB 저장 장치에 적용되는 규칙에 대한 도움을받을 수 있습니까? 현재 아무것도 아무것도하지 않는 것 같습니다.


이를 위해 udev 규칙을 작성할 수 있습니다.
Barafu Albino

이 중 하나를 확인하십시오 : 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

왜 답을 되풀이하고 다른 사람이 게시물을 편집하도록 요청합니까?
Lynob

@Fischer 어떻게 작동합니까?
totti

잘 나는 그것을 실행하고 SUBSYSTEM=="usb", ACTION=="add", RUN+="/usr/bin/doOnUSBinsert & " Rule Successfully added. See file "/usr/bin/doOnUSBinsert" to edit command그것이 작동하도록하지만 작동하지만 / tmp에서 로그 파일을 찾을 수 없습니다
Lynob

코드 업데이트. udev의 경우 /tmp/doOnUSBinsert.log clamscan의 경우 /tmp/clamscanFromUdev.log rm /etc/udev/rules.d/80-doOnUSBinsert.rules업데이트 된 스크립트를 실행 하기 전에 실행하십시오.
totti

0

에서가 System> Preferences> Removable Drives and MediaUSB를 연결하면 자동으로 프로그램을 실행하는 섹션이 있습니다.

다음 명령을 추가하십시오.

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.