本文目录导读:

是的,完全可以通过脚本自动配置LDAP服务(如OpenLDAP),以下是一个基于 Debian/Ubuntu 系统的实用Shell脚本示例,用于自动安装和配置OpenLDAP服务器,并创建基础目录结构。
脚本功能
- 安装
slapd和ldap-utils - 设置管理员密码
- 配置基础域名(DC)
- 添加组织单元(OU)和示例用户/组
自动配置OpenLDAP的Shell脚本
#!/bin/bash
# ========== 用户自定义变量 ==========
LDAP_DOMAIN="example.com"
LDAP_ADMIN_PASSWORD="admin123"
LDAP_ORG="Example Corp"
# ===================================
# 检查root权限
if [ "$(id -u)" != "0" ]; then
echo "此脚本需要root权限,请使用sudo执行"
exit 1
fi
echo "=== 开始自动配置LDAP服务 ==="
# 安装OpenLDAP服务
apt-get update -qq
apt-get install -y -qq slapd ldap-utils
# 生成管理员密码哈希(SSHA)
ADMIN_HASH=$(slappasswd -s "$LDAP_ADMIN_PASSWORD")
# 停止slapd服务进行配置
systemctl stop slapd
# 删除默认配置,重新初始化
rm -rf /etc/ldap/slapd.d/*
# 创建基础LDIF配置文件
cat > /etc/ldap/slapd.conf <<EOF
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
database mdb
suffix "dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}"
rootdn "cn=admin,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}"
rootpw $ADMIN_HASH
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
access to attrs=userPassword
by dn="cn=admin,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}" write
by anonymous auth
by self write
by * none
access to *
by dn="cn=admin,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}" write
by * read
EOF
# 将配置转换为slapd.d格式
mkdir -p /etc/ldap/slapd.d
slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d
chown -R openldap:openldap /etc/ldap/slapd.d
chown -R openldap:openldap /var/lib/ldap
# 启动slapd
systemctl start slapd
systemctl enable slapd
echo "=== LDAP服务已启动 ==="
# 导入基础目录结构
cat > /tmp/base.ldif <<EOF
dn: dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}
dc: ${LDAP_DOMAIN%.*}
objectClass: top
objectClass: dcObject
objectClass: organization
o: $LDAP_ORG
dn: cn=admin,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
dn: ou=People,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Groups,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}
ou: Groups
objectClass: top
objectClass: organizationalUnit
EOF
ldapadd -x -D "cn=admin,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}" -w "$LDAP_ADMIN_PASSWORD" -f /tmp/base.ldif
if [ $? -eq 0 ]; then
echo "基础目录结构已创建成功!"
else
echo "基础目录结构创建失败,请检查配置"
exit 1
fi
# 可选:添加一个示例用户和组
cat > /tmp/testuser.ldif <<EOF
dn: uid=testuser,ou=People,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}
uid: testuser
cn: Test User
sn: User
mail: testuser@${LDAP_DOMAIN}
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword: {SSHA}${ADMIN_HASH#*SSHA}
dn: cn=testgroup,ou=Groups,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}
cn: testgroup
objectClass: top
objectClass: groupOfUniqueNames
uniqueMember: uid=testuser,ou=People,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}
EOF
ldapadd -x -D "cn=admin,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}" -w "$LDAP_ADMIN_PASSWORD" -f /tmp/testuser.ldif
echo "示例用户和组已添加"
echo "=== LDAP配置完成 ==="
echo "LDAP地址: ldap://127.0.0.1"
echo "管理DN: cn=admin,dc=${LDAP_DOMAIN%.*},dc=${LDAP_DOMAIN#*.}"
echo "管理员密码: $LDAP_ADMIN_PASSWORD"
使用方法
- 将脚本保存为
ldap-setup.sh - 修改变量(根据需要):
LDAP_DOMAIN:你的域名(如example.com)LDAP_ADMIN_PASSWORD:管理员密码(生产环境建议使用强密码)LDAP_ORG:组织名称
- 赋予执行权限并运行:
chmod +x ldap-setup.sh sudo ./ldap-setup.sh
验证LDAP服务是否正常
# 检查服务状态 systemctl status slapd # 查询基础目录 ldapsearch -x -D "cn=admin,dc=example,dc=com" -w "admin123" -b "dc=example,dc=com"
注意事项与扩展建议
| 注意点 | 说明 |
|---|---|
| 仅适用于初次安装 | 如果已存在LDAP配置,请先备份 /etc/ldap 和 /var/lib/ldap |
| 密码安全 | 实际生产环境应将密码存储在外部安全变量或Pass |
| 防火墙 | 确保开放端口389(LDAP)或636(LDAPS) |
| TLS/SSL | 如需加密传输,建议后续添加证书配置 |
如果需要支持 Red Hat/CentOS/Rocky Linux,只需将 apt-get 改为 yum 或 dnf,并调整路径(如 /etc/openldap/slapd.d),需要其他扩展(如ACL、复制、Schema定制)的版本,请随时告知!
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播