我工作的公司的一位客户拥有一个活动目录 Windows 服务器和充当 samba 4 客户端的 Linux 计算机。该软件使用 getpwuid 来让当前用户执行它,但在该环境中,该函数返回 NULL指针和 errno 以值 11 结尾(EAGAIN,翻译为“再试一次”)。有人可以帮助我找出可能的原因吗?此外,当我在计算机上运行 passwd -S user 时,它会将用户返回为 L(锁定),但我们可以毫无问题地以该用户身份登录,并且在我的 Linux 计算机上的本地测试中,使用已登录的锁定用户,执行getpwuid 不会返回任何错误。
答案1
因此,我使用 getpwuid_r API 函数在一个简单的 C 源代码上运行 strace,发现缺少一些 Samba、Kerberos、Winbind、PAM 32 位库。我运行了 64 位版本的源代码,它工作正常,问题是缺少 32 位库(: