Files
hartman-server/script-user-remove

45 lines
843 B
Bash
Executable File

#!/usr/bin/env bash
# Remove a user from the server
# Copyright 2021 Bryan C. Roessler
parent="${BASH_SOURCE[0]}"
parent=${parent%/*}
unset user
[[ -f "$parent"/functions ]] && . "$parent"/functions || exit 1
is_root
if [[ $# -eq 1 ]]; then
user="$1"
else
echo "Must provide exactly one argument (username)"
exit 1
fi
if ! id -u "$user"; then
echo "User $user does not exist"
exit 1
fi
! ask_ok "Remove user $user?" && exit $?
killall -u "$user"
if ask_ok "Backup /home/$user?" && [[ -d /home/"$user" ]]; then
if [[ ! -d /mnt/array/home-retired/"$user" ]]; then
btrfs subvolume create /mnt/array/home-retired/"$user"
fi
rsync -av /home/"$user"/ /mnt/array/home-retired/"$user"
fi
smbpasswd -x "$user"
sed -i "/$user/d" /etc/subuid
sed -i "/$user/d" /etc/subgid
userdel -fr "$user"
exit $?