如何使用 unix 扩展挂载 cifs

如何使用 unix 扩展挂载 cifs

我正在尝试安装 cifs 共享并启用 unix 扩展,但默认情况下安装会传递“nounix”,我不知道如何更改默认行为。我检查了“man mount.cifs”,没有选项可以执行“nounix”的逆操作。

这是我的挂载命令:

$ sudo mount -t cifs //192.168.1.135/fooshare -o username=foouser,password=foopass,uid=baruser,gid=baruser ~/fooshare

然后,当我检查挂载操作中实际使用的所有选项时,发现“nounix”存在:

$ mount | grep fooshare
//192.168.1.135/fooshare on /home/baruser/foodshare type cifs (rw,relatime,vers=default,cache=strict,username=foouser,domain=,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.1.135,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

答案1

当我添加,vers=1.0到挂载选项时,我将挂载选项从 更改为nounix。您可以使用(不是可以隐式设置的选项)unix进行检查。mount -lunix

$ sudo mount -t cifs //192.168.1.135/fooshare ~/fooshare -o username=foouser,password=foopass,uid=baruser,gid=baruser,vers=1.0

提供额外信息:

$ sudo bash -c "echo 3 > /proc/fs/cifs/cifsFYI"

在设置选项之前,请确保正确卸载指定的挂载。要查看状态(当前 cifs 挂载数量):

$ cat /proc/fs/cifs/DebugData

答案2

不幸的是,似乎接受的解决方案不再有效。在 Windows 10 上,Turn Windows features on or off我启用了SMB 1.0/CIFS Server。我还必须找到注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters并将 的值设置SMB11

这种组合最后vers=1.0允许我的 Linux 客户端使用mount 标志进行连接和身份验证。不幸的是,该nounix标志仍然自动分配。我怀疑,虽然 Windows 10 能够通过各种调整强制托管 Samba 1.0 挂载,但它对 UNIX 扩展的支持在某个时候被剥夺了。

真是浪费,UNIX 扩展是唯一能够获得本机符号链接支持的方法。使用mfsymlinksmount 选项的“现代”解决方法是垃圾,因为虽然 Linux 客户端可以创建和解析符号链接,但 Windows 用户看到的只是一个 4096 字节的假符号链接文件。

现在是 2019 年了,我们无法在由 Windows 托管并由 Linux 客户端访问的网络安装上拥有符号链接。真是可悲的状况。

答案3

Linux CIFS 客户端不支持通过 SMB 2 或 3 协议创建 Windows 样式的符号链接。目前,Linux 客户端支持另一种样式的符号链接(称为 Minshall+French 符号链接),用于创建和跟踪操作。需要符号链接的客户可以使用“mfsymlinks”安装选项。我们推荐“mfsymlinks”,因为它也是 Mac 使用的格式。

要使用符号链接,请将以下内容添加到 CIFS 挂载命令的末尾:

,mf符号链接

相关内容