Linuxシステムでは、ユーザーのアクセス権限を制御するために「ユーザー」と「グループ」の概念が欠かせません。特に複数のユーザーが共用で使う環境では、どのグループに所属しているかを把握しておくことはとても重要です。
そんなときに活躍するのが「groups
」コマンドです。この記事では、groups
コマンドの基本的な使い方から、実務で役立つ応用例までをわかりやすく解説していきます。初心者の方にも理解しやすいよう、丁寧に説明していきますので、ぜひ参考にしてください。
groups
は、Linuxにおいて「ユーザーが所属しているグループ」を表示するためのコマンドです。グループはファイルやディレクトリへのアクセス制御に使われており、自分のアクセス権限を確認する際にとても役立ちます。
Linuxのユーザーは、1つの「プライマリグループ」と複数の「セカンダリグループ(補助グループ)」に所属することができます。groups
コマンドを使うと、それらすべてのグループを確認できます。
最も基本的な使い方は、何もオプションを付けずに groups
と入力するだけです。これで、現在ログインしているユーザーのグループ一覧を確認できます。
$ groups
例:
$ groups
user1 wheel docker developers
この出力結果は、ユーザーuser1
が「wheel」「docker」「developers」という3つのグループに所属していることを示しています。
自分以外のユーザーのグループを調べたいときは、コマンドの後にユーザー名を指定します。
$ groups ユーザー名
たとえば:
$ groups alice
alice : alice sudo developers
このように、groups
コマンドでは他のユーザーについても確認できるため、管理者や運用者にとって便利な機能です。
似たようなコマンドに「id
」があります。これもユーザー情報を表示するコマンドですが、少し出力内容が異なります。
$ id
uid=1000(user1) gid=1000(user1) groups=1000(user1),10(wheel),991(docker),1001(developers)
このように、id
コマンドはUIDやGID(数値で表されるID)も一緒に表示します。数値IDまで必要な場合はid
、グループ名の確認だけで良ければgroups
と使い分けるとよいでしょう。
Linuxでは、ファイルやディレクトリに対して「所有者」「グループ」「その他」の3区分でアクセス権が設定されています。
たとえば、あるファイルが以下のようなパーミッションを持っているとします:
-rw-rw---- 1 user1 developers 2048 Apr 1 13:00 report.txt
この場合、developers
グループに属しているユーザーだけが読み書き可能です。自分がそのグループに入っているかどうかを確認するのに、groups
コマンドが役立ちます。
$ groups
user1 wheel docker developers
このように確認できれば、「自分もそのファイルを編集できる」と判断できます。
多くのLinuxディストリビューションでは、sudo
グループに属しているユーザーは、管理者権限(root権限)を一時的に使えるよう設定されています。
たとえば以下のような出力がある場合:
$ groups
user1 sudo wheel
このユーザーは「sudo」グループに属しているため、sudo
コマンドを使って管理者作業を行うことができます。
逆にsudo
が表示されていない場合は、管理者に追加してもらう必要があります。
groups
コマンドはあくまで「確認用」です。グループの追加や削除は、別のコマンドを使います。
$ sudo usermod -aG グループ名 ユーザー名
例:developers
グループにbob
を追加する場合
$ sudo usermod -aG developers bob
$ sudo usermod -G グループ名1,グループ名2 ユーザー名
※この方法は既存の補助グループをすべて上書きするため注意が必要です。
シェルスクリプトや自動化ツールでも、ユーザーのグループ確認をしたい場合があります。その際も、groups
は便利です。たとえば、グループに属しているかどうかを条件として分岐処理を行うこともできます。
例:スクリプト内で「docker」グループに属しているか確認する
if groups $USER | grep -qw docker; then
echo "Docker操作が可能です"
else
echo "Dockerグループに追加してください"
fi
このように、ユーザー管理や環境チェックにおいて、groups
は柔軟に活用できます。
groups
コマンドは「現在のセッション」では反映されないことがあります。ユーザーが新しくグループに追加された場合、一度ログアウト・ログインし直すか、再起動が必要です。groups
コマンドは、Linuxにおけるユーザーのグループ確認を手軽に行える非常に便利なコマンドです。
ファイルのアクセス権確認、管理者権限の確認、システム運用時の調査など、あらゆる場面で活用できます。
基本の使い方から実務的な応用例までをマスターしておけば、トラブル時にも冷静に対応できます。Linuxを扱う方であれば、ぜひ覚えておきたいコマンドの一つです。