Linux管理の初心者なので、次のコマンドについて少し混乱しています。
useradd
usermod
groupadd
groupmod
Linux/Unix Administrator's handbookのユーザー管理の本を読み終えたところですが、いくつかのことはまだ少し濁っています。
基本的にuseradd
は十分簡単なようです:
useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert
「David Hilbert」をユーザー名hilbert
で追加し、デフォルトのディレクトリ、シェル、グループを設定できます。そして-g
は彼のプライマリ/デフォルトグループであり、-G
は彼の他のグループです。
これらは私の次の質問です:
faculty
およびfamous
が存在しない場合でも、このコマンドは機能しますか?作成するだけですか?hilbert
を削除し、それらのグループに他のユーザーがいない場合でも、それらは存在しますか?それらを削除する必要がありますか?useradd
コマンドを実行した後、famous
グループからDavidを削除し、彼のプライマリグループをまだ存在しないhilbert
に再割り当てするにはどうすればよいですか?usermod
コマンドを使用すると、ユーザーのプライマリグループ、補足グループ、またはその他のいくつかの属性を変更できます。 -g
スイッチは、プライマリグループを制御します。
他の質問について...
groupname
ステージ中に存在しないグループuseradd
を指定すると、エラーが表示されます-seradd:unknown group groupname
groupadd
コマンドは、新しいグループを作成します。
含まれているすべてのユーザーを削除すると、グループは残ります。空のグループを削除する必要はありません。
groupadd hilbert
を介してhilbert
グループを作成します。次に、usermod -g hilbert hilbert
を使用して、Davidのプライマリグループを移動します。 (最初のhilbert
はグループ名、2番目のhilbert
はユーザー名です。これは、ユーザーを別の名前のグループに移動する場合に重要です)
ただし、少し複雑になるかもしれません。多くのLinuxディストリビューションでは、単純なuseradd hilbert
でユーザーhilbert
とプライマリと同じ名前のグループを作成します。 -G
スイッチを使用して、一緒に指定された補足グループを追加します。
さまざまなオプションで何が起こるかを説明するman usermod
を読む必要があります。
usermod -g hilder hilder
「hilder」グループが存在する限り、ログイングループは「faculty」から「hilder」に置き換えられます。存在しない場合は、最初にgroupaddで作成する必要があります。
-G
オプションを使用する場合は、-a
オプションを使用して、ユーザーが「所属する」所属する補助グループの現在のリストに新しいグループを追加する必要があります。 -a
オプションがない場合は、現在の補足グループを新しいグループセットに置き換えます。したがって、これは慎重に使用してください。
Linuxでユーザーのプライマリグループを変更するには:
usermod -g new_group user_name
変更をテストするには、id
を実行してgid=
の値を確認します
コマンドがエラーなしで実行されてもgidが変更されない場合は、手順2の太字の部分を見逃しています。
回答#1は適切ですが、次のコマンドを発行して新しいグループを追加することもできます。
# nano /etc/group
/etc/group
を直接編集することの欠点は、未使用のGID(グループID番号)を考え出す必要があることです。
以下では、ユーザーのプライマリグループを変更できます。 # nano /etc/passwd
ユーザーの行を見つけて、GID(グループ番号、/etc/group
で検索)を変更します。構文は次のとおりです。
<name>:*:<UID>:<GID>:<comment>:<directory>:<Shell>
私がこのアプローチに考えられる欠点はありません(GIDを知っている場合)。これは、主にusermod
、adduser
、およびuseradd
コマンドオプション。
それは少し手作業ですが、仕事をします。 vi
がわかっている場合は、nano
iso vi
を使用してファイルを編集できます。
ユーザーのプライマリグループを永続的に変更するには、次のコマンドを実行します。
または、小さな環境や一時的な状況ではnewgrp
を使用できます。
新しいユーザーbobと新しいグループdodo
を作成します。
useradd bob
したがって、RedHat/CentosにはUID =(ID_number)bobがあります。 GID =(ID_number)bobをデフォルトでプライマリグループとして
groupadd dodo
ユーザーbobをdodo
グループに追加します。
usermod -aG dodo bob -make sure to use "a"
次に、newgrp
を使用して所有権を変更します。
newgrp dodo
アカウントにパスワードを設定し、将来のプライマリグループのメンバーになるように注意してください。そして、newgrpは新しいシェルを開きます。ユーザーがそのシェルにとどまっている限り、プライマリグループは変更されません。プライマリグループを元のグループに戻すには、exitコマンドを実行して新しいシェルを終了します。