Linuxでどのユーザーがグループに属しているかを確認するには?

Linuxでどのユーザーがグループに属しているかを確認するには?

私は最近新しいユーザーを作成し、特定のグループに割り当てています。特定のグループに割り当てられているすべてのユーザーを表示するコマンドがあるかどうか疑問に思います。 「groups」コマンドを試しましたが、このコマンドを使用するたびに「groups:notfound」というメッセージが表示されます。

答え1

私は使用することを好む得る注文する...

getent はシステムと同じネームサービスを使用するため、getent は LDAP などのネットワーク情報ソースから取得した情報を含むすべての情報を表示します。

したがって、グループの場合は、次のものを使用する必要があります。

getent group name_of_group

どこグループ名探しているグループと交換してください。これは補足グループメンバーシップのみを返し、このグループをデフォルトグループとして使用するユーザーは含まれません。

実行できる他の多くの照会があります...passwdこれは、基本グループをリストする必要があるもう1つの便利な照会です。

答え2

grepを使用できます。

grep '^group_name_here:' /etc/group

これには、このグループをプライマリグループとして使用しているユーザーではなく、セカンダリグループメンバーのみが一覧表示されます。また、LDAPなどのネットワークサービスのグループではなく、ローカルグループのみを見つけることができます。

答え3

簡単にできるgroups [username]

すべてのローカルユーザーとそのローカルグループを一覧表示するには、次の手順を実行します。

cat /etc/passwd | awk -F':' '{ print $1}' | xargs -n1 groups

「グループ:コマンドが見つかりません」というメッセージが表示された場合は、環境パスを悪いものに編集した可能性があります。パスをリセットするには:PATH=$(getconf PATH)

答え4

groupsこのコマンドは、ユーザーのグループメンバーシップを印刷します。lid次のコマンドを使用して、グループ内のユーザーを一覧表示できます。

# lid -g <groupname>

アップデート:Debianベースのディストリビューションではコマンド名が異なりますlibuser-lid。どちらのコマンドもlibuser@chris-downが言及したパッケージで提供されています。

$ sudo libuser-lid -g lpadmin
kadir(uid=xxxx)

関連情報