🐈
root以外でユーザデータを実行する(Amazon Linux 2)
別ユーザで実行できるユーザデータ
#!/bin/bash
sudo -u ec2-user whoami
経緯
ユーザデータとは
EC2にユーザデータを入力しておくことで、初回起動時にコマンドを実行できます。
このときに実行を行うユーザはrootなので、sudoなどを入れなくても権限不足で実行できなくなるということはありません。(便利)
別ユーザで実行したい
ただし今回は、
ユーザごとにAWS CLI用の設定が入っている、
cron設定を各ユーザで行いたいなどの理由で、root以外のユーザで実行したくなりました。
失敗例
su ec2-user
whoami
# rootと出力される
suでec2-userになったあとにコマンドを実行したかったのですが、rootのままコマンドを実行することになりました。
成功例
sudo -u ec2-user whoami
# ec2-userと出力される
sudo コマンドにはこのユーザとして実行するというオプションがあり、そちらを使用したところ別ユーザとして実行することができました。
最後に確認の手順を載せておきます。
確認の手順
ユーザデータを入力して起動する
インスタンスに入って実行結果を確認する
sudo tail /var/log/cloud-init-output.log
Discussion