既存のユーザーを既存のグループに追加する方法は?


669

Apacheユーザー(www-data)をaudioグループに追加したい。のmanページを読みましたが、useradd運がありません。xubuntu 11.10を実行しています。ここに私がやっていることがあります:

$ sudo useradd -G audio www-data
useradd: user 'www-data' already exists

-Gオプションbashを省略した場合、次のヘルプ情報が出力されuseraddます。

$ sudo useradd  audio www-data
Usage: useradd [options] LOGIN
Options: -b, --base-dir BASE_DIR       base directory for the home directory...

この作業を行うためにどのオプションを使用する必要があるかは、manページからはわかりません。

回答:


1040

このuseraddコマンドは、新しいユーザーを追加しようとします。ユーザーはすでに存在しているため、これは望みのものではありません。

代わりに、既存のユーザーを変更するには、そのユーザーを新しいグループに追加するなど、usermodコマンドを使用します。

これを試して:

sudo usermod -a -G groupName userName

ユーザーはログアウトしてからログインし直して、新しいグループが追加されたことを確認する必要があります

  • -a(APPEND)スイッチが不可欠です。それ以外の場合、ユーザーはリストにないグループから削除されます。

  • -Gスイッチにユーザを割り当てるために追加のグループの(コンマ区切り)リストをとります。


71
sudo usermod -a -G [group-name] [user-name]:見出しを読んだ後、答えを見ただけの人のためのただの急ごしらえ
Programster

36
私は今、好ましい方法だと思いますsudo adduser user group。これは、よりシンプルで簡潔な構文です。@Baiからの応答を参照してください。
ctbrown

3
@wilhil::man usermod" -a、 -- append-補助グループにユーザーを追加します。- G オプションでのみ使用します; -G、--groups GROUP1 [、GROUP2、... [、GROUPN] ]] [...]ユーザーが現在リストされていないグループのメンバーである場合、ユーザーはグループから削除されますこの動作は、ユーザーを現在の補足に追加する-aオプションで変更できますグループリスト。」
アダムミカリック16年

18
「ログアウトしてから戻る」部分を回避する方法はありますか?いくつかのタイプのupdate-groupsコマンドでしょうか?
CON-F-使用

14
@ con-f-useを実行sudo login -f YOURUSERNAMEすると、新しいシェルセッションが開始されます。idコマンドを使用して、新しいセッションが正しいグループのセットにあることを確認します。ただし、これは「グローバル」ではありません-すでに開いている端末には適用されません。だから、本当に、ログアウトすることは可能な限り最高のオプションです
アーロンMcDaid

222

グループへのユーザーの追加:

sudo adduser user group

グループからユーザーを削除する:

sudo deluser user group

3
この質問が何を求められているのか正確ではありません
テジェンドラ14

11
@Tejendraのコメントは、OPの質問に答えるためにuseraddを使用することが望ましい/必須であることを前提としているようです。おそらく、この答えは、adduser / deluserがより良い代替手段であることを示すための単なる単語の欠落です。
セージ

12
私にとっては、シンプルなインターフェースの方が優れているため、このインターフェースが気に入っています。
ベトリスタ

4
これはまさに尋ねられている質問です。@knocte、はい、Debian固有のものだと思います
Auspex

3
@Auspex Red Hatでは動作しないことを確認できます。
スティーブ

54

既存のユーザーに追加した後:

usermod -a -G group user  

からグループ権限を取得するには、ログアウトしてログインする必要がある場合があります/etc/group


21
「ログアウトとログインが必要」の部分を太字にしてください。
ジンクォン

参考までに、このidコマンドは、終了する必要なくグループに追加されたことを示しているはずです。id myuser
ficuscr 14年

5
Ubuntu 14.10では、ログアウトとログインが必要でした。
A.ダニシェウスキ

26

私は通常使用します

sudo gpasswd -a myuser mygroup

3
usermodは、システムubuntu 14.04では使用できませんでした。これはうまくいきました!
ドリュー

これは、usermodインストールされていないDebian Stretchでもうまく機能しました。
ジョシュハブダス

8

コメントするのに十分な評判がないため、これを回答として投稿しています。@dpendolinoが述べたように、このコマンドの効果が持続するためには:

sudo usermod -a -G groupName userName

...もう一度ログアウト/ログインする必要があります。

ただし、新しいグループメンバーシップの使用をすぐに開始するショートカットが必要な場合(および正しいsudo特権がある場合)、この回避が見つかりました。

$ sudo su -
# su [userName]
$ groups

説明:

  • sudo su - ルートシェルを提供します
  • su [userName] ユーザーと一緒にシェルに戻ります
  • groups今すぐ実行すると、usermod -aGコマンドで追加したグループが表示されます

私の場合、「docker」グループをユーザーに追加しようとしました

前:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

後:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker

5

Ubuntuでは、asとしてログインがroot有効になっていないsudoため、グループのユーザーは特定の制限されたコマンドの特権を昇格できます。sudo特権を昇格させるには、制限されたコマンドを先頭に追加する必要があります。

sudo usermod -a -G group user

userという名前の補足グループに既存のユーザーを追加しますgroup。ユーザーのプライマリグループは変更されません。


1
sudo usermod -a -G groupName userName

うまく動作しますが、私は完全に再起動する必要があり、ログアウトして再度ログインするだけで仕事をしませんでした...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.