
私のSamba共有上のシンボリックリンクは、私が望むように動作しません。具体的には、リンクは次のようになります。通常のファイルを複製するクライアント マシンに。以前は機能していました (つまり、サーバー上のシンボリック リンクがクライアント上のシンボリック リンクのように見えました) が、ある時点で機能しなくなりました。これは何らかの形で samba のバージョンに関連していると思われますが、機能する組み合わせは見つかりませんでした。
samba クライアント上でシンボリックリンクを「シンボリックリンクのように」動作させることは可能ですか? もし可能であれば、どのようにすればよいですか?
これが私のセットアップです。
サーバ:Synology NAS が samba 経由で共有を提供する
------server smb.conf-------
[global]
unix extensions=no
follow symlinks=yes
wide links=yes
allow insecure wide links=yes
クライアント:Ubuntu 16.04マシン、次のコマンドで共有をマウントします
sudo mount -t cifs -o vers=3.0 -o user=<myuser> //server/sharename /mnt/mountpoint
共有をマウントしたら、次に行うことは次のとおりです。
サーバー上
$ echo "HELLO WORLD" > file-created-on-server.txt
$ ln -s file-created-on-server.txt symlink-created-on-server.txt
$ ls -iog
75852 -rwxrwxrwx+ 1 12 Jul 19 20:16 file-created-on-server.txt
75859 lrwxrwxrwx+ 1 25 Jul 19 20:53 symlink-created-on-server.txt -> file-created-on-server.txt
明らかに、これはシンボリックリンクです。ただし、その後に...
クライアント側
$ ls -iog
total 8
75852 -rwxr-xr-x 1 12 Jul 19 21:16 file-created-on-server.txt
75852 -rwxr-xr-x 1 12 Jul 19 21:16 symlink-created-on-server.txt
私は予想したサーバー上に作成されたシンボリックリンク.txtにシンボリックリンクのように見えるしかし、そうではありません。元のファイルの複製のように見えます。クライアントでは同じ inode 番号がありますが、サーバーでは同じではありません。
何が起こっているのでしょうか? シンボリックリンクをシンボリックリンクのように見せる方法はありますか? Samba とシンボリックリンクのセキュリティ問題について読んだことがありますが、それが動作の変更の理由かもしれないと想像しますが、明確な説明は見つかりませんでした。この場合、セキュリティへの影響は気にしません。
答え1
あなたが持っている
unix extensions=no
follow symlinks=yes
つまり
- サーバーはリンクを報告しません
- サーバーはシンボリックリンクに従います。
2 番目のオプションだけでも、シンボリック リンクを通常のリンクのように、つまり同じファイルを参照する 2 つの名前として扱うには十分でしょう。