CIF,SMB-无法安装(权限被拒绝)或浏览共享文件夹


13

我最近遇到了这个问题。我通常通过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通用内核,而我的mount.cifs版本是6.4

关于如何使这两种方法之一起作用的任何想法吗?


更新 Rgarding 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)_

2号基本上是相同的:

_ 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没问题,但是我可以导航到用户中的共享文件夹。


尝试使用ponsfrilus的技巧3 vers=3.0,也许也可以vers=2.0vers=1.0。如果这不起作用,也许您可​​以允许服务器连接更多的smb版本。我自己遇到了这个问题,因为smb3是根据需要在服务器上设置的。在服务器将所需的samba版本降低到2之前,我无法与linux连接。服务器运行什么操作系统?
emk2203 '16

2
我尝试了所有这些。对于3.0、2.1和2.0,我仍然会“拒绝权限”。虽然我用1.0遇到“未知错误”。我不知道如何以用户身份检查Windows服务器版本,因为我没有直接访问它的权限。
Frankmtl

抱歉,无法为您提供帮助。我控制了服务器,放宽了允许的SMB版本后,问题消失了。您可以连接到自己的共享-linux配置错误的可能性很小;您可以通过Windows连接进行共享-服务器配置错误的可能性很小。这需要一个真正的桑巴大师。
emk2203 '16

Answers:


10

我敢肯定,我今天在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

感谢您在此处留下此评论,它对我有所帮助。
dleerob

也帮了我 看来mount -t cifs也遇到同样的问题
终端性

这就是我的问题。我已经有~/.smbcredentials文件了。我很震惊地发现我的本地NAS允许我在很长一段时间内使用错误的密码挂载共享。
查理

奇怪的是,我们需要指定域NetBIOS名称,而不是文件服务器的主机名。不过,它确实可以正常工作,非常感谢。
bviktor

9

我认为您的服务器安全类型错误,错误13表示服务器不允许您进入。

您需要在安装命令中通过-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

1
我尝试了所有这些选项,并且根据“ sec”类型收到“权限被拒绝”或“未知错误”
Frankmtl

考虑到SMB最近的所有安全问题,我只建议在有很多其他安全措施(例如最新的病毒检查)的地方使用它。
Amias '17

尝试使用sec = ntlmssp,并确保您的samba服务器配置对密码进行加密。
谦虚

拯救了我的一天。实际上,我所做的只是删除sec = ntlm,然后它起作用了。
chuckedw

这些天,您确实应该远离SMB,这几乎是攻击和特权升级的持续来源。
Amias

4
  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),请参阅samba wiki。从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
    

您可以共享的任何详细输出都可能会有所帮助。


谢谢您的回答。除了更新问题外,我没有找到其他更好的重播方法。您可以在更新中找到这些命令的输出
Frankmtl,2013年

@Frankmtl您可以比较docs1和docs5 fileshare1中的文件夹权限吗?
ponsfrilus

这么晚才回复很抱歉。如果您指的是我安装它们后的文件夹权限,则它们都具有drwxr-xr-x
Frankmtl

要访问Windows 2012服务器共享(smb2),必须 ,vers=2.1 在uid = 1000(又名行尾)之后添加。我还安装了“ cifs-utils”软件包。
laugeo

2

对于使用高于6.0的CIF时的此问题:CIF的新版本改用domain变量,因此Centialentials文件如下所示:

username=<your username>
password=<your password>
domain=<your domain>

对我来说,解决方案的确是前后都没有空格=
WM

2

将选项添加sec=ntlm到mount命令解决了我的问题。

例如:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.