Make user functions more robust

This commit is contained in:
2023-04-07 10:37:03 -04:00
parent 1bde2a2478
commit 49365cb712
3 changed files with 11 additions and 12 deletions

View File

@@ -9,13 +9,12 @@
ask_ok() { ask_ok() {
read -r -p "$* [y/N]: " response read -r -p "$* [y/N]: " response
response=${response,,} response=${response,,}
[[ ! "$response" =~ ^(yes|y)$ ]] && return 1 [[ "$response" =~ ^(yes|y)$ ]]
return 0
} }
is_root() { is_root() {
user=$(whoami) user=$(whoami)
[[ $user != "root" ]] && echo "Script must be run with sudo rights!" && exit 1 [[ $user != "root" ]] && echo "Script must be run with sudo" && exit 1
} }

View File

@@ -26,15 +26,15 @@ fi
ask_ok "Create user $username with password $password?" || exit $? ask_ok "Create user $username with password $password?" || exit $?
restore="no" restore="no"
if [[ -d /mnt/array/home-retired/"$username" ]]; then if [[ -d /mnt/array/home-retired/$username ]]; then
ask_ok "Restore user $username's files from /mnt/array/home-retired/$user?" && restore="yes" ask_ok "Restore user $username's files from /mnt/array/home-retired/$user?" && restore="yes"
fi fi
samba="no" samba="no"
ask_ok "Enable shared file access for user $username?" && group_str="smbgrp," && samba="yes" ask_ok "Enable shared file access for user $username?" && group_str="smbgrp" && samba="yes"
ask_ok "Make user $username an admin?" && \ ask_ok "Make user $username an admin?" && \
group_str+="wheel" group_str+=",wheel"
useradd_cmd+=("-G" "$group_str") useradd_cmd+=("-G" "$group_str")
useradd_cmd+=("$username") useradd_cmd+=("$username")

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Remove a user from the server # Remove a user from the server
# Copyright 2021 Bryan C. Roessler # Copyright 2021-2023 Bryan C. Roessler
parent="${BASH_SOURCE[0]}" parent="${BASH_SOURCE[0]}"
parent=${parent%/*} parent=${parent%/*}
@@ -23,15 +23,15 @@ if ! id -u "$user"; then
exit 1 exit 1
fi fi
! ask_ok "Remove user $user?" && exit $? ask_ok "Remove user $user?" || exit 1
killall -u "$user" killall -u "$user"
if ask_ok "Backup /home/$user?" && [[ -d /home/"$user" ]]; then if ask_ok "Backup /home/$user?" && [[ -d /home/$user ]]; then
if [[ ! -d /mnt/array/home-retired/"$user" ]]; then if [[ ! -d /mnt/array/home-retired/$user ]]; then
btrfs subvolume create /mnt/array/home-retired/"$user" btrfs subvolume create /mnt/array/home-retired/"$user" || exit 1
fi fi
rsync -av /home/"$user"/ /mnt/array/home-retired/"$user" rsync -av /home/"$user"/ /mnt/array/home-retired/"$user" || exit 1
fi fi
smbpasswd -x "$user" smbpasswd -x "$user"