pmwiki 权限分四个等级 Admin(超级用户) > Page(页面) > Group(组) > Site(全站)
也就是说如果一个页面Page 设置了权限,那么Group 权限设置和Site 权限设置都将失效,如果Page 中没有进行权限设置,那么Group 权限将对Page 起作用,在没有Page 和Group 权限设置的情况下Site 权限才对Page 起作用.如果Page/Group/Site 都没有对相应权限做设置则无需密码.Admin 超户可以对任何权限进行操作.
Admin(超级用户)密码在config.php 中设置
$DefaultPasswords['admin'] = crypt('admin_password');/网站管理员密码
Site(全站通用)密码在config.php 中设置
$DefaultPasswords['read'] = array('read_password');/浏览页面密码
$DefaultPasswords['edit'] = crypt('edit_password');/编辑页面密码
$DefaultPasswords['attr'] = crypt('attr_password');/属性更改密码
$EnableUpload = 1; /是否允许上传附件
$DefaultPasswords['upload'] = crypt('upload_password');/上传附件密码
Group(组)密码在组的GroupAttributes(组属性)页面中设置
http://www.example.com/pmwiki.php?n=GroupName.GroupAttributes?action=attr 命令建立一个组属性Page ,这是一个特殊的页面,里面不用写任何内容,只要设置它的页面属性就等于整个组的属性了.
Page(页面)在当前页面设置
http://www.example.com/pmwiki.php?n=GroupName.PageName?action=attr 命令编辑当前页权限.
每个操作也可以有多个密码,在config.php写成数组,例如:
$DefaultPasswords['read'] = array(crypt('alpha'), crypt('beta'));
如果在属性设置的时候要设置多个密码,可以在密码中间用空格格开.
密码加密
在config.php 中的密码如果用明文方式存放并不安全,可以对任何字符串进行加密后再写入config.php 文件中.在任何pmwiki路径后面加上 ?action=crypt 然后输入你想要的密码,会返回一串加密后的字符串,把这串字符串代替上面的明文密码起到加密作用.
两个特殊密码nopass 和clear
要删除Page 或者Group 的密码不能用留空或者输入空格的方式修改,留空或输入空格是表示保留原来密码.这时候我们要用到pmwiki 的两个特殊密码nopass 和clear .比如用nopass 作为Page 的密码,则表示无需密码就可对Page 进行操作;如果用clear 作为密码输入,则表示放弃控制权限,交由Group 控制.如果Group 的密码为clear 则由Site 控制.
添加用户和密码,在config.php 中加入一行
include_once('scripts/authuser.php');
然后把用户名和密码用以下格式添加在config.php 中
$AuthUser['User_Name'] = crypt('User_Password');
给用户赋予操作权限
$DefaultPasswords['edit'] = 'id:*';/给所有注册用户赋予编辑的权限
$DefaultPasswords['edit'] = 'id:bart,nancy';/只给id为bart 和 nancy 的用户赋予edit 权限
$DefaultPasswords['edit'] = array(crypt('Zebra'), 'id:*');/给所有知道Zebra 这个公用密码或所有注册用户予编辑权限
$DefaultPasswords['edit'] = array(crypt('Zebra'), 'id:bart,nancy');/给bart 和 nancy 或者所有知道Zebra 这个密码的人赋予修改的权限