K.I.S.S. – 简单哲学 Linux, Freedom, Arch, Python, Gtk+, C … Keep It Simple, Stupid!

13三/092

使用 PolicyKit 进行身份认证(下)

的配置文件
分析完了 PolicyKit 的机制,我们来看一下它的配置文件是如何书写的。
的配置文件藏在哪里呢?我们来进入/usr/share//policy这个目录,怎么样,是不是看到很多.policy文件?(不要告诉我你没装 ……)
好的,打开其中的org.freedesktop.hal.storage.policy这个文件,你可能会看到下面的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD  Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards//1.0/policyconfig.dtd">

<policyconfig>

 <action id="org.freedesktop.hal.storage.mount-fixed">
 <description>Mount file systems from internal drives.</description>
 <message>System policy prevents mounting internal media</message>
 <defaults>
 <allow_inactive>no</allow_inactive>
 <allow_active>auth_admin_keep_always</allow_active>
 </defaults>
 </action>

 <action id="org.freedesktop.hal.storage.mount-removable">
 <description>Mount file systems from removable drives.</description>
 <message>System policy prevents mounting removable media</message>
 <defaults>
 <allow_inactive>no</allow_inactive>
 <allow_active>yes</allow_active>
 </defaults>
 </action>

</policyconfig>

我们来依次分析一下:

  id:id 是对  中 Action 的唯一标识,可以看到,各个域从大到小,用圆点分隔。从下图我们可以看出,这是一种树形结构。

policykit_tree.png

description:这个是注释,没什么好说的,让读配置文件的人知道这个选项的意义。  message:这个就是前面提到的说明字符串了,强烈推荐写上,让使用者明白他在验证什么操作,以免引发安全隐患。  defaults:关键的地方到了!这里可以写上对于请求者是否为活动状态的三种情况(allow_any、allow_inactive、allow_active)返回的值。  可以返回的值有以下几种:
      no
      auth_self_one_shot
      auth_self
      auth_self_keep_session
      auth_self_keep_always
      auth_admin_one_shot
      auth_admin
      auth_admin_keep_session
      auth_admin_keep_always
      yes

这个实在没有什么可说的,它们的作用从字面上理解就可以了……如果不懂还是好好学学英语吧……

好了,说了这么多,可能大家还是不知道怎么使用 编程吧?其实最简单的办法还是看手册啊!什么,你想要例子?看下这里吧!呵呵,相信懂得原理的你,再看这个例子的时候就不会那么吃力,很快就能应用 进行编程了吧?

(全文完)

转载请注明:转自K.I.S.S. - 简单哲学 - 使用 PolicyKit 进行身份认证(下)

分享家:Addthis中国

你可能对这些感兴趣:

  1. 使用 PolicyKit 进行身份认证(上)
  2. 正在学习 PolicyKit !
  3. 使用 PolicyKit 进行身份认证(中)
  4. 我的GNOME会话登录也完美了!
  5. 用vim格式化代码

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

评论 (2) 引用 (0)
  1. 认证是搞定了
    可是权限还是没有提升啊!
    认证一般不就是为了做一些root才能作的事么?
    权限没上去,认证不是白搭吗?

    [回复]

    Iven Day 回复:

    权限提升是靠 DBus 的服务来搞定的,两者配合使用才好。

    [回复]


发表评论


还没有引用.