我的一台服务器设置为使用 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=ntlm
或sec=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 相关问题。