The basic idea is to put the implementation of the different services offered to access the databases in separate modules. This has some advantages:
To fulfill the first goal above, the ABI of the modules will be described below. For getting the implementation of a new service right it is important to understand how the functions in the modules get called. They are in no way designed to be used by the programmer directly. Instead the programmer should only use the documented and standardized functions to access the databases.
The databases available in the NSS are
aliasesMail aliases
ethersEthernet numbers,
groupGroups of users, see Group Database.
gshadowGroup passphrase hashes and related information.
hostsHost names and numbers, see Host Names.
initgroupsSupplementary group access list.
netgroupNetwork wide list of host and users, see Netgroup Database.
networksNetwork names and numbers, see Networks Database.
passwdUser identities, see User Database.
protocolsNetwork protocols, see Protocols Database.
publickeyPublic keys for Secure RPC.
rpcRemote procedure call names and numbers.
servicesNetwork services, see The Services Database.
shadowUser passphrase hashes and related information.
More databases may be added later.