以不同用户身份在同一脚本中运行命令

以不同用户身份在同一脚本中运行命令

我有一个奇怪的情况,我需要运行一个脚本一些命令以非root(用户)身份运行root,其他命令以非root(用户)身份运行ubuntu。在幕后,这是 AWS EC2 在后台为我运行的一个脚本,它是一个在新节点/实例/虚拟机自动启动时为我配置新节点/实例/虚拟机的脚本。

我知道我可以做这样的事情:

#!/bin/bash
sudo -u ubuntu -i <<'EOF'

cmd1
cmd2
cmd3

EOF

root然而,由于这个脚本的性质,我实际上需要在和之间来回跳转ubuntu几次。是否有可能做到这一点?要以用户 1 的身份运行脚本中的一组命令,然后以用户 2 的身份运行后续的一组命令(同一脚本),然后再次以用户 1 的身份运行最后一组命令?如果是这样,怎么办?如果没有,只是好奇,为什么?!

答案1

Tried with this worked fine

I am running this script as root

#!/bin/bash
su praveen <<'EOF'  ====> it will switch to praveen user and executes command
whoami
w
exit        ===> here it will exits and go back to root user
EOF
whoami    ====> here its running whoami command as root user

相关内容