web-dev-qa-db-ja.com

nsswitch.confでの[!NOTFOUND = return]の使用

Nsswitch.confのpasswdおよびgroupsconfigにこの設定を使用している人はいますか?私が働いているところでは、グループがローカルとldapの両方に存在し、グループメンバーシップなどの問題を引き起こしている状況を支援することが示されていると言われています。しかし、この構成は、グループを認識するnscdを完全に台無しにしているようです。およびそのすべてのメンバーですが、ユーザーがすべてのリモートグループのメンバーであると言うためにデータを反転することはありません。

最初は、完全に利用可能な環境を考えると、[FOUND = return]とまったく同じであるように見えます。これは、とにかくステージ間の暗黙のデフォルトです。ただし、明らかにRedhatでの長いチケットにより、その構成の推奨される使用法が得られました。

4
Chris Phillips

_[FOUND=return]_には、FOUNDが存在しないため、デフォルトの動作が得られます。 _nss_parse_service_list_(glibcリポジトリ内)で定義されている関数_nss/nsswitch.c_をチェックインできます。

参考までに、この動作は次のとおりです。

  • 成功->戻る
  • 見つかりません->続行
  • unavail->続行
  • もう一度試してください->続行

_[!NOTFOUND=return]_を導入すると、次の場所に移動します。

  • 成功->戻る
  • 見つかりません->続行
  • unavail-> return
  • tryagain-> return

したがって、最初のソースが利用できない(永続的または一時的)ために失敗し、その場合にのみ、サービスの実行を停止します。バックエンドに障害が発生しなければ、これは何の違いもありません。このような_[]_ステートメントは、直前のソースと直後のソースの間で発生することだけに影響し、それ以上は影響しないことにも注意してください。

完全に利用できない環境でRedHatがそれ以上のものがあると判断した場合は、それが正確に何であるかを説明し、Red Hat EnterpriseLinuxに対して機能リクエストを開いてセマンティクスを適切に定義するように依頼することをお勧めします。ドキュメンテーション。

nsswitch.conf(5)と私の経験(そしてRed Hatでのテクニカルサポートエンジニアリングが含まれています:)に関する限り、これでほぼすべてです。

4
Pierre Carrier