X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman2%2Fsetresuid.2;h=74518071ac06b069badf9661136e65122bda6e53;hb=9bab846d3fbabd0a6c37bcac1ec38299cae9683b;hp=a9b9e647eb7d58fd7718793e9cbcafd2cfc5fdcc;hpb=4a0386e39e89bfc6e52c4cd5372b1a0d9c9bf08c;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man2/setresuid.2 b/release/man2/setresuid.2 index a9b9e647..74518071 100644 --- a/release/man2/setresuid.2 +++ b/release/man2/setresuid.2 @@ -1,7 +1,6 @@ -.\" Hey Emacs! This file is -*- nroff -*- source. -.\" .\" Copyright (C) 1997 Andries Brouwer (aeb@cwi.nl) .\" +.\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. @@ -21,93 +20,70 @@ .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END .\" .\" Modified, 2003-05-26, Michael Kerrisk, +.\"******************************************************************* .\" -.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya -.\" all rights reserved. -.\" Translated 1997-08-30, HANATAKA Shinya -.\" Updated & Modified 2004-05-22, Yuichi SATO -.\" Updated & Modified 2005-01-04, Yuichi SATO -.\" Updated & Modified 2005-09-03, Akihiro MOTOKI -.\" Updated & Modified 2005-11-04, Akihiro MOTOKI -.\" -.\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶¡¼ID -.\"WORD: real user ID ¼Â¥æ¡¼¥¶¡¼ID -.\"WORD: saved set-user-ID Êݸ¥»¥Ã¥È¥æ¡¼¥¶¡¼ID -.\"WORD: effective group ID ¼Â¸ú¥°¥ë¡¼¥×ID -.\"WORD: real group ID ¼Â¥°¥ë¡¼¥×ID -.\"WORD: saved group ID Êݸ¥°¥ë¡¼¥×ID +.\" This file was generated with po4a. Translate the source file. .\" -.TH SETRESUID 2 2007-07-26 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -setresuid, setresgid \- ¥æ¡¼¥¶¤ä¥°¥ë¡¼¥×¤Î ¼Â¡¢¼Â¸ú¡¢Êݸ ID ¤òÀßÄꤹ¤ë -.SH ½ñ¼° -.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) »²¾È */" +.\"******************************************************************* +.TH SETRESUID 2 2010\-11\-22 Linux "Linux Programmer's Manual" +.SH 名前 +setresuid, setresgid \- ユーザやグループの 実、実効、保存 ID を設定する +.SH 書式 +\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */ .br -.B #include +\fB#include \fP .sp -.BI "int setresuid(uid_t " ruid ", uid_t " euid ", uid_t " suid ); +\fBint setresuid(uid_t \fP\fIruid\fP\fB, uid_t \fP\fIeuid\fP\fB, uid_t \fP\fIsuid\fP\fB);\fP .br -.BI "int setresgid(gid_t " rgid ", gid_t " egid ", gid_t " sgid ); -.SH ÀâÌÀ -.BR setresuid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â (real) ¥æ¡¼¥¶¡¼ID¡¢¼Â¸ú (effective) ¥æ¡¼¥¶¡¼ID¡¢ -Êݸ set-user-ID ¤òÀßÄꤹ¤ë¡£ +\fBint setresgid(gid_t \fP\fIrgid\fP\fB, gid_t \fP\fIegid\fP\fB, gid_t \fP\fIsgid\fP\fB);\fP +.SH 説明 +\fBsetresuid\fP() は呼び出し元のプロセスの実 (real) ユーザーID、実効 (effective) ユーザーID、 保存 +set\-user\-ID を設定する。 + +非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set\-user\-ID を、 現在の実 UID、現在の実効 UID、現在の保存 +set\-user\-ID のどれかに変更することができる: -ÈóÆø¢¥æ¡¼¥¶¡¼¤Î¥×¥í¥»¥¹¤Ï¡¢¤½¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤ò¡¢ -¸½ºß¤Î¼Â UID¡¢¸½ºß¤Î¼Â¸ú UID¡¢¸½ºß¤ÎÊݸ set-user-ID -¤Î¤É¤ì¤«¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë: +特権プロセス (Linux では \fBCAP_SETUID\fP ケーパビリティ (capability) を持つ プロセス) は、実 UID、実効 +UID、保存 set\-user\-ID を任意の値に設定できる。 -Æø¢¥×¥í¥»¥¹ (Linux ¤Ç¤Ï \fBCAP_SETUID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ä -¥×¥í¥»¥¹) ¤Ï¡¢¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤òǤ°Õ¤ÎÃͤËÀßÄê¤Ç¤­¤ë¡£ +引き数のどれかが \-1 の場合はその値は変更されずに残される。 -°ú¤­¿ô¤Î¤É¤ì¤«¤¬ \-1 ¤Î¾ì¹ç¤Ï¤½¤ÎÃͤÏÊѹ¹¤µ¤ì¤º¤Ë»Ä¤µ¤ì¤ë¡£ +実 UID、実効 UID、保存 set\-user\-ID にどんな変更が行われたかに関わらず、 ファイルシステム UID は常に実効 UID +(可能であれば変更後の新しい実効 UID) と同じ値に設定される。 -¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Ë¤É¤ó¤ÊÊѹ¹¤¬¹Ô¤ï¤ì¤¿¤«¤Ë´Ø¤ï¤é¤º¡¢ -¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤Ï¾ï¤Ë¼Â¸ú UID (²Äǽ¤Ç¤¢¤ì¤ÐÊѹ¹¸å¤Î¿·¤·¤¤¼Â¸ú UID) -¤ÈƱ¤¸ÃͤËÀßÄꤵ¤ì¤ë¡£ +全く同じように、 \fBsetresgid\fP() は呼び出し元のプロセスの実 GID、実効 GID、保存 set\-group\-ID を設定する +(さらにファイルシステム GID を実効 GID と同じ値に修正する)。 非特権プロセスは同様の制限を受ける。 +.SH 返り値 +成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。 +.SH エラー +.TP +\fBEAGAIN\fP +\fIuid\fP が現在のユーザー ID と違う値で、 この呼び出しにより ユーザー ID が リソース上限 \fBRLIMIT_NPROC\fP +を超えてしまう。 +.TP +\fBEPERM\fP +呼び出したプロセスが特権を持たないのに (\fBCAP_SETUID\fP ケーパビリティを持たないのに)、 ID を許されていない値に変更しようとした。 +.SH バージョン +Linux ではバージョン 2.1.44 より利用可能になった。 +.SH 準拠 +これらのコールは非標準である。 HP\-UX や BSD 系のいくつかにも存在する。 +.SH 注意 +HP\-UX や FreeBSD では \fI\fP にプロトタイプが存在する。 +Linux では、glibc 2.3.2 以降で プロトタイプが提供されている。 -Á´¤¯Æ±¤¸¤è¤¦¤Ë¡¢ -.BR setresgid () -¤Ï¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â GID¡¢¼Â¸ú GID¡¢Êݸ set-group-ID ¤òÀßÄꤹ¤ë -(¤µ¤é¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à GID ¤ò¼Â¸ú GID ¤ÈƱ¤¸Ãͤ˽¤Àµ¤¹¤ë)¡£ -ÈóÆø¢¥×¥í¥»¥¹¤ÏƱÍͤÎÀ©¸Â¤ò¼õ¤±¤ë¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ -.I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -.TP -.B EAGAIN -.I uid -¤¬¸½ºß¤Î¥æ¡¼¥¶¡¼ ID ¤È°ã¤¦Ãͤǡ¢ -¤³¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ê ¥æ¡¼¥¶¡¼ ID ¤¬ -¥ê¥½¡¼¥¹¾å¸Â -.B RLIMIT_NPROC -¤òĶ¤¨¤Æ¤·¤Þ¤¦¡£ -.TP -.B EPERM -¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤¤Î¤Ë -(\fBCAP_SETUID\fP ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¤Î¤Ë)¡¢ -ID ¤òµö¤µ¤ì¤Æ¤¤¤Ê¤¤ÃͤËÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -Linux ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1.44 ¤è¤êÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¡£ -.SH ½àµò -¤³¤ì¤é¤Î¥³¡¼¥ë¤ÏÈóɸ½à¤Ç¤¢¤ë¡£ -HP-UX ¤ä BSD ·Ï¤Î¤¤¤¯¤Ä¤«¤Ë¤â¸ºß¤¹¤ë¡£ -.SH Ãí°Õ -HP-UX ¤ä FreeBSD ¤Ç¤Ï -.I -¤Ë¥×¥í¥È¥¿¥¤¥×¤¬Â¸ºß¤¹¤ë¡£ -Linux ¤Ç¤Ï¡¢glibc 2.3.2 °Ê¹ß¤Ç -¥×¥í¥È¥¿¥¤¥×¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¡£ -.SH ´ØÏ¢¹àÌÜ -.BR getresuid (2), -.BR getuid (2), -.BR setfsgid (2), -.BR setfsuid (2), -.BR setreuid (2), -.BR setuid (2), -.BR capabilities (7), -.BR credentials (7) +元々の Linux の \fBsetresuid\fP() と \fBsetresgid\fP() システムコールは +16 ビットのグループ ID だけに対応していた。 +その後、Linux 2.4 で、32 ビットの ID に対応した +\fBsetresuid32\fP() と \fBsetresgid32\fP() が追加された。 +glibc の \fBsetresuid\fP() と \fBsetresgid\fP() のラッパー関数は +カーネルバージョンによるこの違いを吸収している。 +.SH 関連項目 +\fBgetresuid\fP(2), \fBgetuid\fP(2), \fBsetfsgid\fP(2), \fBsetfsuid\fP(2), +\fBsetreuid\fP(2), \fBsetuid\fP(2), \fBcapabilities\fP(7), \fBcredentials\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。