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