実行環境

71. 印刷スプールの機密保護

スプールなんて誰でも見えてしまうのでは ? と思っていないだろうか ?
また自社の System i の機密保護レベルは低いからスプールに機密保護を設定するのは
無理だろうと諦めてはいないだろうか ?
実は System i の印刷スプールには機密保護レベル( QSECURITY ) とは無関係に強力な
機密保護機能が用意されている。
ここでは、普段あまり意識することのなかった印刷スプールに対する機密保護を紹介しよう。

■ OUTQ の機密保護

WRKOUTQ + [実行] で、各 OUTQ を 「8= 記述」 によって調べて欲しい。
多くの OUTQ は ファイルの表示 = *NO として作成されているはずである。
これは CRTOUTQ コマンドの 「ファイルの表示」 キー・ワード の省略時の値が *NO として
設定されているからである。

ファイルの表示 = *NO

「ファイルの表示」キー・ワードの選択できる値には *YES, *NO*OWNER の 3種類があるが
*YES に設定すると、その OUTQ にある印刷スプールは、どのようなユーザーからでも
開いて中身を見ることができてしまう。
つまり機密保護が全く無い状況となってしまうので、通常は *NO または *OWNER
OUTQ を作成する必要がある。
*NO または *OWNER はスプールの所有者と 特殊権限 *SPLCTL を持っているユーザーに
中身を見たり、スプールの設定を変更することを許可するものである。
*NO*OWNER との違いはほとんど無い。
機密保護を有効にするためには少なくとも OUTQ は 「ファイルの表示」キー・ワードを
*NO または *OWNER で作成しておく必要がある。
これが機密保護設定の入り口である。

■ 特殊権限 *SPLCTL による機密保護

ユーザー・プロフィールを作成するときに、すべてのユーザーに特殊権限 : *SPLCTL
与えてはいないだろうか ?
ユーザーに *SPLCTL を与えていないと印刷スプールの印刷出力やそのユーザーが
印刷出力したスプールを制御できないのではないかと思ってはいないだろうか ?
だとしたら誤解である。

(機密保護レベル( QSECURITY ) に関わりなく) そのユーザーが自分で出力したスプールは、
内容を見ることもできるし、印刷出力や設定を変更することもできる。

つまり自分の作ったものは自分が処理する権限がある、ということでこれは当たり前と言えば
当たり前の話である。ところが、

特殊権限 *SPLCTL の無いユーザーは自分のスプールは見ることはできるが
他のユーザーのスプールを見ることはできない。

これは大きな機密保護として有効である。
つまり *SPLCTL を与えておかなければ他のユーザーから不用意に機密保護性の高い
スプールの内容を覗き見されることを防ぐことができるのである。

*SPLCTL

■ Spoolライターによる機密保護

上記で紹介した *SPLCTL を除去した場合の機密保護は Spoolライター の場合でも
もちろん有効に働いており機密保護を守ることができる。

*SPLCTL のないユーザーによる機密保護

*SPLCTL の特殊権限のないユーザーが他のユーザーが作成したスプールを
開けようとすると同じように機密保護エラーとなって開けることはできない。

*SPLCTL

WRKSPLAUT による機密保護の設定

Spoolライターには System i サーバー側で WRKSPLAUT というコマンドが
用意されていてユーザー個別に OUTQ の表示を制限することができる。

フィルタリング機能による制限

これは機密保護というよりクライアント毎に表示するOUTQ やスプール名を
特定のものだけに絞って表示させることができる便利で強力な機能である。

フィルタリング機能

この例では Q* によって OUTQ を絞っているので QPRINT や QPRINT2 のように頭に
Q のつく名前の OUTQ だけを表示させるように設定している。