13.3. OpenLDAP Daemons and Utilities
	The suite of OpenLDAP libraries and tools is spread out over the
	following packages:
      
openldap — Contains the libraries
	    necessary to run the OpenLDAP server and client
	    applications.
	  
openldap-clients — Contains command line
	    tools for viewing and modifying directories on an LDAP server.
	  
openldap-servers — Contains the servers and
	  other utilities necessary to configure and run an LDAP server.
	  
	There are two servers contained in the
	openldap-servers package: the Standalone
	LDAP Daemon (/usr/sbin/slapd) and the
	Standalone LDAP Update Replication Daemon
	(/usr/sbin/slurpd).
      
	The slapd daemon is the standalone LDAP server while
     	the slurpd daemon is used to synchronize changes from
     	one LDAP server to other LDAP servers on the network. The
     	slurpd daemon is only used when dealing with multiple
     	LDAP servers.
      
	To perform administrative tasks, the
	openldap-servers package installs the following
	utilities into the /usr/sbin/ directory:
      
slapadd — Adds entries from an LDIF
	    file to an LDAP directory. For example, the command
	    /usr/sbin/slapadd -l
	    ldif-input will read in the
	    LDIF file,
	    ldif-input,
	    containing the new entries.
	  
slapcat — Pulls entries out of an LDAP
	    directory in the default format — Berkeley DB — and saves
	    them in an LDIF file. For example, the command
	    /usr/sbin/slapcat -l
	    ldif-output will output an LDIF
	    file called
	    ldif-output
	    containing the entries from the LDAP directory.
	  
slapindex — Re-indexes the
	      slapd directory based on the current content.
	  
slappasswd — Generates an encrypted
	    user password value for use with ldapmodify or
	    the rootpw value in the
	    slapd configuration file,
	    /etc/openldap/slapd.conf. Execute the
	    /usr/sbin/slappasswd command to create the
	    password.
	  
  | Warning | 
|---|
|   | 	  Be sure to stop slapd by issuing
	  /usr/sbin/service slapd stop before using
	  slapadd, slapcat or
	  slapindex. Otherwise, the integrity of the LDAP
	  directory is at risk.
	  | 
	For more information about how to use these utilities, see their
	respective man pages.
      
	The openldap-clients package installs tools into
	/usr/bin/ which are used to add, modify, and delete
	entries in an LDAP directory. These tools include the following:
      
ldapmodify — Modifies entries in an LDAP
	    directory, accepting input via a file or standard input.
	  
ldapadd — Adds entries to your
	    directory by accepting input via a file or standard
	    input; ldapadd is actually a hard link to
	    ldapmodify -a.
	  
ldapsearch — Searches for entries in
	    the LDAP directory using a shell prompt.
	  
ldapdelete — Deletes entries from an LDAP
	    directory by accepting input via user input at the terminal or via a file.
	  
	With the exception of ldapsearch, each of these
	utilities is more easily used by referencing a file containing the
	changes to be made rather than typing a command for each entry you wish
	to change in an LDAP directory. The format of such a file is outlined in
	each application's man page.
      
13.3.1. NSS, PAM, and LDAP
	  In addition to the OpenLDAP packages, Red Hat Linux includes a package called
	  nss_ldap which enhances LDAP's ability to
	  integrate into both Linux and other UNIX environments.
	
 
	  The nss_ldap package provides the following
	  modules:
	
	  The
	  libnss_ldap-<glibc-version>.so
	  module allows applications to look up users, groups, hosts, and other
	  information using an LDAP directory via glibc's Nameservice
	  Switch (NSS) interface. NSS allows applications to
	  authenticate using LDAP in conjunction with the Network
	  Information Service (NIS) name service and flat
	  authentication files.
	
	  The pam_ldap module allows PAM-aware applications
	  to authenticate users using information stored in an LDAP
	  directory. PAM-aware applications include console login, POP and IMAP
	  mail servers, and Samba. By deploying an LDAP server on your network,
	  all of these applications can authenticate using the same user ID and
	  password combination, greatly simplifying administration.
	
13.3.2. PHP4, the Apache HTTP Server, and LDAP
	  Red Hat Linux includes a package containing an LDAP module for the PHP
	  server-side scripting language.
	
	  The php-ldap package adds LDAP support to the
	  PHP4 HTML-embedded scripting language via the
	  /usr/lib/php4/ldap.so module. This module allows
	  PHP4 scripts to access information stored in an LDAP directory.
	
  | Important | 
|---|
|   | 	    Red Hat Linux no longer ships with the auth_ldap
	    package. This package provided LDAP support for versions 1.3 and
	    earlier of the Apache HTTP Server. See the Apache Software Foundation website
	    at http://www.apache.org/ for details
	    on the status of this module.
	    | 
13.3.3. LDAP Client Applications
	  There are  graphical LDAP clients available which support
	  creating and modifying directories, but they do not ship with
	  Red Hat Linux. One such application is LDAP
	  Browser/Editor — A Java-based tool available
	  online at http://www.iit.edu/~gawojar/ldap.
	
	  Most other LDAP clients access directories as read-only, using them to
	  reference, but not alter, organization-wide information. Some examples
	  of such applications are Mozilla-based Web browsers, Sendmail,
	  Balsa, Pine,
	  Evolution, and Gnome
	  Meeting.