CentOS 6.9下OpenLDAP 的安裝與配置

LDAP 基礎教程

LDAP 全稱輕量級目錄訪問協議(英文:Lightweight Directory Access Protocol),是一個運行在 TCP/IP 上的目錄訪問協議。LDAP實現提供被稱爲目錄服務的信息服務,可以看做是一張特殊的數據庫系統。可以有效的解決衆多網絡服務的用戶賬戶問題,規定了統一的身份信息數據庫、身份認證機制和接口,實現了資源和信息的統一管理,保證了數據的一致性和完整性。

使用場景

有兩個系統A,B;需要把A系統創建的用戶同步到B中,而B是個apache 開源項目,此時需要藉助LDAP來解決。首先在A中建用戶的同時,同步更新到LDAP中,然後B系統從LDAP中同步到自己的系統中,這樣就實現了A中的用戶到B系統的同步。

LDAP理解

在LDAP中,信息以樹狀方式組織,基本數據單元是條目,而每個條目由屬性構成,屬性由類型(Type)和一個或多個值(Value)組成。

Entry

包含的信息描述了現實世界中的一個真實的對象,在目錄系統中可以理解爲一個節點。在目錄中添加一個Entry時,該Entry必須屬於一個或者多個對象類(Oject Class),Entry的類型由屬性Object Class規定。每個Entry都有一個唯一的DN(distinguished name)來標識Entry在directory中的位置。用Java的方式Entry相當於一個Instances,而Ojbect class自然就是Class。

根節點DN的命名有多種方法,其中之一就是域名命名法,例如sohu.com根階節點的DN應該是DN:dc=sohu,dc=com,People節點的DN:ou=People,dc=example,dc=com,RDN是目錄樹中節點的相對標識,例如People節點的RDN:ou=people。

Attribute

每個Entry都是由許多Attribute組成,每個屬性描述的是對象的一個特徵,每個屬性由一個類型和一個或多個值Value組成。
每個屬性類型有所對應的語法和匹配規則;對象類和屬性類型的定義均可以使用繼承的概念。每個條目創建時,必須定義所屬的對象類,必須提供對象類中的必選屬性類型的屬性值,在LDAP中一個屬性類型可以對應多個值。
常見屬性:

屬性名 是否必填 描述
c 國家
dc domain component,常用來指一個域名的一部分
o 該條目所屬的組織名(Organization Name)
ou 一個組織單元的名字
cn common name,一個對象的名字,如果指人,使用全名
sn Surname,一個人的姓
uid Userid,某個用戶的登錄名,與Linux系統中用戶的uid不同
userPassword 登陸密碼
mail 郵箱
givenName 一個人的名
displayName 顯示條目時要使用的首選名稱
uidNumber 賬號的UID
gidNumber 賬號的GID
homeDirectory 用戶的家目錄指定
loginShell 用戶登錄的SHELL
employeeNumber 工號相關信息
homePhone 家庭電話
mobile 該條目的手機號碼
description 該條目的描述信息

Object class

在LDAP中,一個條目必須包含一個Oject class屬性,且需要賦予至少一個值。每個值將用作一條LDAP條目進行數據存儲的模板,模板中包含了一個條目必須被賦值的屬性和可選的屬性。
Object分爲三類,結構型(Structural),如Person和orginzationUnit,輔助型(Auxiliary),如extensibeObject,抽象型(Abstract):如top,抽象型的ObjectClass不能直接使用。
下面部分常用的ObjectClass,定義在/etc/openldap/schema/core.schema文件中

名稱 描述 必要屬性
domain
organization o
organizationalUnit ou
person sn,cn
organizationPerson cn,sn
top 抽象型,頂級ObjectClass
posixAccount Linux用戶 cn,gidNumber,homeDirectory,uid,uidNumber
posixGroup Linux用戶組 cn,gidNumber
  • Entry必須僅包含一個Structural類型的OjectClass,其他兩種類型可包括0或者多個。

LDAP 功能模型

描述LDAP 協議可以採用的相關操作,來訪問存儲在目錄樹中的數據,可以將操作分
成三組:
(1) 更新操作 包括添加,刪除,重命名,修改Entry
(2) Interrogation Operation 用於數據的查詢
(3) 認證和控制 (bind unbind abandon)

LDAP 安全模型

(1) 提供一個框架,包含目錄中的信息不被非法訪問,LDAP 的安全模型主要是通過身份認
證、安全通道和訪問控制(ACL)來實現。
(2) LDAP 是一個面向連接的協議,在能夠對LDAP 目錄進行任何操作之前,LDAP 客戶端
端必須獲得一個到LDAP 服務端的一個連接,在這個過程中需要對LDAP 客戶端的身份進
行驗證(可以理解爲用戶綁定)。
(3) 在用戶通過驗證之後,爲用戶分配附加的權限,比如一些用戶只能查看特定的Entry,而不能修改。一些用戶可以查看並且修改所有的Entry等。

下面是一個典型的 LDAP 目錄樹結構,其中每個節點表示一個條目。在下一節中,我們將按照這個結構來配置一個簡單的 LDAP 服務。
CentOS 6.9下OpenLDAP 的安裝與配置

本文僅涉及沒有SSL的OpenLDAP配置。

一、環境準備

兩臺虛擬機

IP hostname 說明
192.168.1.101 openldap-server server端
192.168.1.102 openldap-client client端

關閉SELinux

查看SELinux狀態:getenforce, 或/usr/sbin/sestatus
臨時關閉:

setenforce 0

永久關閉:

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 
grep SELINUX=disabled /etc/selinux/config

關閉iptables

chkconfig  iptables off
/etc/init.d/iptables stop 
/etc/init.d/iptables status

官方文檔:

http://www.openldap.org/doc/admin24/

步驟
分爲server端操作和client端操作

二、server端安裝OpenLDAP

1. yum安裝OpenLDAP

[root@openldap-server ~]# yum install openldap openldap-servers openldap-servers-sql openldap-clients openldap-devel compat-openldap -y

OpenLDAP的相關配置文件信息

  • /etc/openldap/slapd.conf:OpenLDAP的主配置文件,記錄根域信息,管理員名稱,密碼,日誌,權限等
  • /etc/openldap/slapd.d/*:這下面是/etc/openldap/slapd.conf配置信息生成的文件,每修改一次配置信息,這裏的東西就要重新生成
  • /etc/openldap/schema/*:OpenLDAP的schema存放的地方
  • /var/lib/ldap/*:OpenLDAP的數據文件
  • /usr/share/openldap-servers/slapd.conf.obsolete 模板配置文件
  • /usr/share/openldap-servers/DB_CONFIG.example 模板數據庫配置文件

OpenLDAP監聽的端口:

  • 默認監聽端口:389(明文數據傳輸)
  • 加密監聽端口:636(密文數據傳輸)

2. 複製ldap配置文件到/etc

[root@openldap-server ~]# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

3. 生成ldap管理員密碼(把ldappassword改爲自己的管理員密碼)

[root@openldap-server ~]# slappasswd -s ldappassword
{SSHA}b6YpCvRFWAWQdJpueuyzk79VXlikj4Z1

4. 修改slapd.conf

修改其中cn,dc相關內容,及rootpw密文密碼,rootpw配置上面設置的密碼
(rootpw必須頂格寫,與密碼Tab鍵分開)

[root@openldap-server ~]# cp /etc/openldap/slapd.conf /etc/openldap/slapd.conf.bak
[root@openldap-server ~]# vim /etc/openldap/slapd.conf
......
database        bdb
suffix          "dc=qq,dc=com"
checkpoint      1024 15
rootdn          "cn=Manager,dc=qq,dc=com"             #管理LDAP中信息的最高權限,即管理員權限,登陸時用。
......
rootpw          {SSHA}b6YpCvRFWAWQdJpueuyzk79VXlikj4Z1

檢測/etc/openldap/slapd.conf是否有錯誤

[root@openldap-server ~]# slaptest -f /etc/openldap/slapd.conf
config file testing succeeded

5. 檢測並重新生成ldap數據庫

[root@openldap-server ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG    # 拷貝DB_CONFIG文件
[root@openldap-server ~]# cd /etc/openldap/
[root@openldap-server openldap]# ls -l slapd.d/
drwxr-x--- 3 ldap ldap 4096 7月  13 13:59 cn=config
-rw-r----- 1 ldap ldap 1281 7月  13 13:50 cn=config.ldif
[root@openldap-server openldap]# rm -rf slapd.d/*            # 刪除默認配置 (否則添加ldap用戶時會報錯)
[root@openldap-server openldap]#

官方對於OpenLDAP2.4 ,不推薦使用 slapd.conf 作爲配置文件。從這個版本開始所有配置數據都保存在 /etc/openldap/slapd.d/中

[root@openldap-server openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
5b02d207 bdb_db_open: database "dc=qq,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).
5b02d207 backend_startup_one (type=bdb, suffix="dc=qq,dc=com"): bi_db_open failed! (2)
slap_startup failed (test would succeed using the -u switch) 

[root@openldap-server openldap]# slaptest -u
config file testing succeeded
出現succeed繼續

6. 修改相關ldap文件權限

[root@openldap-server openldap]# chown -R ldap:ldap /var/lib/ldap/
[root@openldap-server openldap]# chown -R ldap:ldap /etc/openldap/

7. 啓動slapd服務

[root@openldap-server openldap]# service slapd start
Starting slapd:                                            [  OK  ]
[root@openldap-server openldap]# service slapd status 
slapd (pid  12896) is running...
[root@openldap-server openldap]# chkconfig slapd on
[root@openldap-server openldap]# lsof -i:389
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
slapd   12896 ldap    7u  IPv4 702934      0t0  TCP *:ldap (LISTEN)
slapd   12896 ldap    8u  IPv6 702935      0t0  TCP *:ldap (LISTEN)

三、OpenLDAP日誌功能開啓

1. slapd.conf配置文件里加上日誌行

這裏的日誌級別有很多種,這裏選擇256這個值的級別(主從節點都要打開openldap日誌功能)

[root@openldap-master ~]# cp /etc/openldap/slapd.conf{,.bak3}
[root@openldap-master ~]# vim /etc/openldap/slapd.conf           #中間的空格用tab鍵分開
.......  # 最後添加
loglevel  256

2. 修改了配置文件,所有得重新生成配置文件的信息

[root@openldap-master ~]# rm -rf /etc/openldap/slapd.d/*
[root@openldap-master ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
config file testing succeeded
[root@openldap-master ~]# slaptest -u
config file testing succeeded
[root@openldap-master ~]# chown -R ldap:ldap /var/lib/ldap/
[root@openldap-master ~]# chown -R ldap:ldap /etc/openldap/

3. 修改/etc/rsyslog.conf文件,加上下面內容

[root@openldap-master ~]# cp /etc/rsyslog.conf{,.bak}
[root@openldap-master ~]# vim /etc/rsyslog.conf
........    # 最後添加
local4.*    /var/log/slapd/slapd.log

4. 創建日誌文件目錄,授權

[root@openldap-master ~]# mkdir /var/log/slapd
[root@openldap-master ~]# chmod 755 /var/log/slapd/
[root@openldap-master ~]# chown ldap.ldap /var/log/slapd/

5. 重啓syslog服務和slapd服務

[root@openldap-master ~]# /etc/init.d/rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

[root@openldap-master ~]# /etc/init.d/slapd restart
Stopping slapd:                                            [  OK  ]
Starting slapd:                                            [  OK  ]
[root@openldap-master ~]# lsof -i:389
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
slapd   13773 ldap    7u  IPv4 840484      0t0  TCP *:ldap (LISTEN)
slapd   13773 ldap    8u  IPv6 840485      0t0  TCP *:ldap (LISTEN)

6. 查看openldap日誌信息

[root@openldap-master ~]# tail -f /var/log/slapd/slapd.log

四、server端安裝migrationtools,創建根域條目(可選)

參考:http://book.51cto.com/art/201602/505737.htm

1. 安裝migrationtools 工具

migrationtools 實現OpenLDAP 用戶及用戶組的添加。

[root@openldap-server openldap]# yum install migrationtools -y

2. 編輯/usr/share/migrationtools/migrate_common.ph並修改相關配置

[root@openldap-server openldap]# cp /usr/share/migrationtools/migrate_common.ph{,.bak}
[root@openldap-server openldap]# vim /usr/share/migrationtools/migrate_common.ph
# 搜索”dc=”,值改爲與slapd.conf一致內容
......
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "qq.com";

# Default base
$DEFAULT_BASE = "dc=qq,dc=com";

3. 創建OpenLDAP 根域條目,base.ldif

[root@openldap-server openldap]# /usr/share/migrationtools/migrate_base.pl > base.ldif
[root@openldap-server openldap]# cat base.ldif
dn: dc=qq,dc=com
dc: qq
objectClass: top
objectClass: domain

dn: ou=Hosts,dc=qq,dc=com
ou: Hosts
objectClass: top
objectClass: organizationalUnit

dn: ou=Rpc,dc=qq,dc=com
ou: Rpc
objectClass: top
objectClass: organizationalUnit

dn: ou=Services,dc=qq,dc=com
ou: Services
objectClass: top
objectClass: organizationalUnit

dn: nisMapName=netgroup.byuser,dc=qq,dc=com
nismapname: netgroup.byuser
objectClass: top
objectClass: nisMap

dn: ou=Mounts,dc=qq,dc=com
ou: Mounts
objectClass: top
objectClass: organizationalUnit

dn: ou=Networks,dc=qq,dc=com
ou: Networks
objectClass: top
objectClass: organizationalUnit

dn: ou=People,dc=qq,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=qq,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

dn: ou=Netgroup,dc=qq,dc=com
ou: Netgroup
objectClass: top
objectClass: organizationalUnit

dn: ou=Protocols,dc=qq,dc=com
ou: Protocols
objectClass: top
objectClass: organizationalUnit

dn: ou=Aliases,dc=qq,dc=com
ou: Aliases
objectClass: top
objectClass: organizationalUnit

dn: nisMapName=netgroup.byhost,dc=qq,dc=com
nismapname: netgroup.byhost
objectClass: top
objectClass: nisMap

可以編輯base.ldif 進行修改,將不需要的條目刪除,然後通過ldapadd 導入至OpenLDAP目錄樹。

4. 添加base.ldif到ldap(輸入密碼爲上面創建的:ldappassword)

[root@openldap-server openldap]# ldapadd -x -D "cn=Manager,dc=qq,dc=com" -w ldappassword -f ./base.ldif
Enter LDAP Password:

ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)                              '

出現這個錯誤的時候,查看服務和端口都已經開啓了,需要你手動指定主機名和你的端口號(ldap端口號爲389),使用-h 加上主機名。

[root@openldap-server openldap]# ldapadd -x -D "cn=Manager,dc=qq,dc=com" -w ldappassword -f ./base.ldif -h openldap-server -p 389

adding new entry "dc=qq,dc=com"

adding new entry "ou=Hosts,dc=qq,dc=com"

adding new entry "ou=Rpc,dc=qq,dc=com"

adding new entry "ou=Services,dc=qq,dc=com"

adding new entry "nisMapName=netgroup.byuser,dc=qq,dc=com"

adding new entry "ou=Mounts,dc=qq,dc=com"

adding new entry "ou=Networks,dc=qq,dc=com"

adding new entry "ou=People,dc=qq,dc=com"

adding new entry "ou=Group,dc=qq,dc=com"

adding new entry "ou=Netgroup,dc=qq,dc=com"

adding new entry "ou=Protocols,dc=qq,dc=com"

adding new entry "ou=Aliases,dc=qq,dc=com"

adding new entry "nisMapName=netgroup.byhost,dc=qq,dc=com"

5. 檢查ldapadd是否成功(密碼爲上面創建的:ldappassword)(必須檢查確認Manager數據添加了,才能通過phpldapAdmin登錄)

[root@openldap-server openldap]# ldapsearch -x -D "cn=Manager,dc=qq,dc=com" -b "ou=Aliases,dc=qq,dc=com" -w ldappassword
# extended LDIF
#
# LDAPv3
# base <ou=Aliases,dc=qq,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# Aliases, qq.com
dn: ou=Aliases,dc=qq,dc=com
ou: Aliases
objectClass: top
objectClass: organizationalUnit

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

六、安裝openLdap桌面服務

1. yum安裝httpd及PhpLdapAdmin

[root@openldap-server openldap]# rpm -ivh http://mirrors.ukfast.co.uk/sites/dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@openldap-server openldap]# yum install httpd phpldapadmin -y

2. 配置/etc/httpd/conf.d/phpldapadmin.conf允許從遠程訪問

[root@openldap-server openldap]# cp -a /etc/httpd/conf.d/phpldapadmin.conf{,.bak}     #可以先把此文件cp備份一份
[root@openldap-server openldap]# vim /etc/httpd/conf.d/phpldapadmin.conf
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs 
Alias /ldapadmin /usr/share/phpldapadmin/htdocs 

<Directory /usr/share/phpldapadmin/htdocs> 
  Order Deny,Allow 
  Allow from all 
  Allow from 127.0.0.1                         #或者去掉下面這三行內容,表示運行所有客戶機訪問(本測試案例就去掉了這三行)
  Allow from ::1
  Allow from all     #允許哪些IP地址訪問phpldapadmin,我寫的全部。
</Directory>

3. 修改/etc/phpldapadmin/config.php配置用DN登錄

[root@openldap-server openldap]# cp /etc/phpldapadmin/config.php{,.bak}
[root@openldap-server openldap]# vim /etc/phpldapadmin/config.php
.......
//$servers->setValue('login','attr','uid');      #註釋掉這一行
$servers->setValue('login','attr','dn');         #添加這一行

[root@openldap-server openldap]# diff /etc/phpldapadmin/config.php /etc/phpldapadmin/config.php.bak
398,399c398,399
< //$servers->setValue('login','attr','uid');
< $servers->setValue('login','attr','dn');
---
> $servers->setValue('login','attr','uid');
>

4. 啓動httpd服務

[root@openldap-server openldap]# chkconfig httpd on
[root@openldap-server openldap]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for openldap-server
httpd: Could not reliably determine the server's' fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]                                        
[root@openldap-server openldap]# service httpd status
httpd (pid  13010) is running...
[root@openldap-server openldap]# lsof -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   13010   root    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13012 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13013 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13014 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13015 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13016 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13017 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13018 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)
httpd   13019 apache    4u  IPv6 757231      0t0  TCP *:http (LISTEN)

5. 打開Web UI並登錄LDAP

CentOS 6.9下OpenLDAP 的安裝與配置

URL:   $IP/phpldapadmin
用戶名  "cn=Manager,dc=qq,dc=com"
密碼   "ldappassword"

CentOS 6.9下OpenLDAP 的安裝與配置

七、新建組織(公司)、管理員、組及用戶

添加用戶和用戶組的方式有兩種。一種是將系統用戶通過migrationtools 工具生成LDIF 文件並結合ldapadd 命令導入OpenLDAP 目錄樹中,生成OpenLDAP 用戶。另一種通過自定義LDIF 文件並通過OpenLDAP 命令進行添加或者修改操作。本文主要介紹第二種來完成OpenLDAP用戶的添加。

1. 組織

創建組織:

[root@openldap-server data]# vim o.ldif      #在根目錄下建立不同組織
dn: o=tengxun,dc=qq,dc=com
objectclass: top
objectclass: dcobject
objectclass: organization
dc: qq
o: tengxun
description: 騰訊
street: 深圳騰訊大廈

此LDIF 文件中存在中文字符,建議使用Linux dos2unix 命令進行轉換,例如dos2unix -k –n filenew_file。作者建議儘可能不要使用中文字符進行添加,而使用英文添加。

導入組織數據

[root@openldap-server data]# ldapadd -x -D "cn=Manager,dc=qq,dc=com" -w ldappassword -f ./o.ldif -h openldap-server -p 389
adding new entry "o=tengxun,dc=qq,dc=com"

============================================================
如果報錯:

[root@openldap-server data]# ldapadd -x -D "cn=Manager,dc=qq,dc=com" -w ldappassword -f ./o.ldif -h openldap-server -p 389
ldapadd: attributeDescription "dn": (possible missing newline after line 3, entry "o=tengxun,dc=qq,dc=com"?)
adding new entry "o=tengxun,dc=qq,dc=com"
ldap_add: Type or value exists (20)
                additional info: ou: value #0 provided more than once

產生原因:o.ldif文件中的不規範的空格所致!!即導入的數據含有空格所致!
糾錯如下:

dn:(空格)o=tengxun,dc=qq,dc=com
changetype:(空格)add(結尾無空格)
objectclass:(空格)top(結尾無空格)
objectclass:(空格)organizationalUnit(結尾無空格)
ou:(空格)echnology(結尾無空格)
(1空行,空行必須要定格,不能留空格)(結尾無空格)
........(後面的配置內容糾正方法同樣)

===========================================================

查詢剛導入數據

[root@openldap-server data]# ldapsearch -x -D "cn=Manager,dc=qq,dc=com" -b "o=tengxun,dc=qq,dc=com" -w ldappassword -h openldap-server -p 389
# extended LDIF
#
# LDAPv3
# base <o=tengxun,dc=qq,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# tengxun, qq.com
dn: o=tengxun,dc=qq,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
dc: qq
o: tengxun
description:: 572R5biF
street:: 5YyX5Lqs5biC5a6J57+U5YyX6YeM55SyMTHlj7fljJfkuqzliJvkuJrlpKfljqZC5bqnN
 zAx5a6k

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

2. 管理員及組

在新建組織下創建管理員及組

在tengxun組織下創建一個 Manager 的組織角色(該角色內的用戶具有管理整個 LDAP 的權限)和 People 和 Group 兩個組織單元:
[root@openldap-server data]# vim admin_group.ldif
# admin
dn: cn=Manager,o=tengxun,dc=qq,dc=com
objectClass: organizationalRole
cn: Manager

# Group組
dn: ou=Group,o=tengxun,dc=qq,dc=com
ou: Group
objectClass: organizationalUnit

# People組
dn: ou=People,o=tengxun,dc=qq,dc=com
ou: People
objectClass: organizationalUnit

導入組數據

[root@openldap-server data]# ldapadd -x -D "cn=Manager,dc=qq,dc=com" -w ldappassword -f ./admin_group.ldif  -h openldap-server -p 389
adding new entry "cn=Manager,o=tengxun,dc=qq,dc=com"

adding new entry "ou=Group,o=tengxun,dc=qq,dc=com"

adding new entry "ou=People,o=tengxun,dc=qq,dc=com"

通過以上的所有步驟,我們就設置好了一個 LDAP 目錄樹:其中基準 dn: o=tengxun,dc=qq,dc=com 是該樹的根節點,其下有一個管理域 cn=Manager,o=tengxun,dc=qq,dc=com 和兩個組織單元 ou=People,o=tengxun,dc=qq,dc=com 及 ou=Group,o=tengxun,dc=qq,dc=com。
CentOS 6.9下OpenLDAP 的安裝與配置

3. 用戶

創建用戶及部門(cn組)

[root@openldap-server data]# vim adduser.ldif
# create new
# replace to your own domain name for "dc=***,dc=***" section
dn: uid=huateng.ma,ou=People,o=tengxun,dc=qq,dc=com
objectClass: top
objectclass: person
#objectclass: organizationalPerson
objectclass: inetOrgPerson
objectClass: shadowAccount
uid: huateng.ma
cn: huateng.ma
sn: ma
displayName: 馬化騰
ou: People
description:  可視化
#userPassword: ldappassword
userPassword: {SSHA}b6YpCvRFWAWQdJpueuyzk79VXlikj4Z1
mail: [email protected]

dn: cn=kaifa,ou=Group,o=tengxun,dc=qq,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: kaifa
uniquemember: uid=huateng.ma,ou=People,o=tengxun,dc=qq,dc=com

導入用戶數據

[root@openldap-server data]# ldapadd -x -D "cn=Manager,dc=qq,dc=com" -w ldappassword -f ./adduser.ldif -h openldap-server -p 389
adding new entry "uid=huateng.ma,ou=People,o=tengxun,dc=qq,dc=com"
adding new entry "cn=kaifa,ou=Group,o=tengxun,dc=qq,dc=com"

可以登陸phpLDAPadmin的web界面查詢新導入的數據
CentOS 6.9下OpenLDAP 的安裝與配置

添加其它用戶

[root@openldap-server data]# vim adduser.ldif
# create new
# replace to your own domain name for "dc=***,dc=***" section
dn: uid=san.zhang,ou=People,o=tengxun,dc=qq,dc=com
objectClass: top
objectclass: person
#objectclass: organizationalPerson
objectclass: inetOrgPerson
objectClass: shadowAccount
uid: san.zhang
cn: san.zhang
sn: zhang
displayName: 張三
ou: People
description:  可視化
#userPassword: ldappassword
userPassword: {SSHA}b6YpCvRFWAWQdJpueuyzk79VXlikj4Z1
mail: [email protected]

把san.zhang用戶加入到kaifa組中(沒驗證)

dn: cn=kaifa,ou=Group,o=tengxun,dc=qq,dc=com
changetype: modify
add: memberuid
memberuid: san.zhang
或者

通過OpenLDAP界面把san.zhang用戶添加到kaifa組中
CentOS 6.9下OpenLDAP 的安裝與配置

點擊左側相應組織下的"ou=Group" --> "cn=kaifa" --> "uniqueMember" --> 點擊下面的賦值,複製上面一行,然後修改uid保存即可。

八、參考:

http://book.51cto.com/art/201602/505669.htm
https://www.cnblogs.com/kevingrace/p/9052669.html
https://www.cnblogs.com/AloneSword/p/4758814.html

當你發現自己的才華撐不起野心時,就請安靜下來學習吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章