summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2018-01-18 13:46:35 +0100
committerSimon Rettberg2018-01-18 13:46:35 +0100
commit01e008a9577155f6b0875b207e42f1c2bbd087f4 (patch)
treed505e3236867c6953e25b4ebd5a4f1b606c217a1
parent[run-virt] add --sync to slxlog calls (diff)
downloadmltk-01e008a9577155f6b0875b207e42f1c2bbd087f4.tar.gz
mltk-01e008a9577155f6b0875b207e42f1c2bbd087f4.tar.xz
mltk-01e008a9577155f6b0875b207e42f1c2bbd087f4.zip
Fix UID/USER ambiguity in several places
-rwxr-xr-xcore/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script4
-rwxr-xr-xcore/modules/pam/data/opt/openslx/scripts/pam_script_auth7
-rwxr-xr-xcore/modules/pam/data/opt/openslx/scripts/pam_script_ses_close11
-rw-r--r--core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc4
-rw-r--r--core/modules/vmware12/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc4
-rw-r--r--core/rootfs/rootfs-stage32/data/etc/profile20
6 files changed, 34 insertions, 16 deletions
diff --git a/core/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script b/core/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script
index e9752eb4..5ae2432c 100755
--- a/core/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script
+++ b/core/modules/idleaction/data/opt/openslx/scripts/idleaction-cron_script
@@ -48,7 +48,9 @@ if [ -n "${SLX_LOGOUT_TIMEOUT}" ] && [ "${SLX_LOGOUT_TIMEOUT}" -gt 0 ]; then
# Now that we have DISPLAY and XAUTHORITY set, xprintidle should work
if [ -z "$IDLE" ]; then
# Try user's xauth
- USRHOME=$(/usr/bin/getent passwd "$NAME" | awk -F ':' '{print $6}')
+ USERID=$(id -u "$NAME")
+ [ -z "$USERID" ] && USERID="$NAME"
+ USRHOME=$(/usr/bin/getent passwd "$USERID" | awk -F ':' '{print $6}')
export XAUTHORITY="$USRHOME/.Xauthority"
[ -f "$XAUTHORITY" ] && IDLE=$(xprintidle)
fi
diff --git a/core/modules/pam/data/opt/openslx/scripts/pam_script_auth b/core/modules/pam/data/opt/openslx/scripts/pam_script_auth
index e977185e..f7e12acf 100755
--- a/core/modules/pam/data/opt/openslx/scripts/pam_script_auth
+++ b/core/modules/pam/data/opt/openslx/scripts/pam_script_auth
@@ -6,7 +6,12 @@ export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/o
# check if the script runs as root
[ "x$(whoami)" != "xroot" ] && exit 0
-PASSWD=$(getent passwd "$PAM_USER")
+USER_UID=$(id -u "$PAM_USER")
+if [ -n "$USER_UID" ]; then
+ PASSWD=$(getent passwd "$USER_UID")
+else
+ PASSWD=$(getent passwd "$PAM_USER")
+fi
USER_NAME=$(echo "$PASSWD" | awk -F ':' '{print $1}')
USER_UID=$(echo "$PASSWD" | awk -F ':' '{print $3}')
USER_GID=$(echo "$PASSWD" | awk -F ':' '{print $4}')
diff --git a/core/modules/pam/data/opt/openslx/scripts/pam_script_ses_close b/core/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
index e4a7c1b4..0c0b804f 100755
--- a/core/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
+++ b/core/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
@@ -29,6 +29,9 @@ fi
# do not kill all root processes :)
[ "x${PAM_USER}" = "xroot" ] && exit 0
+USERID=$(id -u "$PAM_USER")
+[ -z "$USERID" ] && USERID="$PAM_USER"
+
# Async block: Check if user has no session open anymore, if not
# kill any remaining processes belonging to the user and unmount
# everything at $USERHOME and below.
@@ -41,17 +44,17 @@ fi
if [ "$SESSIONCOUNT" = "0" ]; then
# last session, close all ghost user processes
- pkill -u "${PAM_USER}"
+ pkill -u "${USERID}"
# check if user's processes are still running
for TIMEOUT in 1 1 2 FAIL; do
- if ! ps -o pid,s -u "$PAM_USER" -U "$PAM_USER" | grep -q -v -E "PID|Z"; then
+ if ! ps -o pid,s -u "$USERID" -U "$USERID" | grep -q -v -E "PID|Z"; then
# nothing running anymore
break
fi
if [ "$TIMEOUT" = "FAIL" ]; then
# still something running, send SIGKILL
- pkill -9 -u "${PAM_USER}"
+ pkill -9 -u "${USERID}"
else
# give some time
sleep "${TIMEOUT}"
@@ -65,7 +68,7 @@ fi
if [ "$SESSIONCOUNT" = "0" ]; then
# unmount the home directory structure
- USER_HOME=$(getent passwd "$PAM_USER" | awk -F ':' '{print $6}')
+ USER_HOME=$(getent passwd "$USERID" | awk -F ':' '{print $6}')
if [ -n "$USER_HOME" ]; then
for TIMEOUT in 0 0 2 2 FAIL; do
OK=yes
diff --git a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
index 85fafc9f..d7ad77c6 100644
--- a/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
+++ b/core/modules/vmware/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
@@ -27,7 +27,9 @@ declare -rg VM_CONF_DIR="/tmp/virt/vmware/${USER}.$$"
declare -rg VM_RUN_FILE="${VM_CONF_DIR}/run-vmware.conf"
# Users vmware config folder
-[ -z "${HOME}" ] && declare -rg HOME=$(getent passwd "$(whoami)" | awk -F ':' '{print $6}')
+[ -z "$UID" ] && UID=$(id -u)
+[ -z "${HOME}" ] && declare -rg HOME=$(getent passwd "$UID" | awk -F ':' '{print $6}')
+[ -z "${HOME}" ] && slxlog "run-virt-vmware-home" "Could not get home directory of user $(whoami) ($UID)"
declare -rg VM_HOME="${HOME}/.vmware"
# mltk generates a vmware config file with several version infos for vmware/player, read it
diff --git a/core/modules/vmware12/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc b/core/modules/vmware12/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
index 85fafc9f..d7ad77c6 100644
--- a/core/modules/vmware12/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
+++ b/core/modules/vmware12/data/opt/openslx/vmchooser/plugins/vmware/includes/init_core.inc
@@ -27,7 +27,9 @@ declare -rg VM_CONF_DIR="/tmp/virt/vmware/${USER}.$$"
declare -rg VM_RUN_FILE="${VM_CONF_DIR}/run-vmware.conf"
# Users vmware config folder
-[ -z "${HOME}" ] && declare -rg HOME=$(getent passwd "$(whoami)" | awk -F ':' '{print $6}')
+[ -z "$UID" ] && UID=$(id -u)
+[ -z "${HOME}" ] && declare -rg HOME=$(getent passwd "$UID" | awk -F ':' '{print $6}')
+[ -z "${HOME}" ] && slxlog "run-virt-vmware-home" "Could not get home directory of user $(whoami) ($UID)"
declare -rg VM_HOME="${HOME}/.vmware"
# mltk generates a vmware config file with several version infos for vmware/player, read it
diff --git a/core/rootfs/rootfs-stage32/data/etc/profile b/core/rootfs/rootfs-stage32/data/etc/profile
index cbc5dba2..125e7195 100644
--- a/core/rootfs/rootfs-stage32/data/etc/profile
+++ b/core/rootfs/rootfs-stage32/data/etc/profile
@@ -28,13 +28,17 @@ if [ "$PS1" ]; then
fi
# Stuff we might wanna know
-PWENT=`getent passwd $USER`
-export USER=`echo "$PWENT" | awk -F ':' '{print $1}'`
-export GID=`echo "$PWENT" | awk -F ':' '{print $4}'`
-export HOME=`echo "$PWENT" | awk -F ':' '{print $6}'`
-export GROUP=`id -gn`
-export LOGNAME=$USER
-export HOSTNAME=`hostname`
+PWENT=
+[ -n "$UID" ] && PWENT=`getent passwd "$UID"`
+[ -z "$PWENT" ] && [ -n "$USER" ] && PWENT=`getent passwd "$USER"`
+if [ -n "$PWENT" ]; then
+ export USER=`echo "$PWENT" | awk -F ':' '{print $1}'`
+ export GID=`echo "$PWENT" | awk -F ':' '{print $4}'`
+ export HOME=`echo "$PWENT" | awk -F ':' '{print $6}'`
+ export GROUP=`id -gn`
+ export LOGNAME=$USER
+ export HOSTNAME=`hostname`
+fi
# set TERM to xterm on SSH sessions
[ -n "$SSH_TTY" ] && export TERM=xterm
@@ -42,7 +46,7 @@ export HOSTNAME=`hostname`
# Source configuration files from /etc/profile.d
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
- . $i
+ . "$i"
fi
done