我们已经为 Samba 配置了受密码保护的共享文件夹。我们面临的问题是,允许多个用户使用同一个系统。例如,如果用户 A 首次使用系统 S1,系统会提示输入用户名和密码以访问 Samba 共享文件夹,而如果用户后来离开该位置,而用户 B 进入访问同一个系统(例如 S1),则不会要求输入密码。有什么方法可以解决这个问题?
笔记:
- 我知道这是因为持久连接而发生的。但是有没有什么方法可以从 samba 服务器本身控制持久连接?
- 是否可以通过禁用持久连接让 samba 服务器在每次访问时询问密码??
我希望有某种可行的方法,但我没有找到。我已经尝试了该deadtime
参数,但它只是关闭空闲连接并释放资源。也就是说,如果新用户来访问 samba 共享,则不会提示输入用户名和密码。
更新:
使用 ubuntu 和 windows 并且 samba 共享在 ubuntu 服务器 12.04 上运行。
从 ubuntu 访问 samba 共享时我没有遇到任何问题。使用共享后卸载共享时,它会第二次提示输入用户名和密码。
但是在 Windows 中,当我第一次访问 samba 共享时,第二次它不会提示输入用户名和密码,只是 samba 共享可以访问。
我只是希望 Windows 机器在用户每次关闭共享时都询问密码,而不是
net use * /delete
每次都这样做,而且我们不能命令用户每次都这样做。有没有办法阻止这种行为并让 samba 服务器每次通过 Windows 系统访问时都询问密码?
我想要修复的是,例如用户 A、B 和 C有密码凭证来访问 Samba 共享,其中用户 D、E 和 F无权访问 Samba 共享,但所有用户均有权使用同一系统系统A。
答案1
您正在利用Windows
客戶端,不是嗎?
嗯,我不认为这是持久连接,我认为这更像是缓存凭证客户端。为了避免这种情况,你必须调整你的客户端。直接引用这一页:
Samba 不控制客户端密码缓存。
域登录凭据的缓存是客户端活动。Windows 2000 Professional 和 Windows XP Profesional 客户端上有控制登录凭据缓存的注册表设置。
- 单击开始>运行>输入 gpedit.msc
- 检查计算机配置\Windows 设置\安全设置\本地策略\安全选项
- 检查“交互式登录:缓存的先前登录次数”(如果值设置为 0,则禁用缓存凭据)
还请检查.... - 计算机配置\管理模板\系统\登录 - 选中“在计算机启动和登录时始终等待网络”(确保未配置或禁用该选项)
但是,如果您正在使用 winbind,您可能还需要通过在 smb.conf 中添加以下内容来关闭 winbind 离线登录:
winbind 脱机登录 = false
编辑:
我还发现这个有趣的问题。你可以尝试放几个:
net use \\yourserver\oneofyourshares /delete
进入客户端上的用户自动启动,这样每当任何用户执行登录时,凭据都会被删除。还请查看这个答案。似乎可以Windows
通过以下方式停止每次共享缓存凭证:
net use \\a.b.c.d\sharename /user:domain\otheruser /persistent:no
但对于你的任务来说,可能这就足够了,例如:
net use \\yourserver\yourshare /persistent:no
甚至:
net use /persistent:no
找到最适合您需求的那个并尝试将其放入自动启动(或注册表项中run
)。
答案2
你的问题是用户A和用户B使用相同的用户名在S1!
因为如果他们使用不同的用户名,他们肯定会被要求输入密码提示。
无论如何,解决你的情况的方法是卸载完成工作后,samba share 即可使用。鹦鹉螺点击喷射按钮。
另一个解决方法是为系统添加新用户S1什么时候用户A完成工作后,他可以简单地注销,以便用户B无法访问用户A的股份