无法从安装了 cifs 的 Windows Server 2008 R2 共享的 Linux 客户端创建或跟踪符号链接

无法从安装了 cifs 的 Windows Server 2008 R2 共享的 Linux 客户端创建或跟踪符号链接

Windows Server 2008 R2 NTFS 支持符号链接。如果我以管理员身份登录服务器,我可以使用以下命令创建符号链接链接,所以我知道管理员用户有权限执行此操作。如果我使用以下命令将共享挂载到 Ubuntu 10 客户端上mount -t cifs -o 用户名='domain\Administrator' //服务器名称/smbshare /mnt/smbshare

然后尝试通过执行以下操作创建指向测试文件的符号链接ln -s 测试文件 test_symlink我收到错误‘ln:创建符号链接‘test_symlink’:操作不受支持’

如果我尝试读取现有符号链接的内容(之前通过 shell 进入服务器创建),我会收到“操作不支持”错误。我尝试过unix 扩展 = 是跟随符号链接 = 是和宽链接 = 是在我的 smb.conf 中,并且没有它们存在。

有任何想法吗?

此外,即使底层卷支持符号链接,SMB1 似乎也不支持。但是 SMB2 支持 - 所以我在运行 Samba 3.5.4 的 Fedora Core 13 VM 上尝试了此操作,我设置最大协议=smb2,结果与上述相同。但我不清楚 mount -t cifs 是否真正利用了底层的 samba 机制,或者它是否是一个单独的实现...

答案1

...并且...Linux CIFS 驱动程序是 SMB2 客户端吗?

我也遇到过类似的问题:

Linux 服务器上设置的 SAMBA 共享包含符号链接。我已在服务器的 smb.conf 中设置“follow symlinks = yes”。

我的 Windows XP 客户端可以正确地跟随符号链接(它指向一个目录),但是当我使用 CIFS 将该 SAMBA 共享安装到我的 Linux 笔记本电脑时,我的 Linux 客户端将该符号链接视为一个文件。

有人也向 Ubuntu 论坛报告了此错误:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/137756

但该报告已被结案,未采取任何行动。

我的 Linux 客户端正在运行内核 2.6.33,并且似乎具有 mount.cifs 版本 1.52 或更高版本(根据 MA​​N 页面)。

但我不清楚 mount -t cifs 是否真正利用了底层的 samba 机制,或者它是否是一个单独的实现……

根据手册页,mount.cifs 忽略客户端上的 smb.conf 文件。

答案2

符号链接仅适用于 smb2 客户端。否则,您可以在服务器上设置连接点,这些连接点将作为常规文件显示给客户端。

相关内容