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