[OpenAFS-devel] FC6 aklog -setpag doesn't set tokens

Miles Davis miles@CS.Stanford.EDU
Tue, 31 Oct 2006 09:39:27 -0800


On Mon, Oct 30, 2006 at 08:21:04PM -0500, Jeffrey Hutzelman wrote:
> 
> 
> On Monday, October 30, 2006 03:50:50 PM -0800 Miles Davis 
> <miles@CS.Stanford.EDU> wrote:
> 
> >
> >Using the openafs.org RPM, slightly modified (with fsync patch and
> >linux/autoconf.h replacing linux/config.h), aklog -setpag seems to get
> >a token, but...doesn't.
> 
> You haven't said what kernel and AFS versions you're using, but I'm going 
> to bet they're pretty new, since you did say you're running FC6. 

Duh, sorry about that. The kernel is 2.6.18-1.2798.fc6, and openafs 
1.4.2.

>  The 
> -setpag switch uses an AFS system call which violates a basic UNIX design 
> principle, by allowing the process that calls it (aklog) to modify the 
> execution environment of its parent (your shell).  That mechanism has 
> always been somewhat ugly, and it's likely that with kernels new enough to 
> require keyring-based PAG tracking, it has never worked and never will. 
> What's probably going on here is that aklog's PAG is being changed, but 
> that of the parent shell is not, so your tokens are being dropped into the 
> great abyss.

Ah, I never understood the mechanism behind it. Thanks for the info.

> I'd suggest you stop using -setpag entirely.  Instead, consider using 
> pagsh, which gives you a new shell with a new PAG, along the same lines as 
> newgrp.

That's my plan. I'm not sure why I was using -setpag to begin with (in 
my pam_aklog module and login scripts), since I already have a pag on 
login...I must have assumed it was the safe fallback or something.

Anyway, I'm loving 1.4.2...the move from fc4 to fc6 is the easiest 
yet.

-- 
// Miles Davis - miles@cs.stanford.edu - http://www.cs.stanford.edu/~miles
// Computer Science Department - Computer Facilities
// Stanford University