# 管理解説書

## kpwvalid

目的

新規パスワードの品質を検査します。

構文

kpwvalid コマンドは、 kpasswd コマンド、または、 kas setpassword コマンドから渡される、新規パスワードの品質を検査します。このコマンドはオプションです。このコマンドを使用する場合は、kpasswd および、 kas コマンド組のバイナリーと同じ、 AFS ディレクトリーに常駐させる (つまりこのディレクトリーに、クライアント・マシンのローカル・ディスクから、記号リンクを作成する) 必要があります。このディレクトリーの ACL は、 a (管理) および、 w (書き込み) アクセス権を、 system:administrators グループにのみ、許可しなければなりません。これらの要件により、非許可ユーザーが、代わりに疑似 kpwvalid バイナリー・ファイルを使用することが、できなくなります。

AFS 配布物には、パスワードの長さが少なくとも 8 文字であることを検査する、 kpwvalid プログラムの例が組み込まれています。そのためのコードを、次の例のセクションで示しています。

スクリプトまたはプログラムは、標準入力ストリームで、パスワード文字列の順序を、1 行に 1 つずつ、受け入れなければなりません。最初の行は現行パスワードで、無視されます。それに続く各文字列が、検査対象となるパスワードの候補です。プログラムでは、各パスワードの標準出力ストリームに対し、以下の情報を書き込まなければなりません。

- パスワードが受け入れ可能であることを示す場合は、 `0` (ゼロ) と改行文字。
- パスワードが受け入れ不能であることを示す場合は、非ゼロの 10 進数と改行文字

さらに、標準エラー・ストリームにのみ、エラー・メッセージを書き込まなければなりません。標準出力ストリームには、書き込む必要はありません。

例

以下に示したプログラム例は、AFS 配布物に組み込まれ、要求されたパスワードが 8 文字以上であるかどうかを検査します。

       #include <stdio.h>
       /* prints 0 if the password is long enough, otherwise non-zero */
       main()
       {
       char oldpassword[512];
       char password[512];

       if (fgets(oldpassword, 512, stdin))
          while (fgets(password, 512, stdin)) {
             if (strlen(password) > 8) { /* password includes a newline */
                fputs("0\n",stdout);
                fflush(stdout);
             }
             else {
                fputs("Passwords must contain at least 8 characters.\n",
                      stderr);
                fputs("1\n",stdout);
                fflush(stdout);
             }
       return 0;
       }

関連情報

kas setpassword

kpasswd

[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]

(C) IBM Corporation 2000. All Rights Reserved