dwww Home | Manual pages | Find package

SLAPD(8)                    System Manager's Manual                    SLAPD(8)

NAME
       slapd - Stand-alone LDAP Daemon

SYNOPSIS
       /usr/sbin/slapd     [-V[V[V]]     [-4|-6]     [-T {acl|a[dd]|auth|c[at]|
       d[n]|i[ndex]|m[odify]|p[asswd]|s[chema]|t[est]}]        [-d debug-level]
       [-f slapd-config-file]  [-F slapd-config-directory]  [-h URLs]  [-n ser-
       vice-name] [-s syslog-level] [-l syslog-local-user]  [-o option[=value]]
       [-r directory] [-u user] [-g group] [-c cookie]

DESCRIPTION
       Slapd is the stand-alone LDAP daemon. It listens for LDAP connections on
       any  number of ports (default 389), responding to the LDAP operations it
       receives over these connections.  slapd is  typically  invoked  at  boot
       time,  usually out of /etc/rc.local.  Upon startup, slapd normally forks
       and disassociates itself from the invoking tty.  If  configured  in  the
       config  file  (or  config  directory),  the slapd process will print its
       process ID (see getpid(2)) to a .pid file, as well as the  command  line
       options  during invocation to an .args file (see slapd.conf(5)).  If the
       -d flag is given, even with a zero argument, slapd  will  not  fork  and
       disassociate from the invoking tty.

       See the "OpenLDAP Administrator's Guide" for more details on slapd.

OPTIONS
       -V[V[V]]
              Print  version  info  and proceed with startup.  If -VV is given,
              exit after providing version info. If -VVV is given, additionally
              provide information on static overlays and backends.

       -4     Listen on IPv4 addresses only.

       -6     Listen on IPv6 addresses only.

       -T tool
              Run in Tool mode. The tool argument selects  whether  to  run  as
              slapadd,  slapcat,  slapdn,  slapindex,  slapmodify,  slappasswd,
              slapschema, or slaptest (slapacl and slapauth need the entire acl
              and auth option value to be spelled out, as a is reserved to sla-
              padd).  This option should be the first option specified when  it
              is  used; any remaining options will be interpreted by the corre-
              sponding slap tool  program,  according  to  the  respective  man
              pages.   Note  that  these tool programs will usually be symbolic
              links to slapd.  This option is  provided  for  situations  where
              symbolic links are not provided or not usable.

       -d debug-level
              Turn  on  debugging as defined by debug-level.  If this option is
              specified, even with a zero argument, slapd will not fork or dis-
              associate from the invoking terminal.  Some general operation and
              status messages are printed for any value of debug-level.  debug-
              level is taken as a bit string, with each bit corresponding to  a
              different  kind of debugging information.  Comma-separated arrays
              of friendly names can be specified to select debugging output  of
              the  corresponding  debugging  information.  All the names recog-
              nized by the loglevel directive described  in  slapd.conf(5)  are
              supported.  If debug-level is ?, a list of installed debug-levels
              is printed, and slapd exits.

              Remember  that  if you turn on packet logging, packets containing
              bind passwords will be output, so if you redirect the  log  to  a
              logfile, that file should be read-protected.

       -s syslog-level
              This  option tells slapd at what debug-level debugging statements
              should be logged to the syslog(8) facility.   The  value  syslog-
              level  can  be  set to any value or combination allowed by the -d
              switch.  Slapd logs all messages selected by syslog-level at  the
              syslog(3)  severity debug-level DEBUG, on the unit specified with
              -l.

       -n service-name
              Specifies the service name for logging and other  purposes.   De-
              faults to basename of argv[0], i.e.: "slapd".

       -l syslog-local-user
              Selects  the  local  user of the syslog(8) facility. Value can be
              LOCAL0, through LOCAL7, as well as USER and DAEMON.  The  default
              is  LOCAL4.   However,  this  option is only permitted on systems
              that support local users with the syslog(8) facility.  Logging to
              syslog(8) occurs at the "DEBUG" severity debug-level.

       -f slapd-config-file
              Specifies  the  slapd  configuration   file.   The   default   is
              /etc/ldap/slapd.conf.

       -F slapd-config-directory
              Specifies  the  slapd  configuration  directory.  The  default is
              /etc/ldap/slapd.d.  If both -f and -F are specified,  the  config
              file  will  be  read and converted to config directory format and
              written to the specified directory.  If neither option is  speci-
              fied, slapd will attempt to read the default config directory be-
              fore trying to use the default config file. If a valid config di-
              rectory  exists  then  the default config file is ignored. All of
              the slap tools that use the config options observe this same  be-
              havior.

       -h URLlist
              slapd will by default serve ldap:/// (LDAP over TCP on all inter-
              faces  on  default  LDAP  port).  That is, it will bind using IN-
              ADDR_ANY and port 389.  The -h option may be used to specify LDAP
              (and other scheme) URLs to serve.  For example, if slapd is given
              -h "ldap://127.0.0.1:9009/ ldaps:/// ldapi:///", it  will  listen
              on  127.0.0.1:9009  for  LDAP, 0.0.0.0:636 for LDAP over TLS, and
              LDAP over IPC (Unix domain sockets).  Host 0.0.0.0 represents IN-
              ADDR_ANY (any interface).  A space separated list of URLs is  ex-
              pected.  The URLs should be of the LDAP, PLDAP, LDAPS, PLDAPS, or
              LDAPI schemes, and generally without a DN or other optional para-
              meters  (excepting  as  discussed below).  Support for the latter
              three schemes depends on selected  configuration  options.  Hosts
              may  be  specified  by  name  or  IPv4  and IPv6 address formats.
              Ports, if specified, must be numeric.  The default  ldap://  port
              is  389  and the default ldaps:// port is 636, same for the proxy
              enabled variants.

              The PLDAP and PLDAPS URL schemes provide support for the  HAProxy
              proxy  protocol  version 2, which allows a load balancer or proxy
              server to provide the remote client IP address  to  slapd  to  be
              used for access control or logging. Ports configured for PLDAP or
              PLDAPS  will  only  accept connections that include the necessary
              proxy protocol header. Connections to these ports should  be  re-
              stricted  at  the network level to only trusted load balancers or
              proxies to avoid spoofing of client IP addresses  by  third  par-
              ties.

              For LDAP over IPC, name is the name of the socket, and no port is
              required,  nor  allowed;  note  that directory separators must be
              URL-encoded, like any other characters that are special to  URLs;
              so the socket

                      /usr/local/var/ldapi

              must be specified as

                      ldapi://%2Fusr%2Flocal%2Fvar%2Fldapi

              The default location for the IPC socket is /var/run/ldapi

              The  listener  permissions  are  indicated by "x-mod=-rwxrwxrwx",
              "x-mod=0777" or "x-mod=777", where any of the "rwx" can be "-" to
              suppress the related permission, while any of the "7" can be  any
              legal octal digit, according to chmod(1).  The listeners can take
              advantage  of the "x-mod" extension to apply rough limitations to
              operations, e.g. allow read operations  ("r",  which  applies  to
              search and compare), write operations ("w", which applies to add,
              delete,  modify  and  modrdn), and execute operations ("x", which
              means bind is required).  "User" permissions apply  to  authenti-
              cated users, while "other" apply to anonymous users; "group" per-
              missions         are         ignored.         For        example,
              "ldap:///????x-mod=-rw-------" means that read and write is  only
              allowed  for  authenticated connections, and bind is required for
              all operations.  This feature is experimental, and requires to be
              manually enabled at configure time.

       -r directory
              Specifies a directory to become the root directory.   slapd  will
              change  the  current working directory to this directory and then
              chroot(2) to this directory.  This is done after opening  listen-
              ers but before reading any configuration file or initializing any
              backend.  When used as a security mechanism, it should be used in
              conjunction with -u and -g options.

       -u user
              slapd will run slapd with the specified user name or id, and that
              user's supplementary group access list as set with initgroups(3).
              The  group  ID  is also changed to this user's gid, unless the -g
              option is used to override.  Note when used with -r,  slapd  will
              use the user database in the change root environment.

              Note  that on some systems, running as a non-privileged user will
              prevent passwd back-ends from accessing the encrypted  passwords.
              Note also that any shell back-ends will run as the specified non-
              privileged user.

       -g group
              slapd  will  run  with the specified group name or id.  Note when
              used with -r, slapd will use the group  database  in  the  change
              root environment.

       -c cookie
              This  option  provides a cookie for the syncrepl replication con-
              sumer.  The cookie is a comma separated list of name=value pairs.
              Currently supported syncrepl cookie fields are rid, sid, and csn.
              rid identifies a replication thread within  the  consumer  server
              and  is  used to find the syncrepl specification in slapd.conf(5)
              or slapd-config(5) having the matching replication identifier  in
              its  definition.  The rid must be provided in order for any other
              specified values to be used.  sid is the server id  in  a  multi-
              provider  configuration.   csn  is the commit sequence number re-
              ceived by a previous synchronization and represents the state  of
              the  consumer  content which the syncrepl engine will synchronize
              to the current  provider  content.   In  case  of  multi-provider
              replication  agreement, multiple csn values, semicolon separated,
              can appear.  Use only the rid part to force a full reload.

       -o option[=value]
              This option provides a generic means to specify  options  without
              the need to reserve a separate letter for them.

              It supports the following options:

              slp={on|off|slp-attrs}
                     When SLP support is compiled into slapd, disable it (off),
                      enable  it by registering at SLP DAs without specific SLP
                     attributes (on), or with specific SLP attributes slp-attrs
                     that must be an SLP attribute list definition according to
                     the SLP standard.

                     For  example,   "slp=(tree=production),(server-type=OpenL-
                     DAP),(server-version=2.4.15)"  registers  at  SLP DAs with
                     the three SLP attributes tree, server-type and server-ver-
                     sion that have the values given above.  This allows one to
                     specifically query the SLP DAs for  LDAP  servers  holding
                     the production tree in case multiple trees are available.

EXAMPLES
       To  start  slapd and have it fork and detach from the terminal and start
       serving the LDAP databases defined in  the  default  config  file,  just
       type:

            /usr/sbin/slapd

       To start slapd with an alternate configuration file, and turn on volumi-
       nous debugging which will be printed on standard error, type:

            /usr/sbin/slapd -f /var/tmp/slapd.conf -d 255

       To test whether the configuration file is correct or not, type:

            /usr/sbin/slapd -Tt

SEE ALSO
       ldap(3),  slapd.conf(5),  slapd-config(5),  slapd.access(5), slapacl(8),
       slapadd(8), slapauth(8), slapcat(8), slapdn(8),  slapindex(8),  slapmod-
       ify(8), slappasswd(8), slapschema(8), slaptest(8).

       "OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin/)

BUGS
       See http://www.openldap.org/its/

ACKNOWLEDGEMENTS
       OpenLDAP  Software  is  developed and maintained by The OpenLDAP Project
       <http://www.openldap.org/>.  OpenLDAP Software is derived from the  Uni-
       versity of Michigan LDAP 3.3 Release.

OpenLDAP 2.6.10+dfsg-1             2025/05/22                          SLAPD(8)

Generated by dwww version 1.16 on Tue Dec 16 04:46:12 CET 2025.