Directory listing in libsmbclient.so
Simo Sorce
simo.sorce at polimi.it
Wed Dec 27 18:46:45 GMT 2000
On Wed, 27 Dec 2000, Christopher R. Hertel wrote:
> > On Wed, 27 Dec 2000, Michael B. Allen wrote:
> >
> > > On Tue, Dec 26, 2000 at 10:46:12PM +1000, Richard Sharpe wrote:
> > > > Does anyone have any comments on this ...
> >
> > > At one time thought about this for jcifs, although we do not support it
> > > yet, is if the path points to a file it is resolved. If the path is to
> > > a directory(or share) do a TRANS2_FIND_FIRST2/NEXT2. If the path does
> > > not include the share do a NetShareEnum. If only smb:// is specified
> > > list names of servers from the master browser(or perhaps broadcast a
> > > node status but that might be rather rude).
>
> Mike: What Richard was talking about was doing a list of available
> workgroups/NTDomains at this point. A call to smb://workgroup/ would
> list the servers in that workgroup/NTDomains.
>
> > > Also, jcifs uses the following syntax to specify a resource as a URL:
> >
> > > smb://domain\user:password@host:port/share/dir/file
>
> If possible, it would be nice to get rid of the backslash. ('\') I would
> like to see a nominal standard come out of this discussion.
>
> > > but someone suggested that a domain is different from a
> > > workgroup? Programmatically maybe but in practice is it profitable to
> > > differentiate the two?
> >
> > Yes, it is important to differentiate.
>
> At what level?
>
> > If you support specifying a workgroup,
> > it needs to be done separately from the specification of the domain.
>
> Why?
Because ntdomains may have trust relationship so that user joe of
ntdomain1 may be valid user of ntdomain2
so if you want to connect to a share on a server in ntdomain1 as user joe
of ntdomain2 you should use a command like:
smb://ntdomain2/joe@ntdomain1/server/share
or
smb://ntdomain2/joe@server/share
as servers domain name is not really important (but will give a sense of
hierarchy anyway)
>
> > Effectively, 'domain\user' is the username you're using for authentication.
> > What if a user wishes to browse workgroup2, using his credentials from
> > domain1? This should be allowed, and with inter-domain trust relationships it
> > may even be necessary.
>
> An ntdomain is simply an extension of a workgroup. The ntdomain provides
> the additional functionality of:
> - Cross-subnet browsing (via the DMB, but this is not significant to this
> discussion)
> - A single sign-on.
>
> This latter is the critical point, but it can be hidden from the user.
> The syntax of the URI does not need to be different and the user should
> *not* need to care if the name represents a workgroup or an ntdomain.
>
> > I'm glad that support for browsing workgroups is being considered for
> > libsmbclient. I always thought it was a major shortcoming of smbsh that
> > you could only browse one workgroup per smbsh instance. However, I really
> > don't think the workgroup should be part of the smb:// URI. The problem is
> > that workgroups don't add heirarchical information.
>
> Right, they are not heirarchical, but then neither are NetBIOS names.
> Still, if there are multiple workgroups/ntdomains available on the local
> wire, then the user should be able to access then all. To do so, you
> need to be able to specify the workgroup. I see no reason to lock this
> down in a config file.
>
> > True, they're a useful
> > tool for finding servers on the network, but the standard syntax for a URI is
> > protocol://[user[:password]@]host[.domain][:port]/[directory/[subdir/]][file];
> > the workgroup name doesn't provide any information needed to locate a
> > resource, and therefore doesn't fit in this scheme. It certainly shouldn't
> > displace the hostname.
>
> No, it would replace the domain if this scheme were used.
>
> The problem, though, is that Windows allows either DNS or NetBIOS names to
> be used to specify a service providing host. libsmbclient should follow
> suit (much to my chagrin). In this case, the domain in the format above
> would be the DNS domain. Thus, we don't really have a place for the
> workgroup/ntdomain field given the above syntax.
>
> > I do still think it's important to provide access to browse lists, I just
> > don't think supporting this feature should introduce complexity into the URI
> > used for file access.
>
> A browse list can be thought of as a directory. It's not much
> different. The hierarchy would be:
>
> workgroup/ntdomain
> \----> Server
> \----> service
> \----> directory
>
> Not unreasonable. That would give us something like:
>
> smb://workgroup/[user[:password]@]host[.domain][:port]/[directory/[subdir/]][file]
>
> where workgroup is either a workgroup or ntdomain, and calling up
>
> smb://
>
> would call up the list of available workgroups/ntdomains, and
>
> smb://workgroup/
>
> would provide the browse list of a specific workgroup/domain, etc.
>
> > or something similar? Basically, using a scheme that makes it clear we're
> > looking at a browselist rather than at a share list on a server,
>
> I see no advantage in this. It just makes it more complex for the user.
>
> > Or maybe it would be better to use something like
> >
> > nbns://<user>:<password>@<workgroup>/
> >
> > since we're effectively looking at two different resource types here anyway?
> > There's no reason why the above URI couldn't be used to provide a list of
> > links to smb://<user>:<password>@<server>/ resources.
>
> I have never seen a dns:// URI, and I don't think one is needed. Nor do
> I think we need to have an nbns:// URI. This gets handled behind the scenes.
>
> Chris -)-----
>
>
--
Simo Sorce - Integrazione Sistemi Unix/Windows - Politecnico di Milano
E-mail: simo.sorce at polimi.it
Tel.int: 02 2399 2425 - Fax.int. 02 2399 2451
-----------------------------------------------------------------
Be happy, use Linux!
More information about the samba-technical
mailing list