fprint

提供: ArchWiki
2022年9月30日 (金) 17:29時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎ログイン設定: add article(from en.page).)
ナビゲーションに移動 検索に移動

関連記事

fprint のホームページ より:

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

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

要件

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

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

インストール

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

デバイスによっては、タッチベースのセンサー用に特別に作られた、(まだ?)メインの libfprint にマージされていない別の libfprint のフォーク、libfprint-tod が必要です。これは libfprint-elanmoc2-newdrvs-gitAUR として利用可能です。04f3:0c4c や 04f3:0c00 をお持ちの方は、 libfprint-elanmoc2-newdrvs の実験的なパッケージである libfprint-elanmoc2-newdrvs-gitAUR を使用して、libfprint-elanmoc2 にマージされるのを待ちましょう。これも、メインの 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 キーを押すと指紋認証が行われます。

If you want to prompt for fingerprint and password input at the same time, you can use pam-fprint-grosshackAUR. This may be needed for some graphical programs which do not allow blank password input, such as Gnome's built-in polkit agent. To use this package, add the following lines to the top of any files required:

auth		sufficient  	pam_fprintd_grosshack.so
auth		sufficient  	pam_unix.so try_first_pass nullok
...

指紋署名の作成

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

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

$ 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 でデバイスのファームウェアを最新の状態にしてください。