Быстрый способ adduser и userdel на нескольких машинах

В настоящее время я просто перехожу к каждому из наших серверов, чтобы напечатать

adduser <username> --firstuid 1101 --gid 1001 --disabled-password

Для добавления пользователя. Есть ли более быстрый способ сделать это на всех серверах одновременно? Благодарю.

ОБНОВИТЬ:

После выполнения вышеуказанной команды требуется некоторая информация пользователя: «Полное имя:», «Номер комнаты», «Рабочий телефон» и т. Д. Я хотел бы только один раз заполнить эту информацию и использовать ее для пользователя Создание на всех машинах. Благодарю.

ОБНОВИТЬ

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

Добавление списка пользователей на каждый сервер

Лучшим инструментом для этой работы являются newusers . Вам нужно будет создать текстовый файл, содержащий список пользователей и их данные. Если вы хотите добавить одного пользователя на каждый сервер, для этого файла потребуется только одна строка.

  1. Создайте список пользователей. Общий формат файла

     username:passwd:UID:GID:full name,room number,work phone,home phone,other:directory:shell 

    Итак, в вашем случае вам нужно будет использовать что-то вроде

     tom:password1:::"Tom Hanks","101","123456","654321","Tall":: danny:password2:::"Danny DeVito","102","222333","333222","Short":: 

    Обратите внимание, что я оставил параметры UID, GUID, каталог и оболочку пустым. Это означает, что будут использоваться значения по умолчанию.

  2. Теперь, когда вы создали список, вам нужно будет скопировать его на каждый удаленный компьютер, а затем добавить новых пользователей. Для этого вам все равно потребуется список соответствующих имен хостов или IP-адресов, по одному на строку, как в моем предыдущем предложении. После того как вы настроите все это, сохраните этот маленький скрипт как newusers.sh :

     #!/bin/bash while read ip; do scp users.txt [email protected]$ip:/home/root ssh [email protected]$ip newusers users.txt done 
  3. Сделайте исполняемый файл сценария ( chmod a+x newusers.sh ) и запустите его для каждого IP- chmod a+x newusers.sh в вашем файле:

     newusers.sh < IPs.txt 
  4. Все это будет намного проще, если у вас нет пароля ssh. Если вы этого не сделаете, запустите следующие команды, чтобы использовать ssh-ключи, позволяющие без доступа к паролю (вам все равно нужна кодовая фраза):

     ssh-keygen -t rsa while read ip; do ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]$ip; done < IPs.txt 

Добавление другого пользователя на каждый сервер

В этом случае я бы создал несколько другой файл. Он должен иметь IP-адрес или имя хоста, его соответствующий пользователь и данные, необходимые для его создания в каждой строке. Предполагая, что вы хотите настроить пароли, вы можете иметь простой текст (очевидно, некоторые проблемы безопасности здесь, не знаю, являются ли они релевантными в вашем случае) паролем в качестве четвертого поля. Кроме того, чтобы правильно разобрать имена с пробелами, убедитесь, что в качестве разделителя полей используется непространственный charcater . В приведенном ниже примере я использую - :

 192.168.1.10-tom-"Tom Hanks","101","123456","654321","Tall"-pass1 192.168.1.10-danny-"Danny DeVito","102","222333","333222","Short"-pass2 

Теперь прокрутите файл и создайте каждого пользователя на соответствующем компьютере. Обязательно установите IFAS variabe в свой разделитель полей, чтобы правильно разбора пробелов:

 while IFS='-' read ip name opts pass; do \ ssh [email protected]$ip useradd $name -mc $opts -p `openssl passwd $pass` -s /bin/bash \ done < list.txt 

Почему бы не использовать некоторую централизованную базу данных пользователей, такую ​​как LDAP (OpenLDAP или лучше 389 Directory Server )?

  • Как автоматически перезапустить MySQL и MongoDB, когда они не реагируют?
  • Как прокручивать вверх в окне терминала, в то время как новый ввод генерируется без отбрасывания назад (внизу)
  • Как проверить, есть ли у меня доступ к Sudo?
  • Используйте светодиод Caps Lock в качестве индикатора жесткого диска (или пользовательского)
  • Очищенный или неформатированный раздел в GParted
  • В /etc/resolv.conf, что именно делает опция конфигурации поиска?
  • Как отключить уведомление на "screen -D -R"
  • Ошибка сети PuTTY: программное обеспечение вызвало прерывание соединения
  • Ext4 (dm-crypt) и NTFS (битлокатор) для общего раздела
  • Требовать пароли пользователей на linux только в будние дни
  • «Отсоединить» и «Повторно подключить» xterms через X сеансов?
  • Давайте будем гением компьютера.