.\" 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
.\"
-.\"WORD: identity ¼±ÊÌ
-.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID
-.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID
-.\"WORD: saved user ID Êݸ¥æ¡¼¥¶¡¼ID
-.\"WORD: implement ¼ÂÁõ
-.\"WORD: root ¥ë¡¼¥È
-.\"WORD: super-user ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼
+.\"WORD: identity 識別
+.\"WORD: effective user ID å®\9få\8a¹ã\83¦ã\83¼ã\82¶ã\83¼ID
+.\"WORD: real user ID å®\9fã\83¦ã\83¼ã\82¶ã\83¼ID
+.\"WORD: saved user ID ä¿\9då\98ã\83¦ã\83¼ã\82¶ã\83¼ID
+.\"WORD: implement 実装
+.\"WORD: root ルート
+.\"WORD: super-user ã\82¹ã\83¼ã\83\91ã\83¼ã\83»ã\83¦ã\83¼ã\82¶ã\83¼
.\"
.TH SETUID 2 2010-02-21 "Linux" "Linux Programmer's Manual"
.\"O .SH NAME
-.SH ̾Á°
+.SH 名前
.\"O setuid \- set user identity
-setuid \- ¥æ¡¼¥¶¡¼¼±ÊÌ (identity) ¤òÀßÄꤹ¤ë
+setuid \- ユーザー識別 (identity) を設定する
.\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
.B #include <sys/types.h>
.br
.B #include <unistd.h>
.sp
.BI "int setuid(uid_t " uid );
.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
+.SH 説明
.\"O .BR setuid ()
.\"O sets the effective user ID of the calling process.
.\"O If the effective UID of the caller is root,
.\"O the real UID and saved set-user-ID are also set.
.BR setuid ()
-¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ ID ¤òÀßÄꤹ¤ë¡£
-¤â¤·¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬ root ¤Ê¤é¤Ð¡¢
-¼Â (real) UID ¤ÈÊݸ (saved) set-user-ID ¤âÀßÄꤵ¤ì¤ë¡£
+は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定する。
+もし呼び出し元プロセスの実効 UID が root ならば、
+実 (real) UID と保存 (saved) set-user-ID も設定される。
.PP
.\"O Under Linux,
.\"O .BR setuid ()
.\"O This allows a set-user-ID (other than root) program to drop all of its user
.\"O privileges, do some un-privileged work, and then reengage the original
.\"O effective user ID in a secure manner.
-Linux ¤Ç¤Ï¡¢
+Linux では、
.BR setuid ()
-¤Ï
+は
.B _POSIX_SAVED_IDS
-¤ò¤â¤Ã¤¿ POSIX ÈǤΤ褦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
-¤³¤ì¤Ï (¥ë¡¼¥È°Ê³°¤Î) set-user-ID ¥×¥í¥°¥é¥à¤Ë¤½¤Î¥æ¡¼¥¶¡¼¤ÎÆø¢¤ò
-Á´¤ÆÍ¿¤¨¡¢Æø¢¤ÎɬÍפʤ¤»Å»ö¤ò¤·¡¢ËÜÍè¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤Ë
-°ÂÁ´¤ÊÊýË¡¤ÇºÆ¤ÓÌ᤹¤³¤È¤òµö¤¹¡£
+をもった POSIX 版のように実装されている。
+これは (ルート以外の) set-user-ID プログラムにそのユーザーの特権を
+全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に
+安全な方法で再び戻すことを許す。
.PP
.\"O If the user is root or the program is set-user-ID root, special care must be
.\"O taken.
.\"O .IR uid .
.\"O After this has occurred, it is impossible for the program to regain root
.\"O privileges.
-¥æ¡¼¥¶¡¼¤¬ root ¤Þ¤¿¤Ï¥×¥í¥°¥é¥à¤¬ root ¤Ë set-user-ID ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢
-ÆÃÊ̤ÎÃí°Õ¤¬Ê§¤ï¤ì¤ë¡£
+ユーザーが root またはプログラムが root に set-user-ID されているならば、
+特別の注意が払われる。
.BR setuid ()
-´Ø¿ô¤Ï¸Æ¤Ó½Ð¤·¼Ô¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ò¥Á¥§¥Ã¥¯¤·¡¢
-¤½¤ì¤¬¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼¤Ê¤é¤Ð¡¢
-¥×¥í¥»¥¹¤Ë´ØÏ¢¤¹¤ëÁ´¤Æ¤Î¥æ¡¼¥¶¡¼ ID ¤Ë
+関数は呼び出し者の実効ユーザー ID をチェックし、
+それがスーパー・ユーザーならば、
+プロセスに関連する全てのユーザー ID に
.I uid
-¤òÀßÄꤹ¤ë¡£
-¤³¤ì¤¬¹Ô¤Ê¤ï¤ì¤¿¸å¤Ë¤Ï¥×¥í¥°¥é¥à¤¬ºÆ¤Ó¥ë¡¼¥È¤ÎÆø¢¤òÆÀ¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£
+を設定する。
+これが行なわれた後にはプログラムが再びルートの特権を得ることはできない。
.PP
.\"O Thus, a set-user-ID-root program wishing to temporarily drop root
.\"O privileges, assume the identity of an unprivileged user, and then regain
.\"O .BR setuid ().
.\"O You can accomplish this with
.\"O .BR seteuid (2).
-¤·¤¿¤¬¤Ã¤Æ¡¢set-user-ID-root ¥×¥í¥°¥é¥à¤Ç¡¢°ì»þŪ¤Ë¥ë¡¼¥ÈÆø¢¤ò²ò½ü¤·¡¢
-ÈóÆø¢¥æ¡¼¥¶¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë¿¶Éñ¤¤¡¢¸å¤Ç¥ë¡¼¥È¸¢¸Â¤ò¤â¤¦°ìÅÙÆÀ¤è¤¦¤È
-¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢
+したがって、set-user-ID-root プログラムで、一時的にルート特権を解除し、
+非特権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと
+する場合には、
.BR setuid ()
-¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Ê¤¤¡£¤½¤Î¾ì¹ç¤Ë¤Ï¡¢
+を使うことができない。その場合には、
.BR seteuid (2)
-¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£
+を使う必要がある。
.\"O .SH "RETURN VALUE"
-.SH ÊÖ¤êÃÍ
+.SH 返り値
.\"O On success, zero is returned.
.\"O On error, \-1 is returned, and
.\"O .I errno
.\"O is set appropriately.
-À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢
+成功した場合は 0 が返される。エラーの場合は \-1 が返され、
.I errno
-¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
+が適切に設定される。
.\"O .SH ERRORS
-.SH ¥¨¥é¡¼
+.SH ã\82¨ã\83©ã\83¼
.TP
.B EAGAIN
.\"O The
.\"O .B RLIMIT_NPROC
.\"O resource limit.
.I uid
-¤¬¸½ºß¤Î¥æ¡¼¥¶¡¼ ID ¤È¥Þ¥Ã¥Á¤»¤º¡¢¤³¤Î
+が現在のユーザー ID とマッチせず、この
.I uid
-¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤¬¥ê¥½¡¼¥¹¾å¸Â
+によってプロセスがリソース上限
.B RLIMIT_NPROC
-¤òĶ¤¨¤¿¡£
+を超えた。
.TP
.B EPERM
.\"O The user is not privileged (Linux: does not have the
.\"O capability) and
.\"O .I uid
.\"O does not match the real UID or saved set-user-ID of the calling process.
-¥æ¡¼¥¶¡¼¤¬Æø¢¤ò»ý¤¿¤º
-(Linux ¤Ç¤Ï
+ユーザーが特権を持たず
+(Linux では
.B CAP_SETUID
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤º)¡¢
+ケーパビリティ (capability) を持たず)、
.I uid
-¤¬¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â UID ¤Þ¤¿¤ÏÊݸ set-user-ID ¤È°ìÃפ·¤Ê¤¤¡£
+が呼び出し元プロセスの実 UID または保存 set-user-ID と一致しない。
.\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SH 準拠
.\"O SVr4, POSIX.1-2001.
.\"O Not quite compatible with the 4.4BSD call, which
.\"O sets all of the real, saved, and effective user IDs.
.\"O .\" SVr4 documents an additional EINVAL error condition.
SVr4, POSIX.1-2001.
-4.4BSD ¤Î¥³¡¼¥ë¤È¤Ï´°Á´¤Ê¸ß´¹À¤Ï¤Ê¤¤¡¢
-BSD ¤Î¥³¡¼¥ë¤Ï¼Â (real)¡¢Êݸ (saved)¡¢¼Â¸ú (effective) ID ¤ÎÁ´¤Æ¤òÀßÄꤹ¤ë¡£
-.\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤¬¤¢¤ë¡£
+4.4BSD のコールとは完全な互換性はない、
+BSD のコールは実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。
+.\" SVr4 には他に EINVAL エラーについての記述がある。
.\"O .SH NOTES
.\"O .SS Linux Notes
-.SH Ãí°Õ
-.SS Linux ¤Ç¤ÎÃí°Õ
+.SH 注意
+.SS Linux での注意
.\"O Linux has the concept of file system user ID, normally equal to the
.\"O effective user ID.
.\"O The
.\"O call also sets the file system user ID of the calling process.
.\"O See
.\"O .BR setfsuid (2).
-Linux ¤Ï¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤Î³µÇ°¤ò»ý¤Ä¡£
-Ä̾¤³¤ì¤Ï¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÅù¤·¤¤¡£
+Linux はファイル・システム・ユーザー ID の概念を持つ。
+通常、これは実効ユーザー ID に等しい。
.BR setuid ()
-¥³¡¼¥ë¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥æ¡¼¥¶¡¼ ID ¤âÀßÄꤹ¤ë¡£
+コールは呼び出し元のプロセスのファイル・システム・ユーザー ID も設定する。
.BR setfsuid (2)
-¤â»²¾È¤¹¤ë¤³¤È¡£
+も参照すること。
.PP
.\"O If
.\"O .I uid
.\"O is different from the old effective uid, the process will
.\"O be forbidden from leaving core dumps.
.I uid
-¤¬ÀΤμ¸ú uid ¤È°Û¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢¥×¥í¥»¥¹¤Ï¥³¥¢¡¦¥À¥ó¥×¤¹¤ë¤³¤È¤ò
-¶Ø»ß¤µ¤ì¤ë¡£
+が昔の実効 uid と異っていた場合、プロセスはコア・ダンプすることを
+禁止される。
.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
.BR getuid (2),
.BR seteuid (2),
.BR setfsuid (2),