web-dev-qa-db-ja.com

グループからユーザーを削除するにはどうすればよいですか?

Debianのグループからユーザーを削除するには、どのコマンドを使用すればよいですか?

ユーザーをグループに追加するときは、次のようにします。

usermod -a -G group user

しかし、ユーザーをグループから削除するための同様のコマンド(グループとユーザーを引数として受け入れる)が見つかりませんでした。私が得ることができる最も近いものは:

usermod -G all,existing,groups,except,for,group user

usermod(または同様のプログラム)がユーザーをグループから削除するオプションを持つusermod OPTION group userのようなコマンドはありますか?

372
Lekensteyn

gpasswdを使用できます:

# gpasswd -d user group

次に、少なくともDebianでは、次のログイン時に新しいグループ構成が割り当てられます。ユーザーがログインしている場合、コマンドの効果はすぐには表示されません。

443
user13742

Debianでは、adduserパッケージにdeluserプログラムが含まれており、両方を引数として渡すと、グループからユーザーが削除されます。

deluser user group

ディストリビューションにadduserがない場合は、/etc/groupおよび/etc/gshadowを手動で編集できます。

vigr
vigr -s
usermod -G "" username

すべてのセカンダリ/補足グループを削除します username、プライマリグループのみのメンバーとして残します。これはSolaris 5.9で機能しました

74
user208145

これは「古い学校」のアプローチです...

ほとんどの* nixシステムは、グループ情報をプレーンテキストファイルに保存します /etc/group 、ここで

  • 各行にはフィールドが含まれています

    • グループ名
    • パスワード
    • GID、および
    • user_list

    :文字で区切られます。

  • user_listフィールドは、コンマで区切られたユーザー名のリストです。

ここで、thisuserという名前のグループからthatgroupという名前のユーザーを削除するとします。まず/etc/groupをバックアップしてから、好みのエディターをsu権限で使用して、ファイル/etc/groupを編集し、 thisuserthatgroup行エントリからの参照。例:

元の行は次のようなものです:

thatgroup:x:1274:someuser,thisuser,anotheruser

編集後は次のようにしておく必要があります:

thatgroup:x:1274:someuser,anotheruser

他のすべての回答と同様に、これはユーザーの現在のセッションに影響しません(ユーザーが現在ログインしている場合)。変更は、ユーザーが次回ログインしたときに有効になります。

15
p57

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

**私が間違っている場合は親切に私を修正します。 **

1
new user

-aオプションを指定せずにusermodコマンドを実行すると、グループからユーザーを削除できます。たとえば、「usermod -G group1 username」を実行すると、ユーザーがgroup1に追加され、それが存在する他のグループから削除されます。グループの名前をカンマで区切ってリストすることで、ユーザーをさまざまなグループに維持できることに注意してください。

1
Helper

削除オプションのないディストリビューション(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に固執したいと思いました。

0
Stephen

sername = studentおよびgroupname = researchと仮定すると、studentグループからresearchユーザーを削除するには、次のようにする必要があります。

gpasswd -d student research
0
ravi