4 votes

slapd : type d'attribut non défini

J'essaie de mettre une configuration de slapd sur le nouveau serveur. Je l'ai fait de la même manière, mais c'était il y a probablement deux ans et dans un environnement légèrement différent (je suis sur Debian actuellement et c'était sur CentOS auparavant).

J'ai un fichier de configuration au format ldif et j'essaie de faire :

slapadd -n 0 -F /etc/ldap/slapd.d -l /root/server_slapd_config.ldif

Et je reçois

5c75466b <= str2entry : str2ad(olcDbCacheSize) : attribute type non défini

slapadd : impossible d'analyser l'entrée (ligne=2087)

Ce qui est étrange, c'est que je n'arrive pas à comprendre pourquoi j'obtiens cette erreur, car olcDbCacheSize est défini dans mon server_slapd_config.ldif

Voici les lignes dans mon server_slapd_config.ldif :

1)

olcObjectClasses: ( OLcfgDbOc:1.1 NAME 'olcBdbConfig' DESC 'BDB backend conf
 iguration' SUP olcDatabaseConfig STRUCTURAL MUST olcDbDirectory MAY ( olcDb
 CacheSize $ olcDbCheckpoint $ olcDbConfig $ olcDbCryptFile $ olcDbCryptKey 
 $ olcDbNoSync $ olcDbDirtyRead $ olcDbIDLcacheSize $ olcDbIndex $ olcDbLine
 arIndex $ olcDbLockDetect $ olcDbMode $ olcDbSearchStack $ olcDbShmKey $ ol
 cDbCacheFree $ olcDbDNcacheSize $ olcDbPageSize ) )

2)

olcAttributeTypes: ( OLcfgDbAt:1.1 NAME 'olcDbCacheSize' DESC 'Entry cache s
 ize in entries' SYNTAX OMsInteger SINGLE-VALUE )

3)

dn: olcDatabase={1}bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {1}bdb
[skip]
olcDbCacheSize: 1000

Ainsi, DbCacheSize déclarée en olcBdbConfig attributs.

Il y a olcAttributeTypes para DbCacheSize

Et dn : olcDatabase={1}bdb,cn=config est " objectClass : olcBdbConfig "

Pourquoi est-ce que j'obtiens "attribute type undefined" ?

Quelques informations supplémentaires.

Système : Debian 9 (Stretch)

# dpkg -l | grep -i ldap
ii  ldap-utils                    2.4.44+dfsg-5+deb9u2           amd64        OpenLDAP utilities
ii  ldapscripts                   2.0.7-2                        all          Add and remove users and groups (stored in a LDAP directory)
ii  libldap-2.4-2:amd64           2.4.44+dfsg-5+deb9u2           amd64        OpenLDAP libraries
ii  libldap-common                2.4.44+dfsg-5+deb9u2           all          OpenLDAP common files for libraries
ii  slapd                         2.4.44+dfsg-5+deb9u2           amd64        OpenLDAP server (slapd)

Merci pour votre aide.

アップデート :

Une petite mise à jour. Juste pour vérifier. Si je supprime la chaîne olcDbCacheSize, j'obtiens l'erreur pour la ligne suivante : olcDbCheckpoint

5c7553fc <= str2entry : s non défini

Mise à jour 1 :

Ici, les lignes commencent par olcDb*. Toutes les lignes sont en dn : olcDatabase={1}bdb,cn=config section. J'ai sauté quelques lignes au milieu (elles ne commencent pas avec olcDb).

dn: olcDatabase={1}bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {1}bdb
[skip]
olcDbDirectory: /var/lib/slapd 
olcDbCacheSize: 1000
olcDbCheckpoint: 512 15
olcDbConfig: {0}# This configuration file sets BerkeleyDB options when using
olcDbConfig: {1}# backend, for the database held in the directory where this
olcDbConfig: {2}#
olcDbConfig: {3}# Set directory to use for transaction logs:
olcDbConfig: {4}#set_lg_dir /var/lib/ldap/logs
olcDbConfig: {5}# Set in-memory transaction log cache (2MB)
olcDbConfig: {6}set_lg_bsize 2097152
olcDbConfig: {7}# Set max transaction log file size, must be >=4* lg_bsize 
olcDbConfig: {8}#set_lg_max              10485760
olcDbConfig: {9}set_lg_max              20971520
olcDbConfig: {10}# Set in-memory database cache
olcDbConfig: {11}#set_cachesize   0       1048576        0
olcDbConfig: {12}
olcDbConfig: {13}
olcDbConfig: {14}# For batch imports, disabling transaction logging totally 
olcDbConfig: {15}# improve performance:
olcDbConfig: {16}# set_flags DB_TXN_NOT_DURABLE
olcDbConfig: {17}
olcDbConfig: {18}
olcDbNoSync: FALSE
olcDbDirtyRead: FALSE
olcDbIDLcacheSize: 0
olcDbIndex: objectClass eq
olcDbIndex: entryUUID eq
olcDbIndex: entryCSN eq
olcDbIndex: cn eq,subinitial
olcDbIndex: uid eq,subinitial
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: sn eq,subinitial
olcDbIndex: givenName eq,subinitial
olcDbIndex: member eq
olcDbIndex: mail eq,subinitial
olcDbIndex: FinLogin eq,approx,sub
olcDbIndex: uniqueMember eq
olcDbIndex: memberUid eq
olcDbLinearIndex: FALSE
olcDbMode: 0600
olcDbSearchStack: 16
olcDbShmKey: 0
olcDbCacheFree: 1
olcDbDNcacheSize: 0

0voto

Michael Ströder Points 909

Certaines descriptions de schémas sont codées en dur dans des modules de backend ou des superpositions.

C'est par exemple le cas pour le type d'attribut olcDbCacheSize défini dans servers/slapd/back-bdb/config.c et votre définition locale du schéma n'a aucun effet.

Je soupçonne que le back-bdb n'est pas chargé et donc que ces définitions de schémas ne sont pas disponibles dans votre instance slapd.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X