Создайте учетную запись пользователя на многих серверах

У меня есть a users.txt со следующим содержанием:

ip1 user1 password1
ip2 user2 password2
....
ipN userN passwordN

Я хочу создать одного пользователя на каждом из этих серверов. Я хочу использовать этот сценарий на каждом сервере:

user_login="some_user7"
password="blablabla"

sudo adduser $user_login --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password

echo -e "$password\n$password\n" | sudo passwd $user_login

Я не понимаю, как правильно соединяются на каждом сервере и выполняют этот сценарий.

P.S. Я не хочу использовать SSH-открытые-ключи. Я хочу использовать просто логины и пароли.

-1
задан 20 December 2014 в 23:31
1 ответ

Выполнить скрипт на сервере с использованием ssh просто, что-то вроде:

cat script.sh | ssh someserver

Однако, вы, вероятно, не захотите выполнять один и тот же скрипт на каждом сервере. Вам понадобится другой скрипт, чтобы прочитать user.txt и из этого файла создать файлы скриптов для каждой строки в файле users.txt, прежде чем вызывать ssh с новым скриптом в качестве входного. Можно использовать sed для замены пользователя и пароля в каком-нибудь файле-шаблоне.

Или можно использовать awk для выполнения всей работы:

awk '{system("ssh \""$1 " sudo adduser " $2 " - disable-password ; echo -e \\\""$3 "\\n"$3 "\\n\\\"". | sudo passwd "$2"\")}' < users.txt

3
ответ дан 5 December 2019 в 19:14

Теги

Похожие вопросы