getpwuid は errno EAGAIN を返します。

getpwuid は errno EAGAIN を返します。

私が働いている会社のクライアントには、Active Directory WindowsサーバーとSamba 4クライアントとして機能するLinuxシステムがあります。ソフトウェアはgetpwuidを使用して現在のユーザーが実行できるようにしますが、その環境では関数はNULLポインタを返し、errnoは値11(EAGAIN、「再試行」に変換されます)で終わります。考えられる原因を特定するのに役立つ人はいますか?また、自分のコンピュータでpasswd -S userを実行すると、ユーザーはL(ロック)として返されますが、問題なくそのユーザーとしてログインできます。 、getpwuidを実行してもエラーは返されません。

答え1

だから私はgetpwuid_r API関数を使って単純なCソースコードでstraceを実行しましたが、いくつかのSamba、Kerberos、Winbind、PAMの32ビットライブラリが見つからないことがわかりました。 64ビット版のソースコードを実行しましたが、正常に動作しました。問題は、32ビットライブラリが欠落していることです(:

関連情報