Ladp数据库安装和配置自定义schema ,Centos7环境

这篇具有很好参考价值的文章主要介绍了Ladp数据库安装和配置自定义schema ,Centos7环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近安装ldap看了不少教程,整理下用到的有用的资料,并把自己的搭建过程分享。

参考

  • ldap介绍:openLDAP入门与安装

  • 官方文档:https://www.openldap.org/doc/admin22/schema.html

  • 安装配置:Centos7 搭建openldap完整详细教程(真实可用)

  • bug解决:ldap运维中遇到的问题

  • schema自定义:导入schema到openLdap window文件转为unix文件

1,安装和配置

yum 安装相关包

yum install -y openldap openldap-clients openldap-servers

拷贝数据库配置文件

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap. /var/lib/ldap/DB_CONFIG

启动服务,先启动服务,配置后面再进行修改

systemctl start slapd
systemctl enable slapd
#查看状态
systemctl status slapd

修改配置

从openldap2.4.23版本开始,所有配置都保存在/etc/openldap/slapd.d目录下的cn=config文件夹内,不再使用slapd.conf作为配置文件。配置文件的后缀为 ldif,ldap的配置在开头都会有一行注释,说明此为自动生成的文件,请勿编辑,需要使用ldapmodify命令进行修改。

设置用户密码,生成的加密密码后面需要用到(ldap的加密是同样的密码加密后都不一样)

slappasswd -s 123456
{SSHA}N158sFqO97cIPBV/eOW1b80oV4BIvlvW

开始修改,创建一个修改文件。

vim changepwd.ldif

添加内容

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}N158sFqO97cIPBV/eOW1b80oV4BIvlvW

然后执行,在执行下面的命令前,你可以先查看原本的/etc/openldap/slapd.d/olcDatabase={0}config文件,里面是没有olcRootPW这个项的,执行命令后,你再看就会新增了olcRootPW项,而且内容是我们文件中指定的值加密后的字符串

ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif

备注:如果/etc/openldap/slapd.d/下cn=config/olcDatabase={0}config文件已经存在olcRootPW 使用replace
changepwd.ldif内容:

dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}N158sFqO97cIPBV/eOW1b80oV4BIvlvW
ldapmodify -Y EXTERNAL -H ldapi:/// -f changepwd.ldif

导入配置

# 我们需要向 LDAP 中导入一些基本的 Schema。这些 Schema 文件位于 /etc/openldap/schema/ 目录中,schema控制着条目拥有哪些对象类和属性,可以自行选择需要的进行导入,
# 依次执行下面的命令,导入基础的一些配置,我这里将所有的都导入一下,其中core.ldif是默认已经加载了的,不用导入
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

修改域名

域名的信息保存在/etc/openldap/slapd.d/cn=config文件夹下
olcDatabase={1}monitor,cn=config配置中可以查看,不能直接修改。这边使用命令修改。
创建一个changedomain.ldif修改文件。

vim changedomain.ldif

比如我域名是dc=sichuan,dc=cmcc ,用户为cn=Manager,changedomain.ldif文件配置如下:

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=sichuan,dc=cmcc" read by * none
 
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=sichuan,dc=cmcc
 
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=sichuan,dc=cmcc
 
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}7j4lLAvS1mToAZpIyefQdTYqCvL0hiVa
 
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=sichuan,dc=cmcc" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=sichuan,dc=cmcc" write by * read

执行:

ldapmodify -Y EXTERNAL -H ldapi:/// -f changedomain.ldif

创建组织单元

在dc=sichuan,dc=cmcc组织下 创建Account 和Role两个组织单元:

新增cmcc.ldif文件

vim  cmcc.ldif
dn: dc=sichuan,dc=cmcc
objectClass: domain
objectClass: top
o: cmcc
dc: sichuan

dn: ou=Account,dc=sichuan,dc=cmcc
objectClass: organizationalUnit
ou: Account
description: account for cmcc

dn: ou=Role,dc=sichuan,dc=cmcc
objectClass: organizationalUnit
ou: Role
description: role for cmcc

执行命令,添加配置, 这里要注意修改域名为自己配置的域名,然后需要输入上面我们的密码(123456)

ldapadd -x -D cn=Manager,dc=sichuan,dc=cmcc -W -f cmcc.ldif

2,schema自定义格式

schema,是一个标准,定义了ldap的对象和属性,也就是ldap能够存储什么数据,数据有什么属性等。

/etc/openldap/slapd.d/cn=config/cn=schema/文件夹保存了运行使用的schema文件,我们需要生成cmcc.schema放进来。

由于ldap中的对象不满足现有需求,需要自定义对象和属性。
创建两个对象cmcc-Account和cmcc-Role
cmcc-Account对象包含Uid,accPassword ,accRole , accstatus , accReserve1 , accReserve2 , accReserveList1 , accReserveList2属性
cmcc-Role对象包含roleName, roleDesc, accReserve1 , accReserve2 , accReserveList1 , accReserveList2属性

创建cmcc.schema文件

vim cmcc.schema
attributetype ( 1.3.6.1.4.1.79145.1.2.1.2 NAME 'accPassword' 
	DESC 'accPassword' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} 
	SINGLE-value ) 
	
attributetype ( 1.3.6.1.4.1.79145.1.2.1.3 NAME 'accRole' 
	DESC 'accRole' 
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch 	
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) 

attributetype ( 1.3.6.1.4.1.79145.1.2.1.4 NAME 'accstatus' 
	DESC 'accstatus' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} 
	SINGLE-value ) 
	
attributetype ( 1.3.6.1.4.1.79145.1.2.1.5 NAME 'accReserve1' 
	DESC 'accReserve1' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} 
	SINGLE-value ) 
	
attributetype ( 1.3.6.1.4.1.79145.1.2.1.6 NAME 'accReserve2' 
	DESC 'accReserve2' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} 
	SINGLE-value ) 
	
attributetype ( 1.3.6.1.4.1.79145.1.2.1.7 NAME 'accReserveList1' 
	DESC 'accReserveList1' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) 
	
attributetype ( 1.3.6.1.4.1.79145.1.2.1.8 NAME 'accReserveList2' 
	DESC 'accReserveList2' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) 
	
attributetype ( 1.3.6.1.4.1.79145.1.2.1.9 NAME 'roleName' 
	DESC 'roleName' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} 
	SINGLE-value ) 
	
attributetype ( 1.3.6.1.4.1.79145.1.2.1.10 NAME 'roleDesc' 
	DESC 'roleDesc' 
	EQUALITY caseIgnoreMatch 
	SUBSTR caseIgnoreSubstringsMatch 
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} 
	SINGLE-value ) 

objectclass ( 1.3.6.1.4.1.79145.1.2.2.1 NAME 'cmcc-Account' 
	DESC 'a cmcc-Account' 
	SUP top STRUCTURAL 
	MUST ( uID ) 
	MAY ( accPassword $ accRole $ accstatus $ accReserve1 $ accReserve2 $ accReserveList1 $ accReserveList2 ) ) 

objectclass ( 1.3.6.1.4.1.79145.1.2.2.2 NAME 'cmcc-Role' 
	DESC 'a cmcc-Role' 
	SUP top STRUCTURAL 
	MUST ( roleName ) 
	MAY ( roleDesc $ accReserve1 $ accReserve2 $ accReserveList1 $ accReserveList2 ) ) 

将cmcc.schema文件放到/etc/openldap/schema

在tmp文件夹 创建schema文件夹
创建convert.conf文件,在末尾加入cmcc.schema

cd /tmp
mkdir schema
vim convert.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/collective.schema
include /etc/openldap/schema/corba.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/cmcc.schema

生成ldap信息文件

slaptest -f /tmp/convert.conf -F /tmp/schema 

给ldap添加生成的cmcc.ldif文件

cp /tmp/schema/cn\=config/cn\=schema/cn\=\{12\}cmcc.ldif /etc/openldap/slapd.d/cn\=config/cn\=schema/

#给ldap 添加权限
cd /etc/openldap/slapd.d/cn=config/cn=schema/
chown ldap:ldap cn\=\{12}cmcc.ldif

重启

ps aux | grep ldap
kill -9 pid

//启动
systemctl start slapd

//状态
systemctl status slapd

3,连接ldap数据库效果

我使用的window版LdapAdmin.exe 连接的ldap。
查看自定义schema是否成功,可以点击Tools->schema 查看object classes 和Attribue Types中是否存在。

登陆界面:
Ladp数据库安装和配置自定义schema ,Centos7环境,数据库,数据库
组织结构:
Ladp数据库安装和配置自定义schema ,Centos7环境,数据库,数据库文章来源地址https://www.toymoban.com/news/detail-660496.html

到了这里,关于Ladp数据库安装和配置自定义schema ,Centos7环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库模式(schema)是什么?

    在数据库的术语中,模式(schema)是一个逻辑概念,用于组织数据库中的对象。模式中的对象通常包括表、索引、数据类型、序列、视图、存储过程、主键、外键等等。 模式可以为数据库对象提供逻辑隔离功能,不用应用程序可以使用各自的模式,实现安全的访问权限控制。

    2024年02月06日
    浏览(43)
  • 如何安全地变更数据库 Schema

    最近 Reddit 的 r/golang 下有人问了一个如何做数据库 schema 变更的问题,不到一天,就有了超过 40 条回复。 数据库 schema 变更一直是让程序员头疼的问题,但又不得不面对,毕竟业务要发展,产品要迭代,添加新的功能往往需要去修改数据库的结构,比如添加一个新的字段来保

    2024年02月10日
    浏览(40)
  • 基于CentOS7安装MySQL数据库并远程访问

    MySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于Oracle公司。任何人都能从Internet下载MySQL软件,而无需支付任费用,并且“开放源码”意味着任何人都可以使用和修改该软件。下面我们来学习如何在

    2024年02月11日
    浏览(42)
  • 运维笔记之centos7安装mysql数据库

    如果使用的4.1以上版本的rpm的话,除了import mysql的公钥到个人用户的配置中,还需要import mysql的公钥到RPM的配置中

    2024年02月04日
    浏览(58)
  • 【PostgreSQL】连接pg数据库Schema切换

    由于PostgreSQL数据库模式(schema)存在多个,原先的表单是默认采用public但是查询表和字段时候有查询所有未进行过滤,导致数据库连接失败、查表字段也为空(空即查询服务端异常错误) 数据库连接配置 添加参数补充 ?currentSchema=dwd 譬如: username=root;password=XXXX;url=jdbc:postg

    2024年02月11日
    浏览(42)
  • GaussDB查看数据库、表空间、表、schema大小以及常用的数据库元命令

    元命令 l+ 可以快速查看

    2024年02月11日
    浏览(45)
  • 一文详解向量数据库Milvus Cloud动态 Schema

    在数据库中,Schema 常有,而动态 Schema 不常有。     例如,SQL 数据库有预定义的 Schema,但这些 Schema 通常都不能修改,用户只有在创建时才能定义 Schema。Schema 的作用是告诉数据库使用者所希望的表结构,确保每行数据都符合该表的 Schema。NoSQL 数据库通常都支持动态 Schema

    2024年01月18日
    浏览(43)
  • MySQL只有information_schema一个数据库

    背景:centos新安装的mysql数据库。使用DbEaver连接mysql库时,发现左边不显示表。使用命令框mysql -uroot回车登录时,发现只能看到information_schema一个数据库了。 原因: 因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿

    2024年02月05日
    浏览(29)
  • Hive(14):Database|schema(数据库) DDL操作

    1 Create database Hive中DATABASE的概念和RDBMS中类似,我们称之为数据库。在Hive中, DATABASE和SCHEMA是可互换的,使用DATABASE或SCHEMA都可以。 COMMENT:数据库的注释说明语句 LOCATION:指定数据库在HDFS存储位置,默认/user/hive/warehouse WITH DBPROPERTIES:用于指定一些数据库的属性配置。 下面

    2024年02月11日
    浏览(52)
  • centos7.9-RPM安装MySQL 8.0.34数据库教程

    使用命令 或者 ` 查看操作系统信息,我的系统版本是el7 即liunx/centos 7系列。 下载地址: https://dev.mysql.com/downloads/mysql/ 下载时,要注意自己系统的版本,我的Linux版本是 el7 ,要下载对应的版本。 用上传工具将下载的安装包上传至指定存放目录;我专门存放安装包的目录是

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包