お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-03-16 01:44:33

ochaduke
新しいメンバ
登録日: 2010-03-16

指紋認証

はじめまして。
digitalPersonaの「U.are.U 4000B Reader」というUSB指紋リーダーが投売りされていたので
購入し試してみました。環境はubuntu9.10です。ThinkPadもlibfprint対応機種であれば
同様の手順でできるかもです。

1. 指紋リーダーの確認
$lsusb

2. ライブラリ、ツール等のインストール
$sudo apt-get install fprint-demo libfprint-dev libfprint0 libpam-fprint

3. 一旦再起動
$sudo reboot

4. GUIで指紋登録
$fprint_demo

5. 指紋認証用グループ(plugdev)を作成し、そこに$USERを追加
$sudo usermod -a -G plugdev $USER

6. 確認
$groups | grep plugdev

7. PAM設定ファイルのcommon-authをバックアップ
$sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.orig

8. PAM設定ファイルのcommon-authを編集
$sudo vi /etc/pam.d/common-auth

9. パスワード認証(pam_unix.so)の設定行をコメントアウトし、指紋認証(pam_fprint.so)の設定を追加
auth    [success=1 default=ignore]  pam_fprint.so   #指紋認証
#auth    [success=1 default=ignore]  pam_unix.so nullok_secure  #パスワード認証

10. 以降、これまでPAMのcommon-auth設定ファイルをインクルードしてパスワード認証を行っていた手続きが
指紋認証になります。(ログイン、Synaptic、アップデートマネージャ、sudo、ディスクのマウント等)

11. 登録した指をけがしたら、リカバリーモード、あるいはライブCD等で起動し、設定ファイルを
パスワード認証に戻し再ログイン。fprint-demoで別の指を登録。再び設定ファイルを指紋認証へ。


私の環境では、実機、VirtualBox上のUbuntuともに、とりあえず意図した通りに動作しています。
それと、Fedora(11以降かな?)ではlibfprintによる指紋認証ログインが標準でお膳立てされているので
さくっと動作確認できると思います。

オフライン

 

#2 2010-03-16 01:48:13

ochaduke
新しいメンバ
登録日: 2010-03-16

Re: 指紋認証

下記サイトを参考にさせていただきました。

Main Page - fprint project
http://reactivated.net/fprint/wiki/Main_Page

Supported devices - fprint project
http://reactivated.net/fprint/wiki/Supported_devices

Get your fingerprint reader to work in Ubuntu
http://www.ubuntu-unleashed.com/2008/04/get-your-fingerprint-reader-to-work-in.html

X60の指紋認証(debian sidの場合)
http://www.nu-chon.org/d/?date=20071221#p03

指紋認証の実際:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20070227/263426/

オフライン

 

#3 2010-03-23 19:05:45

ochaduke
新しいメンバ
登録日: 2010-03-16

Re: 指紋認証

#1をつらつらと読み返し、追試してみて、間違い等気がついた点、補足訂正します。

3. 一旦再起動
$sudo reboot

これ、Linux的にスマートじゃないなと思っていたんですが、再起動せずとも指紋リーダーを一度抜き差しすれば
fprint_demoで登録できるようになるのでした。


5. 指紋認証用グループ(plugdev)を作成し、そこに$USERを追加
$sudo usermod -a -G plugdev $USER

複雑骨折的勘違いをしてました。
以下が正解かと。
・plugdevグループはデフォルトで存在する
・usermodはアカウント情報を修正するコマンドであり、グループを作成するコマンドではない
・ubuntuインストール時のユーザーはplugdevグループに初めから登録されている

したがって「5.」は
”plugdevグループに$USERを追加”ということであり、
ubuntuインストール時のユーザーであれば不要です。

ちなみにplugdevグループの存在有無を確認するには
$cat /etc/group | grep plugdev


9. パスワード認証(pam_unix.so)の設定行をコメントアウトし、指紋認証(pam_fprint.so)の設定を追加
auth    [success=1 default=ignore]  pam_fprint.so   #指紋認証
#auth    [success=1 default=ignore]  pam_unix.so nullok_secure  #パスワード認証

この設定(指紋認証オンリー)だと運用しづらい場合

auth    sufficient  pam_fprint.so   #指紋認証
auth    [success=1 default=ignore]  pam_unix.so nullok_secure  #パスワード認証

というふうに設定すると、指紋認証に失敗した場合にパスワード認証になります。
まだ指紋登録していない新規ユーザーでもパスワードでログインできるようになります。

オフライン

 

Board footer

Powered by FluxBB