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