Linux 为什么sudo-i需要一个绝对路径来运行脚本?
使用sudo运行bash脚本时,Linux 为什么sudo-i需要一个绝对路径来运行脚本?,linux,bash,sudo,Linux,Bash,Sudo,使用sudo运行bash脚本时,sudo-i似乎需要绝对路径 -i, --login 为什么会这样?我如何使sudo-I引用与sudo相同的路径 编辑 sudo-i~/tmp.sh运行良好 似乎sudo-i没有获得位置 sudo-我似乎需要一条绝对路径 -i, --login 不,没有。您可以相对于新位置执行以下操作,即到/root: [USER@HOST ~]$ sudo ./tmp.sh Script run successfully. [USER@HOST ~]$ sudo -
sudo-i
似乎需要绝对路径
-i, --login
为什么会这样?我如何使sudo-I
引用与sudo
相同的路径
编辑
sudo-i~/tmp.sh
运行良好
似乎sudo-i
没有获得
位置
sudo-我似乎需要一条绝对路径
-i, --login
不,没有。您可以相对于新位置执行以下操作,即到/root
:
[USER@HOST ~]$ sudo ./tmp.sh
Script run successfully.
[USER@HOST ~]$ sudo -i ./tmp.sh
-bash: ./tmp.sh: No such file or directory
[USER@HOST ~]$ sudo -i /home/USER/tmp.sh
Script run successfully.
也应该有效
为什么会这样
因为您将-i
传递给sudo
和man sudo
它会:
[…]sudo试图在运行shell之前更改到该用户的主目录。[……]
我怎样才能使sudo-我指的是与sudo相同的路径
将根主目录更改为当前目录(ugh!)
不要通过-i
选项。好。。。您可以自己运行bash-l
并更改-i
选项的行为
请注意,不允许同时将-E
和-i
传递到sudo
sudo-i~/tmp.sh运行良好
是的,因为在运行sudo之前,~
已展开。这与使用绝对路径运行sudo是一样的
-i, --login
sudo-i
尝试更改到用户的主目录。尝试sudo-ipwd
。
$ set -x
$ sudo -i ~/tmp.sh
+ sudo -i /home/kamil/tmp.sh
-bash: line 1: /home/kamil/tmp.sh: No such file or directory