xref: /freebsd/crypto/openssh/uidswap.h (revision 77a0943ded95b9e6438f7db70c4a28e4d93946d4)
1 /*
2  * Author: Tatu Ylonen <ylo@cs.hut.fi>
3  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4  *                    All rights reserved
5  *
6  * As far as I am concerned, the code I have written for this software
7  * can be used freely for any purpose.  Any derived versions of this
8  * software must be clearly marked as such, and if the derived work is
9  * incompatible with the protocol description in the RFC file, it must be
10  * called by a name other than "ssh" or "Secure Shell".
11  */
12 
13 #ifndef UIDSWAP_H
14 #define UIDSWAP_H
15 
16 /*
17  * Temporarily changes to the given uid.  If the effective user id is not
18  * root, this does nothing.  This call cannot be nested.
19  */
20 void    temporarily_use_uid(uid_t uid);
21 
22 /*
23  * Restores the original effective user id after temporarily_use_uid().
24  * This should only be called while temporarily_use_uid is effective.
25  */
26 void    restore_uid();
27 
28 /*
29  * Permanently sets all uids to the given uid.  This cannot be called while
30  * temporarily_use_uid is effective.  This must also clear any saved uids.
31  */
32 void    permanently_set_uid(uid_t uid);
33 
34 #endif				/* UIDSWAP_H */
35