gpasswdコマンドはグループを管理するコマンドになります。グループにパスワードを設定・グループにメンバーを追加や削除・グループの管理者を設定を行うことができます。
グループにパスワードを設定し、newgrpコマンドを利用するとそのグループにログインできるようになります。
グループの管理者を設定すると、グループの管理者はグループへのメンバーの追加や削除を管理者権限なしで行うことができます。
目次
グループのパスワードを設定
gpasswdコマンドをオプションなしで利用するとグループにパスワードを設定できます。
パスワードを設定したグループはグループのメンバーではないユーザがnewgrpコマンドを利用して、グループにログインできるようになります。そのとき、設定したパスワードを入力することでログインできます。また、グループのメンバーであるユーザはパスワード入力なしでログインできます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 |
$ id -gn ubuntu $ sudo gpasswd testgroup Changing the password for group testgroup New Password: Re-enter new password: $ $ newgrp testgroup Password: $ id -gn testgroup |
また、グループのパスワードは/etc/gshadowのファイルで管理されています。
1 2 |
$ sudo cat /etc/gshadow | grep '^testgroup:' testgroup:$6$D5usXfeMQx/PlY$aLg9.1/QAD1CctmqKnQL1bUiXAY8ey.a8DSdF3t5ZElPVxpU2ZFeihJuZ.NwP7qfzZXpmd7db/1iNqFWzfoH00:: |
gshadowファイルについては以下のコマンドで確認できます。
1 |
man 5 gshadow |
グループのパスワードを削除
(-rオプション)
-rオプションを利用するとグループのパスワードを削除できます。
コマンド例と実行結果
1 2 3 4 5 6 |
$ sudo cat /etc/gshadow | grep '^testgroup:' testgroup:$6$D5usXfeMQx/PlY$aLg9.1/QAD1CctmqKnQL1bUiXAY8ey.a8DSdF3t5ZElPVxpU2ZFeihJuZ.NwP7qfzZXpmd7db/1iNqFWzfoH00:: $ $ sudo gpasswd -r testgroup $ sudo cat /etc/gshadow | grep '^testgroup:' testgroup::: |
グループにメンバーを追加・削除
(-aオプション・-dオプション)
-aオプションを用いるとグループにメンバーを追加できます。また、-dオプションを用いるとメンバーを削除できます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo cat /etc/group | grep '^testgroup:' testgroup:x:1009: $ $ sudo gpasswd -a ubuntu testgroup Adding user ubuntu to group testgroup $ sudo cat /etc/group | grep '^testgroup:' testgroup:x:1009:ubuntu $ $ sudo gpasswd -d ubuntu testgroup Removing user ubuntu from group testgroup $ sudo cat /etc/group | grep '^testgroup:' testgroup:x:1009: |
グループの管理者とグループのメンバーを設定
(-Aオプション・-Mオプション)
-Aオプションを用いることで、グループの管理者を設定できます。グループの管理者はグループにメンバーの追加や削除を行うことができます。グループの管理者はコンマ区切りで複数人の指定できます。
-Mオプションを用いるとグループのメンバーを設定できます。グループのメンバーもコンマ区切りで指定できます。
また、gpasswdコマンドは基本的にオプションを組み合わせて利用できません。しかし、-Aオプションと-Mオプションの組み合わせは利用できます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ sudo awk '/^testgroup:/{print FILENAME,$0}' /etc/group /etc/gshadow /etc/group testgroup:x:1009: /etc/gshadow testgroup:!:: $ $ sudo gpasswd -A ubuntu -M ubuntu,testuser testgroup $ sudo awk '/^testgroup:/{print FILENAME,$0}' /etc/group /etc/gshadow /etc/group testgroup:x:1009:ubuntu,testuser /etc/gshadow testgroup:!:ubuntu:ubuntu,testuser $ $ gpasswd -a testuser2 testgroup Adding user testuser2 to group testgroup $ sudo awk '/^testgroup:/{print FILENAME,$0}' /etc/group /etc/gshadow /etc/group testgroup:x:1009:ubuntu,testuser,testuser2 /etc/gshadow testgroup:!:ubuntu:ubuntu,testuser,testuser2 |
また、グループの管理者はヌル文字列を入れることで、すべて削除できます。グループのメンバーも同様にヌル文字列を入れることで、すべて削除できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ sudo awk '/^testgroup:/{print FILENAME,$0}' /etc/group /etc/gshadow /etc/group testgroup:x:1009:ubuntu,testuser,testuser2 /etc/gshadow testgroup:!:ubuntu:ubuntu,testuser,testuser2 $ $ sudo gpasswd -A '' testgroup $ sudo awk '/^testgroup:/{print FILENAME,$0}' /etc/group /etc/gshadow /etc/group testgroup:x:1009:ubuntu,testuser,testuser2 /etc/gshadow testgroup:!::ubuntu,testuser,testuser2 $ $ sudo gpasswd -M '' testgroup $ sudo awk '/^testgroup:/{print FILENAME,$0}' /etc/group /etc/gshadow /etc/group testgroup:x:1009: /etc/gshadow testgroup:!:: |