Debianのグループからユーザーを削除するには、どのコマンドを使用すればよいですか?
ユーザーをグループに追加するときは、次のようにします。
usermod -a -G group user
しかし、ユーザーをグループから削除するための同様のコマンド(グループとユーザーを引数として受け入れる)が見つかりませんでした。私が得ることができる最も近いものは:
usermod -G all,existing,groups,except,for,group user
usermod
(または同様のプログラム)がユーザーをグループから削除するオプションを持つusermod OPTION group user
のようなコマンドはありますか?
gpasswd
を使用できます:
# gpasswd -d user group
次に、少なくともDebianでは、次のログイン時に新しいグループ構成が割り当てられます。ユーザーがログインしている場合、コマンドの効果はすぐには表示されません。
Debianでは、adduser
パッケージにdeluser
プログラムが含まれており、両方を引数として渡すと、グループからユーザーが削除されます。
deluser user group
ディストリビューションにadduser
がない場合は、/etc/group
および/etc/gshadow
を手動で編集できます。
vigr
vigr -s
usermod -G "" username
すべてのセカンダリ/補足グループを削除します username、プライマリグループのみのメンバーとして残します。これはSolaris 5.9で機能しました
これは「古い学校」のアプローチです...
ほとんどの* nixシステムは、グループ情報をプレーンテキストファイルに保存します /etc/group
、ここで
各行にはフィールドが含まれています
:
文字で区切られます。
ここで、thisuser
という名前のグループからthatgroup
という名前のユーザーを削除するとします。まず/etc/group
をバックアップしてから、好みのエディターをsu権限で使用して、ファイル/etc/group
を編集し、 thisuser
thatgroup
行エントリからの参照。例:
元の行は次のようなものです:
thatgroup:x:1274:someuser,thisuser,anotheruser
編集後は次のようにしておく必要があります:
thatgroup:x:1274:someuser,anotheruser
他のすべての回答と同様に、これはユーザーの現在のセッションに影響しません(ユーザーが現在ログインしている場合)。変更は、ユーザーが次回ログインしたときに有効になります。
SUSEディストリビューションでは以下のコマンドを使用できます(そして、明らかに他にはありません)。
usermod -R グループuser_name
ここで、group
は、ユーザーを削除するグループであり、user_name
グループから削除するユーザー。例えば、
usermod -R root imnottheroot
検討してください:
abc2
グループ名: newgroup11
タスク:ユーザーの削除abc2
グループからnewgroup11
[root@home1 ~]# groups abc2
abc2 : abc2
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# groups abc2
abc2 : abc2 newgroup11
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# usermod -G abc2 abc2
[root@home1 ~]# groups abc2
abc2 : abc2
**私が間違っている場合は親切に私を修正します。 **
-aオプションを指定せずにusermodコマンドを実行すると、グループからユーザーを削除できます。たとえば、「usermod -G group1 username」を実行すると、ユーザーがgroup1に追加され、それが存在する他のグループから削除されます。グループの名前をカンマで区切ってリストすることで、ユーザーをさまざまなグループに維持できることに注意してください。
削除オプションのないディストリビューション(Fedoraなど)でusermodを引き続き使用するには、user = bobおよびgroup = deletethisgroupの場合、コマンドは次のようになります。
usermod -G `cat /etc/group | grep bob | grep -v deletethisgroup | cut -d ':' -f 1 | tr '\n' ',' | sed 's/,$//'` bob
パイプは、(1)ユーザーが属するすべてのグループエントリを取得し、(2)削除する必要があるものを取り出し、(3)最初の列(グループ名)を返し、改行をカンマで置き換え、末尾のカンマを削除します。
もちろん、ユーザーとグループをパラメーターとして削除するbashスクリプトにこれらすべてを置くこともできます。 awkを使用して終了を短くすることもできますが、grep、cut、tr、sedに固執したいと思いました。
sername = studentおよびgroupname = researchと仮定すると、student
グループからresearch
ユーザーを削除するには、次のようにする必要があります。
gpasswd -d student research