mount error(13): Permission denied CIFS VFS: cifs_mount failed w/return code = -13

在VMWare内安装了CentOS7,想要访问宿主windows系统中共享文件夹内的文件。在Windows系统中已经将共享文件夹共享给了Everyone。在CentOS7中通过systemctl stop firewalld.service(注意是firewalld,不是firewall哦)关闭了防火墙,CentOS7中能成功ping通宿主计算机。而且在视窗下能访问到对应的共享文件夹(具体操作是:打开文件夹管理视窗,点击左侧的“连接到服务器”,在弹出的窗口中输入smb://IP地址/共享文件夹名,点连接,按照提示输入Windows的用户名、密码,域默认即可),但是在终端内用命令进行通过挂载的方式(mount -t cifs -o username="****",password="****" //IP/tools /mnt/MyShare)怎么操作都不成功,总是提示 以下之类的错误。

mount error(13): Permission denied

CIFS VFS: cifs_mount failed w/return code = -13

最后终于在一篇文章中看到了一种解决办法,把命令修改了一下:

mount -t cifs -o username="****",password="****",iocharset=utf8,sec=ntml //IP/tools /mnt/MyShare

重新执行,不报错了。执行完用ls命令也能看到共享文件夹的内容了。真高兴。

抱着必须搞清楚原因的心态,分析了一下新增加的2个参数iocharset和sec,猜想主要是由于sec参数起的作用,于是用man mount cifs命令查看了一下,又百度,最后在http://www.jinbuguo.com/man/mount.cifs.html文章的介绍中了解到了sec的相关情况,如下:

sec={none|krb5|krb5i|ntlm|ntlmi|ntlmv2|ntlmv2i}
              选择安全模型:
                  none 尝试以空用户连接(不提供用户名)
                  krb5 使用 Kerberos version 5 认证
                  krb5i 使用 Kerberos version 5 和包签名(packet signing)认证
                  ntlm 使用 NTLM 口令散列认证(默认值)
                  ntlmi 使用 NTLM 签名口令散列认证
                         (如果 /proc/fs/cifs/PacketSigningEnabled 被开启或者服务器端要求必须签名时,这个将成为默认值)
                  ntlmv2 使用 NTLMv2 口令散列认证
                  ntlmv2i 使用 NTLMv2 签名口令散列认证

为了验证自己的想法,用umount命令进行卸载,然后用以下命令:

mount -t cifs -o username="****",password="****",sec=ntlm //IP/tools /mnt/MyShare

执行,成功。

特此记录,防止后期忘记


备忘:

smb为Server Message Block协议的简称,是一种IBM协议,运行在TCP/IP协议之上。

从Windows 95开始,Microsoft Windows都提供了Server和Client的SMB协议支持,Microsoft为Internet提供了SMB开源版本,及CIFS(Common Internet File System),通用文件系统。


猜你喜欢

转载自blog.csdn.net/zougfang/article/details/79728259