alterator-openldap-functions-0.3.1/000075500000000000000000000000001203132130500173025ustar00rootroot00000000000000alterator-openldap-functions-0.3.1/alterator-openldap-functions000064400000000000000000000141401203132130500250300ustar00rootroot00000000000000#!/bin/sh -efu # please comment here about this library if [ -z "${__included_alterator_openldap_functions}" ]; then __included_alterator_openldap_functions=1 . shell-config . shell-error . shell-quote . shell-signal # delimeters rdelim='[[:space:]]\+' wdelim=' ' # config files SLAPD_CONF="/etc/openldap/slapd.conf" PAMLDAP_CONF="/etc/pam_ldap.conf" SYSCONFIG_CONF="/etc/sysconfig/ldap" # blank samba sid SID="S-1-0-0" # min max uid gid uid_min="5000" gid_min="5000" uid_max="9000" gid_max="9000" # mail spool dir ENABLE_HOMEDIR= ENABLE_SPOOL= SPOOL="/var/spool/mail" ############################################################################## # read config functions ############################################################################## #reading some config file $1 for $2 variable and removing " from its value read_config() { [ -e "$1" ] || fatal "read_config: '$1' file not found" shell_config_get "$1" "$2" "$rdelim"|tr -d '"' } read_dn_conf() { read_config "$DN_CONF" "$1" } read_slapd_conf() { read_config "$SLAPD_CONF" "$1" } read_pamldap_conf() { read_config "$PAMLDAP_CONF" "$1" } read_sysconfig() { local rdelim="[[:blank:]]*=[[:blank:]]*" read_config "$SYSCONFIG_CONF" "$1" } ############################################################################## ############################################################################## # write config functions ############################################################################## #write $2 variable into config file $1 using wdelim as delimeter write_config() { [ -e "$1" ] || fatal "write_config: '$1' file not found" shell_config_set "$1" "$2" "$3" "$rdelim" "$wdelim" } write_sysconfig() { local wdelim="=" local rdelim="=" write_config "$SYSCONFIG_CONF" "$1" "$2" } ############################################################################## ############################################################################## # host_2_dn dn_2_host ############################################################################## # host.domain.com => dc=host,dc=domain,dc=com host_2_dn() { echo "$1"|sed ' s/^/dc=/ s/\./,dc=/g' } # dc=host,dc=domain,dc=com => host.domain.com dn_2_host() { echo "$1"|sed ' s/^dc=// s/,dc=/\./g' } ############################################################################## ############################################################################## # slapd sysconfig functions ############################################################################## tls_ssl_status() { local url="$(read_sysconfig SLAPDURLLIST)" echo "$url" |grep -qw 'ldaps://' } localhost_status() { local url="$(read_sysconfig SLAPDURLLIST)" echo "$url" |egrep -qw 'ldap[si]?://(127\.0\.0\.1|localhost)(:[0-9]+)?/' } write_sysconfig_url() { write_sysconfig SLAPDURLLIST "$1" } ############################################################################## ############################################################################## # slapd daemon functions ############################################################################## # return # 0 if all right # 1 if pidfile exists but daemon died # 3 if daemon stoped slapd_daemon_status() { local IFS=' ' local runlevel="$(/sbin/runlevel | cut -c3)" LANG=C LC_ALL=C /sbin/chkconfig --list slapd|grep -qs "${runlevel}:on" || return 1 /sbin/service slapd status >/dev/null || return 1 } slapd_daemon_on() { slapd_daemon_status && return 0 /sbin/chkconfig slapd on /sbin/service slapd start >&2 || : } slapd_daemon_off() { /sbin/service slapd condstop >&2 /sbin/chkconfig slapd off } slapd_daemon_condrestart() { /sbin/service slapd condrestart >&2 } ############################################################################## ############################################################################## # base_rootdn_rootpw functions ############################################################################## base_rootdn_rootpw() { [ -z "$DN_CONF" ] && fatal "base_rootdn_rootpw: DN_CONF not set" [ ! -r "$DN_CONF" ] && fatal "base_rootdn_rootpw: unable to open file '$DN_CONF'" base="$(read_dn_conf suffix)" rootdn="$(read_dn_conf rootdn)" rootpw="$(read_dn_conf rootpw)" [ -z "$base" ] && fatal "base_rootdn_rootpw: basedn not set in conf '$DN_CONF'" [ -z "$rootdn" ] && fatal "base_rootdn_rootpw: rootdn not set in conf '$DN_CONF'" [ -z "$rootpw" ] && fatal "base_rootdn_rootpw: rootpw not set in conf '$DN_CONF'" rootpw="-w $rootpw" export base rootdn rootpw } ############################################################################## ############################################################################## # set_ldap_config ############################################################################## set_ldap_config() { # If DN_CONF is not set, try to detect default LDAP base if [ -z "$DN_CONF" ] then base=$(/usr/sbin/system-auth status | cut -f2 -d' ') [ -z "$base" ] || export DN_CONF=$(ldap-dn find "$base") [ -z "$DN_CONF" ] && warning "unable autodetect LDAP configuration" fi # Check if Kerberos is enabled if [ "$(shell_config_get /etc/sysconfig/system SERVER_ROLE)" = "master" ]; then export ENABLE_KRB="yes" fi # Fill environment variables base_rootdn_rootpw } ############################################################################## # get_ldap_version ############################################################################## get_ldap_version() { rpm -q ldap-user-tools --qf '%{name}: %{version}-%{release}\n' 2>/dev/null rpm -qf "/usr/bin/ldapadd" --qf '%{name}: %{version}-%{release}\n' 2>/dev/null } ############################################################################## # samba helper functions ############################################################################## get_sid() { local sid="$(net getlocalsid | cut -f2 -d':'| sed -e "s/[[:blank:]]//g" 2>/dev/null)" [ -n "$sid" ] && SID="$sid" } ############################################################################## fi #__included_alterator_openldap_functions