Polkit授权管理

 Polkit的配置:
  • 查看polkit服务:

           

一个是agent,一个是polkit服务;

  • agent包含监听接口和一个用户界面(对话窗口),允许用户输入密码。Authentication Agent API Reference是polkit提供的agent开发接口;
  • 授权规则(Authorization Rules),利用javascript实现,在/etc/polkit-1/rules.d或/usr/share/polkit-1/rules.d下,用于让应用程序添加授权规则,比如
polkit.addRule(function(action,subject)
{
if(subject.isInGroup("wheel")&&(action.id.indexOf("com.")==0))
{
    return polkit.Result.YES;
}
});

让所有的属于wheel组的用户且Action ID前缀为"com."的操作都不用输入密码。更详细的例子可以查看此目录下的规则文件。

  • 行为(Actions),在/usr/share/polkit-1/actions目录下,
org.freedesktop.consolekit.policy ——关机
org.freedesktop.NetworkManager.policy ——网络配置
org.freedesktop.policykit.policy ——决定pkexec的密码需求
org.freedesktop.udisks2.policy ——磁盘挂载
org.freedesktop.upower.policy ——挂起和休眠

文件中对每个action都有详细注解,要修改的地方主要是:

auth_admin
auth_admin
auth_self

 
  
设置取值有:
no 不通过验证
yes 通过验证(不用输入密码)
auth_self
以任意本地用户来验证
auth_admin 以管理员身份来验证
auth_self_keep
同auth_self,但在一段时间内保持认证(如5分钟)
auth_admin_keep
同auth_admin,但在一段时间内保持认证(如5分钟)

如下图所示(来自StartOS设备管理器的Actions文件):

 
  


注:整理自http://blog.sina.com.cn/s/blog_6640da97010155pk.html

PolicyKit百科:http://wiki.linux.org.hk/w/PolicyKit


你可能感兴趣的:(Linux系统)