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でグループメンバーを見つける方法はいくつかあります。ここでグループのメンバーを識別するために使用した方法を以下に示します。
- 「/etc/group」ファイルを使用
- 「getent」コマンドを使用する
- 「groupmems」コマンドを使用する
- 「members」コマンドを使用する
- 「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で特定のグループのメンバーを表示できます。
$メンバーsudoLinuxで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ですべてのユーザーを一覧表示する方法