shell脚本在作为当前登录用户执行时以root身份执行

时间:2017-12-07 06:37:17

标签: bash shell root macos-sierra

我是以当前登录用户身份通过​​SSH登录的。

我使用管理员帐户进入远程计算机。

ssh admin_a@ipaddress

然后继续:

su username_b (current login user) 

当前用户登录时,结果让我进入bash-prompt(我不明白)(使用whoami进行测试)。

Q1 :当我切换到登录的用户时,为什么会让我进入bash-prompt(即~bash$) - 为什么不~ username_of_current_user$

在我创建了bash脚本并将其放入当前用户的目录之后 - 该脚本是从启动代理调用的,尽管它不起作用。

错误日志显示变量的输出之一是错误的:whoami = root,当它应该为current_user_logged_in时。

Q2:为什么要从root调用脚本?

1 个答案:

答案 0 :(得分:1)

su -在切换用户后调用登录shell。登录shell会重置大多数环境变量,从而提供一个干净的基础。

su只是切换用户,为普通shell提供与旧用户几乎相同的环境。

最明显的例子是~是root的主目录,如果你使用su -,但是你自己的主目录,如果你使用su

根据您的系统,它可能还意味着promptPATHhistory file的差异。

更多详情:

https://unix.stackexchange.com/questions/7013/why-do-we-use-su-and-not-just-su