我正在尝试使用EC2 UserData脚本安装气流。我需要使用非root用户(ec2-user)运行一些命令。
请参见下面的脚本:
UserData:
Fn::Base64: !Sub |
#!/bin/bash
set -xe
# Install GCC
yum install -y gcc
# Install Dependencies
pip install boto3 awscli markupsafe six
export AIRFLOW_GPL_UNIDECODE=yes
export AIRFLOW_HOME=/home/ec2-user/airflow
pip install apache-airflow[crypto,postgres]
su - ec2-user
whoami
PATH=$PATH:/usr/local/bin
airflow initdb
我刚刚调查了日志,似乎命令
su - ec2-user
无法正常工作whoami
返回了root user.
+ su - ec2-user
Last login: Sat Aug 10 15:59:37 UTC 2019 from ip-10-1-13-234.us-west-2.compute.internal on pts/0
+ whoami
root
最佳答案
您可以使用sudo -u以非root用户身份运行单个命令。sudo -u ec2-user whoami
如果要运行多个命令,也可以启动子外壳。sudo -u ec2-user bash -c 'whoami;PATH=$PATH:/usr/local/bin;airflow initdb'
关于linux - 以非root用户身份在UserData中运行命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57443700/