getpwuid retornando errno EAGAIN

3

Um dos customizadores da empresa em que trabalho, tem um diretório ativo windows server e máquinas linux agindo como clientes com o samba 4. O software usa getpwuid para obter o usuário atual que o está executando, mas nesse ambiente, essa função está retornando um ponteiro NULL e o errno termina com o valor 11 (EAGAIN, que significa "Tente novamente"). Alguém pode me ajudar com quais são as possíveis causas? Além disso, quando eu executo passwd -S usuário na máquina, ele retorna o usuário como L (bloqueado), mas podemos fazer o login como aquele usuário sem problemas e em testes locais na minha máquina linux, com um usuário já logado, executando getpwuid não retorna nenhum erro.

    
por Marcos Taranta 09.01.2017 / 19:10

1 resposta

0

Então eu corri strace em uma fonte C simples usando a função API getpwuid_r, e descobri que algumas bibliotecas Samba, Kerberos, Winbind, PAM 32 bits estavam faltando. Eu corri uma versão de 64 bits da fonte e funciona bem, o problema é com a falta de bibliotecas de 32 bits (:

    
por 08.02.2017 / 11:18