総合手引 | セクション 9 | オプション |
#include <sys/param.h>
#include <sys/systm.h>
suser() 関数は最も普通で、特別な事情がその他の方法を要求するのでなければ、 これが使用されるべきです。
suser_cred() 関数は、チェックされるべき証明がそのスレッド自身のものでない時、 スレッドが存在しない時、スーパユーザの権限が 閉じ込められた root に拡大されるべき時、またはチェックされるべき証明が 実効ユーザというよりは実際のユーザである時に、使用されるべきです。
デフォルトでは、 jail(2) システムコールによって閉じ込められている場合には、 プロセスはスーパユーザの権限を持ちません。 しかしながら、これが適切な場合があり、 suser_cred() 関数へ渡す flag 引数に SUSER_ALLOWJAIL ビットを設定することによって実現されます。 これが牢屋を弱くしないことを、注意深く再調査することが重要です。 一般的には jail(2) 呼び出しの中の暗黙の chroot(2) によって行動が保護されている場所のみにおいて、 このような権限を承諾されるべきです。
デフォルトでは、チェックされる証明は実効ユーザです。 代わりに実際のユーザをチェックする必要がある場合 (例えば、 リソースリミットが適用された場合の決定のとき) があります。 そして、これは suser_cred() 関数への flag 引数に SUSER_RUID を渡すことによって行うことが可能です。
suser() および suser_cred() 関数は、スーパユーザの権限が使用された事を、 指定されたプロセスのプロセス構造体中に記録します。 これらの関数の機能の一部は、スーパユーザの権限が使用されたかどうかを 通知することにありますので、 他のパーミッションの可能性が使い尽くされた後でのみ、 これら関数を呼び出すべきです。
SUSER (9) | April 2, 2002 |
総合手引 | セクション 9 | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | C isn't that hard: void (*(*f[])())() defines f as an array of unspecified size, of pointers to functions that return pointers to functions that return void | ” |