私は最近新しいユーザーを作成し、特定のグループに割り当てています。特定のグループに割り当てられているすべてのユーザーを表示するコマンドがあるかどうか疑問に思います。 「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)