Я пытаюсь получить 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
. Выполнение этой команды также приводит к ошибкам разрешения. Какие-либо предложения?