Arla 0.20 and linux 2.2-pre9, misc problems, probably not kernel specific

Nathan Neulinger nneul at umr.edu
Sun Jan 24 22:29:26 CET 1999


> > That is because your su throws away the secondary groups:
> >
> > > infinity(49)>id
> > > uid=5879(nneul) gid=5000(afsuser) groups=33536,32512,5000(afsuser)
> > > infinity(50)>su -
> > > Password:
> > > [root at infinity /root]# id
> > > uid=0(root) gid=0(root)
> > > groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
> >
> > Here, the 33536,32512 has been thrown away, and therefore you are
> > assumed to be in the default PAG.
> 
> Right, but it didn't do that before. It's possible that it is a change
> in the kernel from
> 2.0.35 to 2.2.
> 
> I have another machine running 2.0.35 with transarc's code, and the same
> su/ksu. Both perform correctly on that machine.

I did some simple testing. It appears that initgroups() is changed in
kernel 2.2. (Probably is more correct now actually.)

If I run this program:

-----
void main(void)
{
	initgroups("root", 5000);
	system("id");
}
-----

If I make that (temporarily) setuid root on a 2.0.35 machine and run it
as a regular user, I get root's groups, plus 5000, plus the PAG groups. 

On a 2.2 machine, I get only root's groups and 5000.

Obviously the semantics of the initgroups() call have changed in the
recent kernels.

[ Wondering how many things this is going to break. :( ]

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul at umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216





More information about the Arla-drinkers mailing list