2023年6月21日发(作者:)
在《在Linux上建立LDAP服务器(二)》中,我们描述了它的安装以及它的非常基本的配置。今天我们将使用真实数据来组装我们的目录,引导你毫无费力的避开一些常见误区。
目录
它能运行吗?
修改
添加条目
.ldif的缺陷
添加用户
模式
结论
Resources
我们先回顾一下第二部分中我们的 配置:
##Database Directives##
database bdb
suffix "dc=carlasworld,dc=net"
rootdn "cn=Manager,dc=carlasworld,dc=net"
rootpw secret
directory "/var/lib/ldap"
我们来详细讨论配置中的每一行。
·首先,确定用你的真实域取代"" 。
·rootdn 非常重要。这是你创建授权用户输入条目到数据库的地方。这里我称之为管理员(Manager)。你可以随便称呼它:管理员、老板、ldap最高统治者——你想称呼它什么,就称呼什么。
·rootpw 也是非常重要的。它是授权用户的(管理员的) 密码。现在,我们要使用明文密码。在上述的例子中,它为"secret";但是密码你可以随意设定。
·directory 是OpenLDAP存储实际数据库文件的地方,它在下一行。目录在启动slapd 之前必须存在。
"/var/lib/ldap" 是安装者创建的一个常用目录,尽管你的Linux版本可能已经将它放在其他地方了。你也可以创建一个你自己选择的目录。但是,我们的目的是要找到它,而不是只创建目录——查看更多细节,请参考 OpenLDAP
Administrator's Guide 。
目录下已经安装了下列文件: $ ls /var/lib/ldap
__db.001 __db.003 __db.005
__db.002 __db.004 log.
它能运行吗?
首先,检查 有无语法错误:
# slapd -t
然后,运行下列命令(不要写错了):
$ ldapsearch -x -b '' -s base '(objectclass=*)'
namingContexts
他会返回几行费解的代码;看这行:
dn:
namingContexts: dc=carlasworld,dc=net
修改
只要你修改了,就必须重新启动:
# /etc/init.d/slapd restart
添加条目
现在我们进入有趣的部分。手动创建条目有两个步骤。首先,创建一个.ldif
文件,然后使用命令ldapadd ,输入新的条目到数据库中。在.ldif 文件中——我们统统称之为 ——定义了你公司的一些属性:
##my company##
dn: dc=carlasworld,dc=net
objectclass: dcObject
objectclass: organization
o: Tuxcomputing, inc.
dc: carlasworld
dn: cn=Manager,dc=carlasworld,dc=net
objectclass: organizationalRole
cn: Manager .ldif的缺陷
请确定你已经去除了首尾空白,以及空白行。尽管行结尾的尾空白可以告诉ldapadd:下一行是前一行的继续,但是任何首空白或者尾空白都会让ldapadd
相信这里什么都没有。请使用空白行分隔条目。
下一步就是添加 文件到ldap:
# ldapadd -x -D "cn=Manager,dc=carlasworld,dc=net"
-W -f
想了解不同标记代表的含义请参考man ldapadd 。ldap 要求你输入LDAP密码,然后才批准添加条目。如果你不幸得到"ldap_bind: Invalid credentials
(49)"错误,就表示你要么给出了错误的"cn="条目,要么给出了错误的密码。
只有普通名(cn)和密码在中都正确,才不会出现任何关于他们的任何莫名其妙的信息。 注意:我们稍候会删除这些。(虽然创建新数据库时需要他们,稍候我们添加更强的授权时就会替换它们。)
我们看看现在我们的数据库看起来像什么:
# ldapsearch -x -b 'dc=carlasworld,dc=net'
'(objectclass=*)'
它会显示数据库中的每一条。
添加用户
好,现在让我们使用 文件,添加一些真正的用户:
#Tux Entry
dn: cn=Tux P Tuxedo,dc=carlasworld,dc=net
cn: Tux P Tuxedo
cn: Tux Tuxedo
objectClass: person
sn: Tuxedo
# ldapadd -x -D "cn=Manager,dc=carlasworld,dc=net"
-W -f
Enter LDAP Password:
adding new entry "cn=Tux P
Tuxedo,dc=carlasworld,dc=net"
# ldapsearch -x -b 'dc=carlasworld,dc=net'
'(objectclass=*)'
# extended LDIF #
# LDAPv3
# base with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
#
dn: dc=carlasworld,dc=net
objectClass: top
objectClass: dcObject
objectClass: organization
o: Tuxcomputing, Inc.
# Tux P Tuxedo,
dn: cn=Tux P Tuxedo,dc=carlasworld,dc=net
cn: Tux P Tuxedo
cn: Tux Tuxedo
objectClass: person
sn: Tuxedo
太棒了!他真的有用,它真的有用!注意:原来的.ldif 文件内不能有条目,因为它必须只包含新条目。如果ldapadd 找到任何现有的条目,它就会停止,不推进更多的条目。
Debian 的差别
如果你使用apt-get安装OpenLDAP,,dpkg将自动配置它,安装root域、公司以及授权的ldap管理员和密码。你也可以在中创建另外一个LDAP管理员/密码组,就像我们前面做过的一样,任意使用其中一个。
模式
我们容易混淆的主要地方是schema 和object classes。在中可以看到:
# Schema and objectClass definitions
include /etc/ldap/schema/
include /etc/ldap/schema/
include /etc/ldap/schema/
include /etc/ldap/schema/
这些文件包含用在你LDAP记录中的属性。花点时间读读这些属性。我知道这是一个痛苦的练习,但是理解模式就是理解如何使用LDAP的关键。 现在是时候提到一个用于LDAP的GUI 前端GQ LDAP Client。他对于观察不同属性之间的关系大有帮助。优秀Web站点LDAPman Schema Reference 也是你观察时一个很有价值的工具。
结论
好,看起来好像我们还需要不止一篇LDAP文章。在part 4 中,我们将进行加密,认证真正的用户。我们将使用一些详细的配置范例来包装此文(和此系列)。
2023年6月21日发(作者:)
在《在Linux上建立LDAP服务器(二)》中,我们描述了它的安装以及它的非常基本的配置。今天我们将使用真实数据来组装我们的目录,引导你毫无费力的避开一些常见误区。
目录
它能运行吗?
修改
添加条目
.ldif的缺陷
添加用户
模式
结论
Resources
我们先回顾一下第二部分中我们的 配置:
##Database Directives##
database bdb
suffix "dc=carlasworld,dc=net"
rootdn "cn=Manager,dc=carlasworld,dc=net"
rootpw secret
directory "/var/lib/ldap"
我们来详细讨论配置中的每一行。
·首先,确定用你的真实域取代"" 。
·rootdn 非常重要。这是你创建授权用户输入条目到数据库的地方。这里我称之为管理员(Manager)。你可以随便称呼它:管理员、老板、ldap最高统治者——你想称呼它什么,就称呼什么。
·rootpw 也是非常重要的。它是授权用户的(管理员的) 密码。现在,我们要使用明文密码。在上述的例子中,它为"secret";但是密码你可以随意设定。
·directory 是OpenLDAP存储实际数据库文件的地方,它在下一行。目录在启动slapd 之前必须存在。
"/var/lib/ldap" 是安装者创建的一个常用目录,尽管你的Linux版本可能已经将它放在其他地方了。你也可以创建一个你自己选择的目录。但是,我们的目的是要找到它,而不是只创建目录——查看更多细节,请参考 OpenLDAP
Administrator's Guide 。
目录下已经安装了下列文件: $ ls /var/lib/ldap
__db.001 __db.003 __db.005
__db.002 __db.004 log.
它能运行吗?
首先,检查 有无语法错误:
# slapd -t
然后,运行下列命令(不要写错了):
$ ldapsearch -x -b '' -s base '(objectclass=*)'
namingContexts
他会返回几行费解的代码;看这行:
dn:
namingContexts: dc=carlasworld,dc=net
修改
只要你修改了,就必须重新启动:
# /etc/init.d/slapd restart
添加条目
现在我们进入有趣的部分。手动创建条目有两个步骤。首先,创建一个.ldif
文件,然后使用命令ldapadd ,输入新的条目到数据库中。在.ldif 文件中——我们统统称之为 ——定义了你公司的一些属性:
##my company##
dn: dc=carlasworld,dc=net
objectclass: dcObject
objectclass: organization
o: Tuxcomputing, inc.
dc: carlasworld
dn: cn=Manager,dc=carlasworld,dc=net
objectclass: organizationalRole
cn: Manager .ldif的缺陷
请确定你已经去除了首尾空白,以及空白行。尽管行结尾的尾空白可以告诉ldapadd:下一行是前一行的继续,但是任何首空白或者尾空白都会让ldapadd
相信这里什么都没有。请使用空白行分隔条目。
下一步就是添加 文件到ldap:
# ldapadd -x -D "cn=Manager,dc=carlasworld,dc=net"
-W -f
想了解不同标记代表的含义请参考man ldapadd 。ldap 要求你输入LDAP密码,然后才批准添加条目。如果你不幸得到"ldap_bind: Invalid credentials
(49)"错误,就表示你要么给出了错误的"cn="条目,要么给出了错误的密码。
只有普通名(cn)和密码在中都正确,才不会出现任何关于他们的任何莫名其妙的信息。 注意:我们稍候会删除这些。(虽然创建新数据库时需要他们,稍候我们添加更强的授权时就会替换它们。)
我们看看现在我们的数据库看起来像什么:
# ldapsearch -x -b 'dc=carlasworld,dc=net'
'(objectclass=*)'
它会显示数据库中的每一条。
添加用户
好,现在让我们使用 文件,添加一些真正的用户:
#Tux Entry
dn: cn=Tux P Tuxedo,dc=carlasworld,dc=net
cn: Tux P Tuxedo
cn: Tux Tuxedo
objectClass: person
sn: Tuxedo
# ldapadd -x -D "cn=Manager,dc=carlasworld,dc=net"
-W -f
Enter LDAP Password:
adding new entry "cn=Tux P
Tuxedo,dc=carlasworld,dc=net"
# ldapsearch -x -b 'dc=carlasworld,dc=net'
'(objectclass=*)'
# extended LDIF #
# LDAPv3
# base with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
#
dn: dc=carlasworld,dc=net
objectClass: top
objectClass: dcObject
objectClass: organization
o: Tuxcomputing, Inc.
# Tux P Tuxedo,
dn: cn=Tux P Tuxedo,dc=carlasworld,dc=net
cn: Tux P Tuxedo
cn: Tux Tuxedo
objectClass: person
sn: Tuxedo
太棒了!他真的有用,它真的有用!注意:原来的.ldif 文件内不能有条目,因为它必须只包含新条目。如果ldapadd 找到任何现有的条目,它就会停止,不推进更多的条目。
Debian 的差别
如果你使用apt-get安装OpenLDAP,,dpkg将自动配置它,安装root域、公司以及授权的ldap管理员和密码。你也可以在中创建另外一个LDAP管理员/密码组,就像我们前面做过的一样,任意使用其中一个。
模式
我们容易混淆的主要地方是schema 和object classes。在中可以看到:
# Schema and objectClass definitions
include /etc/ldap/schema/
include /etc/ldap/schema/
include /etc/ldap/schema/
include /etc/ldap/schema/
这些文件包含用在你LDAP记录中的属性。花点时间读读这些属性。我知道这是一个痛苦的练习,但是理解模式就是理解如何使用LDAP的关键。 现在是时候提到一个用于LDAP的GUI 前端GQ LDAP Client。他对于观察不同属性之间的关系大有帮助。优秀Web站点LDAPman Schema Reference 也是你观察时一个很有价值的工具。
结论
好,看起来好像我们还需要不止一篇LDAP文章。在part 4 中,我们将进行加密,认证真正的用户。我们将使用一些详细的配置范例来包装此文(和此系列)。
发布评论