【问题标题】:getting authentication error on mount_smbfs在 mount_smbfs 上出现身份验证错误
【发布时间】:2013-01-02 13:06:33
【问题描述】:

我正在尝试使用 mount_smbfs 将文件从 MAC 复制到 Windows。但是,我收到了身份验证错误。它说“服务器拒绝连接:身份验证错误”。我正在写正确的用户名和密码,但问题没有改变。下面是我的代码。

NSTask* task = [[NSTask alloc] init];
[task setLaunchPath:@"/sbin/mount_smbfs"];
[task setArguments:[NSArray arrayWithObjects:@"//user:50000@smb://192.168.2.1/Share",@"/Users/Shared", nil]];
[task launch];

您能帮我解决这个问题吗?

【问题讨论】:

  • 可能不相关,但@"Users/Shared"中不应该有一个初始斜线吗?
  • @MartinR 我在原始代码中编辑了我的代码,有一个初始斜线你是对的!
  • 虽然这里有代码,但这个问题并不是真正的编程问题,而是关于如何正确使用mount_smbfs。这使它更适合 apple.se 或超级用户。

标签: objective-c macos cocoa authentication mount


【解决方案1】:

来自this page - 您需要将工作组指定为连接的一部分,否则您总是会收到身份验证错误。

所以连接字符串应该是:

//WORKGROUP;user:50000@192.168.2.1/Share

...假设50000是用户user的密码

请记住,这是您正在使用的 URL,因此请确保在将用户名和密码嵌入字符串之前对其进行 URL 转义,否则可能会被误解。

如果您要连接到未加入域的系统,那么 WORKGROUP 值几乎是任意的,并且往往会被忽略连接。这对于加入域的系统可能很重要,因为用户名是 DOMAIN\username,但是当您连接到非域系统时,DOMAIN\ 部分在检查用户凭据时会被忽略。

【讨论】:

  • 它只需要存在字符串 - 我认为您实际上不需要在那里拥有服务器的工作组。我可以使用相同的字符串连接到具有不同工作组值的任意 samba 系统
  • WORKGROUP 唯一可能成为问题的是加入域的系统
  • 我试过了,我没有收到身份验证错误,但文件也没有被复制。我收到错误服务器连接失败:没有根主机。
  • 如果您将文件复制到远程系统,您需要确保远程共享允许写入以及读取。
  • 我的原始答案中有一个错字,您不得在连接字符串中包含@smb://,如果您这样做,那么它会尝试连接到一个名为 @ 的系统987654330@
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 2018-05-02
  • 2018-07-07
  • 1970-01-01
  • 2014-12-22
相关资源
最近更新 更多