使用 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
我有一个 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