我已经看到最近的GNU / Linux正在使用ConsoleKit和PolicyKit.它们适用于什么?他们是如何工作的?
最好的答案应该解释每个人试图解决什么样的问题,以及他们如何设法解决它.
我是一个长期的GNU / Linux用户,从这样的事情不存在的时候开始.我一直在使用Slackware和最近的Gentoo.我是一名高级用户/管理员/开发人员,所以答案可以(并且应该!)尽可能详细和准确.我想了解这些东西是如何工作的,所以我可以使用它们(作为用户或作为开发人员)最好的方式.
解决方法:
简而言之,consolekit是一种跟踪用户会话(即用户登录的位置)的服务.它允许切换用户而无需注销(许多用户可以在一个用户激活的情况下同时登录同一硬件).它还用于检查会话是否是“本地的”,即用户是否可以直接访问硬件(可以认为它比远程访问更安全). ConsoleKit documentation.
PolicyKit允许在桌面环境中进行微调功能.传统上只允许特权用户(root)配置网络.然而,在服务器环境中,一个合理的假设是,例如,它不会被限制为不允许连接到笔记本电脑上的热点.但是,您可能仍然不想为此人提供完全权限(如安装程序)或者可能希望限制某些人的选项(例如,在您的子笔记本电脑上,只能使用具有父级过滤器的“可信”网络).据我记得它的作用如下:
>程序通过dbus向守护进程发送有关动作的消息
>守护程序使用PolicyKit库/配置(实际上是PolicyKit守护程序)来确定是否允许用户执行操作.可能会发生必须满足某些条件(如输入密码或硬件访问).
>守护进程根据它执行操作(返回auth错误或执行操作)
编辑目前ConsoleKit在很大程度上被logind取代,logind是systemd的一部分,尽管有独立版本elogind.