The suite of OpenLDAP libraries and tools are included within
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 reads in the LDIF file,
ldif-input, containing the new
entries.
|
Important |
|
Only the root user may use /usr/sbin/slapadd. However, the directory server
runs as the ldap user. Therefore the
directory server is unable to modify any files created by
slapadd. To correct this issue, after
using slapadd, type the following
command:
chown -R ldap /var/lib/ldap
|
|
-
slapcat — Pulls entries from an
LDAP directory in the default format, Sleepycat Software's Berkeley DB system, and saves
them in an LDIF file. For example, the command /usr/sbin/slapcat -l ldif-output outputs an LDIF file called
ldif-output containing the entries from
the LDAP directory.
-
slapindex — Re-indexes the
slapd directory based on the current
content. This tool should be run whenever indexing options within
/etc/openldap/slapd.conf are changed.
-
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 |
|
You must stop slapd by issuing the
/sbin/service ldap stop command before
using slapadd, slapcat or slapindex.
Otherwise, the integrity of the LDAP directory is at risk.
|
For more information on using these utilities, refer to 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:
-
ldapadd — Adds entries to an LDAP
directory by accepting input via a file or standard input;
ldapadd is actually a hard link to
ldapmodify -a.
-
ldapdelete — Deletes entries from
an LDAP directory by accepting user input at a shell prompt or via
a file.
-
ldapmodify — Modifies entries in
an LDAP directory, accepting input via a file or standard
input.
-
ldappasswd — Sets the password
for an LDAP user.
-
ldapsearch — Searches for entries
in an LDAP directory using a shell prompt.
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 to be changed within an LDAP directory. The format of
such a file is outlined in the man page for each utility.
In addition to the OpenLDAP packages, Red Hat Enterprise 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 nss_ldap package provides the
following modules for Itanium or AMD64 architectures:
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 (replace
<glibc-version> with the
version of libnss_ldap in use). NSS
allows applications to authenticate using LDAP in conjunction with
the 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 a
network, all of these applications can authenticate using the same
user ID and password combination, greatly simplifying
administration.
For more about configuring PAM, refer to Chapter 16 Pluggable Authentication Modules
(PAM) and the PAM man pages.
Red Hat Enterprise 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.
Red Hat Enterprise Linux ships with the mod_authz_ldap module for the Apache HTTP Server.
This module uses the short form of the distinguished name for a
subject and the issuer of the client SSL certificate to determine
the distinguished name of the user within an LDAP directory. It is
also capable of authorizing users based on attributes of that
user's LDAP directory entry, determining access to assets based on
the user and group privileges of the asset, and denying access for
users with expired passwords. The mod_ssl
module is required when using the mod_authz_ldap module.
|
Important |
|
The mod_authz_ldap module does not
authenticate a user to an LDAP directory using an encrypted
password hash. This functionality is provided by the experimental
mod_auth_ldap module, which is not
included with Red Hat Enterprise Linux. Refer to the Apache
Software Foundation website online at https://www.apache.org/
for details on the status of this module.
|
There are graphical LDAP clients available which support
creating and modifying directories, but they are not included with Red Hat Enterprise Linux. One such
application is LDAP Browser/Editor
— A Java-based tool available online at https://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 Sendmail, Mozilla, Gnome
Meeting, and Evolution.