Subject: when to use login.conf.db?
To: None <netbsd-help@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: netbsd-help
Date: 01/17/2006 22:56:52
I see reference in login.conf(5) manual page for:

  /etc/login.conf.db  hashed database built with cap_mkdb(1)

I am using NetBSD 2.1 and have used /etc/login.conf various times with 
older versions of NetBSD.

When is the hashed database .db version used?

Can anything generate it automatically? Or do you always manually run 
cap_mkdb as needed?

What code checks to see if the .db version is available versus plain text 
login.conf?

I don't see the relevant documentation. I am looking at 
src/lib/libutil/login_cap.c, getcap(3) man page and other files.

OpenBSD's login.conf manual page says:

=-=-=-=-=-=-=-=-=-
 Sites with very large /etc/login.conf files may wish to create a database
 version of the file, /etc/login.conf.db, for improved performance.  Using
 a database version for small files does not result in a performance
 improvement.  To build /etc/login.conf.db from /etc/login.conf the fol-
 lowing command may be used:

       # cap_mkdb /etc/login.conf

 Note that cap_mkdb(1) must be run after each edit of /etc/login.conf to
 keep the database version in sync with the plain file.
=-=-=-=-=-=-=-=-=-

And FreeBSD's, DragonFly's and OpenBSD's getcap(3) manual page says:

 cgetent() will first look for files ending in ``.db'' (see cap_mkdb(1)) 
 before accessing the ASCII version of the capability database.

But the FreeBSD Handbook says different:

=-=-=--=-=-=-=-=-
 Note: The system does not read the configuration in /etc/login.conf 
 directly, but reads the database file /etc/login.conf.db. To generate 
 /etc/login.conf.db from /etc/login.conf, execute the following command:

 # cap_mkdb /etc/login.conf  
=-=-=--=-=-=-=-=-

How is it done in NetBSD? Where documented?

 Jeremy C. Reed

 	  	 	 Media Relations and Publishing Services
	  	 	 http://www.reedmedia.net/