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 shell UID GID/login group 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 −D −E pw unlock [name | uid] −f file −g login_group −G groups −h −k directory −L login_class −m file −N −q −s shell −S −u uid −w type no none yes random フォーマット |
−f オプション使用時には、アカウント情報は特定の書式で格納する必要がありま す。空行または ‘#’ で開始する行は無視されます。他のすべての行は、コロン (‘:’) で区切られた 10 個のフィールド (後述) から成ります。コマンドライン オプションは、これらの値に優先しません。パスワードフィールドのみが、 ‘:’ 文字を文字列の一部として持つことができます。 |
name:uid:gid:class:change:expire:gecos:home_dir:shell:password |
name
ログイン名。このフィールドは空であってはなりません。 uid gid class change expire gecos home_dir shell password 関連ファイル |
/etc/master.passwd
ユーザのデータベース 関連項目 |
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 |