我有一台运行 Ubuntu 和 Samba 的机器,我用它来与本地网络中的家人 Windows 机器共享内容。目前,他们与一位用户一起访问电影/音乐/等共享。
我想以不同的用户身份(例如,用户“goytacaz”)将它们连接到另一个共享。
当我尝试连接到这个新的共享时,Windows 给出“错误 1219”并抱怨同一用户的多个连接。
如何让我的机器接受同一用户的多个连接?
答案1
通过 Samba?应该不会有什么问题;只要用户名和密码正确,两个连接都应该正确进行。
更新:回复:“错误 1219”。这是客户端错误——Windows 每次只允许您以一个用户的身份连接到服务器。(请参阅Microsoft 文档:KB938120)这意味着 Windows 机器已经以不同的用户身份连接,因此您以正确的用户身份再次连接的尝试失败。
您需要先断开第一个连接,然后才能重新连接。我知道有两种方法可以做到这一点:
断开该服务器上所有登录时重新连接的网络驱动器。重新启动。重新连接到服务器并确保输入正确的用户名和密码。
使用净使用/删除来自 Windows 命令 shell 的命令(开始 -> 运行 -> cmd;在提示符下输入命令;您可能需要指定共享名称)。
更新 2:如果用户已经与一个用户一起连接到服务器,您将无法让他们与第二个用户连接。您必须重新考虑您的共享策略,并重新配置 Samba 以遵循该策略。(这不是您的错;我怪 Windows。)
就我个人而言,我坚持为每个人设置单独的用户,并考虑使用组来控制对共享的访问。如果您希望某些共享对每个人都具有读写访问权限,而其他共享对除少数用户以外的所有用户都是只读的,那么这种方法很有效。
更新 3:上面链接的 MS 文档提供了这两种解决方法,以便能够以独立用户身份连接到服务器。一般思路是,让 Windows 认为它正在使用不同的名称连接到不同的服务器。
使用第二个用户名连接时使用服务器的 IP 地址。(
\\ServerName\sharename
以第一个用户身份连接时使用,但\\X.X.X.X\sharename
以第二个用户身份连接时使用。)创建一个或多个 DNS 别名,供您使用第二个(第三个、第四个……)用户名连接时使用。(以第一个用户身份连接时使用,但以第二个用户身份连接时使用,以第三个用户身份连接时
\\ServerName\sharename
使用,等等。)\\ServerAlias1\sharename
\\ServerAlias2\sharename
答案2
这是针对 Windows 7 的解决方案(尽管也可能适用于其他版本)
以管理员身份打开记事本(或任何文本编辑器)
(您必须右键单击并说“以管理员身份运行”)找到:c:\WINDOWS\system32\drivers\etc\hosts(您需要显示所有文件,而不仅仅是 .txt)
现在,例如:
- 您有 3 个 samba 用户:汤姆·弗雷德·乔恩
- 您的 Samba 服务器上有 3 个 Samba 共享(即 IP:192.168.0.100):文档资料图片
- 您希望以 tom 身份连接到 docs、以 fred 身份连接到 stuff 并以 jon 身份连接到 pics
现在将以下几行添加到主办方文件:
192.168.0.100 tomsdocs tomsdocs
192.168.0.100 fredstuff fredstuff
192.168.0.100 jonspics jonspics
关闭并保存后,您可以像这样“映射网络驱动器”:
\\tomsdocs\docs as user tom
\\fredstuff\stuff as user fred
\\jonspics\pics as user jon
请注意,上述名称完全由您决定...无论您在 hosts 文件中输入什么,都需要与您在映射网络驱动器时所调用的服务器相匹配。
之所以有效,是因为 Windows 需要认为它正在连接到不同的服务器。可以说,您也可以设置自己的家庭 DNS 服务器,但我更喜欢在 hosts 文件中伪造一堆条目(在您的 Windows 计算机向 DNS 寻求帮助之前对其进行评估)。
由于整个问题都是客户端 Windows 问题,我更喜欢这样做。
希望这可以帮助。
答案3
如果您不想通过摆弄每个客户端来解决服务器问题,可以使用 smb.conf 文件为服务器设置名称别名。这还有一个好处,即每个别名在 Windows 网络中显示为不同的服务器。
编辑 smb.conf 文件并在 [global] 部分添加以下条目:
[global]
...
netbios aliases = alias1 alias2 readonly
重新启动 samba 后(记得重新启动 smbd 和 nmbd!)您应该能够在 Windows 资源管理器中使用 UNC 表示法访问新的服务器别名。
请注意,在我的网站上,重新启动 samba 后大约需要 1 分钟才能使它们正常工作。
一旦别名显示在 Windows 网络中,您就可以开始了。
答案4
我刚刚遇到了同样的问题。
对于一个用户我使用:\192.168.xx <-- ubuntu 服务器的 IP,对于另一个用户:\server-name <-- ubuntu 服务器的主机名。
这使得我可以使用不同的登录信息连接到 Windows 机器。