fprint

提供: ArchWiki
2022年9月30日 (金) 17:15時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎インストール: 英語版を元に記事を差し換え)
ナビゲーションに移動 検索に移動

関連記事

fprint のホームページ より:

fprint プロジェクトは商用の指紋認証デバイスのサポートという Linux デスクトップの隙間を埋めることを目指しています。

ノートパソコンに内蔵されている指紋リーダーを使用して PAM を使ったログインを行うというアイデアです。この記事ではバックアップ用にログインで通常のパスワードを使う方法も説明しています (単独で指紋スキャナーが推奨することは、多くの理由により推奨されません)。

要件

使っている指紋スキャナーがサポートされていることを確認してください。あなたのデバイスがサポートされているかどうかは この サポートされているデバイスのリストで確認できます。あなたのデバイスを確認するには、次を入力してください:

$ lsusb
ノート: デバイスのリストは不定期更新であり不完全です。リストにデバイスがない場合でも、AUR パッケージを使う前に以下の手順を試す価値があります。

インストール

公式リポジトリから fprintd をインストールしてください。imagemagick も必要かもしれません。

Some devices require a different fork of libfprint specifically made for touch-based sensors and not (yet?) merged with the main libfprint: libfprint-tod. This is available as libfprint-tod-gitAUR. If you have a 04f3:0c4c or a 04f3:0c00 use the experimental package libfprint-elanmoc2-newdrvs-gitAUR from libfprint-elanmoc2-newdrvs waiting to be merged into libfprint-elanmoc2 which is also waiting to be merged into the main libfprint.

設定

ログイン設定

ノート:
  • GDM を使っているなら、ログインメニューで指紋オプションが使えるはずです (使えない場合、ユーザーを input グループに追加してみてください)。このセクションは飛ばして下さい。
  • SDDM を使う場合、SDDM#指紋認証の利用を参照してください。

pam_fprintd.sosufficient として /etc/pam.d/system-local-login の auth セクションの一番上に追加してください:

/etc/pam.d/system-local-login
auth      sufficient pam_fprintd.so
auth      include   system-login
...

これで最初に指紋によるログインが試行され、それが失敗したりユーザーのホームディレクトリに指紋署名がない場合、パスワードによるログインになります。

同じように /etc/pam.d/{login,su,sudo,gdm,lightdm} 内の他のファイルを修正することもできます。例えば GNOME の polkit 認証なら /etc/pam.d/polkit-1 です。

pam_fprintd.sosufficient として追加すると、指紋署名が登録済みのときにパスワード認証ではなく指紋認証が促されます。パスワード認証と指紋認証を両方使えるようにするには先頭に以下の内容を追加します:

/etc/pam.d/sudo
auth		sufficient  	pam_unix.so try_first_pass likeauth nullok
auth		sufficient  	pam_fprintd.so
...

最初にパスワードを促され、入力せずに Enter キーを押すと指紋認証が行われます。

指紋署名の作成

登録するには、認証エージェントを実行する必要があります。

指の署名を追加するには、次を実行してください:

$ fprintd-enroll

指をスキャンするように求められます。その後、/var/lib/fprint/ に署名が作成されます。

5本の指全ての署名を新しく作成するには ([username] は実際のユーザー名に置き換えてください):

$ fprintd-delete [username]
$ for finger in {left,right}-{thumb,{index,middle,ring,little}-finger}; do fprintd-enroll -f $finger [username]; done

詳しくは、man fprintd を見て下さい。

登録の制限

デフォルトでは新しい指紋を登録するのにパスワードを入力する必要はありません。Polkit ルールを使うことでこの動作を変更することができます。

polkit の設定ファイルは、次の2つの場所に保存されています。

  • /etc/polkit-1/rules.d/
  • /usr/share/polkit-1/rules.d/
ノート: /etc/polkit-1/rules.d/ の設定ファイルはパッケージ更新時に上書きされます。最初に設定ファイルを /etc/polkit-1/rules.d/ から /usr/share/polkit-1/rules.d/ にコピーしてください。

以下の例ではスーパーユーザーだけが指紋を登録できるようになります:

/etc/polkit-1/rules.d/50-net.reactivated.fprint.device.enroll.rules
polkit.addRule(function (action, subject) {
  if (action.id == "net.reactivated.fprint.device.enroll") {
    return subject.user == "root" ? polkit.Result.YES : polkit.result.NO
  }
})

トラブルシューティング

利用可能なデバイスがない

サポートされているデバイス が見つからない、または既に開いている(使用中)と言われる場合は、fprintd のログを以下の方法で確認してください:

# journalctl -u fprintd.service

次のようなログエントリが見つかるかもしれません:

fprintd[2936592]: Corrupted message received
fprintd[2936592]: Ignoring device due to initialization error: unsupported firmware version

Fwupd でデバイスのファームウェアを最新の状態にしてください。