cifs、smb - 无法挂载(权限被拒绝)或浏览共享文件夹

cifs、smb - 无法挂载(权限被拒绝)或浏览共享文件夹

我最近遇到了这个问题。我通常通过 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

  1. 尝试添加“-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
    
  2. 使用这些选项对 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
    
  3. 测试指定 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 协议。

  4. 最后,尝试仅挂载第一个共享:

    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/

相关内容