Problem po upgradzie openldap i nss_ldap
Jarek Koszuk
heretyk w pld-linux.org
Pią, 11 Sie 2006, 11:18:31 CEST
On Fri, August 11 2006 10:49, Jarek Koszuk wrote:
> Zrobiłem taki mały test:
> --- CUT HERE ---
> #include <stdio.h>
> #include <sys/types.h>
> #include <pwd.h>
>
> int main()
> {
> struct passwd *pwent;
> const uid_t uid = 5000;
> const char * user = "ldapuser";
>
> pwent = getpwuid(uid);
> if (pwent) {
> printf("getpwuid(%d) = %s, %d, %d\n", uid, pwent->pw_name,
> pwent->pw_uid, pwent->pw_gid);
> }
> else {
> printf("getpwuid(%d) = NULL\n", uid);
> }
>
> pwent = getpwnam(user);
> if (pwent) {
> printf("getpwnam(%s) = %s, %d, %d\n", user, pwent->pw_name,
> pwent->pw_uid, pwent->pw_gid);
> }
> else {
> printf("getpwnam(%s) = NULL\n", user);
> }
>
> return 0;
> }
> --- CUT HERE ---
> Użytkownik ldapuser o uidzie 5000 jest zdefiniowany w LDAP.
Jest jeszcze ciekawiej. W powyższym kodzie getpwuid() się nie łączy z LDAP,
a getpwnam() łączy się. Jeśli zamienię te funkcje miejscami, wtedy jest na
odwrót getpwnam() się nie udaje, a getpwuid() tak. Czyli nie udaje się
pierwsze wywołanie funkcji korzystającej z nss_ldap.
Skompilowałem nss_ldap z opcjami debugowania - może coś mi się uda znaleźć.
Jarek
Więcej informacji o liście dyskusyjnej pld-users-pl