summaryrefslogtreecommitdiffstats
path: root/remote/modules/pam
diff options
context:
space:
mode:
authorSimon Rettberg2013-11-27 15:29:06 +0100
committerSimon Rettberg2013-11-27 15:29:06 +0100
commit9290cc05e741a99a880cf3a6a3dc18dc5ef35a6f (patch)
treeafdc8fd6f864f9d4eff6d00989b1dfc3806651d9 /remote/modules/pam
parentMerge branch 'master' of simonslx:openslx-ng/tm-scripts (diff)
downloadtm-scripts-9290cc05e741a99a880cf3a6a3dc18dc5ef35a6f.tar.gz
tm-scripts-9290cc05e741a99a880cf3a6a3dc18dc5ef35a6f.tar.xz
tm-scripts-9290cc05e741a99a880cf3a6a3dc18dc5ef35a6f.zip
[pam] Remote logging of login/out
Diffstat (limited to 'remote/modules/pam')
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close10
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open17
2 files changed, 18 insertions, 9 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
index a6d65afa..fda9633e 100755
--- a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
@@ -2,7 +2,10 @@
echo "[${PAM_TYPE}] Closing session for ${PAM_USER}"
-OPENSESSIONS=$(loginctl|grep "${PAM_USER}" |wc -l)
+# NSA needs to know
+slxlog "session-close" "$PAM_USER logged out on $PAM_TTY"
+
+OPENSESSIONS=$(loginctl | grep "${PAM_USER}" | wc -l)
if [ "x${OPENSESSIONS}" == "x1" ]; then
# last sessions, close all ghost user processes
@@ -17,10 +20,11 @@ if [ "x${OPENSESSIONS}" == "x1" ]; then
# unmount the home directory structure
umount "/home/${PAM_USER}/PERSISTENT" || \
- echo "Could not unmount '/home/${PAM_USER}/PERSISTENT'."
+ echo "Could not unmount '/home/${PAM_USER}/PERSISTENT'."
umount "/home/${PAM_USER}" || \
- echo "Could not unmount '/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
index be890e06..13f0cd3b 100755
--- a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
@@ -1,5 +1,6 @@
#!/bin/bash
+# Needed as pam_script clears PATH
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}"
@@ -7,24 +8,27 @@ echo "[${PAM_TYPE}] Opening session for ${PAM_USER}"
PERSISTENT_MOUNT_SCRIPT="/opt/openslx/scripts/pam_script_mount_persistent"
TEMP_HOME_DIR="/home/${PAM_USER}"
+# NSA needs to know
+slxlog "session-open" "$PAM_USER logged in on $PAM_TTY"
+
# check if PAM_USER is root and skip if it is the case
[ "x${PAM_USER}" == "xroot" ] && exit 0
# check if we already mounted the home directory
-if [ ! -z "$(mount|grep ${TEMP_HOME_DIR})" ]; then
+if mount | grep -q "$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; }
+ { 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; }
+ { 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; }
+ { 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
@@ -38,6 +42,7 @@ EOF
[ ! -e "${PERSISTENT_MOUNT_SCRIPT}" ] && exit 0
. "${PERSISTENT_MOUNT_SCRIPT}" || \
- { echo "Could not source ${PERSISTENT_MOUNT_SCRIPT}."; exit 1; }
+ { echo "Could not source ${PERSISTENT_MOUNT_SCRIPT}."; exit 1; }
+
+# TODO: Symlinks mkdirs for certain programs etc.
- # PERSISTENT_MOUNT_SCRIPT must decide on the return code.