web-dev-qa-db-ja.com

ユーザーを別のユーザーグループに追加するにはどうすればよいですか?

Ubuntuサーバーにユーザーjohnとユーザーkeithがいます

これらのユーザーを使用して追加しました

Sudo adduser John 
Sudo adduser Keith

ジョンをキースのグループに追加するにはどうすればよいですか?

私は試した:

Sudo usermod -aG Keith john

しかし、私は得ます:

usermod: group 'Keith' does not exist

この問題を解決するには何をする必要がありますか?

9
Natasha Thapa

使用できます:usermod -a -G grouptoadd username

-a -Gが大丈夫であるのに-aGが大丈夫ではない理由を私が思ったよりはるかに明白ではないので、私はそれを説明しようとします:

-Gオプションは、1つの値または値のリストのいずれかを取ります。 1つの値の場合、値は次のように指定できます。-GVALUEオプションと値の間にスペースを入れる必要がないため、これは単なる慣行です。

システムにaというグループがある場合、-Gaの呼び出しはあいまいになります。ユーザーにグループを1つだけ持たせたいですか? -aと-Gを呼んでいますか?次に、「a」は-Gの値ですか?残りの値(-Gまで)はどこにありますか?また、1文字のオプションは、他の1文字のオプションよりも前に使用できるのが一般的です。つまり、tat -xy == -yzです。ただし、オプションの1つがVALUEのような単一の値またはVAL1、Val2、val4などのような多くの値を取ることができる場合、これはあいまいです。

したがって、コマンドをFAILSAFEにしてすべての入力に対して正しく機能させるには、-aを-Gから分離する必要があります。

から man usermod

名前

usermod-ユーザーアカウントを変更します

概要

usermod[オプション]ログイン

説明

usermodコマンドは、コマンドラインで指定された変更を反映するようにシステムアカウントファイルを変更します。

オプション

usermodコマンドに適用されるオプションは次のとおりです。

  • -a、-append

    ユーザーを補足グループ(s)に追加します。 -Gオプションでのみ使用してください。

  • ...

  • -G、--groupsGROUP1 [、GROUP2、... [、GROUPN]]]

    ユーザーがメンバーでもある補足グループのリスト。各グループは、間に空白を入れずに、コンマで次のグループから区切ります。グループには、-gオプションで指定されたグループと同じ制限が適用されます。

    ユーザーが現在リストされていないグループのメンバーである場合、そのユーザーはグループから削除されます。この動作は、現在の補足グループリストにユーザーを追加する-aオプションを使用して変更できます。

  • ...

質問に示したとおりにコマンドを実行した場合、ユーザーKeithは作成せず、ユーザーJohnのみを作成しました。コマンドラインでコマンドを次々に実行するには、;または&&を使用してコマンドを区切る必要があります。それ以外の場合は、最初のコマンドのみが実行されます。

Sudo adduser John Sudo adduser Keith
adduser: Only one or two names allowed.

did正しく実行する場合は、大文字に注意してください。あなたの質問では、「ジョン」と「ジョン」の両方に言及しています。これは機能するはずです:

Sudo adduser keith
Sudo adduser john
Sudo usermod -aG keith john
0
terdon

構成ファイルを手動で編集することもできます。

Sudo nano /etc/password
Sudo nano /etc/group

IDおよびその他のフィールドを割り当てます。

0
KakashiSan