5 * Sebastien Pouliot <sebastien@ximian.com>
7 * (C) 2004 Novell (http://www.novell.com)
11 #include <mono/io-layer/io-layer.h>
18 #include <sys/types.h>
23 ImpersonateLoggedOnUser (gpointer handle)
25 uid_t token = (uid_t) GPOINTER_TO_INT (handle);
27 if (setresuid (-1, token, getuid ()) < 0)
30 return (geteuid () == token);
34 gboolean RevertToSelf (void)
42 if (getresuid (&ruid, &euid, &suid) < 0)
46 if (setresuid (-1, suid, -1) < 0)
51 return (geteuid () == suid);