From 66d7bf5263a9fe79554a972a403f15a09ce45db9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Wed, 16 Nov 2022 11:36:09 +0100 Subject: [PATCH] fix sudo when sshs to other server when myshellconfig is configured for root and you logged in via sshs, sudo does not work correctly. not it takes the temporary bashrc for sshs also for sudo --- functions.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/functions.sh b/functions.sh index 0511a6f..cfaac86 100755 --- a/functions.sh +++ b/functions.sh @@ -49,8 +49,11 @@ function cpb() { function sudo() { local SUDO + local BASH # SUDO=$( if [ -e /bin/sudo ]; then echo /bin/sudo; else echo /usr/bin/sudo; fi ) SUDO=$(which sudo) + + [ getbashrcfile ] && BASH="bash --rcfile $(getbashrcfile)" || unset BASH $SUDO \ GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \ GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \ @@ -62,6 +65,7 @@ function sudo() { SSH_TTY="$SSH_TTY" \ SSH_AUTH_SOCK="$SSH_AUTH_SOCK" \ http_proxy="$http_proxy" \ + $BASH \ "$@" } @@ -339,9 +343,12 @@ mkcd () { sshmyshellconfig() { ENTRY + [ -z "${MSC_SUBPATH+x}" ] && MSC_SUBPATH=".local/myshellconfig" [ -z "${MSC_BASE+x}" ] && MSC_BASE="${HOME}/${MSC_SUBPATH}" - #MSC_GIT_REMOTE_NAME=$($MSC_GIT rev-parse --abbrev-ref @{u} 2>/dev/null | cut -d'/' -f1) + echo MSC_GIT_REMOTE_NAME: $MSC_GIT_REMOTE_NAME + MSC_GIT_REMOTE_NAME=$($MSC_GIT rev-parse --abbrev-ref @{u} 2>/dev/null | cut -d'/' -f1) + echo MSC_GIT_REMOTE_NAME: $MSC_GIT_REMOTE_NAME MSC_BASE_PARENT="$(dirname $MSC_BASE)" if [ $1 == "localhost" ]; then @@ -352,6 +359,7 @@ sshmyshellconfig() { local CMD="$SSH -T $@" fi $CMD /bin/bash << EOF + set -x [ -e /etc/bashrc ] && . /etc/bashrc [ -e /etc/bash.bashrc ] && . /etc/bash.bashrc echo "modify ~/.bashrc" @@ -365,8 +373,8 @@ sshmyshellconfig() { rm -rf ~/server-config && echo rm -rf ~/server-config echo mkdir -p ~/.local mkdir -p ~/.local - echo git clone --recurse-submodules $(git remote get-url origin) \${HOME}/${MSC_SUBPATH} - git clone --recurse-submodules $(git remote get-url origin) \${HOME}/${MSC_SUBPATH} + echo git clone --recurse-submodules $(git remote get-url $MSC_GIT_REMOTE_NAME) \${HOME}/${MSC_SUBPATH} + git clone --recurse-submodules $(git remote get-url $MSC_GIT_REMOTE_NAME) \${HOME}/${MSC_SUBPATH} date "+%s" > \${HOME}/${MSC_SUBPATH}/.last_update_submodules # date "+%s" > \${HOME}/${MSC_SUBPATH}/.last_update_repo @@ -558,6 +566,7 @@ getbashrcfile () { ENTRY if [ -z ${BASHRC+x} ] ; then loginfo "bash uses default" + return 1 else cat /proc/$$/cmdline | xargs -0 echo|awk '{print $3}' fi @@ -568,6 +577,7 @@ catbashrcfile () { ENTRY if [ -z ${BASHRC+x} ] ; then loginfo "bash uses default" + return 1 else #cat $(cat /proc/$$/cmdline | xargs -0 echo|awk '{print $3}') cat $(getbashrcfile)