|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > s > setuid - システムコールの説明 setuid - システムコールの説明 - Linux コマンド集 一覧表名前setuid - ユーザー識別 (identity) を設定する 書式
#include <sys/types.h>
説明setuid ()は現在のプロセスの実効 (effective) ユーザー ID を設定する。 もし呼び出し元プロセスの実効 UID が root ならば、 実 (real) UID と保存 (saved) set-user-ID も設定される。 Linux では、 setuid ()は _POSIX_SAVED_IDS をもった POSIX 版のように実装されている。 これは (ルート以外の) set-user-ID プログラムにそのユーザーの特権を 全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に 安全な方法で再び戻すことを許す。 ユーザーがルート (root) またはプログラムがルートに set-user-ID されているならば、 特別の注意が払われる。 setuid ()関数は呼び出し者の実効ユーザー ID をチェックし、 それがスーパー・ユーザーならば、 プロセスに関連する全てのユーザー ID に uid を設定する。 これが行なわれた後にはプログラムが再びルートの特権を得ることはできない。 このように、set-user-ID-root プログラムは一時的にルート特権を与え、 ルートでないように振舞うことができ、それから setuid ()を使って再びルート特権を得ることができないようにする。 (POSIX でない、BSD) コールは seteuid ()で行なうことができる。 返り値成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。 エラー
準拠SVr4, POSIX.1-2001. 4.4BSD のコールとは完全な互換性はない、 BSD のコールは実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。 LINUX 特有の注意Linux はファイル・システム・ユーザー ID の概念を持つ。 通常、これは実効ユーザー ID に等しい。 setuid ()コールは現在のプロセスのファイル・システム・ユーザー ID も設定する。 setfsuid (2) も参照すること。 uid が昔の実効 uid と異っていた場合、プロセスはコア・ダンプすることを 禁止される。 関連項目
|
|