#!/bin/sh

configure_zsh() {
    # Stop if zsh is not present
    if [ ! -x /usr/bin/zsh ]; then
	return
    fi
    # Stop if user has opted out of zsh
    if echo "${LIVE_CONFIG_CMDLINE}" | grep -qs 'nozsh'; then
	return
    fi
    chsh --shell /usr/bin/zsh kali
    chsh --shell /usr/bin/zsh root
}

configure_usergroups() {
    # Ensure those groups exist
    addgroup --system kaboxer || true
    addgroup --system wireshark || true

    # adm - read access to log files
    # dialout - for serial port access
    # kaboxer - for kaboxer
    # vboxsf - shared folders for virtualbox guest
    # wireshark - capture sessions without being root
    kali_groups="adm dialout kaboxer vboxsf wireshark"

    for grp in $kali_groups; do
	getent group $grp >/dev/null || continue
	usermod -a -G $grp kali
    done
}

# Avoid configuring multiple times in case persistence is enabled
if [ -e /var/lib/live/config/kali-user-setup ]; then
    exit 0
fi

# Set "kali" as password for the user kali
usermod -p 'AqLUsDitNnTsw' kali

# Change default shell to zsh
configure_zsh

# Add kali user to additional groups
configure_usergroups

# Remember that this script has been run
touch /var/lib/live/config/kali-user-setup
