summaryrefslogtreecommitdiffstats
path: root/remote/modules/pam/data/opt/openslx/scripts
diff options
context:
space:
mode:
authorJonathan Bauer2013-07-31 17:21:52 +0200
committerJonathan Bauer2013-07-31 17:21:52 +0200
commit700683f7d281d09ad4a60461e2bfd9a354119e1a (patch)
tree50c0afd580b5b4e22d8aed65c332e40fe64ec0e6 /remote/modules/pam/data/opt/openslx/scripts
parent[pam] update README of non-persisent home directory skeleton (diff)
downloadtm-scripts-700683f7d281d09ad4a60461e2bfd9a354119e1a.tar.gz
tm-scripts-700683f7d281d09ad4a60461e2bfd9a354119e1a.tar.xz
tm-scripts-700683f7d281d09ad4a60461e2bfd9a354119e1a.zip
[pam] moved pam-script scripts to /opt/openslx/scripts
Diffstat (limited to 'remote/modules/pam/data/opt/openslx/scripts')
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close9
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open30
2 files changed, 39 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..2b6f6105
--- /dev/null
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close
@@ -0,0 +1,9 @@
+#!/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.
+
+[ $(id -g $PAM_USER) -ge 1000 ] && umount /home/$PAM_USER
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..f5ad8af1
--- /dev/null
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
@@ -0,0 +1,30 @@
+#!/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] Opening session for $PAM_USER"
+
+if [ $(id -g $PAM_USER) -ge 1000 ]; then
+ [ ! -z "$SLX_DEBUG" ] && echo "[$PAM_TYPE] Mounting home directory for $PAM_USER"
+
+ # generate keytab
+ sslconnect npserv.ruf.uni-freiburg.de:3 > /etc/krb5.keytab
+ chmod 600 /etc/krb5.keytab
+
+ # determine fileserver and share for home directories
+ ldapsearch -x -LLL uid="$PAM_USER" homeDirectory rufFileserver > /tmp/ldapsearch."$PAM_USER"
+
+ FILESERVER=$(cat /tmp/ldapsearch.$PAM_USER | grep rufFileserver | cut -d" " -f2)
+ VOLUME=$(cat /tmp/ldapsearch.$PAM_USER | grep homeDirectory | cut -d" " -f2)
+
+ # now we can mount the home directory
+ mkdir -p /home/$PAM_USER
+ if mount -t nfs4 -o rw,nosuid,nodev,nolock,intr,hard,sloppy,sec=krb5p "$FILESERVER":"$VOLUME" /home/"$PAM_USER"; then
+ exit 0
+ else
+ echo "Failed to mount home directory for $PAM_USER"
+ exit 1
+ fi
+
+fi
+