Ich habe gerade vor einiger Zeit bei mir im LDAP Server einen Fehler entdeckt, den ich nicht verstanden habe und der mich irgendwie irritiert hat. Ich dachte zuerst schon an meiner Konfiguration sei etwas kaputt.
Es handelt sich um die folgende Fehlermeldung:
5845d23b ldif_read_file: checksum error on "/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif" # gesehen beim Versuch mit slapcat den Inhalt des LDAP-Servers zu exportieren: user@host:/etc$ sudo /usr/sbin/slapcat -v -b "dc=domain,dc=de" -l ldap_testfile.ldif 5845d23b ldif_read_file: checksum error on "/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif" # id=00000001
Leider ist es schwierig, gerade zu dieser Meldung irgendwie sinnvolle Antworten im Web zu finden, daher möchte ich hier eine Lösung aufzeigen, die bei mir gut funktioniert hat. Der korrekte Weg wäre wohl mit ldapmodify zu arbeiten, da wusste ich aber nicht, wie ich das genau anstellen sollte.
Die Warnung sollte man schon Ernst nehmen. Keine Garantie für irgendwelche nachfolgenden Fehler. Nun gut, bei mir hat es funktioniert.
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
Als Unterstützung habe ich den Artikel vom Blog LDAP: How to fix „ldif_read_file: checksum error“ benutzt. (Im gerade genannten Blog, gibt es noch einen kleinen Fehler. Wenn ich eine Datei mit „=,{,}“ oder ähnliches im Dateinamen habe, sollte ich noch Anführungszeichen um den Dateinamen setzen. Das ist bei mir natürlich korrigiert.
Als erstes benötigt man das Tool „crc32“. Hier gibt es eine Beschreibung wie es zu installieren ist How to check crc of a file?
Nun zu den Steps an sich:
# installing the crc32 tool: $ sudo apt-get install libarchive-zip-perl # how to use the tool: # tail -n +3 starts with the 3rd line from the file, because we won't have the # checksum details within the calculation! $ crc32 <(cat "/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif" | tail -n +3) 1ce34f05 # now please edit the config file from above: # (no warranty for any errors!) # maybe someone could give me an advise how to do it better with ldapmodify? $ /etc/init.d/slapd stop $ vi "/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif" $ /etc/init.d/slapd start # Attention: # please monitor the slapd logfiles to chekc the success of this operation!