/etc/nsswitch.confの場合:

passwd: files ldap 

この行は、getent passwd最初に/etc/passwdを実行します。リストしてから、LDAPのすべてのユーザーを調べますか?

Red Hatサーバーで試してみたところ、/etc/passwdが36行しかないのに、何千行もスクロールしていました。

コメント

  • あなたの説明は完全に正常なようです。LDAPを使用すると、getent passwdにリストが表示されます。すべてのユーザー(ローカル+ ldap)
  • ありがとうございます。'正常である可能性が非常に高いです。LinuxでLDAPを使用するのはかなり新しいです。以前は管理していました。構成管理ユーティリティを使用しているユーザー。

回答

getent指定した「データベース」の結果が何であれ返されます。/etc/nsswitch.confの内容に基づいて、この「データベース」を構築するときに使用するバックエンドを決定します。

getentは、使用状況ページgetent --helpにクエリを実行すると「データベース」を一覧表示します。

Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow 

私の知る限り、waはありませんy /etc/nsswitch.confで構成されているさまざまなバックエンドのすべての結果を提供する動作を無効にします。

getentおよび/etc/nsswitch.confはどちらもnss(Name Service Switch)の一部です。

nssのマニュアルページからの抜粋

パスワードやグループデータベースなどのシステムデータベースからデータを取得する関数への各呼び出しは、GNUCライブラリのNameServiceSwitch実装によって処理されます。提供されるさまざまなサービスは独立したモジュールによって実装され、それぞれが自然に互いに大きく異なります。

GNU Cライブラリに付属するデフォルトの実装はデフォルトで保守的であり、安全でないデータを使用しません。これは、状況によっては、特にデータベースが大きい場合に、非常にコストがかかる可能性があります。一部のモジュールでは、システム管理者は、これらが安全であることがわかっている場合、ショートカットの取得を要求できます。その場合、仮定が正しいことを確認するのはシステム管理者の責任です。

実装が時間の経過とともに変化する他のモジュールがあります。実装がメモリ消費のために速度を犠牲にするために使用された場合、問題が発生する可能性があります。設定が切り替わります。

バックエンド

これらにはさまざまなものがあり、ここで説明するには多すぎます。ただし、ここで説明するだけで十分です。いくつか例を挙げると、sssd(sss / LDAP)、NIS、NIS +などのバックエンドです。

つまり、システムが

ファイルは、getent passwdgetentが表示する出力に影響します。 div>。

参照

コメント

  • sssdハウツーリンクが無効になっています。
  • @ GhostLyrics-リンクが変更されました

回答

はい、getent passwdとだけ言うと、nsswitchにリストされているデータベースのいずれかで見つけることができるすべてのユーザーがリストされます。

コメント

  • 列挙を有効にするNSSプロバイダーのみ。たとえば、sssを使用すると、一部のドメインの列挙を無効にできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です