使用 ec2 用户数据重命名用户和删除密码的正确方法

correct way to rename user and remove password with ec2 user-data

我有一个 centos7 base ami,并使用从 amazon-linux 脚本修改的 ec2-launch 用户数据成功更改了用户名

#!/bin/bash
groupadd ec2-user
usermod -d /home/ec2-user -m -g ec2-user -l ec2-user centos
echo ""  | sudo tee -a  /etc/sudoers
echo "Defaults:root !requiretty"  | sudo tee -a  /etc/sudoers
echo "ec2-user   ALL=(ALL) NOPASSWD: ALL"  | sudo tee -a  /etc/sudoers
echo "Defaults:ec2-user !requiretty"  | sudo tee -a  /etc/sudoers

登录按预期工作并且主目录已更改,但是当我使用 sudo 时它仍然要求输入密码。由于我无法进入文件以检查格式,我想知道我是否使用了正确的语法?

如何在单个脚本中更改用户并删除 sudo 密码要求?

我认为您的 Cloudinit 用户数据脚本失败了,因为它试图在没有 tty 的情况下使用 sudo(并且尚未添加 !requiretty)。由于该脚本无论如何都以 root 身份运行,因此应该可以工作:

#!/bin/bash
groupadd ec2-user
usermod -d /home/ec2-user -m -g ec2-user -l ec2-user centos
echo ""  | tee -a  /etc/sudoers
echo "Defaults:root !requiretty"  | tee -a  /etc/sudoers
echo "ec2-user   ALL=(ALL) NOPASSWD: ALL"  | tee -a  /etc/sudoers
echo "Defaults:ec2-user !requiretty"  | tee -a  /etc/sudoers