グループの作成
groupadd
コマンドは新しいグループを作成するために使われます。
書式
groupadd [オプション] グループ名
よく使われるオプション
-
-f
,--force
# グループが既に存在している場合でも成功として終了 -
-g
,--gid GID
# 新規グループIDを指定。指定値は[GID_MIN、GID_MAX]の範囲内にしてください -
-K
,--key KEY=VALUE
# /etc/login.defsのデフォルト値を使わず、指定する。例:-K GID_MIN=100
-
-o
,--non-unique
# GIDが重複するグループの作成を許可する -
-p
,--password PASSWORD
# この暗号化されたパスワードを新グループに使用。/etc/gshadow内では暗号化されていない平文ではなく、暗号化後のパスワードを使用する -
-r
,--system
# システムグループを作成。CentOS 6以前: ID<500, CentOS 7以降: ID<1000
例:
[root@rocky8 ~]# groupadd -g 48 -r apache
[root@rocky8 ~]# getent group apache
apache:x:48:
# -fをつけない場合、すでにグループが存在するというメッセージが表示される
[root@rocky8 ~]# groupadd apache
groupadd: group 'apache' already exists
# -fをつけると直ちに処理が終了する
[root@rocky8 ~]# groupadd -f apache
グループの修正
groupmod
コマンドはグループ属性を変更するために使われます。
書式
groupmod [オプション] グループ名
よく使われるオプション
-
-g
,--gid GID
# グループIDをGIDに変更 -
-n
,--new-name NEW_GROUP
# グループ名をNEW_GROUPに改める -
-o
,--non-unique
# 重複するGIDを使用許可する -
-p
,--password PASSWORD
# パスワードを(暗号化された) PASSWORDに変更
例:
[root@rocky8 ~]# getent group apache
apache:x:48:
[root@rocky8 ~]# groupmod -g 123 apache
[root@rocky8 ~]# getent group apache
apache:x:123:
[root@rocky8 ~]# groupmod -n apache2 apache
[root@rocky8 ~]# getent group apache2
apache2:x:123:
グループの削除
groupdel
コマンドはグループを削除するために使います。
書式
groupdel [オプション] グループ名
よく使われるオプション
-
-f
,--force
# ユーザーのプライマリグループであっても、グループを強制的に削除します。ただし、グループがないユーザーはログインできなくなる可能性があります。
例:
[root@rocky8 ~]# groupdel apache2
[root@rocky8 ~]# getent group apache2
[root@rocky8 ~]# groupdel jose
groupdel: cannot remove the primary group of user 'jose'
# -f を使ってユーザーがいるグループを強制削除
# 強制削除後、そのグループ名を表示する場所では、グループIDのみが表示されます。この時点で新しい同じグループIDのグループを作成すると、削除されたグループのデータが新グループに関連付けられます。
groupdel -f jose
グループメンバーとパスワードの変更
gpasswd
コマンドを使用して、グループのパスワードを変更したり、補助グループのメンバー関係を変更することができます。グループにパスワードが設定されていない場合、メンバーの追加はrootのみが操作できます。
書式
gpasswd [オプション] グループ名
よく使われるオプション
-
-a
,--add USER
# ユーザーをグループに追加する -
-d
,--delete USER
# ユーザーをグループから削除する -
-r
,--delete-password
# グループパスワードを削除する -
-R
,--restrict
# グループメンバーにグループへのアクセス制限を加える -
-M
,--members USER,...
# ユーザーを一括でグループに追加する -
-A
,--administrators ADMIN,...
# 管理者を一括で設定する
例:
[root@rocky8 ~]# groupadd group1
[root@rocky8 ~]# getent gshadow group1
group1:!::
[root@rocky8 ~]# groups jose
jose : jose
[root@rocky8 ~]# id jose
uid=1000(jose) gid=1000(jose) groups=1000(jose)
# グループに追加
[root@rocky8 ~]# gpasswd -a jose group1
Adding user jose to group group1
[root@rocky8 ~]# getent gshadow group1
group1:!::jose
[root@rocky8 ~]# groups jose
jose : jose group1
[root@rocky8 ~]# id jose
uid=1000(jose) gid=1000(jose) groups=1000(jose),1004(group1)
例: グループパスワードの設定
[root@rocky8 ~]# gpasswd group1
Changing the password for group group1
New Password:
Re-enter new password:
[root@rocky8 ~]# getent gshadow group1
group1:$6$rzTQ3ausQlnwJ7$keMsE9m3u.GeBfrOoEsFUty6hRxJbzOC4s88aE/5MTGjpvyjtYljM8tf59AvrKdbNKLL.bdcU.i/KAhXN8CbZ.::jose
グループパスワードの削除
グループのパスワードを削除するときは、gpasswd
コマンドを使用して -r
オプションを指定します。
例:
[root@rocky8 ~]# gpasswd -r group1
Removing password for group group1.
passwd: Success
[root@rocky8 ~]# getent gshadow group1
group1:::jose
グループからユーザーを削除する
ユーザーをグループから削除したいときは、gpasswd
コマンドと -d
オプションを利用します。
例:
[root@rocky8 ~]# gpasswd -d jose group1
Removing user jose from group group1
[root@rocky8 ~]# id jose
uid=1000(jose) gid=1000(jose) groups=1000(jose)
グループ管理者の追加と削除
特定のユーザーをグループの管理者として設定したり削除したりできるようにするために、gpasswd
コマンドと -A
オプションを使用します。管理者はパスワード無しで、グループへのユーザーの追加や削除を行うことができます。
例:
# グループ管理者として user1 を追加
[root@rocky8 ~]# gpasswd -A user1 group1
# グループ管理者を確認
[root@rocky8 ~]# getent gshadow group1
group1::user1:jose
# グループ管理者から user1 を削除
[root@rocky8 ~]# gpasswd -A "" group1
[root@rocky8 ~]# getent gshadow group1
group1:::jose
まとめ
Linuxシステムでは、groupadd
、groupmod
、groupdel
および gpasswd
コマンドを使用して、グループの管理と操作を行います。これらのコマンドには様々なオプションがあり、詳細なグループ管理が可能です。