Sambaが共有パスの外側のシンボリックリンクに従うようにする方法

Sambaが共有パスの外側のシンボリックリンクに従うようにする方法

これは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 symlinkswide 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

関連情報