Las reglas de PolicyKit nunca entran en vigencia

12

Estoy tratando de escribir un nuevo .rulesarchivo para PolicyKit. Mi intento de prueba (en el directorio /etc/polkit-1/rules.d/) se ve así:

polkit.addRule(function(action, subject) {
    polkit.spawn(["rm","/home/gabriel/test"]);
    if (action.id == "org.freedesktop.policykit.exec") {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);
    }
    return polkit.Result.NOT_HANDLED;
});

Pero por lo que puedo decir, este código nunca se ejecuta. El testarchivo todavía está allí, y no hay salida de registro después de ejecutar algo como$ pkexec -u otheruser bash

(He intentado marcar los .rulesarchivos como ejecutables).

Keidax
fuente

Respuestas:

15

Si está en Ubuntu 19.04 (o inferior) , todavía está usando la versión anterior de PolKit, donde no hay archivos .rules sino solo archivos .pkla y .conf.

En el símbolo del sistema, haga:

pkaction --version

Si dice <0.106, entonces solo puede usar la sintaxis anterior.

Puede crear un archivo .pkla en /etc/polkit-1/localauthority/

Bart
fuente
1
Ubuntu 15.10 todavía está en la versión anterior. pkaction --versiondapkaction version 0.105
Roger Binns
55
¡Ubuntu 18.04 todavía lleva 0.105 !!!! ¡¡¡¡Oh mi!!!!
Osqui
1
¡E incluso ninguna versión 0.106+ está en repos para Ubuntu! ¡DIOS MIO!
Suncatcher
2
Ubuntu 19.04 pkaction version 0.105. Los nuevos archivos de reglas se escriben en JavaScript sin soporte.
Denis Denisov
0

Para trabajar como se espera, debe colocar sus propios .rulesarchivos en:

/usr/share/polkit-1/rules.d

Tenga en cuenta que también debería resolver esta pregunta .

Sylvain Pineau
fuente
Mover el archivo allí no pareció cambiar nada. Además, de acuerdo con los documentos de Polkit y la wiki de Arch , /etc/polkit-1/rules.ddeben usarse para la configuración del usuario. Así que no estoy seguro de la diferencia que hace cambiar los directorios.
Keidax
@Keidax: ¿cómo se llama su .rulesarchivo?
Sylvain Pineau
Actualmente/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax