【问题标题】:CloudFormation userdata to create a RedHat userCloudFormation userdata 创建 RedHat 用户
【发布时间】:2019-08-14 22:51:27
【问题描述】:
如何在启动过程中在redhat实例上创建用户?我尝试在用户数据中包含以下命令,但没有奏效。知道为什么吗?还是有另一种使用用户数据创建用户的方法?
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
【问题讨论】:
标签:
amazon-ec2
amazon-cloudformation
【解决方案1】:
确保您使用亚马逊的 ami。只有少数 ami 支持 UserData。 UserData 以 root 身份运行。
【解决方案2】:
试试这样的
"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 中的错误。
确保在正在运行的实例上测试您的命令,以确保它们在堆栈中尝试之前可以正常工作,从长远来看,这将为您节省时间。