Bash

可以在不記錄使用者名的情況下執行腳本嗎在小號和羅__在小號和R○rUSER orSUDO_USER

  • July 23, 2021

我試圖找出是否有可能由另一個使用者或方式執行 Bash 腳本,而不是登錄的使用者或sudo -u otherusername.

我有一個帶有 line: 的腳本echo $USERecho $SUDO_USER這應該始終向我顯示執行該腳本的使用者。

這個問答中,我收集到一些使用者可以使用sudo變數SUDO_USER,或者${SUDO_USER:-$USER}可以顯示哪個使用者執行了 Bash 腳本,無論是由登錄使用者呼叫還是使用sudo.

除了使用登錄使用者或使用sudo. 那麼除了上述方法之外,還有其他方法可以執行腳本嗎?該命令echo $USERecho ${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

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