polkit.Result.AUTH_ADMIN_KEEP が fprintd では機能しません。

polkit.Result.AUTH_ADMIN_KEEP が fprintd では機能しません。

現在設定中です。印刷物私のコンピュータに。 Unixシリーズシステムで指紋認証のための強力なツールです。ただし、ユーザーはパスワード認証を必要とせず、パスワード認証でのみ指紋を追加、変更、削除できますfprintd-enroll。自分のコンピュータに物理的にアクセスできる人は誰でも自分のデバイスに指紋を登録できるため、これはセキュリティホールです。

この脆弱性を克服するために、私は次の事実に気づきました。ポルキット実際のユーザーが指紋認証情報を変更する前に、パスワードを強制的にアップグレードするのに役立ちます。 polkitのマニュアルを読んだ後、次の場所にあるポリシールールを確認しました/usr/share/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.AUTH_ADMIN_KEEP;
  }
})

私は、このルールが特に問題が発生したときにrootユーザーが1日を節約できるようにしながら、管理者がパスワードを提供するのを助けることができると信じています。また、現在のユーザーはホイールグループのメンバーであるため、以下に基づいて管理ユーザーとして識別する必要があります/usr/share/polkit-1/rules.d/50-defaule.rules

/* -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- */

// DO NOT EDIT THIS FILE, it will be overwritten on update
//
// Default rules for polkit
//
// See the polkit(8) man page for more information
// about configuring polkit.

polkit.addAdminRule(function(action, subject) {
    return ["unix-group:wheel"];
});

以下を実行してこの設定をテストするまで、すべてが問題ないように見えましたfprintd-enroll

[tjm@ArchPad ~]$ fprintd-enroll 
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
EnrollStart failed: Not Authorized: net.reactivated.fprint.device.enroll
[tjm@ArchPad ~]$ 

仕事ができず、認証失敗が発生して少し驚きました。polkit.Result.AUTH_ADMIN_KEEPに変更してみましたが、polkit.Result.AUTH_SELF_KEEP残念ながら役に立ちませんでした。この問題を解決する方法があることを願っています。

関連情報