특정 콘텐츠(예: 체크섬으로 제공)가 포함된 파일이 로컬 파일 시스템에 생성될 때 어떻게 이벤트를 캡처할 수 있나요?

특정 콘텐츠(예: 체크섬으로 제공)가 포함된 파일이 로컬 파일 시스템에 생성될 때 어떻게 이벤트를 캡처할 수 있나요?

나는 사용자가 워크스테이션의 하드 드라이브(내가 관리함)에 특정 콘텐츠가 포함된 파일을 쓸 때 실시간으로 이벤트를 추적하는 일종의 트립와이어 보안 메커니즘을 구현하고 싶습니다.

그렇지 않으면 훌륭하다로깅 파일 시스템파일 내용은 모니터링할 수 없고 파일 이름만 모니터링할 수 있습니다.

다른 어떤 옵션이 있나요? 실시간 바이러스 백신 소프트웨어에서 사용하는 것과 비슷한 것이 필요하다고 생각합니다.

PS btrfs를 사용하고 리프 블록 체크섬에 의존할 수 있습니다. 그러나 나는 좀 더 일반적인 해결책을 선호합니다.

답변1

Linux에서는 패키지를 설치하고 구성을 편집하여 이 inotify메커니즘을 설정할 수 있습니다.incronincron

/etc/incron.conf
system_table_dir=/etc/incron.d
user_table_dir=/var/spool/incron
allowed_users=/etc/incron.allow
denied_users=/etc/incron.deny
lockfile_dir=/var/run
logfile_name=incrond
editor=vi

그런 다음 다음에서 시계를 구성하십시오 /etc/incron.d/myscriptwatch.

/path/to/dir IN_CLOSE_WRITE,IN_MOVED_TO /path/to/check_content_script.sh $@ $#

/path/to/check_content_script.sh다음 단계는 파일이 어떻게 처리되고 있는지 확인하도록 설정하는 것입니다 .

CURRSUM=$(md5sum $@)
PREVSUM=$(cat /path/to/old_saved_sum)

if [ "$CURRSUM" = "$PREVSUM" ]
then
   echo "file $@ is not altered" >> /tmp/watch_log
else
   echo "file $@ is altered" >> /tmp/watch_log
fi

또한 다른 이벤트를 모니터링하여 파일이 변경되었는지 확인할 수도 있습니다.IN_CLOSE_WRITE,IN_ATTRIB,IN_MODIFY

man 5 incrontab자세한 내용은 참조하십시오 .

관련 정보