[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Solaris automout entry progress!



Ok, I think I found the answer...or part of it.

  Solaris Bug ID: 4379906

Basically this bug acknowledges that automountd does not work
properly for entries containing wildcards ('*' or '&') in LDAP
because of incorrect character encoding.

I attached some debugging output I got from the OpenLDAP server
and automountd.  Apparently automountd tries to search the map for '*'
even after finding the correct entry, and then the bug kicks in and
breaks everything.

in the automountd debug, you see it looking for (cn=a).  It's actually
'(cn=\02a)' (as seen on the OpenLDAP side), which should be '(cn=\2a)',
which is like '(cn=*)'.

So it looks like I won't have the Solaris8 automounter working
until Sun fixes the bug.

-Dave


"David L. Armstrong" wrote:
> 
> All,
> 
> Ok, just so y'all know.  I'm looking at the Solaris8 source for
> automountd right now, and have a few more things to try.  For those
> of you who also have the source, the important routines are in:
> 
> osnet_volume/usr/src/cmd/fs.d/autofs/ns_ldap.c
> 
> These are specific for automountd, seperate from nss_ldap.  According
> to one of the comments and the OpenLDAP debug output, automount entries
> should have the following syntax:
> 
>    dn: cn=local,nismapname=auto_import,LDAP_BASE
>    objectclass: nisobject
>    objectclass: top #(is this necessary?  Sorry, don't know LDAP that well :) )
>    nismapname: auto_import
>    cn: local
>    nismapentry: -ro,nosuid hosta:/export/local
> 
> Now I'm still haveing some problems.
>  - It doesn't seem to like my auto_master map to find the auto_import map.
>  - With a /import entry in /etc/auto_master it finds the auto_import map ok.
>  - I can also see each of my entries (like local) under /import (I'm not
>    using '-nobrowse' for now)
>  - 'cd /import/local' still doesn't work.  I get 'Permission denied' and I
>    don't see any traffic going to 'hosta'
> 
> I'll keep plugging, and I think chances of success look good once I get the
> entries correct.
> 
> -Dave
> 
> Tomas Maly wrote:
> >
> > I've been using the open source automounter with linux (I compile it
> > from source), and have it working in a production network with no
> > issues. Just so you know.
> >
> > Archive User wrote:
> >
> > > >>Solaris LDAP client says it requires the following LDAPv3 features:
> > >
> > > >These are not LDAPv3 features.  That is, they are not part
> > > >of the "core" protocol.  They are elective extensions to
> > > >LDAPv3.
> > >
> > > >OpenLDAP elects not implement these extensions.
> > >
> > > Is there anyother way to support the automounter with Solaris 8
> > > client? This is going to force me to use another LDAP server
> > > if there isn't.
> > >
> > > Thanks.. Mike
> 
> --
> David L. Armstrong
> Blackstone Technology Group
> armstd@computefarm.com
> (408) 295-7295 x5306

-- 
David L. Armstrong
Blackstone Technology Group
armstd@computefarm.com
(408) 295-7295 x5306
from: /usr/lib/autofs/automountd -TTTTTv

root@dalk: /import (358) cd btg-dist/
t8      LOOKUP REQUEST: Wed Mar 28 16:41:33 2001
t8        name=btg-dist[] map=auto_import opts= path=/import direct=0
t8      LOOKUP REPLY    : status=0
t8      MOUNT REQUEST:   Wed Mar 28 16:41:33 2001
t8        name=btg-dist[] map=auto_import opts= path=/import direct=0
t8      getmapent_ldap called
t8      getmapent_ldap: key=[ btg-dist ]
t8      ldap_match called
t8      ldap_match: key =[ btg-dist ]
t8      ldap_match: ldapkey =[ btg-dist ]
t8      ldap_match: searchfilter =[ (&(objectClass=nisObject)(nisMapName=auto_import)(cn=btg-dist)) ]
t8        ldap_match: Requesting list for (&(objectClass=nisObject)(nisMapName=auto_import)(cn=btg-dist))
t8        ldap_match: __ns_ldap_list OK
t8      ldap_match called
t8      ldap_match: key =[ a ]
t8      ldap_match: ldapkey =[ a ]
t8      ldap_match: searchfilter =[ (&(objectClass=nisObject)(nisMapName=auto_import)(cn=a)) ]
t8        ldap_match: Requesting list for (&(objectClass=nisObject)(nisMapName=auto_import)(cn=a))
t8        ldap_match: __ns_ldap_list FAILED (2)
t8      getmapent_ldap: exiting ...
t8        do_mount1:
t8      MOUNT REPLY    : status=13, AUTOFS_DONE
t1      LOOKUP REQUEST: Wed Mar 28 16:41:33 2001
t1        name=btg-dist[] map=auto_import opts= path=/import direct=0
t1      LOOKUP REPLY    : status=0
t9      MOUNT REQUEST:   Wed Mar 28 16:41:33 2001
t9        name=btg-dist[] map=auto_import opts= path=/import direct=0
t9      getmapent_ldap called
t9      getmapent_ldap: key=[ btg-dist ]
t9      ldap_match called
t9      ldap_match: key =[ btg-dist ]
t9      ldap_match: ldapkey =[ btg-dist ]
t9      ldap_match: searchfilter =[ (&(objectClass=nisObject)(nisMapName=auto_import)(cn=btg-dist)) ]
t9        ldap_match: Requesting list for (&(objectClass=nisObject)(nisMapName=auto_import)(cn=btg-dist))
t9        ldap_match: __ns_ldap_list OK
t9      ldap_match called
t9      ldap_match: key =[ a ]
t9      ldap_match: ldapkey =[ a ]
t9      ldap_match: searchfilter =[ (&(objectClass=nisObject)(nisMapName=auto_import)(cn=a)) ]
t9        ldap_match: Requesting list for (&(objectClass=nisObject)(nisMapName=auto_import)(cn=a))
t9        ldap_match: __ns_ldap_list FAILED (2)
t9      getmapent_ldap: exiting ...
t9        do_mount1:
t9      MOUNT REPLY    : status=13, AUTOFS_DONE
bash: cd: btg-dist/: Permission denied
root@dalk: /import (359) t4     auto_import cache still valid









from: LDAP server in debug mode

#looks like scanning for supportedcontrols
conn=6 op=0 SRCH base="" scope=0 filter="(objectClass=*)"

#looks like scanning for supportedcontrols (again?!)
conn=6 op=1 SRCH base="" scope=0 filter="(objectClass=*)"

conn=6 op=2 SRCH base="nismapname=auto_import,dc=PC13,dc=btgp,dc=com" scope=1 filter="(&(objectClass=nisObject)(nisMapName=auto_import)(cn=btg-dist))"

# Looks like client unbinds, and starts over
conn=6 op=3 UNBIND

#looks like scanning for supportedcontrols
conn=7 op=0 SRCH base="" scope=0 filter="(objectClass=*)"

#looks like scanning for supportedcontrols (again?!)
conn=7 op=1 SRCH base="" scope=0 filter="(objectClass=*)"

# search for '*' anyway?
conn=7 op=2 SRCH base="nismapname=auto_import,dc=PC13,dc=btgp,dc=com" scope=1 filter="(&(objectClass=nisObject)(nisMapName=auto_import)(cn=\02a))"

# unbind from server
conn=6 op=3 UNBIND