Как проверить, существует ли пользователь в списке нескольких серверов?

У меня есть около 100 серверов, на которых я хочу проверить, существует ли пользователь. Вместо того, чтобы заходить вручную на каждый сервер, я пытаюсь написать для этого скрипт. Итак, я написал следующий скрипт, чтобы проверить это.

#!/bin/bash
if id user1 >/dev/null 2>&1; then
        echo "user1 user exists"
else
        echo "user1 user does not exist"
fi

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


person meallhour    schedule 07.10.2016    source источник
comment
Эти 100 серверов Unix? или смешанный? (Windows, Unix.. и т.д.)   -  person Fadi    schedule 07.10.2016
comment
Кроме того, не уверен, что есть безопасный способ сделать это без SSH. Я думаю, вы могли бы выставить API на этих серверах, а затем иметь скрипт, который может проверить, есть ли пользователь там или нет. Если вы хотите сделать это через SSH, то, если пароля нет, вы можете пройтись по всем имеющимся у вас серверам и сделать что-то вроде этого: stackoverflow.com/a/14811956/4557537   -  person Fadi    schedule 07.10.2016
comment
Можете ли вы подключиться к каждому хосту по ssh без ввода пароля каждый раз? Если это так, просто заверните это в цикл for и используйте if ssh "$host" id user1 ..   -  person that other guy    schedule 07.10.2016
comment
все серверы являются серверами RHEL7. и все идентификаторы имеют пароли для них. я не могу ssh без пароля   -  person meallhour    schedule 07.10.2016


Ответы (1)


«у вас есть» подразумевает, что вы являетесь администратором, поэтому можете использовать учетную запись root с открытым ключом... просто убедитесь, что вы храните закрытый ключ в безопасности и разрешаете доступ по ssh без пароля.

В противном случае безопаснее иметь свою собственную учетную запись на всех машинах и подключаться к каждой из них по ssh и запускать ту команду id, о которой упоминал @that-other-guy.

Не имеет значения, что требуется пароль, если у вас есть открытый ключ ssh в файле author_keys на каждом хосте. Затем на вашей машине ваш ssh-агент поддерживает закрытый ключ, так что вам нужно только один раз ввести парольную фразу, и все готово.

person strobelight    schedule 07.10.2016