lookup do grupo Winbind dolorosamente lento

2

Estou executando o winbind em um sistema RHEL 6. Tudo funciona bem, exceto as pesquisas de grupo, portanto, muitos comandos (incluindo sudo ) são dolorosamente lentos. Eu fiz um strace que mostra que o winbind procura cada grupo e cada usuário dentro de cada grupo para o usuário atual. Alguns desses grupos têm mais de 20000 usuários, portanto, um simples sudo pode levar 60 segundos para ser concluído.

Eu realmente me importo apenas em acelerar o comando sudo. As soluções ideais o tornariam assim:

  1. grupos com mais de X usuários não serão pesquisados ou
  2. o sudo ignora completamente as pesquisas de grupo.

Aqui está o meu "smb.conf" atual para 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
    
por Marty 04.12.2013 / 16:03

4 respostas

1

Eu tive esse mesmo problema depois de atualizar o sudo e descobri na Red Hat que o sudo mudou seu algoritmo de resolução de associação ao grupo quando ia do sudo-1.7.4p5-13.el6_3.x86_64 para o sudo-1.8.6p3-7.el6. x86_64. No sudo-1.7.4, a associação ao grupo foi resolvida para todos os grupos listados em / etc / sudoers e se o nome de usuário foi encontrado na lista, foi concedido privilégios de sudo. No sudo-1.8.6, isso foi mudado para ser o contrário - o sudo buscou uma lista de grupos dos quais o usuário é membro, depois verificou se algum desses grupos estava listado em sudoers.

Isso resulta em getgrgid () para cada grupo do qual o usuário é membro, portanto, se alguns grupos forem grandes, isso será bastante lento. Você pode fazer o downgrade do sudo ou colocar os grupos grandes como grupos vazios no seu arquivo local / etc / group para que o AD não seja contatado para eles (assumindo que os grandes grupos não são referenciados pelo sistema Linux para nenhum controle de acesso). p>     

por 27.01.2014 / 22:21
1

O método antigo (por exemplo, 1.7.x) pode ser revertido por plugins de grupo:

Defaults group_plugin="system_group.so"

Alternativamente, basta forçar o uso de /etc/group (sem pesquisas winbind, etc.):

Defaults group_plugin="group_file.so /etc/group"
    
por 04.06.2014 / 17:17
0

desativar grupos aninhados winbind nested groups = false

    
por 05.12.2013 / 21:23
-2

ou simplesmente adicione "winbind expand groups = 0" ao seu arquivo /etc/samba/smb.cnf (depois mude para a conta raiz local e "/etc/init.d/winbind stop; /etc/init.d/ samba restart; /etc/init.d/winbind start ")

primeiro sudo depois de uma reinicialização pode demorar um pouco (mas não será melaço como você está experimentando), e com certeza, subseqüente será como esperado (rápido); para qualquer outra pessoa, você pode usar uma conta de administrador local para comandos sudo (como você é forçado a criar uma conta local, sim?)

    
por 10.05.2017 / 20:21