在AWS中使用用户数据,使用“ec2-user”而不是root登录。

12

我有一个基于RHEL 6.4 64位AMI的Amazon EC2实例。 写了一些shell脚本后,我创建了自己的AMI镜像。

我正在编写用户数据部分,该部分将删除/home/ec2-user下的内容(sudo rm -rf /home/ec2-user/*),然后执行该脚本。 但是我无法删除任何文件。

我的要求:

  • 我想删除文件。
  • 我还有另一个奇怪的用例,默认情况下,用户数据部分以“root”用户输入,但是否有可能以“ec2-user”用户输入并完成我的工作?
2个回答

23

用户数据始终以root身份运行,因此请勿使用sudo。下面的命令将作为ec2-user运行。如果您要启动可执行文件,请在后台启动(即在末尾添加&)。

su ec2-user -c '做任何你想做的事情; ./run.sh &'


毫无疑问,不需要在后台运行它。我的脚本在完成后关闭实例,因此我没有让它在后台运行。这会影响运行用户的方式吗? - seeiespi
5
值得一提的是,$PATH和$HOME变量的值会从root用户环境中保留。 - antonbormotov

1

您不能在普通的ec2-user账户中执行此操作,执行以下命令以使用deploy用户身份...

sudo su - deploy

这将允许您转到当前位置的应用程序...

cd /srv/www/sample_app/current

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接