Быстрый способ 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 )?

  • Почему Windows занимает больше дискового пространства по сравнению с Linux?
  • Как объединить поиск и grep для сложного поиска? (GNU / linux, find, grep)
  • Может ли установочный образ быть записан на жесткий диск?
  • Как отключить автоконфигурацию на IPv6 в Linux?
  • Как делать заметки в PDF-файлах в Linux
  • Как переместить раздел в GNU / Linux?
  • Настройка sysrq в Linux
  • Версия Linux с командной строкой?
  • Интернет-киоск для мотеля?
  • Как я могу установить CentOS 6 без gui?
  • Что вызывает запросы активации Windows 7?
  • Давайте будем гением компьютера.