web-dev-qa-db-ja.com

cifsがマウントされたWindowsServer 2008R2共有を使用してLinuxクライアントからシンボリックリンクを作成または追跡できません

Windows Server 2008 R2 NTFSはシンボリックリンクをサポートしています。管理者としてサーバーにログインすると、mklinkでシンボリックリンクを作成できるので、管理者ユーザーにはこれを行う権限があることがわかります。 mount -t cifs -o username = 'domain\Administrator' // server-name/smbshare/mnt/smbshareを使用してUbuntu10クライアントに共有をマウントする場合

ln -s testfile test_symlinkを実行して、テストファイルへのシンボリックリンクを作成してみます。

既存のシンボリックリンク(以前にサーバーにシェルインすることによって作成された)の内容を読み込もうとすると、「操作はサポートされていません」というエラーが発生します。私はこれをnix extension = yesfollow symlinks = yes and wide links = yesを使用して、smb.confで試しましたが、それらは存在しません。

何か案は?

これに加えて、基になるボリュームがシンボリックリンクをサポートしている場合でも、SMB1はシンボリックリンクをサポートしていない可能性が高いようです。ただし、SMB2はそうします-したがって、Samba3.5.4を実行しているFedoraCore 13 VM、私はmax protocol = smb2、同じように設定しました結果は上記のとおりです。mount-t cifsが実際に基礎となるsamba機構を利用するのか、それとも別個の実装なのかはわかりません...

6
JustinP

...そして... Linux CIFSドライバーはSMB2クライアントですか?

私は同様の問題に遭遇しました:

LinuxサーバーでセットアップされたSAMBA共有には、シンボリックリンクが含まれています。サーバーのsmb.confに「follow symlinks = yes」を設定しました。

私のWindows XPクライアントはシンボリックリンクを正しくたどることができます(ディレクトリを指します)が、CIFSを使用してそのSAMBA共有をLinuxラップトップにマウントすると、Linuxクライアントはそのシンボリックリンクをファイルとして認識します。

誰かがこれをバグとしてUbuntuフォーラムにも報告しました:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/137756

しかし、レポートは何のアクションもなく閉じられました。

私のLinuxクライアントはカーネル2.6.33を実行しており、mount.cifsバージョン1.52以降を搭載しているようです(MANページによる)。

Mount -t cifsが実際に基盤となるsamba機構を利用するのか、それとも別の実装であるのかは私にはわかりません...

マンページによると、mount.cifsはクライアント上のsmb.confファイルを無視します。

3
NikTJ

シンボリックリンクは、smb2クライアントでのみ機能します。それ以外の場合は、サーバーにジャンクションポイントを設定すると、これらは通常のファイルとしてクライアントに表示されます。

2
JamesRyan