CHPASS(1)

名称
chpass, chfn, chsh - ユーザデータベース内の情報を編集する

書式
chpass [-a list] [-s newshell] [user]

解説
chpass は、 user もしくはデフォルトでは実行したユーザのユーザデータベースの情報を変更します。 情報はフォーマットに従って整形され、必要な部分をエディタで変更します。

ユーザが変更することができる情報だけが表示されます。

オプションは、以下のものがあります:

-a  スーパユーザは、ユーザデータベースのエントリを passwd(5) で定義されたフォーマットで引数として直接指定することができます。 この引数はコロン (``:'') で区切られたリストで、 空きの部分があっても許されますが、 すべてのフィールドをリストにしなければなりません。

-s  -s オプションは、ユーザのシェルを newshell に変更します。

表示されるエントリには以下のものがあります:

Login:
    ユーザのログイン名
Password:
    ユーザの暗号化されたパスワード
Uid:
    ユーザの ID
Gid:
    ユーザのグループ ID
Change:
    パスワードの変更時間
Expire:
    アカウントの有効期限
Class:
    ユーザの一般的な分類
Home Directory:
    ユーザのホームディレクトリ
Shell:
    ユーザのログインシェル
Full Name:
    ユーザの実際の名前
Location:
    ユーザが通常いる場所
Home Phone:
    ユーザの自宅の電話番号
Office Phone:
    ユーザのオフィスの電話番号

login フィールドは計算機にアクセスするときに使われるユーザ名です。

password フィールドはユーザの暗号化されたパスワードが収められています。

uid フィールドは login フィールドと関連した番号です。ファイルのアクセスを制御するために、 どちらのフィールドもシステム (しばしば、システムのグループ) の中で 一意でなければいけません。

複数のエントリが同一のログイン名や同一のユーザの ID を持つことは可能ですが、 そのようにすることは通常は誤りです。これらのファイルを操作するルーチンには、 それらの複数のエントリ内のどちらかだけを返すものもあれば、 ランダムに選んだものを返すものもあるでしょう。

group フィールドはユーザがログイン時に所属させられるグループです。 BSD が複数のグループを採用してから (groups(1) 参照)、このフィールドは少し特殊な意味を持つようになりました。 このフィールドは番号やグループ名 (group(5) 参照) のどちらかが記述されます。

change フィールドはパスワードが変更されなくてはいけない日付です。

expire フィールドはアカウントが期限切れになる日付です。

change と expire の両方のフィールドは ``month day year'' の形式で入力し、 month は、英語の月の名前 (はじめの 3 文字でも十分です) で、 day は、その月の中の日で、 year は、その年です。

class フィールドは現在では使われてません。近い将来には、 termcap(5) 形式のユーザ属性のデータベースへのキーとなるでしょう。

ユーザの home directory は、ユーザがログイン時にいる場所への UNIX 絶対パス名です。

shell フィールドは、ユーザの好みのコマンドインタプリタです。 もし shell フィールドが空であれば Bourne shell、つまり /bin/sh であると仮定します。 ログインシェルを変更するときに、スーパーユーザではないユーザは、 非標準シェルから、または非標準シェルへの変更は許されていません。 非標準シェルとは /etc/shells 内に存在しないシェルのことです。

最後の 4 つのフィールドは、ユーザの 実際の名前 、 オフィスの場所 、 家 、 仕事で使う電話 番号の保管をしています。

情報が正しいかどうか確かめられれた後、 chpass はユーザデータベースの更新のために pwd_mkdb(8) を用います。

環境変数
環境変数 EDITOR が設定されていない場合は、 vi(1) エディタが使われます。エディタが終了すると、その情報が再度読み込まれ、 ユーザデータベースを変更するための情報とします。 実行中のユーザとスーパユーザだけにしか そのユーザの情報を変更することができません。

関連ファイル
/etc/master.passwd
    ユーザデータベース
/etc/passwd
    Version 7 フォーマットのパスワードファイル
/etc/ptmp
    passwd データベース用のロックファイル
/etc/pw.XXXXXX
    パスワードファイルのテンポラリ用コピー
/etc/shells
    利用できるシェルのリスト

関連項目
login(1), finger(1), passwd(1), getusershell(3), passwd(5), pwd_mkdb(8), vipw(8) Robert Morris, Ken Thompson, UNIX Password Security.

バグ
このプログラムのインタフェースは Kerberos のような暗号システムにはあまりふさわしくありません。 このため、Kerberos パスワードの変更の機能はこのプログラムにはありません。

ユーザ情報はどこか他の場所に保存されるべきです。

歴史
chpass コマンドは 4.3BSD Reno から登場しました。