安装错误 13 = 权限被拒绝

安装错误 13 = 权限被拒绝

我的一台服务器设置为使用 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 帐户,所以我知道它正在尝试。我检查过我的密码是否正确。

我究竟做错了什么?

答案1

有几件事需要检查。我做了类似的事情,您可以使用命令直接测试安装它,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

参考

答案2

谢谢,但更多的谷歌搜索找到了解决方案。默认情况下,它使用了错误的安全类型;这个命令有效:

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

答案3

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

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

我也尝试过:

[email protected]
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

我能够让我的 cifs 安装成功。

答案4

对于 AD 环境,我必须离开并重新加入域。

net ads leave -U domain-admin-username

kinit domain-admin-username
net ads join -U domain-admin-username
systemctl restart smbd nmbd winbind

不知道为什么这是必要的,但在例行重启更新后发生了。收到此错误时没有任何其他迹象表明存在任何 AD 相关问题。

相关内容