SLAPMODIFY(8C)
π
SLAPMODIFY β it's the 8C one, bestie
okay so you know slapmodify? it's the little tool that goes straight into a SLAPD database and applies modifications. no LDAP server, no network, no drama. just you, the backend, and a whole lot of LDIF. let's get into it π«Ά
β¨ NAME β¨
slapmodify β Modify entries in a SLAPD database
π SYNOPSIS π
/usr/bin/slapmodify [-b suffix] [-c] [-d debug-level] [-f slapd.conf]
[-F confdir] [-g] [-j lineno] [-l ldif-file] [-n dbnum]
[-o option[=value]] [-q] [-s] [-S SID] [-u] [-v] [-w]
π¦ DESCRIPTION π¦
So slapmodify is the girl that takes modifications written in LDAP Directory Interchange Format (LDIF, you know her) and applies them to a slapd(8) database. She opens the database you point at β either by database number or by suffix β and performs the modifications that match the LDIF you handed her. π
Databases configured as subordinate to that one also get updated, unless you pass -g. The LDIF input comes from standard input, or from the file you specify.
Every file slapmodify ends up creating belongs to whoever she's running as, so likeβ¦ be careful, bestie. Either run slapmodify as the same identity slapd(8) will run as (that's the -u option in slapd(8), iykyk), or change the file ownership before you run slapd(8). no cap, this one matters β¨
Note:slapmodifywill also do the relevant indexing while it's modifying the database, if any indexing is configured. for the specifics, go readslapindex(8). π
πΈ OPTIONS πΈ
-bsuffix β use this suffix to figure out which database to add entries to. you cannot use-btogether with the-noption, they do not get along.-cβ enable continue mode, aka ignore errors mode. girl just keeps going.-ddebug-level β turn on debugging messages as defined by the debug-level you give. details live inslapd(8). π-fslapd.conf β point at an alternativeslapd.conf(5)file.-Fconfdir β point at a config directory. and if you give both-fand-F, the config file gets read, converted to config directory format, and written to the directory you specified. if you give neither, she first tries to read the default config directory before trying the default config file. if a valid config directory already exists, the default config file is ignored. and if dry-run mode is also set, no conversion happens at all. π-gβ disable subordinate gluing. only the specified database gets processed, not its glued subordinates (if there even are any).-jlineno β jump to that line number in the LDIF file before processing any entries. this is the resume-from-where-it-died feature: if a modification got aborted because of errors in the input LDIF, you fix the errors and pick it back up here. π©Ή-lldif-file β read LDIF from this file instead of from standard input.-ndbnum β do your changes on the dbnum-th database listed in the config file.-ncannot be used with the-boption. to manipulate the config databaseslapd-config(5), use-n 0since it's always the first database. it has to physically exist on the filesystem before you do this though, okay? β-ooption[=value] β specify an option with a(n optional) value. the possible generic options/values are:
syslog=<subsystems> (see `-s' in slapd(8))
syslog-level=<level> (see `-S' in slapd(8))
syslog-user=<user> (see `-l' in slapd(8))
schema-check={yes|no}
value-check={yes|no}
the schema-check option toggles schema checking (default on); the value-check option toggles value checking (default off). and big heads up: value-check is incompatible with -q. π
-qβ enable quick mode, aka fewer integrity checks. does fewer consistency checks on the input data, and no consistency checks at all when writing the database. improves run time, but if any errors or interruptions happen the resulting database will be unusable. so likeβ¦ speed is cute but at what cost π-sβ disable schema checking. this one is meant for when you're manipulating databases containing special objects, like fractional objects on a partial replica. creating normal objects that don't conform to schema may result in unexpected and ill behavior. you have been warned, bestie.-SSID β the Server ID to use in the generatedentryCSN. also used forcontextCSNif-wis set as well. defaults to0.-uβ enable dry-run mode (don't write to the backend). just vibes, no commits. β¨-vβ enable verbose mode. she will tell you everything.-wβ write syncrepl context information. after all entries are added, thecontextCSNgets updated with the greatest CSN in the database. π
π LIMITATIONS π
Your slapd(8) should not be running when you do this, so the database stays consistent. seriously. stop it first.
Not all backends support all types of modification β modrdn changetype in particular is not implemented for any of the current backends. it's giving "not available".
slapmodify may not provide naming or schema checks. so when you can, it's advisable to use ldapmodify(1) instead. fr fr. π
π EXAMPLES π
To make the modifications specified in the file ldif into your slapd(8) database, give the command:
/usr/bin/slapmodify -l ldif
iconic. that's it. that's the whole thing. π
π SEE ALSO π
ldap(3), ldif(5), slapcat(8), slapadd(8), slapindex(8), ldapmodify(1), slapd(8)
"OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin/)
π ACKNOWLEDGEMENTS π
OpenLDAP Software is developed and maintained by The OpenLDAP Project <http://www.openldap.org/>. OpenLDAP Software is derived from the University of Michigan LDAP 3.3 Release. π«Ά
and that's the whole page, bestie β this one's OpenLDAP 2.7.2, dated 2026/10/21, and it ate, no crumbs left. go forth and modify responsibly πβ¨πΈ
π¦ where this page comes from
- arch rolling: openldap 2.7.2-2 Β· OLDAP-2.8
- Copyright 1998-2026 The OpenLDAP Foundation All Rights Reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms