디스크/디렉토리에 대한 모든 액세스를 기록할 수 있습니까?

디스크/디렉토리에 대한 모든 액세스를 기록할 수 있습니까?

일부 디스크나 디렉터리에 대한 모든 액세스를 기록(콘솔이나 파일에 출력)하는 스크립트가 필요합니다. 또한 정확히 무엇(어떤 하위 디렉터리 또는 파일)에 액세스했는지 알고 싶습니다. 내 시스템은 우분투 리눅스입니다. 가능합니까? 어떻게 할 수 있습니까?

답변1

inotify를 살펴보세요. 이것이 바로 이 프로그램이 만들어진 이유입니다. IBM은 절반 정도의 소개를 했습니다(다소 구식이긴 하지만).http://www.ibm.com/developerworks/linux/library/l-inotify.html

답변2

간단한 필터 스크립트를 사용하여 단일 프로그램 strace의 동작을 모니터링하는 것이 원하는 경우 SElinux의 "auditd"를 보다 일반적으로 살펴보십시오.

http://en.wikipedia.org/wiki/Strace http://linux.die.net/man/8/auditd

Windows 쪽에서는 SysInternals 직원의 filemon을 살펴보세요.

http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx

답변3

당신이 사용할 수있는증분, 이는 inotify의 파일 시스템 이벤트에 대한 cron과 유사한 도구입니다.

IN_ACCESS 이벤트가 발생할 때마다 실행될 동작을 정의할 수 있습니다.

구성은 cron만큼 쉽습니다.

<path> <mask> <command>

어디:

  • <path>파일 시스템 경로입니다(각 공백 앞에는 백슬래시가 추가되어야 함).
  • <mask>이벤트에 대한 기호(inotify.h 참조, 기호 구분에 쉼표 사용) 또는 숫자 마스크입니다.
  • <command>이벤트에서 실행할 애플리케이션 또는 스크립트입니다.

답변4

정말로 큰 출력을 보고 싶다면 auditd를 사용할 수 있습니다. 그러나 파일에 대한 액세스는 해당 내용을 로그 파일에 인쇄하는 것을 의미하므로 파일에 인쇄하려는 경우 무한 루프가 발생할 수 있습니다. 로그 파일에 인쇄하는 것은 파일에 대한 액세스이기도 하므로 로그 파일에도 인쇄되어야 합니다. 그러니 조심해.

무한 루프가 없더라도 이것이 인쇄할 데이터의 양은 정말 커야 합니다. 질문을 이 모니터링을 통해 달성하려는 것으로 변경하면 사람들이 모든 파일에 대한 액세스를 기록하는 것보다 더 나은 방법을 제안할 수 있습니다.

관련 정보