Linuxのgroupdelコマンドは、グループを削除するために使用されます。これは非常に強力なコマンドなので、慎重に使用してください。これは一般的なLinuxコマンドであり、Ubuntu、CentOS、Debian、FedoraなどのすべてのLinuxディストリビューションで使用できます。
groupdelコマンドを使用してLinuxでグループを削除する例をいくつか見てみましょう。
ユーザーのいないLinux削除グループ
たとえば、私はすでにいくつかのグループとテストユーザーを作成しました。ユーザーがいないグループを削除する簡単な例を見てみましょう。
root@localhost:~# getent group test_users1 test_users1:x:1005: root@localhost:~# root@localhost:~# groupdel test_users1 root@localhost:~# getent group test_users1 root@localhost:~#
ユーザーのいるグループの削除
グループtest_users
を作成しました journaldev
を追加しました それにユーザー。 getent
を使用してこれを確認しましょう およびid
コマンド。
root@localhost:~# getent group test_users test_users:x:1004:journaldev root@localhost:~# root@localhost:~# id journaldev uid=1002(journaldev) gid=1003(journaldev) groups=1003(journaldev),27(sudo),1004(test_users),1007(test_users_pwd) root@localhost:~#
このグループを削除するとどうなるか見てみましょう。
root@localhost:~# groupdel test_users root@localhost:~# id journaldev uid=1002(journaldev) gid=1003(journaldev) groups=1003(journaldev),27(sudo),1007(test_users_pwd) root@localhost:~# getent group test_users root@localhost:~#
グループが削除され、ユーザーグループリストから削除されます。
groupdelコマンドを使用してシステムグループを削除できますか?
groupdelコマンドを使用してシステムレベルのグループを削除できますか?
sudo
を削除してみましょう groupdelコマンドを使用してグループ化し、何が起こるかを確認します。
root@localhost:~# groupdel sudo root@localhost:~# id journaldev uid=1002(journaldev) gid=1003(journaldev) groups=1003(journaldev),1007(test_users_pwd) root@localhost:~# getent group sudo root@localhost:~#
「sudo」ユーザーグループを削除できたようです。ユーザーのスーパーユーザー権限がどうなるか見てみましょう。
root@localhost:~# su - journaldev journaldev@localhost:~$ journaldev@localhost:~$ ls /root ls: cannot open directory '/root': Permission denied journaldev@localhost:~$ sudo ls /root [sudo] password for journaldev: journaldev is not in the sudoers file. This incident will be reported. journaldev@localhost:~$
sudo権限も削除されたようです。これは、「sudo」グループ自体を削除したことから明らかです。

ユーザーのプライマリグループの削除
新しいユーザーを作成すると、同じ名前の新しいグループも作成され、それに割り当てられます。これは、ユーザーのプライマリグループと呼ばれます。
ユーザーのプライマリグループを削除できるかどうか見てみましょう。
root@localhost:~# groupdel journaldev groupdel: cannot remove the primary group of user 'journaldev' root@localhost:~#
ヘルプオプションを見て、このエラーメッセージを解決する方法があるかどうかを確認しましょう。
root@localhost:~# groupdel -h Usage: groupdel [options] GROUP Options: -h, --help display this help message and exit -R, --root CHROOT_DIR directory to chroot into -f, --force delete group even if it is the primary group of a user root@localhost:~#
出力には、-fオプションを使用してユーザーのプライマリグループを削除できることが明確に示されています。
root@localhost:~# groupdel -f journaldev root@localhost:~# id journaldev uid=1002(journaldev) gid=1003 groups=1003 root@localhost:~#
ユーザーのプライマリグループを削除することができました。ただし、「gid=1003」は引き続きユーザー情報に表示されます。そのため、この機能の使用例がわかりません。
Linuxgroupdelコマンドの終了値
シェルスクリプトでgroupdelコマンドを使用している場合は、終了値を知って、コマンドが正常に実行されたか、エラーが発生したかを確認することをお勧めします。
終了値 | 説明 |
0 | 成功 |
2 | 無効なコマンド構文 |
6 | グループは存在しません |
8 | ユーザープライマリグループを削除できません |
10 | グループ情報ファイルを更新できません |
結論
Linuxのgroupdelコマンドは非常に強力で、システムグループも削除できます。このコマンドを使用してグループを削除する場合は、元に戻せず、グループに多数のユーザーがいると大きな問題が発生する可能性があるため、特に注意してください。
参照
- groupdelのマニュアルページ