スポンサーリンク

CHPASS(1) FreeBSD 一般コマンドマニュアル CHPASS(1)

名称

chpass, chfn, chsh, ypchpass, ypchfn, ypchsh − ユーザデータベース内の情報 を編集する

書式

chpass [−a list] [−p encpass] [−e expiretime] [−s newshell] [user]

chpass [−oly] [−a list] [−p encpass] [−e expiretime] [−s newshell] [−d domain] [−h host] [user]

解説

chpass ユーティリティは user もしくはデフォルトでは実行したユーザのユーザ データベースの情報を変更します。

chfn, chsh, ypchpass, ypchfn, ypchsh ユーティリティは、 chpass と同じよう に動作します (プログラムはひとつだけなのです)。

情報はフォーマットされ、必要な部分をエディタで変更します。

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

オプションとしては、次のものがあります:

       −a

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

−p
スーパユーザは、暗号化されたパスワードフィールドを crypt(3) で用 いられているフォーマットで引数として直接指定することができます。

−e expiretime
アカウントが無効となる時を変更します。対話エディタからのようにス クリプトから、無効となる時を変更するために、本オプションを使用し ます。

−s newshell
ユーザのシェルを newshell に変更しようとします。

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

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

注 (1) -
実際の master.passwd ファイルでは、これらの フィールドはコンマで区切られたフィールドとして FullName フィールドに埋め込まれます。

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

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

uid フィールドは login フィールドと関連した番号です。ファイルのアクセスを 制御するために、どちらのフィールドもシステム (しばしば、複数のシステム) の中で一意である必要があります。

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

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

class フィールドは /etc/login.conf のクラスに関する記述を参照します。典型 的には、ユーザのログイン時に、ユーザのシステムリソースを制限するために使 用されます。

change フィールドはパスワードが変更されているべき日付です。

expire フィールドはアカウントの満了する日付です。

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

5 つのフィールドは、ユーザの 実際の名前、 オフィスの場所、 職場と 家で使 う電話番号、そして その他の情報を保管しています。 その他の情報は、コンマ で区切った単一文字列であり、追加の gecos フィールドを表現します (典型的に はサイト固有のユーザ情報のために使用します)。 finger(1) が、 Office: とい うヘッダの下にオフィスの場所と電話番号をともに表示することに注意してくだ さい。

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

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

一度情報が確認されたら chpass はユーザデータベースを更新するために pwd_mkdb(8) を用います。

環境変数

環境変数 EDITOR を設定して他のエディタを指定している場合を除き、 vi(1) エ ディタが使われます。エディタが終了すると、その情報は再度読み込まれ、ユー ザデータベースを変更するための情報とします。ユーザの情報を変更できるの は、そのユーザかスーパユーザのみです。

PW_SCAN_BIG_IDS 環境変数の設定のインパクトについては、 pwd_mkdb(8) の説明 を参照してください。

NIS との相互作用

いくつかの制限が適用されますが、 chpass ユーティリティを NIS と同時に使う こともできます。現在 chpassrpc.yppasswdd(8) を通じて NIS のパスワード マップ中で変更できるのは、通常はユーザのパスワード、シェル、GECOS フィー ルドだけです。 NIS マスタサーバ上でスーパユーザによって起動された場合を除 き、 chpass (同様に passwd(1)) は、ユーザ情報の変更および新レコードの追加 のために rpc.yppasswdd(8) サーバを使用出来ません。なお、 rpc.yppasswdd(8) は、どのような変更を行う前にもパスワード認証を要求します。パスワード無し で変更要求できるユーザは NIS マスタサーバ上のスーパユーザだけです; 他の全 てのユーザはパスワードを入力する必要があります。他の全てのユーザには NIS クライアント (および NIS スレーブサーバ) 上の root 権限を持つユーザも含ま れます。 (NIS マスタサーバ上のスーパユーザがこの制約をバイパスできる理由 は、主に簡便さのためです: NIS マスタサーバへの root アクセス権限をもつ ユーザは既に NIS マップを更新するための権限を持っています。それにもかかわ らずマップソースファイルを手で編集することは面倒です。

注: これらの例外が適用されるのは NIS マスタサーバが FreeBSD システムの時 だけです。)

その結果として、上述の例外を除き、NIS 環境で chpass を使う場合には以下の 制限が適用されます:

             1. シェルと GECOS 情報だけを変更できます。たとえ chpass がスーパユーザによって起動された場合であってもです。他のフィールドの変更がサポートされるようになっても、他の NIS システムとの互換性の問題を引き起こすでしょう。スーパユーザがあるエントリを編集している時に、他のフィールドにデータを書いても、余分な情報として(パスワードは例外 -- 以下を参照してください) だまって廃棄されるでしょう。
例外: NIS マスタサーバ上のスーパユーザは、任意のフィールドの変更が許されています。

2. パスワード認証が要求されます。どのような変更を行う前にも chpass ユーティリティはユーザの NIS パスワードを要求します。も しパスワードが間違っていたら、どのような変更も行われません。

例外: NIS マスタサーバ上のスーパユーザはパスワード無しに変更要 求できます (スーパユーザは、後述するように −o フラグを指定する 事によりこの仕様を無効にする事が選択できます)。

3. 新しいレコードのローカルパスワードデータベースへの追加は勧めら れません。 NIS が動作しているときに、管理者が chpass ユーティ リティによって新しいレコードをローカルのパスワードデータベース に追加可能です。しかし、新しいレコードがマスタパスワードファイ ルの最後、通常は NIS の特別な ’+’ エントリの後に追加されるた め、いくつかの混乱を招きかねません。 vipw(8) を使ってローカル のパスワードファイルを変更するべきです。

NIS マスタサーバ上のスーパユーザによる NIS パスワードマップへ の新レコードの追加が許可されるのは、 rpc.yppasswdd(8) サーバが −a フラグ付で起動された場合、すなわち追加を許可して起動された 場合のみです (通常は追加を拒否します)。 chpass ユーティリティ はデフォルトではローカルのパスワードデータベースを更新しようと します; NIS マップを変更する場合には chpass を −y フラグ付で起 動してください。

4. パスワードの変更は許可されていません。ユーザが、自分の NIS の パスワードを変更するときには passwd(1)yppasswd(1) を使うべ きです。スーパユーザは新しいパスワードを指定することを許されて います (たとえ、 ‘‘Password:’’ フィールドがエディタのテンプ レートにあらわれていなくても、スーパユーザは手動で加えることが できます)。しかしながら、スーパユーザであってもユーザの元のパ スワードがなければ rpc.yppasswdd(8) が NIS マップの更新を拒否 するでしょう。

例外: NIS マスタサーバ上のスーパユーザは chpass を使用して、 ユーザの NIS パスワードを変更する事が許されています。

chpass が NIS をサポートしてコンパイルされたときに、数個の特別なフラグが 有効になります:

−l
ローカルと NIS の両方のデータベースにユーザが存在していても、ユー ザのパスワード情報のローカルのコピーを修正することを chpass に強 制します。

−y
−l
と反対の効果があります。もし NIS が動作していれば、デフォルト では chpass は NIS のエントリを操作するので、このフラグはまったく 冗長です。

−d domain
NIS ドメインを指定します。 chpass ユーティリティはデフォルトでは システムのドメイン名を使用します。これは domainname(1) ユーティリ ティにて設定されています。 −d オプションは、このデフォルトを上書 きするため、もしくはドメイン名が設定されていない場合にドメイン名 を指定するために使用できます。

−h host
問い合わせるべき NIS サーバの名前もしくはアドレスを指定します。通 常 chpassmaster.passwd もしくは passwd マップにて指定される NIS マスタホストと通信します。 NIS クライアントとして構成されてい ないホスト上では、この情報を決定するための方法がプログラムにはあ りませんので、ユーザがサーバのホスト名を指定します。指定するホス ト名は NIS マスタサーバである必要が無い事に注意してください; NIS ドメイン内のマスタサーバ名でもスレーブサーバ名でも良いのです。

−d オプション使用時には、ホスト名のデフォルトは ‘‘localhost’’ で す。 −h オプションを −d とともに使用し、ユーザが指定するホスト名 でこのデフォルトを上書きできます。

−o
rpc.yppasswdd(8) に RPC ベースの更新を強制します (‘‘旧モード’’) 。 NIS マスタサーバ上でスーパユーザにより起動された場合、 chpass は専用の非 RPC ベースの機構を使用し、 NIS パスワードマップに対す る無制限の変更を許可します (この場合 UNIX ドメインソケットを使用 します)。 −o フラグを使用する事により chpass に標準の更新メカニズ ムを使用させる事が出来ます。このオプションは主にテスト目的のため に提供されています。

関連ファイル

       /etc/master.passwd

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

関連項目

finger(1), login(1), passwd(1), getusershell(3), login.conf(5), passwd(5), pwd_mkdb(8), vipw(8)

and

           Robert Morris and                               Ken Thompson,                                               UNIX Password security.

バグ

ユーザ情報の保存はどこか他の場所にするべきです (し、いつかはそうなるで しょう)。

歴史

chpass ユーティリティは 4.3BSD−Reno から登場しました。

FreeBSD 10.0 December 30, 1993 FreeBSD 10.0

スポンサーリンク