2016-06-18 10 views
0

у меня есть centos7 база AMI и успешно изменил имя пользователя, используя данные пользователя ec2 запуска, модифицированные из амазонки-Linux скриптаправильный способ переименовать пользователь и удалить пароль с EC2 данными пользователя

#!/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

Я считаю, что ваш скрипт userdata Cloudinit терпит неудачу, потому что он пытается использовать sudo без tty (и !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