web-dev-qa-db-ja.com

Sudoの修正方法:setreuid(ROOT_UID、user_uid):操作はエラーを許可していませんか?

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経由ではなく、サーバーに直接ログインする必要があるため、それほど多くの解決策はありません。

3
David R.

これは 既知のバグ Debian(およびUbuntu)がOpenSSLからGnuTLSwithOpenLDAPOpenSSLのライセンスの問題のため。問題は、libgcryptGnuTLSの現在の暗号化バックエンド)の初期化方法にあります。この問題はUbuntu 9.10以降に発生しており、アップストリームGnuTLSlibgcrypt(明らかに他の問題もある)から libnettle に切り替えています。この変更によりダウンストリームになるまで、次の3つの回避策があります。これらはすべて、上記の バグレポート に列挙されています。

  1. コンパイルlibgnutls26ソースからuselibnettleの代わりにlibgcrypt
  2. Compilelibldapソースからusegnutls26の代わりにopenssl
  3. Uselibnss-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を設定する必要がある場合は、かなり良いハウツー herehere もあります。

UPDATE:2012年5月29日の時点で、LucidNatty、およびOneiric。これにより、LDAPログインの問題が修正されました。ただし、2012年9月6日の時点で、この新しいパッチは他のパッケージを破壊することが示されています 1 であり、削除されました。また、 このバグ で説明されているように、nscdを使用した回避策はまったく機能しません。これは不幸な回帰であり、さらに悪いことに、問題はPreciseおよびQuantal。最終的に、唯一の本当の修正はlibgcrypt11を捨ててlibnettle4を支持することです。 Precise および Quantal の新しいlibgnutls28はすでにこれを行っていますが、libldapはまだlibgnutls26を使用しています。

compilelibgnutls26からsourceへの指示はコメントで説明されています 222 、および 24 in このバグレポート しかし、指示はPreciseに対してのみ機能するようです。

5
Chris

安全でない対策:SSLを無効にする

0
Fabio Feitosa