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;
  }
})

나는 이 규칙이 특히 문제가 발생할 때 루트 사용자가 하루를 절약할 수 있도록 허용하면서 관리자가 비밀번호를 제공하도록 강제하는 데 도움이 될 수 있다고 믿습니다. 또한 현재 사용자는 휠 그룹의 구성원이므로 다음을 기반으로 관리 사용자로 식별되어야 합니다 /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불행히도 도움이 되지 않았습니다. 이 문제를 해결할 수 있는 방법이 있기를 바랍니다.

관련 정보