Bash

“sudo bash -s –” 不改變 $HOME?

  • July 13, 2022

我想使用如下sudo命令從 Internet 執行受信任的腳本:

sudo curl https://example.org/my-trusted-example.script.sh | sudo bash -s --

該腳本正在使用該$HOME變數。在 Debian 上,此變數將解析為/root而不是/home/user.

如何讓它使用主使用者目錄而不是根使用者目錄?

您可以要求sudo保留指定的環境變數

% sudo printenv HOME
/root
% sudo --preserve-env=HOME printenv HOME
/home/muru

你也可以設置HOME自己:

curl https://example.org/my-trusted-example.script.sh | sudo HOME="$HOME" bash -s --
curl https://example.org/my-trusted-example.script.sh | sudo env HOME="$HOME" bash -s --

但由於它以 root 身份執行腳本,因此您可能會在主目錄中創建混亂的文件所有權。


curl不應該需要sudo。)

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