
我的 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到看起來像一個符號鏈接。但事實並非如此。它看起來像是原始文件的副本——它們甚至在客戶端上具有相同的索引節點號,但在伺服器上則不同。
這裡發生了什麼事?有沒有辦法讓符號連結看起來像符號連結?我讀過有關 samba 和符號連結安全問題的文章,我想這可能是行為改變的原因,但我從未找到明確的解釋 - 在這種情況下,我不關心安全影響。
答案1
你有
unix extensions=no
follow symlinks=yes
這意味著
- 伺服器不會報告鏈接
- 伺服器將遵循符號連結。
僅第二個選項可能足以將符號鏈接視為常規鏈接,換句話說,將其視為引用同一文件的兩個名稱。