aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man2/setuid.2
blob: d9ae99f78f221e75c6009269b7c3e7db910b715a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
.\" Copyright (c) 1983, 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)setuid.2	8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/sys/setuid.2,v 1.13.2.1 2000/04/22 17:07:06 phantom Exp %
.\"
.Dd June 4, 1993
.Dt SETUID 2
.Os BSD 4.2
.Sh 名称
.Nm setuid ,
.Nm seteuid ,
.Nm setgid ,
.Nm setegid ,
.Nd ユーザ ID とグループ ID を設定する
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <unistd.h>
.Ft int
.Fn setuid "uid_t uid"
.Ft int
.Fn seteuid "uid_t euid"
.Ft int
.Fn setgid "gid_t gid"
.Ft int
.Fn setegid "gid_t egid"
.Sh 解説
.Fn setuid
関数は、現在のプロセスの実ユーザ ID と実効ユーザ ID と
退避グループ ID を指定した値に設定します。
.\" Comment out next block for !_POSIX_SAVED_IDS
.\" The real user ID and the saved set-user-ID are changed only if the
.\" effective user ID is that of the super user.
.\" I.e.
.\" .Fn setuid
.\" function is equal to
.\" .Fn seteuid
.\" function if the effective user ID is not that of the super user.
.\" End of block
.Fn setuid
関数が許容されるのは、指定の ID がプロセスの実ユーザ ID
または実効ユーザ ID に等しい場合、
または実効ユーザ ID がスーパユーザのものと等しい場合です。
.\" Comment out next line for !_POSIX_SAVED_IDS
.\" or the saved set-user-ID
.\" Next line is for Appendix B.4.2.2 case.
.Pp
.Fn setgid
関数は、現在のプロセスの実グループ ID と実効グループ ID と
退避グループ ID を指定した値に設定します。
.\" Comment out next block for !_POSIX_SAVED_IDS
.\" The real group ID and the saved set-group-ID are changed only if the
.\" effective user ID is that of the super user.
.\" I.e.
.\" .Fn setgid
.\" function is equal to
.\" .Fn setegid
.\" function if the effective user ID is not that of the super user.
.\" End of block
.Fn setgid
関数が許容されるのは、指定の ID がプロセスの実グループ ID
または実効グループ ID に等しい場合、
または実効ユーザ ID がスーパユーザのものと等しい場合です。
.\" Comment out next line for !_POSIX_SAVED_IDS
.\" or the saved set-group-ID
.\" Next line is for Appendix B.4.2.2 case.
.Pp
.Fn seteuid
関数
.Pq Fn setegid
は、現在のプロセスの実効ユーザ (グループ ID) を設定します。
実効ユーザ ID は実ユーザ ID
または退避ユーザ ID ( 
.Xr intro 2
と
.Xr execve 2
を参照 ) の値に設定できます。これを利用し、
set-user-ID 実行可能ファイルの実効ユーザ ID を実ユーザ ID に切り替えた後に、
set-user-ID 値に戻ることで、元の権限を得ることができます。
同じように、実効グループ ID は、
実グループ ID または退避ユーザ ID の値に設定できます。
.Pp
.Sh 戻り値
正常に完了すると、これらの関数は 0 を返します。
そうでない場合は、-1 が返されます。
.Pp
ユーザがスーパユーザでない場合、または指定された uid がその実 ID 、
実効 ID 、または退避 ID でない場合、これらの関数は -1 を返します。
.Sh 関連項目
.Xr getgid 2 ,
.Xr getuid 2 ,
.Xr issetugid 2 ,
.Xr setregid 2 ,
.Xr setreuid 2
.Sh 規格
.Fn setuid
関数と
.Fn setgid
関数は
.St -p1003.1-90
仕様と互換性があります。ただし、
.Li _POSIX_SAVED_IDS
.\" Uncomment next line for !_POSIX_SAVED_IDS
は付録 B.4.2.2 の許可された拡張で定義されていません。
.Fn seteuid
関数と
.Fn setegid
関数は、
.Li _POSIX_SAVED_IDS
の
.Tn POSIX
コンセプトを基礎にして拡張してあり、規格の将来の改定用に提案されて
います。
.Sh 歴史
.Fn setuid
関数呼び出しと
.Fn setgid
関数呼び出しは
.At v7
で登場しました。