私は検索するきれいな道「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でテストされました。