Symlink support with Windows/CIFS server, and linux client

cifsfilesystems

I have a Win10 file server that is hosting content such as code repositories over a network share.

I do all of my coding and development on Linux, primarily CentOS or Lubuntu, so I've come across the immensely useful:

mount -t cifs.... command that allows me to easily mount up the Windows share. But the issue I've run into is with trying to create symlinks from the guests inside the shared mount. Specifically, things like automake --add-missing fails, because it tries to create symlinks to things like install-sh and other files.

I know there are complications because of the differences between Linux and Windows, but I wasn't sure if there exists an option I can enable on the server, and possibly client, to allow this.

I've done some reading, but other answers online don't seem very clear to me. For example this post: Symbolic link permission denied, shared folder over cifs, –
seems to suggest that with the sfu (Services For Unix) option, it should be possible. It indicates that the cifs kernel module must be at least 1.4.

I have version 2.03 on my CentOS 7.1 box, and have tried: sudo mount -t cifs -o username=,password=,sfu //Remote_Server/Share /Share with no success. I've also turned on the permission in Windows secpol to allow my windows user account to create symbolic links. (I wasn't sure if this could be a factor or not, in case somehow the implementation was trying to create a symlink on both sides and couldn't because of my Windows account privileges).
I can do so from the windows cmd prompt, running as administrator, with the mklink command, but when trying to create a standard symlink on the linux guest, this still results in failed to create symbolic link:........Operation not supported

So is there any way to get this to work simply with CIFS and my current solution? Or are there any solutions that can somehow abstract away the differences between symbolic links on Linux and Windows, and allow the mounted folder to be used on a Linux guest exactly as any other folder? Is that even possible?

Best Answer

If you are only going to use the symbolic links from your Linux context, the mfsymlinks option to mount.cifs may be what you need:

   mfsymlinks
       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.

For some background see this question.

Related Question