it-swarm-eu.dev

Jak si přinutíte sambu sledovat symlink mimo sdílenou cestu

Toto je server Ubuntu 10.04 64 a samba 3.4.7.

Mám sdílený adresář /home/mit/share A další /home/temp, Který do sdíleného adresáře odkazuji:

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

Ale na Windows, po použití internetu, nemůžu otevřít S:/temp, Ale v Linuxu je možné přistupovat k /home/mit/share/temp Podle očekávání.

Funguje to, když propojím adresáře uvnitř /home/mit/share/temp, Takže myslím, že samba omezuje skok s odkazem mimo/nad sdíleným adresářem.

ÚPRAVA:

Viz také tato otázka s názvem buntu + nejnovější verze samby, odkazy již nefungují na sdílené složce připojené ve Windows .

Zdá se, že nejlepší je vložit unix extensions = no Do globální sekce a follow symlinks = yes A wide links = yes Pouze do sekce share, kde to opravdu potřebujete.

Příznak unix extension Musí žít v globální sekci a nikoli v jednotlivých sekcích sdílených složek. Z bezpečnostních důvodů je však lepší použít jiné možnosti pouze tam, kde je potřebujete, a nikoli globálně.

65
mit

Upravit smb.conf

[global]
unix extensions = no

[share]
follow symlinks = yes
wide links = yes

Poznámka: Pokud používáte novější verzi samby, může pro vás místo toho fungovat následující:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

dokumentace k follow symlinks a wide links flags: https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1

102
Mahesh

Alternativně k ostatním odpovědím je možné, aby byla unixová rozšíření povolena, je možné použít:

[global]
allow insecure wide links = yes

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

Zdravím, zkusil jsem to uvést do konfigurace, abych opravil symlinks pro Windows pro mé nastavení, ale nejsem si jistý, jestli to bude mít vliv na klienta Windows, jinak to bude následovat symlinks, když se připojím k tomuto boxu.

[global]                                                                        
unix extensions = no
11
Qiqi

Aby mohli klienti Samby sledovat symlinks mimo sdílenou cestu, vše, co potřebujete v konfiguraci Samby, je:

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

[myShare]
wide links = yes

(samozřejmě kromě samotných definic akcií Samba). To je - teoreticky - dost pro * nix klienty.

Pozn .: Směrnice „Follow symlinks“ není nutná, protože ve výchozím nastavení je „yes“

Pokud jde o klienty Windows, 1 nastavení stále chybí, aby je mohli sledovat. Udělat to tak :

  1. otevřete Windows Shell s oprávněními správce
  2. běh:

    fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
    
  3. restartujte znovu načíst nastavení

Poznámka: Stejného výsledku lze dosáhnout úpravou registru Windows. Viz odkazy níže

zdroje :

4
Httqm

Možná používáte více než jen konfigurační soubor Samba, pokud používáte AppArmor.

Potřebujete ve svém 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 však blokuje přístup k částem systému souborů podle vlastní sémantiky pravidel. Pokud tedy váš symbolický odkaz v Sambě ukázal na místo, které by AppArmor zablokoval, Samba by přístup odmítl.

V mém systému Samba aktualizuje profily AppArmor při spuštění/zastavení služby, takže bych mohl změnit profil AppArmor, ale riskuji Sambu nebo jiný program, který jej přepíše. Místo toho jsem se rozhodl vytvořit nepřístupnou sdílenou složku v Sambě odkazující na umístění, které obsahovalo cíl odkazování, ke kterému jsem chtěl přistoupit (stále v 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