Hi there!

First off, thanks a ton for libfprint! It works very well for me.

I've run into the issue where I'm connected to my machine over ssh, and 
type 'sudo foo', and end up with an unresponsive connection because sudo 
is privileged and pam_fprint is waiting on someone to scan their finger.

My first naive approach was to do the following:

In pam_fprint.c, in do_verify before the do-while.

const char *ssh = getenv("SSH_TTY");
if(ssh == NULL) {
    send_info_msg(pamh,"It looks like you're connected over SSH, 
skipping fingerprint verification.");
    return PAM_AUTHINFO_UNAVAIL;
}

That relies on your sshd setting SSH_TTY, so it's certainly not 
portable. On top of that, someone who knew the password could just set 
the environment variable to bypass the fingerprint and go straight to 
password verification. Since I use fingerprint reading to avoid having 
to type my password (not for security), I don't mind this.

Is there a nice way of doing this? I imagine a timeout might work, but I 
see that fp_verify_finger seems to block. I also read some reasons 
against this in your archives. You could potentially fork a thread and 
kill the child after a certain amount of time. Would libfprint leave the 
reader in an unspecified condition / would other things go bad if 
fp_verify_finger were unexpectedly interrupted by a thread kill?


Thanks in advance,
RJ Ryan
_______________________________________________
fprint mailing list
[email protected]
http://lists.reactivated.net/mailman/listinfo/fprint

Reply via email to