我无法将posix用户/组添加到这个新创build的ldap目录。 OpenLDAP版本是2.4.19。
我已经填充LDAP目录的LDIF可能是问题,但我不知道接下来我需要做什么…
dn: dc=company,dc=net,dc=au objectClass: dcObject objectClass: organization o: Company Pty Ltd dc: company dn: cn=manager,dc=company,dc=net,dc=au objectClass: organizationalRole cn: Manager dn: ou=People,dc=company,dc=net,dc=au objectClass: organizationalUnit objectClass: top ou: People dn: ou=Groups,dc=company,dc=net,dc=au objectClass: organizationalUnit objectClass: top ou: Groups
有人可以请教我:)
更新:我已经添加了nis.schema ,我期望解决这个问题,因为它有我所有的posix *类。 但是,我现在得到以下错误:
/etc/openldap/schema/nis.schema: line 203 objectclass: AttributeType not found: "manager" /opt/openldap/etc/openldap/slapd.conf: line 6: <include> handler exited with 1! slapd destroy: freeing system resources. slapd stopped. connections_destroy: nothing to destroy.
nis.schema行的相关部分如下…
objectclass ( 1.3.6.1.1.1.2.6 NAME 'ipHost' DESC 'Abstraction of a host, an IP device' SUP top AUXILIARY MUST ( cn $ ipHostNumber ) MAY ( l $ description $ manager ) )
我会继续阅读。
我用phpldap帮不了你,因为我从来没有用过(我更喜欢ApacheDirectoryStudio或者openldap的命令行工具),但是如果你可以使用一个通用的LDIF文件,请尝试下面这个:
dn: uid=juser,ou=People,dc=company,dc=net,dc=au objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: posixAccount objectClass: top cn: Joe User gidNumber: 100 homeDirectory: /home/juser uid: juser uidNumber: 1004 gecos: Joe User givenName: Joe loginShell: /bin/bash
…看它是否有效?
无论如何,我强烈build议使用ApacheDirectoryStudio作为通用的LDAP /模式浏览器。
我想我已经想通了 – 一旦我读完了,我会发布根本原因和详细的解决scheme; 但现在 – 也就是说 – 我没有包含适当的模式文件。
posixAccount是一个辅助类,所以它是完全可选的,可以“附加”到所需的结构上 – 无论是person,organizationalPerson还是interOrgPerson。
不,我以为我很接近,还是没有运气。 为了添加nis.schema,我不得不添加一些先决条件模式,所以现在我有…
include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema
这解决了slapd没有启动,但是,我仍然无法在ldap mgmt web界面的任何地方看到任何posix *类。
您可以尝试使用迁移脚本来生成基本的ldif。 在我的RHEL安装上,他们在/usr/share/openldap/migration/ ,当然取决于你的发行版,他们可能会在别的地方。
migrate_passwd.pl会给你你的用户, migrate_group.pl你的组(显然)。 如果合适的话,还可以使用migrate_all_online.sh来吸收当前系统中的所有内容,并将其直接转储到当前正在运行的LDAP中(然后根据需要修剪或添加)。
你有正确的答案 您需要在slapd.conf中添加模式,然后重新启动:
注意:顺序很重要!
include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/collective.schema
然后你可以通过ldif文件添加POSIX用户:
# User primary group dn: cn=ussergroup,ou=groups,dc=me,dc=com cn: ussergroup objectClass: top objectClass: posixGroup gidNumber: 10001 # User account dn: uid=user,ou=users,dc=me,dc=com cn: user givenName: user sn: user uid: user uidNumber: 10001 gidNumber: 10001 homeDirectory: /home/user mail: [email protected] objectClass: top objectClass: posixAccount objectClass: shadowAccount objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person loginShell: /bin/bash userPassword: {CRYPT}*