OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man2 / setuid.2
index 0871e9d..2d1043d 100644 (file)
 .\"   <richard@greenend.org.uk>, aeb 970616.
 .\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
 .\"     Added notes on capability requirements
+.\"*******************************************************************
 .\"
-.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated Sat Mar  1 16:32:11 JST 1997
-.\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Modified Sun Sep 28 20:26:49 JST 1997
-.\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated & Modified Sat May 22 18:21:45 JST 2004
-.\"         by Yuichi SATO <ysato444@yahoo.co.jp>
-.\" Updated & Modified Wed Jan  5 00:51:28 JST 2005 by Yuichi SATO
-.\" Updated 2010-04-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.24
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.\"WORD:       identity                識別
-.\"WORD:       effective user ID       実効ユーザーID
-.\"WORD:       real user ID            実ユーザーID
-.\"WORD:       saved user ID           保存ユーザーID
-.\"WORD:       implement               実装
-.\"WORD:       root                    ルート
-.\"WORD:       super-user              スーパー・ユーザー
-.\"
-.TH SETUID 2 2010-02-21 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.TH SETUID 2 2010\-11\-22 Linux "Linux Programmer's Manual"
 .SH 名前
 setuid \- ユーザー識別 (identity) を設定する
 .SH 書式
-.B #include <sys/types.h>
+\fB#include <sys/types.h>\fP
 .br
-.B #include <unistd.h>
+\fB#include <unistd.h>\fP
 .sp
-.BI "int setuid(uid_t " uid );
+\fBint setuid(uid_t \fP\fIuid\fP\fB);\fP
 .SH 説明
-.BR setuid ()
-は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定する。
-もし呼び出し元プロセスの実効 UID が root ならば、
-実 (real) UID と保存 (saved) set-user-ID も設定される。
+\fBsetuid\fP()  は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定する。 もし呼び出し元プロセスの実効 UID が
+root ならば、 実 (real) UID と保存 (saved) set\-user\-ID も設定される。
 .PP
-Linux では、
-.BR setuid ()
-は
-.B _POSIX_SAVED_IDS
-をもった POSIX 版のように実装されている。
-これは (ルート以外の) set-user-ID プログラムにそのユーザーの特権を
-全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に
+Linux では、 \fBsetuid\fP()  は \fB_POSIX_SAVED_IDS\fP をもった POSIX 版のように実装されている。 これは
+(ルート以外の) set\-user\-ID プログラムにそのユーザーの特権を 全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に
 安全な方法で再び戻すことを許す。
 .PP
-ユーザーが root またはプログラムが root に set-user-ID されているならば、
-特別の注意が払われる。
-.BR setuid ()
-関数は呼び出し者の実効ユーザー ID をチェックし、
-それがスーパー・ユーザーならば、
-プロセスに関連する全てのユーザー ID に
-.I uid
-を設定する。
-これが行なわれた後にはプログラムが再びルートの特権を得ることはできない。
+ユーザーが root またはプログラムが root に set\-user\-ID されているならば、 特別の注意が払われる。 \fBsetuid\fP()
+関数は呼び出し者の実効ユーザー ID をチェックし、 それがスーパーユーザーならば、 プロセスに関連する全てのユーザー ID に \fIuid\fP
+を設定する。 これが行なわれた後にはプログラムが再びルートの特権を得ることはできない。
 .PP
-したがって、set-user-ID-root プログラムで、一時的にルート特権を解除し、
-非特権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと
-する場合には、
-.BR setuid ()
-を使うことができない。その場合には、
-.BR seteuid (2)
-を使う必要がある。
+したがって、set\-user\-ID\-root プログラムで、一時的にルート特権を解除し、
+非特権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと する場合には、 \fBsetuid\fP()  を使うことができない。その場合には、
+\fBseteuid\fP(2)  を使う必要がある。
 .SH 返り値
-成功した場合は 0 が返される。エラーの場合は \-1 が返され、
-.I errno
-が適切に設定される。
+成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
 .SH エラー
-.TP
-.B EAGAIN
-.I uid
-が現在のユーザー ID とマッチせず、この
-.I uid
-によってプロセスがリソース上限
-.B RLIMIT_NPROC
-を超えた。
-.TP
-.B EPERM
-ユーザーが特権を持たず
-(Linux では
-.B CAP_SETUID
-ケーパビリティ (capability) を持たず)、
-.I uid
-が呼び出し元プロセスの実 UID または保存 set-user-ID と一致しない。
+.TP 
+\fBEAGAIN\fP
+\fIuid\fP が現在のユーザー ID とマッチせず、この \fIuid\fP によってプロセスがリソース上限 \fBRLIMIT_NPROC\fP を超えた。
+.TP 
+\fBEPERM\fP
+ユーザーが特権を持たず (Linux では \fBCAP_SETUID\fP ケーパビリティ (capability) を持たず)、 \fIuid\fP
+が呼び出し元プロセスの実 UID または保存 set\-user\-ID と一致しない。
 .SH 準拠
-SVr4, POSIX.1-2001.
-4.4BSD のコールとは完全な互換性はない、
-BSD のコールは実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。
-.\" SVr4 には他に EINVAL エラーについての記述がある。
+.\" SVr4 documents an additional EINVAL error condition.
+SVr4, POSIX.1\-2001.  4.4BSD のコールとは完全な互換性はない、 BSD のコールは実 (real)、保存 (saved)、実効
+(effective) ID の全てを設定する。
 .SH 注意
-.SS Linux での注意
-Linux はファイル・システム・ユーザー ID の概念を持つ。
+Linux はファイルシステム・ユーザー ID の概念を持つ。
 通常、これは実効ユーザー ID に等しい。
-.BR setuid ()
-コールは呼び出し元のプロセスのファイル・システム・ユーザー ID も設定する。
-.BR setfsuid (2)
-も参照すること。
+\fBsetuid\fP()  コールは呼び出し元のプロセスの
+ファイルシステム・ユーザー ID も設定する。
+\fBsetfsuid\fP(2) も参照すること。
 .PP
-.I uid
-が昔の実効 uid と異っていた場合、プロセスはコア・ダンプすることを
-禁止される。
+\fIuid\fP が前の実効 UID と異っていた場合、
+プロセスはコアダンプすることを禁止される。
+
+元々の Linux の \fBsetuid\fP() システムコールは
+16 ビットのグループ ID だけに対応していた。
+その後、Linux 2.4 で、32 ビットの ID に対応した
+\fBsetuid32\fP() が追加された。
+glibc の \fBsetuid\fP() のラッパー関数は
+カーネルバージョンによるこの違いを吸収している。
 .SH 関連項目
-.BR getuid (2),
-.BR seteuid (2),
-.BR setfsuid (2),
-.BR setreuid (2),
-.BR capabilities (7),
-.BR credentials (7)
+\fBgetuid\fP(2), \fBseteuid\fP(2), \fBsetfsuid\fP(2), \fBsetreuid\fP(2),
+\fBcapabilities\fP(7), \fBcredentials\fP(7)