summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorJonathan Bauer2014-05-19 15:20:20 +0200
committerJonathan Bauer2014-05-19 15:20:20 +0200
commitecf9a6a75544b0d3178e45d42ee4fc85febc376e (patch)
tree760172bee7732e9b057fa19af3a322fff3a7f805 /server
parent[pam-freiburg] updated pam_script_mount_persistent to CIFS (diff)
downloadtm-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_persistent49
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