[OpenAFS] Removing the ability to change the PAG of the parent
Rainer Toebbicke
rtb@pclella.cern.ch
Wed, 17 Feb 2010 09:46:06 +0100
Simon Wilkinson schrieb:
> We're currently (on opeanfs-devel) discussing a new mechanism for
> storing tokens in the kernel - this new mechanism is required to support
> new security layers such as rxgk and rxk5. There have been a significant
> number of posters advocating removing the 'change the PAG of my parent'
> feature, which is used by aklog -setpag, amongst others. A process would
> still be able to change its own PAG.
>
> There are numerous technical reasons for wanting to make this change.
> This functionality is very difficult to implement in a cross-platform
> manner, without exposing ourselves to all sorts of kernel races. On some
> platforms (such as Linux) it works on some kernel versions, but not on
> others. Things would be made considerably easier if this feature went away.
>
> Based on current developer feedback, I'm planning on removing the setpag
> functionality from the new interface. However, before making the final
> decision, I'm very interested in hearing the views of deployers and end
> users? How many of you rely on aklog -setpag? How difficult would things
> be for you if it went away in some future major release [*]?
>
A script that acquires credentials can only safely do so in a pag. "script"
including pythons, perls, rubies and other programs which do not have a
setpag() call.
Often the problem can be circumvented with a "pagsh -c 'exec
perl-program'"-like construct, but there are cases where such a split is
unnatural and sometimes tricky: a setuid script for example. Programs which
fork and continue something in a new pag: you couldn't write a simple server
with sub-authentication in perl without this (I am -possibly without
justification- not a friend of the AFS-perl package).
Hence, yes, the functionality is valuable and useful for *setting a new pag in
a script*.
This does not mean it has to be implemented by *set the pag of your parent*:
there are many things scripts can do on their own, under Linux a "echo 1 >
/proc/sys/afs/setpag" would be fine. Since /proc is very linux-and-a-few-more
specific, I wouldn't cry foul either if there were a live
/afs/system-parameters file that we could more easily divert cross-platform.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rainer Toebbicke
European Laboratory for Particle Physics(CERN) - Geneva, Switzerland
Phone: +41 22 767 8985 Fax: +41 22 767 7155