我正在尝试调试一条如下所示的新 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)中发现。