OPENLDAP 命令操作

 

手动录入方法

  • 第一步是要建立DN

  • # ldapadd -x -D 'cn=root,dc=it,dc=com' -W

  • dn: dc=it,dc=com

  • objectClass: dcObject

  • objectClass: organization

  • dc: it

  • o: Corporation

  • description: d Corporation

  • 注意:如果你用复制/粘贴功能把以上内容拷贝过去,一定要注意每行后面不要有空格,建议还是手工输入,按Ctrl+d存盘。

  • 第二步是建立RDN:

  • # ldapadd -x -D 'cn=root,dc=it,dc=com' -W

  • #-x表示用简单验证,-D表示指定目录,-W表示弹出密码输入提示

输入密码,这里的密码是在配置文件中rootpw项设置的密码,不是操作系统中root用户的密码。验证通过后就可输入以下内容:

dn: uid=qq,dc=cs,dc=tjut

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

uid: qq

cn: qq

sn: qq

telephoneNumber: 138888888

description: openldap test

telexNumber: tex-8888888

street: my street

postOfficeBox: postofficebox

displayName: qqdisplay

homePhone: home1111111

mobile: mobile99999

mail:[email protected]

输入完所有信息后,按Ctrl+d结束存盘。如果出现出错信息,请查一下对象类和属性的对应关系有没有错或输入失误。初学者就容易出错的地方是对象类和属性的对应关系没有处理好。对象类和属性是在schema文档中定义的。它们之间的关系是这样的,对象类中有些属性是必选的,有些属性是可选的。录入信息的属性必须在对象类中有定义才能用。

输入以下命令可查询到刚才输入的信息。

# ldapsearch -x -b 'dc=it,dc=com'

-b选项是设置目录起点,如果设置了客户端的BASE配置参数,该项可不用。

如果按以上配置文件设置了acl,用上面的查询命令是查询不到受保护的内容的。如上面的userPassword and mail。要查询到这些受限内容,需要通过验证才可以:

# ldapsearch -x -LLL -h it.com -b 'dc=it,dc=com' -D 'uid=qq,dc=it,dc=com' -W 'uid=qq'

接着提示输入密码。输入userPassword的密码回车,所有信息就都出来了。

2.2.2. 文件方式

.ldif文件方式也就是把以上手工输入的内容先写入一个.ldif文件中,然后,用ldapadd命令的-f参数导入。

# ldapadd -x -D "cn=root,dc=it,dc=com" -W -f test.ldif

一个完整的global.ldif文件例子:

dn: dc=info, dc=net

objectClass: top

objectClass: organization

o: info.net

 

dn: ou=People, dc=info, dc=net

objectClass: top

objectClass: organizationalUnit

ou: People

description: User Info

 

dn: cn=Admin, dc=info, dc=net

objectClass: top

objectClass: person

objectClass: organizationalPerson

cn: Admin

sn: Admin

userPassword: Admin

description: Administrator for info.net

 

dn: id=1, ou=People, dc=info, dc=net

objectclass: top

objectclass: InfoPerson

id: 1

username: 张三

tel:021-63138990

card_id:ABC001

我们也可用slapadd命令来导入数据。该命令可以导入包含一些系统信息的ldif文件,如:

dn: dc=it,dc=com

objectClass: top

objectClass: dcObject

objectClass: organization

dc: it

structuralObjectClass: organization

entryUUID: d97b06da-d77e-1028-9866-d4ec7ac00d12

creatorsName: cn=anonymous #系统信息

createTimestamp: 20041201005115Z #系统信息

o:: 5bm/5bee5biC6JmO5aS055S15rGg6ZuG5Zui5pyJ6ZmQ5YWs5Y+4

userPassword:: e01ENX14TXBDT0tDNUk0SU56RkNhYjNXRW13PT0=

entryCSN: 2004120603:50:08Z#0x0001#0#0000 #系统信息

modifiersName: cn=admin,dc=it,dc=com #系统信息

modifyTimestamp: 20041206035008Z #系统信息

 

 

 

再次提醒,注意每行后面不要留有空格。

2.2.3. 脚本方式

脚本录入方式需要自已编写脚本,或到网上下载。有一个用PHP写的LDAP管理工具不错,叫phpLDAPadmin。可以到以下网址下载:http://phpldapadmin.sourceforge.net。安装方法也很简单,只要解压出来,拷贝到apacheweb目录下,按说明配置一下设定文档,ok了。

2.3. 常用命令介绍

接着为大家介绍一下几个常用的ldap命令,如果你用了phpLDAPadmin程序,其实它已经有一个很好的图形介面帮你完成这些命令了。但了解一下还是对你还是很有益的,因为命令方法才是最根本的。

  • 删除命令ldapdelete

  • # ldapdelete -x -D 'cn=root,dc=it,dc=com' -W 'uid=qq1,dc=it,dc=com'

  • 重新索引ldap数据库命令slapindex

  • # slapindex -f slapd.conf

  • 设置使用者密码,当然了,你的用户需要有userPassword项了。

  • #ldappasswd -x -D "cn=root,dc=it,dc=com" -W "uid=qq1,dc=it,dc=com" -S

  • New password:

  • Re-enter new password:

  • Enter bind password:

  • Result: Success (0)

     

     

     

    "Enter bind password" "cn=root,dc=it,dc=com"管理员的密码。

  • 管理员密码更改

  • #slappasswd

  • New password

  • Re-enter new password

  • {SSHA}83DJ4KVwqlk1uh9k2uDb8+NT1U4RgkEs

接下再拷贝到 path/to/sldap.conf rootpw 即可,重启使用配置文件生效

  • 通过ldapmodify修改目录内容

  • # ldapmodify -x -D "cn=root,dc=it,dc=com" -W -f modify.ldif

通过ldif文件修改ldap数据,ldif文件格式如下:

dn: cn=qq,dc=it,dc=com

changetype: modify

replace: mail

mail: [email protected]

-

add: title

title: Grand Poobah

-

add: jpegPhoto

jpegPhoto:< file:///tmp/modme.jpeg

-

delete: description

-

 

你可能感兴趣的:(apache,qq,schema,脚本,mobile,文档)