Eu tento adicionar o módulo pam_ldap no Suse 11 Sp1 Server 64 bit usando:
pam-config -a --ldap
Informações do sistema operacional:
node01:~ # file $(which pam-config)
/usr/sbin/pam-config: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), stripped
node01:~ # uname -m
x86_64
Então eu acho que o comando pam-config também usa o módulo pam neste caminho /lib64/security/pam_ldap.so
Mas não é assim, parece sob o diretório / lib / security /, então ele procura pela versão de 32 bits do módulo pam
node01:~ # pam-config --add --ldap
ERROR: module /lib/security/pam_ldap.so is not installed.
pam-config: invalid option -- --ldap
Try 'pam-config --help' or 'pam-config --usage' for more information.
Usando strace:
access("/lib/security/pam_ldap.so", F_OK) = -1 ENOENT (No such file or directory)
pam-config não encontrou o módulo de versão de 3 bits para o ldap, mas ele foi encontrado para 64 bits
access("/lib64/security/pam_ldap.so", F_OK) = 0
write(2, "pam-config: invalid option -- --"..., 37pam-config: invalid option -- --ldap
) = 37
write(2, "Try 'pam-config --help' or 'pam-"..., 70Try 'pam-config --help' or 'pam-config --usage' for more information.
) = 70
exit_group(1) = ?
módulos pam_ldap instalados
node01:~ # zypper se pam_ldap
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
--+----------------+--------------------------------------+--------
i | pam_ldap | A PAM Module for LDAP Authentication | package
| pam_ldap-32bit | A PAM Module for LDAP Authentication | package
Eu instale o pam_ldap-32bit ou crie um symlink com:
ln -s /lib64/security/pam_ldap.so /lib/security/pam_ldap.so
E assim, funciona
Então, minha pergunta é: por que o binário de 64 bits procura uma biblioteca de 32 bits?