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