diff options
| author | Jonathan Bauer | 2015-05-18 14:24:55 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2015-05-18 14:24:55 +0200 |
| commit | 1a3dc2efe62cbdc5b583440b6cd7f18b2ad1633d (patch) | |
| tree | 1df4f321ccc630b625662293fd11e97a2e1dfc30 /remote/modules/pam/data/opt/openslx/scripts | |
| parent | [vmchooser2] remove user/pass info from SHARELW.CFG for now ... (diff) | |
| parent | use cpu governor... (diff) | |
| download | tm-scripts-1a3dc2efe62cbdc5b583440b6cd7f18b2ad1633d.tar.gz tm-scripts-1a3dc2efe62cbdc5b583440b6cd7f18b2ad1633d.tar.xz tm-scripts-1a3dc2efe62cbdc5b583440b6cd7f18b2ad1633d.zip | |
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
Diffstat (limited to 'remote/modules/pam/data/opt/openslx/scripts')
| -rwxr-xr-x | remote/modules/pam/data/opt/openslx/scripts/pam_script_auth | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth b/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth index f9636ced..623658d0 100755 --- a/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth +++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_auth @@ -3,10 +3,26 @@ # Needed as pam_script clears PATH export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/sbin:/opt/openslx/bin" +touch "/tmp/ldapsearch.${PAM_USER}" +chmod 0600 "/tmp/ldapsearch.${PAM_USER}" +if ldapsearch -l 3 -o nettimeout=3 -x -LLL uid="${PAM_USER}" uid homeMount realAccount > "/tmp/ldapsearch.${PAM_USER}" 2>/dev/null; then + VOLUME=$(cat "/tmp/ldapsearch.${PAM_USER}" | grep "^homeMount:" | head -n 1 | cut -d" " -f2) + REAL_ACCOUNT=$(cat "/tmp/ldapsearch.${PAM_USER}" | grep "^realAccount:" | head -n 1 | cut -d" " -f2) + PCASE=$(cat "/tmp/ldapsearch.${PAM_USER}" | grep "^uid:" | head -n 1 | cut -d" " -f2) + [ -n "$PCASE" ] && PAM_USER=$PCASE +fi + PASSWD=$(getent passwd "$PAM_USER") USER_UID=$(echo "$PASSWD" | awk -F ':' '{print $3}') USER_GID=$(echo "$PASSWD" | awk -F ':' '{print $4}') USER_HOME=$(echo "$PASSWD" | awk -F ':' '{print $6}') +[ -z "$USER_UID" ] && USER_UID=$(id -u "$PAM_USER") +[ -z "$USER_GID" ] && USER_GID=$(id -g "$PAM_USER") +[ -z "$USER_HOME" ] && USER_HOME="/home/$PAM_USER" +if [ -z "$USER_UID" -o -z "$USER_GID" ]; then + slxlog "pam-get-ids" "Could not determine UID or GID for user '$PAM_USER'." + exit 1 +fi # The user's non-persistent home directory mount point, which should be their linux home TEMP_HOME_DIR="$USER_HOME" @@ -67,7 +83,7 @@ PERSISTENT_HOME_DIR="${TEMP_HOME_DIR}/PERSISTENT" mkdir -p "${PERSISTENT_HOME_DIR}" || \ { slxlog "pam-global-mkpersistent" "Could not create '${PERSISTENT_HOME_DIR}'."; exit 1; } -if ! chown -R "${PAM_USER}:${USER_GID}" "${TEMP_HOME_DIR}"; then +if ! chown -R "${USER_UID}:${USER_GID}" "${TEMP_HOME_DIR}"; then slxlog "pam-global-chpersistent " "Could not chown '${TEMP_HOME_DIR}' to '${PAM_USER}'." exit 1 fi @@ -98,7 +114,7 @@ mkdir -p "${COMMON_SHARE_MOUNT_POINT}" || \ { slxlog "pam-global-mkshare" "Could not create '${COMMON_SHARE_MOUNT_POINT}'."; exit 1; } # chown the new dir -chown "${PAM_USER}:${USER_GID}" "${COMMON_SHARE_MOUNT_POINT}" || \ +chown "${USER_UID}:${USER_GID}" "${COMMON_SHARE_MOUNT_POINT}" || \ { slxlog "pam-global-chshare" "Could not chown '${COMMON_SHARE_MOUNT_POINT}' to '${PAM_USER}'."; exit 1; } # check for common share mount script, exit if we don't have one |
