安装错误13 =权限被拒绝


44

我的一台服务器设置为使用fstab自动挂载Windows目录。但是,在我上次重启后,它停止了工作。fstab中的行是:

//myserver/myfolder /mnt/backup cifs credentials=home/myfolder/.Smbcredentials

.Smbcredentials文件是:

username=myaccount
password=mypassword
domain=mydomain

我做了mount -a,我收到了mount error 13 = Permission denied。如果我做的足够多,它将锁定我的Windows帐户,所以我知道它正在尝试。我检查了密码是否正确。

我究竟做错了什么?


4
您可以尝试从命令行中使用mount mount -t cifs //myserver/myfolder /mnt/backup --verbose -o credentials=home/myfolder/.Smbcredentials并将调试信息(已清理)添加到您的问题中吗?
bsd 2014年

cifs-utils您已经安装了什么发行版和版本?我以前遇到过此问题,我认为这是由于更新造成的。
slm

Answers:


44

有几件事要检查。我做类似的事情,您可以使用mount命令直接测试安装,以确保安装正确。

凭证文件的权限

确保该文件是正确的权限。

$ sudo ls -l /etc/smb_credentials.txt 
-rw-------. 1 root root 54 Mar 24 13:19 /etc/smb_credentials.txt

详细安装

您可以mount通过使用-v开关来获取更多信息,该开关通常会向您显示发生故障的地方。

$ sudo mount -v -t cifs //server/share /mnt \
    -o credentials=/etc/smb_credentials.txt

如果此输出有效,则结果为:

mount.cifs kernel mount options: ip=192.168.1.14,unc=\\server\share,credentials=/etc/smb_credentials.txt,ver=1,user=someuser,domain=somedom,pass=********

检查日志

运行上面的mount命令后,请查看您的dmesg和/ /var/log/messages/var/log/syslog文件中的内容,以查看尝试使用时可能已生成的任何错误消息mount

证券类型

您可以通过-o ..安装开关传递许多其他选项。这些选项是特定于技术的,因此在您的情况下,它们mount.cifs特别适用。查看mount.cifs手册页,以获取有关您可以传递的所有选项的更多信息。

我怀疑您缺少的选择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

       The default in mainline kernel versions prior to v3.8 was sec=ntlm. 
       In v3.8, the default was changed to sec=ntlmssp.

您可能需要调整sec=...选项,使其为sec=ntlmsec=ntlmssp

参考文献


1
检查dmesg非常有帮助。这个答案是从2014年开始的,此后,由于SMB1.0的WannaCry漏洞已被弃用,因此请确保添加vers=2.0或2.1或3.0(无论服务器支持什么),因为将不再支持默认的1.0。
Michael Plautz

1
请注意:由于目标文件夹位于Windows下,因此经常需要不时更改密码,因此凭据文件中的密码可能无效。mount命令不会告诉您这样的详细信息。
朱洪波

22

谢谢,但是更多的谷歌搜索提供了解决方案。默认情况下,它使用了错误的安全类型。该命令有效:

$ sudo mount -t cifs //172.16.1.5/myshare/ /mnt/myshare \
    -osec=ntlmv2,domain=MYDOMAIN,username=myusername,password=mypassword

就是这样!运行mount -t cifs //10.0.0.138/usb1_1 /mnt/usbdisk -ousername=theusername,password=thepassord,file_mode=0644,dir_mode=0755,uid=root在Fedora 25的机器上工作得很好,但是当我跑的OpenWrt的盒(混沌较平静15.05.1)完全相同的命令失败。添加sec=ntlmv2使其也可以正常工作。
hlovdal

2
来到这里试图从非CentOS 6成员中挂载Debian 9 AD成员,这使我离我很近-对于我而言,魔术就是sec=ntlmssp
猎豹

对我来说,解决方法是使用domain关键字并在用户名之外指定它。
Jim Fell

sec = ntlmv2具有我从Ubuntu 18.04到Windows 10共享的smb访问所需的选项。谢谢,泡椒
noel aye

12

我遇到了这个问题,结果发现该问题没有正确格式化我的凭据文件中的值。我试过了:

username=DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

我也尝试过:

username=myemailaddress@someplace.com
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

和:

username=FULLY.QUALIFIED.DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

一旦我仅使用登录用户名:

username=mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

我能够成功安装CIF。


很好的解释!
Dima Lituiev

2

此添加可在科学版Linux 6.6(RedHat 6.6)上使用

使用以下详细信息编辑/etc/fstab
create file = .credentials(例如在中/etc):

username=value
password=value
domain=value

//SERVER/SHARE1 /mnt/SHARE1 cifs credentials=/etc/.credentials,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 

file_mode和dir_mode标志为我解决了!:)
拉斐尔·莫妮
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.