blob: ab1a79c88e24d649c49bd92299cf48f266ae013c [file] [log] [blame]
Ben Lindstrom36579d32001-01-29 07:39:26 +00001/* $OpenBSD: uidswap.h,v 1.6 2001/01/29 01:58:19 niklas Exp $ */
2
Damien Millerd4a8b7e1999-10-27 13:42:43 +10003/*
Damien Miller95def091999-11-25 00:26:21 +11004 * Author: Tatu Ylonen <ylo@cs.hut.fi>
Damien Miller95def091999-11-25 00:26:21 +11005 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 * All rights reserved
Damien Miller4af51302000-04-16 11:18:38 +10007 *
Damien Millere4340be2000-09-16 13:29:08 +11008 * 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".
Damien Miller95def091999-11-25 00:26:21 +110013 */
Damien Millerd4a8b7e1999-10-27 13:42:43 +100014
15#ifndef UIDSWAP_H
16#define UIDSWAP_H
17
Damien Miller95def091999-11-25 00:26:21 +110018/*
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 */
22void temporarily_use_uid(uid_t uid);
Damien Millerd4a8b7e1999-10-27 13:42:43 +100023
Damien Miller95def091999-11-25 00:26:21 +110024/*
25 * Restores the original effective user id after temporarily_use_uid().
26 * This should only be called while temporarily_use_uid is effective.
27 */
Ben Lindstrom46c16222000-12-22 01:43:59 +000028void restore_uid(void);
Damien Millerd4a8b7e1999-10-27 13:42:43 +100029
Damien Miller95def091999-11-25 00:26:21 +110030/*
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 */
34void permanently_set_uid(uid_t uid);
Damien Millerd4a8b7e1999-10-27 13:42:43 +100035
Damien Miller95def091999-11-25 00:26:21 +110036#endif /* UIDSWAP_H */