スプールなんて誰でも見えてしまうのでは ? と思っていないだろうか ?
また自社の System i の機密保護レベルは低いからスプールに機密保護を設定するのは
無理だろうと諦めてはいないだろうか ?
実は System i の印刷スプールには機密保護レベル( QSECURITY
) とは無関係に強力な
機密保護機能が用意されている。
ここでは、普段あまり意識することのなかった印刷スプールに対する機密保護を紹介しよう。
WRKOUTQ
+ [実行]
で、各 OUTQ を 「8= 記述」 によって調べて欲しい。
多くの OUTQ は ファイルの表示 = *NO
として作成されているはずである。
これは CRTOUTQ
コマンドの 「ファイルの表示」 キー・ワード の省略時の値が *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 のないユーザーによる機密保護
*SPLCTL
の特殊権限のないユーザーが他のユーザーが作成したスプールを
開けようとすると同じように機密保護エラーとなって開けることはできない。
WRKSPLAUT による機密保護の設定
Spoolライターには System i サーバー側で WRKSPLAUT
というコマンドが
用意されていてユーザー個別に OUTQ の表示を制限することができる。
フィルタリング機能による制限
これは機密保護というよりクライアント毎に表示するOUTQ やスプール名を
特定のものだけに絞って表示させることができる便利で強力な機能である。
この例では Q* によって OUTQ を絞っているので QPRINT や QPRINT2 のように頭に
Q のつく名前の OUTQ だけを表示させるように設定している。