diff options
Diffstat (limited to 'core/modules/vmchooser2/data/opt/openslx/pam/hooks/session-open.d/50-move-admintoken.sh')
-rwxr-xr-x | core/modules/vmchooser2/data/opt/openslx/pam/hooks/session-open.d/50-move-admintoken.sh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/core/modules/vmchooser2/data/opt/openslx/pam/hooks/session-open.d/50-move-admintoken.sh b/core/modules/vmchooser2/data/opt/openslx/pam/hooks/session-open.d/50-move-admintoken.sh new file mode 100755 index 00000000..578b1046 --- /dev/null +++ b/core/modules/vmchooser2/data/opt/openslx/pam/hooks/session-open.d/50-move-admintoken.sh @@ -0,0 +1,20 @@ +#!/bin/ash +# ^ actually sourced + +if [ "$PAM_SERVICE" != "su" ] && [ "$PAM_SERVICE" != "sudo" ]; then + md5=$( printf "%s" "$PAM_USER" | md5sum ) + file="/run/openslx/lightdm/${md5:0:32}" + if [ -s "$file" ]; then + getent="$( getent passwd "$PAM_USER" )" + USER_UID="$( printf "%s" "$getent" | awk -F: '{print $3; exit}' )" + udir="/run/user/$USER_UID" + if ! [ -d "$udir" ]; then + USER_GID="$( printf "%s" "$getent" | awk -F: '{print $4; exit}' )" + mkdir -p "$udir" + chmod 0700 "$udir" + chown "${USER_UID}:${USER_GID}" "$udir" + fi + mv -f "$file" "$udir/cow-token" + chown "$USER_UID" "$udir/cow-token" + fi +fi |