GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでグループのメンバーを一覧表示する方法

Linuxシステムのすべてのユーザーは、少なくとも1つのグループのメンバーである必要があります。このグループはプライマリグループと呼ばれます。ユーザーがプライマリグループを持っていない場合、そのユーザーはログインできません。プライマリグループとは別に、ユーザーは追加のグループのメンバーになることもできます。プライマリグループの設定は、 "/ etc/passwdファイル"に保存されます 。プライマリグループの名前は、このファイルの4番目のフィールドで指定されます。他の(セカンダリ)グループの設定は、 "/ etc / group"に保存されます。 ファイル。このチュートリアルでは、LinuxおよびUnixライクなオペレーティングシステムですべてのグループを検索して一覧表示し、グループのメンバーを一覧表示するさまざまな方法について説明します。

Linuxのすべてのグループを一覧表示する

グループに属するすべてのユーザーを一覧表示する前に、まず "compgen"を使用して利用可能なグループの一覧を検索しましょう。 指図。 Compgen プログラム可能な完了機能を操作するためのBASHが組み込まれています。

Linuxシステムで使用可能なすべてのグループを一覧表示するには、 "compgen"を実行します。 -gを使用したコマンド 以下のようなオプション:

 $ compgen -g 

出力例:

 root 
デーモン
置き場
sys
adm
tty
ディスク
lp
郵便物
ニュース
uucp

プロキシー



nova
rdma
libvirt
libvirt-qemu
libvirt-dnsmasq
コックピット-ws
コックピット-wsinstance
libvirtdbus

nogroup

compgenコマンドを使用してLinuxのすべてのグループを一覧表示する

"getent" を使用して、すべてのグループのリストを取得することもできます。 コマンド:

 $ getent group 

出力例:

 root:x:0: 
デーモン:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog、sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
メール:x:8:
ニュース:x:9:



nova:x:134:
rdma:x:135:
libvirt:x:136:sk、libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
コックピット-ws:x:138:
コックピット-wsinstance:x:139:
libvirtdbus:x:998:
ルート:x:0:
nogroup:x:65534:

getentコマンドを使用してLinuxのすべてのグループを一覧表示する

「/etc/ group」ファイルの最初のフィールドは、グループの名前です。したがって、 "awk"を使用できます または「カット」 以下のように、グループの名前を含む最初のフィールドのみを出力するコマンド:

$getentグループ| awk -F:'{print $ 1}' 
$getentグループ|カット-d:-f1 

グループをページごとに表示する場合は、「詳細」を使用します または「少ない」 以下のようなコマンド:

 $ more / etc / group 
 $ less / etc / group 

それでは、グループのメンバーを確認しましょう。

Linuxのグループのメンバーを一覧表示する

Linuxでグループメンバーを見つける方法はいくつかあります。ここでグループのメンバーを識別するために使用した方法を以下に示します。

  1. 「/etc/group」ファイルを使用
  2. 「getent」コマンドを使用する
  3. 「groupmems」コマンドを使用する
  4. 「members」コマンドを使用する
  5. 「lid」コマンドを使用します。

1。 / etc/groupファイルを使用してグループのメンバーを一覧表示します

グループが作成されると、グループの情報は "/ etc / group"に保存されます。 ファイル。 "cat" を使用して、このファイルの内容を見てみましょう。 コマンド:

 $ cat / etc / group 

出力例:

 root:x:0: 
デーモン:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog、sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
メール:x:8:
ニュース:x:9:



systemd-coredump:x:999:
nova:x:134:
rdma:x:135:
libvirt:x:136:sk、libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
コックピット-ws:x:138:
コックピット-wsinstance:x:139:
libvirtdbus:x:998:

Linuxグループ情報を表示する

前述したように、「/ etc/group」の最初のフィールドはグループの名前用に予約されています。上記の出力からわかるように、Linuxシステムには複数のグループが含まれている場合があります。

Linuxマシンで特定のグループのメンバーを表示するには、 "grep"を使用します 以下のように「/etc/group」ファイルからグループの詳細をフィルタリングするコマンド:

 $ grep'^ sudo' / etc / group 

または、

 $ grep -w sudo / etc / group 

上記のコマンドは、ユーザーが "sudo"という名前のグループに属していることを示しています。

 sudo:x:27:sk 

grepコマンドを使用してLinuxのグループのメンバーを一覧表示する

上記の出力からわかるように、「sudo」グループには「sk」という名前のメンバーが1つだけ含まれています。

2。 「getent」コマンドを使用してグループのメンバーを表示する

「getent」 コマンドは、 "/ etc / nsswitch.conf"で構成されているNameServiceSwitchライブラリでサポートされているデータベースのエントリを表示します。 ファイル。

「getent」コマンドを使用してLinuxで特定のグループのメンバーを検索するには、次のコマンドを実行します。

 $ getent group sudo 

このコマンドは、「sudo」グループのメンバーを表示します。

getentコマンドを使用してLinuxのグループのメンバーを検索する

getentコマンドの注目すべき利点の1つは、ローカルユーザーだけでなく、特定のシステムで構成されているすべてのuserdbバックエンド(LDAPなど)のすべてのユーザーを一覧表示することです。

3。 「groupmems」コマンドを使用してグループ内のユーザーを印刷する

「groupmems」 コマンドを使用すると、ユーザーはスーパーユーザー権限なしで独自のグループメンバーシップリストを管理できます。これはshadowutilsパッケージの一部です。

「groupmems」コマンドを使用してグループのメンバーを印刷するには、次のコマンドを実行します。

 $ sudo groupmems -g sudo -l <​​/ pre>  

Linuxでgroupmemsコマンドを使用してグループのメンバーを印刷する

このコマンドには2つの欠点があります。 「/etc/ group」ファイル内のグループのみを扱い、LDAPまたは他のユーザーデータベース内のグループは扱いません。 "/ etc / gshadow" を開こうとするため、スーパーユーザー権限も必要です。 ファイル。

4。 「members」コマンドを使用してグループメンバーを表示する

名前が明示的に示しているように、「members」コマンドは基本的にLinuxのグループのメンバーを表示します。 「members」コマンドは、ほとんどのLinuxディストリビューションではデフォルトでは使用できません。ディストリビューションのパッケージマネージャーを使用してインストールする必要があります。たとえば、Debianベースのシステムでは、次のコマンドを使用してインストールできます。

 $sudoaptインストールメンバー

インストールすると、次のような「members」コマンドを使用して、Linuxで特定のグループのメンバーを表示できます。

$メンバーsudo

Linuxでmembersコマンドを使用してグループメンバーを表示する

デフォルトでは、「members」コマンドはすべてのユーザーを表示します。 -pを使用します または-s プライマリグループまたはセカンダリグループのメンバーのみを表示します。

5。 「libuser-lid」コマンドを使用して、グループに属するすべてのユーザーを一覧表示します

「libuser-lid」 ユーザー名を含むグループ、またはグループ名に含まれるユーザーに関する情報を表示するために使用されるコマンド。

「libuser-lid」コマンドは、多くのLinuxディストリビューションではデフォルトでは使用できません。 「libuser」 このコマンドを提供するため、ディストリビューションのパッケージマネージャーを使用してインストールする必要があります。たとえば、Debian、Ubuntuでは、次のコマンドを使用して「libuser」パッケージをインストールします。

 $ sudo apt install libuser 

グループ内のすべてのユーザーを一覧表示するには、次のコマンドを実行します:

 $ sudo libuser-lid -g sudo 

このコマンドにはスーパーユーザーが必要であることに注意してください 実行する特権。

出力例:

 sk(uid =1000)

libuser-lidコマンドを使用して、Linuxのグループ内のすべてのユーザーを一覧表示します

詳細については、それぞれのコマンドのマニュアルページを参照してください。

それは今のところすべてです。これらは、Linuxでグループ内のユーザーのリストを見つけるためのいくつかの異なる方法です。これがお役に立てば幸いです。

関連記事:

  • Linuxでユーザーが属するグループを確認する方法
  • Linuxですべてのユーザーを一覧表示する方法


Linux
  1. Linuxがメインフレームに登場した経緯

  2. Linuxのグループのメンバーを一覧表示する

  3. グループのメンバーを表示するにはどうすればよいですか?

  1. Linuxでパッケージの依存関係を一覧表示する方法

  2. Linuxでユーザーをグループに追加する方法

  3. Linux グループ内のすべてのユーザーを一覧表示する方法は?

  1. LinuxSSコマンドの使用方法

  2. Linuxでユーザーを一覧表示する方法

  3. Linux でディレクトリの s パーミッションをクリアするにはどうすればよいですか?