Автор Гілка: Залогінюємось за допомогою веб-камери  (Прочитано 1340 раз)

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Отож, йдеться про модуль pam-face-authentification, що дозволяє заходити в систему, використовуючи веб-камеру. Бінарних пакетів немає, тому треба компілювати вручну згідно з цією інструкцією:
http://pam-face-authentication.org/wiki/index.php?title=Installation

Я тестив для Ubuntu 10.04, тому опишу для неї, а для інших дистрів ви почитайте мануал за посиланням вище. Отож, спершу встановлюємо потрібні бібліотеки:
sudo apt-get install build-essential cmake qt4-qmake libx11-dev libcv-dev libcvaux-dev libhighgui4 libhighgui-dev libqt4-dev libpam0g-dev libswscale0

У мене не хотіло ставитися libhighgui-dev, але проблема зникла, коли я поставив усі оновлення системи. Тому може раджу оновити дистрибутив перед цією операцією, бо там якийсь конфлікт версій бібліотек виникає.

Далі стягуємо модуль, компілюємо його та інсталюємо:
cd /tmp
wget pam-face-authentication.googlecode.com/files/pam-face-authentication-0.3.tar.gz
tar zxf pam-face-authentication-0.3.tar.gz && cd pam-face-authentication-*
mkdir build && cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install

Нагадаю, що це модуль для GDM. Якщо у вас менеджер входу в систему не GDM, то, ймовірно, треба стягнути і поставити плагін для KDE. Все, тепер в меню Applications->Other має з’явитися нова прога QT Face Trainer. Якщо раптом не з’явилася, то можна запустити з консолі:
$qt-facetrainer
Ця проста програмка дозволить вам зробити кілька фоток обличчя, що виглядає ось так. Отож, треба покривлятися і зафоткати себе з різними виразами пики. Для тих, хто любить часто міняти імідж, є приємна новина: прозі абсолютно похуй на ваше волосся, для розпізнавання юзається тільки обличчя, без вух і бороди. Щодо кольору губ не впевнений: якщо серед моїх читачок є хтось, хто хоче поекспериментувати з впливом помади, буду вдячний за тести. Іще не знаю, чи прога мене впізнає, якщо я не буду довго голитися.

Також там у Advanced Options є можливість потестити розпізнавання (дуже раджу!) і обрати рівень безпеки, від Low do High. Шо воно означає, не знаю, тому обрав Medium. Фотки зробив вранці, а увечері комп мене не впізнав, що можна списати на хуйову якість зображення моєї веб-камери. Але ніц, зробив тепер ще вечірніх фоток, і тепер все ок.

Отож, після того, як зробили фоток, ідем (під рутом) до /etc/pam.d. Там є купа різних файликів, які відповідають прогам, що юзають авторизацію. Найголовніше з них — це gdm. Отож, додаємо туди цей рядок:
auth sufficient pam_face_authentication.so enableX
В інструкції радять додати на самий початок файлу, і воно буде працювати, але в мене от є в системі юзер Anybody Else, якому дозволено вхід без пароля — для гостей — і, звісно, мені не потрібно там розпізнавання обличчя. Тому я додав цей рядок не на початок, а після рядків, що перевіряють, чи юзеру треба вводити пароль, чи ні:
#%PAM-1.0
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
auth    sufficient      pam_succeed_if.so user ingroup nopasswdlogin
#Face authentification
auth sufficient pam_face_authentication.so enableX
@include common-auth

common-auth — це звичайна авторизація, з паролем. Якщо комп вас не впізнає, ви і надалі зможете залогінитись, увівши пароль.  Отож, якщо ви параноїк і хочете, аби при залогіненні одночасно перевірялося і обличчя, і пароль, то треба замість auth sufficient написати auth required. Тоді після успішного розпізнавання обличчя воно запитає ваш пароль. Взагалі, PAM — дуже гнучка штука, тому якщо почитати мануал з нього, можна багато собі всього налаштувати. Наприклад, авторизацію за обличчям+відбитки пальців (якщо є сканер)+пароль. Тіки ж не забувайте, що аби подолати ваш супер-пупер-мега-захист, зловмиснику вистачить завантажитися з LiveCD або флешки.

Тепер, в цій же папці pam.d редагуємо файл gnome-screensaver, і додаємо цей же рядок туди. Ясно нашо — шоб в такий же спосіб розблоковувати екран:
auth sufficient pam_face_authentication.so enableX
@include common-auth
auth optional pam_gnome_keyring.so

Якщо вам хочеться, можна то само зробити і з sudo, тоді навіть коли напишете в консолі sudo -s, воно замість пароля буде розпізнавати пику. Але в мене чомусь після цього ставався segfault. Тобто, в консолі вписував sudo -s, воно розпізнавало мене, авторизація запам’ятовувалась, а sudo тікало в segfault. Вдруге коли писав sudo -s, було вже нормально. Так само було, коли Synaptic намагався запустити. Але і так я б не радив вмикати розпізнавання обличчя в sudo: тоді зловмисні програми зможуть отримувати рута без вашого відома, досить тільки, щоб ви сиділи за компом.

Літературка:
Сайт модуля
Інструкція з інсталяції
« Змінено: 2010-09-29 19:26:53 від noddeat »
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"