Я хочу сопоставить Domain Users группы NT с группой UNIX, отличной от users на моем контроллере домена Active Directory 4.7.6, но когда я пытаюсь это сделать, происходит сбой следующим образом:

> net groupmap modify ntgroup='Domain Users' unixgroup='share' type=domain
Could not update group database
[255]

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

> wbinfo --set-gid-mapping=1000,S-1-5-21-...-513
failed to call wbcSetGidMapping: WBC_ERR_NOT_IMPLEMENTED
Could not create or modify gid to sid mapping
[1]

Как правильно управлять сопоставлением групп NT и UNIX в Samba 4?

РЕДАКТИРОВАТЬ: В списке рассылки Samba я нашел кого-то с похожей проблемой, так что, может быть, я мог бы обойти эту проблему, изменив непосредственно внутренний сервер LDAP? Что-то вроде:

ldbadd /var/lib/samba/private/sam.ldb.d/metadata.tdb ...

К сожалению, у меня нет опыта работы с LDAP, поэтому я не знаю, как предоставить ему действительный файл LDIF для моего варианта использования.

РЕДАКТИРОВАТЬ 2: Благодаря записи в блоге об управлении пользователями и группами Samba 4 в LDAP мне удалось отредактировать группу UNIX, с которой группа NT связана:

> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'

> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:

> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share

Таким образом, правильная группа теперь сообщается с помощью net groupmap , но wbinfo прежнему сообщает старое значение, поэтому, вероятно, она не получает свои данные из этой базы данных. Я не уверен, насколько важно, чтобы wbinfo сообщал правильную группу для моего варианта использования, но я посмотрю, смогу ли я это изменить, прежде чем использовать это в качестве своего ответа и отмечать, что оно решено.

1 ответ1

0

Из того, что я смог собрать воедино, кажется, что в Samba 4 нет инструмента, который позволял бы вам правильно настроить его, кроме непосредственного редактирования встроенного сервера LDAP.

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

Чтобы изменить отображение, я запустил следующие команды от имени пользователя root. Сначала мы должны получить SID Domain Users , потому что он будет уникальным для каждой инициализации сервера Samba.

root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> users

Затем мы обновляем запись встроенного сервера LDAP для SID, обновляя xidNumber: 100 с помощью предполагаемого UNIX GID:

root> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'
# 0 adds  1 modifies  0 deletes

Допустим, вы изменили его на GID 250 из группы UNIX под названием share , а затем вызов net groupmap приведет к тому, что группа, о которой сообщают, будет share:

root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share

Однако wbinfo из winbindd прежнему будет сообщать о старом GID:

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:

Поэтому мы должны сделать недействительной запись в кэше для Domain Users . После некоторых экспериментов мне удалось это сделать, попросив поискать обновленный GID:

root> wbinfo --gid-info 250
AD.EXAMPLE\domain users:x:250:

Который затем также сообщается правильно с помощью --group-info:

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:250:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .