是否可以在不重启服务器的情况下暂时禁用或阻止 Samba 共享?

是否可以在不重启服务器的情况下暂时禁用或阻止 Samba 共享?

我有一台 Linux 服务器,为某些 Windows 客户端上的用户托管单独的 Samba 共享(每个用户都有一个 Linux 客户端,也可以访问他们的共享)(用户在单独的设备上有身份验证器应用程序)。我希望这些共享能够使用保存的密码自动挂载,但我想在服务器上设置 TOTP,以便:

  1. 服务器会定期断开连接/阻止对 Samba 共享的访问。
  2. 在 Windows 客户端上访问的(可能是定制的)软件/网络应用程序会导致出现提示,让用户输入 TOPT 代码以发送到服务器进行验证。
  3. 输入代码将重新获得连接/访问共享的权限。

重要的是,客户端不会执行实际的断开/阻止操作,而是通过服务器完成。

我知道服务器上可能有一个脚本可以修改 Samba 配置,以删除/注释掉用户的共享并重新启动服务器(并计时以免与其他超时发生冲突),但我认为 Samba 服务器重新启动可能会对其他用户造成干扰(即使很短),并且有可能导致主动修改或传输的文件损坏。是否有一个 Samba 选项可以在重新加载配置后生效,而不是重新启动?

我无法控制客户端连接的 IP,因此我无法实施一些临时防火墙规则来阻止访问。

可以使用 ACL 完成此操作吗?这些共享包含数千个文件。是否可以将共享的根目录更改为其他所有者,并让其中的文件继承权限,而无需花时间等待所有文件的权限更新(我想避免指定超出共享根目录的路径来访问它,因为它的权限没有更改。)?

我想如果以上所有问题的答案都是“否”,我可以以不同的用户身份拥有 samba 共享,将 samba 共享的文件存储在另一个位置,从另一个位置对 samba 共享进行绑定挂载(而不是使用符号链接来减少与 selinux 的问题),然后随意卸载,因为实际的 samba 共享由具有限制性权限的不同用户拥有,会导致应用程序想要对其进行写入或读取时出现访问错误,但我不确定这种或任何其他可能性会如何影响活动文件传输、正在写入的应用程序或其他。

相关内容