Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jul 1998 12:06:05 +0200
From:      Ollivier Robert <roberto@keltia.freenix.fr>
To:        hackers@FreeBSD.ORG
Subject:   Re: How do you tell (within the kernel) if we started setuid?
Message-ID:  <19980714120605.A5227@keltia.freenix.fr>
In-Reply-To: <199807140237.KAA10232@ariadne.tensor.pgs.com>; from Stephen Hocking-Senior Programmer PGS Tensor Perth on Tue, Jul 14, 1998 at 10:37:46AM %2B0800
References:  <199807140237.KAA10232@ariadne.tensor.pgs.com>

next in thread | previous in thread | raw e-mail | index | archive | help
According to Stephen Hocking-Senior Programmer PGS Tensor Perth:
> If you're executing a program that was started setuid root but has 
> subsequently given up its privileges, is there anyway to tell if it was 
> originally set uid?

There is a system call about this. It looks for a special flag in the
process entry.

NAME
     issetugid - is current process tainted by uid or gid changes

int
issetugid(p, uap)
        register struct proc *p;
        struct issetugid_args *uap;
{
        /*
         * Note: OpenBSD sets a P_SUGIDEXEC flag set at execve() time,
         * we use P_SUGID because we consider changing the owners as
         * "tainting" as well.
         * This is significant for procs that start as root and "become"
         * a user without an exec - programs cannot know *everything*
         * that libc *might* have put in their data segment.
         */
        if (p->p_flag & P_SUGID)
                return (1);
        return (0);
}

-- 
Ollivier ROBERT -=- FreeBSD: The Power to Serve! -=- roberto@keltia.freenix.fr
FreeBSD keltia.freenix.fr 3.0-CURRENT #61: Sun Jul 12 14:38:23 CEST 1998

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980714120605.A5227>