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