Permissions¶
Active Directory¶
A regular, read-only service account is enough for source.bind_dn. Dolly never writes to AD — it only binds and searches. The account needs read access to the configured users.base and groups.base, and to any entries referenced as group members (see out-of-scope members).
Target LDAP¶
The target.bind_dn needs:
- Write access to
users_base,groups_base, andstate_base(and, for Dolly to create a missing base, to add entries under its parent), and ideally nothing else. A groups-only deployment (dolly sync --groupsonly) never writes entries underusers_base, so read access to it is enough there; but ifusers_baseis missing, the first run creates it, which needs add access on its parent. - Read access to every entry under
groups_baseandstate_base, and underusers_basefor runs that sync users — not a filtered or size-limited view. A--groupsrun never reads all ofusers_base: it looks up only the uids it needs, 50 per search, so ausers_baselarger than the size limit is fine for it.
olcSizeLimit and olcLimits¶
OpenLDAP's default olcSizeLimit (500, or 10000 in the ad2openldap-era config) truncates search results for any bind DN except the server's rootdn. Since Dolly aborts the whole run on a truncated read rather than planning from partial data, a bind DN that hits this limit will block every sync once the target tree grows past it.
You have two options:
- Bind as the rootdn. Simplest, but grants Dolly's bind DN full access to the whole directory, not just the bases it needs.
- Raise the limit for Dolly's specific DN with
olcLimits, leaving the globalolcSizeLimituntouched for everyone else. Add it to the database entry (for exampleolcDatabase={1}mdb,cn=config) and adjust the DN to yourtarget.bind_dn:
Adjust dn.exact to match the actual target.bind_dn in your config. dolly check tests for a truncated search using the configured bind DN, so run it after changing either the account or the limit — see Commands. A truncated groups_base, or a truncated users_base without --groups, is reported as a failure; a truncated users_base with dolly check --groups is only a warning, since a groups-only run never reads users_base in full.
Note
A size=unlimited grant only expands what this one DN can retrieve in a search; it doesn't grant it write access anywhere. Access control (olcAccess) and size limits (olcLimits) are configured separately.