ネットワーク共有を介してコードストアなどをホストする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プロンプトで管理者として実行し、コマンドを使用してこれを実行します。ただし、mklink
Linuxゲストで標準シンボリックリンクを作成しようとすると、次のような結果が表示されます。failed to create symbolic link:........Operation not supported
それでは、CIFSと現在のソリューションで動作させる方法はありますか?それとも、LinuxとWindowsのシンボリックリンクの違いを何らかの形で抽象化し、マウントされたフォルダを他のクライアントと同様にLinuxクライアントで使用できるようにするソリューションはありますか?可能ですか?
答え1
Linux コンテキストでのみシンボリックリンクを使用する場合は、mfsymlinks
mount.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
一部の背景については、次をご覧ください。この問題。