“sudo bash -s --”而不更改 $HOME?

“sudo bash -s --”而不更改 $HOME?

我想使用sudo如下命令从互联网运行可信脚本:

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

该脚本正在使用该$HOME变量。在 Debian 上,此变量将解析为/root而不是/home/user.

如何让它使用home用户目录而不是root用户目录呢?

答案1

您可以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。)

相关内容