この章では,プリント・システム上にセキュリティ・ポリシを実装するために利用できるオプションについて説明します。セキュリティ・オプションは,管理機能に対する無許可のアクセスを防いだり,プリント・ジョブやプリント・データが無許可のユーザからアクセス,コピー,再ルート指定,あるいは削除されないように保護します。
この章では,次のセキュリティ機能を説明します。
システム・セキュリティ -- セキュリティ機能の概要とセキュリティの作動のしくみを説明します。
許可 -- プリント・システムでサポートされるさまざまな特権レベルを説明し,それぞれの特権レベルを持つユーザによって実行できる機能を説明します。
認証 -- プリント・システム・サービスに対して要求を行うユーザを識別して,許可するためにプリント・システムが使用する手法を説明します。
サーバに対して要求が行われるとき,その要求はリモート・プロシージャ・コール (RPC) の形式になります。この RPC 要求には,要求を作成したユーザの UID が含まれています。要求を作成したユーザを識別して,認証するために,プリント・システムはローカル・パスワード・ファイルと NIS 分散パスワード・ファイルをチェックして,要求側の UID と有効な UID を照合します。この照合が一致する場合,スーパバイザが,サーバ ACL にアクセスして,そのユーザが,要求したサービスの使用を許可されているかどうかを判断します。許可の際には,次の処理が行われます。
要求側のユーザ名またはグループ名と,ACL 内のユーザ名またはグループ名の照合が行われます。
ユーザ名またはグループ名の照合が一致した場合は,要求したサービスと,ACL でユーザまたはグループに付与されている特権レベルとの照合が行われます。
ユーザ名またはグループ名と,要求者と操作の許可が,ACL 内で対応するものと一致した場合,操作が実行されます。特権を付与されていないサービスにアクセスしようとしたユーザは,要求したサービスを拒否されます。
4.2 許可
プリント・システムの許可は,ユーザと特権レベルとの関連付けに基づいています。プリント・システムのユーザに対しては,次のような 3 つのユーザ・レベルが存在します。
エンド・ユーザ -- プリント・システムで印刷だけを行うユーザ。これは最小限の特権を持つユーザです。
オペレータ -- 施設内のプリンタを制御するユーザ。オペレータには,プリンタやサーバの一時停止と再開,ジョブの再キューイング,サーバのシャットダウンを行うことができる特権があります。
管理者 -- オペレータ特権と,システムを構成するために必要な特権を持つユーザ。
プリント・システムは,ローカルの root アカウントにも特権を付与しています。これは,プリント・システム・サーバを実行しているシステム上の root アカウント (UID 0) です。ACL に何が定義されているかにかかわらず,ローカルの root ユーザには管理者特権があり,サーバの起動に必要な許可を持っているユーザはローカルの root だけです。
4.2.1 エンド・ユーザの操作
プリント・システム要求のクライアントがエンド・ユーザ許可を付与されている場合,クライアントは次の操作を行うことができます。
そのユーザがアクセス権を持つサーバに関連付けられている論理プリンタに印刷する。
所有しているジョブを再実行する (クライアントがアクセス権を持っているサーバ経由で再度ジョブが実行される場合)。
所有しているジョブを取り消す。
サーバ,キュー,プリンタに対する操作をリスト
(pdls)
する。
所有しているジョブやドキュメントに対する操作をリスト
(pdls)
する。
所有しているジョブに関する属性を設定または変更する。
ジョブ・キュー操作をリスト
(pdq)
する。ただし,プリント・システムは,リストを行ったユーザに属していないジョブに関して戻された属性については,サーバの
job-attributes-visible-to-all
リストにある属性に限定して表示する。
プリント・システムのオペレータは,プリンタおよびジョブの日常的な管理機能を実行します。プリント・システム操作用のクライアントにオペレータ許可が付与されていると,そのクライアントはエンド・ユーザが実行できるすべての操作の他に,次の操作を実行できます。
サーバまたはキューのクリーン処理をする
(pdclean)
。
サーバ,キュー,プリンタを使用可能または使用不能にする。
サーバ,キュー,物理プリンタ,または任意のジョブを一時停止または再開する。
ジョブを昇格 (キューの先頭に移動) する。
物理プリンタの属性を設定または変更する。
スプーラまたはスーパバイザをシャットダウンする。
プリント・システムのインストール環境の中には,オペレータがおらず,エンド・ユーザと管理者だけの場合もあります。そのような場合,プリントおよびジョブの日常的な管理機能を実行するのは管理者になります。
プリント・システム要求のクライアントに管理者許可が付与されている場合,そのクライアントは次の操作を行うことができます。
オペレータが実行を許可されているすべての操作。
全オブジェクトのすべての読み取り/書き込み属性を設定する
(pdset)
。
サーバ,キュー,プリンタ,初期値ジョブ,初期値ドキュメントを作成する。
任意のオブジェクトを削除する
(pddelete)
。
エンド・ユーザ,オペレータ,管理者が実行を許可される操作は,ACL によって制御されています。これらの許可と ACL だけがサーバ・オブジェクトへのアクセスを制御します。ACL は,あるユーザのアクセスを特定のプリンタに限定しません。
ACL は,サーバに対する
access-control-list
属性を定義することで作成されます。この属性は複数の値をとり,サーバが作成されたとき
(pdmakedb)
,または,pdset
コマンドまたは GUI を使用していつでも,定義できます。ほとんどの場合,サーバを作成するときにはすべての ACL 属性は定義せず,サーバを作成した後にこれらの属性を追加します。次の表に,access-control-list
属性のフィールドについて説明します。
フィールド | 説明 |
namename@host | ユーザ名およびホスト名 (省略可能) |
name-type | ユーザのタイプ: |
all-users | |
user | |
group | |
netgroup | |
privilege-level | アクセス・レベルのタイプ: |
end-user | |
operator | |
administrator |
次の規則は,ACL にアクセスして,ユーザの許可を検証する際に適用されます。
name-type が all-users の場合,サーバは name を無視する。つまり,サーバは指定された特権レベルに対するすべての要求を受け付ける。
name を指定せず,また,name-type も指定しなければ,サーバは name-type を all-users に設定する。
name-type が all-users 以外の場合は,name を指定する必要がある。また,要求を作成するユーザの名前は (パスワード・ファイル内の UID を検索することによって判断されるが),次のいずれかである必要がある。
name-type=user の場合,name に正確に一致する。
name-type=group の場合,group のメンバ。
name-type=netgroup の場合,netgroup のメンバ。
name-type の netgroup 値は,特定のユーザを特定のホストに限定するので,これをオペレータと管理者の特権レベルに主に使用することは普通であると考えられます。
注意
ACL に ホスト名 (root@host_name) を指定しないで
root
を追加すると,ネットワーク環境内にあるすべてのリモート・システムの全 root ユーザがサーバに対して特権付きのアクセス権を持ってしまうので,ACL に ホスト名 (root@host_name) を指定しないでroot
を追加してはなりません。
コマンド行から,または
pdprintadmin
GUI を使用することによって,ACL の作成と変更を行うことができます。この項では,この両方のインタフェースを使用して ACL の作成と管理を行う方法について説明します。
ユーザ smith を既存のスプーラ ACL に追加するには,次のコマンドを使用します。
# pdset -c server \ -x"access-control-list+={name=smith name-type=user privilege-level=end-user}" \ red_spl
スーパバイザ ACL からユーザ jones を削除するには,次のコマンドを使用します。
# pdset -c server -x"access-control-list-={jones}" blue_sup
pdprintadmin GUI を使用して ACL の作成や変更を行うには,次の手順を使用します。
「ツール」メニューから,「ユーザ管理」を選択します。
「構成要素」ボックスから,スプーラまたはスーパバイザ・サーバを選択します。
「ユーザ」ボックスで,「システム管理者」,「オペレータ」,「一般ユーザ」の中から,追加する「ユーザクラス」を選択します。
選択したユーザ・クラスに対して,「全員」または「特定のユーザ」のいずれかを選択します。
「特定のユーザ」を選択した場合,「追加」ボタンを押して新しいエントリを追加するか,または既存のエントリをクリックしてそのエントリを削除します。
手順 5 で追加を選択した場合は,「新しいエントリの追加」ダイアログ・ボックスが表示されます。単一のユーザを追加する場合には「ユーザ」,グループを追加する場合には「グループ」,ネットグループの名前を追加する場合には「ネットグループ」をそれぞれ選択します。テキスト・フィールドにユーザ,グループ,ネットグループのいずれかの名前を入力して「OK」を選択します。