linux 卸载 openldap,Linux下安装openldap

Ubuntu apt-get

install安装参考:http://dongwang.wordpress.com/category/uncategorized/

普通linux安装,以XXX用户身份安装:

1、安装Berkeley

DB 4.7.25:伯克利大学嵌入式数据库解决方案,openldap拿它作为存储方案。

http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz下载到:/home/XXX/download/

# tar xvf

db-4.7.25.tar.gz

# cd

db_4.7.25

# cd build_unix/

#

../dist/configure -prefix=/home/XXX/app/BerkeleyDB

# make

# make install

2、安装openldap前准备:配置环境变量,参考openldap install文件

#export

CPPFLAGS="-I/home/XXX/app/BerkeleyDB/include -D_GNU_SOURCE"

注:不设置make时报getpeereid.c:65: error: storage size of ‘peercred’ isn’t

known错误

#export

LDFLAGS="-L/home/XXX/app/BerkeleyDB/lib"

注:不设置configure时报configure: error: BDB/HDB: BerkeleyDB not

available错误

#export

LD_LIBRARY_PATH="/home/XXX/download/db-4.7.25/build_unix/.libs"

注:不设置configure时报configure: error: Berkeley DB version

mismatch错误

3、安装openldap-2.4.15:

ftp://sunsite.cnlab-switch.ch/mirror/OpenLDAP/openldap-release/openldap-2.4.15.tgz下载到/home/XXX/download/

#tar xvf

openldap-2.4.15.tgz

#cd

openldap-2.4.15/

#./configure

-prefix=/home/XXX/app/openldap

# make

depend

# make test

可跳过

# make

# make

install

4、配置openldap:

#cd

/home/XXX/app/openldap/etc/openldap

#gedit

slapd.conf

加入(注意:中间是空格+tab,顺序必须保证,有相互依赖关系):

include

/home/XXX/app/openldap/etc/openldap/schema/corba.schema

include

/home/XXX/app/openldap/etc/openldap/schema/cosine.schema

include

/home/XXX/app/openldap/etc/openldap/schema/inetorgperson.schema

include

/home/XXX/app/openldap/etc/openldap/schema/misc.schema

include

/home/XXX/app/openldap/etc/openldap/schema/openldap.schema

include

/home/XXX/app/openldap/etc/openldap/schema/nis.schema

include

/home/XXX/app/openldap/etc/openldap/schema/java.schema

将文件中的

database bdb

suffix

"dc=my-domain,dc=com"

rootdn

"cn=root,dc=my-domain,dc=com"

rootpw

secret

修改成自己的目录根,指定自己根的管理员,这里修改为root,与linux的root没有什么关系

rootdw

是管理员的密码,默认密码是secret,这里可以使用MD5加密。

#cd

/home/XXX/app/openldap/sbin

#slappasswd

New

password:

Re-enter new

password:

{SSHA}mHzQL7t4YG/a6g5mt2YPLE/+ErmekI34

也可以指定加密方式:

# slappasswd -h

{MD5}

将输出结果替换secret

5、启动openldap:

#

/home/XXX/app/openldap/libexec

# su root -c

"./slapd"

必须如此,1024以下的端口必须由root才能绑定,ldap是389端口。

如果启动不成功可以用

./slapd -d 1启动debug模式。。将在屏幕打印启动信息

#netstat -tlnp

发现389端口即启动成功

接下来的事情就是向数据库添加数据。ldap不支持sql,所以要用ldapadd这个程序来添加,添加的时候要用一个ldif文件,把要添加的东西写在里面,ldif的格式在admin

guide里面有说明。首先要添加根,这一步是必要的,不然任何数据都添加不进去。我们编辑一个init.ldif文件,包括建立my-domain.com、管理者為domain.com

底下的root、以及一個people的物件容器,用來放一般使用者。

dn:

dc=my-domain,dc=com

objectClass:

dcObject

objectClass:

organization

dc:

my-domain

o: my-domain

Company

dn:

cn=root,dc=my-domain,dc=com

objectClass:

organizationalRole

cn: root

dn:

ou=people,dc=my-domain,dc=com

objectClass:

organizationalUnit

ou: people

應該會看到你的organization、organizationRole、organizationUnit

這三個,也就是你的最高網路域名‧最高管理者、以及一個準備用來容納使用者的people 項目。這個people

項目你當然可以自由取名。

提示:objectClass必须设置属性:

dcobject:dc用来表示一个域名的部分

organization:o用来表示一个组织的名称

person:cn和sn用来表示名和姓

organizationalPerson:与person相同。

organizationalRole:cn 表示管理者名称

organizationUnit:ou表示容器名称

详细参考:http://www.yolinux.com/TUTORIALS/LinuxTutorialLDAP-GILSchemaExtension.html

执行命令:

#cd

/home/XXX/app/openldap/bin

#ldapadd -D

"cn=root, dc=my-domain,dc=com" -w secret -f init.ldif

或者

#ldapadd -D

"cn=root, dc=my-domain,dc=com"  -W -f

init.ldif

说明:-D指定管理员目录

-f指定导入文件 -W表示弹出密码输入提示 如果是简单普通密码,则-w secret即可。

如果成功将提示:

adding new entry

dc=my-domain,dc=com

adding new entry

cn=root,dc=my-domain,dc=com

adding new entry

ou=people,dc=my-domain,dc=com

补充一:用户users.ldif

,其中userPassword在person声明,mail在inetOrgPerson声明

dn:cn=kehufankui,ou=people,dc=navinfo,dc=com

objectClass:

person

objectClass:

inetOrgPerson

sn:kehufankui

cn:kehufankui

userPassword:123

mail:loveflying88@sina.com

多个用户重述上面信息

补充二:启动注意解决办法:

错误一:openldap安装成功后,另外启动一个终端,slapd启动时将报错:

./slapd: error

while loading shared libraries: libdb-4.7.so: cannot open shared

object file: No such file or directory

出错原因:找不到bdb的链接库。

解决办法一:完全拷贝。

#cp

/home/XXX/app/BerkeleyDB//include/* /usr/include/

#cp

/home/XXX/app/BerkeleyDB/BerkeleyDB/lib/* /usr/lib/

解决办法二(推荐):

要把/home/XXX/app/BerkeleyDB/lib的库路径直接加到/etc/ld.so.conf文件最后一行,添加完成后执行一次

ldconfig,使用配置文件生效。

提示:

ld.so.conf记录了编译、或运行时使用的动态链接库(.so)的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件。

错误二:debug模式启动时报daemon: bind(7) failed errno=13错误

出错原因:是1024以下的端口必须由root才能绑定。因为ldap默认是389端口。所以才报这个错误。

解决办法:su root -c

"./slapd"

6、扩展openldap

schema配置:

ldap默认的schema属性声明有时候无法满足现实的需要,比如要用openldap备份微软ldap的数据,sAMAccountName是微软特有的属性,这样我们就需要扩展属性。

举例说明,扩展inetOrgPerson这个objectClass,增加sAMAccountName这个属性。

打开inetorgperson.schema文件,添加:

#sAMAccountName

attributetype (

2.16.840.1.113730.3.1.217

NAME

'sAMAccountName'

DESC ''

EQUALITY

caseIgnoreMatch

SUBSTR

caseIgnoreSubstringsMatch

SYNTAX

1.3.6.1.4.1.1466.115.121.1.15{128}

SINGLE-VALUE

)

#targetDN

attributetype (

2.16.840.1.113730.3.1.218

NAME

'targetDN'

DESC ''

EQUALITY

caseIgnoreMatch

SUBSTR

caseIgnoreSubstringsMatch

SYNTAX

1.3.6.1.4.1.1466.115.121.1.15{256}

SINGLE-VALUE

)

在May里添加:

MAY (

....

$ userPKCS12 $ sAMAccountName

$targetDN)

)

即可,参考:

http://blog.163.com/duanhehui0928@126/blog/static/115272342201031122227764/

http://hi.baidu.com/teamtogether/blog/item/fde2b81184f17fc8a7ef3f0f.html

7、后记

微软ldap和openldap在dn的存储设计上有本质区别。

openldap:the DN

isn't an attribute value - it's theobject's name itself.

微软ldap:the DN is

an attribute value - it's DistinguishedName。

dn是一个比较重要的属性,作为object 的唯一路径标识,删除、修改object都要使用到,而java

ldaptemplate访问openldap时却无法获取dn值,值得一提的是python-ldap

search默认获取的就是("dn值",{属性集合}),非常方便。

针对java

ldaptemplate的设计失误,只能在openldap增加一个targetDN来存储dn值来变相解决这个问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git之原有基础开发新功能

场景描述 当一个项目已经上线,同时又在原有基础上新增功能模块,于是乎就要在原有代码的基础上进行开发,在新增模块功能的开发的过程中,项目发现了一个紧急Bug,需要修复。操作流程如下: -------------------…

pantum打印机驱动安装m6506_奔图Pantum M6506NW 驱动

这是奔图Pantum M6506NW 驱动,是M6506NW奔图打印机驱动,此设备内置WIFI热点,安装驱动可以帮助用户解决打印机连接和工作中出现的问题,非常方便,需要的朋友快来本站下载吧!驱动介绍奔图M6506NW一体机驱动专为…

linux kvm查看线程状态,kvm线程-005-线程状态-THREAD_JUST_BORN

在kvm内部定义了线程状态,如下:enum {THREAD_JUST_BORN 1, /* 还没有启动*/THREAD_ACTIVE 2, /* 当前正在运行,或者在等待运行的队列中*/THREAD_SUSPENDED 4, /* 等待monitor或者alarm */THREAD_DEAD 8, /* 线程退出 */THREAD_MONITOR_WAIT 16, // 等待锁THREAD_CONVAR_WA…

详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

原文链接:http://www.jb51.net/article/98575.htm -------------------------------------------------- 本文以VirtualBox为例 如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭。 一、NAT模式 特点: 1、如果主机可以上网…

os.popen read()报编码错误_数据科学家易犯的十大编码错误,你中招了吗?

选自 Medium作者:Norm Niemer机器之心编译参与:李诗萌、王淑婷数据科学家比软件工程师擅长统计,又比统计学家擅长软件工程。听起来牛逼轰轰,事实却是,许多数据科学家有统计学背景,却没有什么软件工程方面的…

linux怎么添加工作组,linux 用户与工作组

在linux 里面,用户的编号UID ,也就是用户的ID号。工作组的编号为GID 也就是工作组的ID 号 。1、用户的分类超级用户:root用户,系统安装过程中自动创建,UID 为0。普通用户:操作权限受到限制的用户id在 500-6…

MySQL5.7.12新密码登录方式及密码策略

原文链接:http://www.cnblogs.com/jonsea/p/5510219.html --------------------------------------------------------------------------- 松门一枝花补充 最简单的方法: 1、配置文件中把密码策略关了。本文中间部分有介绍。 2、重启服务 3、用my…

聚类分析在用户行为中的实例_聚类分析案例之市场细分

聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。从统计学的观点看,聚类分析是通过数据建模简化数据的一种方法。传统的统计聚类分析方法包括系统聚类法、分解法、加入…

linux 编译system.img,android生成sysytem.img的命令过程

Fromhttp://xianghuaclm.blog.163.com/blog/static/6668783201110221486240/使用#file system.img输出:system.img: Linux rev 0.0 ext2 filesystem data,UUID4eb0489c-647d-49d8-9111-94657b5fd342, volume name"system"。然而本人使用命令#mkyaffs2imag…

Hive的hiveserver2后台开启和关闭

前提:hive/bin配置了环境变量。如果没有配置,cd到 hive目录下的bin里,再执行。 开启命令: nohup hive --service hiveserver2 & 产生的日志: 默认在: 用户文件夹里 [rootmaster ~]# ll total 80 …

记一次,jvm 内存溢出

1、什么是内存泄漏内存泄漏是指,有未被释放的java对象,一直停留在内存中。GCRoot 无法追踪到此对象,导致此对象无法被回收。 2、什么是内存溢出内存溢出是指,java程序创建对象需要内存,但是却没有内存可用了&#xff0…

ebnf范式_使用Scala基于词法单元的解析器定制EBNF范式文法解析

前言近期在做Oracle迁移到Spark平台的项目上遇到了一些平台公式翻译为SparkSQL(on Hive)的需求,而Spark采用亲妈语言Scala进行开发。下面是个意外,被论文查重了,移步至我的Leanote博客查看点我,先乱码一段时间[分后,拟使中的EB式&…

钻石指标和完美的计算

钻石的高度计算公式为:钻石的高度直径的三次方(单位毫米)0.00366(允许有0.03克拉的误差)例如,0.5克拉的钻石直径是5.01毫米,则它的高为:5.01*5.01*5.01*0.003660.46说明0.5克拉的钻石直径只有0.46克拉钻石的…

linux开机自动ZFS,linux – 为什么重新启动导致我的ZFS镜像的一面成为UNAVAIL?

我最近刚刚将批量数据存储池(ZFS OnLinux 0.6.2,Debian Wheezy)从单设备vdev配置迁移到双向镜像vdev配置.之前的池配置是:NAME STATE READ WRITE CKSUMakita ONLINE 0 0 0ST4000NM0033-Z1Z1A0LQ ONLINE 0 0 0在重新启动完成后一切都很好(我在重新启动完成后启动了一…

华为交换机默认vlan都是通的吗_【思唯网络学院】华为交换机常用的三种vlan划分方法...

端口类型在学习划分vlan前,必须要了解华为交换机的端口类型,以及他们的使用方法,因为端口的类型在实际配置中是必须会用到的,因为下面的vlan划分会用到。1、Access类型端口执行命令port default vlan vlan-id,将端口加…

Spark应用日志级别设置

Spark-core包设置默认的日志级别为info,所以我们才看到一大堆日志信息。 开发的时候,把print的日志掩盖了。 方法一: 代码中设置日志级别 JavaSparkContext contextnew JavaSparkContext(conf); context.setLogLevel("warn"); 方…

linux 恢复操作系统,如何恢复Linux操作系统的GRUB引导程?

先使用一张修复盘进入grub,或者利用其他linux恢复盘等等进入linux系统,然后进入grub控制台。总之就是想尽办法进入一个控制台就是了。然后准备引导进入硬盘上的Linux系统。如下:  grub> root (hd0,10)  grub> kernel /boot/vmlinuz…

Centos 7初始化脚本

今天跟大家分享一个我自己写的Linux初始化脚本,自认为写的不是很好。希望看到这篇文章的你,能暂时停留下你的脚步,给些修改意见,或者有什么需要补充的地方都可以提出来,大家共同进步,谢谢!此脚本…

Hive-sql与SQL的区别

总体一致: Hive-sql与SQL基本上一样,因为当初的设计目的,就是让会SQL不会编程MapReduce的也能使用Hadoop进行处理数据。 因此,大胆使用SQL的,如果遇到不对的,再查。 区别: Hive没有delete和u…

python闰年多一天_记一个 python datetime 闰年问题

python中datetime是比较常用的,平时用起来也没什么问题,但是今天2020年2月29日服务器却开始报错了,这里有个平时难以注意的坑服务器上跑的是新浪网的爬虫,抓取的页面信息中带有日期 XX月XX日,需要strfptime转化一下&am…