Ubuntuサーバーにユーザーjohnとユーザーkeithがいます
これらのユーザーを使用して追加しました
Sudo adduser John
Sudo adduser Keith
ジョンをキースのグループに追加するにはどうすればよいですか?
私は試した:
Sudo usermod -aG Keith john
しかし、私は得ます:
usermod: group 'Keith' does not exist
この問題を解決するには何をする必要がありますか?
使用できます: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
構成ファイルを手動で編集することもできます。
Sudo nano /etc/password
Sudo nano /etc/group
IDおよびその他のフィールドを割り当てます。