Mar*_*aun 1 shell bash debian sudo environment-variables
我想使用sudo如下命令从互联网运行可信脚本:
sudo curl https://example.org/my-trusted-example.script.sh | sudo bash -s --
Run Code Online (Sandbox Code Playgroud)
该脚本正在使用该$HOME变量。在 Debian 上,此变量将解析为/root而不是/home/user.
如何让它使用home用户目录而不是root用户目录呢?
您可以要求sudo保留指定的环境变量:
% sudo printenv HOME
/root
% sudo --preserve-env=HOME printenv HOME
/home/muru
Run Code Online (Sandbox Code Playgroud)
您也可以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 --
Run Code Online (Sandbox Code Playgroud)
但由于它以 root 身份运行脚本,因此您可能会弄乱主目录中文件的所有权。
(curl不应该需要sudo。)
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |