web-dev-qa-db-fra.com

Comment utiliser le lecteur d'empreintes digitales sur un ordinateur HP Probook?

J'ai un scanner d'empreintes digitales sur mon ordinateur portable HP Probook. J'utilise Ubuntu 11.10 dessus. Comment puis-je l'utiliser?

8
Sat93

Vous pouvez consulter la page page d'intégration d'empreintes digitales sur Launchpad , où vous trouverez toutes les informations sur les lecteurs d'empreintes digitales, pour voir si le vôtre est pris en charge et comment l'utiliser sous Ubuntu.

2
heiko81

Tout d’abord, vérifiez la compatibilité de votre matériel.

Appareils pris en charge | freedesktop.org

périphériques non pris en charge | freedesktop.org

Deuxièmement, veuillez comprendre que la connexion via l'identification par empreintes digitales, AKIK, n'est parfois pas fiable.

fprint n'est pas entièrement stable et risque de ne pas fonctionner tout le temps.

À partir des forums Ubuntu

Le reste de ce message a été transcrit à partir de Ce message sur les forums Ubunt .
Je ne l’ai pas utilisé personnellement, mais c’était le didacticiel le plus récent pour Ubuntu que j’ai trouvé. Vous devrez peut-être déboguer le script wrapper gksu.py

Pour configurer votre appareil:

Installer fprint

Sudo apt-get install fprint-demo libfprint-dev libfprint0 libpam-fprint aes2501-wy

Ensuite, enregistrez vos doigts à l’aide du terminal ou d’une interface graphique.

Terminal

pam_fprint_enroll

Graphique

fprint_demo

Ensuite, configurez PAM pour que le lecteur d’empreintes digitales soit utile.

gksu gedit /etc/pam.d/common-auth

Ajoutez ceci en haut du fichier (faites-le plusieurs fois, quel que soit le nombre de tentatives que vous souhaitez autoriser)

# Fingerprint only
auth sufficient pam_fprint.so

Ou utilisez ces options si vous souhaitez demander l’empreinte digitale et le mot de passe.

# Fingerprint + password
auth required pam_fprint.so

Pour les programmes utilisant gksudo/gksu, copiez le wrapper gksu.py ci-dessous dans /usr/local/bin/gksu ajoutez le support des empreintes digitales et entrez le code suivant.

Sudo mv ./gksu.py /usr/local/bin/gksu
Sudo chmod 755 /usr/local/bin/gksu
Sudo apt-get install python-gnome2-extras python-pexpect

gksu.py


#!/usr/bin/python
# -*- coding: UTF-8 -*-
#
#       gksu wrapper, supporting fprint - v 0.2
#       
#       Copyright 2008 Thimo Kraemer <[email protected]>
#       
#       This program is free software; you can redistribute it and/or modify
#       it under the terms of the GNU General Public License as published by
#       the Free Software Foundation; either version 2 of the License, or
#       (at your option) any later version.
#       
#       This program is distributed in the hope that it will be useful,
#       but WITHOUT ANY WARRANTY; without even the implied warranty of
#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#       GNU General Public License for more details.
#       
#       You should have received a copy of the GNU General Public License
#       along with this program; if not, write to the Free Software
#       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#       MA 02110-1301, USA.


import sys, time
import subprocess, pexpect
import gtk, gksu2


gksu_cmd = ['/usr/bin/gksu']
Sudo_cmd = ['/usr/bin/Sudo']


# Do not handle requests just asking for a password or using su
skip = False
arg_skip = ['-w', '--su-mode', '-p', '--print-pass']
for arg in sys.argv:
if arg in arg_skip:
    skip = True
    break
if skip or len(sys.argv) == 1:
proc = subprocess.Popen(gksu_cmd + sys.argv[1:])
proc.wait()
sys.exit(0)


# Simple message box asking for the fingerprint
class InfoBox(gtk.MessageDialog):
def __init__(self):
    gtk.MessageDialog.__init__(
        self,
        parent         = None,
        flags          = gtk.DIALOG_DESTROY_WITH_PARENT,
        type           = gtk.MESSAGE_INFO,
        buttons        = gtk.BUTTONS_NONE,
        message_format = ' Fingerprint requested ')
    self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_SPLASHSCREEN)
    self.set_position(gtk.WIN_POS_CENTER)
            self.set_image(gtk.image_new_from_stock(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_DIALOG))
    self.format_secondary_text('')

def fade(self, msg=None):
    self.hide_all()
    if msg:
        self.format_secondary_text(msg)
        self.show_all()
    time.sleep(0.1)
    while gtk.events_pending():
        gtk.main_iteration()

infobox = InfoBox()


# Prepare gksu context
gksu_context = gksu2.Context()
if '-d' in sys.argv or '--debug' in sys.argv:
print 'Prepare gksu context'
debug = True
else:
debug = False
gksu_context.set_debug(debug)

if '-D' in sys.argv or '--description' in sys.argv:
try: i = sys.argv.index('-D')
except ValueError: i = sys.argv.index('--description')
gksu_context.set_description(sys.argv[i+1])
else:
gksu_context.set_description(sys.argv[-1])

if '-m' in sys.argv or '--message' in sys.argv:
try: i = sys.argv.index('-m')
except ValueError: i = sys.argv.index('--message')
gksu_context.set_message(sys.argv[i+1])

if '-g' in sys.argv or '--disable-grab' in sys.argv:
gksu_context.set_grab(False)
else:
gksu_context.set_grab(True)

if '-P' in sys.argv or '--Prompt' in sys.argv:
# No context method defined for this argument
pass

# Create Sudo command
if debug:
print 'Create Sudo command'
Sudo_cmd.append('-S')
Sudo_cmd.append('-p')
Sudo_cmd.append('GNOME_Sudo_PASS')

if '-u' in sys.argv or '--user' in sys.argv:
try: i = sys.argv.index('-u')
except ValueError: i = sys.argv.index('--user')
Sudo_cmd.append('-u')
Sudo_cmd.append(sys.argv[i+1])

if not ('-k' in sys.argv or '--preserve-env' in sys.argv):
Sudo_cmd.append('-H')
Sudo_cmd.append('--')

Sudo_cmd.append(sys.argv[-1])


# Interact with Sudo
if debug:
print 'Run Sudo:', ' '.join(Sudo_cmd)
Sudo = pexpect.spawn(Sudo_cmd[0], Sudo_cmd[1:])
while Sudo.isalive():
response = Sudo.expect([
    pexpect.EOF,
    pexpect.TIMEOUT,
    'Scan .*',
    'GNOME_Sudo_PASS',
    '.+',
    ])

# EOF, TIMEOUT
if response <= 1:
    continue

if debug:
    print '[Sudo] ', Sudo.after.strip()

# Hide infobox
infobox.fade()

# Ask for fingerprint
if response == 2:
    msg = Sudo.after.strip()
    infobox.fade(msg)
# Ask for password
Elif response == 3:
    try:
        pw = gksu2.ask_password_full(gksu_context, 'Password: ')
    except:
        pw = ''
    Sudo.sendline(pw)


infobox.destroy()
2
Panther