組織内のほかのユーザーに配布して使用させるための特権を持つスクリプトを作成する方法は、『Trusted Solaris 管理の手順』で説明しています。この節では、setfpriv(1) を使用するスクリプトを作成し、アプリケーション開発時にアプリケーションのテストとデバッグを行う実行可能ファイルに強制された特権と許容された特権を割り当てる方法の概要を述べます。
まず、作業対象のユーザーまたは役割に、setfpriv(1) コマンドを持つプロファイルとそれに対する file_setpriv 特権が必要です。このコマンドと特権は、デフォルトシステムのオブジェクト特権管理プロファイルに入っています。任意のシェルからスクリプトを実行し、スクリプトによって起動されたコマンドをそのプロファイルシェルで実行してプロファイル特権を継承させるには、次の例に示すようにスクリプトの先頭で pfsh(1M) を起動します。
この例は、executable (実行可能ファイル) に強制された特権と許容された特権を割り当てます。-s -f オプションは、executable に強制された特権を設定します。-a オプションは、executable に許容された特権を設定します。このスクリプトは、file_setpriv 特権がコマンドによって継承されないかぎり、「executable: not owner (executable : 所有者ではありません)」というエラーを出力して終了します。
#/bin/pfsh setfpriv -s -f ipc_mac_write,ipc_upgrade_il,proc_setsl,sys_trans_label -a ipc_mac_write,ipc_upgrade_il,proc_setsl,sys_trans_label executable
スクリプトを使用して実行可能ファイルに強制された特権と許容された特権を設定する場合、次の点に注意してください。
スクリプトに指定された許容セットから特権を削除する場合、強制セットからもその特権を削除する必要があります。許容セットからだけ特権を削除すると、スクリプトの実行時に「executable: Invalid argument (executable : 引数が正しくありません)」というエラーが出力されます。
プログラムが特権を継承する場合、継承される特権を持つプロファイルシェルでコマンド行からプログラムを起動します。
実行可能ファイルの許容セットには、継承される特権が必要です。
プログラムが特権を継承するだけの場合、実行可能ファイルの強制セットは空でなければなりません。
いつ継承されたかによって特権の強制時にプログラムが異なるアクションを実行する場合、特権を強制セットと許容セットに設定してプログラムを起動し、続いて特権を許容セットに設定して継承される特権を持つプロファイルシェルから再度プログラムを起動してください。
プログラムは、必ず実行時に使用するすべてのラベルでテストしてください。