Назад | Перейти на главную страницу

Групповое сопоставление не работает для групп AD

У нас есть ActiveDirectory, откуда мы получаем наших пользователей. Таким образом, аутентификация на Linux-машине работает через pam.

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

Мои идентификаторы безопасности:

SID for local machine MYSERVER is: S-1-5-21-1487948860-3705201071-3703638889  
SID for domain MYDOMAIN is: S-1-5-21-1960408961-115176313-682003330

Я создал групповое сопоставление с:

myserver:~# net groupmap add ntgroup="Domain Users" rid=513 unixgroup=users

Групповое отображение выглядит так:

myserver:~# net groupmap list -v

Domain Users
        SID       : S-1-5-21-1487948860-3705201071-3703638889-513
        Unix gid  : 100
        Unix group: users
        Group type: Domain Group
        Comment   : Domain Unix group
Administrators
        SID       : S-1-5-32-544
        Unix gid  : 10029
        Unix group: BUILTIN\administrators
        Group type: Local Group
        Comment   :
Users
        SID       : S-1-5-32-545
        Unix gid  : 12929
        Unix group: BUILTIN\users
        Group type: Local Group
        Comment   :

Но когда я вхожу в систему как пользователь AD, я не вхожу в группу пользователей. Все группы AD отображаются правильно, а также отображаются группы "BUILTIN \ users" и "BUILTIN \ administrator", но нет группы "users"

Я тоже пробовал

myserver:~# net groupmap delete ntgroup="Domain Users"
myserver:~# net groupmap delete ntgroup="Users"
myserver:~# net groupmap add ntgroup="Users" rid=545 unixgroup=users

Но это, похоже, не имеет никакого эффекта (перезапуск smbd, перезапуск winbindd выполнен). Пользователь по-прежнему находится в группе "BUILTIN \ users" и не имеет записи для "users"

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

Мы используем самбу версии 3.6.3 на ядре SLES 11 3.0.76

== РЕДАКТИРОВАТЬ == 07.04.2016 15:34

Я попытался отобразить две нестандартные группы. Группа AD - это grp_production, локальная группа linux - это игры.

myserver:~# net groupmap add ntgroup="grp_production" rid=20443 unixgroup=games

Результат

myserver:~# net groupmap list -v
..
grp_production (S-1-5-21-1960408961-115176313-682003330-20443) -> games
..

Затем я вхожу в систему как пользователь (член группы AD grp_production) на Linux-машине.

myserver:~# groups | grep games

Группы игр нет :-(

== РЕДАКТИРОВАТЬ 08.04.2016 07: 39 ==
Единственная ошибка, которую я обнаружил в журналах, была в /var/log/samba/log.winbindd-idmap

[2016/04/07 13:54:25.146170,  1] ../librpc/ndr/ndr.c:284(ndr_print_function_debug)
       wbint_Sid2Gid: struct wbint_Sid2Gid
          in: struct wbint_Sid2Gid
              dom_name                 : NULL
              sid                      : *
                  sid                      : S-1-5-21-1960408961-115176313-682003330-28693
[2016/04/07 13:54:25.146221, 10] winbindd/idmap_util.c:234(idmap_sid_to_gid)
  idmap_sid_to_gid: sid = [S-1-5-21-1960408961-115176313-682003330-28693], domain = ''
[2016/04/07 13:54:25.146247, 10] winbindd/idmap.c:507(idmap_backends_sid_to_unixid)
  idmap_backends_sid_to_unixid: domain = '', sid = [S-1-5-21-1960408961-115176313-682003330-28693]
[2016/04/07 13:54:25.146267, 10] winbindd/idmap.c:376(idmap_find_domain)
  idmap_find_domain called for domain ''
[2016/04/07 13:54:25.146290,  1] winbindd/idmap.c:209(idmap_init_domain)
  invalid range '100' specified for domain '*'
[2016/04/07 13:54:25.146308, 10] winbindd/idmap_util.c:260(idmap_sid_to_gid)
  idmap_backends_sid_to_unixid failed: NT_STATUS_NONE_MAPPED
[2016/04/07 13:54:25.146330, 10] lib/gencache.c:183(gencache_set_data_blob)
  Adding cache entry with key = IDMAP/SID2GID/S-1-5-21-1960408961-115176313-682003330-28693 and timeout = Thu Apr  7 13:56:25 2016

Я 'grep' все журналы для "игр" и "grp_production" безрезультатно.

Ваш net groupmap add команда добавила префикс SID локальной машины к вашему RID, поэтому она фактически сопоставила группу «Пользователи домена» вашего локального компьютера, что не имеет смысла.

Либо скажи net указывает, что ваш RID относится к домену, указав соответствующий type вариант:

net groupmap add ntgroup="Domain Users" rid=513 type=domain unixgroup=users

или укажите полный SID:

net groupmap add ntgroup="Domain Users" sid=S-1-5-21-1960408961-115176313-513 unixgroup=users

Возможно, вам сначала придется удалить ошибочное сопоставление.

Они хорошо знают sid для встроенных групп, но я думаю, что их можно компенсировать, если есть доверие домена, то есть там, где есть 2 или более BUILTIN / пользователей

можете ли вы проверить sid для группы AD в Powershell

Get-ADGroup -Identity users | select sid

посмотрите, есть ли проблемы с перечислением пользователей на сервере Samba

net usersidlist

еще один момент - группа пользователей уже связана с чем-то?

net groupmap list

если группа уже сопоставлена ​​с чем-то, тогда вы не передаете значение rid, rid используется для «добавления» группы, отбрасывайте избавление, если вы просто «изменяете»

 net groupmap modify ntgroup='Domain Users' unixgroup='users'