tail head cat sleep
QR code linking to this page

manページ  — ADDUSER

名称

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) コマンドを使用して行います:

-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 の歓迎メッセージを送ります。 file no を指定すると、新規ユーザへメッセージを送りません。 メッセージファイルが 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 数値のログインユーザ 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 で指定された場合にのみ設定可能です。 対話モードでもユーザが設定可能となるべきです。


ADDUSER (8) March 30, 2004

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。