名前 | 形式 | 機能説明 | 戻り値 | エラー | 関連項目
#include <tsol/priv.h>int getppriv(priv_ptype_ttype, priv_set_t*pset);
getppriv() は、呼び出し元プロセスの特権セット type をアドレス pset にコピーします。type には、<tsol/priv.h> で定義されている次の 4 つの値のいずれかを指定します。
有効な特権セット
継承可能な特権セット
許可された特権セット
保存された特権セット
setppriv() は、呼び出し元プロセスの特権セット (ターゲットセット) type の割り当てや変更を行います。変更は、op の値と特権セット (ソースセット) pset の値に基づいて行われます。op 値は <tsol/priv.h> にて次のように定義されています。
ソースセットに割り当てられている各特権がターゲットセットに割り当てられます。
ソースセットに割り当てられている各特権がターゲットセットから消去されます。
ターゲットセットはソースセットとまったく同じになります。
type の値は、PRIV_SAVED
を除き、getppriv() の type と同じです。
ターゲットセットが許可されたセットの場合は、ターゲットセットから消去されるすべての特権が有効なセットからも消去されます。許可されたセットから消去された特権を割り当てようとすると、エラーになります。消去済みの特権を消去しようとしても、エラーにはなりません。
次の条件のいずれかに該当する場合、getppriv() は異常終了します。
不正な値や未定義の値が type に指定されている場合。
pset が無効なアドレスを参照している場合。
次の条件のいずれかに該当する場合、setppriv() は異常終了します。ターゲットセットは変更されません。
不正な値や未定義の値が type か op に指定されている場合。
set が無効なアドレスを参照している場合。
プロセスの特権セットに対し、許可されたセットから消去されている特権を割り当てようとしている場合。
getfpriv(2), setfpriv(2), priv_to_str(3), priv_set_to_str(3), str_to_priv(3), str_to_priv_set(3), priv_macros(5)