header pictures for dedicated hosting services header image of world
Guests Visit the FreeBSD Forums  •  Login to the FreeBSD Forums  •  Register for FREE

HEADS UP: New NSS for FreeBSD

Author
Thread       
admin
Administrator

Registered: Jan 2002
Location:
Posts: 2480

HEADS UP: New NSS for FreeBSD

Jacques A. Vidrine says he is about to commit a new name service switch (NSS) implementation. The new implementation preserves the nsdispatch(3) interface, and consumers of nsdispatch continue to work without modification. In addition to NSS core, he is also committing completely new implementations of the getpwent(3) and getgrent(3) family of functions. Thanks, mezz, our moderator, for the news item.

[Read email announcement]
---------------------------------------------------------------------
Date: Thu, 17 Apr 2003 09:11:33 -0500
From: "Jacques A. Vidrine" <nectar@FreeBSD.org>
To: freebsd-current@FreeBSD.org
Subject: HEADS UP: new NSS

Hello Everyone,

[Skip to WARNINGs below if you read nothing else.]

I am about to commit a new name service switch (NSS) implementation.
The new implementation preserves the nsdispatch(3) interface, and
consumers of nsdispatch continue to work without modification.
However, now the method_name argument (in addition to the dtab
argument) is used to lookup backend implementations, which may be
built-in statically or loaded via dlopen(3).

Within libc, there are several consumers of nsdispatch. Each use
in effect defines an interface [1]. Unfortunately, the interfaces
brought in from NetBSD leave something to be desired. Most
importantly, they do not allow for thread safety. Also important is
that they are inconsistent in both naming conventions and semantics.
Because of this, it is necessary rework each consumer a bit to (a) add
thread safety and (b) provide an interface that can be utilized by NSS
modules.

For the moment, in addition to the NSS core, I am committing
completely new implementations of the getpwent(3) and getgrent(3)
family of functions. Please report any anomalies to me directly, as
well as on this list.

Other nsdispatch consumers will be updated once this has settled a
bit. Notably, the resolver-related routines (gethostby*, getaddrinfo)
still need to be updated and required quite a bit of work.

I am also adding a nss_ldap Port which supports getpwent(3),
getgrent(3). Similarly, I am committing a WITH_WINBIND_NSS knob to
the samba Port which will build and install nss_windbind.

WARNING: Please back up your pwd.db/spwd.db databases. A new (but
backwards-compatible) on-disk format will be used when you next run
pwd_mkdb(8) (or when vipw(8) runs it for you). The new format can
be moved from one architecture to another.

WARNING: The `compat' code was and is very hairy. Users who utilize
NIS using the old `+::::::' entries in passwd(5) (or exclusion lists,
or netgroups) should be especially wary. The new code is not bug
compatible with the old code, but I believe it is correct.

(By the way, I could use help from interested doc committers. Please
contact me off-list.)

Cheers,
--
Jacques A. Vidrine <nectar@celabo.org> http://www.celabo.org/
NTT/Verio SME . FreeBSD UNIX . Heimdal Kerberos
jvidrine@verio.net . nectar@FreeBSD.org . nectar@kth.se

[1] If you've looked at nsdispatch before, you know that it uses
variable arguments. The number, type, and usage of these arguments,
as well as the method_name, make up the interface. In order to
facilitate adopting existing NSS modules for FreeBSD, I am attempting
to track the interfaces used on Linux (e.g., in addition to the
obvious arguments to getpwnam_r, the NSS interface also includes
explicit handling of errno).

Report this post to a moderator | IP: Logged

03-21-2003 04:42 AM
 
softweyr
BSD n00b

Registered: Apr 2003
Location: San Diego
Posts: 6

 

Woohoo! Directory-enabled at last!

Finally a version of FreeBSD that can fully participate in directory managed networks. This has been a long time coming; I wrote about this in the very first Daemon's Advocate column way back in September of 1998.

Now, using NSS modules for network directories like LDAP (or NTLM, if you're perverse enough to try that), you can fully join modern managed networks where devices pull their configuration information from a policy server rather than having the administration push the configuration onto the devices. This is a big step forward for FreeBSD and something everyone should concentrate on testing and stabilizing as quickly as possible. Thank you, Jacques, and to Robert Watson for providing funding for this critical development.

 

__________________
"Where am I, and what am I doing in this handbasket?"

Report this post to a moderator | IP: Logged

04-18-2003 10:21 PM
 
vroom
BSD n00b

Registered: Jan 2003
Location: Detroit, Michigan
Posts: 41

Is there any documentation available where we could read more about how this works?

Report this post to a moderator | IP: Logged

05-08-2003 06:58 PM
 
softweyr
BSD n00b

Registered: Apr 2003
Location: San Diego
Posts: 6

Documentation? Of course!

vroom asks "Is there any documentation available where we could read more about how this works?"

But of course! The nsswitch.conf(5) man page on a recent FreeBSD-CURRENT will tell you what nsswitch can do. We don't yet have a tutorial, but will try to get one into Daemon News or other media site ASAP.

 

__________________
"Where am I, and what am I doing in this handbasket?"

 

Report this post to a moderator | IP: Logged

05-09-2003 07:04 AM
 

 

 

 

Looking for our FreeBSD Forums? We have moved them off our main page,just follow the link to our FreeBSD Forums page.


Copyright © 2009, WEBSERVER CONSUMER GUIDE

Privacy Policy

Please note:
(1) FreeBSD is a registered trademark of The FreeBSD Foundation.
(2) WEBSERVER CONSUMER GUIDE is in no way affiliated with The FreeBSD Foundation