[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ale] Unexpected behavior



Denny,

On Wed, 2003-12-10 at 17:41, Denny Chambers wrote:
> So let me set up the scenario:
> 
> First here is a simple test program I use:
> 
> --start copy
> #include <sys/types.h>
> #include <unistd.h>
> #include <stdio.h>
> 
> main(int argc, char *argv) {
>     FILE *fd = NULL;
> 
>     setegid(100);
>     seteuid(501);
>     if((fd = fopen("./foo", "r")) != NULL){
>         printf("User (%d/%d) has rights to file\n", geteuid(), getegid());
>     }
>     else{
>         printf("User (%d/%d) does not have rights file\n", geteuid(), 
> getegid());
>     }
> }
> --stop copy

	This is the group list problem.  All users have a list of groups they
belong to.  You must wipe this out IN ADDITION TO setting the egid.  See
groups(1) to list the groups you belong to, and getgroups(2) and
setgroups(2) for an API to [gs]et the group list.

-- 
kernel, n.: A part of an operating system that preserves the
medieval traditions of sorcery and black art.

Danny