Samba:已连接的客户端不受组/共享/用户访问更改的影响

Samba:已连接的客户端不受组/共享/用户访问更改的影响

我们正在尝试解决我们认为的 Samba 服务器行为问题。请理解,我们并不是说这是 Samba 中的错误。它只是与我们想要的行为不同。

我们的 Samba 服务器是版本 3.5.4(版本 68.el6),运行在 CentOS 6.0(x86_64)下。我们恰好使用 Active Directory (AD) 进行身份验证,但我不确定这种行为是否是 AD 所特有的。

接下来是对不良行为的概括性陈述,首先提供一系列事件的背景:

  1. CIFS 客户端建立(并维护)与我们的 Samba 服务器上的 CIFS 共享的连接。
  2. 建立该连接后,将进行配置更改(示例如下),我们认为这应立即撤销 CIFS 客户端对所连接 CIFS 共享的访问权限。例如:
    • 从域中删除 Active Directory 用户(通过域控制器上的 Active Directory 管理中心)。
    • Active Directory 用户已从 CIFS 共享的允许用户列表中删除(在 Samba 服务器主机上)。
    • CIFS 共享已被删除(在 Samba 服务器主机上)。

这是不受欢迎的行为。只要 CIFS 客户端保持与 CIFS 共享的现有连接,对该共享的访问就不会被撤销。也就是说,用户继续拥有与首次建立连接时相同的共享访问权限。FWIW,我们相信这种行为是设计使然。

理想的行为是,一旦与访问权限相关的“配置更改”完成,就立即撤销访问权限。断开受影响的客户端会话是可以接受且适当的,但断开其他会话是不理想的。

我想听听你对实现所需行为的方法的想法。也许这就像更改我们的 Samba 服务器配置一样简单;我们尚未发现任何与此行为相关的配置参数。看来,检测访问权限是否被撤销是这一切中最困难的部分。

答案1

我很确定目前这是不可能的,至少不能使用 Samba 本身内置的功能。

解决方法可以是类似 cronjob 的东西,它定期检查计算机上的所有 smbd 进程是否来自有效用户,方法是解析实用smbstatus程序的输出以检查登录的用户以及为他们提供服务的进程,并根据 AD 中的用户验证这些进程。然后,您可以使用该信息终止不再有效的用户的任何进程。

相关内容