it-swarm-tr.com

Samba'yı paylaşılan yolun dışındaki symlink'i nasıl takip edersiniz?

Bu Ubuntu sunucusu 10.04 64 ve samba 3.4.7'dir.

Paylaşılan dizine /home/mit/share Ve başka bir /home/temp Paylaşılan bir dizin var:

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

Ancak pencerelerde, internet kullandıktan sonra S:/temp Dosyasını açamıyorum, ancak Linux'ta /home/mit/share/temp Öğesine beklendiği gibi erişmek mümkün.

Bu /home/mit/share/temp İçindeki dizinleri bağlarsanız çalışır, bu yüzden samba paylaşılan dizinin dışında/üstünde bir bağlantı ile atlamak için kısıtlama sanırım.

DÜZENLEME:

Ayrıca Ubuntu + en son samba sürümü, semboller artık Windows'taki paylaşımda çalışmıyor!) Başlıklı bu soruya bakın .

unix extensions = no Dosyasını global bölüme ve follow symlinks = yes Ve wide links = yes Öğelerini yalnızca gerçekten ihtiyacınız olan paylaşımlar bölümüne koymak en iyisidir.

unix extension Bayrağı bireysel paylaşımlar bölümünde değil, küresel bölümde yaşamak zorundadır. Ancak güvenlik nedenlerinden ötürü, diğer seçenekleri yalnızca ihtiyacınız olan yerde, küresel olarak kullanmak daha iyidir.

65
mit

Düzenle smb.conf

[global]
unix extensions = no

[share]
follow symlinks = yes
wide links = yes

Not: Samba'nın daha yeni bir sürümünü kullanıyorsanız bunun yerine aşağıdakiler işe yarayabilir:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

follow symlinks ve wide links bayrakları: https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1

102
Mahesh

Diğer yanıtlara alternatif olarak, unix uzantılarını etkin tutmak için aşağıdakileri kullanmak mümkündür:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes
11
user1182474

Selamlar, kurulumum için pencereler için sembolik bağlantıları düzeltmek üzere yapılandırmaya koymayı denedim, ancak Windows istemcisini etkileyip etkilemeyeceğinden emin değilim, aksi takdirde bu kutuya bağlandığımda sembolik bağlantıları izler.

[global]                                                                        
unix extensions = no
11
Qiqi

Samba istemcilerinin paylaşılan yolun dışındaki simgeleri takip etmesine izin vermek için Samba yapılandırmasında ihtiyacınız olan tek şey:

[global]
allow insecure wide links = yes
unix extensions = no

[myShare]
wide links = yes

(Samba'ya ek olarak tanımları da elbette paylaşır). Bu, * nix istemcileri için -theoretically- yeterlidir.

Not: "Evet" işaretini yönerge "Evet" varsayılan olarak gerekli değildir

Windows istemcileri için, bu tür bağlantıları izlemelerine izin vermek için 1 ayar hala eksik. Böyle yaparak :

  1. yönetici ayrıcalıklarına sahip bir Windows Kabuğu açma
  2. çalıştırmak :

    fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
    
  3. ayarları yeniden yüklemek için yeniden başlat

Not: Windows kayıt defterini düzenleyerek aynı sonuç elde edilebilir. Aşağıdaki bağlantılara bakın

kaynaklar:

4
Httqm

AppArmor çalıştırıyorsanız, Samba yapılandırma dosyasından daha fazlasını ele almanız gerekebilir.

smb.conf:

follow symlinks = yes
wide links = yes
unix extensions = no
# No need for "allow insecure wide links" unless you want "unix extensions = yes"

Ancak, AppArmor dosya sisteminin parçalarına kendi kural kümesi semantiğine göre erişimi engeller. Dolayısıyla, Samba içindeki bağlantınız AppArmor'un engelleyeceği bir yere işaret ederse Samba erişimi reddeder.

Sistemimde, Samba hizmet başlatma/durdurmada AppArmor profillerini günceller, bu yüzden bir AppArmor profilini değiştirebilirim, ancak Samba veya başka bir programın üzerine yazma riskiyle karşı karşıya kalabilirim. Bunun yerine, Samba'da erişmek istediğim sembolik hedefi içeren konuma referansla erişilemeyen bir paylaşım oluşturmaya karar verdim (hala 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
0
palswim