Ubuntu 11.10サーバーでLDAP認証を使用しています。 libpam-ldapをインストールし、それに応じて設定を行いました。うまく動作しますが、Sudoを実行しようとするとたまにこのエラーが発生することがあります。
Sudo: setreuid(ROOT_UID, user_uid): Operation not permitted
ほとんどの場合うまくいくので、sudoersが正しく設定されていることは知っています。ログインしただけでなく、他の人も同じ問題を抱えています。このエラーが発生しているとき、通常のシステムユーザーとはまったくSSH接続できません。直接サインインすると、gnome-terminalを起動できません。
サーバーを再起動すると、問題はなくなります。 「コース、それは解決策ではありません。もしそれがprodサーバーであれば、私は困っています。
どうすれば修正できますか?
編集3/1/12:nscdサービスを停止して開始すると、問題がなくなることがわかりました。
service nscd stop
service nscd start
Ssh経由ではなく、サーバーに直接ログインする必要があるため、それほど多くの解決策はありません。
これは 既知のバグ Debian(およびUbuntu)がOpenSSLからGnuTLSwithOpenLDAPOpenSSLのライセンスの問題のため。問題は、libgcrypt
(GnuTLSの現在の暗号化バックエンド)の初期化方法にあります。この問題はUbuntu 9.10以降に発生しており、アップストリームGnuTLSはlibgcrypt
(明らかに他の問題もある)から libnettle に切り替えています。この変更によりダウンストリームになるまで、次の3つの回避策があります。これらはすべて、上記の バグレポート に列挙されています。
libgnutls26
ソースからuselibnettle
の代わりにlibgcrypt
libldap
ソースからusegnutls26
の代わりにopenssl
libnss-ldapd
の代わりにlibnss-ldap
。これにはいくつかのバリエーションがあります。最初にlibpam-ldap
を使用します。これは、libnns-ldap
を依存関係として取り込み、構成を複雑にします。次に、完全ではないlibpam-ldapd
を使用します。特に、ユーザーのサブセットを制限できるすべてのpam _ *構成が欠けています。この欠陥を克服するために、slapdでnssovオーバーレイを使用できますが、これはUbuntuのslapdには含まれていません(ソースからコンパイルする必要があります)。 libpam-ldapd
は、nslcd
デーモンを使用してLDAPルックアップを処理します。したがって、構成には/etc/nslcd.conf
ではなく/etc/ldap
を使用します。特に、pam_authz_search
を使用して認証を制限できます。詳細については、man nslcd.conf
を参照してください。 startTLSを設定する必要がある場合は、かなり良いハウツー here と here もあります。UPDATE:2012年5月29日の時点で、Lucid、Natty、およびOneiric。これにより、LDAPログインの問題が修正されました。ただし、2012年9月6日の時点で、この新しいパッチは他のパッケージを破壊することが示されています 1 であり、削除されました。また、 このバグ で説明されているように、nscdを使用した回避策はまったく機能しません。これは不幸な回帰であり、さらに悪いことに、問題はPreciseおよびQuantal。最終的に、唯一の本当の修正はlibgcrypt11
を捨ててlibnettle4
を支持することです。 Precise および Quantal の新しいlibgnutls28
はすでにこれを行っていますが、libldap
はまだlibgnutls26
を使用しています。
compilelibgnutls26
からsourceへの指示はコメントで説明されています 22 、 2 、および 24 in このバグレポート しかし、指示はPreciseに対してのみ機能するようです。
安全でない対策:SSLを無効にする