Linuxグループ管理テーブル

Linuxグループ管理テーブル

Red Hat Enterprise Linux 7.9
Shell=sh の使用

私が実行したとき... getent group <group-name>- コマンド1

例えば。

>>> getent group grp1
    grp1:VAS:67458 usr3,usr2,usr1

>>> groups usr4
    usr4: unixuser grp1 

>>> getent group grp1
    grp1:VAS:67458 usr4,usr3,usr2,usr1  

結果が最新ではなく、一部のユーザーが応答から欠落しています。

私が実行したとき... groups <user-name>- コマンド2

ユーザーが属する正しいグループを返し、コマンド1には以前getentに欠落していたコマンドグループにユーザーが含まれます。

何が起こっているのか、そして特定のUNIXグループのメンバーをリストするより良い方法があるかどうかを理解するのに役立ちます。

/etc/nsswitch.conf

ここに画像の説明を入力してください。

ベストアンサー1

Linuxの観点からは、使用しているコマンドに問題はありません。しかし、ここで何が起こるのかは、usr4find itを使用するように求められるまで、Linuxが自分のグループを知らないことですgroups usr4

お使いのシステムはnisplusを使用するように設定されていますnsswitch.conf。これは、ユーザーとグループを保存する他のコンピュータにデータベースがあることを意味します。このタイプのブリッジには、実際にデータベース全体をローカルのUNIXシステムにコピーする操作は含まれません。特に、一部のディレクトリサーバーは何千人ものユーザーをホストできるためです。

したがって、groups usr4nisplusはユーザーを検索してusr4そのグループを評価するようにトリガーされます。これは情報のローカルキャッシュを更新し、その後の情報を更新しますgetent group grp1

ただし、getent group grp1nisplusはディレクトリサーバー上のこのグループのすべての可能なユーザーを検索するためにトリガされません。これは非常に費用がかかり、何千人ものユーザーを引き付けることができます。

残念ながら、唯一のオプションは、リモートサーバー(ADサーバー)に連絡するか、システム管理者にユーザーを探すように依頼することです。

リモートディレクトリサーバーへのLDAPアクセス権がある場合は、LDAPクエリを作成し、openldapまたは同様のツールを使用してクエリを実行できます。

おすすめ記事