
Linuxでは、グループはユーザーの集まりです。グループの主な目的は、グループ内のユーザー間で共有できる特定のリソースの読み取り、書き込み、実行権限などの一連の特権を定義することです。ユーザーを既存のグループに追加して、グループが付与する特権を利用できます。
このチュートリアルでは、ユーザーがメンバーになっているすべてのグループを表示する方法について説明します。また、グループのすべてのメンバーを一覧表示する方法についても説明します。
Linuxグループ#
ユーザーが属することができるグループには、次の2つのタイプがあります。
-
プライマリまたはログイングループ –は、ユーザーによって作成されたファイルに割り当てられるグループです。通常、プライマリグループの名前はユーザーの名前と同じです。各ユーザーは、1つのプライマリグループに属している必要があります。
-
セカンダリグループまたは補足グループ -一連のユーザーに特定の特権を付与するために使用されます。ユーザーは、0個以上のセカンダリグループのメンバーになることができます。
ユーザーがメンバーであるすべてのグループを一覧表示する#
ユーザーが属しているグループを見つけるには、複数の方法があります。
プライマリユーザーのグループは、/etc/passwd
に保存されます ファイルと補足グループ(存在する場合)は、/etc/group
にリストされています。 ファイル。
ユーザーのグループを見つける1つの方法は、cat
を使用してそれらのファイルの内容を一覧表示することです。 、less
またはgrep
。もう1つの簡単なオプションは、システムのユーザーとグループに関する情報を提供することを目的としたコマンドを使用することです。
groups
の使用 コマンド#
ユーザーがメンバーになっているすべてのグループを一覧表示するための最も記憶に残るコマンドは、groups
です。 指図。引数なしで実行すると、コマンドは現在ログインしているユーザーが属するすべてのグループのリストを出力します。
groups
最初のグループはプライマリグループです。
john adm cdrom sudo dip plugdev lpadmin sambashare
特定のユーザーが属するすべてのグループのリストを取得するには、groups
にユーザー名を指定します 引数としてのコマンド:
groups linuxize
以前と同じように、最初のグループがプライマリグループです。
linuxize : linuxize sudo
id
の使用 コマンド#
id
コマンドは、指定されたユーザーとそのグループに関する情報を出力します。ユーザー名を省略すると、現在のユーザーの情報が表示されます。
たとえば、ユーザーlinuxize
に関する情報を取得するには 次のように入力します:
id linuxize
コマンドはユーザーID(uid
)を表示します )、ユーザーのプライマリグループ(gid
)、およびユーザーのセカンダリグループ(groups
)
uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize),27(sudo)
数字ではなく名前のみを印刷するには、-n
を使用します オプション。オプション-g
プライマリグループと-G
のみを出力します すべてのグループ。
次のコマンドは、現在のユーザーがメンバーになっているグループの名前を出力します。
id -nG
john adm cdrom sudo dip plugdev lpadmin sambashare
グループのすべてのメンバーを一覧表示する#
グループのすべてのメンバーを一覧表示するには、getent group
を使用します コマンドの後にグループ名を続けます。
たとえば、developers
という名前のグループのメンバーを見つけるには 次のコマンドを使用します:
getent group developers
グループが存在する場合、コマンドはグループとそのすべてのメンバーを出力します:
developers:x:126:frank,mary
グループが存在しないことを意味する出力がない場合。
すべてのグループを一覧表示する#
システムに存在するすべてのグループを表示するには、/etc/group
を開くだけです。 ファイル。このファイルの各行は、1つのグループの情報を表しています。
less /etc/group
もう1つのオプションは、getent
を使用することです。 /etc/nsswitch.conf
で構成されたデータベースからのエントリを表示するコマンド group
を含むファイル すべてのグループのリストを照会するために使用できるデータベース。
すべてのグループのリストを取得するには、次のコマンドを入力します。
getent group
出力は、/etc/group
のコンテンツを表示する場合と同じです。 ファイル。ユーザー認証にLDAPを使用している場合、getent
両方の/etc/group
のすべてのグループが表示されます ファイルとLDAPデータベース。
awk
を使用することもできます またはcut
グループの名前を含む最初のフィールドのみを出力するには:
getent group | awk -F: '{ print $1}'
getent group | cut -d: -f1
結論#
このチュートリアルでは、ユーザーがメンバーになっているグループを見つける方法を学びました。同じコマンドが、Ubuntu、CentOS、RHEL、Debian、LinuxMintなどのすべてのLinuxディストリビューションに適用されます。
ご不明な点がございましたら、お気軽にコメントをお寄せください。