PolicyKit 日志输出的位置

PolicyKit 日志输出的位置

我正在尝试调试一条如下所示的新 PolicyKit 规则:

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

polkit.log()但我在任何地方都找不到调用的输出/var/log/。我甚至尝试在/etc/rsyslog.d/50-default.conf

*.*         /var/log/all

它会产生大量输出,但不会polkit.log()。我在哪里可以找到这些调用的日志消息?

答案1

来自政策工具包文档:

log()方法将给定的消息以 JavaScript 文件名和行号为前缀写入系统记录器。使用标志发出日志条目,LOG_AUTHPRIV这意味着日志条目通常最终出现在文件中/var/log/secure。该log()方法通常仅在调试规则时使用。Action 和 Subject 类型已toString()定义适当的方法以方便记录,例如,

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

当用户pkexec -u bateman bash -i从 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]

/var/log/auth.log这种类型的日志事件通常在 Debian 及其衍生产品(包括 Ubuntu)中发现。

来源:/var/log/secure 在 14.04 中不存在,还有其他替代方案吗?

相关内容