summaryrefslogtreecommitdiffstats
path: root/uidswap.h
blob: af4f924f0ceb50f72f4309ce9cacda5edb4a7bf4 (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
/*

uidswap.h

Author: Tatu Ylonen <ylo@cs.hut.fi>

Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
                   All rights reserved

Created: Sat Sep  9 01:43:15 1995 ylo
Last modified: Sat Sep  9 02:34:04 1995 ylo

*/

#ifndef UIDSWAP_H
#define UIDSWAP_H

/* Temporarily changes to the given uid.  If the effective user id is not
   root, this does nothing.  This call cannot be nested. */
void temporarily_use_uid(uid_t uid);

/* Restores the original effective user id after temporarily_use_uid().
   This should only be called while temporarily_use_uid is effective. */
void restore_uid();

/* Permanently sets all uids to the given uid.  This cannot be called while
   temporarily_use_uid is effective.  This must also clear any saved uids. */
void permanently_set_uid(uid_t uid);

#endif /* UIDSWAP_H */