我最近遇到了这个问题。我通常通过 smb 从 Linux 机器浏览本地网络共享文件夹(即从文件管理器使用 smb: )。现在,每当我尝试访问快捷方式或再次输入凭据时,我都会不断收到要求输入用户、域和密码的对话框窗口。
因此我尝试使用 cisf-utils 手动安装该位置:
sudo mount -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/used_shared/ -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
我明白了mount error(13): Permission denied
。
我确信我的用户对该文件夹有权限,因为我可以从 Windows 机器访问它。
另外,如果我尝试通过以下方式在该位置安装我的个人文件夹:
sudo mount -t cifs //fileshare1/docs5/francesco.azzarello/ /home/frank/mnt_folder -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
我可以毫无问题地访问它。
作为参考,我使用的是 4.2.0-36-generic 内核,我的 mount.cifs 版本是 6.4
关于如何使这两种方法中的一种发挥作用,您有什么想法吗?
更新关于 ponsfrilus 的答案
数字 1:详细选项返回:
_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,uid=1000,gid=1000,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_
第二个基本上是同样的事情:
_ mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_
vers=2.1 没有任何变化:
_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,vers=2.1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_
至于数字 4,我可以毫无问题地安装 docs1,但我可以导航到用户中的共享文件夹。
答案1
我很确定我今天在 Ubuntu 16.10 上遇到了同样的问题。我多次尝试了此线程中的所有建议,我可以使用 Windows Server 2016 安装完全相同的共享,并且可以使用 smbclient ( smbclient -U brainstrust //WINBOX01/shared
) 浏览它。我甚至尝试了外部凭据文件。
我最终偶然发现了一个解决方案 - 虽然我为 Windows 机器上的共享创建了一个本地用户,但它也加入了域。基本上将域设置为本地机器可以-o domain=WINBOX01
立即解决我的问题,所以在这里留下评论,希望它对那里的某些人有用。
我使用的完整最小命令是:
sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01 --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01
答案2
我认为您的服务器的安全类型错误,错误 13 表示服务器不允许您进入。
您需要在 mount 命令中选择正确的安全模式,并通过 -o 添加 sec 选项,如下所示[参考]:
sec=
Security mode. Allowed values are:
· none - attempt to connection as a null user (no name)
· krb5 - Use Kerberos version 5 authentication
· krb5i - Use Kerberos authentication and forcibly enable packet
signing
· ntlm - Use NTLM password hashing
· ntlmi - Use NTLM password hashing and force packet signing
· ntlmv2 - Use NTLMv2 password hashing
· ntlmv2i - Use NTLMv2 password hashing and force packet signing
· ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message
· ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message, and force packet signing
答案3
尝试添加“-v”选项以获取详细输出:
sudo mount -v -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/mnt_folder -o \ username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
使用这些选项对 mount 命令进行测试
iocharset=utf8,rw,file_mode=0777,dir_mode=0777:
sudo mount -v -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/mnt_folder -o username=my_user,password=my_pass,domain=my_domain,\ iocharset=utf8,rw,file_mode=0777,dir_mode=0777
测试指定 SMB 版本选项 (vers=2.1),请参阅桑巴维基. 来自 mount.cifs 手册页:
vers=
SMB 协议版本。允许的值为:1.0 - 经典 CIFS/SMBv1 协议。这是默认协议。
2.0 - SMBv2.002 协议。该协议最初在 Windows Vista Service Pack 1 和 Windows Server 2008 中引入。请注意,Windows Vista 的初始发行版本使用的方言 (2.000) 略有不同,不受支持。
2.1 – Microsoft Windows 7 和 Windows Server 2008R2 中引入的 SMBv2.1 协议。
3.0 - 在 Microsoft Windows 8 和 Windows Server 2012 中引入的 SMBv3.0 协议。
最后,尝试仅挂载第一个共享:
sudo mount -v -t cifs //fileshare1/docs1/ /home/frank/mnt_folder \ -o username=my_user,password=my_pass,domain=my_domain,\ iocharset=utf8,rw,file_mode=0777,dir_mode=0777
您分享的任何详细输出都可能会有帮助。
答案4
sec=ntlm
向 mount 命令添加选项解决了我的问题。
例如:
sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/