The nsswitch.conf file is essentially a list of 16 types of information and the sources that getXXbyYY() routines search for that information. The 16 types of information, not necessarily in this order, are the following.
aliases
bootparams
ethers
group
hosts
ipnodes
netgroup
netmasks
networks
passwd, which includes shadow information
protocols
publickey
rpc
services
automount
sendmailvars
The following table provides a description of the kind of sources that can be listed in the switch file for the information types above.
Table 2–1 Switch File Information Sources
Information Sources |
Description |
---|---|
files |
A file stored in the client's /etc directory. For example, /etc/passwd |
nis |
An NIS map. For example, the hosts map. |
compat |
compat can be used for password and group information to support old-style + or - syntax in /etc/passwd, /etc/shadow, and /etc/group files. |
dns |
Can be used to specify that host information be obtained from DNS. |
ldap |
Can be used to specify entries be obtained from the LDAP directory. |
Single Source. If an information type has only one source, such as nisplus a routine using the switch searches for the information in that source only. If the routine finds the information, the routine returns a success status message. If the routine does not find the information, the routine stops searching and returns a different status message. What the routine does with the status message varies from routine to routine.
Multiple Sources. If a table contains multiple sources for a given information type, the switch directs the routine to search in the first listed source. If the routine finds the information, the routine returns a success status message. If the routine does not find the information in the first source, the routine tries the next source. The routine searches all sources until the routine has found the information, or until the routine is halted by a return specification. If all of the listed sources are searched without finding the information, the routine stops searching and returns a non-success status message.
If a routine finds the information, the routine returns a success status message. If the routine does not find the information, the routine returns one of three error status messages. Possible status messages are listed in the following table.
Table 2–2 Switch Search Status Messages
Status Message |
Meaning of Message |
---|---|
SUCCESS |
The requested entry was found in the specified source. |
UNAVAIL |
The source is either unresponsive or unavailable. In other words, neither the NIS map, nor the /etc file could be found or be accessed. |
NOTFOUND |
The source responded with “No such entry.” In other words, the table, map, or file was accessed but the needed information was not found. |
TRYAGAIN |
The source is busy. The source might respond next time. In other words, the table, map, or file was found, but could not respond to the query. |
You can instruct the switch to respond to status messages with either of the two actions shown in the following table.
Table 2–3 Responses to Switch Status Messages
Action |
Meaning |
---|---|
return |
Stop looking for the information. |
continue |
Try the next source. |
The combination of nsswitch.conf file status message and action option determines what the routine does at each step. The combination of status and action make up the search criteria.
The switch's default search criteria are the same for every source. As described in terms of the status messages listed above, see the following.
SUCCESS=return. Stop looking for the information. Proceed using the information that has been found.
UNAVAIL=continue. Go to the next nsswitch.conf file source and continue searching. If this source is the last or only source, return with a NOTFOUND status.
NOTFOUND=continue. Go to the next nsswitch.conf file source and continue searching. If this source is the last or only source, return with a NOTFOUND status.
TRYAGAIN=continue. Go to the next nsswitch.conf file source and continue searching. If this source is the last or only source, return with a NOTFOUND status.
You can change default search criteria by explicitly specifying some other criteria by using the STATUS=action syntax shown above. For example, the default action for a NOTFOUND condition is to continue the search to the next source. For example, to specify for networks, the search should stop in a NOTFOUND condition, edit the networks line of the switch file. The line would read as follows.
networks: nis [NOTFOUND=return] files |
The networks: nis [NOTFOUND=return] files line specifies a nondefault criterion for the NOTFOUND status. Nondefault criteria are delimited by square brackets.
In this example, the search routine behaves as follows:
If the networks map is available, and contains the needed information, the routine returns with a SUCCESS status message.
If the networks map is not available, the routine returns with an UNAVAIL status message. By default, the routine continues to search the appropriate /etc file.
If the networks map is available and found, but the map does not contain the needed information, the routine returns with a NOTFOUND message. But, instead of continuing on to search the appropriate /etc file, which would be the default behavior, the routine stops searching.
If the networks map is busy, the routine returns with an TRYAGAIN status message and by default continues on to search the appropriate /etc file.
Lookups in the nsswitch.conf file are done in the order in which items are listed. However, password updates are done in reverse order, unless otherwise specified by using the passwd -r repository command. See The Switch File and Password Information for more information.
Client library routines contain compiled-in default entries that are used if an entry in the nsswitch.conf file is either missing or syntactically incorrect. These entries are the same as the switch file's defaults.
The name service switch assumes that the table and source names are spelled correctly. If you misspell a table or source name, the switch uses default values.
The switch search criteria for the auto_home and auto_master tables and maps is combined into one category, which is called automount.
The timezone table does not use the switch, so the table is not included in the switch file's list.