From 2e883c8b850016fa20efc56318ab72a9fa00a4d4 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Thu, 15 Aug 2013 15:18:33 +0200 Subject: [pam-freiburg] hacky umounting of home directory upon closing of last session --- .../pam-freiburg/opt/openslx/scripts/pam_script_ses_close | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_ses_close b/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_ses_close index 2b6f6105..27620ee0 100755 --- a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_ses_close +++ b/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_ses_close @@ -1,9 +1,12 @@ #!/bin/bash -export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin" - [ ! -z "$SLX_DEBUG" ] && echo "[$PAM_TYPE] Closing session for $PAM_USER" -# TODO check if its the last session of the user. +OPENSESSIONS=$(loginctl|grep $PAM_USER|wc -l) +[ ! -z "$SLX_DEBUG" ] && echo "User $PAM_USER has $OPENSESSIONS open sessions." -[ $(id -g $PAM_USER) -ge 1000 ] && umount /home/$PAM_USER +if [ "x$OPENSESSIONS" == "x1" ]; then + # assume its last session, start watchdog in background + [ ! -z "$SLX_DEBUG" ] && echo "Last session beeing closed..." + ( while true; do sleep 1; if [ "x$(loginctl |grep $PAM_USER)" == "x" ]; then [ $(id -g $PAM_USER) -ge 1000 ] && umount /home/s8jobaue; fi; done) & +fi -- cgit v1.2.3-55-g7522