[OpenAFS-devel] Get no token when su-ing with sudo
Charles Clancy
security@xauth.net
Wed, 27 Mar 2002 14:23:41 -0600 (CST)
> root is a local user on the machines, so I'm using the 'ignore_root'
> setting in the PAM configuration already. I added now the
> 'refresh_tokens' option, but that doesn't change the behavior at all.
> I still end up without a token after I typed in the password.
Okay -- it looks like a bug (or at least incompatability) with sudo. The
sudo PAM client calls "pam_authenticate" on the AFS user authenticating,
but then calls "pam_setcred" and "pam_opensession" on the user you're
switching to. PAM (at least the pam_afs module) isn't designed to
authenticate as one user, and then open a session for another. You might
try further playing around with the "set_token" and "refresh_token"
options to the pam_afs module in the authentication phase.
In general, to make this work, sudo would need two PAM clients. The
first, maybe using settings in /etc/pam.d/sudo-user1, would perform the
authentication and setcred. Then perhaps use settings in
/etc/pam.d/sudo-user2 to do another setcred as the user you're switching
to, followed by an open_session.
It wouldn't be too hard to patch sudo's auth/pam.c to fix this problem,
however I suggest you try using its supported AFS or krb4 (or krb5!)
authentication mechanisms, because the PAM client seems pretty broken.
[ t charles clancy ]--[ tclancy@uiuc.edu ]--[ www.uiuc.edu/~tclancy ]