我在 Windows 11 中的 Hyper-V 中使用 Ubuntu 22.04 客户机。我创建了一个文件共享并将其共享给本地用户(“shareuser”)。我试图使用 cifs 和相应的更改自动挂载它,/etc/fstab
但完全无法做到。当我在命令行中执行挂载时,它告诉我:
sudo mount -t cifs -o domain=WORKGROUP,username=shareuser,password=pass1234
//172.22.0.1/sharename /home/otheruser/share
mount: /home/otheruser/share: cannot mount //172.22.0.1/sharename read-only.
sharename
肯定不是只读的,因为我可以连接 smbclient 并完全正常地传输文件。只是 cifs 不能正常工作。
工作的连接smbclient
如下所示:
smbclient -U WORKGROUP/shareuser --password 'pass1234' //172.22.0.1/sharename
奇怪的是,我有另一台 Ubuntu 22.04 VM,它运行正常。我发现很多帖子都指向同一个方向,但没有一个有完全相同的错误消息。而且--verbose
输出的错误消息不超过上述内容。每一条提示都值得赞赏。
答案1
从 Linux CIFS 连接到 Windows 11 需要 SMB3。以下是在 Debian 12 (“bookworm”) 上对我有用的两种变体:
w='WORKGROUP' # Workgroup or domain; blank if unused
u='shareuser' # Username
p='pass1234' # Password; no comma allowed
s='//172.22.0.1/sharename' # Share
mkdir -p /mnt/net
mount -t cifs -o "vers=3.02,${w:+domain=$w,}username=$u,password=$p" "$s" /mnt/net
smbclient --user "$u" --max-protocol SMB3 "$s" "$p" --command 'dir'