Wie verwende ich den Fingerabdruckscanner in einem HP Probook?

9

Ich habe einen Fingerabdruckscanner auf meinem HP Probook Laptop. Ich verwende Ubuntu 11.10 darauf. Wie nutze ich es?

Sat93
quelle

Antworten:

2

Überprüfen Sie zunächst die Kompatibilität Ihrer Hardware.

Unterstützte Geräte | freedesktop.org

Nicht unterstützte Geräte | freedesktop.org

Zweitens haben Sie bitte Verständnis dafür, dass die Anmeldung über die Fingerabdruckidentifikation (AKIK) manchmal unzuverlässig ist.

fprint ist nicht ganz stabil und funktioniert möglicherweise nicht immer.

Aus den Ubuntu-Foren

Der Rest dieses Beitrags wurde von diesem Beitrag in den Ubuntu-Foren transkribiert .
Ich habe es nicht persönlich benutzt, aber es war das aktuellste Tutorial für Ubuntu, das ich finden konnte. Möglicherweise müssen Sie das gksu.pyWrapper-Skript debuggen

So konfigurieren Sie Ihr Gerät:

Installieren Sie fprint

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

Als nächstes registrieren Sie Ihre Finger entweder über das Terminal oder eine grafische Benutzeroberfläche.

Terminal

pam_fprint_enroll

Grafisch

fprint_demo

Konfigurieren Sie als Nächstes PAM so, dass der Fingerabdruckleser hilfreich sein kann.

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

Fügen Sie dies oben in der Datei hinzu (wiederholen Sie dies mehrmals für so viele Versuche, wie Sie zulassen möchten).

# Fingerprint only
auth sufficient pam_fprint.so

Oder verwenden Sie diese Optionen, wenn Sie den Fingerabdruck und das Kennwort benötigen.

# Fingerprint + password
auth required pam_fprint.so

Kopieren Sie für Programme, die gksudo / gksu verwenden, den folgenden Wrapper gksu.py, /usr/local/bin/gksuum die Unterstützung für Fingerabdrücke hinzuzufügen, und geben Sie den folgenden Code ein

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()
Panther
quelle