Thank you for answering my question, comments below:

On Thu, Oct 26, 2023 at 10:52 PM Uwe Sauter <uwe.sauter...@gmail.com> wrote:

>
> when comparing the LDIF you used to initialize with the slapcat output,
> what I can see is that you have no distict
> definition of olcDatabase={0}config,cn=config. I suspect that OpenLDAP
> then used default vaules, including the "to * by
> * none" ACL.
>
>
None of the docs or any examples show to setup a specific section for
olcDatabase={0}config,cn=config not even the default ldif file that comes
with the distribution.

This might help others in the future if they encounter Insufficient access
(50) from hell:

slapadd and slapmodify did work for me as root directly on the file system
So for example: /usr/sbin/slapmodify -n 0 -F /etc/openldap/slapd.d -l
/etc/openldap/secure.ldif 2>&1
Where secure.ldif would contain something like this:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
delete: olcRootPW

That worked like a charm.



> How mission critical is this server? Can you backup/restore? Is this a VM
> that you can clone?
>
>
We are preparing for our first production release so I want to tidy up the
bootstrapping before we take it live (next week).


> First thing I would do is not to use "-Y EXTERNAL -H ldapi:///" because
> with that you don't connect as RootDN but as
> "gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" as you can see
> from the ldapmodify output.
>
>
Yeah I realized that, and I guess would need to add a specific ACL to allow
manager for dn exact match of that.
I tried all those things but to no avail, I am guessing because of that
default rule of to by none


> Try the following (and replace with the correct URL):
>
> $ ldifmodify -x -H ldap://localhost/ -D cn=config -W << EOF
>  > dn: olcDatabase={0}config,cn=config
>  > changetype: modify
>  > add: olcRootPW
>  > olcRootPW: {SSHA}cZbRoOhRew8MBiWGSEOiFX0XqbAQwXUr
>  > EOF
>
>
What is ldifmodify ?


> You will be asked for the old RootPW.
>
> If that fails I would take the slapcat output, clean the operational
> attributes from it, change the problematic ACL to
> something more sensible (and the olcRootPW) and use that to re-create the
> LDAPs configuration.
>
>
I am lucky we are still able to recreate it until we get it right ;-)


> Following steps are from the top of my head, so don't follow blindly:
>
> - Stop slapd
> - Make a backup of your slapd.d directory and your data directory
> - Remove the content of the slapd.d directory
> - Use slapadd with the prepared LDIF to re-create the slapd.d directory
> - Change the ownership of the slapd.d directory
> - Start slapd
>
>
Thank you for this, I have saved it to my cheat sheet !

Again for future people reading this, if you encounter ACL issues and you
want to modify the LDIF database in /etc/openldap/slapd.d don't do it
manually.
Use slapadd and slapmodify and be sure to select the right database with
the -n switch.
Generally the config DB (contained in slapd.d) is -n 0 and your DIT DB is
-n 1

Best, and thanks again.

-- 
Alex



>

Reply via email to