Windows / CIFSサーバーとLinuxクライアントへのシンボリックリンクのサポート

Windows / CIFSサーバーとLinuxクライアントへのシンボリックリンクのサポート

ネットワーク共有を介してコードストアなどをホストするWin10ファイルサーバーがあります。

私はすべてのコーディングと開発をLinux(主にCentOSまたはLubuntu)で実行しているので、これは非常に便利です。

mount -t cifs....コマンドを使用すると、Windows共有を簡単にマウントできます。しかし、私が経験している問題は、共有インストール内のゲストからシンボリックリンクを作成しようとしていることです。特に、このような操作は、このファイルや他のファイルなどのファイルへのシンボリックリンクをautomake --add-missing作成しようとするために失敗します。install-sh

LinuxとWindowsの違いにより、いくつかの複雑な問題があることがわかりますが、これを可能にするためにサーバー(およびクライアント)で有効にするオプションがあるかどうかはわかりません。

いくつかの本を読んだが、オンラインの他の答えは明確ではないようだ。たとえば、この記事は次のとおりです。シンボリックリンク権限が拒否されました、cifsを介した共有フォルダsfu (Services For Unix), - このオプションを使用すると可能であることを示すようです。これはcifsカーネルモジュールが少なくとも1.4

私のCentOS 7.1システムにバージョンがあり、試してみ2.03ましたが、sudo mount -t cifs -o username=,password=,sfu //Remote_Server/Share /Share成功しませんでした。また、secpol私のWindowsユーザーアカウントがシンボリックリンクを作成できるように、Windowsで権限を設定しました。 (実装時に両側にシンボリックリンクを作成しようとしましたが、Windowsアカウントの権限で作成できない場合に備えて、これが要因であるかどうかはわかりません。)Windows cmdプロンプトで管理者として実行し、コマンドを使用してこれを実行します。ただし、mklinkLinuxゲストで標準シンボリックリンクを作成しようとすると、次のような結果が表示されます。failed to create symbolic link:........Operation not supported

それでは、CIFSと現在のソリューションで動作させる方法はありますか?それとも、LinuxとWindowsのシンボリックリンクの違いを何らかの形で抽象化し、マウントされたフォルダを他のクライアントと同様にLinuxクライアントで使用できるようにするソリューションはありますか?可能ですか?

答え1

Linux コンテキストでのみシンボリックリンクを使用する場合は、mfsymlinksmount.cifs オプションが必要な場合があります。

   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.

または、コマンドラインマウントに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

一部の背景については、次をご覧ください。この問題

関連情報