Add user mode to reset x2go script
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# This script will reset x2go sessions to a working state
|
# This script will reset x2go sessions to a working state
|
||||||
|
# Use --all to reset all user X2Go sessions
|
||||||
# Copyright Bryan C. Roessler
|
# Copyright Bryan C. Roessler
|
||||||
|
|
||||||
parent="${BASH_SOURCE[0]}"
|
parent="${BASH_SOURCE[0]}"
|
||||||
@@ -7,24 +8,32 @@ parent=${parent%/*}
|
|||||||
|
|
||||||
[[ -f $parent/script-functions ]] && . "$parent"/script-functions || exit 1
|
[[ -f $parent/script-functions ]] && . "$parent"/script-functions || exit 1
|
||||||
|
|
||||||
is_root
|
echo "This script supports one optional argument, a username (or --all for all users)"
|
||||||
|
|
||||||
echo "This script supports one optional argument, a username"
|
USER_MODE=0
|
||||||
|
USER_LIST=()
|
||||||
user_list=()
|
if [[ $EUID -gt 0 ]]; then
|
||||||
if [[ $# -eq 1 ]]; then
|
echo "This script should normally be run as root (with sudo)"
|
||||||
if [[ $1 == '--all' ]]; then
|
echo "Attempting to run in user mode"
|
||||||
for i in /home/*; do
|
USER_MODE=1
|
||||||
user_list+=("${i##*/}")
|
USER_LIST+=($(whoami))
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
prompt user
|
if [[ $# -eq 1 ]]; then
|
||||||
user_list+=("$user")
|
if [[ $1 == '--all' ]]; then
|
||||||
unset user
|
for i in /home/*; do
|
||||||
|
USER_LIST+=("${i##*/}")
|
||||||
|
done
|
||||||
|
else
|
||||||
|
USER_LIST+=("$1")
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
prompt user
|
||||||
|
USER_LIST+=("$user")
|
||||||
|
unset user
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for user in "${user_list[@]}"; do
|
for user in "${USER_LIST[@]}"; do
|
||||||
# Clean local user cache
|
# Clean local user cache
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
caches=(/home/"$user"/.x2go/C-"$user"-* /home/"$user"/.xsession-x2go-*)
|
caches=(/home/"$user"/.x2go/C-"$user"-* /home/"$user"/.xsession-x2go-*)
|
||||||
@@ -35,7 +44,11 @@ for user in "${user_list[@]}"; do
|
|||||||
echo "Removed: ${caches[*]} for user $user"
|
echo "Removed: ${caches[*]} for user $user"
|
||||||
fi
|
fi
|
||||||
# Clean X2Go sessions
|
# Clean X2Go sessions
|
||||||
mapfile -t sessions < <(x2golistsessions_root | grep "$user"| cut -f2 -d'|')
|
if (( USER_MODE )); then
|
||||||
|
mapfile -t sessions < <(x2golistsessions | grep "$user"| cut -f2 -d'|')
|
||||||
|
else
|
||||||
|
mapfile -t sessions < <(x2golistsessions_root | grep "$user"| cut -f2 -d'|')
|
||||||
|
fi
|
||||||
if [[ ${#sessions} -gt 0 ]]; then
|
if [[ ${#sessions} -gt 0 ]]; then
|
||||||
ask_ok "Terminate X2Go sessions for user $user?" &&
|
ask_ok "Terminate X2Go sessions for user $user?" &&
|
||||||
for session in "${sessions[@]}"; do
|
for session in "${sessions[@]}"; do
|
||||||
|
|||||||
Reference in New Issue
Block a user