如何在 AWS 实例中执行"user_data"时更改根用户或如何使用 Ubuntu 用户执行"yarn start"



我有一个问题与Terraform和AWS EC2实例。当做一个自动伸缩组时,我需要通过yarn(node js)安装。问题是我需要用Ubuntu用户和AWS的user_data来执行命令。默认情况下,以root用户运行命令。

这是我的bash代码:
#!/bin/bash
su ubuntu
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"  # This loads nvm
bash_completion
[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh
nvm bash_completion
cd /srv/node/MyProject &&
yarn start:api:qa

在user_data中运行命令,如下所示:

su - ubuntu -c "export NVM_DIR="$HOME/.nvm""
su - ubuntu -c "[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm"
...

等等。我在AMZN默认Linux EC2实例上使用上述方法,并且有效。所以你可能需要验证这在Ubuntu上是否同样有效。但是基本上,在bash中有多种方法可以作为另一个用户运行命令。

最新更新