openldap 在centos 6 ldap_bind: Invalid credentials (49)

本文介绍如何通过一系列命令配置OpenLDAP服务。首先删除旧配置文件,然后使用slaptest命令生成新配置文件,并设置正确的文件权限。最后,更新配置后重新启动服务进行验证。
删除目录中的所有文件/ etc / openldap /拷贝到slapd.d /与命令
[root@loaclhost ~]# rm -rf /etc/openldap/slapd.d/*

slaptest运行测试配置文件并创建新的配置在目录/ etc / openldap /拷贝到slapd .d

[root@localhost ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

设置权限为一个新的配置文件。

[root@localhost ~]# chown -R ldap:ldap /etc/openldap/slapd.d

最后,删除或重命名,sldap.conf .

在所有的步骤你可以开始拷贝到slapd服务,然后再次尝试使用ldapsearch和ldapadd

<think>嗯,用户想检查他们的Docker Compose配置文件是否存在错误。首先,我需要仔细看看他们提供的配置内容。根据用户提供的引用[1]和引用[2],他们可能是在部署LDAP相关的服务,比如OpenLDAP和phpLDapAdmin,还有Go-LDAP-Admin。用户给出的配置示例中,可能有一些常见的错误需要注意。 首先,我会检查Docker Compose文件的版本。用户提到使用的是version 3,这是正确的,但需要确认具体的子版本,比如version: "3.8"等,不过有时候用户可能只写"3",这通常没问题,但最好明确指定。 接下来看服务定义。用户的服务包括ldapserver和ldapadmin,以及可能的go-ldap-admin和mysql。在示例配置中,ldapserver使用了osixia/openldap镜像,环境变量如LDAP_DOMAIN、LDAP_ORGANISATION等被星号包围,用户可能需要替换这些值。需要确认这些环境变量是否正确设置,尤其是密码部分是否符合安全要求。 端口映射部分,用户将容器内的389端口映射到主机的1389,这是为了避免与主机上已有的LDAP服务冲突。但要注意,示例中的端口映射可能有重复或冲突,比如1689和689,这里可能存在笔误,因为LDAP的默认端口是389,而SSL是636。用户可能想映射到不同的主机端口,但需要确保配置正确。 网络配置方面,用户创建了一个名为ldap_network的桥接网络,两个服务都连接到该网络,这样它们可以通过服务名互相访问。但在ldapadmin服务的links部分,引用了ldap-server,而实际服务名是ldapserver,这里可能存在名称不一致的问题,会导致容器间通信失败。例如,links应该是- ldapserver,而不是ldap-server。 另外,depends_on的设置是否正确。在示例中,ldapadmin依赖于ldap-server,但服务名是ldapserver,这会导致依赖无法正确识别,应该改为depends_on: - ldapserver。 在volumes部分,用户挂载了多个目录,需要确认宿主机路径是否存在,否则Docker会自动创建目录,但权限可能有问题。特别是OpenLDAP的数据目录,如果挂载点不正确,可能导致数据无法持久化。 接下来看用户提供的另一个引用[2],其中涉及Go-LDAP-Admin的配置,用户可能还在配置钉钉同步,这里需要检查环境变量如app-key、app-secret是否正确,并且enable-sync是否设置为true以启用同步。 此外,用户可能在配置文件中遗漏了其他服务,比如mysql,如果go-ldap-admin依赖MySQL数据库,需要确保mysql服务正确定义,并且网络配置正确,使得各个服务能够互联。 还有,检查缩进和格式是否正确,YAML对缩进敏感,错误的缩进会导致解析失败。比如,volumes和ports的列表项是否对齐,环境变量的键值是否正确缩进。 最后,建议用户使用docker-compose config命令来验证配置文件语法,这能快速发现格式错误。同时,运行docker-compose up --dry-run也可以检查配置是否正确,而不实际启动容器。 总结可能的问题点:服务名称不一致、端口映射错误、依赖服务名称错误、环境变量未正确替换、网络配置问题等。需要逐一检查这些部分,确保配置正确无误。</think>以下是对Docker Compose配置文件的分析及修改建议: ### 一、配置问题分析 1. **网络配置冲突** - 原配置中`ldap_network`定义为桥接网络,但`go-ldap-admin`未显式声明加入该网络,可能导致服务间通信失败[^1] - 建议为所有关联服务统一指定网络 2. **服务依赖缺失** - `go-ldap-admin`未声明对`mysql`和`openldap`的依赖关系,可能导致启动顺序错误 - 需添加`depends_on`字段确保数据库先启动 3. **端口映射冲突** - `1389:389`与`1689:689`映射存在潜在冲突,LDAP标准端口应为389,SSL端口636[^1] - 建议保持标准端口映射或明确注明非标用途 ### 二、优化后配置示例 ```yaml version: "3.8" services: mysql: image: mysql:5.7 container_name: ldap_mysql environment: MYSQL_ROOT_PASSWORD: your_root_password MYSQL_DATABASE: go_ldap MYSQL_USER: ldap_admin MYSQL_PASSWORD: admin_password volumes: - mysql_data:/var/lib/mysql networks: - ldap_network ldapserver: image: osixia/openldap container_name: ldap_server environment: LDAP_DOMAIN: testldap.com LDAP_ORGANISATION: TestLDAP LDAP_ADMIN_PASSWORD: secure_password LDAP_TLS: 'false' volumes: - ldap_data:/var/lib/ldap - ldap_config:/etc/ldap/slapd.d ports: - "1389:389" networks: - ldap_network go-ldap-admin: image: go-ldap-admin:latest container_name: go_ldap_admin environment: DB_HOST: mysql DB_NAME: go_ldap DB_USER: ldap_admin DB_PASSWORD: admin_password ports: - "8080:80" depends_on: - mysql - ldapserver networks: - ldap_network networks: ldap_network: driver: bridge volumes: mysql_data: ldap_data: ldap_config: ``` ### 三、验证方法 1. 语法检查命令: ```bash docker-compose config ``` 2. 测试运行命令: ```bash docker-compose up --dry-run ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值