Newer
Older
ldap / src / ldap-util.sh
#!/bin/bash
########################################################################
## Script    : ldap-util.sh
## Name      : LDAP 用ユーティリティ関数スクリプト
## Version   : 0.0.3
## Copyright : 2019  Nomura Kei
## License   : BSD-2-Clause
########################################################################
SCRIPT_FILE=${0}


########################################################################
##
## 関数定義
##

# =====================================================================
#  指定されたドメインを LDAP で利用する形式に変換します。
#  例) ehobby.jp => dc=ehobby,dc=jp
#
#  ※すでに変換済みの場合は何もしません。
#
#  @param $1 ドメイン名
#  @stdout LDAPで利用する形式
# =====================================================================
#
function domainToDC() {
	DOMAIN=$1
	echo "${DOMAIN}" | sed -e "s/\([^\.]*\)\./dc=\1,/g" -e "s/^\(.*\),\(.*\)$/\1,dc=\2/" -e "s/dc=dc=/dc=/"
}


# =====================================================================
#  登録されているドメインを出力します。
#
#  @stdout 登録されているドメイン(LDAP形式: 例:dc=ehobby,dc=jp)
# =====================================================================
function getDomainDN() {
	ldapsearch -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={1}mdb,cn=config' olcSuffix 2> /dev/null | sed -n "s/^olcSuffix: \(.*\)/\1/p"
}


# =====================================================================
#  登録されているドメインを出力します。
#
#  @stdout 登録されているドメイン(LDAP形式: 例:dc=ehobby,dc=jp)
# =====================================================================
function getRootDN() {
	ldapsearch -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={1}mdb,cn=config' olcRootDN 2> /dev/null | sed -n "s/^olcRootDN: \(.*\)/\1/p"
}