OpenLDAP checksum error, slapcat y mensaje «ldif_read_file: checksum error»

OpenLDAP ha evolucionado permitiendo cambios dinámicos en la configuración (muy bueno en principio), algo que normalmente es almacenado en:

Source   
/etc/ldap/slapd.d

La recomendación es usar comandos del estilo: ldapadd, ldapmodify o ldapdelete.

Pero la realidad es que muchas veces estaría bien realizar modificaciones de forma manual que terminamos antes, esto es algo que se puede hacer. Simplemente hay que reiniciar el servicio después, reinicio bastante rápido normalmente.

La sorpresa viene cuando hacemos un:

Source   
ubuntu@ip-10-80-242-10:~$ sudo /usr/sbin/slapcat -l ldap_def.diff
51a4769b ldif_read_file: checksum error on "/etc/ldap/slapd.d/cn=config/cn=schema/cn={7}pwm.ldif"

Y nos indica que el checksum no coincide, es un aviso bastante feo y tal vez no queramos verlo más, al fin y al cabo el cambio lo hemos hecho nosotros.

La información del checksum es almacenada en el mismo fichero indicado es decir:

Source   
/etc/ldap/slapd.d/cn=config/cn=schema/cn={7}pwm.ldif

Si hacemos un cat de este fichero vemos:

Source   
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 343453a4
dn: cn={7}pwm
objectClass: olcSchemaConfig
...

Ahí está el CRC32, lo primero que podríamos pensar es «calculo el nuevo CRC32 lo sustituyo y listo», pero hay algo mucho más sencillo. Eliminar las 2 primeras líneas y listo, quedando el fichero:

Source   
dn: cn={7}pwm
objectClass: olcSchemaConfig
...

Ahora si volvemos a hacer un slapcat, este aviso ha desaparecido.

Deja un comentario