LDAP-使用ldapmodify添加新的属性模式

LDAP-使用ldapmodify添加新的属性模式,ldap,freeipa,Ldap,Freeipa,我正在尝试向FreeIPA添加新模式,我正在遵循教程“”,为了添加新模式,我必须使用“ldapmodify”命令。但我得到的结果是: [root@rnddomain schema]# ldapmodify -D "cn=admin" -W -f favorateColorName.ldif Enter LDAP Password: ldap_bind: No such object (32) 我知道很多人已经问过这个问题,但他们的回答中没有一个解决了我的问题。这是我试图添加的模式: dn:

我正在尝试向FreeIPA添加新模式,我正在遵循教程“”,为了添加新模式,我必须使用“ldapmodify”命令。但我得到的结果是:

[root@rnddomain schema]# ldapmodify -D "cn=admin" -W -f favorateColorName.ldif
Enter LDAP Password: 
ldap_bind: No such object (32)
我知道很多人已经问过这个问题,但他们的回答中没有一个解决了我的问题。这是我试图添加的模式:

dn: cn=schema
changetype: modify
add: attributeTypes
attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2
  NAME 'favoriteColorName'
  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  X-ORIGIN 'Extending FreeIPA' )
我将从很远的地方开始

绑定到LDAP时,需要指定绑定DN。虽然Active Directory允许指定rdn而不是完整DN(例如cn=Administrator),但其他LDAP服务器不需要这样做。此外,RDN可能不是
cn
。在FreeIPA中,使用了
uid
属性——而不是使用
cn=admin
您需要指定完整的DN,它应该是
uid=admin,cn=users,cn=accounts,dc=example,dc=com
。您可以通过
ipa user find--raw--all--pkey only
获取用户的DN:

但是,了解admin的完整DN并不能帮助您进行架构更新。FreeIPA的LDAP服务器在内部使用访问控制,防止对目录管理器以外的任何人修改模式。目录管理器是一个具有完整DN
cn=Directory manager
的特殊帐户,因此您应该使用它来导入架构更新

但我建议您不要使用直接ldapmodify进行模式分发。FreeIPA有一个名为ipa ldap updater的工具,它提供了一种发布此类更新的好方法——不仅是模式更新,还可以添加新条目和修改现有条目。您可以在我的博客文章中看到有关如何添加新条目或修改配置的详细信息

对于架构文件,创建一个名为
NNname.ldif
的文件,其中NN是介于00和90之间的数字,并将其放置在某个位置。FreeIPA对模式文件使用
/usr/share/ipa/
,对股票更新文件使用
/usr/share/ipa/updates
,您也可以了解那里的情况。然后运行ipa ldap更新程序--schema文件NNname.ldif,它将安装您的模式。有关其他详细信息,请参阅ipa ldap更新程序的手册页

架构的ipa ldap更新程序语法遵循389 ds架构文件,因此架构定义如下所示:

dn: cn=schema
attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2
 NAME 'favoriteColorName'
 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
 X-ORIGIN 'Extending FreeIPA' )
AttributeType或objectClasses值应遵循标准LDIF格式语法——如果要将单个值拆分为多行,则必须在续行前面加空格(如上所述)。

我将从远处开始

绑定到LDAP时,需要指定绑定DN。虽然Active Directory允许指定rdn而不是完整DN(例如cn=Administrator),但其他LDAP服务器不需要这样做。此外,RDN可能不是
cn
。在FreeIPA中,使用了
uid
属性——而不是使用
cn=admin
您需要指定完整的DN,它应该是
uid=admin,cn=users,cn=accounts,dc=example,dc=com
。您可以通过
ipa user find--raw--all--pkey only
获取用户的DN:

但是,了解admin的完整DN并不能帮助您进行架构更新。FreeIPA的LDAP服务器在内部使用访问控制,防止对目录管理器以外的任何人修改模式。目录管理器是一个具有完整DN
cn=Directory manager
的特殊帐户,因此您应该使用它来导入架构更新

但我建议您不要使用直接ldapmodify进行模式分发。FreeIPA有一个名为ipa ldap updater的工具,它提供了一种发布此类更新的好方法——不仅是模式更新,还可以添加新条目和修改现有条目。您可以在我的博客文章中看到有关如何添加新条目或修改配置的详细信息

对于架构文件,创建一个名为
NNname.ldif
的文件,其中NN是介于00和90之间的数字,并将其放置在某个位置。FreeIPA对模式文件使用
/usr/share/ipa/
,对股票更新文件使用
/usr/share/ipa/updates
,您也可以了解那里的情况。然后运行ipa ldap更新程序--schema文件NNname.ldif,它将安装您的模式。有关其他详细信息,请参阅ipa ldap更新程序的手册页

架构的ipa ldap更新程序语法遵循389 ds架构文件,因此架构定义如下所示:

dn: cn=schema
attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2
 NAME 'favoriteColorName'
 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
 X-ORIGIN 'Extending FreeIPA' )
AttributeType或ObjectClass值应遵循标准LDIF格式语法——如果要将单个值拆分为多行,则必须在续行前面加空格(如上所述)