Make user functions more robust
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user