ldap_0">安装ldap和设置自起
ldap_2">- 安装ldap
yum install -y openldap-servers openldap-clients openldap openldap-devel compat-openldap openldap-servers-sql
- 启动和开机自起
systemctl start slapd
systemctl enable slapd
- 查看服务是否安装成功
ldap_20">配置ldap
- 创建第一个管理账号密码
slappasswd
ldapslapdd_29">- 切换工作目录到/etc/openldap/slapd.d
- 新增db.ldif文件,设置cn=config/olcDatabase={2}hdb.ldif 数据库文件
vim db.ldif
以下内容注意值的内容结束后不要有空格(空行也不要有空格),否则会报错!
我的家乡在自贡贡井区!
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=gongjing,dc=comdn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=gongjing,dc=comdn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
- 执行修改
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
- 修改前和修改后文件内容变化
图1: 修改前(已经改过一次但改失败了)
图2: 修改后–修改的字段都有了
- olcSuffix和olcRootRN的关系和区别
- 新增monitor.ldif,用于修改cn=config/olcDatabase={1}monitor.ldif文件
vi monitor.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=admin,dc=gongjing,dc=com" read by * none
- 执行修改
- 修改前后对比
图1:cn=config/olcDatabase={1}monitor.ldif未修改之前
图2:修改后的结果
- 添加基础数据库
scheme是针对不同事物,存储信息的属性不同,设计的各种存储信息结构
#复制ldap原有配置,并赋予它所有权限
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*# 添加基础库;即三个基础结构的数据结构
# Cosine schema是一套基础且常用的schema集合,包含了互联网上广泛认可的标准属性和类定义,如电子邮件相关属性、组织和人员信息等;
# NIS Schema扩展了LDAP目录的能力,使其能够支持和兼容原本在NIS系统中使用的数据结构,如用户、组、主机名等信息,使得从NIS迁移至LDAP或者在LDAP中模拟NIS环境变得可能;
# inetOrgPerson是一个标准的LDAP对象类别(ObjectClass),它是基于X.520目录模型并扩展了person类别,专为存储互联网和个人相关信息而设计。它包括了许多与人相关的属性,如电子邮件地址、电话号码、职务、部门等,非常适合用于存储和管理组织内的员工、成员或联系人信息。
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
- 编辑域名属性,和三大分组(group, pepole, admin)
新增base.ldif
vi base.ldif
dn: dc=gongjing,dc=com
dc: gongjing
objectClass: top
objectClass: domaindn: cn=admin,dc=gongjing,dc=com
objectClass: organizationalRole
cn: admin
description: LDAP Managerdn: ou=People,dc=gongjing,dc=com
objectClass: organizationalUnit
ou: Peopledn: ou=Group,dc=gongjing,dc=com
objectClass: organizationalUnit
ou: Group
- 将域名和分组写到数据库
ldapadd -x -W -D "cn=admin,dc=gongjing,dc=com" -f base.ldif
-D表示指定什么用户
从管理界面看域名和分组的对应关系:
至此ldap已经部署成功!吃点零食庆祝一下!
说明:基本是采用了下面篇文档进行部署,很多内容含义是通过通义千问查的!https://blog.csdn.net/ownfire/article/details/135581042
通义千问的解答: