web-dev-qa-db-ja.com

OpenLDAPは新しいスキーマを追加できません

OpenLDAPサーバーに新しいスキーマを追加しようとしています。 slapdのバージョンは2.4.23です。私はDebian6を使用しています。

私がよく理解していれば、slapd 2.4+はこのバージョンのデフォルトで(cn = config)を使用したOLC構成を使用し、slapd.confまたはcn = configツリーの他のポイントで何も変更する必要はありません(私は間違っていますか? ?)。しかし、次のコマンドでスキーマを追加しようとすると、次のようになります。

ldapadd -x -D "cn=admin,cn=config" -W -f filesystem.ldif

それは私に与えます:

Enter LDAP Password: 
ldap_bind: Invalid credentials (49)

私もこのコマンドを試しました(ここで何をしているのかわからなくても):

ldapadd -x -D "cn=admin,dc=linuxcbt,dc=internal" -W -f filesystem.ldif

ここで、dc = linuxcbt、dc = internalが私のベースであり、次のようになります。

adding new entry "cn=filesystem,cn=schema,cn=config"
ldap_add: Insufficient access (50)

私のfilesystem.ldifファイルは次のとおりです。

dn: cn=filesystem,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: filesystem

olcAttributeTypes: ( 1000.1.1.1 NAME ( 'fn' 'filename' )
   DESC 'Nome del file'
   EQUALITY 'Case exact match'
   SUBSTR caseExactSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes: ( 1000.1.1.2 NAME ( 'fs' 'filesize'  )
   DESC 'Dimensione del file'
   EQUALITY integerMatch
   ORDERING integerOrderingMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

olcObjectClasses: ( 1000.1.2.1 NAME ( 'dir'
   DESC 'Una directory'
   MUST fn
   MAY fs
   AUXILIARY )

olcObjectClasses: ( 1000.1.2.2 NAME ( 'file'
   DESC 'Un file'
   MUST (fn $ fs)
   AUXILIARY )

今、私はこれで立ち往生しています。

1
shadox

試してみてください

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f filesystem.ldif

これは、root(uid = 0)として、またはSudoを介してLDAPサーバーで直接作業する場合にのみ機能します。ユーザーIDに基づいてLDAPサーバーに接続し、通常の認証方法をバイパスします。

このアクセスは、olcAccessルールによって付与されます

{0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage  by * none

olcDatabase={0}config,cn=configで。

「通常の」方法でアクセスを許可するには、olcDatabase={0}config,cn=configに次の行を追加します。

olcRootDN: cn=admin,cn=config
olcRootPW: <yourpassword>  

ここで、<yourpassword>slappasswdを介して事前に暗号化する必要があります。

2
Sven