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