スプール・ファイルの表示権限を変更する
Question
私のシステムは、出力キューへのアクセス制限を含め、オブジェクト・レベル・セキュリティーで構成されています。私のユーザーで Spool Control (*SPLCTL) 権限を持っている人はいません。サード・パーティーの ERP ベンダーが、ユーザーが任意にユーザーを作成できる Work with Spool Files (WRKSPLF) を実行するオプションを追加するまでは、レポートの保護はこの程度のセキュリティーで十分でした。
スプール・ファイルのリストを表示する場合に IBM i は権限を確認してないため、どのユーザーでもすべてのスプール・ファイルのリストを見ることができます。ファイルの表示、変更、または削除はできません。表示権限のないユーザーがスプール・ファイルを参照できないようにするにはどうしたらよいでしょうか。
Answer
まず、ユーザー・プロファイルとグループ・プロファイルの中に *JOBCTL または *SPLCTL が入っていないことを確認します。これら 2 つのオプションのどちらかが原因で、 *BASIC アシスタンス・モードのユーザーがユーザー ID を変更できるのです。
次に、サード・パーティー・ベンダーから WRKSPLF を呼び出しているプログラムは、おそらく CALL QCMDEXE API を介してそれを行っているのだと思います。この API は、*JOBCTL または *SPLCTL のいずれかを持っていたプロファイルから継承されたプロファイルを使用している可能性が高いです。
WRKSPLF を呼び出すだけの SHOWSPL という CL プログラムを作成して、似たような問題を解決しました。プログラムが継承権限を使用せず、*USER 権限を使用するよう確認しました。次に、SHOWSPL という CMD を作成し、その上に正しくセキュリティーが設定されるようにしました。
WRKSPLF ではなく、コマンド SHOWSPL を呼び出すようベンダーの PGM オブジェクトを変更しました。おかげで、ユーザー・フィールドを変更して他のスプール・ファイルを見ることができないよう、効果的にユーザー・フィールドが保護されました。また、ジョブのライブラリー・リスト中の他のライブラリーの先頭にあるライブラリーで SHOWSPL を WRKSPLF とりネームしても同じ効果があります。
-R. Miller『System iNetwork Forums』より