[Samba] smbclient -L laat geen services met lange namen zien

Pagina: 1
Acties:

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02-05 01:32
Zoals beloofd nog een vraag over een andere vaagheid van Samba; deze keer smbclient. Ik werk nog steeds met Samba 2.2.8a onder FreeBSD 5.0 release; geinstalleerd uit de ports.

Met "smbclient -L <hostname>" kun je de beschikbare services van een Netbios host opvragen (zoals bijvoorbeeld "\\fileserver\mp3"). Dat ziet er dan ongeveer zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Domain=[SNT] OS=[Unix] Server=[Samba 2.2.3a-12.3 for Debian]

        Sharename      Type      Comment
        ---------      ----      -------
        public         Disk      Public SNT share
        IPC$           IPC       IPC Service (SNT FTP server)
        ADMIN$         Disk      IPC Service (SNT FTP server)

        Server               Comment
        ---------            -------
        DROPJE               
        FTP                  SNT FTP server
        WWW                  SNT WWW

        Workgroup            Master
        ---------            -------
        SNT                  DROPJE

Dat werkt best aardig, behalve dat naar mijn ervaring services met een naam langer dan 12 karakters niet in het lijstje weergegeven worden! Dit heb ik getest door shares met steeds langere namen aan te maken tot ze niet meer weergegeven worden. Heel "toevallig" corresponderen die 12 karakters ook precies met de breedte van de sharename kolom, wat doet vermoeden dat smbclient de hele regel maar niet weergeeft als de naam toevallig niet netjes in eerste kolom past.

Nu vind ik dit natuurlijk een idiote beperking, zeker als je bedenkt dat een redelijk gebruikelijke en beknopte naam als "Documentation" al te lang is! Mijn vraag is dan ook hoe ik op een betrouwbare manier alle beschikbare shares kan opvragen. Kan smbclient dat op een alternatieve manier? Of is het nodig in de source code van smbclient te hacken (met alle onderhoudsperikelen van dien)? Hebben andere Samba versies (zoals 3.0 beta of TNG) hier ook last van? Is er eventueel een andere tool om sharenamen mee uit te lezen, zonder gelijk een heel SMB pakket te hoeven installeren (zoals Sharity bijvoorbeeld)?

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-04 08:10

RvdH

Uitvinder van RickRAID

Ik vraag me af of het Samba-specifiek is, want ik kwam er laatst achter dat Win98 ook geen shares kan benaderen van over de 13 characters.
In samba kun je die wel aanmaken, dus of daar het probleem ligt..
Misschien is het gewoon protocol?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02-05 01:32
strlen schreef op 18 July 2003 @ 15:36:
Ik vraag me af of het Samba-specifiek is, want ik kwam er laatst achter dat Win98 ook geen shares kan benaderen van over de 13 characters.
In samba kun je die wel aanmaken, dus of daar het probleem ligt..
Misschien is het gewoon protocol?
In Windows 2000 kan ik ze ook wel gewoon aanmaken (en ik kan er ook zonder problemen op verbinden) en ik kan Samba shares van meer dan 12 karakters ook gewoon zien (en benaderen) onder Windows 2000. (Samba geeft echter wel de melding: "WARNING: You have some share names that are longer than 8 chars. These may give errors while browsing or may not be accessible to some older clients.").

Zou het kunnen dat het iets te maken heeft met het onderscheid tussen CIFS en SMB? Als ik goed geïnformeerd ben, is CIFS een uitgebreide variant op SMB. Vandaar dat misschien CIFS clients (zoals Sharity en Windows vanaf NT4) wel langere bestandsnamen ondersteunen en SMB clients niet? Het vreemde is dan wel dat Samba geen enkele moeite heeft met het delen of benaderen van services met lange namen, dus dan blijf ik het vreemd vinden dat smbclient deze beperking opeens wel zou kennen.

Op Google kan ik hier niet direct een bevestiging van vinden (het is ook wel vervelend dat van Netbios, CIFS en SMB allemaal geen eenduidige, officiële specificaties bestaan). Als iemand nog nuttige pointers heeft, dan hoor ik het graag.

[ Voor 8% gewijzigd door Soultaker op 18-07-2003 16:02 ]


  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 21:58

Vae Victis

Dark Lord of the Sith

Wat ik er van terug kan vindne is dat NT een limiet had van 12 chars en met NT5 zou dat opgelost moeten zijn.
Maar dat is geen reden dat smbclient die shares niet bij jou laat zien.
Als ik zelf even een share aanmaak van +12 chars dan krijg ik hem wel te zien. Alleen is die dan wel ingekort.
code:
1
2
3
        homes          Disk
        directorydiee  Disk
        IPC$           IPC       IPC Service (Vae Slack)

Originele naam = directorydieextreemlangis
Mijn samba versie = 2.2.8a

Dus lijkt me dat er bij jou wat verkeerd zit?
Of een oudere versie die er anders ermee omgaat.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02-05 01:32
Vae Victis schreef op 18 July 2003 @ 16:22:
Maar dat is geen reden dat smbclient die shares niet bij jou laat zien.
Als ik zelf even een share aanmaak van +12 chars dan krijg ik hem wel te zien. Alleen is die dan wel ingekort.

Dus lijkt me dat er bij jou wat verkeerd zit?
Of een oudere versie die er anders ermee omgaat.
Ik gebruik ook Samba 2.2.8a en je hebt gelijk; ik heb nog even wat verder geëxperimenteerd met de verschillen tussen Samba (onder FreeBSD5), en Windows 2000. Ook heb ik ter vergelijking Pysmb gebruikt, om even te zien of die dezelfde resultaten geeft. (De conclusie is tot nu toe, ja: Pysmb gedraagt zich exact hetzelfde als smbclient).

De belangrijkste conclusie is dat het gedrag van Windows 2000 en Samba (als hosts) verschilt. Een service van Windows 2000 wordt niet weergegeven wanneer deze meer dan 12 karakters heeft. Een service van Samba wordt afgekort tot 13 (!) karakters (wanneer deze meer dan 13 karakters heeft). Jouw voorbeeld kan ik dus correct reproduceren.

Mijn hypothese is op dit moment dat er twee manieren zijn om de services op te vragen. Een ouderwetse (SMB?) met een limiet van 13 (of 12?!) karakters per sevice, en een nieuwe (CIFS?) waarbij er geen limiet geldt. Bij gebruik van de ouderwetse methode mag de SMB host beslissen wat 'ie doet met shares die een te lange naam hebben en blijkbaar kiest Windows 2000 ervoor om ze weg te laten, terwijl Samba ze verkort weergeeft.

Dat laatste is vrij nutteloos, aangezien het NIET mogelijk is om op de verkorte naam te verbinden (de Samba host geeft dan aan dat de gevraagde service niet bestaat). Zowel Windows 2000 als Samba ondersteunen echter ook de 'moderne' methode, want in de Windows explorer en met de smbclient kan ik gewoon services met een lange naam benaderen. Kan het zo zijn dat de Samba suite weliswaar services met een lange naam ondersteunt, maar dat smbclient deze niet kan weergeven? Ik zou dat bijzonder vreemd vinden, maar ik kon er op internet niets over vinden. Al met al moet ik zeggen dat ik (mede door mijn eerdere probleem) nogal teleurgesteld begin te raken over Samba, terwijl het zo'n gangbare applicatie is.

Weet iemand nog een alternatieve manier om de volledige share names te benaderen? Het lijkt me dat dit toch mogelijk moet zijn. Weet iemand of dit probleem ook optreedt bij Samba 3 of TNG? (Ik kan dat ook wel zelf testen, maar het herinstalleren van Samba brengt nogal wat rompslomp met zich mee, dus als iemand het al draait en even snel zou kunnen testen, zou ik erg blij zijn.)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02-05 01:32
Ik geef 'm bij deze eenmalig een schop; in de hoop dat er nog iemand met een goede suggestie (of een waarneming onder Samba 3 of TNG) komt.
Pagina: 1