より広範なコマンドに加えて、useradd
Debianベースのシステムには、adduser
ユーザーといくつかの関連タスクを追加するためのより高いレベルのインターフェースを提供する追加のコマンドが含まれています。他のSEサイトには、次のようにこれらのコマンド間の基本的な違いを詳しく説明するさまざまな質問/回答があります。
- サーバー障害 -「useradd」と「adduser」の違いは何ですか?
- ルート -「adduser」と「useradd」の違いは何ですか?
- Ubuntuに尋ねてください -adduserとuseraddの違いは何ですか?
ほとんどの回答は、基本的にユーザーを対話的に追加するためのより良いインターフェースを提供すると言いますが、ランタイムがどのようなものかadduser
詳細に説明しません。adduser
useradd
adduser
何をすべきか、useradd
何をすべきか?- 同じ結果を得るにはどのコマンドを使用する必要がありますか?
答え1
まず、対応するマニュアルページフラグメントは、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
この単純なコマンドは多くのことを行います。
- というユーザーを作成します
username
。 - ユーザーのホームディレクトリ(デフォルト)を作成し、ここ
/home/username
にファイルをコピーします/etc/skel
。 - ユーザーと同じ名前でグループを作成し、そのグループにユーザーを配置します。
- ユーザーにパスワードの入力を求められます。
- ユーザーに追加情報を要求します。
プログラムuseradd
はほとんどの操作を実行できますが、デフォルトでは実行せず、追加のオプションが必要です。一部の情報には追加のコマンドが必要です。
useradd -m -U username
passwd username
chfn username
adduser
生成されたUIDとGIDが以下に準拠していることを確認してください。Debian ポリシー。 /がDebianポリシーに準拠しているuseradd
場合は、一般ユーザーの作成に問題がないようです。しかし、問題は Debian がシステム・ユーザー UID に特定の範囲を指定することです。これはLinuxでのみサポートされているようです。したがって、正しい範囲のUID / GUIDを指定せずに素早くシステムユーザーを追加すると、深刻な問題が発生する可能性があります。UID_MIN
UID_MAX
/etc/login.defs
/etc/adduser.conf
useradd
もう1つの一般的な用途adduser
は、グループにユーザーを追加するプロセスを単純化することです。ここでは、次のコマンドを実行します。
adduser username newgroup
次のusermod
コマンドと同じです。
usermod -a -G newgroup username
この場合の最大の欠点usermod
は、追加オプション(たとえば)を渡すことを忘れた場合は、ユーザーを「-a
新しいグループ」に追加する前に、すべてのグループからユーザーを削除することです。-G
意味する)。
ただし、ここで使用する場合の1つの欠点は、adduser
一度に1つのグループしか指定できないことです。
答え2
私が経験した(そしてここの答えでは見ることができなかった)1つの重要な違いはシステムユーザーを作成するとはどういう意味ですか?。
useradd --system
--shell /bin/bash
それはむしろadduser --system
暗黙的--shell /usr/sbin/nologin
にこれが私が望むものであることを示唆しているようでした。
したがって、シェルやホームディレクトリが必要ない場合は、次のものを使用できます。ユーザーが追加されましたこのように
useradd --system --shell /usr/sbin/nologin foo
その結果は次のとおりです。/etc/passwd
foo:x:994:991::/home/foo:/usr/sbin/nologin
または使用ユーザーを追加このように
adduser --system --no-create-home foo
その結果は次のとおりです。/etc/passwd
foo:x:110:65534::/home/foo:/usr/sbin/nologin
さらに、adduser
グループは作成されません(ユーザー110はグループ65534、つまりグループに属します)。グループなし)。これ受け入れられた回答(G)UID関連のリスクについても言及したので必ず守ります。ユーザーを追加。
出典:Raspberry Pi OSでテスト済み(Debian Busterベース)。
答え3
これユーザーを追加デフォルトでは、このコマンドはシステムユーザー用の/home/userディレクトリも作成しますが、使用することはできません。ユーザーが追加されました注文する。 useraddは、システムユーザーではなく、一般ユーザーのホームディレクトリのみを追加します。
答え4
システム管理者は、useraddを使用してadduserを使用して実行できるすべての操作を実行できます。 useraddを使用してシステムユーザー用の/home/userディレクトリを作成することはできませんが、/etc/skelに含まれるファイルを変更して/home/userディレクトリを作成できることに注意してください。 /etc/skelには、最初に新しいユーザーのホームディレクトリを埋めるために使用されたファイルセットが含まれています。