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 )
今、私はこれで立ち往生しています。
試してみてください
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
を介して事前に暗号化する必要があります。