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

时间:2016-06-18 21:48:46

标签: linux amazon-ec2 centos7 ami

我有一个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密码要求?

1 个答案:

答案 0 :(得分:1)

我相信您的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