Trusted Solaris 開発ガイド

特権セット構造での特権の表明

特権セット構造で特権を表明するには、PRIV_ASSERT マクロまたは str_to_priv_set(3) ルーチンを使用できます。表明する特権が 2 つ以上ある場合には、1 つの文で表明できる str_to_priv_set() が便利です。一方、PRIV_ASSERT は、セット内で表明する特権ごとに呼び出す必要があります。このコードは、許容セットに対し str_to_priv_set() ルーチンを使用し、強制セットに対し PRIV_ASSERT を使用しています。str_to_priv() ルーチンは、成功時には NULL を返し、失敗時には priv_names で渡した文字列を返します。

if((string = str_to_priv_set(priv_names, &priv_set, "$")) != NULL)
 	printf("string = %s errno = %d¥n", string, errno);

 PRIV_EMPTY(&priv_set);
 PRIV_ASSERT(&priv_set, PRIV_FILE_MAC_WRITE);