我想使用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
。)