搜档网
当前位置:搜档网 › OpenLDAP安装指南

OpenLDAP安装指南

OpenLDAP安装指南
OpenLDAP安装指南

OpenLDAP 安装指南

本手册仅用于配置Ubuntu9.10中的OpenLDAP,其他版本的OpenLDAP可能有所不同。

首先,安装 OpenLDAP:

步骤 1

运行如下命令,将slapd包中带的LDAP schema全部添加到 cn=config中 (默认只有core schema 被添加):

步骤 2

创建一个db.ldif文件,其内容如下所示,此步骤将为域dc=home,dc=local (即 home.local)安装配置一个database。并且,只有 cn=admin,dc=hoome,dc=local可以管理这个数据库(密码:admin)。

代码:

# Load modules for database type

dn: cn=module,cn=config

objectclass: olcModuleList

cn: module

olcModuleLoad: back_https://www.sodocs.net/doc/b417330051.html,

# Create directory database

dn: olcDatabase=bdb,cn=config

objectClass: olcDatabaseConfig

objectClass: olcBdbConfig

olcDatabase: bdb

# Domain name (e.g. home.local)

olcSuffix: dc=home,dc=local

# Location on system where database is stored

olcDbDirectory: /var/lib/ldap

# Manager of the database

olcRootDN: cn=admin,dc=home,dc=local

olcRootPW: admin

# Indices in database to speed up searches

olcDbIndex: uid pres,eq

olcDbIndex: cn,sn,mail pres,eq,approx,sub

olcDbIndex: objectClass eq

# Allow users to change their own password

# Allow anonymous to authenciate against the password

# Allow admin to change anyone's password

olcAccess: to attrs=userPassword

by self write

by anonymous auth

by dn.base="cn=admin,dc=home,dc=local" write

by * none

# Allow users to change their own record

# Allow anyone to read directory

olcAccess: to *

by self write

by dn.base="cn=admin,dc=home,dc=local" write

by * read

对上述文件,使用如下命令将数据库添加到LDAP server上. 需要知道的是 Karmic使用EXTERNAL SASL 和LDAP server通信. 这里没有admin user或者password:

步骤 3

创建另一个文件,该文件包含所有你想要添加的用户,这里以people.ldif命名之。

代码:

# Create top-level object in domain

dn: dc=home,dc=local

objectClass: top

objectClass: dcObject

objectclass: organization

o: home.local

dc: home

description: Home network

dn: ou=people,dc=home,dc=local

objectClass: organizationalUnit

ou: people

dn: ou=groups,dc=home,dc=local

objectClass: organizationalUnit

ou: groups

dn: uid=john,ou=people,dc=home,dc=local

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

uid: john

sn: Doe

givenName: John

cn: John Doe

displayName: John Doe

uidNumber: 1000

gidNumber: 10000

userPassword: password

gecos: John Doe

loginShell: /bin/bash

homeDirectory: /home/john

shadowExpire: -1

shadowFlag: 0

shadowWarning: 7

shadowMin: 8

shadowMax: 999999

shadowLastChange: 10877

mail: john.doe@https://www.sodocs.net/doc/b417330051.html,

postalCode: 31000

l: Toulouse

o: Example

mobile: +33 (0)6 xx xx xx xx

homePhone: +33 (0)5 xx xx xx xx

title: System Administrator

postalAddress:

initials: JD

dn: cn=example,ou=groups,dc=home,dc=local

objectClass: posixGroup

cn: example

gidNumber: 10000

因为我们已经为dc=home,dc=local数据库创建了自己的访问控制,我们必须改变连接方式(例如,使用admin用户和其密码来认证)。通过如下命令为目录添加数据:

步骤 4

从客户端,你现在就可以用检查你是否可以读取数据库了:

故障处理

ldap_add: Other (e.g., implementation specific) error (80)

additional info: handler exited with 1

该问题的原因在于你试图加载同一个module两次,譬如:你已经将db.ldif添加了,但是你现在又运行ldapadd试图添加它。

ldap_add: Invalid syntax (21)

additional info: olcSuffix: value #0 invalid per syntax

你载 olcSuffice的值上使用了双引号,譬如: olcSuffix:"dn=home,dn=local"。无论你在文档中看到的是什么样子,双引号是不需要的。

ldap_add: Server is unwilling to perform (53)

additional info: no global superior knowledge

你试图往一个不存在的域上添加一些东西。譬如:你想望dn=home,dn=local上添加一个Tom Green,但是dn=home,dn=local根本不存在。

相关主题