GVKun编程网logo

centos安装openldap过程(centos安装openmpi)

5

在这里,我们将给大家分享关于centos安装openldap过程的知识,让您更了解centos安装openmpi的本质,同时也会涉及到如何更有效地CentOS6.4下编译安装OpenLDAP、Cent

在这里,我们将给大家分享关于centos安装openldap过程的知识,让您更了解centos安装openmpi的本质,同时也会涉及到如何更有效地CentOS 6.4下编译安装OpenLDAP、Centos 6.5 搭建openldap、Centos 6.8 环境下 OpenLDAP 安装与部署、CentOS 6.9下OpenLDAP 的安装与配置的内容。

本文目录一览:

centos安装openldap过程(centos安装openmpi)

centos安装openldap过程(centos安装openmpi)

1.下载软件如下,db是数据库

分享图片

 

2.首先安装数据库db

# tar xf db-4.8.30.tar.gz

# cd db-4.8.30

# cd build_unix/

# ../dist/configure -prefix=/opt/BerkeleyDB

分享图片

但是会报错,这个错说明你系统里面没有gcc,需要安装

# yum -y install gcc)

# ../dist/configure -prefix=/opt/BerkeleyDB

# make

# make install

分享图片

这样即成功。

 

3.防止后面的安装会出错

# cp /opt/BerkeleyDB/include/* /usr/include/

# cp /opt/BerkeleyDB/lib/* /usr/lib/

 

4.解压安装openldap

# tar xf openldap-2.4.45.tgz

# cd openldap-2.4.45

# ./configure --prefix=/opt/openldap

分享图片

但是会报错,需要设置环境变量

# export LD_LIBRARY_PATH="/opt/db-4.8.30/build_unix/.libs"

# ./configure --prefix=/opt/openldap

分享图片

这样就表示这步已经ok了,照提示进行下一步

# make depend

# make

# make install

安装成功。

 

5.修改配置

# vi /opt/openldap/etc/openldap/slapd.conf

include         /data/openldap/etc/openldap/schema/core.schema

include         /data/openldap/etc/openldap/schema/cosine.schema

include         /data/openldap/etc/openldap/schema/inetorgperson.schema

database       mdb

suffix          "dc=migu,dc=com"                               #根节点

rootdn         "cn=spms,dc=migu,dc=com"              #用户名

rootpw         sd5w6a1                     #密码可以自行设置

 

6.启动ldap

# cd /opt/openldap/libexec/

# ./slapd

 

另外,若出现以上未提到的错误或者ldap启动不了,请执行以下操作:

# export LDFLAGS="-L/opt/BerkeleyDB/lib"

# export CPPFLAGS="-I/Opt/BerkeleyDB/include -D_GNU_SOURCE"

CentOS 6.4下编译安装OpenLDAP

CentOS 6.4下编译安装OpenLDAP

环境:

CentOS 6.4 X64

db-4.6.21.tar.gz

openldap-2.4.36.tgz

PHPldapadmin-1.2.3.zip

软件包下载

一、安装BerkeleyDB

# tar zxvf db-4.6.21.tar.gz

# cd db-4.6.21/build_unix

# ../dist/configure

# make

# make install

# vi /etc/ld.so.conf 加入下句

/usr/local/BerkeleyDB.4.6/lib

# ldconfig

二、安装openLDAP

# tar zxvf openldap-2.4.36.tgz

# openldap-2.4.36

# env CPPFLAGS="-I/usr/local/BerkeleyDB.4.6/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.6/lib -D_GNU_SOURCE" ./configure --prefix=/usr/local/openldap --enable-ldbm

注:需要设置资料库的include 和lib 路径,不然在配置到资料库相关内容时会提示DB版本不兼容,并中断,若没有--enable-ldbm选项,在

测试目录时会提示ldbm找不到

# make depend

# make

# make test

# make install

三、配置LDAP

# vi /usr/local/openldap/etc/openldap/slapd.conf

修改 suffix rootdn 等处,即定义自己的域名

//建立初始化数据

# vi base.ldif 录入

dn: dc=vqiu,dc=cn

objectclass: dcObject

objectclass: organization

o:ant,precision.

dc: vqiu

dn: cn=admin,dc=vqiu,dc=cn

objectclass: organizationalRole

cn: admin

//导入初始数据

# /usr/local/openldap/bin/ldapadd -x -W -D "cn=admin,dc=cn -f base.ldif

//启动服务

# /usr/local/openldap/libexec/slapd -d 256 -4

四、搭建http 平台

# yum -y install httpd httpd-devel PHP-MysqL PHP PHP-ldap

配置 PHPldapadmin

# tar -zxvf PHPldapadmin-1.2.3.tgz

# mv PHPldapadmin-1.2.3 /var/www/html/

# cd /var/www/html

# mv PHPldapadmin-1.2.3 PHPldapadmin

# cd PHPldapadmin/config

# cp config.PHP.example config.PHP

# vi config.PHP

$servers->newServer('ldap_pla');

$servers->setValue('server','name','HDT Linux LDAP');

$servers->setValue('server','host','127.0.0.1');

$servers->setValue('server','port',389);

$servers->setValue('server','base',array('dc=abc,dc=com'));

$servers->setValue('login','auth_type','cookie');

$servers->setValue('login','bind_id','cn=root,dc=abc,dc=com');

$servers->setValue('login','bind_pass','123456');

$servers->setValue('server','tls',false);

检验查询:

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

windows 平台可以通过LDAP admin 这个工具来远程,十分方便。

Centos 6.5 搭建openldap

Centos 6.5 搭建openldap

1、安装openldap(版本openldap-2.4.40-16.el6.x86_64)

$yuminstall-yopenldapopenldap-serversopenldap-clientsopenldap-devel

#启动openldap
$/etc/init.d/openldapstart


2、配置前准备

#openldap配置文件
$ls/etc/openldap/
certscheck_password.confldap.confschemaslapd.d

#复制服务端配置文件
$cp/usr/share/openldap-servers/slapd.conf.obsolete/etc/openldap/slapd.conf

#备份配置文件
$cp-a/etc/openldap/slapd.d{,.bak}&&rm-rf/etc/openldap/slapd.d/*

#重新生成/etc/openldap/slapd.d/下的文件
$slaptest-u
$slaptest-f/etc/openldap/slapd.conf-F/etc/openldap/slapd.d
$chown-Rldap.ldap/etc/openldap/slapd.d


3、配置openldap

#openldap的配置文件为slapd.conf
#先生成ldap的admin的密码
$slappasswd-s123456
{SSHA}4l73bzaYLHmgnfof5uEmA6G9LaCy+h8S

#修改slapd.conf
$egrep-v"#|^$"/etc/openldap/slapd.conf
include		/etc/openldap/schema/corba.schema
include		/etc/openldap/schema/core.schema
include		/etc/openldap/schema/cosine.schema
include		/etc/openldap/schema/duaconf.schema
include		/etc/openldap/schema/dyngroup.schema
include		/etc/openldap/schema/inetorgperson.schema
include		/etc/openldap/schema/java.schema
include		/etc/openldap/schema/misc.schema
include		/etc/openldap/schema/nis.schema
include		/etc/openldap/schema/openldap.schema
include		/etc/openldap/schema/ppolicy.schema
include		/etc/openldap/schema/collective.schema
allowbind_v2
pidfile		/var/run/openldap/slapd.pid
argsfile	/var/run/openldap/slapd.args
TLSCACertificatePath/etc/openldap/certs
TLSCertificateFile"\"OpenLDAPServer\""
TLSCertificateKeyFile/etc/openldap/certs/password

#数据库配置,供测试使用
databaseconfig
accessto*
	byselfwrite
	byanonymousauth
	by*read
database	bdb
#设置域和组织名称
suffix		"dc=example,dc=com"
checkpoint	102415
#设置管理员账号和密码
rootdn		"cn=admin,dc=example,dc=com"
rootpw		{SSHA}4l73bzaYLHmgnfof5uEmA6G9LaCy+h8S

directory	/var/lib/ldap
indexobjectClasseq,pres
indexou,cn,mail,surname,givennameeq,pres,sub
indexuidNumber,gidNumber,loginShelleq,pres
indexuid,memberUideq,sub
indexnisMapName,nisMapEntryeq,sub


4、启动openldap

$/etc/init.d/openldaprestart

#查看端口已启动
$ss-tnl|grep389
LISTEN0128:::389:::*
LISTEN0128*:389*:*


5、添加用户和组

#安装migrationtools软件包(将本地用户写入openldap可读的ldif文件)
$yuminstallmigrationtools-y

#软件路径
$ls/usr/share/migrationtools
migrate_aliases.plmigrate_all_nisplus_offline.shmigrate_base.plmigrate_netgroup_byhost.plmigrate_profile.pl
migrate_all_netinfo_offline.shmigrate_all_nisplus_online.shmigrate_common.phmigrate_netgroup_byuser.plmigrate_protocols.pl
migrate_all_netinfo_online.shmigrate_all_offline.shmigrate_fstab.plmigrate_netgroup.plmigrate_rpc.pl
migrate_all_nis_offline.shmigrate_all_online.shmigrate_group.plmigrate_networks.plmigrate_services.pl
migrate_all_nis_online.shmigrate_automount.plmigrate_hosts.plmigrate_passwd.plmigrate_slapd_conf.pl

#修改域名
$vim/usr/share/migrationtools/migrate_common.pl
71$DEFAULT_MAIL_DOMAIN="example.com";

74$DEFAULT_BASE="dc=example,dc=com";

#生成base.ldif文件并导入到ldap中
$/usr/share/migrationtools/migrate_base.pl>base.ldif
$catbase.ldif
1dn:dc=example,dc=com
2dc:example
3objectClass:top
4objectClass:domain
5
6dn:ou=People,dc=com
7ou:People
8objectClass:top
9objectClass:organizationalUnit
10
11dn:ou=Group,dc=com
12ou:Group
13objectClass:top
14objectClass:organizationalUnit

#把修改好的base.ldif导入到ldap中,通过使用ldapadd命令来完成
$ldapadd-x-D"cn=admin,dc=com"-W-fbase.ldif
EnterLDAPPassword:
addingnewentry"dc=example,dc=com"

addingnewentry"ou=People,dc=com"

addingnewentry"ou=Group,dc=com"

#新建用户test并设置密码
$useraddtest
$passwdtest

#生成people.ldif和group.ldif
$greptest/etc/passwd>test_people
$greptest/etc/group>test_group
$/usr/share/migrationtools/migrate_passwd.pltest_people>people.ldif
$/usr/share/migrationtools/migrate_group.pltest_group>group.ldif

#查看生成的文件
$catpeople.ldif
dn:uid=test,ou=People,dc=com
uid:test
cn:test
objectClass:account
objectClass:posixAccount
objectClass:top
objectClass:shadowAccount
userPassword:{crypt}!!
shadowLastChange:17281
shadowMin:0
shadowMax:99999
shadowWarning:7
loginShell:/bin/bash
uidNumber:500
gidNumber:500
homeDirectory:/home/test

$catgroup.ldif
dn:cn=test,ou=Group,dc=com
objectClass:posixGroup
objectClass:top
cn:test
userPassword:{crypt}x
gidNumber:500


#导入ldif文件到ldap中
$ldapadd-x-D"cn=admin,dc=com"-W-fpeople.ldif
EnterLDAPPassword:
addingnewentry"uid=test,dc=com"

$ldapadd-x-D"cn=admin,dc=com"-W-fgroup.ldif
EnterLDAPPassword:
addingnewentry"cn=test,dc=com"

#查看
$ldapsearch-x-D"cn=admin,dc=com"-W-b"dc=example,dc=com"
EnterLDAPPassword:
#extendedLDIF
#
#LDAPv3
#base<dc=example,dc=com>withscopesubtree
#filter:(objectclass=*)
#requesting:ALL
#

#example.com
dn:dc=example,dc=com
dc:example
objectClass:top
objectClass:domain

#People,example.com
dn:ou=People,dc=com
ou:People
objectClass:top
objectClass:organizationalUnit

#Group,example.com
dn:ou=Group,dc=com
ou:Group
objectClass:top
objectClass:organizationalUnit

#test,People,example.com
dn:uid=test,dc=com
uid:test
cn:test
objectClass:account
objectClass:posixAccount
objectClass:top
objectClass:shadowAccount
userPassword::e2NyeXB0fSEh
shadowLastChange:17281
shadowMin:0
shadowMax:99999
shadowWarning:7
loginShell:/bin/bash
uidNumber:500
gidNumber:500
homeDirectory:/home/test

#test,Group,example.com
dn:cn=test,dc=com
objectClass:posixGroup
objectClass:top
cn:test
userPassword::e2NyeXB0fXg=
gidNumber:500

#searchresult
search:2
result:0Success

#numResponses:6
#numEntries:5

现已将创建的test用户导入到ldap中


openldap客户端搭建:http://www.jb51.cc/article/p-vguvosoy-bqd.html

其中遇到一个小问题,在“8、使用authconfig命令启动nslcd”后仍然不能通过su命令进行切换,显示没有家目录,这时候,再重新执行“5、配置/etc/pam.d/system-auth”就可以解决。

Centos 6.8 环境下 OpenLDAP 安装与部署

Centos 6.8 环境下 OpenLDAP 安装与部署

一、OpenLDAP 介绍

LDAP 全称轻量级目录访问协议(英文:Lightweight Directory Access Protocol),是一个运行在 TCP/IP 上的目录访问协议。LDAP 实现提供被称为目录服务的信息服务,可以看做是一张特殊的数据库系统。可以有效的解决众多网络服务的用户账户问题,规定了统一的身份信息数据库、身份认证机制和接口,实现了资源和信息的统一管理,保证了数据的一致性和完整性。

二、OpenLDAP Server 端部署

1. 安装 OpenLDAP 服务

yum -y install openldap openldap-*

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 模板数据库配置文件

2. 配置 OpenLDAP,包括准备 DB_CONFIG 和 slapd.conf

cd /etc/openldap/
cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

3. 配置 OpenLDAP 管理员密码

$ slappasswd -s 123456
{SSHA}Ct24HfPbIOy7tqf++84CL1hfEFC6VYlk  (密码需保存,后面会用上)

4. 修改 slapd.conf,主要配置 dc 和 rootpw,rootpw 配置为上述步骤中的密码

database        bdb
suffix          "dc=kwang,dc=cn"
checkpoint      1024 15
rootdn          "cn=Manager,dc=kwang,dc=cn"
rootpw       {SSHA}Ct24HfPbIOy7tqf++84CL1hfEFC6VYlk

5. 修改目录权限

chown -R ldap:ldap /etc/openldap/  
chown -R ldap:ldap /var/lib/ldap/

6. 启动 slapd 服务

$ /etc/init.d/slapd start
Starting slapd:                                            [  OK  ]

$ /etc/init.d/slapd status
slapd (pid  20539) is running...
$ chkconfig slapd on    # 设置开机启动

$  lsof -i:389     #检测端口是否在监听
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
slapd   20539 ldap    7u  IPv4 11741440      0t0  TCP *:ldap (LISTEN)

7. 测试 /etc/openldap/slapd.conf 配置是否正确

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

出现如下结果则表示配置文件已正确配置:

config file testing succeeded

三、OpenLDAP Server 端安装 migrationtools,创建根域目录

1. 安装 migrationtools 工具

migrationtools 工具实现 OpenLDAP 用户及用户组的添加

yum install migrationtools -y

2. 编辑 /usr/share/migrationtools/migrate_common.ph 文件,生成基础组

将 DEFAULT_MAIL_DOMAIN 和 DEFAULT_BASE 值和 slapd.conf 文件对应。

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "kwang.com";

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

3. 创建 OpenLDAP 根域条目 base.ldif 文件

对生成的 base.ldif 文件编辑,将不需要的条目删除。

dn: dc=kwang,dc=com
dc: kwang
objectClass: top
objectClass: domain

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

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

4. 添加 base.ldif 到 ldap 中

ldapadd -x -D "cn=Manager,dc=kwang,dc=com" -w 123456 -f base.ldif

5. 查询 ldap 中已添加的条目

$ ldapsearch -x -b "dc=kwang,dc=com" 
# extended LDIF
#
# LDAPv3
# base <dc=kwang,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# kwang.lan
dn: dc=kwang,dc=com
dc: kwang
objectClass: top
objectClass: domain

# People, kwang.lan
dn: ou=People,dc=kwang,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

# Group, kwang.lan
dn: ou=Group,dc=kwang,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

# search result
search: 2
result: 0 Success

# numResponses: 4
# numEntries: 3

至此,OpenLDAP server 端环境已部署。

四、OpenLDAP client 端部署

客户端部署有两种方式 nslcd 和 SSSD,两种方式基本一致,SSSD 相比更新,具有缓存功能,在 LDAP server 宕机时,依然能正常工作。因此本文主要介绍 SSSD 部署。

4.1 通过配置文件部署

1. 安装 SSSD

yum install openldap-clients nss-pam-ldapd -y
yum install authconfig sssd-ldap sssd -y

2. 编辑 /etc/openldap/ldap.conf 文件

# LDAP Defaults
#
 
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
 
BASE    dc=kwang,dc=com
URI     ldaps://<ldap-server-ip>:389/
 
#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never
 
TLS_CACERTDIR   /etc/openldap/certs

3. 编辑 /etc/sssd/sssd.conf 文件

[sssd]
config_file_version = 2
services = nss, pam
domains = default
debug_level = 5
   
[nss]
filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd
   
[domain/default]
id_provider = ldap
auth_provider = ldap
ldap_search_base = dc=kwang,dc=com
ldap_tls_reqcert = never
ldap_uri = ldaps://<ldap-server-ip>

4. 编辑 /etc/nsswitch.conf 文件

passwd:     files sss
shadow:     files sss
group:      files sss 

#如果本地用户和ldap用户,但是希望以ldap用户为准,file为补充时,可以修改/etc/nsswitch.conf 

 passwd: sss files
 shadow: sss files
 group: sss files

5. 编辑 /etc/pam.d/system-auth 文件

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
#auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_sss.so use_first_pass
auth        required      pam_deny.so
 
account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so
 
 
password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so
 
 
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so
session     optional      pam_mkhomedir.so

6. 编辑 /etc/pam.d/password-auth-ac 文件

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
#auth        requisite     pam_succeed_if.so uid >= 500 quiet  必须注释掉
auth        sufficient    pam_sss.so use_first_pass
auth        required      pam_deny.so
  
account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so
  
password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so
  
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so
session     optional      pam_mkhomedir.so 

7. 启动服务

chmod 600 /etc/sssd/sssd.conf
/etc/init.d/sssd restart

4.2 通过命令行部署

#安装程序
yum install openldap-clients nss-pam-ldapd -y
yum install authconfig sssd-ldap sssd -y 
 
#配置系统授权使用sss和ldap
authconfig  --enablemkhomedir \
 --enableldaptls\
 --enableldap\
 --enableldapauth\
 --ldapserver=ldaps://<ldap-server-ip>\
 --ldapbasedn="dc=kwang,dc=com"\
 --enableshadow\
 --update

#调整参数
sed -i ''/uid >= 500/s/^/#/'' /etc/pam.d/system-auth-ac
sed -i ''/uid >= 500/s/^/#/'' /etc/pam.d/password-auth-ac
sed -i ''/\[domain\/default\]/a\ldap_tls_reqcert = never'' /etc/sssd/sssd.conf
/etc/init.d/sssd restart

4.3 ldap 常用操作

1. 验证连通性

getent passwd kwang
id kwang

2. 缓存刷新

#一般情况手动刷新缓存
sss_cache -E
  
#sssd会将缓存信息保存在本地,特殊情况下,缓存存在冲突的情况,可以删除本地缓存,重启服务
rm -rf /var/lib/sss/db/*

至此,OpenLDAP server 端和 client 端均已部署完成。

 

【参考资料】

[1].  CentOS6.7 安装配置 LDAP Server

[2]. CentOS 6.9 下 OpenLDAP 的安装与配置

CentOS 6.9下OpenLDAP 的安装与配置

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 服务。

本文仅涉及没有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=com
ou: Hosts
objectClass: top
objectClass: organizationalUnit

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

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

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

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

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

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

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

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

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

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

dn: nisMapName=netgroup.byhost,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=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=com" -w ldappassword -f ./base.ldif -h openldap-server -p 389

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

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

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

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

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

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

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

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

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

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

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

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

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

5. 检查ldapadd是否成功(密码为上面创建的:ldappassword)(必须检查确认Manager数据添加了,才能通过PHPldapAdmin登录)

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

# Aliases,qq.com
dn: ou=Aliases,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','dn');         #添加这一行

[root@openldap-server openldap]# diff /etc/PHPldapadmin/config.PHP /etc/PHPldapadmin/config.PHP.bak
398,399c398,399
< //$servers->setValue('login','uid');
< $servers->setValue('login','dn');
---
> $servers->setValue('login','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

URL:   $IP/PHPldapadmin
用户名  "cn=Manager,dc=com"
密码   "ldappassword"

七、新建组织(公司)、管理员、组及用户

添加用户和用户组的方式有两种。一种是将系统用户通过migrationtools 工具生成LDIF 文件并结合ldapadd 命令导入OpenLDAP 目录树中,生成OpenLDAP 用户。另一种通过自定义LDIF 文件并通过OpenLDAP 命令进行添加或者修改操作。本文主要介绍第二种来完成OpenLDAP用户的添加。

1. 组织

创建组织:

[root@openldap-server data]# vim o.ldif      #在根目录下建立不同组织
dn: o=tengxun,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=com" -w ldappassword -f ./o.ldif -h openldap-server -p 389
adding new entry "o=tengxun,dc=com"

============================================================
如果报错:

[root@openldap-server data]# ldapadd -x -D "cn=Manager,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=com"?)
adding new entry "o=tengxun,dc=com"
ldap_add: Type or value exists (20)
                additional info: ou: value #0 provided more than once

产生原因:o.ldif文件中的不规范的空格所致!!即导入的数据含有空格所致!
纠错如下:

dn:(空格)o=tengxun,dc=com
changetype:(空格)add(结尾无空格)
objectclass:(空格)top(结尾无空格)
objectclass:(空格)organizationalUnit(结尾无空格)
ou:(空格)echnology(结尾无空格)
(1空行,空行必须要定格,不能留空格)(结尾无空格)
........(后面的配置内容纠正方法同样)

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

查询刚导入数据

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

# tengxun,qq.com
dn: o=tengxun,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=com
objectClass: organizationalRole
cn: Manager

# Group组
dn: ou=Group,dc=com
ou: Group
objectClass: organizationalUnit

# People组
dn: ou=People,dc=com
ou: People
objectClass: organizationalUnit

导入组数据

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

通过以上的所有步骤,我们就设置好了一个 LDAP 目录树:其中基准 dn: o=tengxun,dc=com 是该树的根节点,其下有一个管理域 cn=Manager,dc=com 和两个组织单元 ou=People,dc=com 及 ou=Group,dc=com。

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,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: huateng.ma@qq.com

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

导入用户数据

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

可以登陆PHPLDAPadmin的web界面查询新导入的数据

添加其它用户

[root@openldap-server data]# vim adduser.ldif
# create new
# replace to your own domain name for "dc=***,dc=***" section
dn: uid=san.zhang,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: san.zhang@qq.com

把san.zhang用户加入到kaifa组中(没验证)

dn: cn=kaifa,dc=com
changetype: modify
add: memberuid
memberuid: san.zhang
或者

通过OpenLDAP界面把san.zhang用户添加到kaifa组中

点击左侧相应组织下的"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

当你发现自己的才华撑不起野心时,就请安静下来学习吧

今天关于centos安装openldap过程centos安装openmpi的讲解已经结束,谢谢您的阅读,如果想了解更多关于CentOS 6.4下编译安装OpenLDAP、Centos 6.5 搭建openldap、Centos 6.8 环境下 OpenLDAP 安装与部署、CentOS 6.9下OpenLDAP 的安装与配置的相关知识,请在本站搜索。

本文标签: