什么是ConsoleKit和PolicyKit?它们如何工作?


42

我已经看到最近的GNU / Linux正在使用ConsoleKit和PolicyKit。他们是干什么的?它们如何工作?

最好的答案应该解释每个人试图解决什么样的问题,以及他们如何设法解决。

我是一个长期的GNU / Linux用户,从不存在这样的东西开始。我一直在使用Slackware和最近的Gentoo。我是一位高级用户/管理员/开发人员,所以答案可以(应该!)尽可能详尽和准确。我想了解这些东西是如何工作的,因此我可以(作为用户或开发人员)以最佳方式使用它们。

Answers:


24

简而言之,consolekit是一项跟踪用户会话(即用户登录的位置)的服务。它允许切换用户而无需注销(许多用户可以在一个用户处于活动状态的同时,在同一硬件上登录)。它还用于检查会话是否为“本地”,即用户是否可以直接访问硬件(可能比远程访问更安全)。ConsoleKit文档

PolicyKit允许在桌面环境中微调功能。传统上,只允许特权用户(root)配置网络。但是,在服务器环境中,有一个合理的假设,那就是限制范围太广,例如不允许连接到笔记本电脑上的热点。但是,您可能仍不希望授予此人完整的特权(例如安装程序),或者可能希望限制某些人的选项(例如,在您的儿童笔记本电脑上,只能使用带有父母筛选器的“受信任”网络)。据我所知,它的工作方式如下:

  • 程序通过dbus将消息发送给守护程序有关操作的信息
  • 守护程序使用PolicyKit库/配置(实际上是PolicyKit守护程序)来确定是否允许用户执行操作。有可能必须满足某些条件(例如输入密码或硬件访问权限)。
  • 守护程序根据它执行操作(返回验证错误或执行操作)

PolicyKit文档

当前,虽然有独立版本的elogind,但EDIT现在仍将 ConsoleKit替换为systemd的一部分,这在很大程度上取代了ConsoleKit 。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.