グループからすべてのユーザーを削除する

グループからすべてのユーザーを削除する

私は検索するきれいな道「sudo」グループのすべてのユーザーを削除します。インストール中に作成された複数のディストリビューションでは、ユーザーには不要なsudo権限があります。私は(ほぼ)すべての状況で動作する自動化された方法を探しています。

基本的にグループをクリアしたいです。

各ユーザーを削除するには、GROUP=my_group; for u in $(getent group $GROUP | sed -e 's/^.*:.*:.*://' -e 's/,/ /g'); do echo gpasswd --delete $u $GROUP; done
次のコマンドラインが機能します。
1.グループが存在しない場合
2.グループが空の場合
3.グループに1人のユーザーが含まれている場合
4.グループに複数のユーザーが含まれている場合は
すべて正常です。しかし、彼らの仕事はもっと簡単ですか?

別の方法は、グループを削除して再作成することです。醜い?

答え1

一般に、一部のファイルはグループに属する可能性があるため、グループを削除しないでくださいが、特定のsudoユースケースには十分です。

より一般的なユースケースは次のとおりです。gpasswd (1)特定のグループのメンバーシップを設定できるので、次のコマンドを実行するだけで十分です。

gpasswd sudo -M ''

グループsudoが存在する場合にのみこのコマンドを実行するには、これをgetent呼び出しと組み合わせることができます。つまり、

getent group sudo && gpasswd sudo -M ''

答え2

このコマンドを含むシステムで/usr/sbin/groupmemsコマンド(「ユーザー基本グループのメンバーシップ管理」)を使用する別の方法があります。

groupmems --purge --group <group_to_clean>

または、短いオプションを使用してください。

groupmems -p -g <group_to_clean>

すべてのメンバーがグループから削除されます。

CentOSとFedoraでテストされました。

関連情報