web-dev-qa-db-ja.com

adduserはuseraddが何をしないのですか?

より広く普及しているuseraddに加えて、Debianベースのシステムには、ユーザーといくつかの関連タスクを追加するためのより高レベルのインターフェースを提供する追加のadduserコマンドも含まれています。他のSEサイトには、これらのコマンドの基本的な違いを詳しく説明するさまざまな質問/回答があります。次に例を示します。

ほとんどの回答では、adduserはユーザーをインタラクティブに追加するための優れたインターフェースを提供すると本質的に述べていますが、adduserを実行したときにuseradd。そう:

  1. adduserは何をしますかuseraddはしませんか?
  2. 同等の結果を得るには、どのコマンドを使用する必要がありますか?
74
Graeme

まず、それぞれのmanページのスニペットは、2つのコマンドの違いを強調し、何が起こっているかを示しています。 adduserの場合:

adduserおよびaddgroupは、コマンドラインオプションと/etc/adduser.confの構成情報に従って、ユーザーとグループをシステムに追加します。これらは、useradd、groupadd、usermodプログラムなどの低レベルのツールのフレンドリなフロントエンドです。デフォルトでは、Debianポリシー準拠のUIDとGIDの値を選択し、スケルトン構成のホームディレクトリを作成し、カスタムスクリプトを実行します。

次に、useraddの場合:

useraddは、ユーザーを追加するための低レベルのユーティリティです。 Debianでは、管理者は通常、代わりにadduser(8)を使用する必要があります。

adduserをさらに調査すると、次のコマンドに高レベルのインターフェイスを提供し、その機能の一部を提供するPerlスクリプトであることがわかります。

  • useradd
  • groupadd
  • passwd-ユーザーのパスワードを追加/変更するために使用されます。
  • gpasswd-グループのパスワードを追加/変更するために使用されます。
  • usermod-さまざまなユーザー関連パラメーターを変更するために使用されます。
  • chfn-ユーザーが保持する追加情報を追加/変更するために使用されます。
  • chage-パスワードの有効期限情報を変更するために使用されます。
  • edquota-ディスク使用量の割り当てを変更するために使用されます。

adduserコマンドの基本的な実行は次のとおりです。

adduser username

この簡単なコマンドは多くのことを行います:

  1. usernameという名前のユーザーを作成します。
  2. ユーザーのホームディレクトリ(デフォルトは/home/username)を作成し、/etc/skelからファイルをそこにコピーします。
  3. ユーザーと同じ名前のグループを作成し、その中にユーザーを配置します。
  4. ユーザーのパスワードを要求します。
  5. ユーザーに関する追加情報を要求します。

useraddプログラムはほとんどの場合これを実行できますが、デフォルトでは実行されず、追加のオプションが必要です。一部の情報には、さらにコマンドが必要です。

useradd -m -U username
passwd username
chfn username

adduserは、作成されたUIDとGIDが Debianポリシー に準拠していることを確認します。 UID_MINUID_MAX//etc/login.defsuseraddで通常のユーザーを作成しても問題ないようですが、Debianポリシーと一致しています。しかし、問題は、Debianが/etc/adduser.confでのみサポートされていると思われるシステムユーザーUIDの特定の範囲を指定しているため、useraddでシステムユーザーを単純に追加し、UID/GUIDを指定しないことです。正しい範囲では、深刻な問題が発生する可能性があります。

adduserのもう1つの一般的な用途は、ユーザーをグループに追加するプロセスを簡略化することです。ここでは、次のコマンド:

adduser username newgroup

より複雑なusermodコマンドを置き換えます。このコマンドでは、ユーザーが既にメンバーになっている(ユーザーをメンバーのままにしたい)グループを指定する必要があります。

usermod -G all,other,groups,user,is,in,newgroup

ただし、ここでadduserを使用する場合の欠点は、一度に1つのグループしか指定できないことです。

82
Graeme

adduserコマンドは、デフォルトでseraddコマンドでは実行できないシステムユーザー用の/ home/userディレクトリも作成します。 useraddは、システムユーザーではなく、通常のユーザーのホームディレクトリのみを追加します。

2
MFPII

システム管理者は、adduserで実行できるuseraddで何でも実行できます。ここでは、useraddを使用してシステムユーザー用の/ home/userディレクトリを作成することはできず、/ etc/skelに含まれているファイルを変更することによって、絶対に作成できることを述べました。/etc/skelには、新しいユーザーのホームディレクトリを作成するために最初に使用されるファイルのセットが含まれています。

1
niten1