我是以当前登录用户身份通过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调用脚本?
答案 0 :(得分:1)
su -
在切换用户后调用登录shell。登录shell会重置大多数环境变量,从而提供一个干净的基础。
su
只是切换用户,为普通shell提供与旧用户几乎相同的环境。
最明显的例子是~
是root的主目录,如果你使用su -
,但是你自己的主目录,如果你使用su
。
根据您的系统,它可能还意味着prompt
,PATH
或history file
的差异。
更多详情:
https://unix.stackexchange.com/questions/7013/why-do-we-use-su-and-not-just-su