1

I'm trying to debug a new PolicyKit rule that looks like this:

polkit.addRule(function(action, subject) {
    polkit.log("action=" + action);
    polkit.log("subject=" + subject);
    if (action.id == "org.freedesktop.udisks2.filesystem-unmount-others"){
        return polkit.Result.YES;
    }
});

But I can't find the output of the polkit.log() calls anywhere in /var/log/. I even tried adding a line to /etc/rsyslog.d/50-default.conf

*.*         /var/log/all

which produces lots of output, but not for polkit.log(). Where can I find the log messages for these calls?

Keidax
  • 771
  • 3
  • 9
  • 20

1 Answers1

2

From the policykit documentation:

The log() method writes the given message to the system logger prefixed with the JavaScript filename and line number. Log entries are emitted using the LOG_AUTHPRIV flag meaning that the log entries usually ends up in the file /var/log/secure. The log() method is usually only used when debugging rules. The Action and Subject types has suitable toString() methods defined for easy logging, for example,

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.policykit.exec") {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);
    }
});

will produce the following when the user runs pkexec -u bateman bash -i from a shell:

May 24 14:28:50 thinkpad polkitd[32217]: /etc/polkit-1/rules.d/10-test.rules:3: action=[Action id='org.freedesktop.policykit.exec' command_line='/usr/bin/bash -i' program='/usr/bin/bash' user='bateman' user.gecos='Patrick Bateman' user.display='Patrick Bateman (bateman)']
May 24 14:28:50 thinkpad polkitd[32217]: /etc/polkit-1/rules.d/10-test.rules:4: subject=[Subject pid=1352 user='davidz' groups=davidz,wheel, seat='seat0' session='1' local=true active=true]

This type of log events is usually found in /var/log/auth.log in Debian and its derivatives including Ubuntu.

Source: /var/log/secure not present in 14.04 ,is there any alternative?

Sylvain Pineau
  • 61,564
  • 18
  • 149
  • 183
  • I've tried that example, and can't get it to work. Also tested on a fresh Ubuntu VM. As far as I can tell, my `.rules` file is never being executed. Futhermore, the last entry I have in `/var/log/auth.log` is over two years old, which seems rather strange... – Keidax Oct 13 '14 at 14:24
  • 1
    @Keidax, it's another problem. But logs should be `/var/log/auth.log`. May I suggest to open a new question for your rules file never executed? – Sylvain Pineau Oct 13 '14 at 14:26
  • Alright, posted [here](http://askubuntu.com/q/536591/45425). – Keidax Oct 13 '14 at 15:24
  • 2
    This will not work. As of now (Ubuntu 19.04) and for the foreseeable future (19.10 betas), Ubuntu uses polkit 0.105. The javascript/ECMAscript rules were enabled on version 0.106. https://askubuntu.com/a/704062/10542 – Cliff Jun 28 '19 at 22:39