1

Я пытаюсь получить cryptsetup luksOpen разрешений, без рута (sudo) через polkit. Я написал это правило:

// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
polkit.addRule(function(action, subject) {
    if (subject.isInGroup !== 'wheel')
        return undefined;

    var actionMatches = (action.id === 'org.freedesktop.udisks.luks-unlock');

    if (actionMatches) {
        if (subject.local)
        if (subject.isInGroup("wheel"))
            return polkit.Result.YES;
            else
                return 'auth_admin';
    }

    return undefined;
});

Что должно позволить всем пользователям, которые являются локальными и находящимися в группе колес, делать 'org.freedesktop.udisks.luks-unlock'. Но когда я запускаю pkaction -a org.freedesktop.udisks.luks-unlock я получаю сообщение об ошибке, что действие отсутствует в списке. Я сохранил правило в /etc/polkit-1/rules.d/, я использую Fedora и выполнил restorecon -R в папке polkit, чтобы убедиться, что применяются метки SELinux. journalctl -eu polkit.service отображает ошибок при перезапуске polkit, а также при запуске pkexec --user $user cryptsetup -v luksOpen $crypted_container $preferred_mount_name . Выполнение этой команды также приводит к ошибкам разрешения. Какие-либо предложения?

0