スポンサーリンク

RPC.YPPASSWDD(8) FreeBSD システム管理者マニュアル RPC.YPPASSWDD(8)

名称

rpc.yppasswdd − NIS パスワードを変更するためのサーバ

書式

rpc.yppasswdd [−t master.passwd template file] [−d default domain] [−p path] [−s] [−f] [−a] [−m] [−i] [−v] [−u] [−h]

解説

rpc.yppasswdd ユーティリティは、ユーザが yppasswd(1)ypchpass(1) コマ ンド使うことで、 NIS パスワードおよび他の情報を変更することを許します。 rpc.yppasswdd ユーティリティは、パスワードの変更要求を受け入れ、その認証 を行い、 /var/yp/master.passwd ファイル中に更新された情報を配置し、 NIS の master.passwd マップと passwd マップを更新する、RPC を使ったサーバで す。

rpc.yppasswdd ユーティリティは、普通の NIS ユーザが、自分の NIS パスワー ド・ (’GECOS’フィールドとして知られている) フルネーム・シェルを変更するこ とを許します。これらの更新は、典型的には yppasswd(1), ypchfn(1), ypchsh(1), ypchpass(1) コマンドを使って行われます (管理者の中には、ユーザ が名前の情報やシェルを変更することを望まない人もいます。サーバは、オプ ションフラグを使うことで、そのような変更ができない様にできます)。サーバが 更新要求を受け取ると、 /var/yp/securenets ファイルに記述されている securenets 規則 (securenets に関する詳細な情報は ypserv(8) のマニュアル ページを参照してください。 rpc.yppasswdd ユーティリティは、 ypserv(8) と 同じアクセス制御機構を使います) に照らして、要求を行ったクライアントのア ドレスを比較します。

サーバは、その後ユーザが入力した ’古い’ パスワードが有効かどうかを確認 し、その後いくつかの更新情報のチェックを行います (これらには、制御文字の チェックやコロンや有効なシェルのチェックを含みます)。ひとたび更新要求が有 効であることが満足されると、サーバはパスワードテンプレートファイル (デ フォルトでは、 /var/yp/master.passwd です) を更新し、その後 NIS マップを 再構築するために /usr/libexec/yppwupdate スクリプトを実行します (このスク リプトは、2 つの引数を受け取ります: それらは変更されたパスワードテンプ レートの相対パス名と更新されたドメインの名前です。これらは、 /var/yp/Makefile に渡されます)。

FreeBSD 版の rpc.yppasswdd は、NIS マスタサーバ上のスーパユーザが NIS パ スワードマップを更新するためのより洗練された方法を提供します。スーパユー ザは任意のドメインの任意のユーザの master.passwd エントリの任意のフィール ドを変更できます。これは、ユーザの現在の NIS パスワードについて知らなくて も可能です (サーバがスーパユーザからの要求を受け取ると、パスワード認証は 省略します)。そのうえ、サーバが −a フラグ付きで実行された時には、スーパ ユーザは ypchpass(1) を使って、新しいエントリをマップに付け加えることさえ できます。また、これは、 NIS マスタサーバ上のスーパユーザだけに適用されま す。これらの特別な機能はネットワークを介しては提供されません。

rpc.yppasswdd ユーティリティは、 NIS マスタサーバである機械上でだけ実行す ることができます。

オプション

以下のオプションが使用可能です:

       −t master.passwd template file

デフォルトでは、 rpc.yppasswdd は、デフォルトドメインの master.passwdpasswd を生成するために使われるテンプレートファ イルは、 /var/yp/master.passwd であることを仮定しています。このデ フォルトは、代わりのファイル名を −t フラグとともに指定することで 上書きできます。

(注意): このフラグとともに指定されたテンプレートファイルが /etc/master.passwd である場合、 rpc.yppasswdd は NIS のマップに加 えてローカルのパスワードデータベースを再構成するために、自動的に pwd_mkdb(8) を呼び出します。

−d domain
rpc.yppasswdd
ユーティリティは複数のドメインを扱うことができます が、1 つのドメインをデフォルトとして選ばなければなりません。 domainname(1) コマンドによって設定されたシステムデフォルトのドメ イン名を使おうとします。しかしながら、システムドメイン名が設定さ れていない場合、デフォルトドメイン名はコマンドラインで指定しなけ ればなりません。システムデフォルトドメインが設定されている場合、 このオプションはその定義を上書きします。

−p path
このオプションは、デフォルトの NIS マップデータベースのパスを上書 きするために使われます。コンパイル時に指定されているデフォルトの パスは /var/yp です。

−s
シェル情報の変更を認めません。

−f
フルネーム (’GECOS’) 情報の変更を認めません。

−a
NIS パスワードデータベースへの追加を許可します。 NIS マスタサーバ 上のスーパユーザは、 ypchpass(1) コマンドでユーザの master.passwd マップエントリのどんなフィールドでも、無制限の変更を行うことが許 されています。 rpc.yppasswdd がこのフラグを付けて実行された場合、 chpass(1) を使用したローカルパスワードデータベース更新にて可能で あるのと同様に、スーパユーザが NIS パスワードマップに新しいレコー ドを追加することを許可します。

−m
マルチドメインモードを有効にします。 ypserv(8) は同時にいくつかの ドメインを扱うことができますが、ほとんどの rpc.yppasswdd 実装で は、1 つの NIS ドメインだけしか扱うことができません。これは、一般 に NIS マスタサーバのシステムデフォルトドメインと同じです。 FreeBSD の rpc.yppasswdd は、 yppasswd プロトコルでは domain 引数 をクライアントの要求中に含めることが出来ないというプロトコル固有 の制限にもかかわらず、この問題を解決しようとしています。マルチド メインモードでは、 rpc.yppasswdd/var/yp 下の全ドメインの全パ スワードマップを検索し、与えられた更新要求で指定されたユーザ情報 と一致するエントリを見付けます (一致したかどうかは、ユーザ名と UID および GID フィールドを調べることで決定されます)。一致したエ ントリとそのドメインはその後更新のために使われます。

マルチドメインモードがうまく動くためには、各ドメイン毎に別々のテ ンプレートファイルが必要なことに注意してください。例えば、サーバ が 3 つのドメイン foo, bar, baz を提供している時、 3 つの別の master.passwd テンプレートファイル /var/yp/foo/master.passwd, /var/yp/bar/master.passwd, /var/yp/baz/master.passwd が必要です。 foo がシステムデフォルトドメインであったとすると、そのテンプレー トファイルは /var/yp/foo/master.passwd もしくは /var/yp/master.passwd のどちらであっても構いません。サーバは、後 のファイルを先に確認し、見付からない場合には先のファイルを確認し ます。

デフォルトでは、マルチドメインモードにはなっていません。これは、 異なったドメインに同じもしくは似ているエントリが存在した場合に失 敗するからです。検索領域に複数のエントリを見付けた場合、サーバは 更新要求を停止します。したがって、偏執的な管理者はマルチドメイン モードを利用不可能にしたいと思うでしょう。

−i
rpc.yppasswdd
がこのフラグ付きで呼び出された場合、マップ更新をそ の場で行おうとします。この意味は、パスワードテンプレートファイル を直接更新してマップ更新する代わりに、サーバがマップデータベース を直接更新するということです。これは、パスワードマップが大きい時 に有効です。例えば、パスワードデータベースに何万ものエントリがあ る場合、マップの更新が終了するまでに数分かかってしまいます。その 場でマップを更新することで、この時間を数秒までに減らすことができ ます。

−v
冗長なログモードに入ります。通常、サーバはエラー状態時やスーパ ユーザによる NIS マスタサーバ上での更新時に、 syslog(3) の能力を 使ってメッセージを記録します。サーバが −v オプションを使って実行 されている時には、全ての更新に対する情報メッセージを記録します。

−u
たくさんの商用の yppasswd(1) クライアントは、 rpc.yppasswdd への 要求を送る時に予約ポートを使いません。これは、 yppasswd(1) が root に set-uid されずにインストールされているか、 RPC の実装が スーパユーザのためにクライアント接続が確立されたとき、予約ポート を割り当てることをしないようになっているためです。デフォルトで は、 rpc.yppasswdd は、クライアントからの結果を予約ポートを使って 受け取ることを期待します。非特権ポートから受け取った要求は、排除 されます。不幸にして、この振舞いは特権ポートを使えないクライアン トシステムからのパスワード更新要求を妨げます。 −u フラグを指定す ることで、 rpc.yppasswdd は、特権ポートを使えない yppasswd(1) で も働くように、特権ポートのチェックを無効にします。これは、少しセ キュリティを低下させますが、クライアントの振舞いを変更できない場 合には必要になるでしょう。

−h
rpc.yppasswdd
が理解できるフラグやオプションのリストを表示しま す。

関連ファイル

       /usr/libexec/yppwupdate

NIS マップを更新し、その後でプッシュす るために、 rpc.yppasswdd によって呼び出 されるスクリプトです。
/var/yp/master.passwd
デフォルトドメインのためのテンプレート パスワードファイルです。
/var/yp/[domainname]/[maps]
特定の NIS ドメインのための NIS マップ です。
/var/yp/[domainname]/master.passwd
デフォルトでないドメインのための一時パ スワードファイルです (マルチドメイン モードだけで使われます)。

関連項目

yp(8), yppush(8), ypserv(8), ypxfr(8)

バグ

yppasswd.x プロトコル定義で記述されているように、 YPPASSWDPROC_UPDATE 手 続きは 2 つの引数を取ります。更新するユーザ情報を含む V7 形式のパスワード 構造および、ユーザの暗号化されない (クリアテキスト) パスワードです。 rpc.yppasswdd はリモートの NIS クライアントマシンからの更新要求を扱うこと を仮定しています。これは、 yppasswd(1) や似たようなクライアントプログラム がネットワークを通して、ユーザのクリアテキストパスワードを転送するという ことを意味します。

これはパスワード更新では問題ではありません。なぜなら、更新と共に送られる プレインテキストパスワードは、新しい暗号化されたパスワードが有効になった 時には無効になっているからです。しかし、ユーザが自分の ’GECOS’ 情報やシェ ルを更新する場合には、更新と共に送られるクリアテキストパスワードは、更新 完了時にも有効です。ネットワークがセキュアでない場合、このクリアテキスト パスワードは、途中でとらえられ、そのユーザアカウントに対する不正アクセス に使用されるかも知れません。

作者

Bill Paul ⟨wpaul@ctr.columbia.edu⟩

FreeBSD 10.0 February 8, 1996 FreeBSD 10.0

スポンサーリンク