파일 시스템에서 사용자의 작업을 모니터링하고 특정 작업을 수행하지 못하도록 방지할 수 있습니까? Inotify는 파일 시스템에서 모니터링 작업만 할 수 있나요? 팬티파이는 어떻습니까? 온라인에는 이에 대한 정보가 거의 없습니다...
내 프로그램(데몬)이 네트워크를 통해 특정 파일을 보냅니다. 나는 이 사용자가 내 파일을 삭제하거나 이동하지 않고 읽을 수 있는지 확인하고 싶습니다. 사용자가 예를 들어 다음과 같은 프로그램을 사용하여 내 파일을 삭제하려고 할 때. unlink() 이 unlink() 호출이 일부 오류(EACCES?)로 인해 실패하길 원합니다. FUSE에서 비슷한 트릭을 수행하여 파일 시스템을 구현할 수 있지만 여기서는 이것이 해결책이 아닙니다.
답변1
귀하가 요구하는 사항은 기존 UNIX 권한을 통해 쉽게 달성할 수 있습니다. 사용자가 파일이 저장된 디렉토리에 액세스할 수 있지만 파일에 쓸 수는 없는지 확인하십시오( r-x
디렉토리 및 해당 상위 항목에 대한 권한). 사용자에게 파일에 대한 읽기 권한을 부여하지만 쓰기 권한은 부여하지 않습니다(사용자가 파일을 수정할 수 없다고 가정). 즉, r--
디렉터리에 대한 쓰기 권한이 없으므로 사용자는 파일을 삭제할 수 없습니다.
모니터링은 도움이 되지 않습니다. 사용자가 파일을 삭제했음을 알 수 있지만 이 작업을 모니터링하는 것만으로는 삭제를 방지할 수 없습니다.
답변2
Gilles가 좋은 제안을 했지만, 또 다른 옵션(예: 디렉터리 권한을 제어할 수 없는 경우)은 파일에 불변 플래그를 설정하는 것입니다 chattr +i
.어느사용자가 문제의 파일을 쓰거나 삭제했습니다. 이를 위해서는 루트 액세스가 필요합니다.