如何使用脚本切换用户以运行另一个脚本

时间:2017-08-29 01:09:00

标签: bash amazon-ec2 scripting

我有一个将以root身份执行的脚本,部分通过脚本我想切换到用户(例如,bob)并使用该用户的环境执行另一个脚本。在脚本结束时,我想切换回root并执行更多命令。我想运行这个脚本而不必输入bob的密码。

此脚本将在首次启动时通过用户数据功能提供给我的AWS EC2实例。

我认为这样做的方法是使用sudo或su。但是,我似乎无法使用这两种方法访问bob的环境。

在下面的stdout echo中,你会看到环境变量myvar被初始化为Inara但是当用sudo执行这个脚本时,该值是未设置的....

{{1}}

1 个答案:

答案 0 :(得分:0)

您可能正在寻找其中一种:

模拟-i用户bob的-u初始环境:

sudo -i -u bob [command]

或者,使用sudo获得使用su所需的权限,并要求-启动登录shell作为bob(没有裸-你是不这样做)和-c运行一个命令:

sudo su - bob -c [command]