Filesystems

你如何讓 samba 遵循共享路徑之外的符號連結

  • May 14, 2020

這是 Ubuntu 伺服器 10.04 64 和 samba 3.4.7。

我有一個共享目錄/home/mit/share和另一個/home/temp連結到共享目錄的目錄:

ln -s /home/temp /home/mit/share/temp

但是在windows上,使用網際網路後,我無法打開S:/temp,但在Linux上可以/home/mit/share/temp像預期的那樣訪問。

如果我在內部連結目錄,則此方法有效/home/mit/share/temp,因此我猜 samba 限制使用共享目錄外部/上方的連結跳轉。

編輯:

另請參閱標題為Ubuntu + latest samba version, symlinks no longer work on share mounted in Windows 的問題

最好將其unix extensions = no放入全域部分,follow symlinks = yes並且wide links = yes僅放入您真正需要的共享部分。

標誌必須位於unix extension全域部分而不是單個共享部分。但出於安全原因,最好僅在需要時使用其他選項,而不是全域使用。

編輯 smb.conf

[global]
unix extensions = no

[share]
follow symlinks = yes
wide links = yes

注意:如果您使用的是較新版本的 samba,則以下內容可能對您有用:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

關於follow symlinkswide links標誌的文件:https ://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1

作為其他答案的替代方案,要保持啟用 unix 擴展,可以使用:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

引用自:https://unix.stackexchange.com/questions/5120