错误:自动从模板中删除 objectClass,因为它未在架构中定义

错误:自动从模板中删除 objectClass,因为它未在架构中定义

我在 2 个不同的 CENTOS 7 服务器中使用 phpldapadmin 安装 openldap,配置如下:

openldap 服务器:

firewall-cmd --permanent --add-service=ldap
firewall-cmd --permanent --add-port=389/tcp
firewall-cmd --reload
yum install -y openldap openldap-clients openldap-servers
slappasswd

设置密码并记下哈希值

在:/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

改变:

olc后缀:dc=我的域名,直流=通信

olcRootDN: cn=用户,直流=我的域名,直流=通信

olcRootPW:{SSHA}来自slappswd 的随机哈希

/usr/share/openldap 服务器/slapd.ldif

改变:

第 134 行:n=auth”读取者

dn.base="cn=用户,直流=我的域名,dc=com" 由 * none 读取 第 144 行:

olc后缀:dc=我的域名,dc=com 第 145 行: olcRootDN:

cn=用户,直流=我的域名,直流=通信

添加:

olcRootPW:{SSHA}来自slappswd 的随机哈希

/etc/openldap/ldap.conf

改变:

BASE dc = mydomain,dc = com

URI ldap://主机名.域名.local

跑步:

slaptest -u

配置文件测试成功

我收到如下的校验和错误,但我忽略了它。

54a39508 ldif_read_file:“/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif”上的校验和错误

54a39508 ldif_read_file:“/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif”上的校验和错误

跑步:

systemctl enable slapd
systemctl start slapd
systemctl restart slapd
cd /etc/openldap/
vi base.ldif

创造

基础LDIF文件

如下:

dn: dc=mydomain,dc=com
objectClass: dcObject
objectClass: organization
o: mydomain.com
dc: mydomain

dn: ou=users,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: users

dn: ou=groups,dc=mydomain,dc=com
objectClass: organizationalUnit
objectClass: top
ou: group

最后运行:

ldapadd -x -W -D "cn=root,dc=mydomain,dc=com" -f base.ldif
systemctl restart slapd

phpldapadmin 服务器:

跑步:

yum -y install httpd
firewall-cmd --add-service=http
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
systemctl restart httpd.service
systemctl start httpd.service
systemctl enable httpd.service
yum -y install php php-mbstring php-pear php-ldap
systemctl restart httpd.service
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum --enablerepo=epel -y install phpldapadmin
setsebool -P httpd_can_connect_ldap on

结果:

连接工作正常,我可以访问 phpldapadmin 站点并通过 open ldap 服务器登录。

问题:

我收到很多错误:自动从模板中删除 ObjectClass - 而我实际上需要它来创建 acct 等。

我收到很多错误:自动从模板中删除 ObjectClass

有谁知道这里出了什么问题?

我已经花了相当多的时间来弄清楚:(

如果有人可以帮助我,请告诉我:)

谢谢,

答案1

这些错误对功能没有影响。您可以通过在 /etc/phpldapadmin/config.php 中取消注释此行来隐藏这些模板错误消息:

$config->custom->appearance['hide_template_warning'] = true;

答案2

错误消息似乎相当清楚。inetOrgPerson未在服务器架构中定义。默认情况下它不会存在,而且看起来您没有添加它。

inetOrgPersonschema 依赖于cosineschema,schema 又依赖于coreschema。默认情况下,核心 schema 可能存在。

ldapadd <auth for cn=config> -f /etc/openldap/schema/core.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/cosine.ldif
ldapadd <auth for cn=config> -f /etc/openldap/schema/inetorgperson.ldif

您可能需要进行一些破解/etc/openldap/slapd.d/cn=config.ldif才能获得写入权限cn=config。许多发行版没有合理的 OpenLDAP 默认值。

相关内容