有多种方法可以在Linux客户端上装载CIFS/Samba共享 、windows共享。然而,有些教程已经过时了,而且完全错误。我刚刚遇到了一个(愚蠢的)装载错误的情况。


很多教程Linux装载 windows共享文件夹的  cifs语法:

[root@xtwh-test-01 ~]# mount -t cifs //10.99.101.102/Microsoft/ /mnt/anysharelog/ -o username="mydomain\myusername",password="mypassword",vers=1.0,ro

mount error(13): Permission denied


不幸的是,dmesg中的额外输出无助于解决问题:

[root@xtwh-test-01 ~]#dmesg

[... ...]

[43128138.860530] Status code returned 0xc000015b NT_STATUS_LOGON_TYPE_NOT_GRANTED

[43128138.860537] CIFS VFS: Send error in SessSetup = -13

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

在出现其他尝试和错误(并从历史记录中查找最近的共享装载)后,问题原来是user=domain\myuser语法。这种将域/工作组和用户名相结合的方式已经不起作用了。

注意:选项中同时接受user=和username=。

而是使用:

[root@xtwh-test-01 ~]# mount -t cifs "//10.99.101.102/Microsoft" /mnt/anysharelog/ -o "user=myusername,password=mypassword,workgroup=mydomain"

装载成功

Of course the password should not be used on the command line, so for the final (and automatic) mount of the share use the following entry in /etc/fstab:

root@focal:~# cat /etc/fstab
[...]
# Mount CIFS share from server
//server/Share /mnt cifs rw,relatime,vers=3.1.1,credentials=/etc/samba/servershare.conf,uid=0 0 0

Where /etc/samba/servershare.conf contains the credentials:

root@focal:~# cat /etc/samba/servershare.conf
user=myuser
password=secret
domain=DOMAIN