|
|
#!/bin/bash
|
|
|
#
|
|
|
# Initial script for UBLinux
|
|
|
# This script are launching before starting init from initrd script
|
|
|
# Current dir allways must be set to root (/)
|
|
|
# All system path must be relative, except initrd dirs
|
|
|
|
|
|
ENABLED=yes
|
|
|
[[ ${ENABLED} == "yes" ]] || exit 0
|
|
|
DEBUGMODE=no
|
|
|
|
|
|
PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin
|
|
|
|
|
|
[[ -d /usr/lib/ublinux ]] && { unset ROOTFS; unset CMD_CHROOT; } || { ROOTFS='.'; CMD_CHROOT='chroot . '; }
|
|
|
SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
|
|
|
SOURCE=${ROOTFS}/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
|
|
|
debug_mode "$0" "$@"
|
|
|
|
|
|
SYSCONF="${ROOTFS}${SYSCONF}"
|
|
|
SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
SOURCE=${SYSCONF}/network; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
|
|
|
|
|
|
# [[ -z ${KERBEROS_REALM} ]] && KERBEROS_REALM=${DOMAIN^^}
|
|
|
# [[ -z ${SAMBADOMAIN} ]] && SAMBADOMAIN=$(echo ${KERBEROS_REALM} | awk -F . '{print $1}')
|
|
|
|
|
|
# sed -i s/kerberos.ublinux.ru/$ADSERVER/ etc/krb5.conf
|
|
|
# sed -i s/LOCAL.UBLINUX.RU/$KERBEROS_REALM/ etc/krb5.conf
|
|
|
# sed -i s/local.ublinux.ru/$DOMAIN/ etc/krb5.conf
|
|
|
#
|
|
|
# sed -i '/realm =/d' etc/samba/smb.conf
|
|
|
# sed -i '/security =/d' etc/samba/smb.conf
|
|
|
# sed -i '/password server =/d' etc/samba/smb.conf
|
|
|
# sed -i '/\[global\]/ s/$/'"\n realm = ${KERBEROS_REALM}\n security = ADS\n password server = ${ADSERVER}"/ etc/samba/smb.conf
|
|
|
#
|
|
|
#
|
|
|
#if [[ -n "${SAMBADOMAIN}" ]]; then
|
|
|
# sed -i s/"workgroup = .*"/"workgroup = ${SAMBADOMAIN}"/ etc/samba/smb.conf
|
|
|
# sed -i s/"^NT_DOMAIN=.*"/"NT_DOMAIN=${SAMBADOMAIN}"/ etc/ntlmaps.cfg
|
|
|
#fi
|
|
|
|
|
|
exec_domain(){
|
|
|
[[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift
|
|
|
[[ -n ${COMMAND} ]] || COMMAND="set="
|
|
|
local PARAM="$@"
|
|
|
[[ $(declare -p DOMAIN 2>/dev/null) =~ "declare -A" ]] || declare -A DOMAIN
|
|
|
if [[ -n ${PARAM} ]]; then
|
|
|
unset DOMAIN
|
|
|
declare -A DOMAIN
|
|
|
[[ ${PARAM%%=*} =~ [!\$%\&()*+,./:\;\<\=\>?\@\^\{|\}~-] ]] || eval "${PARAM%%=*}=\${PARAM#*=}"
|
|
|
fi
|
|
|
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]]; then
|
|
|
if [[ -n ${DOMAIN} && ${DOMAIN[client]} == "realmd_sssd" ]]; then
|
|
|
if [[ -f ${ROOTFS}/etc/krb5.keytab ]]; then
|
|
|
${CMD_CHROOT} /usr/bin/ubdomain-client --quiet configure
|
|
|
#[[ -f ${ROOTFS}/etc/krb5.conf && -f ${ROOTFS}/etc/sssd/sssd.conf ]] || ${CMD_CHROOT} /usr/bin/ubdomain-client --quite configure #2>/dev/null
|
|
|
[[ -f ${ROOTFS}/usr/lib/systemd/system/sssd.service ]] && ln -sf /usr/lib/systemd/system/sssd.service ${ROOTFS}/etc/systemd/system/multi-user.target.wants/sssd.service
|
|
|
fi
|
|
|
elif [[ -n ${DOMAIN} && ${DOMAIN[client]} == "realmd_winbind" ]]; then
|
|
|
true
|
|
|
elif [[ -n ${DOMAIN} && ${DOMAIN[client]} == "samba" ]]; then
|
|
|
true
|
|
|
fi
|
|
|
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then
|
|
|
${CMD_CHROOT} /usr/bin/ubdomain-client unconfigure
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
domain_configure_live(){
|
|
|
# Если выполнение в initrd, то выход
|
|
|
[[ -z ${ROOTFS} ]] || return 0
|
|
|
[[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift
|
|
|
[[ -n ${COMMAND} ]] || COMMAND="set="
|
|
|
local PARAM="$@"
|
|
|
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]]; then
|
|
|
[[ -z ${DOMAIN} ]] && return 0
|
|
|
${ROOTFS}/usr/bin/ubdomain-client configure
|
|
|
systemctl restart sssd.service
|
|
|
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then
|
|
|
[[ -z ${DOMAIN} ]] && return 0
|
|
|
${ROOTFS}/usr/bin/ubdomain-client configure
|
|
|
systemctl restart sssd.service
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
|
|
|
################
|
|
|
##### MAIN #####
|
|
|
################
|
|
|
|
|
|
# Если файл подключен как ресурс с функциями, то выйти
|
|
|
return 0 2>/dev/null && return 0
|
|
|
if [[ -z $@ ]]; then
|
|
|
while read -r FUNCTION; do
|
|
|
$"${FUNCTION##* }"
|
|
|
done < <(declare -F | grep "declare -f exec_")
|
|
|
else
|
|
|
FUNCTION=
|
|
|
while [[ $# -gt 0 ]]; do
|
|
|
[[ -z ${1} ]] || { declare -f ${1} &>/dev/null && FUNCTION+="; ${1}" || FUNCTION+=" '${1}'"; }
|
|
|
shift
|
|
|
done
|
|
|
eval ${FUNCTION#*; }
|
|
|
fi
|