他のユーザーと同じスクリプトでコマンドを実行する

他のユーザーと同じスクリプトでコマンドを実行する

スクリプトを実行する必要がある奇妙な状況が発生しました。一部コマンドはroot以外のユーザー(ユーザー)として実行され、root他のコマンドはroot以外のユーザー(ユーザー)として実行されますubuntu。これは、AWS EC2がバックグラウンドで私のために実行するスクリプトで、自動起動時に新しいノード/インスタンス/VMを設定するスクリプトです。

私は次のことができることを知っています。

#!/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

関連情報