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

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

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

  • Debian Wheezy (armhf)
  • Debian Stable (amd64)
  • Debian Unstable (amd64)
  • Ubuntu 14.04 (amd64)

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

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

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

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

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

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

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

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

Есть несколько продуктов, которые легко справляются с этим. Кукольный , Шеф-повар , Несравненный и Соль являются одними из наиболее распространенных. Все эти инструменты подпадают под так называемое « Управление конфигурацией ».

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

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

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

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

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

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

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