Linuxでユーザーのデフォルトグループを変更するにはどうすればよいですか?


41

Linux管理の初心者であるため、次のコマンドについて少し混乱しています。

useradd
usermod
groupadd
groupmod

Linux / Unix管理者ハンドブックのユーザー管理の本を読み終えたところですが、まだ少しあいまいです。

基本的にuseraddは十分に単純です:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

ユーザー名hilbertで「David Hilbert」を追加し、デフォルトのディレクトリ、シェル、およびグループを設定できます。そして、それ-gが彼のプライマリ/デフォルトグループで-Gあり、他のグループでもあると思います。

これらは私の次の質問です。

  1. このコマンドは、まだ作業グループしまう場合facultyとがfamous存在していませんでしたか?それらを作成するだけですか?
  2. そうでない場合、新しいグループを作成するためにどのコマンドを使用しますか?
  3. ユーザーを削除してhilbertも、それらのグループに他のユーザーがいない場合、それらはまだ存在しますか?それらを削除する必要がありますか?
  4. useradd上記のコマンドを実行した後、famousグループからDavidを削除し、hilbertまだ存在しないプライマリグループを再割り当てするにはどうすればよいですか?

回答:


27

このusermodコマンドを使用すると、ユーザーのプライマリグループ、補助グループ、または他の多くの属性を変更できます。-gスイッチは、プライマリグループを制御します。

他の質問については...

  1. ステージgroupname中に存在しないグループを指定するuseraddと、エラーが表示されます-useradd:unknown group groupname

  2. このgroupaddコマンドは、新しいグループを作成します。

  3. 含まれているすべてのユーザーを削除すると、グループは残ります。空のグループを必ずしも削除する必要はありません。

  4. hilbert経由でグループを作成しますgroupadd hilbert。次に、を使用してDavidのプライマリグループを移動しusermod -g hilbert hilbertます。(最初hilbertはグループ名で、2番目hilbertはユーザー名です。これは、ユーザーを別の名前のグループに移動する場合に重要です)

ただし、ここでは少し物事を複雑にしているかもしれません。多くのLinuxディストリビューションでは、簡単な方法でプライマリと同じ名前のuseradd hilbertユーザーhilbertとグループを作成します。-Gスイッチを使用して一緒に指定された補助グループを追加します。


1
ありがとう。もしそうしたらusermod -g hilbert hilbert、ヒルベルトの他のグループは削除されますか?もしそうなら、他のグループをどのように維持しますか?
cwd

テストして特定の環境を確認してください。
ewwhite

ミックの答えは私のupvoteを取得@彼はあなたが(そうでなければ、オフのままに任意のグループがされます-Gで-aを使用する必要があることを指摘しているため削除
ジェフ・

9

man usermodさまざまなオプションで何が起こるかを説明した以下を読む必要があります。

usermod -g hilder hilder

グループ 'hilder'が存在する限り、ログイングループを 'faculty'から 'hilder'に置き換えます。存在しない場合は、まずgroupaddで作成する必要があります。

この-Gオプションを使用するときは-a、ユーザー 'hilder'が属する補足グループの現在のリストに新しいグループを追加するオプションも使用する必要があります。-aオプションがなければ、現在の補足グループを新しいグループセットに置き換えます。したがって、これは慎重に使用してください。


5

Linuxでユーザーのプライマリグループを変更するには:

  • usermod -g new_group user_name
  • すべての user_nameのアクティブなセッションを終了します

変更をテストするには、実行idして値を確認しますgid=

コマンドはエラーなしで実行されますが、gidが変更されていない場合は、ステップ2の太字部分を見逃しています。


1

答え#1は良いですが、次のコマンドを発行して新しいグループを追加することもできます。

# nano /etc/group

/etc/group直接編集の欠点は、未使用のGID(グループID番号)を考え出す必要があることです。

以下を使用すると、ユーザーのプライマリグループを変更できます。 # nano /etc/passwd

ユーザーの行を見つけて、GID(グループ番号、で検索/etc/group)を変更します。構文は次のとおりであることに注意してください。

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

私はこのアプローチを考えることができます何の欠点(あなたがGIDを知っては)ありませんが、それは私が頻繁に私が異なると、さまざまなUNIXシステムを使用する主な理由は、ローカルユーザーのために使用するものですusermodadduseruseraddコマンドオプション。

それはもう少しマニュアルですが、仕事をします。知っている場合は、viiso nanoを使用してファイルを編集できることに注意してくださいvi


0

ユーザーのプライマリグループを永続的に変更するには、次を実行します。

  • usermod -g groupname usernameコマンド

またはnewgrp、小さな環境や一時的な状況に使用できます。

新しいユーザーbobと新しいグループを作成しますdodo

useradd bob

そのため、RedHat / CentosにはUID =(ID_number)bobがあります。GID =(ID_number)デフォルトでプライマリグループとしてのボブ

groupadd dodo

ユーザーbobをdodoグループに追加します。

usermod -aG dodo bob -make sure to use "a"

newgrp所有権を変更するための次の使用:

newgrp dodo

アカウントがパスワードを持ち、将来のプライマリグループのメンバーになるように注意してください。そして、newgrpは新しいシェルを開きます。ユーザーがそのシェルにいる限り、プライマリグループは変更されません。プライマリグループを元のグループに戻すには、exitコマンドを実行して新しいシェルを終了できます。

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