Public bug reported: I modified /etc/pam.d/common-auth to allow two-factor authentication using password and either bluetooth proximity or, if that fails, google- authenticator:
. . . # here are the per-package modules (the "Primary" block) auth [success=1 default=ignore] pam_unix.so nullok_secure # here's the fallback if no module succeeds auth requisite pam_deny.so # auth [success=1 default=ignore] pam_blue.so auth required pam_google_authenticator.so # # prime the stack . . . This works fine for login, but bluetooth authentication always fails when unlocking gnome-screensaver with the error message: Bluetooth scan failure [bluetooth device up?] The reason seems to be that pam_blue is based on l2cap which requires root authority to create sockets (l2ping runs as root but fails for a non-privileged user). An alternative method of detecting bluetooth proximity is to use hcitool: hcitool name xx:xx:xx:xx:xx:xx returns the name of the device whose MAC is given, or nothing on fail, and it works for a non-privileged user. Replacing pam_blue with a simple hacked version using hcitool works for both login and gnome-screensaver unlock: int rc = PAM_SESSION_ERR; FILE *fpipe; char *command="hcitool name xx:xx:xx:xx:xx:xx"; char line[256]; if ( !(fpipe = (FILE*)popen(command,"r")) ) { perror("Problems with pipe"); exit(1); } while ( fgets( line, sizeof line, fpipe)) { if (strlen(line) > 2) rc = PAM_SUCCESS; } pclose(fpipe); return rc; This bug probably affects all versions to date, but has been confirmed in Ubuntu 11.04 and 11.10, and in libpam-blue 0.9.0-3 ** Affects: libpam-blue (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/912695 Title: libpam_blue requires root, fails if non-privileged To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libpam-blue/+bug/912695/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs