修改了schema文件,且slapd.conf引用了该schema文件,重启ldap服务,为何没有生效?
旧版本的OpenLDAP配置文件一般是slapd.conf(路径可能是/etc/openldap,也可能是/usr/local/openldap,甚至可能是/usr/share/slapd/,不同版本不同安装不同系统都可能不同,可使用locate slapd.conf进行查找正确的路径),而新版本(我测试的新版本是2.4.31)的OpenLDAP服务运行时并不会读取该配置文件,而是从slapd.d目录(一般与slapd.conf在同一目录下)中读取相关信息,也就是说虽然修改了schema文件,但并没有同步修改到slapd.d目录。
那么如何让修改生效?
1、我们需要把slapd.d目录下的数据删掉,然后利用我们在slapd.conf里配置的信息重新生成配置数据。
rm -fr /etc/openldap/slapd.d/
2、执行:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
3、改变slapd.d的属主:chown -R ldap:ldap /etc/openldap/slapd.d
4、重启ldap服务即可:service slapd restart
总结一句脚本:
rm -fr /etc/openldap/slapd.d/*;slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/;chown -R ldap:ldap /etc/openldap/slapd.d;service slapd restart;
网友评论