policykit介绍

PolicyKit是一组应用程序级别的API,用来定义和处理让无特权的进程(即非root用户启动的进程)来处理一些特权的任务。凭借着即时而且完善的验证机制,应用程序将有很大的灵活性。一般情况下用户可以使用软件来做一些普通操作,当需要进行特权操作时,可以通过PolicyKit获取操作权限。
PolicyKit主要是通过dbus来进行的,是在dbus服务的基础上增强了policykit的配置文件来实现的。因此理论上只要是dbus服务就可以使用PolicyKit。从而让用户具备更多的操作权。
使用 policykit 一般都有一个dbus daemon程序去管理对应一系列的操作,当有程序来请求这些操作(方法)时,这个daemon程序会根据预先设定好的配置来确定是否要求额外的权限,需要额外的权限会去向libpolkit验证当前操作是否获得了权限,如果当前调用已经取得权限了,则调用顺利通过,否则返回无权限的提示或异常。