Hi, I already posted this to smb-clients, but I believe that is a very low volume list. We have a very complicated dfs root. Now I'm not positive that this is how we should have done things, but it works very well with Windows clients, so it hasn't been thought about here. This does not work with smbclient or smbmount. I'm using freshly built smbclient from Samba 3.0.21a. Anyway, here is the issue. We have a very large namespace via one root that is currently active directory based. We have many dfs links that work like this. Let's say our domain is called DOMAIN, and the root is called dfs. \\DOMAIN\dfs <file:///\\DOMAIN\dfs> is then mapped to an empty folder.>From there, we have many dfs links, such as:Users\testuser which is mapped in DFS to \\fileserver1\share\Users\testuser <file:///\\fileserver1\share\Users\testuser> , which works easily in windows to seamless take the user who access \\domain\dfs\users\testuser <file:///\\domain\dfs\users\testuser> to the folder \\fileserver1\share\users\testuser <file:///\\fileserver1\share\users\testuser> . This does NOT work under smbclient. I think that we just need to be able to map users to something beyond the actual share. It looks like it could be fixed by modifying the code to handle the slashes correctly (see the error below). Here is the log from smbclient with the -d 3 debugging option: sh-3.00$ smbclient //tc.cornell.edu/tc -k -d 3 lp_load: refreshing parameters Initialising global parameters params.c:pm_process() - Processing configuration file "/etc/samba/smb.conf" Processing section "[global]" Can't find include file /etc/samba/smb.conf. added interface ip=128.84.31.152 bcast=128.84.31.255 nmask=255.255.255.0 Client started (version 3.0.21a). resolve_hosts: Attempting host lookup for name tc.cornell.edu<0x20> Connecting to 128.84.5.22 at port 445 Doing spnego session setup (blob length=111) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcdc04$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2] resolve_hosts: Attempting host lookup for name tc.cornell.edu<0x20> Connecting to 128.84.43.250 at port 445 Doing spnego session setup (blob length=111) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcdc03$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST dos_clean_name [] resolve_hosts: Attempting host lookup for name ctcfsrv10<0x20> Connecting to 128.84.29.24 at port 445 Doing spnego session setup (blob length=113) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcfsrv10$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST resolve_hosts: Attempting host lookup for name ctcfsrv10<0x20> Connecting to 128.84.29.24 at port 445 Doing spnego session setup (blob length=113) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcfsrv10$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST dos_clean_name [] resolve_hosts: Attempting host lookup for name CTCFSRV11<0x20> Connecting to 128.84.29.25 at port 445 Doing spnego session setup (blob length=113) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcfsrv11$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST resolve_hosts: Attempting host lookup for name CTCFSRV11<0x20> Connecting to 128.84.29.25 at port 445 Doing spnego session setup (blob length=113) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcfsrv11$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST dos_clean_name [] dos_clean_name [] smb: \> cd cbsu dos_clean_name [\cbsu\] dos_clean_name [\cbsu\\] resolve_hosts: Attempting host lookup for name ctcfsrv6.tc.cornell.edu<0x20> Connecting to 128.84.40.20 at port 445 Doing spnego session setup (blob length=112) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcfsrv6$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST resolve_hosts: Attempting host lookup for name ctcfsrv6.tc.cornell.edu<0x20> Connecting to 128.84.40.20 at port 445 Doing spnego session setup (blob length=112) got OID=1 2 840 48018 1 2 2 got OID=1 2 840 113554 1 2 2 got OID=1 2 840 113554 1 2 2 3 got OID=1 3 6 1 4 1 311 2 2 10 got principal=ctcfsrv6$@TC.CORNELL.EDU Doing kerberos session setup Ticket in ccache[FILE:/tmp/krb5cc_16777216_onPqOV] expiration Wed, 01 Feb 2006 19:25:27 EST dos_clean_name [] dos_clean_name [] dos_clean_name [\CTCFSRV11\tc\cbsu] dos_clean_name [\cbsu] smb: \cbsu\> cd / dos_clean_name [\] dos_clean_name [\\] smb: \> cd users\law dos_clean_name [\users\law\] dos_clean_name [\users\law\\] resolve_hosts: Attempting host lookup for name ctcfsrv9.tc.cornell.edu\tc_q\users<0x20> Connection to ctcfsrv9.tc.cornell.edu\tc_q\users failed Unable to follow dfs referral [//ctcfsrv9.tc.cornell.edu\tc_q\users/law] cd \users\law\: NT_STATUS_PATH_NOT_COVERED Thanks! William Law
On Wed, Feb 01, 2006 at 08:22:37PM -0500, William Law wrote:> > I already posted this to smb-clients, but I believe that is a very low > volume list. > > We have a very complicated dfs root. Now I'm not positive that this is > how we should have done things, but it works very well with Windows > clients, so it hasn't been thought about here. This does not work with > smbclient or smbmount. I'm using freshly built smbclient from Samba > 3.0.21a. > > Anyway, here is the issue. We have a very large namespace via one root > that is currently active directory based. > > We have many dfs links that work like this. Let's say our domain is > called DOMAIN, and the root is called dfs. > > \\DOMAIN\dfs <file:///\\DOMAIN\dfs> is then mapped to an empty folder. > >From there, we have many dfs links, such as: > > Users\testuser which is mapped in DFS to > \\fileserver1\share\Users\testuser > <file:///\\fileserver1\share\Users\testuser> , which works easily in > windows to seamless take the user who access \\domain\dfs\users\testuser > <file:///\\domain\dfs\users\testuser> to the folder > \\fileserver1\share\users\testuser > <file:///\\fileserver1\share\users\testuser> . > > This does NOT work under smbclient. I think that we just need to be > able to map users to something beyond the actual share. It looks like > it could be fixed by modifying the code to handle the slashes correctly > (see the error below). Here is the log from smbclient with the -d 3 > debugging option:What would help to get this fixed is a simple example of this expressed as a set of Samba server-side DFS symlinks, so I can try and reproduce this. Can you provide that for me please ? Thanks, Jeremy.
Gerald (Jerry) Carter
2006-Feb-08 13:53 UTC
[Samba] DFS redirection to sub-folders beyond share
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jeremy Allison wrote:>> Users\testuser which is mapped in DFS to >> \\fileserver1\share\Users\testuser >> <file:///\\fileserver1\share\Users\testuser> , which works easily in >> windows to seamless take the user who access \\domain\dfs\users\testuser >> <file:///\\domain\dfs\users\testuser> to the folder >> \\fileserver1\share\users\testuser >> <file:///\\fileserver1\share\users\testuser> . >> >> This does NOT work under smbclient. I think that we just need to be >> able to map users to something beyond the actual share. It looks like >> it could be fixed by modifying the code to handle the slashes correctly >> (see the error below). Here is the log from smbclient with the -d 3 >> debugging option: > > What would help to get this fixed is a simple example of this > expressed as a set of Samba server-side DFS symlinks, so I can try and > reproduce this.If I understand you correctly, Windows is just doing a tcon&X and the changing to the directory. Smbclient is not performing those extra steps for you. Nor will some older Microsoft clients (such as NT4 I expect). cheers, jerry -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFD6ff6IR7qMdg1EfYRAjsAAJ945xK/TlmyFOGM8pW1R9rS1ayQsgCg8zQH 3q7Z3h9ufXqiTyAV3pAR6uI=s93O -----END PGP SIGNATURE-----