diff options
author | Jonathan Bauer | 2014-05-19 15:20:20 +0200 |
---|---|---|
committer | Jonathan Bauer | 2014-05-19 15:20:20 +0200 |
commit | ecf9a6a75544b0d3178e45d42ee4fc85febc376e (patch) | |
tree | 760172bee7732e9b057fa19af3a322fff3a7f805 /server | |
parent | [pam-freiburg] updated pam_script_mount_persistent to CIFS (diff) | |
download | tm-scripts-ecf9a6a75544b0d3178e45d42ee4fc85febc376e.tar.gz tm-scripts-ecf9a6a75544b0d3178e45d42ee4fc85febc376e.tar.xz tm-scripts-ecf9a6a75544b0d3178e45d42ee4fc85febc376e.zip |
[pam-freiburg] dont exec the cifs part if no cifs volume is found
Diffstat (limited to 'server')
-rw-r--r-- | server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent b/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent index 67fc88a2..464dcd9f 100644 --- a/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent +++ b/server/modules/pam-freiburg/opt/openslx/scripts/pam_script_mount_persistent @@ -16,33 +16,34 @@ if ! grep -q "^${PAM_USER}:" "/etc/passwd"; then CIFS_VOLUME=$(cat /tmp/ldapsearch.${PAM_USER} | grep rufHomepath | cut -d" " -f2 | tr '\\' '/') - [ -z "${CIFS_VOLUME}" ] && slxlog "pam-freiburg-ldap-cifs-volume" "LDAP server did not provide 'rufHomepath'. Aborting mount for ${PAM_USER}." && exit 1 - - # now we can mount the home directory! - - MOUNT_OPTS="-t cifs -o uid=${USER_UID},gid=${USER_GID},forceuid,forcegid,file_mode=0600,dir_mode=0700" - export USER="${PAM_USER}" - export PASSWD="${PAM_AUTHTOK}" - - SIGNAL=$(mktemp) - MOUNT_OUTPUT=$(mktemp) - rm -f -- "${SIGNAL}" - ( mount ${MOUNT_OPTS} "${CIFS_VOLUME}" "${PERSISTENT_HOME_DIR}" > "$MOUNT_OUTPUT" 2>&1 || touch "${SIGNAL}" ) & - MOUNT_PID=$! - for COUNTER in 1 2 4 4; do - kill -0 "${MOUNT_PID}" 2>/dev/null || break - sleep "${COUNTER}" - done - - if [ -e "${SIGNAL}" ]; then - slxlog "pam-freiburg-cifs" "Mount of '${CIFS_VOLUME}' to '${PERSISTENT_HOME_DIR}' failed. (Args: ${MOUNT_OPTS})" "$MOUNT_OUTPUT" + if [ ! -z "${CIFS_VOLUME}" ]; then + # now we can mount the home directory! + MOUNT_OPTS="-t cifs -o uid=${USER_UID},gid=${USER_GID},forceuid,forcegid,file_mode=0600,dir_mode=0700" + export USER="${PAM_USER}" + export PASSWD="${PAM_AUTHTOK}" + + SIGNAL=$(mktemp) + MOUNT_OUTPUT=$(mktemp) rm -f -- "${SIGNAL}" - elif kill -9 "${MOUNT_PID}" 2>/dev/null; then - slxlog "pam-freiburg-cifs" "Mount of '${CIFS_VOLUME}' to '${PERSISTENT_HOME_DIR}' timed out. (Args: ${MOUNT_OPTS})" "$MOUNT_OUTPUT" + ( mount ${MOUNT_OPTS} "${CIFS_VOLUME}" "${PERSISTENT_HOME_DIR}" > "$MOUNT_OUTPUT" 2>&1 || touch "${SIGNAL}" ) & + MOUNT_PID=$! + for COUNTER in 1 2 4 4; do + kill -0 "${MOUNT_PID}" 2>/dev/null || break + sleep "${COUNTER}" + done + + if [ -e "${SIGNAL}" ]; then + slxlog "pam-freiburg-cifs" "Mount of '${CIFS_VOLUME}' to '${PERSISTENT_HOME_DIR}' failed. (Args: ${MOUNT_OPTS})" "$MOUNT_OUTPUT" + rm -f -- "${SIGNAL}" + elif kill -9 "${MOUNT_PID}" 2>/dev/null; then + slxlog "pam-freiburg-cifs" "Mount of '${CIFS_VOLUME}' to '${PERSISTENT_HOME_DIR}' timed out. (Args: ${MOUNT_OPTS})" "$MOUNT_OUTPUT" + else + PERSISTENT_OK=yes + fi + ( sleep 2; rm -f -- "$MOUNT_OUTPUT" ) & else - PERSISTENT_OK=yes + slxlog "pam-freiburg-ldap-cifs-volume" "LDAP server did not provide 'rufHomepath'. Aborting mount for ${PAM_USER}." && exit 1 fi - ( sleep 2; rm -f -- "$MOUNT_OUTPUT" ) & # unset credentials unset USER |