diff options
author | Simon Rettberg | 2013-12-16 19:25:51 +0100 |
---|---|---|
committer | Simon Rettberg | 2013-12-16 19:25:51 +0100 |
commit | 985c761aa4d2cc0e210ac5d3e92ca50c20cbd2de (patch) | |
tree | 43b456364abebbab9acf03523241e83e65f7f8fa /server | |
parent | [pam-offenburg] Ubuntu needs nox11 for pam-ck-connector (diff) | |
download | tm-scripts-985c761aa4d2cc0e210ac5d3e92ca50c20cbd2de.tar.gz tm-scripts-985c761aa4d2cc0e210ac5d3e92ca50c20cbd2de.tar.xz tm-scripts-985c761aa4d2cc0e210ac5d3e92ca50c20cbd2de.zip |
[pam-offenburg] Adapt to new pam_script_* format
Diffstat (limited to 'server')
4 files changed, 58 insertions, 29 deletions
diff --git a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent_user b/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent_user index cf86a0a3..579bc659 100644 --- a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent_user +++ b/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent_user @@ -1,5 +1,6 @@ -# Sourced by pam_script_mount_persistent -# run as the user that is opening a session +#!/bin/ash +# Called by pam_script_mount_persistent +# Run as the user that is opening a session # Persistent home was mounted, take care of some conveinience # Dirs diff --git a/server/modules/pam-offenburg/etc/pam-script/pam_script_ses_close b/server/modules/pam-offenburg/etc/pam-script/pam_script_ses_close deleted file mode 100755 index 347c4ab9..00000000 --- a/server/modules/pam-offenburg/etc/pam-script/pam_script_ses_close +++ /dev/null @@ -1,6 +0,0 @@ -#!/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" - -umount "/home/users/$PAM_USER" - diff --git a/server/modules/pam-offenburg/etc/pam-script/pam_script_ses_open b/server/modules/pam-offenburg/etc/pam-script/pam_script_ses_open deleted file mode 100755 index c769a7c7..00000000 --- a/server/modules/pam-offenburg/etc/pam-script/pam_script_ses_open +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -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" - - -[ -n "$PAM_USER" ] && export loggedInUser="$PAM_USER" - -#create Folder on Desktop to link with H-Drive, if not already existent -if [ ! -d "/home/users/$loggedInUser" ]; then - mkdir -p "/home/users/$loggedInUser" -fi - - -#ask for username -#read -p "Benutzername: " username - - -#mount H-Drive -ncpmount -A "fs1-2-home.rz.hs-offenburg.de" -S "fs1-2-home.rz.hs-offenburg.de" -V "HOME/USERS/$loggedInUser" -U "$loggedInUser.HRZ.FHO" "/home/users/$loggedInUser" - - diff --git a/server/modules/pam-offenburg/opt/openslx/scripts/pam_script_mount_persistent b/server/modules/pam-offenburg/opt/openslx/scripts/pam_script_mount_persistent new file mode 100644 index 00000000..08d30195 --- /dev/null +++ b/server/modules/pam-offenburg/opt/openslx/scripts/pam_script_mount_persistent @@ -0,0 +1,55 @@ +################################################################### +# +# This script is a part of the pam_script_ses_open script +# and is not stand-alone! +# +# It will try to mount the home directories of students +# under /home/<user>/PERSISTENT using kerberos. +# + + +# Only consider users not in local user db +if ! grep -q "^${PAM_USER}:" /etc/passwd; then + + if [ -z "$PAM_USER" ]; then + # Ask for username + read -p "Benutzername: " loggedInUser + else + loggedInUser="$PAM_USER" + fi + + if [ -n "$PAM_AUTHTOK" ]; then + password="$PAM_AUTHTOK" + else + # No password from pam stack, ask user (if we're on a console) + if [ "x$PAM_TTY" = "xssh" ]; then + read -p "Passwort: " password + elif [ "x$(echo "$PAM_TTY" | cut -c 1-8)" = "x/dev/tty" ]; then + read -p "Passwort: " password + fi + fi + + if [ -n "$password" ]; then + # We know the user's password, so try to mount H-Drive + SIGNAL=$(mktemp) + ERRLOG=$(mktemp) + rm -f -- "${SIGNAL}" + ( ncpmount -A "fs1-2-home.rz.hs-offenburg.de" -S "fs1-2-home.rz.hs-offenburg.de" -V "HOME/USERS/$loggedInUser" -U "$loggedInUser.HRZ.FHO" -P "$password" "$PERSISTENT_HOME_DIR" > "$ERRLOG" 2>&1 || touch "$SIGNAL" ) & + MOUNT_PID=$! + for COUNTER in 1 1 2 3; do + kill -0 "$MOUNT_PID" || break + sleep "$COUNTER" + done + if [ -e "${SIGNAL}" ]; then # Signal file was created, so mount failed + slxlog "pam-offenburg" "Mount of 'HOME/USERS/$loggedInUser' to '$PERSISTENT_HOME_DIR' failed." "$ERRLOG" + elif kill -9 "${MOUNT_PID}" 2>/dev/null; then # ncpmount is still running, consider it failed and kill it + slxlog "pam-offenburg" "Mount of 'HOME/USERS/$loggedInUser' to '$PERSISTENT_HOME_DIR' timed out." "$ERRLOG" + else # mounting worked + chmod 777 "$PERSISTENT_HOME_DIR" + PERSISTENT_OK=yes + fi + rm -f -- "$SIGNAL" + rm -f -- "$ERRLOG" + fi +fi + |