Как я могу поддерживать постоянные учетные записи пользователей на нескольких машинах?

15

Теперь у меня есть Raspberry Pi, на котором работает Debian Wheezy. У меня есть пара машин (4 физических, 2 виртуальных), и я хотел бы объединить учетные записи пользователей на этих машинах.

На машинах, на которых я работаю, установлены следующие производные Debian:

  • Debian Wheezy (armhf)
  • Стабильный Debian (amd64)
  • Нестабильный Debian (amd64)
  • Ubuntu 14.04 (amd64)

Как я могу настроить учетные записи пользователей на всех компьютерах одинаково? Я хочу, чтобы имя, длинное имя, пароль и UID были согласованы.

В будущем я хотел бы объединить другие части конфигурации, возможно,

  • HTCondor
  • Точки Маунт (Самба)
  • /etc/apt/sources.list
  • Автоматические обновления

Поскольку я использую разные варианты Ubuntu и Debian, они sources.listбудут немного отличаться, но они будут одинаковыми для каждого дистрибутива.

Что было бы хорошим подходом к этому?

Мартин Уединг
источник
1
Вы должны настроить всех пользователей как ldapпользователей.
Рамеш
1
@Ramesh Означает ли это, что пользователи могут входить в систему только при наличии сетевого подключения?
Мартин Юдинг
Да. Вам может понадобиться подключение к сети для ldapработы. Но это избавляет вас от необходимости настраивать пользователей на всех машинах.
Рамеш
Есть ли одна машина, которая всегда включена и доступна через сеть? Есть ли один компьютер, который всегда включен и доступен, когда вы хотите сменить пароль?
Жиль "ТАК - перестань быть злым"
1
@ramesh Вы можете иметь автономный LDAP с помощью SSSD .
Патрик

Ответы:

13

У вас в основном есть 2 варианта.

  1. Используйте локальную систему аутентификации каждого компьютера и отправьте изменения учетных данных для всех из них.
  2. Используйте централизованный сервер аутентификации.

1. Синхронизированная локальная аутентификация

Есть несколько продуктов, которые выполняют это легко. Puppet , Chef , Ansible и Salt - некоторые из наиболее распространенных. Все эти инструменты подпадают под то, что известно как « Управление конфигурацией ».

По сути, у вас будет хранилище, в котором вы определяете свои учетные данные для аутентификации как код. «Код» будет таким же простым, как директива, в которой указано имя пользователя и хешированный пароль. Затем вы синхронизируете этот код со всеми своими машинами и запускаете любой инструмент CM, который вы выбрали. Затем инструмент CM обновит учетные данные локальной аутентификации каждого пользователя (а также создаст пользователя при необходимости).

Поскольку вы сказали, что хотите выполнить и другие типы конфигурации, это может быть более подходящим решением.

2. Централизованная аутентификация

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

Теперь одной из ваших первых мыслей может быть: «Я хочу, чтобы аутентификация работала, даже если центральный сервер не работает». Это легко сделать с помощью SSSD . Когда пользователь впервые входит в систему на сервере, SSSD обращается к LDAP (или к Kerberos, если он используется), и, если учетные данные действительны, он кэширует их на локальном компьютере. Если сервер LDAP недоступен, он возвращается к использованию своего кэша. Таким образом, пока пользователь выполнил вход один раз, он сможет продолжить вход в систему, если LDAP недоступен.

3. Сочетание двух

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

Патрик
источник
Большое спасибо, это должно дать мне достаточно отправных точек! :-)
Мартин Юдинг