Samba:防止意外、递归大量删除文件

Samba:防止意外、递归大量删除文件

我在 Ubuntu 18.04 上共享一些文件夹,以便可以从 Windows 客户端对它们进行读/写访问。

文件结构:

myshare/
  dir1/
     somefile1.txt
     somefile2.txt
  dir2/
  dir3/

samba 客户端对里面的文件有读/写/创建/删除的权限dir1

我遭遇了一次意外的用户事故:一名用户击中了删除dir1,里面的所有文件都dir1被删除了。

我无法应用可以防止这种情况发生的权限设置。这一切似乎都归结于 Samba 客户端如何实现文件夹结构的删除,它们通过列出文件夹内容然后从目录树的最深层递归地逐个执行文件删除来实现。

底线:在服务器端,我没有机会区分允许的单个文件删除和不需要的、完整的、递归的文件夹删除。

我是否遗漏了什么?

我想到过两个办法,但没能找到解决办法:

  1. 我可以在其中放置一个文件dir1,导致 Samba 客户端中止批量删除操作吗?我曾经成功地放置了一个不可删除的文件dir1成功似乎是随机的。

  2. 我注意到,如果我创建dir1共享的根目录,上述风险就消失了。如果用户随后按下删除键,dir1操作将被拒绝,这是完美的。但将dir1dir2dir3作为单独的共享并不能很好地扩展。我希望用户只有一个接入点/myshare。但有没有办法让它dir1像共享一样运行(这样客户端可以浏览它但不能删除它)但仍然出现在里面/myshare

仅适用于 Windows 文件资源管理器客户端的解决方案是可以接受的。

相关内容