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 或更高版本(根据 MAN 页面)。
但我不清楚 mount -t cifs 是否真正利用了底层的 samba 机制,或者它是否是一个单独的实现……
根据手册页,mount.cifs 忽略客户端上的 smb.conf 文件。
答案2
符号链接仅适用于 smb2 客户端。否则,您可以在服务器上设置连接点,这些连接点将作为常规文件显示给客户端。