Amazon ec2 CloudFormation userdata以创建RedHat用户

Amazon ec2 CloudFormation userdata以创建RedHat用户,amazon-ec2,amazon-cloudformation,Amazon Ec2,Amazon Cloudformation,如何在启动期间在redhat实例上创建用户?我尝试在用户数据中包含以下命令,但没有成功。知道为什么吗?或者是否有其他方法可以使用userdata创建用户 sudo su useradd -s /bin/bash -m -d /home/testuser -g root testuser echo P@ssc0deT3st | passwd testuser --stdin sed -re 's/^(PasswordAuthentication)([[:space:]]+)no/\1\2yes/

如何在启动期间在redhat实例上创建用户?我尝试在用户数据中包含以下命令,但没有成功。知道为什么吗?或者是否有其他方法可以使用userdata创建用户

sudo su
useradd -s /bin/bash -m -d /home/testuser  -g root testuser
echo P@ssc0deT3st | passwd testuser --stdin
sed -re 's/^(PasswordAuthentication)([[:space:]]+)no/\1\2yes/' -i.`date -I` /etc/ssh/sshd_config
service sshd restart

试试这样的

"UserData": {
  "Fn::Base64": {
    "Fn::Join": ["", [
      "#!/bin/bash -xe\n",
      "useradd -d /home/testuser -g root -m -s /bin/bash testuser", "\n",
    ]]
  }
}
虽然我不确定是否允许将用户添加到组根目录,但这不在这里也不在那里。然后,您可以按照与我的示例中的useradd命令相同的方式添加其余命令

请注意,有时候执行UserData需要几分钟,所以请在实例启动并运行后给它几分钟时间。我相信,您还可以在cmd-init.log中检查/var/log中的错误


在堆栈中尝试命令之前,请确保在运行的实例上测试命令,以确保它们正常工作。从长远来看,这将节省您的时间

试试这样的东西

"UserData": {
  "Fn::Base64": {
    "Fn::Join": ["", [
      "#!/bin/bash -xe\n",
      "useradd -d /home/testuser -g root -m -s /bin/bash testuser", "\n",
    ]]
  }
}
虽然我不确定是否允许将用户添加到组根目录,但这不在这里也不在那里。然后,您可以按照与我的示例中的useradd命令相同的方式添加其余命令

请注意,有时候执行UserData需要几分钟,所以请在实例启动并运行后给它几分钟时间。我相信,您还可以在cmd-init.log中检查/var/log中的错误


在堆栈中尝试命令之前,请确保在运行的实例上测试命令,以确保它们正常工作。从长远来看,这将节省您的时间

确保使用亚马逊的ami。只有少数ami支持用户数据。UserData以root用户身份运行。

确保使用Amazon的ami。只有少数ami支持用户数据。UserData以root用户身份运行