Servidor Ubuntu 12.04, AMD64, autenticação via LDAP. Estou tendo problemas para fazer com que os grupos LDAP mapeiem para minha conta de usuário ao efetuar login, embora 'grupo getent' mostre o conjunto correto de grupos atribuídos a minha conta. Mais confusamente, às vezes funciona e outras vezes não.
Por exemplo, aqui está meu login atual:
$ ssh zoyd
$ id
uid=522(cswingley) gid=513(Domain Users) groups=513(Domain Users), \
4(adm),24(cdrom), 27(sudo),30(dip),46(plugdev),111(lpadmin), \
112(sambashare)
Mas:
$ getent group | grep cswingley | sort -t : -n -k3 | \
awk 'BEGIN {FS=":"} {printf("%s(%s)\n", $3, $1);}' | \
xargs | sed 's/) /),/g'
4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),111(lpadmin), \
112(sambashare),500(level2),502(gis),503(level3), \
504(management_accounting),544(Administrators),606(abruser),\
619(proposal),621(project_managers),700(unixadmin),\
701(ntadmin),1000(cswingley)
Isso acontece mais ou menos na metade do tempo em que faço login. Nas outras vezes, todos os meus grupos (local e LDAP) são mapeados com sucesso. getent group
sempre mostra a lista correta.
Acredito que isso também esteja acontecendo com meus usuários do Samba, que muitas vezes impedem que eles cheguem a compartilhamentos ou diretórios restritos a determinados grupos Unix / Samba. Isso também impede que eu junte computadores ao meu domínio porque o LDAP não está me designando para o grupo com esse poder ( ntadmin
).
A única coisa que vejo no slapd
logs (atualmente definido como loglevel 256
) que parece suspeito é isso, mas não tenho certeza se está relacionado:
conn=8570 op=1 SRCH base="dc=abrinc,dc=com" scope=2 deref=0 \
filter="(&(objectClass=posixAccount)(uid=cswingley))"
conn=8570 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
conn=8570 op=2 DISCONNECT tag=101 err=2 text=controls require LDAPv3
conn=8570 op=2 do_search: get_ctrls failed
conn=8570 fd=57 closed (operations error)
Aqui está uma lista dos pacotes com 'ldap' em seu nome, atualmente instalados no servidor:
$ sudo dpkg --list '*ldap*' | grep '^i' | \
sed 's/^[^ ]* *\([^ ]* *[^ ]*\).*//'
ldap-auth-client 0.5.3
ldap-auth-config 0.5.3
ldap-utils 2.4.28-1.1ubuntu4
libldap-2.4-2 2.4.28-1.1ubuntu4
libnet-ldap-perl 1:0.4300-2ubuntu1
libnss-ldap 264-2.2ubuntu2
libpam-ldap 184-8.5ubuntu2
smbldap-tools 0.9.7-1ubuntu1
sudo-ldap 1.8.3p1-1ubuntu3.3
Atualização: Eu também tentei instalar os pacotes libnss-ldapd e libpam-ldapd (para substituir as versões não-* d acima), mas isso também não resolve o problema.
Editar: é um bug aberto para esse problema no rastreador de bugs do Ubuntu: link