スポンサーリンク

ADDUSER(8) FreeBSD システム管理者マニュアル ADDUSER(8)

名称

adduser − 新しいユーザを加えるためのコマンド

書式

adduser [−CDENShq] [−G groups] [−L login_class] [−d partition] [−f file] [−g login_group] [−k dotdir] [−m message_file] [−s shell] [−u uid_start] [−w type]

解説

adduser ユーティリティは新しいユーザを加えるための、 pw(8) コマンドを利用 して実装されたシェルスクリプトです。パスワード, グループ, シェル等のデー タベースをチェックし、 passwd/group の登録を行い、ホームディレクトリと ドットファイルを作成し、新しいユーザに歓迎メッセージを送ります。 2 つの動 作モードをサポートします。すなわち、 1 度に 1 人ずつのユーザを追加するコ マンドラインでの対話モードと、新規ユーザのリストをファイルで与えてユーザ の介在無しに動作するバッチモードです。

制限事項

       username

ログイン名です。 pw(8) が受け付けるログイン名に制限されます。一般 に、英小文字と数字のみ使用可能です。長さは 16 文字までです。この 制限の理由は、歴史的な物です。美的な理由からこの制限を破りたいと する人々はいつもいましたが、 UNIX における基本的なパラメータを変 更するほどの重要な理由ではありませんでした。 <utmp.h> ファイル内 の UT_NAMESIZE パラメータを変更し、全てを再コンパイルすることで、 変更できますが、コンパイル済みのプログラムや名前の 8 文字制限を前 提としたソースコード、そして NIS については、問題が起こるでしょ う。 NIS のプロトコルは、ユーザ名を 8 文字と定めています。電子 メールアドレスとして、もっと長いログイン名を必要とする場合には、 別名を /etc/mail/aliases ファイルに定義することができます。

full name
典型的には gecos フィールドとして知られ、通常はユーザの完全な名前 を格納します。さらに、コンマで区切った値のリスト、例えば職場の番 号や職場と家の電話番号を格納可能です。名前にアンパサンドが含まれ る場合、他のプログラムが表示するときに、これを先頭を大文字にした ログイン名で置き換えます。 ‘:’ (コロン) は、使えません。

shell
−S
引数が指定されていなければ、シェルデータベースに定義されている 有効なシェル (/etc/shells) だけが有効です。さらに、シェルのベース 名かフルパスを指定します。

UID
自動生成されますが、自分で指定することもできます。ただし、32000 よりも小さい数字でなければなりません。

GID/login group
自動生成されますが、自分で指定することもできます。ただし、32000 よりも小さい数字でなければなりません。

password
空のパスワード、パスワード無効化、ランダム生成パスワード、素のテ キストで指定するパスワードのいずれかを選択可能です。パスワードは 暗号化されてからユーザデータベースに保存されます。

一意なグループ

ひょっとして、あなたは、この方法ではできても他のほとんどの方法ではうまく 行かないことがあるのを見逃しているかもしれません。個々のユーザをそのユー ザ独自のグループに入れることで、通常の 022 の代りに umask を 002 としてお いても安全になり、ホームディレクトリにファイルを作っても、他の人にファイ ルを変更される心配がなくなります。

共有場所を作るためには、 (freefall における cvs や ncvs のように) UID/GID を別に設けて、ユーザを個別にその新しいグループに入れることで、その場所へ のアクセスを可能とすべきです。

この uid/gid の管理モデルは、たくさんのユーザをグループにまとめるより柔軟 性があり、共有場所で仕事をする時に umask をいじり回さずにすみます。

この方法をほぼ 10 年間使っていますが、ほとんどの場合に使えることがわか り、じゃまになったことはありませんでした。 (Rod Grimes)

設定

adduser ユーティリティは設定情報を /etc/adduser.conf から読み取ります。こ のファイルが存在しない場合、規定のデフォルトを使用します。このファイルは 手で編集可能ですが、 −C コマンドライン引数を使用する方が安全です。この引 数を使用すると、 adduser は対話的入力を開始し、問い合わせに対する回答を /etc/adduser.conf に保存し、ユーザデータベースを変更せずに確認しつつ終了 します。コマンドラインで指定したオプションは、このファイルに保存したもの に優先します。

オプション

       −C

新規設定ファイルを作成して終了します。このオプションは −f と排他 です。

−d partition
ホームパーティション。すべてのユーザディレクトリがあるデフォルト パーティションです。 /nonexistent パーティションは特別なものと考 えられています。 adduser スクリプトは、その名前でホームディレクト リを作成したり、そこにファイルをコピーしたりすることはありませ ん。それ以外であれば、デフォルトでホームディレクトリの作成を試み ます。

−D
ホームディレクトリの作成を試みません。

−E
アカウントを無効化します。このオプションは、文字列 ‘‘*LOCKED*’’ をパスワードフィールドの前に付けることで、アカウントをロックしま す。アカウントのアンロックは、スーパユーザが次の pw(8) コマンドを 使用して行います:

pw unlock [name | uid]

−f file
生成するアカウントのリストを file から得ます。 file が ‘‘’’ の場 合、リストを標準入力から得ます。このオプションが指定された場合、 adduser はバッチモードで動作し、ユーザ入力を求めません。あるアカ ウント処理中にエラーが発生した場合、メッセージを標準エラーに書き 込み、次のアカウントに取り組みます。入力ファイルの書式は後述しま す。

−g login_group
通常は、ログイングループが指定されない場合、ユーザ名と同じである と仮定されます。このオプションは、 login_group をデフォルトとしま す。

−G groups
追加グループ。このオプションは、ユーザに付与する追加グループを指 定します。ユーザは、ログイングループに加え、これらのグループのメ ンバです。

−h
オプションの要約を表示して、終了します。

−k directory
directory
のファイルを新規ユーザのホームディレクトリへコピーしま す。 dot.foo.foo にリネームされます。

−L login_class
デフォルトログインクラスを設定します。

−m file
file
の歓迎メッセージを送ります。 fileno を指定すると、新規 ユーザへメッセージを送りません。メッセージファイルが adduser スク リプトの内部変数を参照可能であることに注意してください。

−N
デフォルト設定ファイルを読み取りません。

−q
最小のユーザフィードバック。特に、ランダムパスワードは標準出力に エコーされません。

−s shell
新規ユーザのデフォルトシェル。 shell 引数は、シェルのベース名かフ ルパスです。 −S 引数が指定されていなければ、シェルが正当なシェル であるとみなされるためには、 /etc/shells に含まれるか、特殊シェル nologin であることが必要です。

−S
指定されたシェルの存在や妥当性を確認しません。

−u uid
uid
から開始する UID を使用します。

−w type
パスワードタイプ。 adduser ユーティリティは、生成するパスワードの 種類を指定することができます。 type 引数は以下の値のうちのいずれ かです:

no
パスワードの無効化。暗号化文字列の代りに、パスワード フィールドは単一の ‘*’ 文字になります。スーパユーザが手動 でパスワードを有効化するまで、ユーザはログインできませ ん。

none
空文字列をパスワードとして使用します。

yes
ユーザが提供した文字列をパスワードとして利用します。対話 モードでは、ユーザはパスワード入力を求められます。バッチ モードでは、最後 (10 番目) のフィールドがパスワードだとみ なされます。

random
ランダム文字列を生成し、これをパスワードとします。パス ワードは標準出力へエコーされます。さらに、 randompass 変 数を介して、ファイルへ含めることが可能です。

フォーマット

−f オプション使用時には、アカウント情報は特定の書式で格納する必要がありま す。空行または ‘#’ で開始する行は無視されます。他のすべての行は、コロン (‘:’) で区切られた 10 個のフィールド (後述) から成ります。コマンドライン オプションは、これらの値に優先しません。パスワードフィールドのみが、 ‘:’ 文字を文字列の一部として持つことができます。

name:uid:gid:class:change:expire:gecos:home_dir:shell:password

       name

ログイン名。このフィールドは空であってはなりません。

uid
数値のログインユーザ ID。このフィールドが空の場合、自動生成され ます。

gid
数値のプライマリグループ ID。このフィールドが空の場合、ユーザ名 と同じ名前のグループが生成され、その GID が使用されます。

class
ログインクラス。このフィールドは空であっても構いません。

change
パスワードエージング。このアカウントのパスワードを変更する日付 を表現します。このフィールドの書式は、 pw(8) への −p 引数のもの と同じです。これは dd-mmm-yy[yy] であり、 dd は日、 mmm は数値 またはアルファベットの月で ‘‘10’’ や ‘‘Oct’’ 、 yy[yy] は 4 桁 または 2 桁の年です。現在の日付からの相対で時を指定したい場合、 次の書式を使用します: +n[mhdwoy] 。ここで、 n は数値であり、こ の後に分・時間・日・週・月・年を続け、これらけの期間が経過した らパスワードが変更されねばならないことを示します。このフィール ドを空にすることで、この機能をオフにできます。

expire
アカウントの満了。このフィールドは、アカウントの満了日を表現し ます。指定した日付より後にはアカウントは使用できません。この フィールドの書式は、パスワードエージングのものと同じです。この フィールドを空にすることで、この機能をオフにできます。

gecos
ユーザの完全な名前と追加情報。

home_dir
ホームディレクトリ。このフィールドが空の場合、ホームパーティ ションにユーザ名を追加することで自動生成されます。 /nonexistent ホームディレクトリは特別なものと考えられていて、ユーザのために ホームディレクトリを作成しないことを意味すると解釈されます。

shell
ログインシェル。このフィールドは、有効なログインシェルのベース 名かフルパスを含むことが必要です。

password
ユーザパスワード。このフィールドは素のテキスト文字列を含み、 ユーザデータベースに置かれる前に暗号化されます。パスワードタイ プが yes であり、このフィールドが空の場合、このアカウントは空の パスワードになるものとみなされます。パスワードタイプが random でありこのフィールドが空では ない場合、この内容がパスワードとし て使用されます。 −p オプションが引数 no または none と共に使用 された場合、このフィールドは無視されます。このフィールドを ‘:’ で終端させないように。これはパスワードの一部とみなされてしまい ます。

関連ファイル

       /etc/master.passwd

ユーザのデータベース
/etc/group
グループのデータベース
/etc/shells
シェルデータベース
/etc/login.conf
ログインクラスデータベース
/etc/adduser.conf
adduser
用の設定ファイル
/etc/adduser.message
adduser
用のメッセージファイル
/usr/share/skel
ログインディレクトリの雛型
/var/log/adduser
adduser
のログ記録ファイル

関連項目

chpass(1), passwd(1), adduser.conf(5), aliases(5), group(5), login.conf(5), passwd(5), shells(5), pw(8), pwd_mkdb(8), rmuser(8), vipw(8), yp(8)

歴史

adduser ユーティリティは FreeBSD 2.1 から導入されました。

作者

マニュアルページと Perl による元のスクリプトは Wolfram Schneider ⟨wosch@FreeBSD.org⟩ が書きました。追加機能を持つ、Bourne シェルスクリプト で書かれた置き換えスクリプトと、これに伴なうマニュアルページの更新を Mike Makonnen ⟨mtm@identd.net⟩ が行いました。

バグ

$username$randompass といった変数を新規ユーザへ送るメッセージ中で adduser が正しく展開できるために、メッセージファイルの各行をシェルで評価 する必要があります。これは、メッセージファイル中にシェルコマンドを格納可 能であることを意味します。 adduser ユーティリティは、攻撃者がこの機能を使 用する可能性を和らげるために、 root ユーザ所有の root ユーザのみが書き込 み可能なファイル以外を評価することを拒否します。さらに、シェル特殊文字や オペレータは、メッセージファイルで使用する場合、エスケープする必要があり ます。

また、パスワードエージングとアカウント満了時は、現在のところバッチモード でと /etc/adduser.conf で指定された場合にのみ設定可能です。対話モードでも ユーザが設定可能となるべきです。

FreeBSD 10.0 March 30, 2004 FreeBSD 10.0

スポンサーリンク