62 lines
1.4 KiB
Bash
62 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
# set -x
|
|
|
|
HOST=${HOST:-/host}
|
|
|
|
mkdir -p "$HOST/var/log/sssd/uninstall"
|
|
mv /var/log /var/log-aside && ln -s "$HOST/var/log/sssd/uninstall" /var/log
|
|
|
|
export _SYSTEMCTL_LITE_LOGFILE="$HOST/var/log/sssd/uninstall/systemctl.log"
|
|
touch $_SYSTEMCTL_LITE_LOGFILE
|
|
|
|
echo "Initializing configuration context from host ..."
|
|
( cd "$HOST" && while read f ; do
|
|
if [ -e "$f" ] ; then
|
|
cp --parents -rp -t / "$f"
|
|
fi
|
|
done ) < /etc/host-data-list
|
|
|
|
mkdir -p /etc/sssd/systemctl-lite-enabled
|
|
rm -rf /etc/systemctl-lite-enabled
|
|
ln -s /etc/sssd/systemctl-lite-enabled /etc/systemctl-lite-enabled
|
|
|
|
if [ -n "$1" ] ; then
|
|
if [ "$1" == 'realm' -o "$1" == "/sbin/realm" -o "$1" == "/usr/sbin/realm" ] ; then
|
|
COMMAND="$1 $2"
|
|
shift ; shift
|
|
params=("--install=/")
|
|
systemctl start dbus.service
|
|
elif [ "${1#-}" == "$1" ] ; then
|
|
COMMAND="$1"
|
|
shift
|
|
fi
|
|
fi
|
|
|
|
if [ -z "$COMMAND" ] ; then
|
|
if [ -f "$HOST/etc/$NAME/realm-join-options" ] ; then
|
|
COMMAND='realm leave'
|
|
params=("--install=/")
|
|
else
|
|
COMMAND='ipa-client-install -U --uninstall'
|
|
fi
|
|
fi
|
|
|
|
$COMMAND "${params[@]}"
|
|
|
|
rm -rf /var/lib/sss/{mc,pipes}/*
|
|
|
|
echo "Copying new configuration to host ..."
|
|
while read f ; do
|
|
( cd "$HOST" && find "$f" ) | while read g ; do
|
|
if ! [ -e "/$g" ] ; then
|
|
echo "Removing /$g"
|
|
rm -rf "$HOST/$g"
|
|
fi
|
|
done
|
|
if [ -e "$f" ] ; then
|
|
cp --parents -rp -t "$HOST" "$f"
|
|
fi
|
|
done < /etc/host-data-list
|
|
|