我们正在尝试设置基于 Unix 的服务器,并且正在尝试找出是否有任何方法可以禁止在服务器上创建某些文件。
我的意思是这样的文件:.DS_Store
, .BridgeCache
, .BridgeCachet
, .BridgeCacheT
, .BridgeSort
, ._.BridgeCache
, ._.BridgeCacheT
, Thumbs.db
, .Parent
, ._TemporaryItems
& 文件夹,如.AppleDouble
, .AppleDB
, .AppleDesktop
, .TemporaryItems
.
我们每天晚上都会考虑cron
哪个会删除这些文件,但更好的解决方案是完全禁止这些文件存在于我们的服务器上。
有什么解决办法吗?
答案1
哪个Unix?当传递“无效”名称时,文件创建会失败,这是相当困难的,但是有一些特定于平台的方法可以做到这一点。
首先,有它inotify
及其亲戚,它至少可以观察文件系统并在创建文件时立即通知您。我不确定您是否真的可以停止创建并使系统调用返回错误,但您可以立即摆脱它。
另一种方法是基于熔丝的文件系统(预先存在的或新编写的)。在 中fuse
,您实际上在用户空间中实现了所有文件系统过程,并且您可以制定自己的规则文件是什么以及如何调用它。
当然,所有这一切都取决于您是否有本地文件系统、远程安装的系统、某种网络传输协议?
这可能是相关的:
https://stackoverflow.com/questions/8588386/intercepting-file-system-system-calls