構文
#include <sys/privgrp.h>
説明
setprivgrp() は特権のマスクを設定し、 getprivgrp(2) は、グループ ID をもとにした特権グループの割当てを示す、構造体の配列を返します
(setprivgrp(2) および getprivgrp(2) を参照)。 setprivgrp() はカーネル機能をグループ
ID に関連付けます。これにより、スーパーユーザーのような特権を特定のグループ
(1 つまたは複数) のメンバーに付与することができます。これらのシステムコールを使うのに必要な定数と構造体は <sys/privgrp.h> で定義されています。
特権は次のとおりです。
| PRIV_RTPRIO | | rtprio() システムコールへのアクセスを許可します
( rtprio(2) 参照)。 |
| PRIV_MLOCK | | plock() システムコールへのアクセスを許可します
( plock(2) 参照)。 |
| PRIV_CHOWN | | chown() システムコールへのアクセスを許可します
( chown(2) 参照)。 |
| PRIV_LOCKRDONLY | | ファイルのオープンを読み取り専用に固定するために、 lockf() システムコールを使うことを許可します
( lockf(2) 参照)。 |
| PRIV_SETRUGID | | プロセスの実ユーザー ID や実グループ ID を変更するために、それぞれ setuid() および setgid() システムコールを使うことを許可します
( setuid(2) および setgid(2) を参照)。 |
| PRIV_MPCTL | | プロセッサバインディング、ローカリティドメインバインディング、またはプロセスの起動方針を変更するために、 mpctl() システムコールを使うことを許可します
(mpctl(2) を参照)。 |
| PRIV_RTSCHED | | POSIX.4 のリアルタイムの優先順位を設定するための sched_setparam() および sched_setscheduler() へのアクセスを許可します
(rtsched(2) を参照)。 |
| PRIV_SERIALIZE | | ターゲットプロセスを、このシステムコールによってマークされている他のプロセスとシリアルに実行させるために、 serialize() を使うことを許可します
(serialize(2) を参照)。 |
| PRIV_SPUCTL | | プロセッサの非アクティブ化および再アクティブ化のために、Instant
Capacity On Demand (iCOD) 製品での特定の管理操作を許可します。詳細は、各製品のマニュアルを参照してください。 |
| PRIV_FSSTHREAD | | Process Resource Manager (PRM) 製品での特定の管理操作を許可します。詳細は、各製品のマニュアルを参照してください。 |
| PRIV_PSET | | システムの pset 構成に対する変更を許可します (pset_create(2) を参照)。 |
特権は、複数ワードのマスクで記述されます。各特権に対する #define の値は、ビットインデックスとして解釈されます
(1 から数えます)。 したがって、マスク中で異なるビットを OR 処理することにより、1 つのグループ
ID でも複数の異なる特権を持つことができます。
システムに対しては、特権を持ったグループ数の最大値が設定されており、この最大値は、 PRIV_MAXGRPS で定義されます。
この最大値のうち、1 つはプロセスすべてに与えられるグローバルな特権として予約され、残りは実際のグループ
ID に割り当てることができます。
PRIV_MASKSIZ は、グループ ID 対応の特権を定義するのに用いる、複数ワードのマスクのサイズを定義します。
特権は、 getprivgrp() システムコールにより構造体 struct
privgrp_map 型の配列としてユーザーに返されます。 この構造体は、複数ワードのマスクを 1 つのグループ ID
に対応させます。 privgrp_map 構造体には次のフィールドがあります。
gid_t priv_groupno
uint32_t priv_mask[PRIV_MASKSIZ]
ここで、 priv_groupno にはグループ ID (setprivgrp(2) を参照) が、 priv_mask には priv_groupno に関連付けられた特権のマスクが入ります。
参照
getprivgrp(1)、setprivgrp(1M)、chown(2)、getprivgrp(2)、lockf(2)、
plock(2)、rtprio(2)、rtsched(2)、serialize(2)、setgid(2)、setuid(2)、
shmctl(2)、mpctl(2)、pset_create(2)