Bash
可以在不記錄使用者名的情況下執行腳本嗎在小號和羅__在小號和R○rUSER orSUDO_USER
我試圖找出是否有可能由另一個使用者或方式執行 Bash 腳本,而不是登錄的使用者或
sudo -u otherusername
.我有一個帶有 line: 的腳本
echo $USER
。echo $SUDO_USER
這應該始終向我顯示執行該腳本的使用者。從這個問答中,我收集到一些使用者可以使用
sudo
變數SUDO_USER
,或者${SUDO_USER:-$USER}
可以顯示哪個使用者執行了 Bash 腳本,無論是由登錄使用者呼叫還是使用sudo
.除了使用登錄使用者或使用
sudo
. 那麼除了上述方法之外,還有其他方法可以執行腳本嗎?該命令echo $USER
會echo ${SUDO_USER:-$USER}
顯示“原始”使用者名嗎?換句話說,是否可以在執行腳本時
$USER
或$SUDO_USER
在執行腳本時隱藏您的使用者名?我在網際網路上搜尋了它,但沒有找到任何答案,搜尋關鍵字使用:“bash 呼叫腳本混淆使用者名”。
可能答案是否定的,但因為一切皆有可能……可能有某種黑客或惡搞……
您可以使用
sudo
以任何使用者身份執行命令(只要您有權sudo
訪問):$ cat ~/scripts/foo.sh #!/bin/bash echo $USER $ ~/scripts/foo.sh terdon terdon@tpad ~ $ sudo -u bib ~/scripts/foo.sh bib
sudo -u USERNAME
因此,只需使用目標使用者的USERNAME
使用者名來執行您的腳本。該
SUDO_USER
變數具有執行該sudo
命令的使用者的使用者名,但該USER
變數將是目標使用者:$ cat ~/scripts/foo.sh #!/bin/bash echo "sudo command was run by $SUDO_USER but I am actually $USER" $ sudo -u bib ~/scripts/foo.sh sudo command was run by terdon but I am actually bib