我有一个将以root身份执行的脚本,部分通过脚本我想切换到用户(例如,bob)并使用该用户的环境执行另一个脚本。在脚本结束时,我想切换回root并执行更多命令。我想运行这个脚本而不必输入bob的密码。
此脚本将在首次启动时通过用户数据功能提供给我的AWS EC2实例。
我认为这样做的方法是使用sudo或su。但是,我似乎无法使用这两种方法访问bob的环境。
在下面的stdout echo中,你会看到环境变量myvar被初始化为Inara但是当用sudo执行这个脚本时,该值是未设置的....
{{1}}
答案 0 :(得分:0)
您可能正在寻找其中一种:
模拟-i
用户bob的-u
初始环境:
sudo -i -u bob [command]
或者,使用sudo
获得使用su
所需的权限,并要求-
启动登录shell作为bob(没有裸-
你是不这样做)和-c
运行一个命令:
sudo su - bob -c [command]