summaryrefslogtreecommitdiffstats
path: root/remote/modules/pam
diff options
context:
space:
mode:
authorJonathan Bauer2013-11-26 15:19:10 +0100
committerJonathan Bauer2013-11-26 15:19:10 +0100
commit940f4a22eb6f3da452bb7fac00e4795abcb0a00c (patch)
tree44a9e34a40d3854bc74a1979692165e9f8f2e466 /remote/modules/pam
parentMerge branch 'master' of git.openslx.org:openslx-ng/tm-scripts (diff)
downloadtm-scripts-940f4a22eb6f3da452bb7fac00e4795abcb0a00c.tar.gz
tm-scripts-940f4a22eb6f3da452bb7fac00e4795abcb0a00c.tar.xz
tm-scripts-940f4a22eb6f3da452bb7fac00e4795abcb0a00c.zip
[pam] moved generic files back to pam module data directory
Diffstat (limited to 'remote/modules/pam')
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close26
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open40
2 files changed, 66 insertions, 0 deletions
diff --git a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
new file mode 100755
index 00000000..a6d65afa
--- /dev/null
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+echo "[${PAM_TYPE}] Closing session for ${PAM_USER}"
+
+OPENSESSIONS=$(loginctl|grep "${PAM_USER}" |wc -l)
+
+if [ "x${OPENSESSIONS}" == "x1" ]; then
+ # last sessions, close all ghost user processes
+ pkill -u "${PAM_USER}"
+
+ # check if it worker
+ while ps aux | grep -v grep | grep -q "${PAM_USER}"; do
+ sleep 1
+ done
+ # all done, kill it again to be sure
+ pkill -9 -u "${PAM_USER}"
+
+ # unmount the home directory structure
+ umount "/home/${PAM_USER}/PERSISTENT" || \
+ echo "Could not unmount '/home/${PAM_USER}/PERSISTENT'."
+
+ umount "/home/${PAM_USER}" || \
+ echo "Could not unmount '/home/${PAM_USER}'."
+fi
+
+exit 0
diff --git a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
new file mode 100755
index 00000000..6f0e0f9b
--- /dev/null
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/usr/sbin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/bin"
+
+echo "[${PAM_TYPE}] Opening session for ${PAM_USER}"
+
+PERSISTENT_MOUNT_SCRIPT="/opt/openslx/scripts/pam_script_mount_persistent"
+TEMP_HOME_DIR="/home/${PAM_USER}"
+
+# check if we already mounted the home directory
+if [ ! -z "$(mount|grep ${TEMP_HOME_DIR})" ]; then
+ echo "[${PAM_TYPE}] Home directory of '${PAM_USER}' is already mounted."
+ exit 0
+fi
+
+# no home, lets create it
+mkdir -p "${TEMP_HOME_DIR}" || \
+ { echo "Could not create '${TEMP_HOME_DIR}'."; exit 1; }
+chown -R "${PAM_USER}" "${TEMP_HOME_DIR}" || \
+ { echo "Could not chown '${TEMP_HOME_DIR}' to ${PAM_USER}."; exit 1; }
+
+# now make it a tmpfs
+mount -t tmpfs -o size=100m tmpfs "${TEMP_HOME_DIR}" || \
+ { echo "Could not make a tmpfs on ${TEMP_HOME_DIR}"; exit 1; }
+
+# create a WARNING.txt for the user
+cat > "${TEMP_HOME_DIR}/WARNING.txt" << EOF
+ATTENTION: This is the non-persistant home directory!
+Files saved here will be lost on shutdown.
+Your real home is under /home/<user>/PERSISTENT.
+Please save your files there.
+EOF
+
+# now lets see if we have a persistent directory
+[ ! -e "${PERSISTENT_MOUNT_SCRIPT}" ] && exit 0
+
+. "${PERSISTENT_MOUNT_SCRIPT}" || \
+ { echo "Could not source ${PERSISTENT_MOUNT_SCRIPT}."; exit 1; }
+
+ # PERSISTENT_MOUNT_SCRIPT must decide on the return code.