Bash

在 sudo su - appuser 之後執行命令的 shell 腳本

  • February 10, 2020

我的組織不允許我訪問 root,並且有一些非常奇怪的身份驗證,如下所述:

  • 我通過 ssh 終端使用我的使用者名和密碼組合登錄到 RHEL 伺服器
  • 我不允許使用我的帳戶,必須使用以下命令切換到伺服器帳戶:sudo su - appuser
  • 不允許對上述命令進行任何排列。意思sudo su -p appuser是不允許sudo su appuser是不允許的。它必須是sudo su - appuser。在切換到 appuser 之前,我必須輸入密碼
  • 現在我在沒有 sudo 權限的 appuser 中。我現在做我的工作。

最近我開始使用 git,在 git 中你可以指定使用者名和密碼。好吧,如果我的 6 人團隊使用它,他們都將擁有相同的使用者名。除非他們在切換到 appuser 後執行以下命令行來獲取他們的真實使用者名:git config --global user.name $(logname)

所以,我試圖通過製作一個腳本來導航這個我無法控制的糟糕的基礎設施,該腳本允許我在切換到 appuser 後立即切換使用者並設置我的 git 使用者。

我目前擁有的是這個(這不起作用,因為我因為第 1 行而被要求輸入密碼):

sudo su - appuser
git config --global user.email $(logname)

除了去 IT 部門尋求我知道他們不會提供的解決方案之外,我還有哪些選擇?

您可以根據您的登錄名設置環境變數:

case $logname in
shnisaka)
 export GIT_AUTHOR_NAME="your name"
 export GIT_COMMITTER_NAME="your name"
 export GIT_AUTHOR_EMAIL="your.name@compa.ny"
 export GIT_COMMITTER_EMAIL="your.name@compa.ny"
 ;;
olqs)
 export GIT_AUTHOR_NAME="my name"
 export GIT_COMMITTER_NAME="my name"
 export GIT_AUTHOR_EMAIL="my.name@compa.ny"
 export GIT_COMMITTER_EMAIL="my.name@compa.ny"
 ;;
esac

我們的個人資料設置中有類似的配置。嘗試把它放在 appuser 的 .bashrc 中

引用自:https://unix.stackexchange.com/questions/566710