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