.\" Copyright (c) 1988, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)chpass.1 8.2 (Berkeley) 12/30/93 .\" %FreeBSD: src/usr.bin/chpass/chpass.1,v 1.37 2004/07/26 19:49:29 charnier Exp % .\" .\" $FreeBSD$ .Dd December 30, 1993 .Dt CHPASS 1 .Os .Sh 名称 .Nm chpass , .Nm chfn , .Nm chsh , .Nm ypchpass , .Nm ypchfn , .Nm ypchsh .Nd ユーザデータベース内の情報を編集する .Sh 書式 .Nm .Op Fl a Ar list .Op Fl p Ar encpass .Op Fl e Ar expiretime .Op Fl s Ar newshell .Op user .Nm .Op Fl oly .Op Fl a Ar list .Op Fl p Ar encpass .Op Fl e Ar expiretime .Op Fl s Ar newshell .Op Fl d Ar domain .Op Fl h Ar host .Op user .Sh 解説 .Nm ユーティリティは .Ar user もしくはデフォルトでは実行したユーザのユーザデータベースの情報を変更します。 .Pp .Nm chfn , .Nm chsh , .Nm ypchpass , .Nm ypchfn , .Nm ypchsh ユーティリティは、 .Nm と同じように動作します (プログラムはひとつだけなのです)。 .Pp 情報はフォーマットされ、必要な部分をエディタで変更します。 .Pp ユーザが変更することができる情報だけが表示されます。 .Pp オプションとしては、次のものがあります: .Bl -tag -width indent .It Fl a スーパユーザは、ユーザデータベースのエントリを .Xr passwd 5 で定義されたフォーマットで引数として直接指定できます。 この引数はコロン .Pq Dq \&: で区切られたリストであり、 空きの部分があっても許されますが、 すべてのフィールドをリストにしなければなりません。 .It Fl p スーパユーザは、暗号化されたパスワードフィールドを .Xr crypt 3 で用いられているフォーマットで引数として直接指定することができます。 .It Fl e Ar expiretime アカウントが無効となる時を変更します。 対話エディタからのようにスクリプトから、 無効となる時を変更するために、本オプションを使用します。 .It Fl s Ar newshell ユーザのシェルを .Ar newshell に変更しようとします。 .El .Pp 表示されるエントリには以下のものがあります: .Pp .Bl -tag -width "Other Information:" -compact -offset indent .It Login: ユーザのログイン名 .It Password: ユーザの暗号化されたパスワード .It Uid: ユーザの ID .It Gid: ユーザのグループ ID .It Class: ユーザの一般的な分類 .It Change: パスワードの変更時間 .It Expire: アカウントの有効期限 .It Full Name: ユーザの実際の名前 .It Office Location: ユーザのオフィスの場所 (1) .It Office Phone: ユーザのオフィスの電話番号 (1) .It Home Phone: ユーザの自宅の電話番号 (1) .It Other Information: ユーザに関するローカル定義情報 (1) .It Home Directory: ユーザのホームディレクトリ .It Shell: ユーザのログインシェル .Pp .It 注 (1) - 実際の master.passwd ファイルでは、 これらのフィールドはコンマで区切られたフィールドとして FullName フィールドに埋め込まれます。 .El .Pp .Ar login フィールドは計算機にアクセスするときに使われるユーザ名です。 .Pp .Ar password フィールドはユーザの暗号化されたパスワードが収められています。 .Pp .Ar uid フィールドは .Ar login フィールドと関連した番号です。ファイルのアクセスを制御するために、 どちらのフィールドもシステム (しばしば、複数のシステム) の中で 一意である必要があります。 .Pp 複数のエントリが同一のログイン名や同一のユーザ ID を持つことは可能ですが、 そのようにすることは通常誤りです。 これらのファイルを操作する手順では、 それらの複数のエントリ内から無作為に選んだものの一つだけを返すでしょう。 .Pp .Ar group フィールドはユーザがログイン時に所属するグループです。 .Bx が複数の グループを採用してから ( .Xr groups 1 参照) このフィールドはほとんど意味がありません。 このフィールドは番号やグループ名 ( .Xr group 5 参照) のどちらかが記述されます。 .Pp .Ar class フィールドは .Pa /etc/login.conf のクラスに関する記述を参照します。 典型的には、ユーザのログイン時に、 ユーザのシステムリソースを制限するために使用されます。 .Pp .Ar change フィールドはパスワードが変更されているべき日付です。 .Pp .Ar expire フィールドはアカウントの満了する日付です。 .Pp .Ar change と .Ar expire の両方のフィールドは .Dq month day year の形式で入力し、 .Ar month は、英語の月の名前 (はじめの 3 文字でも十分です) で、 .Ar day は、その月の中の日で、 .Ar year は、その年です。 .Pp 5 つのフィールドは、ユーザの .Ar 実際の名前 、 .Ar オフィスの場所 、 .Ar 職場 と .Ar 家で使う電話 番号、そして .Ar その他の情報 を保管しています。 .Ar その他の情報 は、コンマで区切った単一文字列であり、追加の gecos フィールドを表現します (典型的にはサイト固有のユーザ情報のために使用します)。 .Xr finger 1 が、 .Ar Office: というヘッダの下に オフィスの場所と電話番号をともに表示することに注意してください。 .Pp ユーザの .Ar home directory はユーザがログイン時にいる場所への絶対 .Ux パス名です。 .Pp .Ar shell フィールドはユーザの好むコマンドインタプリタです。 もし .Ar shell フィールドが空であれば、Bourne シェル .Pa /bin/sh であると仮定します。 ログインシェルを変更するときに、スーパユーザではないユーザは、 非標準シェルから、または非標準シェルへの変更は許されていません。 非標準シェルとは .Pa /etc/shells で見つけられないシェルのことです。 .Pp 一度情報が確認されたら .Nm はユーザデータベースを更新するために .Xr pwd_mkdb 8 を用います。 .Sh 環境変数 環境変数 .Ev EDITOR を設定して他のエディタを指定している場合を除き、 .Xr vi 1 エディタが使われます。エディタが終了すると、その情報は再度読み込まれ、 ユーザデータベースを変更するための情報とします。 ユーザの情報を変更できるのは、そのユーザかスーパユーザのみです。 .Pp .Ev PW_SCAN_BIG_IDS 環境変数の設定のインパクトについては、 .Xr pwd_mkdb 8 の説明を参照してください。 .Sh NIS との相互作用 いくつかの制限が適用されますが、 .Nm ユーティリティを NIS と同時に使うこともできます。現在 .Nm が .Xr rpc.yppasswdd 8 を通じて NIS のパスワードマップ中で変更できるのは、 通常はユーザのパスワード、シェル、GECOS フィールドだけです。 NIS マスタサーバ上でスーパユーザによって起動された場合を除き、 .Nm (同様に .Xr passwd 1 ) は、ユーザ情報の変更および新レコードの追加のために .Xr rpc.yppasswdd 8 サーバを使用出来ません。 なお、 .Xr rpc.yppasswdd 8 は、どのような変更を行う前にもパスワード認証を要求します。 パスワード無しで変更要求できるユーザは NIS マスタサーバ上のスーパユーザだけです; 他の全てのユーザはパスワードを入力する必要があります。 他の全てのユーザには NIS クライアント (および NIS スレーブサーバ) 上の root 権限を持つユーザも含まれます。 (NIS マスタサーバ上のスーパユーザがこの制約をバイパスできる理由は、 主に簡便さのためです: NIS マスタサーバへの root アクセス権限をもつユーザは 既に NIS マップを更新するための権限を持っています。 それにもかかわらずマップソースファイルを手で編集することは面倒です。 .Pp 注: これらの例外が適用されるのは NIS マスタサーバが .Fx システムの時だけです。) .Pp その結果として、上述の例外を除き、NIS 環境で .Nm を使う場合には以下の制限が適用されます: .Bl -enum -offset indent .It .Em "シェルと GECOS 情報だけを変更できます。" たとえ .Nm がスーパユーザによって起動された場合であってもです。 他のフィールドの変更がサポートされるようになっても、 他の NIS システムとの互換性の問題を引き起こすでしょう。 スーパユーザがあるエントリを編集している時に、 他のフィールドにデータを書いても、余分な情報として (パスワードは例外 -- 以下を参照してください) だまって廃棄されるでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは、 任意のフィールドの変更が許されています。 .Pp .It .Em "パスワード認証が要求されます。" どのような変更を行う前にも .Nm ユーティリティはユーザの NIS パスワードを要求します。 もしパスワードが間違っていたら、 どのような変更も行われません。 .Pp 例外: NIS マスタサーバ上のスーパユーザはパスワード無しに変更要求できます (スーパユーザは、後述するように .Fl o フラグを指定する事によりこの仕様を無効にする事が選択できます)。 .It .Em "新しいレコードのローカルパスワードデータベースへの追加は勧められません。" NIS が動作しているときに、管理者が .Nm ユーティリティによって 新しいレコードをローカルのパスワードデータベースに追加可能です。 しかし、新しいレコードがマスタパスワードファイルの最後、 通常は NIS の特別な '+' エントリの後に追加されるため、 いくつかの混乱を招きかねません。 .Xr vipw 8 を使ってローカルのパスワードファイルを変更するべきです。 .Pp NIS マスタサーバ上のスーパユーザによる NIS パスワードマップへの新レコードの追加が許可されるのは、 .Xr rpc.yppasswdd 8 サーバが .Fl a フラグ付で起動された場合、すなわち追加を許可して起動された場合のみです (通常は追加を拒否します)。 .Nm ユーティリティは デフォルトではローカルのパスワードデータベースを更新しようとします; NIS マップを変更する場合には chpass を .Fl y フラグ付で起動してください。 .It .Em "パスワードの変更は許可されていません。" ユーザが、自分の NIS のパスワードを変更するときには .Xr passwd 1 か .Xr yppasswd 1 を使うべきです。スーパユーザは新しいパスワードを指定することを許され ています (たとえ、 .Dq Password: フィールドがエディタのテンプレートに あらわれていなくても、スーパユーザは手動で加えることができます)。 しかしながら、スーパユーザであってもユーザの元のパスワードがなければ .Xr rpc.yppasswdd 8 が NIS マップの更新を拒否するでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは .Nm を使用して、ユーザの NIS パスワードを変更する事が許されています。 .El .Pp .Nm が NIS をサポートしてコンパイルされたときに、数個の特別なフラグが有効 になります: .Bl -tag -width indent .It Fl l ローカルと NIS の両方のデータベースにユーザが存在していても、 ユーザのパスワード情報のローカルのコピーを修正することを .Nm に強制します。 .It Fl y .Fl l と反対の効果があります。もし NIS が動作していれば、 デフォルトでは .Nm は NIS のエントリを操作するので、 このフラグはまったく冗長です。 .It Fl d Ar domain NIS ドメインを指定します。 .Nm ユーティリティはデフォルトではシステムのドメイン名を使用します。 これは .Xr domainname 1 ユーティリティにて設定されています。 .Fl d オプションは、 このデフォルトを上書きするため、 もしくはドメイン名が設定されていない場合にドメイン名を指定するために 使用できます。 .It Fl h Ar host 問い合わせるべき NIS サーバの名前もしくはアドレスを指定します。 通常 .Nm は .Pa master.passwd もしくは .Pa passwd マップにて指定される NIS マスタホストと通信します。 NIS クライアントとして構成されていないホスト上では、 この情報を決定するための方法がプログラムにはありませんので、 ユーザがサーバのホスト名を指定します。 指定するホスト名は NIS マスタサーバである必要が無い事に注意してください; NIS ドメイン内のマスタサーバ名でもスレーブサーバ名でも良いのです。 .Pp .Fl d オプション使用時には、ホスト名のデフォルトは .Dq localhost です。 .Fl h オプションを .Fl d とともに使用し、ユーザが指定するホスト名でこのデフォルトを上書きできます。 .Pp .It Fl o .Xr rpc.yppasswdd 8 に RPC ベースの更新を強制します .Pq Dq 旧モード 。 NIS マスタサーバ上でスーパユーザにより起動された場合、 .Nm は専用の非 RPC ベースの機構を使用し、 NIS パスワードマップに対する無制限の変更を許可します (この場合 .Ux ドメインソケットを使用します)。 .Fl o フラグを使用する事により .Nm に標準の更新メカニズムを使用させる事が出来ます。 このオプションは主にテスト目的のために提供されています。 .El .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/master.passwd ユーザデータベース .It Pa /etc/passwd Version 7 フォーマットのパスワードファイル .It Pa /etc/chpass.XXXXXX パスワードファイルのテンポラリ用コピー .It Pa /etc/shells 利用できるシェルのリスト .El .Sh 関連項目 .Xr finger 1 , .Xr login 1 , .Xr passwd 1 , .Xr getusershell 3 , .Xr login.conf 5 , .Xr passwd 5 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Rs .%A Robert Morris and .%A Ken Thompson .%T "UNIX Password security" .Re .Sh バグ ユーザ情報の保存はどこか他の場所にするべきです (し、いつかはそうなるでしょう)。 .Sh 歴史 .Nm ユーティリティは .Bx 4.3 Reno から登場しました。