执行ldapadd 命令时报错:ldap_bind: Invalid credentials (49)
转载自:http://www.linuxfly.org/post/671/
某项目,需要在Asianux 4.0上配置LDAP服务。参考以前的[原]操作ldap 数据库一文,在执行ldapadd 命令时报错:
引用
ldap_bind: Invalid credentials (49)
经分析及查询相关资料,原来该版本的OpenLDAP已改用其他格式保存配置数据,原来的slapd.conf 仅作为模板使用。
一、软件版本
先来看看具体的版本信息:
引用
# cat /etc/asianux-release
Asianux Server 4 (Hiranya)
# rpm -qa|grep openldap
openldap-2.4.19-15.AXS4.x86_64
openldap-servers-2.4.19-15.AXS4.x86_64
openldap-devel-2.4.19-15.AXS4.x86_64
openldap-clients-2.4.19-15.AXS4.x86_64
compat-openldap-2.4.19_2.3.43-15.AXS4.x86_64
二、配置LDAP
1.修改配置文件
这里假设系统是新安装好的,没有遗留数据。若非如此,请参考附录。
在/etc/openldap目录下,有一个slapd.conf.bak文件,拷贝一份为slapd.conf。
# cd /etc/openldap
# cp slapd.conf.bak slapd.conf
(为什么这里会没有slapd.conf,第一次配置时已觉得有点问题,后来才知道,因为该文件现仅作为模板使用,服务真正读取的配置数据不在这里)
然后,使用slappasswd命令创建一个密码:
引用
# slappasswd
New password:
Re-enter new password:
{SSHA}3c6DQ4xIKU/7Qz22Y2S2MgOoHhQkasR/
接着,参考以前的文档,修改slapd.conf中相关的信息,例如:
引用
database bdb
suffix "dc=example,dc=com"
checkpoint 1024 15
rootdn "cn=Manager,dc=example,dc=com"
#rootpw secret
rootpw {SSHA}3c6DQ4xIKU/7Qz22Y2S2MgOoHhQkasR/
access to *
by dn.exact="cn=Manager,dc=example,dc=com" read
by * none
蓝色标注的是密码,默认是注释的或为明文的“secret”,这里直接使用slappasswd命令生成的密码。
2.生成配置数据
正如前面所说的,服务运行时并不会读取slapd.conf 文件,而是从/etc/openldap/slapd.d目录中读取相关信息。
我们打开slapd.d/cn=config/olcDatabase={1}bdb.ldif 文件会看到以slapd.conf.bak生成的信息:
引用
# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}bdb.ldif
olcDatabase: {1}bdb
olcSuffix: dc=my-domain,dc=com
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=Manager,dc=my-domain,dc=com
所以,接下来要做的,就是先把这些数据删掉:
# rm -rf /etc/openldap/slapd.d/*
然后重新生成新配置数据:
引用
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
看看新生成的配置数据是否匹配:
引用
# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}bdb.ldif
dn: olcDatabase={1}bdb
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {1}bdb
olcSuffix: dc=example,dc=com
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=Manager,dc=example,dc=com
不错吧。但为了便于slapd服务读取,需要改一下宿主:
引用
# chown -R ldap.ldap slapd.d/
# ll slapd.d/
drwxr-x---. 3 ldap ldap 4096 10月 18 05:17 cn=config
-rw-------. 1 ldap ldap 1007 10月 18 05:17 cn=config.ldif
默认权限是没问题的,不需修改。
3.生成bdb数据
配置文件中,默认指定把数据存放在/var/lib/ldap目录下。启动LDAP服务前,还需要拷贝一个DB_CONFIG文件:
# cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown ldap.ldap /var/lib/ldap/DB_CONFIG
若不拷贝该文件,会报错,请见附录。启动slapd服务:
引用
# service slapd start
正在启动 slapd: [确定]
4.导入数据
为了可正确访问LDAP数据库,还需要导入初始数据。使用vi 创建一个ldif文件,内容如下:
引用
# cat example.ldif
dn:dc=example,dc=com
objectclass:dcObject
objectclass:organization
o:Example,Inc.
dc:example
dn:cn=Manager,dc=example,dc=com
objectclass:organizationalRole
cn:Manager
执行ldapadd命令导入:
引用
# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f example.ldif
Enter LDAP Password:
adding new entry "dc=example,dc=com"
adding new entry "cn=Manager,dc=example,dc=com"
提示输入密码时,输入开始由slappasswd生成,并写入slapd.conf 配置模板rootpw部分后面的密码。
至此,LDAP配置已完成。
5.备份配置模板
为免出现误会,通常建议把配置文件sladp.conf 拷贝为.bak 文件,作为模板保存:
引用
# mv slapd.conf slapd.conf.bak
mv:是否覆盖"slapd.conf.bak"? y
三、使用phpLDAPadmin访问
phpLDAPadmin是使用php编写的,易于访问LDAP数据库的Web工具。从官网下载后,解压到/var/www/html 目录下,并改名、赋予合适的属主。
引用
# ll /var/www/html/phpldapadmin/ -d
drwxr-xr-x. 11 apache apache 4096 10月 18 03:45 /var/www/html/phpldapadmin/
然后,拷贝一个配置文件:
# cd /var/www/html/phpldapadmin/config
# mv config.php.example config.php
即可配置完成。
访问http://ip/phpladpadmin:
输入slapd.conf 配置模板中的rootdn 部分作为登陆DN,rootpw 部分为密码。
# rm -rf /var/lib/ldap/*
# rm -rf /etc/openldap/slapd.d/*
ldap_bind: Invalid credentials (49)
bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
原因是/var/lib/ldap目录中缺少DB_CONFIG文件,参考上面的方法从openldap-servers 包中拷贝一份,并赋予合适的属主即可。
五、参考资料
Red Hat 6: How to resolve ldapadd ldap_bind: Invalid credentials (49)
centos 简单安装 openldap
转载于:https://blog.51cto.com/wjcaiyf/1601204
执行ldapadd 命令时报错:ldap_bind: Invalid credentials (49)相关推荐
- 【Cmake】执行cmake命令时报错:No XSLT processor found
一.问题描述 在ubuntu中,在生成Doc(文档)中,执行cmake命令时报错:No XSLT processor found 二.原因查找 google该错误信息,原因是确实ubuntu中没有安装 ...
- mysql grant reload,MySQL执行GRANT命令时报错ERROR 1045解决办法
摘要 腾兴网为您分享:MySQL执行GRANT命令时报错ERROR 1045解决办法,杂志迷,云闪付,一直播,小象优品等软件知识,以及592美剧,乐天网络电视,吃鸡无后座,易语言宝盒,语音转文字软件, ...
- 执行wsl 命令时报错 nsenter: failed to execute 564: No such file or directory
问题 在cmd命令框中执行wsl命令时报错 nsenter: failed to execute 564: No such file or directory无法进入Ubuntu子系统中 C:\Use ...
- LDAP 配置 ldap_bind: Invalid credentials (49)
在执行 ldapadd -x -D cn=Manager,dc=srv,dc=world -W -f basedomain.ldif,要求输入密码Enter LDAP Password: ldap_b ...
- Gitlab和AD账号集成,账号登录时报错:Invalid credentials
背景: 公司搭建了Gitlab,然后和AD账号进行集成,采用AD账号进行认证. 问题: 其他集成的系统使用AD账号都无认证错误的问题,只有Gitlab认证时,提示报错:Invalid credenti ...
- 编译Android源码,执行lunch命令时报错“No such file: /root/.lunchrc”的解决办法
1.问题描述: 在编译Android系统源码时,执行#lunch命令,报"No such file: /root/.lunchrc"错误,现象如图所示. 2.解决办法: 将系统源码 ...
- 在windows上执行certutil命令时报错CertUtil: WsResetMetadata
E:\TDDOWNLOAD\ORACLE11G>certutil -hashfile p13390677_112040_Linux-x86-64_1of7.zip md5 ---->> ...
- 执行ssh命令时报错CANNOT LINK EXECUTABLE “ssh“ library “libcrypto.so.1.1“ not found解决方法
1. 删除 openssh 2. 安装 openssl 3. 安装 openssh 卸载:pkg uninstall 包名
- linux怎么卸载webpack,安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc
安装webpack后,执行webpack -v命令时报错如下: [root@FreeServer ~]# webpack -v /usr/local/node-v4.4.7-linux-x64/lib ...
最新文章
- 哈希表的C实现(二)
- UNIX网络编程读书笔记:辅助数据
- 分享实录 | 深度学习技术红利下的代码补全
- redis——HyperLogLog
- 信息学奥赛一本通C++语言——1039:判断数正负
- 修复IE下相对容器中绝对定位Bug
- html中怎么不让网页缩放_网页中的形状图形都是怎么画出来的?
- 微软再损一将!继Nat Friedman后,另一Xamarin联合创始人也已离职
- java.io.IOException: CreateProcess error=2, ?????????
- c++ static静态变量、静态函数
- python 全国内地中高风险地区数量查询与可视化(分省)
- 使用Excel拼接SQL语句
- 光纤跳线接口_如何为10G SFP+光模块搭配对应的光纤跳线类型?
- QCC305x系列开发教程(入门篇)之1.3-烧录方式使用USB时的驱动安装及其出现“未知设备”的解决方法
- android scrollview滚动条初始位置,ScrollView 设置滚动条的位置
- python 视频播放 拖动_python + opencv鼠标拖动视频区域裁剪
- 全网首发!Java高级程序员面试集合
- 文件下载和二进制文件(图片、mp4视频)预览响应头的设置(防止中文名名乱码)
- 边缘计算(雾计算)——AI+IoT的热词
- python 生成payload_通过Python实现Payload分离免杀过程详解
热门文章
- 说说你对http、https、http2.0的理解【前端每日一题-25】
- Knockout 官网学习文档目录
- LeetCode 168. Excel Sheet Column Title
- 栈和队列----用栈求解汉诺塔问题
- c#使用Stopwatch来计算时间间隔
- 查询score中选学多门课程的同学中分数为非最高分成绩的记录。
- cdlinux miniwdep 配置无线网卡
- 《深入.NET平台和C# 编程》内部测试 笔试题
- 6.Python标准库_子进程 (subprocess包)
- FIneCMS /dayrui/libraries/Chart/ofc_upload_image.php Arbitrary File Upload Vul