コマンドラインのマニュアル

Man » adduser マニュアルオンライン - adduser man ページの詳細なオンラインドキュメント

🌍
adduser、addgroup - ユーザーとグループを追加または操作する

SYNOPSIS

adduser [--add-extra-groups] [--allow-all-names] [--allow-bad-names] [--comment comment]
[--conf file] [--debug] [--disabled-login] [--disabled-password] [--firstgid id]
[--firstuid id] [--gid id] [--home dir] [--ingroup group] [--lastgid id] [--lastuid id]
[--no-create-home] [--no-copy-skel] [--shell shell] [--quiet] [--uid id] [--verbose]
[--stdoutmsglevel prio] [--stderrmsglevel prio] [--logmsglevel prio] user

adduser --system [--comment comment] [--conf file] [--debug] [--gid id] [--group] [--home dir]
[--ingroup group] [--no-create-home] [--no-copy-skel] [--shell shell] [--uid id]
[--quiet] [--verbose] [--stdoutmsglevel prio] [--stderrmsglevel prio]
[--logmsglevel prio] user

adduser --group [--conf file] [--debug] [--firstgid id] [--gid ID] [--lastgid id] [--quiet]
[--verbose] [--stdoutmsglevel prio] [--stderrmsglevel prio] [--logmsglevel prio] group

addgroup [--conf file] [--debug] [--firstgid id] [--gid ID] [--lastgid id] [--quiet] [--verbose]
[--stdoutmsglevel prio] [--stderrmsglevel prio] [--logmsglevel prio] group

addgroup --system [--gid id] [--conf file] [--quiet] [--verbose] [--stdoutmsglevel prio]
[--stderrmsglevel prio] [--logmsglevel prio] group

adduser [--conf file] [--debug] [--quiet] [--verbose] [--stdoutmsglevel prio]
[--stderrmsglevel prio] [--logmsglevel prio] user group

adduser --help

adduser --version

DESCRIPTION

adduser と addgroup は、コマンドラインオプションと /etc/adduser.conf の設定情報に従って、システムにユーザーとグループを追加します。これらは、よりディストリビューションに依存しない useradd、groupadd、および usermod プログラムに対する、Debian 特有のフロントエンドです。adduser と addgroup は、デフォルトで Debian ポリシーに準拠した UID および GID 値を選択し、スケルトン構成でホームディレクトリを作成し、カスタムスクリプトを実行し、その他の機能があります。

adduser と addgroup は、ポリシーレイヤーとして意図されており、パッケージメンテナーとローカル管理者が、Debian ポリシーの変更する仕様に適応する負担を軽減し、ローカルシステムアカウントを Debian が期待する作成方法で作成できるようにします。adduser --system は、パッケージメンテナーのスクリプトで単一の呼び出しで済み、条件付きのラッパーやエラー抑制などの余計な処理を必要としないように、特別な注意を払う必要があります。

adduser は、Debian ポリシー、第 9.2.2 章で文書化されている、動的に割り当てられたシステムユーザーとグループ、および動的に割り当てられたユーザーアカウントの区別を尊重します。

オプションの完全なリストと説明については、[OPTIONS] セクションを参照してください。

adduser と addgroup は、次の 5 つのモードのいずれかで実行できます。

通常ユーザーの追加

1 つの非オプション引数と、--system または --group オプションなしで呼び出された場合、adduser は通常ユーザーを追加します。これは、Debian ポリシーの意味での動的に割り当てられたユーザーアカウントです。これは、adduser では通常ユーザーと呼ばれます。

adduser は、構成ファイルで指定された FIRST_UID と LAST_UID の範囲から利用可能な最初の UID を選択します。この範囲は、--firstuid および --lastuid オプションでオーバーライドできます。最後に、UID は --uid オプションを使用して完全に手動で設定できます。

デフォルトでは、各ユーザーには、同じ名前の対応するグループが与えられます。これはユーザーグループと呼ばれ、グループ書き込み可能なディレクトリを簡単に維持するために、適切なユーザーを新しいグループに配置し、ディレクトリにセットグループ ID ビットを設定し、すべてのユーザーが umask 002 を使用するようにすることで実現できます。

ユーザーグループの場合、adduser は、構成ファイルで指定された FIRST_GID と LAST_GID の範囲から利用可能な最初の GID を選択します。この範囲は、--firstgid および --lastgid オプションでオーバーライドできます。最後に、GID は --gid オプションを使用して完全に手動で設定できます。

USERS_GID、USERS_GROUP、USERGROUPS の相互作用については、adduser.conf(5) で詳細に説明されています。

新しいユーザーのプライマリグループは、コマンドラインで --gid または --ingroup オプションを使用して、ID または名前でグループを設定することにより、オーバーライドすることもできます。また、ユーザーは、構成ファイルで ADD_EXTRA_GROUPS を 1 に設定するか、コマンドラインで --add-extra-groups を渡すことで、EXTRA_GROUPS で定義された 1 つ以上の補助グループに追加できます。

adduser は、/etc/skel からファイルをホームディレクトリにコピーし、コメントフィールドとパスワードをプロンプ​​トで表示します。ただし、これらの機能は、コマンドラインからオフにしたり、オーバーライドしたりできます。

UID、コメント、ホームディレクトリ、およびシェルは、adduser.conf(5) に記載されている UID_POOL および GID_POOL オプションを使用して、事前に決定できます。

システムユーザーの追加

1 つの非オプション引数と --system オプションで呼び出された場合、adduser は動的に割り当てられたシステムユーザーを追加します。これは、adduser パッケージのコンテキストでは、システムユーザーと略されることがよくあります。

adduser は、構成ファイルで指定された FIRST_SYSTEM_UID と LAST_SYSTEM_UID の範囲から利用可能な最初の UID を選択します。これは、--uid オプションでオーバーライドできます。

デフォルトでは、システムユーザーには、nogroup がプライマリグループとして割り当てられます。すでに存在するグループをプライマリグループとして割り当てるには、--gid または --ingroup オプションを使用します。--group オプションが指定され、同じ名前のグループがまだ存在しない場合、同じ ID を持つグループが作成されます。

ホームディレクトリが指定されていない場合、新しいシステムユーザーのデフォルトのホームディレクトリは /nonexistent です。このディレクトリは、どの Debian システムにも存在してはならず、adduser はこれを自動的に作成しません。


^ -home オプションでホームディレクトリが指定され、そのディレクトリがすでに存在する場合 (たとえば、パッケージにそのディレクトリ内のファイルが含まれている場合)、adduser は新規作成されたユーザーに対して、そのディレクトリの所有者を明示的に設定しません。所有者を設定すると、ローカル管理者の決定を上書きしてしまう可能性があり、また、パッケージのインストール中に adduser の静音性を損なってしまう可能性があります。パッケージのメンテナンススクリプトで adduser --home を使用する場合は、adduser 呼び出しの後に、ホームディレクトリに対して明示的な再帰的な chown を実行することを検討してください。

明示的に --shell オプションでシェルが設定されない限り、新しいシステムユーザーのシェルは /usr/sbin/nologin に設定されます。adduser --system は、新しいアカウントにパスワードを設定しません。パスワードが設定されているアカウントに対して adduser --system が呼び出された場合、エラーが発生します。スケルトン構成ファイルはコピーされません。

その他のオプションは、通常のユーザーを作成する場合と同様に動作します。UID_POOL および GID_POOL で参照されるファイルも適用されます。

グループを追加する

^ dduser--group オプション付きで、かつ --system オプションなしで呼び出された場合、または addgroup が呼び出された場合、ユーザーグループが追加されます。

^ dduser --group または addgroup--system オプション付きで呼び出された場合、動的に割り当てられたシステムグループ (コンテキストによってはシステムグループと略される) が作成されます。

GID は、構成ファイルで GID に対して指定された範囲 ( FIRST_GIDLAST_GIDFIRST_SYSTEM_GIDLAST_SYSTEM_GID) から選択されます。このメカニズムをオーバーライドするには、--gid オプションを使用して GID を指定できます。

システム以外のグループの場合、構成ファイルで指定された範囲は、--firstgid および --lastgid オプションでオーバーライドできます。

グループはメンバーなしで作成されます。

既存のユーザーを既存のグループに追加する

オプション以外の引数として 2 つの引数が指定された場合、adduser は既存のユーザーを既存のグループに追加します。

オプション

^ dduser の異なるモードでは、異なるオプションが許可されます。オプションに対して有効なモードがリストされていない場合、そのオプションはすべてのモードで受け入れられます。

一部のオプションには、歴史的な理由から短い形式が存在します。これらの短い形式はサポートされ続けますが、ドキュメントから削除されます。ユーザーは、オプションの長い形式を使用するように移行することをお勧めします。

^ -add-extra-groups 構成ファイルの EXTRA_GROUPS 設定で定義されている追加のグループに新しいユーザーを追加します。古いスペル --add_extra_groups は非推奨であり、Debian bookworm でのみサポートされます。有効なモード: adduseradduser --system

^ -allow-all-names 基になる useradd(8) によってサポートされている任意のユーザー名およびグループ名を許可します。VALID NAMES を参照してください。有効なモード: adduseradduser --systemaddgroupaddgroup --system

^ -allow-bad-names 名前の NAME_REGEX および SYS_NAME_REGEX チェックを無効にします。名前の有効性に対するより弱いチェックのみが適用されます。VALID NAMES を参照してください。有効なモード: adduseradduser --systemaddgroupaddgroup --system


--comment コメント
新規エントリの生成時に、コメントフィールドを設定します。このオプションが指定された場合、adduser はその情報を要求しません。このフィールドは、GECOS フィールドとしても知られており、finger(1) コマンドで使用される情報が含まれています。以前は --gecos オプションでしたが、これは非推奨であり、Debian bookworm 以降のリリースで削除されます。有効なモード:adduser、adduser --system。

--conf ファイル
/etc/adduser.conf の代わりに、ファイルを使用します。複数の --conf オプションを指定できます。

--debug
--stdoutmsglevel=debug と同じ意味です。非推奨です。

--disabled-login
--disabled-password
[passwd]({filename}../../passwd)(1) を実行してパスワードを設定しません。ほとんどの場合、ログインは依然として可能です(SSH キーの使用や PAM を介するなど)、これは adduser の範囲外です。--disabled-login は、さらにシェルを /usr/sbin/nologin に設定します。有効なモード:adduser。

--firstuid ID
--lastuid ID
--firstgid ID
--lastgid ID
uid が選択される範囲の最初の UID / 最後の UID / 最初の GID / 最後の GID を、構成ファイル(FIRST\_UID、LAST\_UID、FIRST\_GID、LAST\_GID、FIRST\_SYSTEM\_UID、LAST\_SYSTEM\_UID、FIRST\_SYSTEM\_GID、および LAST\_SYSTEM\_GID)で指定された値に置き換えます。グループがユーザーグループとして作成された場合、--firstgid と --lastgid は無視されます。グループは、ユーザーと同じ ID を取得します。有効なモード:adduser、adduser --system、--firstgid および --lastgid の場合は addgroup。

--force-badname
--allow-badname
これらは、--allow-bad-names の非推奨の形式です。Debian 13 のリリースサイクル中に削除されます。

--gid GID
グループを作成する場合、このオプションは新しいグループのグループ ID 番号を GID に設定します。ユーザーを作成する場合、このオプションは新しいユーザーのプライマリグループ ID 番号を GID に設定します。有効なモード:adduser、adduser --system、addgroup、addgroup --system。

--group
adduser --system でこのオプションを使用する場合、新しいユーザーは、同じ名前のグループをプライマリグループとして持つように設定されます。同じ名前のグループがすでに存在しない場合、作成されます。--system と組み合わせていない場合、指定された名前のグループが作成されます。後者は、プログラムが addgroup として呼び出された場合のデフォルトのアクションです。有効なモード:adduser --system、addgroup、addgroup --system。

--help 簡単な指示を表示します。

--home ディレクトリ
adduser --system が使用された場合、または構成ファイルで指定されたデフォルトの代わりに、ユーザーのホームディレクトリとしてディレクトリを使用します(または /nonexistent)。ディレクトリが存在しない場合、作成されます。有効なモード:adduser、adduser --system。

--ingroup GROUP
ユーザーを作成する場合、このオプションは新しいユーザーのプライマリグループ ID 番号を、指定されたグループの GID に設定します。--gid オプションとは異なり、グループは数値 ID ではなく、名前で指定されます。グループはすでに存在している必要があります。有効なモード:adduser、adduser --system。

--lastuid ID
--lastgid ID
最後の UID / GID をオーバーライドします。--firstuid を参照してください。

--no-create-home
新しいユーザーのホームディレクトリを作成しません。ただし、新しいユーザーのホームディレクトリのパス名は、/etc/passwd ファイルの適切なフィールドに引き続き入力されます。このオプションを使用しても、このフィールドが空になるわけではありません。むしろ、adduser に、何らかの別のメカニズムが新しいユーザーのホームディレクトリを初期化することを知らせます。有効なモード: adduser、adduser --system。

--no-copy-skel
新しいユーザーのホームディレクトリを /etc/skel からのファイルで埋めません。ホームディレクトリが新しく作成された場合、空になります。有効なモード: adduser、adduser --system。

--quiet
--stdoutmsglevel=warn と同じです。非推奨です。

--shell シェル
デフォルトのシェル(または adduser --system を使用している場合は /usr/sbin/nologin)ではなく、指定されたシェルをユーザーのログインシェルとして使用します。有効なモード: adduser、adduser --system。

--system
通常、adduser は Debian Policy の第 9.2.2 章で定義されているように、動的に割り当てられたユーザーアカウントとグループを作成します。このオプションを使用すると、adduser は動的に割り当てられたシステムユーザーとグループを作成し、そのモードを変更します。有効なモード: adduser、addgroup。

--uid ID
新しいユーザー ID を指定された番号に強制的に設定します。adduser は、ユーザー ID がすでに使用されている場合、失敗します。有効なモード: adduser、adduser --system。

--verbose
--stdoutmsglevel=info と同じです。非推奨です。

--stdoutmsglevel prio
--stderrmsglevel prio
--logmsglevel prio
syslog/journal およびコンソールにログ記録されるメッセージの最小優先度です。値は、trace、debug、info、warn、err、および fatal です。ここで設定またはそれ以上の優先度を持つメッセージは、それぞれのメディアに出力されます。stderr に出力されるメッセージは stdout に繰り返されません。これにより、ローカル管理者は、コンソールとログでの adduser の冗長性を独立して制御でき、おそらく混乱を招く情報を非表示にしながら、それでも役に立つ情報をログに記録できます。stdoutmsglevel、stderrmsglevel、および logmsglevel のデフォルト値は、それぞれ warn、warn、および info です。

-v , --version
バージョンと著作権情報を表示します。

有効な名前

歴史的に、adduser(8) と addgroup(8) は IEEE Std 1003.1-2001 に準拠しており、グループ名とユーザー名に次の文字のみを使用できます: 文字、数字、アンダースコア、ピリオド、アットマーク (@)、およびハイフン。名前はハイフンまたは @ で始めることはできません。ドル記号 ($) は、Samba マシンアカウントの一般的な形式を許可するために、ユーザー名の末尾に付けることができます。

NAME_REGEX および SYS_NAME_REGEX のデフォルト設定では、ユーザー名に文字と数字、およびハイフン (-) とアンダースコア (_) を含めることができ、名前は文字 (またはシステムユーザーの場合はアンダースコア) で始める必要があります。

最も制限の少ないポリシーは、--allow-all-names オプションを使用することで利用でき、useradd(8) と同じチェックを実行します。ただし、useradd のチェックは Debian 13 では大幅に厳格になりました。

-v, --version
バージョンと著作権情報を表示します。

デフォルトの動作を変更すると、混乱を招いたり誤解を招いたりする名前が作成される可能性があるため、注意して使用してください。

ログ

adduser は、システム管理者のニーズに合わせて、広範囲にわたる構成可能なロギングを使用します。

adduser が出力するすべてのメッセージには、作成者によって優先度値が割り当てられます。この優先度は、実行時に変更することはできません。使用可能な優先度値は、crit、error、warning、info、debug、および trace です。

メッセージの優先度が誤っていると思われる場合は、バグを報告してください。

メッセージが生成されるたびに、コードはメッセージを標準出力、標準エラー、または syslog のいずれに出力するかを決定します。これは主に、構成設定 STDOUTMSGLEVEL、STDERRMSGLEVEL、および LOGMSGLEVEL によって独立して制御されます。テスト目的で、これらの設定をコマンドラインでオーバーライドできます。

優先度がそれぞれのメッセージレベル以上であるメッセージのみが、それぞれの出力メディアにログ記録されます。標準エラーに書き込まれたメッセージは、2 回目に標準出力に書き込まれることはありません。

終了値

0 成功: ユーザーまたはグループが指定されたとおりに存在します。これには 2 つの原因があります。ユーザーまたはグループが、この adduser 呼び出しによって作成されたか、adduser が呼び出される前にシステムに存在していたかのいずれかです。adduser --system が、要求された属性または互換性のある属性を持つすでに存在するユーザーに対して呼び出された場合、0 も返されます。

11 adduser が作成するように要求されたオブジェクトがすでに存在します。

12 adduser または deluser が操作するように要求されたオブジェクトが存在しません。

13 adduser または deluser が操作するように要求されたオブジェクトは、操作を完了するために必要なプロパティを持っていません。システムユーザー(グループ)として作成するように要求されたユーザー(グループ)がすでに存在し、システムユーザー(グループ)ではない場合、または特定の UID(GID)で作成するように要求されたユーザー(グループ)がすでに存在し、異なる UID(GID)を持っている場合、またはシステムユーザー(グループ)として削除するように要求されたユーザー(グループ)が存在するが、システムユーザー(グループ)ではない場合などです。

21 新しいユーザー(グループ)に対して明示的に要求された UID(GID)がすでに使用されています。

22 要求された範囲に利用可能な UID(GID)がありません。

23 新しいユーザーのプライマリグループとして要求された GID を持つグループがありません。

31 新しいユーザーまたは新しいグループに対して選択された名前が、選択された命名規則に準拠していません。

32 新しいユーザーのホームディレクトリは、絶対パスである必要があります。

33 useradd が終了コード 19 "無効なユーザーまたはグループ名" を返しました。これは、選択されたユーザーまたはグループ名が useradd の制限に適合しておらず、adduser がユーザーを作成できないことを意味します。

41 削除するように要求されたグループが空ではありません。

42  削除を要求されたユーザーが、そもそもグループのメンバーではありません。

43  ユーザーのプライマリグループから削除することはできません。また、新しいユーザーに対して、どの方法によってもプライマリグループが選択されていません。

51  コマンドラインパラメーターの数または順序が正しくありません。

52  設定ファイルで互換性のないオプションが設定されています。

53  互いに互換性のないコマンドラインオプションが検出されました。

54  adduser と deluser は root ユーザーとして呼び出されず、したがって機能しません。

55  deluser は、root アカウントの削除を拒否します。

56  追加のパッケージのインストールが必要な機能が要求されました。 adduser パッケージの Recommends: および Suggests: を参照してください。

61  adduser が何らかの理由で中止され、実行中に実行された変更をロールバックしようとしました。

62  内部 adduser エラー。これは発生すべきではありません。問題を再現し、バグ報告を送信してください。

71  ロックの作成と処理中にエラーが発生しました。

72  設定ファイルへのアクセス中にエラーが発生しました。

73  プールファイルへのアクセス中にエラーが発生しました。

74  プールファイルの読み込み中にエラーが発生しました。ファイルに構文エラーがあります。

75  補助ファイルへのアクセス中にエラーが発生しました。

81  adduser または deluser に必要な実行ファイルが見つかりません。インストールと依存関係を確認してください。

82  外部コマンドの実行中に、予期しないエラーが発生しました。

83  外部コマンドがシグナルで終了しました。

84  システムコールが予期しないエラーで終了しました。

あるいは、まだ文書化されていない他の多くの理由があり、それらはコンソールに表示されます。 adduser をより詳細にするために、ログレベルを上げることを検討してください。

セキュリティ

adduser は root 権限を必要とし、--conf コマンドラインオプションを介して、異なる設定ファイルを使用できます。 [sudo]({filename}../../sudo)(8) や同様のツールを使用して、制限されたコマンドラインパラメーターで、adduser に部分的な権限を与えないでください。 これは簡単に回避でき、ユーザーが任意の アカウントを作成できるようになる可能性があります。 これを行う場合は、独自のラッパー スクリプトを作成し、そのスクリプトを実行する権限を与えることを検討してください。

ファイル

/etc/adduser.conf
adduser(8) と addgroup(8) のデフォルト設定ファイル

/usr/local/sbin/adduser.local
オプションのカスタムアドオン。 adduser.local(8) を参照してください。

注意事項

残念ながら、Debian における「システムアカウント」という用語は、二重の意味で使用されています。 これは、Debian システム自体のアカウントを意味し、Debian 上で実行されているアプリケーションのユーザーデータベースに存在するアプリケーションアカウントとは区別されます。 この定義におけるシステムアカウントは、実際のシステムにログインできる可能性があり、UID を持ち、システムグループのメンバーであり、ファイルとプロセスを所有できます。 一方、Debian ポリシーの第 9.2.2 章では、動的に割り当てられたシステムユーザーとグループ、および動的に割り当てられたユーザーアカウントを区別しています。この場合も、特殊なインスタンスのシステムアカウントを意味します。 この用語を混同しないように注意する必要があります。 adduser および deluser(8) は、アプリケーションアカウントを扱わず、このパッケージのすべての内容は、ここでいう「システムアカウント」を対象としているため、このパッケージの文脈では、「ユーザーアカウント」および「システムアカウント」という用語の使用は、実際には曖昧ではありません。 明確にするために、このドキュメントでは、アプリケーションアカウントまたはディレクトリサービスで管理されるアカウントとの区別が必要な場合に、「ローカルシステムアカウント」または「グループ」という用語を使用します。


adduser は、1990年代から Debian で、通常アカウントとシステムアカウントの両方をさまざまなディレクトリサービスに作成および削除するための、汎用的なフロントエンドとなることを目指していました。しかし、2022 年をもってこのビジョンは放棄されました。その理由には、実際には、小規模なサーバーシステムがエンタープライズ全体のディレクトリサービスへの書き込みアクセス権を持つことはない、ローカルにインストールされたパッケージは、集中管理されたシステムアカウントで管理することが難しい、エンタープライズディレクトリサービスには独自の管理プロセスがある、そして adduser チームの人員は、サポートする必要のある多数のディレクトリサービスを開発および維持するために十分な人員を確保することは難しい、などが挙げられます。

adduser は、ローカルシステムアカウントの管理のためのポリシーレイヤーに焦点を当て、実際の作業には passwd パッケージのツールを使用します。

バグ

ドキュメントとコードにおける「システムアカウント」という用語の使用に一貫性がないのはバグです。ご報告いただき、ドキュメントの改善にご協力ください。

adduser は、条件付きのラッパー、エラー抑制、その他の補助的な処理を必要とせずに、Debian のメンテナンススクリプトで直接使用できるように設計されています。パッケージのメンテナーがコード化する必要があるのは、postrm スクリプトで実行ファイルが存在するかどうかを確認するだけです。 adduser のメンテナーは、追加の補助的な処理が必要になることをバグとみなし、他の Debian のパッケージメンテナーに、その場合は adduser パッケージに対してバグを報告するように促します。

関連項目

adduser.conf(5)、deluser(8)、groupadd(8)、useradd(8)、usermod(8)、Debian のすべてのシステムにある /usr/share/doc/basepasswd/users-and-groups.html、Debian Policy 9.2.2、RFC8264 "PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols"、RFC8265 "PRECIS Representing Usernames and Passwords"、https://wiki.debian.org/UserAccounts。