【发布时间】:2023-04-05 21:37:01
【问题描述】:
我想知道为什么在ssh 命令中执行su 似乎没有在执行后续命令之前切换用户的预期效果,如下图所示:
以下命令:
bob@server1:~$ sudo ssh -n root@server2 "su bob; env"
产生以下输出:
...
USER=root
PWD=/root
HOME=/root
LOGNAME=root
...
我希望输出能够反映用户 bob 观察到的结果,但它是 root 用户的环境。但是,我发现以下命令可以达到预期的效果:
bob@server1:~$ sudo ssh -n root@server2 "su bob -c \"env\""
此命令产生以下输出:
...
USER=bob
PWD=/root
HOME=/users/bob
LOGNAME=bob
...
我想了解为什么第一种方式(执行"su bob; env")不起作用。
【问题讨论】: