Сопоставление групп NT и UNIX в Samba 4

Сопоставление групп NT и UNIX в Samba 4

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

> 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

Из того, что мне удалось собрать воедино, следует, что в 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:

Связанный контент