Linux 内のグループにどのユーザーが属しているかを知るにはどうすればよいですか?

Linux 内のグループにどのユーザーが属しているかを知るにはどうすればよいですか?

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

答え1

私はゲットエント指示 ...

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 ベースのディストリビューションでは、コマンド名は次のように異なります。 @chris-down が述べたように、libuser-lid両方のコマンドはパッケージによって提供されます。libuser

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

関連情報