在我挂载的 Samba 共享上,我可以通过简单的方式从 Linux 客户端创建符号链接
ln -s hello.txt hello.sl
当启用“mfsymlinks”选项时,这对客户端(在 Linux 上)有效,但是从 Windows 客户端(或在服务器本身上)访问时,符号链接不起作用!
如何在服务器上运行的 Samba 共享上创建符号链接?
摩尔曼福在对此问题的回答中也提到了这个问题:
答案1
这是使用 时的预期结果mfsymlinks
。此选项的全部意义在于符号链接创建是模仿通过具有特殊内容的常规文件,以便可以在不支持符号链接的服务器上创建它们;即,它与你想要的相反。
对于 SMBv1 (CIFS),符号链接支持是“CIFS Unix 扩展”的一部分。当 Linux 客户端挂载 Samba 托管的共享时,这些默认处于活动状态,但它们仅适用于通常被认为“已弃用”的 SMBv1。(部分原因是 Windows 特定的安全问题,部分原因是一般协议级问题。)
您的挂载很可能使用 SMBv3,它具有“POSIX 扩展”作为等效项,但据我所知,这些扩展尚未在 Linux 和 Samba 中 100% 实现。如果您在客户端上安装了非常新版本的 Linux 内核,在服务器上安装了非常新版本的 Samba,则如果手动启用它,它应该可以工作(并且如果您禁用当然是‘mfsymlinks’);据我所知,旧版本目前还无法工作。
不过,我听说 Samba 的计划是不是完全不支持服务器端符号链接创建,因为它经常会导致安全问题(例如,支持 POSIX 的客户端可以创建符号链接,然后像不支持 POSIX 一样再次连接,并诱骗服务器遵循该符号链接)。所以你可能不得不改用 NFSv4。