Описание тега abz
Во-первых, проверьте совместимость вашего оборудования.
Поддерживаемые устройства | freedesktop.org
Неподдерживаемых устройств | freedesktop.org
Во-вторых, пожалуйста, понять, что регистрация в помощью идентификации по отпечаткам пальцев, АКИК, иногда ненадежный.
обновленного FPrint-не совсем стабильный, и не может работать все время.
На форумах Убунту
В остальной части этот пост был переписан с этого поста на форум Ubuntu.
Я не использовал его лично, но он был самым современным учебник для Ubuntu я смог найти. Вам может понадобиться для отладки gksu.py
фантик сценарий
Чтобы настроить ваше устройство:
Установка обновленного FPrint
судо apt-получить установку обновленного FPrint-демо libfprint-Дэв libfprint0 неизвестных обновленного FPrint aes2501-Вайоминг
Далее, зарегистрироваться пальцами либо с помощью терминала или графический пользовательский интерфейс.
Терминал
pam_fprint_enroll
Графический
fprint_demo
Далее настроить pam, так что отпечатков пальцев может быть полезен.
gksu команду Gedit /и т. д./Пэм.д/общие-авт
Добавить это в верхней части файла (сделать это несколько раз для однако многочисленные попытки вы хотите разрешить)
# Только по отпечаткам пальцев
двиг достаточно pam_fprint.так
Или, используйте эти опции, если вы хотите требовать от отпечатков пальцев и пароль.
# + Пароль отпечатков пальцев
авторизации требуется pam_fprint.так
Для программ, использующих gksudo/gksu, копию фантик gksu.py
ниже в /usr/местные/Бен/gksu
добавить фингерпринта поддержка и введите следующий код
судо МВ ./gksu.py /usr/местные/Бен/gksu
судо команду chmod 755 /usr/местные/Бен/gksu
судо apt-получить установку на Python-gnome2-массовка на Python-pexpect
gksu.py
#!/usr/Бен/Python с
# -*- кодирование: UTF-8 -*-
#
# фантик gksu, поддерживая обновленного FPrint - в 0.2
#
# Авторское право 2008 Thimo Кремер <[email protected]>
#
# Эта программа является свободным программным обеспечением; вы можете распространять и/или изменять
# в соответствии с условиями Генеральной Общественной лицензии GNU, опубликованной
# Фонд свободного программного обеспечения; либо версии 2 Лицензии, либо
# (по вашему выбору) любой более поздней версии.
#
# Эта программа распространяется в надежде, что она будет полезной,
# но без любой гарантии; без даже подразумеваемой гарантии
# Товарности или пригодности для определенной цели. Увидеть
# Общие общественную лицензию GNU для получения дополнительной информации.
#
# Вы должны были получить копию стандартной Общественной лицензии GNU
# вместе с этой программой; если нет, напишите бесплатного программного обеспечения
# Учредительство, Inc., 51 Франклин-Стрит, Пятый Этаж, Бостон,
# МАССАЧУСЕТС 02110-1301, США.
импорт Сыс, время
импорт подпроцесса, pexpect
импорт ГТК gksu2
gksu_cmd = ['/usr/Бен/gksu']
sudo_cmd = ['/usr/Бен/судо']
# Не обрабатывать запросы прошу пароль или с помощью Су
пропустить = ложь
arg_skip = ['-ш', '--Су-режима', '-п', '--печати-пропуска']
по ARG в sys.агду:
если ARG в arg_skip:
пропустить = истина
перерыв
если пропустить или LEN(sys файла.параметр argv) == 1:
прок = подпроцесса.К popen(gksu_cmd + Сыс.аргумент argv[1:])
тез.Докл.ждать()
Сыс.выход(0)
# Простое окно сообщения с запросом для отпечатков пальцев
класс Инфобокс(ГТК.MessageDialog):
деф __инит__(самовыдвижение):
ГТК.MessageDialog.__инит__(
самовывоз,
родитель = нет,
флаги = ГТК.DIALOG_DESTROY_WITH_PARENT,
тип = ГТК.MESSAGE_INFO,
кнопки = ГТК.BUTTONS_NONE,
message_format = ' отпечатков пальцев просил ')
самовывоз.set_type_hint(ГТК.ГДК.WINDOW_TYPE_HINT_SPLASHSCREEN)
самовывоз.set_position(ГТК.WIN_POS_CENTER)
самовывоз.set_image(ГТК.image_new_from_stock(ГТК.STOCK_DIALOG_AUTHENTICATION, ГТК.ICON_SIZE_DIALOG))
самовывоз.format_secondary_text(")
деф исчезают(самостоятельно, МСГ=нет):
самовывоз.hide_all()
если МСГ:
самовывоз.format_secondary_text(МСГ)
самовывоз.show_all()
время.сон(0.1)
в то время как ГТК.events_pending():
ГТК.main_iteration()
инфобокс = Инфобокс()
# Подготовить контексте gksu
gksu_context = gksu2.Контекст()
если '-д' в sys.argv или '--отладка' в sys.агду:
печати 'подготовить контексте gksu'
отладки = истина
другое:
отладка = ложь
gksu_context.set_debug(отладка)
если '-Д' в sys.argv или 'описание' в sys.агду:
попробуйте: я = sys файла.агду.индекс('-Д')
кроме ValueError: я = Сыс.агду.индекс ('описание')
gksu_context.set_description(Сыс.агду[я+1])
другое:
gksu_context.set_description(Сыс.агду[-1])
если '-м' в sys.argv или '--сообщение' в sys.агду:
попробуйте: я = sys файла.агду.индекс('-М')
кроме ValueError: я = Сыс.агду.индекс('--сообщение')
gksu_context.set_message(Сыс.агду[я+1])
если '-г' в sys.argv или '--отключить-бери' в sys.агду:
gksu_context.set_grab(ложные)
другое:
gksu_context.set_grab(правда)
если '-П' в sys.argv или '--проворный' в sys.агду:
# Нет метода контекста определена для данного аргумента
пройти
# Создать команду sudo
если отладки:
печати 'создание команды sudo'
sudo_cmd.функции append('-с')
sudo_cmd.функции append('-п')
sudo_cmd.функции append('GNOME_SUDO_PASS')
если ключ '-U' в sys.argv или '--пользователь' в sys.агду:
попробуйте: я = sys файла.агду.индекс (ключ'-U')
кроме ValueError: я = Сыс.агду.индекс('--пользователь')
sudo_cmd.функции append('-у')
sudo_cmd.добавить(Сыс.агду[я+1])
если нет ('-К' в sys.argv или '--сохранить-ОКР' в sys.агду):
sudo_cmd.функции append ('ч')
sudo_cmd.функции append('--')
sudo_cmd.добавить(Сыс.агду[-1])
# Взаимодействие с sudo
если отладки:
печати выполнить команду sudo:', ' '.присоединиться(sudo_cmd)
судо = pexpect.Спаун(sudo_cmd[0], sudo_cmd[1:])
во время суда.потока isalive():
ответ = судо.ожидать([
pexpect.ВФ,
pexpect.Тайм-аут,
'Сканирование .*',
'GNOME_SUDO_PASS',
'.+',
])
# ВФ, ТАЙМ-АУТ
если ответ <= 1:
далее
если отладки:
печать '[суда] ', судо.после.полосы()
# Скрыть инфобокс
инфобокс.исчезать()
# Задать для отпечатков пальцев
если ответ == 2:
МСГ = судо.после.полосы()
инфобокс.исчезать(МСГ)
# Запрашивать пароль
Элиф ответ == 3:
попробуйте:
ПВ = gksu2.ask_password_full(gksu_context, 'пароль: ')
за исключением:
ПВ = "
судо.sendline(ПВ)
инфобокс.уничтожить()