summaryrefslogtreecommitdiffstats
path: root/remote
diff options
context:
space:
mode:
authorSimon Rettberg2013-11-28 13:58:53 +0100
committerSimon Rettberg2013-11-28 13:58:53 +0100
commit1a572e8064db374a1a8188f74e5d674e46eb34d5 (patch)
tree319fd32bd5a8db6967cf4728c48ac65f9d1ffbed /remote
parent[vmchooser] Consistent slxlog event ids (diff)
parent[pam] slxlog for global pam script (diff)
downloadtm-scripts-1a572e8064db374a1a8188f74e5d674e46eb34d5.tar.gz
tm-scripts-1a572e8064db374a1a8188f74e5d674e46eb34d5.tar.xz
tm-scripts-1a572e8064db374a1a8188f74e5d674e46eb34d5.zip
Merge branch 'master' of dnbd3:openslx-ng/tm-scripts
Diffstat (limited to 'remote')
-rwxr-xr-xremote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open31
1 files changed, 19 insertions, 12 deletions
diff --git a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
index 13f0cd3b..a46a6784 100755
--- a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
+++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_open
@@ -3,8 +3,6 @@
# Needed as pam_script clears PATH
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/usr/sbin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/bin"
-echo "[${PAM_TYPE}] Opening session for ${PAM_USER}"
-
PERSISTENT_MOUNT_SCRIPT="/opt/openslx/scripts/pam_script_mount_persistent"
TEMP_HOME_DIR="/home/${PAM_USER}"
@@ -15,20 +13,17 @@ slxlog "session-open" "$PAM_USER logged in on $PAM_TTY"
[ "x${PAM_USER}" == "xroot" ] && exit 0
# check if we already mounted the home directory
-if mount | grep -q "$TEMP_HOME_DIR"; then
- echo "[${PAM_TYPE}] Home directory of '${PAM_USER}' is already mounted."
- exit 0
-fi
+mount | grep -q "$TEMP_HOME_DIR" && exit 0
# no home, lets create it
mkdir -p "${TEMP_HOME_DIR}" || \
- { echo "Could not create '${TEMP_HOME_DIR}'."; exit 1; }
+ { slxlog "pam-global-mktemphome" "Could not create '${TEMP_HOME_DIR}'."; exit 1; }
chown -R "${PAM_USER}" "${TEMP_HOME_DIR}" || \
- { echo "Could not chown '${TEMP_HOME_DIR}' to ${PAM_USER}."; exit 1; }
+ { slxlog "pam-global-chtemphome" "Could not chown '${TEMP_HOME_DIR}' to ${PAM_USER}."; exit 1; }
# now make it a tmpfs
mount -t tmpfs -o size=100m tmpfs "${TEMP_HOME_DIR}" || \
- { echo "Could not make a tmpfs on ${TEMP_HOME_DIR}"; exit 1; }
+ { slxlog "pam-global-tmpfstemphome" "Could not make a tmpfs on ${TEMP_HOME_DIR}"; exit 1; }
# create a WARNING.txt for the user
cat > "${TEMP_HOME_DIR}/WARNING.txt" << EOF
@@ -38,11 +33,23 @@ Your real home is under /home/<user>/PERSISTENT.
Please save your files there.
EOF
+# create the PERSISTENT directory
+mkdir -p "${PERSISTENT_HOME_DIR}" || \
+ { slxlog "pam-global-mkpersistent" "Could not create '${PERSISTENT_HOME_DIR}'."; exit 1; }
+
+# always warn the user that his files won't be saved persistently
+cat > "${PERSISTENT_HOME_DIR}/WARNING.txt" << EOF
+Your home directory contents is unavailable.
+DO NOT SAVE ANYTHING HERE AS ALL WILL BE LOST UPON REBOOT!
+EOF
+
+chown -R "${PAM_USER}" "${PERSISTENT_HOME_DIR}" || \
+ { slxlog "pam-global-chpersistent " "Could not chown '${PERSISTENT_HOME_DIR}' to '${PAM_USER}'."; exit 1; }
+
# now lets see if we have a persistent directory
[ ! -e "${PERSISTENT_MOUNT_SCRIPT}" ] && exit 0
-
. "${PERSISTENT_MOUNT_SCRIPT}" || \
- { echo "Could not source ${PERSISTENT_MOUNT_SCRIPT}."; exit 1; }
+ { slxlog "pam-global-sourcepersistent" "Could not source ${PERSISTENT_MOUNT_SCRIPT}."; exit 1; }
# TODO: Symlinks mkdirs for certain programs etc.
-
+exit 0