Bash
“sudo bash -s –” 不改變 $HOME?
我想使用如下
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
。)