概要
UNIX や Linux システムでは、ユーザーとグループはシステム上でのアクセス制御と権限管理の基本的な要素です。本記事では、グループを管理するコマンドについて解説します。
グループ
グループはユーザーをまとめて管理するための単位です。各グループには一意のグループ ID (GID) が割り当てられます。ユーザーは複数のグループに所属することができます。
グループの管理
以下の表に、各コマンドの概要を整理しました。
コマンド | 概要 |
---|---|
groupadd |
グループをシステムに追加するためのコマンド。 |
groupdel |
システムからグループを削除するためのコマンド。 |
addgroup |
対話式でグループをシステムに追加するためのコマンド。 |
delgroup |
対話式でシステムからグループを削除するためのコマンド。 |
groupmod |
既存のグループアカウントを変更するためのコマンド。 |
groups |
グループの情報を表示するコマンド。 |
gpasswd |
グループのパスワードを設定するコマンド。 |
グループの追加 (groupadd)
グループの追加は groupadd
コマンドで行います。
オプション | 説明 |
---|---|
-f |
既に存在する場合、エラーを無視して終了します。 |
-g |
グループ ID (GID) を指定します。 |
-K |
設定ファイルを指定します。 |
-o |
他のグループと重複する GID を許可します。 |
-p |
グループのパスワードを指定します。 |
-r |
システムグループを作成します。 |
以下は、groupadd
コマンド使用例です:
sudo groupadd -g 1001 newgroup
グループの削除 (groupdel)
グループの削除は groupdel
コマンドで行います。
オプション | 説明 |
---|---|
-f |
強制的にグループを削除します。このオプションは、グループが依存関係にある場合でも削除します。 |
groupdel
コマンドを使用すると、指定したグループを削除することができます。基本的な構文は次のとおりです。
sudo groupdel <groupname>
グループに依存しているユーザーやプロセスが存在する場合、groupdel
コマンドはエラーを返すことがあります。
この場合、グループに所属しているユーザーを削除して、先に依存関係を解消する必要があります。
または、-f
オプションで強制的に削除することもできます。
sudo groupdel -f <groupname>
グループ情報の変更 (groupmod)
グループ情報の変更は groupmod
コマンドで行います。
オプション | 説明 |
---|---|
-g |
グループ ID (GID) を変更します。 |
-n |
グループ名を変更します。 |
-o |
他のグループと重複する GID を許可します。 |
グループ ID を変更する:
sudo groupmod -g 1001 groupname
グループ名を変更する:
sudo groupmod -n newgroupname oldgroupname
他のグループと同じ GID を許可する:
sudo groupmod -o -g 1001 groupname
gpasswd
: グループのパスワードを設定する
gpasswd
コマンドを使用してグループのパスワードを設定または変更できます。
オプション | 説明 |
---|---|
-a |
指定したユーザーをグループに追加します。 |
-d |
指定したユーザーをグループから削除します。 |
-A |
グループの管理者リストを設定します。 |
-M |
グループのメンバーリストを設定します。 |
-r |
グループのパスワードを削除します。 |
-R |
グループへのアクセスをメンバーのみに制限します。 |
グループのパスワード
グループのパスワードを設定すると、そのパスワードを知っているユーザーのみがグループに加入できるようになります。
これは、特定のリソースへのアクセスを制限するため際に利用されます。
通常、グループのパスワードは設定することが少なく、設定する場合は gpasswd
コマンドを使って設定されます。
グループのメンバー
グループのメンバーは、特定のグループに属しているユーザーのことを指します。グループに属することで、ユーザーはそのグループに関連するファイルやリソースへのアクセス権を共有することができます。グループのメンバーに対しては、以下のような操作が可能です。
- ファイルやディレクトリに対するグループのアクセス権を設定
- グループのパーミッションを利用してアクセス制御を行う
グループの管理者
グループの管理者は、特定のグループを管理する権限を持つユーザーのことを指します。管理者はそのグループに関連する以下のような操作を行うことができます。
- グループにユーザーを追加または削除する
- グループのパスワードや設定を変更する
- グループのメンバーリストを設定する
グループのパスワードを設定する
グループのパスワードを設定するには、以下のコマンドを使用します:
sudo gpasswd <groupname>
グループのパスワードを削除する
グループのパスワードを削除するには、-r
オプションを使用します:
sudo gpasswd -r <groupname>
ユーザーをグループに追加する
ユーザーをグループに追加するには、-a
オプションを使用します:
sudo gpasswd -a <username> <groupname>
ユーザーをグループから削除する
ユーザーをグループから削除するには、-d
オプションを使用します:
sudo gpasswd -d <username> <groupname>
グループに対してパスワードによるアクセスを無効にする
グループに対してパスワードによるアクセスを無効にするには、-R
オプションを使用します:
sudo gpasswd -R <groupname>
これにより、グループへのアクセスをすでに所属しているメンバーのみに制限します。
自身が所属しているグループを確認する
自身が所属しているグループを確認するには groups
コマンドを使用します。
$ groups
ubuntu adm cdrom sudo dip plugdev lpadmin lxd sambashare docker
コマンドまとめ
ユーザーアカウント作成時にグループに追加する
項目 | コマンド | 例 |
---|---|---|
プライマリグループ | useradd -g <group> <username> |
useradd -g users username |
セカンダリグループ | useradd -G <group1>,<group2> <username> |
useradd -G wheel,dialout username |
グループを変更する
項目 | コマンド | 例 |
---|---|---|
プライマリグループ | usermod -g <group> <username> |
usermod -g users username |
セカンダリグループ (上書き) | usermod -G <group1>,<group2> <username> |
usermod -G wheel,dialout username |
セカンダリグループ (追加) | usermod -aG <group1>,<group2> <username> |
usermod -aG wheel,dialout username |
ユーザーをグループに追加 | gpasswd -a <username> <group> |
gpasswd -a username group |
ユーザーをグループから削除 | gpasswd -d <username> <group> |
gpasswd -d username group |
グループの管理者リストを設定 | gpasswd -A <admin1>,<admin2> <group> |
gpasswd -A admin1,admin2 group |
グループのメンバーリストを設定 | gpasswd -M <member1>,<member2> <group> |
gpasswd -M member1,member2 group |
グループにパスワードを設定 | gpasswd <group> |
gpasswd group |
グループのパスワードを削除 | gpasswd -r <group> |
gpasswd -r group |
グループへのアクセスを制限 | gpasswd -R <group> |
gpasswd -R group |
グループを確認する
項目 | コマンド |
---|---|
プライマリグループ | id -gn <username> |
セカンダリグループ | id -Gn <username> |
自身が所属しているグループ | groups |
コメント