Postfix3.3.1
set_eugid.h
[詳解]
1 #ifndef _SET_EUGID_H_INCLUDED_
2 #define _SET_EUGID_H_INCLUDED_
3 
4 /*++
5 /* NAME
6 /* set_eugid 3h
7 /* SUMMARY
8 /* set effective user and group attributes
9 /* SYNOPSIS
10 /* #include <set_eugid.h>
11 /* DESCRIPTION
12 /* .nf
13 
14  /* External interface. */
15 
16 extern void set_eugid(uid_t, gid_t);
17 
18  /*
19  * The following macros open and close a block that runs at a different
20  * privilege level. To make mistakes with stray curly braces less likely, we
21  * shape the macros below as the head and tail of a do-while loop.
22  */
23 #define SAVE_AND_SET_EUGID(uid, gid) do { \
24  uid_t __set_eugid_uid = geteuid(); \
25  gid_t __set_eugid_gid = getegid(); \
26  set_eugid((uid), (gid));
27 
28 #define RESTORE_SAVED_EUGID() \
29  set_eugid(__set_eugid_uid, __set_eugid_gid); \
30  } while (0)
31 
32 /* LICENSE
33 /* .ad
34 /* .fi
35 /* The Secure Mailer license must be distributed with this software.
36 /* AUTHOR(S)
37 /* Wietse Venema
38 /* IBM T.J. Watson Research
39 /* P.O. Box 704
40 /* Yorktown Heights, NY 10598, USA
41 /*--*/
42 
43 #endif
void set_eugid(uid_t, gid_t)
Definition: set_eugid.c:54