34 lines
939 B
Bash
Executable File
34 lines
939 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ $# -lt 1 ]; then
|
|
echo "Usage: $0 <hostname> [ssh-options]"
|
|
exit 1
|
|
fi
|
|
[ -z "$WSCOMPAT_MASTER" ] && WSCOMPAT_MASTER="$(whoami)"
|
|
read -r -d '' init_cmd << WSCOMPAT_EOF_9oqn7IVF
|
|
export WS_IS_COMPAT=1
|
|
export WSCOMPAT_MASTER="$WSCOMPAT_MASTER"
|
|
export WSCOMPAT_DIR="/tmp/wscompat_${WSCOMPAT_MASTER}_\$(whoami)"
|
|
|
|
ws_cleanup() { rm -rf "\$WSCOMPAT_DIR"; }
|
|
trap ws_cleanup EXIT
|
|
rm -rf "\$WSCOMPAT_DIR" && mkdir -p "\$WSCOMPAT_DIR" && chmod 700 "\$WSCOMPAT_DIR"
|
|
|
|
cat << 'WSCOMPAT_EOF_84EbM3la' > "\$WSCOMPAT_DIR/profile"
|
|
$(
|
|
sed 's/WSCOMPAT_EOF_/WSCOMPAT_EOF__/g' "$WSCOMPAT_DIR/profile"
|
|
for file in "$WSCOMPAT_DIR.profile"*.sh; do
|
|
if [ -f "$file" ]; then
|
|
sed 's/WSCOMPAT_EOF_/WSCOMPAT_EOF__/g' "$file"
|
|
fi
|
|
done
|
|
)
|
|
WSCOMPAT_EOF_84EbM3la
|
|
. \$WSCOMPAT_DIR/profile
|
|
|
|
# pam, systemd - wrap in login shell
|
|
exec /bin/bash --login --norc --noprofile -c "exec /bin/bash"
|
|
WSCOMPAT_EOF_9oqn7IVF
|
|
|
|
/bin/ssh -t "$@" "$init_cmd"
|