2

Я использую winbind в системе RHEL 6. Все работает хорошо, кроме группового поиска, поэтому многие команды (включая sudo) мучительно медленны. Я сделал strace которая показывает, что winbind ищет каждую группу и каждого пользователя в каждой группе для текущего пользователя. В некоторых из этих групп более 20000 пользователей, поэтому простое sudo может занять 60 секунд.

Меня действительно волнует только ускорение команды sudo. Идеальные решения сделали бы это так:

  1. группы с числом пользователей более X не будут просматриваться, или
  2. sudo вообще обходит групповые поиски.

Вот мой текущий "smb.conf" для winbind:

workgroup = EXAMPLE
password server = AD1.EXAMPLE.ORG
realm = EXAMPLE.ORG
security = ads
idmap uid = 10000-19999
idmap gid = 10000-19999
idmap config EXAMPLE:backend = rid
idmap config EXAMPLE:range = 10000000-19999999
winbind enum users = no
winbind enum groups = no
winbind separator = +
template homedir = /home/%U
template shell = /bin/bash
winbind use default domain = yes
winbind offline logon = false

4 ответа4

1

У меня была такая же проблема после обновления sudo, и я узнал от Red Hat, что sudo изменил алгоритм разрешения членства в группе при переходе с sudo-1.7.4p5-13.el6_3.x86_64 на sudo-1.8.6p3-7.el6.x86_64. В sudo-1.7.4 членство в группах было разрешено для всех групп, перечисленных в /etc /sudoers, и, если имя пользователя было найдено в списке, ему были предоставлены привилегии sudo. В sudo-1.8.6 это было изменено, чтобы быть наоборот: sudo получил список групп, членом которых является пользователь, а затем проверил, были ли какие-либо из этих групп перечислены в sudoers.

Это приводит к getgrgid() для каждой группы, членом которой является пользователь, поэтому, если некоторые группы большие, это будет довольно медленно. Вы можете понизить версию sudo или поместить большие группы как пустые группы в локальный файл /etc /group, чтобы AD не связывался с ними (при условии, что система Linux не ссылается на большие группы для какого-либо контроля доступа).

1

Старый метод (т. Е. 1.7.x) может быть возвращен групповыми плагинами:

Defaults group_plugin="system_group.so"

В качестве альтернативы просто принудительно используйте /etc/group (без поиска winbind и т.д.):

Defaults group_plugin="group_file.so /etc/group"
0

отключить вложенные группы winbind nested groups = false

-2

или просто добавьте «winbind expand groups = 0» в ваш файл /etc/samba/smb.cnf (затем переключитесь на локальную корневую учетную запись и «/etc/init.d/winbind stop; /etc/init.d/samba restart; /etc/init.d/winbind start ")

первый sudo после перезагрузки может занять некоторое время (но не будет такой патокой, как вы испытываете), и, конечно, последующие будут такими, как ожидалось (быстро); для всех остальных вы можете просто использовать локальную учетную запись администратора для команд sudo (поскольку вы вынуждены создавать одну локальную учетную запись, да?)

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