summaryrefslogtreecommitdiff
path: root/reference/C/MAN/setgid.htm
blob: c41be339ad392a17a7bbb32d42c2f2e93251af30 (plain)
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
<TITLE>setgid</TITLE>
<body bgcolor="#ffffcc">
<hr>
<pre>



<h3>SETGID(2)           Linux Programmer's Manual           SETGID(2)
</h3>

<h3>NAME
</h3>       setgid - set group identity

<h3>SYNOPSIS
</h3>       #include &lt;unistd.h&gt;

       int setgid(gid_t gid)

<h3>DESCRIPTION
</h3>       setgid sets the effective group ID of the current process.
       If the caller is the superuser, the real and  saved  group
       ID's are also set.

       Under   Linux,   setgid  is  implemented  like  SYSV  with
       SAVED_IDS.  This allows a setgid (other than root) program
       to  drop  all  of it's group privileges, do some un-privi-
       leged work, and  then  re-engage  the  original  effective
       group ID in a secure manner.

       If the user is root or the program is setgid root, special
       care must be taken. The setgid function checks the  effec-
       tive  gid  of  the  caller and if it is the superuser, all
       process related group ID's are set to gid.  After this has
       occurred,  it is impossible for the program to regain root
       privileges.

<h3>RETURN VALUE
</h3>       On success, zero is returned.  On error, -1  is  returned,
       and errno is set appropriately.

<h3>ERRORS
</h3>       EPERM   The  user  is not the super-user, and gid does not
               match the effective or saved group ID of the call-
               ing process.

<h3>CONFORMING TO
</h3>       System V

</pre>
<hr>
<h3>SEE ALSO
</h3><p>
<a href=getgid.htm>getgid</a>, 
<a href=setregid.htm>setregid</a>, 
<a href=setegid.htm>setegid</a>, 
<pre>

















<h3>Linux 1.1.36               29 July 1994                         1
</h3>


</pre>
<P>
<hr>
<p>
<center>
<table border=2 width=80%>
<tr align=center>
<td width=25%>
<a href=../cref.html>Top</a>
</td><td width=25%>
<a href=../master_index.html>Master Index</a>
</td><td width=25%>
<a href=../SYNTAX/keywords.html>Keywords</a>
</td><td width=25%>
<a href=../FUNCTIONS/funcref.htm>Functions</a>
</td>
</tr>
</table>
</center>
<p>
<hr>

This manual page was brought to you by <i>mjl_man V-2.0</i>