新しい特権を追加するには、その特権のためのエントリを次の 2 つのファイルに追加する必要があります(locale_name はロケール名を示しています)。
/usr/include/sys/tsol/priv_names.h
/usr/lib/tsol/locale/locale_name/priv_name
ヘッダファイル /usr/include/sys/tsol/priv_names.h には、特権用の宣言定数とそれに関連付けられている番号が定義されています。最大で 128 個の特権が定義できます。デフォルトでは、これらの承認は番号として 1 〜 86 を持ち、番号 0 は特権が存在しないことを表します。また、後述するように、番号 29、62 は回収された特権を表します。
PRIV_FILE_AUDIT = 1, /* operational */ PRIV_FILE_CHOWN = 2, /* operational */ PRIV_FILE_DAC_EXECUTE = 3, /* policy */ . . . PRIV_WIN_SELECTION = 84, /* operational */ PRIV_WIN_UPGRADE_IL = 85, /* operational */ PRIV_WIN_UPGRADE_SL = 86, /* operational */ |
例 2-10 に示す特権が、Trusted Solaris での拡張用に予約されています。これらは、いずれも tsol_reserved という名前で識別されます。このうち、予約リストの番号 62 は回収された特権 (以前定義されていたが、現在は未定義である特権) を表します。このファイルの先頭に説明されているように、任意のユーザーが一度定義した特権を未定義に戻す場合、その特権は予約リストの先頭に追加するようにします。
/* Reserved for Trusted Solaris */ tsol_reserved28 = 28, tsol_reserved29 = 29, tsol_reserved62 = 62, tsol_reserved87 = 87, tsol_reserved88 = 88, tsol_reserved89 = 89, |
reserved という名前で識別される残りの特権が、任意のサイトでの拡張用に使用可能です。これらの特権を次の例に示します。
/* Reserved for ISV, GOTS, integrator, ... use */ reserved90 = 90, reserved91 = 91, reserved92 = 92, . . . reserved126 = 126, reserved127 = 127, reserved128 = 128 |
/usr/lib/tsol/locale/locale_name/priv_name ファイル内のエントリの書式を次に示します (locale_name はロケール名を示しています)。
constant:name:description(<定数>:<名前>:<説明>)
(priv_name(4) のマニュアルページを参照してください。) 上記の constant フィールドの値は、ファイル /usr/include/sys/tsol/priv.h に定義されている特権の宣言定数名と全く同じものを指定します。名前フィールドには、特権の内容を正確に表すような名前を入力します。名前フィールドに入力した名前は、GUI で使用されます。
特権の名前は、プロファイルマネージャ、ファイルマネージャなどの GUI で特権の一覧を表示する場合に使用されます。
説明フィールドには、特権によって許可される動作の説明を入力します。この説明の文字数に制限はありません。この説明は、プロファイルマネージャによって、セキュリティ管理者が特権をプログラムに割り当てる際のガイド情報として使われます。
例 2-12 に、デフォルトの priv_name
ファイル内に定義した特権の例を示します。特権の宣言定数名はすべて英大文字に、逆に特権の名前はすべて英小文字にします。特権の説明が複数行にまたがる場合には行末にバックスラッシュ (¥) を付けます。
PRIV_FILE_AUDIT:file_audit:Allows a process to get or set a file's or ¥ directory's audit preselection information. The auditing preselection ¥ information may override the preselection information associated with ¥ a process' access to a file or directory. ¥ Allows a process to get or set a file's or directory's public object ¥ flag. The public object flag may override the successful read/search ¥ access preselection information associated with a process' access to ¥ a file or directory. |