ADDUSER
Section: Maintenance Commands (8)
索引
jman
BSD mandoc
索引
名称
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
]
索引
解説
ユーティリティは新しいユーザを加えるための、
pw(8)
コマンドを利用して実装されたシェルスクリプトです。
パスワード, グループ, シェル等のデータベースをチェックし、
passwd/group の登録を行い、
ホーム
ディレクトリとドットファイルを作成し、
新しいユーザに歓迎メッセージを送ります。
2 つの動作モードをサポートします。
すなわち、
1 度に 1 人ずつのユーザを追加するコマンドラインでの対話モードと、
新規ユーザのリストをファイルで与えてユーザの介在無しに
動作するバッチモードです。
索引
制限事項
- username
-
ログイン名です。
pw(8)
が受け付けるログイン名に制限されます。
一般に、英小文字と数字のみ使用可能です。
長さは 16 文字までです。
この制限の理由は、歴史的な物です。
美的な理由からこの制限を破りたいとする人々はいつもいましたが、
UNIX
における基本的なパラメータを変更するほどの重要な理由ではありま
せんでした。
In 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)
索引
設定
ユーティリティは設定情報を
/etc/adduser.conf
から読み取ります。
このファイルが存在しない場合、規定のデフォルトを使用します。
このファイルは手で編集可能ですが、
-C
コマンドライン引数を使用する方が安全です。
この引数を使用すると、
は対話的入力を開始し、問い合わせに対する回答を
/etc/adduser.conf
に保存し、ユーザデータベースを変更せずに確認しつつ終了します。
コマンドラインで指定したオプションは、このファイルに保存したものに優先します。
索引
オプション
- -C
-
新規設定ファイルを作成して終了します。
このオプションは
-f
と排他です。
- -d partition
-
ホームパーティション。
すべてのユーザディレクトリがあるデフォルトパーティションです。
/nonexistent
パーティションは特別なものと考えられています。
スクリプトは、その名前でホームディレクトリを作成したり、
そこにファイルをコピーしたりすることはありません。
それ以外であれば、デフォルトでホームディレクトリの作成を試みます。
- -D
-
ホームディレクトリの作成を試みません。
- -E
-
アカウントを無効化します。
このオプションは、文字列
``*LOCKED*
''
をパスワードフィールドの前に付けることで、アカウントをロックします。
アカウントのアンロックは、スーパユーザが次の
pw(8)
コマンドを使用して行います:
- -f file
-
生成するアカウントのリストを
file
から得ます。
file
が
``-
''
の場合、リストを標準入力から得ます。
このオプションが指定された場合、
はバッチモードで動作し、ユーザ入力を求めません。
あるアカウント処理中にエラーが発生した場合、
メッセージを標準エラーに書き込み、次のアカウントに取り組みます。
入力ファイルの書式は後述します。
- -g login_group
-
通常は、ログイングループが指定されない場合、
ユーザ名と同じであると仮定されます。
このオプションは、
login_group
をデフォルトとします。
- -G groups
-
追加グループ。
このオプションは、ユーザに付与する追加グループを指定します。
ユーザは、ログイングループに加え、これらのグループのメンバです。
- -h
-
オプションの要約を表示して、終了します。
- -k directory
-
directory
のファイルを新規ユーザのホームディレクトリへコピーします。
dot.foo
は
.foo
にリネームされます。
- -L login_class
-
デフォルトログインクラスを設定します。
- -m file
-
file
の歓迎メッセージを送ります。
file
に
no
を指定すると、新規ユーザへメッセージを送りません。
メッセージファイルが
スクリプトの内部変数を参照可能であることに注意してください。
- -N
-
デフォルト設定ファイルを読み取りません。
- -q
-
最小のユーザフィードバック。
特に、ランダムパスワードは標準出力にエコーされません。
- -s shell
-
新規ユーザのデフォルトシェル。
shell
引数は、シェルのベース名かフルパスです。
-S
引数が指定されていなければ、
シェルが正当なシェルであるとみなされるためには、
/etc/shells
に含まれるか、特殊シェル
nologin
であることが必要です。
- -S
-
指定されたシェルの存在や妥当性を確認しません。
- -u uid
-
uid
から開始する UID を使用します。
- -w type
-
パスワードタイプ。
ユーティリティは、生成するパスワードの種類を指定することができます。
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
-
用の設定ファイル
- /etc/adduser.message
-
用のメッセージファイル
- /usr/share/skel
-
ログインディレクトリの雛型
- /var/log/adduser
-
のログ記録ファイル
索引
関連項目
chpass(1),
passwd(1),
adduser.conf5,
aliases(5),
group(5),
login.conf5,
passwd(5),
shells(5),
pw(8),
pwd_mkdb8,
rmuser(8),
vipw(8),
yp(8)
索引
歴史
ユーティリティは
Fx 2.1
から導入されました。
索引
作者
An -nosplit
マニュアルページと Perl による元のスクリプトは
An Wolfram Schneider Aq wosch@FreeBSD.org
が書きました。
追加機能を持つ、Bourne シェルスクリプトで書かれた置き換えスクリプトと、
これに伴なうマニュアルページの更新を
An Mike Makonnen Aq mtm@identd.net
が行いました。
索引
バグ
$username
や
$randompass
といった変数を新規ユーザへ送るメッセージ中で
が正しく展開できるために、
メッセージファイルの各行をシェルで評価する必要があります。
これは、メッセージファイル中にシェルコマンドを格納可能であることを意味します。
ユーティリティは、攻撃者がこの機能を使用する可能性を和らげるために、
root ユーザ所有の root ユーザのみが書き込み可能なファイル以外を評価する
ことを拒否します。
さらに、シェル特殊文字やオペレータは、
メッセージファイルで使用する場合、エスケープする必要があります。
また、パスワードエージングとアカウント満了時は、
現在のところバッチモードでと
/etc/adduser.conf
で指定された場合にのみ設定可能です。
対話モードでもユーザが設定可能となるべきです。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 制限事項
-
- 一意なグループ
-
- 設定
-
- オプション
-
- フォーマット
-
- 関連ファイル
-
- 関連項目
-
- 歴史
-
- 作者
-
- バグ
-
Time: 07:07:34 GMT, January 12, 2009