Same on Ubuntu:

$ ./getlgn
method 1 getuid : user=nicolas
method 2 geteuid: user=nicolas
$ sudo ./getlgn
[sudo] password for nicolas: 
method 1 getuid : user=root
method 2 geteuid: user=root

?

Le samedi 06 d?cembre 2008 ? 18:27 +0100, E. MARC a ?crit :
> Le samedi 6 d?cembre 2008, ? 18:10, Julien BLACHE a ?crit :
> > Nicolas Martin <nicolas.martin at freesurf.fr> wrote:
> >
> > Hi,
> >
> > >   struct passwd *uid;
> > >   uid = getpwuid(geteuid());
> > >   printf("user=%s\n", uid->pw_name);
> > >
> > > Prints my username correctly. Also prints root if runned with sudo ;-)
> >
> > Yep, use getuid() instead of geteuid() if you want to avoid that.
> On debian, I get same result with both functions:
> 
> #include <pwd.h>
> #include <stdio.h>
> 
> int main()
> {
>   struct passwd *uid;
>   uid = getpwuid(getuid());
>   printf("method 1 getuid : user=%s\n", uid->pw_name);
>   uid = getpwuid(geteuid());
>   printf("method 2 geteuid: user=%s\n", uid->pw_name);
> }
> 
> erwan at PC1:~$ ./myname 
> method 1 getuid : user=erwan
> method 2 geteuid: user=erwan
> 
> erwan at PC1:~$ sudo ./myname 
> method 1 getuid : user=root
> method 2 geteuid: user=root
> 
> Is there a bug?
> 
> EM
> 
> > Also, you want some error checking in there... :)
> >
> > JB.
> >
> > --
> > Julien BLACHE                                   <http://www.jblache.org>
> > <jb at jblache.org>                                  GPG KeyID 0xF5D65169
> 
> 


Reply via email to