Я хочу сопоставить группу 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: