OpenLDAP配置

本文详细介绍了如何启动和停止开放LDAP服务,配置服务参数,包括设置域名、数据库、管理员密码等。同时,提供了客户端配置文档的示例,演示了如何通过客户端工具进行数据录入、添加根、创建组织单元、添加用户、权限定义、删除对象等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:

http://linux.chinaunix.net/techdoc/net/2007/02/27/951125.shtml

http://blog.youkuaiyun.com/zhangjunfangkaixin/article/details/3976669

启动与停止

服务启动
        
$ /usr/sbin/slapd

可以通过以下命令查看slapd是否启动
$  ps aux |grep slapd
openldap  6406  0.0  0.2  14608  2764 ?        Ssl  13:27   0:00 /usr/sbin/slapd -g openldap -u openldap
tony      6417  0.0  0.0   4892   752 pts/1    R+   13:28   0:00 grep slapd

如果服务没有启动,可以

$ /usr/sbin/slapd -d 256

来查看错误信息


配制

     
比如说我们的域名是debsir.org, 在配制文件/etc/ldap/slapd.conf中可以做如下调整
database        bdb                                     #设置使用的资料库
suffix          "dc=debsir,dc=org"                      #设置目录后缀
rootdn          "cn=admin,dc=debsir,dc=org"             #设置目录管理员
directory       "/var/lib/ldap"                         #设置数据库路径
rootpw          secret                                  #设置管理密码
这里用了明文的“secret”密码。这样设置不安全,如果需使用加密的密码,则可以借助slappasswd 命令
比如:
$ slappasswd -h {MD5}
New password:
Re-enter new password:
{MD5}4QrcOUm6Wau+VuBX8g+IPg==
其中使用 -h 选项用于指定加密方式, 它支持{CRYPT}, {MD5}, {SMD5}, {SSHA}, 和  {SHA} 方式
然后修改/etc/ldap/slapd.conf 中的rootpw 行为:
rootpw          {MD5}4QrcOUm6Wau+VuBX8g+IPg==

修改后,需要重启slapd服务

首先要添加根,这一步是必要的,不然任何数据都添加不进去,并且也搜索不到数据,会报错。我们编辑一个test.ldif文件:

dn: dc=debsir,dc=org
objectClass: dcObject
objectClass: organization
dc: test
o: Example Company

dn: cn=Manager,dc=debsir,dc=org
objectClass: organizationalRole
objectClass: top
cn: Manager

执行命令:

# ldapadd -x -D "cn=Manager, dc=debsir,dc=org" -w secret -f test.ldif
        
$ sudo /etc/init.d/slapd  restsart
这时可以使用客户端工具ldapsearch连接服务器查看目录信息:
~$ ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
如果命令执行成功,返回一些信息,则说明服务器正常运行了
# extended LDIF
#
# LDAPv3
# base  with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
#
#
dn:
namingContexts: dc=debsir,dc=org
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
或者
$ ldapsearch -x -b dc=debsir,dc=org
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# debsir.org
dn: dc=debsir,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: debsir.org
dc: debsir
# admin, debsir.org
dn: cn=admin,dc=debsir,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2

如果启动不成功,它会提示一些出错信息,多数是slapd.conf配置出错。回头仔细核查一下配置文档。

如果执行命令“ldapsearch -x -b dc=debsir,dc=org”,报错“32 No such object”,那么说明没有成功添加根。

3.4

客户端配置文档

     
客户端配置文档是ldap.conf。该文档相当简单,其实不用配置也能正常操作。
BASE    dc=it, dc=com  #设置目录起点
URI    ldap://localhost ldap://localhost:666
3.5

数据录入

定义一个组织单元
创建文件group.ldif,内容如下:
        
dn: ou=people,dc=debsir,dc=org
objectClass: organizationalUnit
ou: people
创建用户
创建文件person.ldif,内容如下:
               
dn: cn=tony,ou=people,dc=test,dc=com
objectClass: organizationalPerson
objectClass: top
cn: tony
sn: an
postalCode: 330005
telephoneNumber: 12345678
title: System Administrator
postalAddress: Guiyang, China
*  dn唯一地确定了这个对象的位置
* objectClass确定了这个对象所具有的属性
* objectClass可以有多个
注意每行后面不要留有空格。
3. 将信息添加到数据库
        
$ ldapadd -x  -D cn=admin,dc=debsir,dc=org -W -f group.ldif
Enter LDAP Password:
adding new entry "ou=people,dc=debsir,dc=org"
        
tony@tonybox:~$ ldapadd -x  -D cn=admin,dc=debsir,dc=org -W -f person.ldif
Enter LDAP Password:
adding new entry "cn=tony,ou=people,dc=debsir,dc=org"
其中
* x,使用简单认证方式
* -v,输出更多信息
* -D cn=admin,dc=cg,dc=com,dc=cn,使用此用户进行增加操作,显然用管理员比较好使,增加用户的权限不是谁都有的
* -W,提示输入密码,也可以在命令行里面给出密码,这时的参数应该是 -w password,这对于脚本来说比较方便
4.查看
然后可以用以下命令查看录入信息
        
~$ ldapsearch -x -b cn=tony,ou=people,dc=debsir,dc=org
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# tony, people, debsir.org
dn: cn=tony,ou=people,dc=debsir,dc=org
objectClass: inetOrgPerson
objectClass: top
cn: tony
sn: an
givenName: an
displayName: Tony an
mail: etony@tom.com
postalCode: 330005
telephoneNumber: 12345678
mobile: 12345678912
homePhone: 9999999
title: System Administrator
postalAddress: Guiyang, China
# search result
search: 2
result: 0 Success
# numResponses: 2

# numEntries: 1


添加组:

dn: cn=group2,dc=dc=debsir,dc=org
objectClass: groupOfUniqueNames
cn: group2
uniqueMember: cn=tony,ou=people,dc=debsir,dc=org

添加用户到组:

dn: cn=group3,dc=test,dc=com
changetype: modify
add: uniquemember
uniqueMember: cn=tony1,ou=people,dc=test,dc=com


3.6
权限定义
     
        
access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,dc=debsir,dc=org" write
        by anonymous auth
        by self write
        by * none
access to *
        by dn="cn=admin,dc=debsir,dc=org" write
        by * read
3.7

其它常用操作

修改密码
               
$ ldappasswd -x -v -S -W -D cn=admin,dc=debsir,dc=org cn=tony,ou=people,dc=debsir,dc=org
New password:
Re-enter new password:
Enter LDAP Password:
ldap_initialize(  )
Result: Success (0)
* S 参数是要求命令提示用户输入两次新的密码,来确认密码更新,使用 -s newpasswd 可以在命令行中指定新密码。
删除对象
删除对象的命令则是 ldapdelete,也要指定两个对象,哪个对象删除和删除哪个对象
               
$ ldapdelete -x -v -W -D cn=admin,dc=debsir,dc=org cn=tony,ou=people,dc=debsir,dc=org
修改对象
        
$ ldapmodify -x -D cn=admin,dc=debsir,dc=org -W -f person.ldif
Enter LDAP Password:
modifying entry "cn=tony,ou=people,dc=debsir,dc=org"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值