これはUbuntu Server 10.04 x64とSamba 3.4.7です。
共有ディレクトリ/home/mit/share
と/home/temp
共有ディレクトリにリンクされている他のディレクトリがあります。
ln -s /home/temp /home/mit/share/temp
ところで、Windowsではインターネットを使用した後に開くことはできませんが、Linuxでは期待どおりにアクセスS:/temp
できます。/home/mit/share/temp
/home/mit/share/temp
これは内部ディレクトリに接続すると機能するため、Sambaの制限は共有ディレクトリの外部/上のリンクを使用してジャンプするようです。
編集する:
この質問も参照してください。Ubuntu +最新のSambaバージョン、Windowsに搭載されている共有へのシンボリックリンクは機能しなくなりました。。
unix extensions = no
グローバルセクションfollow symlinks = yes
に入れて、wide links = yes
実際に必要な共有セクションにのみ入れる方が良いと思います。
フラグunix extension
は単一の共有セクションではなくグローバルセクションになければなりません。ただし、セキュリティ上の理由からグローバルに使用するよりも必要な場合にのみ、他のオプションを使用することをお勧めします。
答え1
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 symlinks
とwide links
ロゴ:https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1
答え2
他の答えに加えて、UNIX拡張を有効にするには、次のものを使用できます。
[global]
allow insecure wide links = yes
[share]
follow symlinks = yes
wide links = yes
答え3
こんにちは、設定へのWindowsシンボリックリンクを変更するためにこれを設定に入れようとしましたが、これがWindowsクライアントに影響を与えるか、このボックスに接続するときにシンボリックリンクに従うかはわかりません。
[global]
unix extensions = no
答え4
AppArmor を実行している場合は、Samba 構成ファイル以上の操作を処理する必要があります。
実際には、次のディレクティブを含める必要がありますsmb.conf
。
follow symlinks = yes
wide links = yes
unix extensions = no
# No need for "allow insecure wide links" unless you want "unix extensions = yes"
ただし、AppArmorは独自のルールセットセマンティクスに基づいてファイルシステムの一部へのアクセスをブロックします。したがって、Samba のシンボリックリンクが AppArmor がブロックする場所を指す場合、Samba はアクセスを拒否します。
私のシステムでは、サービスの起動/停止時にSambaがAppArmor設定ファイルを更新するため、AppArmor設定ファイルを変更できますが、Sambaまたは他のプログラムがそれを上書きする危険性があります。代わりに、アクセスしたいシンボリックリンクターゲットを含む場所を参照して、Sambaに接続できない共有を作成することにしました(まだ進行中smb.conf
)。
# The following is a hack for AppArmor to allow the path
[share1 for AppArmor] # Or whichever name you choose
browseable = no
path = /home # Point to directory or parent directory of the location to access
read only = yes
guest ok = no
valid users = none