スクリプトを実行する必要がある奇妙な状況が発生しました。一部コマンドは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