NetInfo was the first directory service that was built into Mac OS X Server and then Mac OS X client. Although NetInfo is a functional directory service and was a logical choice when Mac OS X was first developed, it doesn’t offer the degree of flexibility that LDAP databases (typically referred to as domains) do, particularly when multiple directory domains are used. NetInfo is also a proprietary directory format, meaning that it is not designed to work with other operating systems. LDAP, by contrast is a standard format that has been embraced by many developers. In Mac OS X Server 10.2, Apple began including OpenLDAP as part of Open Directory as an alternative to NetInfo, which provided administrators with a much more flexible directory service environment both for Mac-only and multiplatform networks.
In recent versions of Mac OS X and Mac OS X Server, Apple’s implementation of OpenLDAP has become standardized as the primary directory service. In fact, Apple no longer provides an easy method for creating shared NetInfo domains under Mac OS X Server and has aggressively encouraged administrators to migrate from any shared NetInfo domains to an Open Directory environment using LDAP.
NetInfo is still somewhat relevant for administrators and technicians, however. Although Apple has pretty much stamped out shared NetInfo domains (those that can offer directory services to a network), NetInfo is still alive at the heart of Mac OS X. Every Mac OS X installation includes a local NetInfo domain. This local NetInfo domain is the Open Directory component that stores local accounts and other machine-specific attributes.
The local NetInfo domain is the first level of any Open Directory search path for Mac OS X. This means that when a user attempts to log in or access local files, the Open Directory components of Mac OS X will check the local NetInfo domain in an attempt to find a match for the credential supplied by a user. If a match is not found, Open Directory will then query any shared domains (be they Open Directory LDAP domains, Active Directory domains, or even earlier shared NetInfo domains) in the order defined in the workstation’s search path. (For more information on Open Directory search paths, see my Open Directory basics article.) If the computer is not part of a network, the local NetInfo domain is the only place where user and other records are stored.
How Mac OS X Relies on NetInfo
Most Mac OS X users are completely unaware of the NetInfo database on their computers. If changes are made to user accounts, local groups, or computer-specific settings stored in NetInfo, they are typically done using the various panes in the System Preferences application (or the associated command-line tools). Typically, the only reason anyone will launch the NetInfo Manager application is to enable or disable the root user account (and/or change the root user password). However, the NetInfo database stores much of the information needed for Mac OS X to function.
Needless to say, Mac OS X workstations are still dependent on NetInfo to function properly. Corruption of a computer’s NetInfo domain can cause a number of problems, from certain services not functioning properly, to local users not being able to login, and even to users losing access or ownership of files.