[Samba]Symlinks op host worden niet ge-dereferenced

Pagina: 1
Acties:
  • 130 views sinds 30-01-2008
  • Reageer

  • NaliXL
  • Registratie: Maart 2002
  • Laatst online: 15-02 21:42
Ik denk dat de titel het al zo'n beetje zegt, maar hier toch maar een duidelijker beschrijving:

Ik gebruik al een tijd lang een Linux servertje waarop ik o.a. mijn MP3's host. Nou heb ik de rechten op dat systeem heel simpel geregeld: ik heb in /home een directory aangemaakt (laten we zeggen : /home/mp3) waarin mijn MP3's staan. Voor iedere gebruiker die bij mijn MP3's mag heb ik in de home-directory een symlink staan die naar /home/mp3 verwijst.

Via webmin heb ik vervolgens de betreffende unix-users naar samba-users omgezet, en het sharen van home-directories aangezet. Piece of cake, werkte tot voor kort allemaal prima.

Maar nou log ik net in op m'n linux (client) systeem, en na de samba-share gemount te hebben, blijkt dat ik niet meer bij mijn MP3's kan, omdat plotseling de symlinks aan de kant van de server niet meer ge-dereferenced worden. Dus als ik die share op het client-systeem mount als
/mnt/mp3account
en ik ga naar
/mnt/mp3account/mp3
dan wil 'ie op het client-systeem naar de directory /mnt/mp3account/../mp3, die dus niet bestaat.

Ik heb (in webmin) gecontroleerd of de optie "Allow symlinks outside share" nog aanstond, en dat is het geval. Dus ik begrijp niet helemaal waarom dat dan toch niet gebeurt...

Genoeg is meer dan veel, en tart den overvloed


  • Blaasvis
  • Registratie: November 2001
  • Laatst online: 09:30

Blaasvis

Cidora \o/

samba ondersteund volgens mij gewoon geen symlinks, dit zul je moeten afhandelen met :
mount --bind sourcedir destdir ;)
de rest valt op te zoeken in manpages van mount.

Freedom is everything you need ; <moto-moi|afk> ik verkloot het gewoon nooit :P


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Als je vanaf je linux client met smbclient (of met konqueror's smb://) de share bekijkt, kun je dan wel de mp3 dir in?
Blaasvis schreef op 14 juli 2004 @ 11:19:
samba ondersteund volgens mij gewoon geen symlinks, dit zul je moeten afhandelen met :
mount --bind sourcedir destdir ;)
Als de home directories en /home/mp3 op dezelfde partitie staan kun je volgens mij ook hardlinks gebruiken. Lijkt me een mooiere oplossing dan voor elke user 'mount --bind' doen.

[edit]
Net even getest, als je smbclient gebruikt dan wordt de symlink als een gewone dir beschouwt, als je 'mount -t smbfs' gebruikt niet. Ik kan zo snel geen optie vinden waarmee je dit (afwijkende) gedrag kunt beïnvloeden.

En hardlinks werken niet op directories (weer wat geleerd), dus op het eerste gezicht lijkt 'mount --bind' voorlopig de beste optie. Of je maakt een aparte mp3 share (dat zou ik sowieso gedaan hebben), maar misschien heb je redenen om dat niet te doen.

[edit2]
Het wordt veroorzaakt doordat 'unix extensions' standaard aan staan:
unix extensions (G):

This boolean parameter controls whether Samba implments the CIFS UNIX extensions, as defined by HP. These extensions enable Samba to better serve UNIX CIFS clients by supporting features such as symbolic links, hard links, etc... These extensions require a similarly enabled client, and are of no current use to Windows clients.

Default: unix extensions = yes
Als ik deze optie op 'no' zet werkt het wel.

[ Voor 57% gewijzigd door _Squatt_ op 14-07-2004 14:19 ]

"He took a duck in the face at two hundred and fifty knots."


  • cooper_s1
  • Registratie: Augustus 2001
  • Laatst online: 18-02 16:28

cooper_s1

MINI&#039;s rule

Ik denk dat de symlink iets van mp3account --> ../mp3 is,
maak er mp3account --> /home/mp3 van. Oftewel een absoluut pad ipv
een relatief pad.

Succes 8)

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
cooper_s1 schreef op 15 juli 2004 @ 13:07:
Ik denk dat de symlink iets van mp3account --> ../mp3 is,
maak er mp3account --> /home/mp3 van. Oftewel een absoluut pad ipv
een relatief pad.
Dan wijst mp3account naar /home/mp3 op de client. Wat zou dit precies oplossen?

"He took a duck in the face at two hundred and fifty knots."


  • LeX-333
  • Registratie: Maart 2004
  • Laatst online: 21-11-2016
In Samba kun je unix extensions aanzetten, dan stuurt samba heel droog de symlinks direct door naar al je unix clients. Dit kun je uitzetten in smb.conf ("unix extensions = no") dan werkt alles zoals het ook op je Windows bakken werkt.

Je kan natuurlijk ook mount --bind gebruiken, maar dat is een beetje een vieze oplossing. Symlinks vind ik persoonlijk mooier.

Too many people, making too many problems


  • cooper_s1
  • Registratie: Augustus 2001
  • Laatst online: 18-02 16:28

cooper_s1

MINI&#039;s rule

_Squatt_ schreef op 15 juli 2004 @ 15:11:
[...]

Dan wijst mp3account naar /home/mp3 op de client. Wat zou dit precies oplossen?
Ik bedoel dat deze sym-link op de server aanwezig is, dus in de homedir van een
account.

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Als je unix extensions aan hebt staan, wordt die symlink als symlink doorgegeven. De client ziet dus niet een directory met de naam 'mp3account' maar een symlink (met de naam 'mp3account') die wijst naar '../mp3' (of '/home/mp3'). Die symlink wordt op de client gedereferenced, en zal dus wijzen naar '../mp3' (of '/home/mp3') op de client.

Of de symlink op de server nu een relatief of absoluut pad bevat maakt niets uit, de client zal het als een symlink zien, en die lokaal dereferencen.

"He took a duck in the face at two hundred and fifty knots."

Pagina: 1