################################################################### # # 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//PERSISTENT using kerberos. # # Only run this if the user is a student # These have a gid > 1000 if ! grep -q "^${PAM_USER}:" "/etc/passwd"; then VOLUME=$(getent passwd ${PAM_USER} |cut -d ':' -f6) FILESERVER="urquell" # now we can mount the home directory! MOUNT_OPTS="-t nfs4 -o rw,nosuid,nodev,nolock,intr,hard,sloppy,sec=krb5p" SIGNAL=$(mktemp) MOUNT_OUTPUT=$(mktemp) rm -f -- "${SIGNAL}" ( mount ${MOUNT_OPTS} "${FILESERVER}:${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-curitiba" "Mount of '${FILESERVER}:${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-curitiba" "Mount of '${FILESERVER}:${VOLUME}' to '${PERSISTENT_HOME_DIR}' timed out. (Args: ${MOUNT_OPTS})" "$MOUNT_OUTPUT" else PERSISTENT_OK=yes fi ( sleep 2; rm -f -- "$MOUNT_OUTPUT" ) & fi