Winbind/IDMapping

Материал из ALT Linux Wiki
Версия от 16:16, 1 ноября 2024; Olga kmv (обсуждение | вклад) (Новая страница: «== Описание == Домены Windows различают пользователей и группы по уникальным идентификаторам безопасности (SID). Однако в Linux для каждого пользователя и группы требуются уникальные идентификаторы UID и GID. Служба winbindd отвечает за предоставление информации о по...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Описание

Домены Windows различают пользователей и группы по уникальным идентификаторам безопасности (SID). Однако в Linux для каждого пользователя и группы требуются уникальные идентификаторы UID и GID. Служба winbindd отвечает за предоставление информации о пользователях и группах домена.

Чтобы служба winbindd могла предоставлять уникальные идентификаторы для пользователей и групп в Linux, необходимо на клиенте домена настроить сопоставление идентификаторов в файле **/etc/samba/smb.conf** для:

  • Локальная база данных (домен * по умолчанию)
  • Домен AD
  • Каждый доверенный домен, из которого пользователи должны иметь доступ к ресурсам

Samba предоставляет различные модули сопоставления идентификаторов для конкретных конфигураций. Наиболее часто используемыми модулями являются:

Бэкенд Пример использования
tdb В доменах * по умолчанию
ad AD домены
rid AD домены
autorid AD домены и в доменах * по умолчанию

Планирование диапазонов идентификаторов Samba

Независимо от того, хранятся ли UID и GID Linux в Active Directory (если в AD включены расширения схемы RFC2307) или настроена их автоматическая генерация, для каждой конфигурации домена требуется уникальный диапазон идентификаторов. Этот диапазон не должен пересекаться с диапазонами других доменов.

Примечание: При пересечении диапазонов идентификаторов, Samba не сможет работать корректно.


Пример непересекающихся диапазонов сопоставления идентификаторов для доменов по умолчанию (*), AD-DOM и TRUST-DOM:

[global]
...
idmap config * : backend = tdb
idmap config * : range = 10000-999999

idmap config AD-DOM:backend = rid
idmap config AD-DOM:range = 2000000-2999999

idmap config TRUST-DOM:backend = rid
idmap config TRUST-DOM:range = 4000000-4999999
Примечание: Можно назначить только один диапазон для каждого домена. Поэтому необходимо оставить достаточно места между диапазонами доменов, чтобы расширить диапазон позже, если домен вырастет. Если позже назначить домену другой диапазон, права на файлы и каталоги, ранее созданные пользователями и группами, будет утрачено.


Внимание! Максимальное значение uid/gid:
2^31 - 1 = 2147483647


Также при планировании диапазонов необходимо учитывать, что в Linux есть четыре специальных UID, которые нельзя использовать.

  1. 0 → root (Суперпользователь).
  2. 65534 → Nobody UID, также называемый UID “переполнения” или аналогичный, используется в системах Linux для обозначения пользователя, который не имеет прав доступа к системным ресурсам.
  3. 65535, он же “16-разрядный (uid_t) -1uid_t”. До того, как ядро Linux 2.4 было 16-разрядным, и программы, скомпилированные для этого, следовательно, предполагали, что (uid_t) -1 равно 65535. Таким образом, этот UID непригоден для использования.

Домен * по умолчанию

В доменной среде вы добавляете одну конфигурацию сопоставления идентификаторов для каждого из следующих параметров:

  • Домен, членом которого является клиент, на котором производится настройка
  • Каждый доверенный домен

Однако для всех остальных объектов присваиваются идентификаторы из домена по умолчанию. Сюда входят:

  • Локальные пользователи и группы
  • Встроенные учетные записи и группы, такие как BUILTIN\Administrators

Бэкенд домена по умолчанию должен быть доступен для записи, чтобы назначенные идентификаторы постоянно сохранялись.

Для домена по умолчанию вы можете использовать один из следующих бэкендов:

  • tdb

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

Например, задайте следующее в разделе [global] в файле /etc/samba/smb.conf:

idmap config * : backend = tdb
idmap config * : range = 10000-999999

Для получения более подробной информации см. Использование tdb

  • autorid

При использовании бэкенда autorid при настройке домена * по умолчанию необязательно добавлять дополнительные конфигурации сопоставления идентификаторов для доменов.

Например, задайте следующее в разделе [global] в файле /etc/samba/smb.conf:

idmap config * : backend = autorid
idmap config * : range = 10000-999999

Для получения более подробной информации см. Использование autorid

Использование tdb

Служба winbindd по умолчанию использует доступный для записи бэкенд tdb для хранения таблиц сопоставления идентификаторов безопасности (SID), UID и GID. Это относится к локальным и встроенным пользователям и группам.

Используйте этот бэкенд только для домена * по умолчанию.

Использование ad

Вы можете настроить пользователя Samba AD на использование бэкенда ad.

Бэкенд ad реализует API, доступный только для чтения, для чтения информации об учетной записи и группе из AD. Это обеспечивает следующие преимущества:

  • Все настройки пользователей и групп хранятся централизованно в AD.
  • Идентификаторы пользователей и групп совпадают на всех клиентах.
  • Идентификаторы не хранятся в локальной базе данных, которая может быть повреждена, и, следовательно, права на файлы не могут быть потеряны.
Примечание: Бэкенд ad не поддерживает домены Active Directory с односторонними доверительными отношениями. Если вы настраиваете участника домена в Active Directory с односторонними доверительными отношениями, вместо этого используйте одну из следующих серверных частей сопоставления идентификаторов: tdb, rid или autorid.


Бэкенд часть ad считывает следующие атрибуты из AD:

Имя атрибута AD Тип объекта Сопоставление
sAMAccountName Пользователь и группа Имя пользователя или группы в зависимости от объекта
uidNumber Пользователь Идентификатор пользователя (UID)
gidNumber Группа Идентификатор группы (GID)
loginShell Пользователь Путь к командной строке пользователя

Предварительные требования

  • И пользователи, и группы должны иметь уникальные идентификаторы, заданные в AD, и идентификаторы должны находиться в диапазоне, настроенном в /etc/samba/smb.conf файле. Объекты, идентификаторы которых находятся за пределами диапазона, не будут доступны на клиенте.
  • У пользователей и групп должны быть заданы все необходимые атрибуты в AD.
  • Настроено сопоставление идентификаторов в файле /etc/samba/smb.conf.

Пример

idmap config * : backend = tdb
idmap config * : range = 3000-7999

idmap config TEST : backend = ad
idmap config TEST : range = 10000-999999
idmap config TEST : schema_mode = rfc2307

Чтобы разрешить клиенту домена считывать командную строку входа в систему и путь к домашнему каталогу пользователей из соответствующего атрибута AD, необходимо установить:

idmap config DOMAIN : unix_nss_info = yes

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

template shell = /bin/bash
template homedir = /home/%U