符号链接支持 Windows/CIFS 服务器和 linux 客户端

krb*_*686 7 filesystems cifs

我有一个 Win10 文件服务器,它通过网络共享托管内容,例如代码存储库。

我在 Linux 上进行所有编码和开发,主要是 CentOS 或 Lubuntu,所以我遇到了非常有用的:

mount -t cifs....允许我轻松安装 Windows 共享的命令。但是我遇到的问题是尝试从共享安装中的来宾创建符号链接。具体来说,诸如此类的事情会automake --add-missing失败,因为它试图创建指向诸如此类install-sh文件和其他文件的符号链接。

我知道由于 Linux 和 Windows 之间的差异而存在复杂性,但我不确定是否存在可以在服务器上启用的选项,可能还有客户端,以允许这样做。

我读过一些书,但网上的其他答案对我来说似乎不太清楚。例如这篇文章:符号链接权限被拒绝,通过 cifs 共享文件夹,-似乎表明使用该sfu (Services For Unix)选项应该是可能的。它表示 cifs 内核模块必须至少是1.4.

2.03我的 CentOS 7.1 机器上有版本,并尝试过:sudo mount -t cifs -o username=,password=,sfu //Remote_Server/Share /Share没有成功。我还打开了 Windows 中的权限,secpol以允许我的 Windows 用户帐户创建符号链接。(我不确定这是否可能是一个因素,以防万一该实现试图在双方创建符号链接并且由于我的 Windows 帐户权限而无法创建)。我可以在 windows cmd 提示符下使用该mklink命令以管理员身份运行,但是当尝试在 linux 来宾上创建标准符号链接时,这仍然会导致failed to create symbolic link:........Operation not supported

那么有什么方法可以让 CIFS 和我当前的解决方案简单地使用它?或者是否有任何解决方案可以以某种方式抽象出 Linux 和 Windows 上符号链接之间的差异,并允许在 Linux 客户机上完全像任何其他文件夹一样使用已安装的文件夹?这甚至可能吗?

COD*_*EaD 14

如果您只想使用 Linux 上下文中的符号链接,则mfsymlinksmount.cifs 的选项可能正是您所需要的:

   mfsymlinks
Run Code Online (Sandbox Code Playgroud)
       Enable support for Minshall+French symlinks(see
       http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks).
       This option is ignored when specified together with the 'sfu' option.
       Minshall+French symlinks are used even if the server supports the CIFS Unix
       Extensions.
Run Code Online (Sandbox Code Playgroud)

或者,将 mfsymlinks 添加到命令行挂载:

   sudo mount -t cifs //ip.add.re.ss/share_name /path/to/mount -o username=hostusername,vers=3.0,uid=clientusername,gid=clientgroupname,soft,rsize=8192,wsize=8192,mfsymlinks
Run Code Online (Sandbox Code Playgroud)

有关一些背景信息,请参阅此问题