“Mediawiki用户权限管理”的版本间的差异

来自产品维基百科
跳转至: 导航搜索
(创建页面,内容为“https://blog.csdn.net/wzq9706/article/details/8575900”)
 
 
第1行: 第1行:
 +
 +
 +
 +
几百人在爱
 +
 +
2013-02-07 阅读数:3070
 +
 +
关注
 +
一.分配权限给用户,手动修改用户组
 +
 +
自1.5版本以后,用户可以通过页面Special:Userrights管理分配用户权限.即通过审请加入组的方式来赋给用户权限.如果要让组具有比sysop更高的权限那么就需要通过SQL来手工修改了.(通常不需要这样做)
 +
 +
手动操作的话,需要分二步聚来操作.
 +
1.取得用户编号.(用户编号user_id通常来标识这个用户)
 +
2.将用户加入到指定的用户组
 +
 +
#查看用户名称相对应的用户编号
 +
mysql> select user_id from user where user_name = ‘Admin’;
 +
+———+
 +
| user_id |
 +
+———+
 +
|    1 |
 +
+———+
 +
1 row in set (0.00 sec)
 +
 +
#通过用户编号把用户加入到相应的组当中,组名为sysop
 +
mysql> insert into user_groups (ug_user, ug_group) values (1, ’sysop’);
 +
Query OK, 1 row affected (0.00 sec)
 +
 +
#其它相关操作
 +
#查看指定用户拥用少用户组,假设用户编号为1
 +
mysql> select * from user_groups where ug_user = 1;
 +
+———+———-+
 +
| ug_user | ug_group |
 +
+———+———-+
 +
|    1 | sysop |
 +
+———+———-+
 +
1 row in set (0.00 sec)
 +
 +
#查看现有拥有多少个用户组
 +
mysql> select distinct ug_group from user_groups;
 +
+————+
 +
| ug_group |
 +
+————+
 +
| bureaucrat |
 +
| proj    |
 +
| projmgr |
 +
| sysop    |
 +
+————+
 +
4 rows in set (0.02 sec)
 +
 +
#查看组只有多少用户,假设组名为sysop
 +
mysql> select user_id,user_name from user_groups left join user on ug_user= user_id where ug_group = ’sysop’;
 +
+———+———–+
 +
| user_id | user_name |
 +
+———+———–+
 +
|    1 | Admin    |
 +
|    24 | Test    |
 +
+———+———–+
 +
2 rows in set (0.00 sec)
 +
 +
*红字字体表示要替换成你自己的内容
 +
*表名,必须加入前缀
 +
*以上sql语句,可以在phpMyAdmin中执行
 +
 +
二.管理组权限
 +
 +
要编辑(修改)用户组(已存在的组或者添加的组)的访问级别(权限).只需要在LocalSetting.php中添加相应的PHP语句.来设定一个用户组是否持有还是没有某个用户权限.实例如下
 +
1.禁止匿名用户注册账号
 +
$wgGroupPermissions[’*'][’createaccount’] = false;
 +
2.用户必须登入系统后才能编辑页面.即,没有登入的用户不能编辑页面
 +
$wgGroupPermissions[’*'][’edit’] = false;
 +
3.建立一个新的组,并设置这个组拥有删除页面的权限
 +
$wgGroupPermissions[’webadmin’][’delete’] = true;
 +
 +
在这里,有必要解释一下用户,组,权限.以及他们是怎么相互起作用,相互关联的.
 +
 +
*用户和权限并没有直接的关系.用户与权限的关系是通过用户组间接赋给用户的.
 +
*用户和用户组有直接关系.一个用户至少属于一个组,也可以同时属于多个组.用户随着时间和所属组的数量的不同来决定用户的访问级别.比如,用户在登入系 统前属与用户组*,而在登入系统之后属于用户组User.同时用户还可以加入到不同的组,比如加入到sysop组,那么用户就会拥用sysop所具备的所 有权限.
 +
*一个用户组可以有多个用户.用户组和用户是多对多的关系,也就是一个用户可以有多个组,一个组也可以有多个用户.一个组可以开启多种权限.并且把开启的权限交给用户去使用.比如
 +
下面二个用户组
 +
webadmin {delete,new,edit,read,move}
 +
commongroup {read,update}
 +
三个用户:UserA , UserB, UserC
 +
UserA加入了组webadmin
 +
UserB加入了组commongroup
 +
UserC加入了组webadmiin和组commongroup
 +
那么UserA拥有权限delete,new,edit,read,move
 +
那么UserB拥用权限read,update
 +
那么UserC拥用权限delete,new,edit,read,move,update
 +
 +
结合上面的分析,可以知道下面语句的含意
 +
$wgGroupPermissions[’webadmin’][’delete’] = true;
 +
第一对中括号包含的webadmin表示组名
 +
第二对中括号包含的delete表示权限名称
 +
值true或者false,表示是否分配权限给组.如果分配则表示true,如果关闭则用false
 +
 +
三.MediaWiki默认开启的组权限
 +
 +
以MediaWiki1.8为参考.在include/DefaultSetting.php可以找到.
 +
$wgGroupPermissions = array();
 +
 +
// 组*表示所有的访问用户,还没有Loginned的用户
 +
$wgGroupPermissions[’*' ][’createaccount’] = true; //免费注册
 +
$wgGroupPermissions[’*' ][’read’]          = true; //浏览页面
 +
$wgGroupPermissions[’*' ][’edit’]          = true; //编辑页面
 +
$wgGroupPermissions[’*' ][’createpage’]    = true; //新建词条
 +
$wgGroupPermissions[’*' ][’createtalk’]    = true; //新建讨论页面
 +
// 组user表示所有注册用户,并且液态为Loggined
 +
$wgGroupPermissions[’user’ ][’move’]          = true; //移动页面
 +
$wgGroupPermissions[’user’ ][’read’]          = true; //浏览页面
 +
$wgGroupPermissions[’user’ ][’edit’]          = true; //编辑页面
 +
$wgGroupPermissions[’user’ ][’createpage’]    = true; //新建词条
 +
$wgGroupPermissions[’user’ ][’createtalk’]    = true; //新加讨论action=eidt&section=new
 +
$wgGroupPermissions[’user’ ][’upload’]      = true; //上传文件
 +
$wgGroupPermissions[’user’ ][’reupload’]        = true; //重复上传
 +
$wgGroupPermissions[’user’ ][’reupload-shared’] = true;
 +
$wgGroupPermissions[’user’ ][’minoredit’]    = true;
 +
//sysop组,进入该用户的有着最大的管理Wiki站点的权限
 +
$wgGroupPermissions[’sysop’][’block’]          = true; //封闭ip
 +
$wgGroupPermissions[’sysop’][’createaccount’] = true; //创建用户
 +
$wgGroupPermissions[’sysop’][’delete’]      = true; //删除页面
 +
$wgGroupPermissions[’sysop’][’deletedhistory’]  = true; //删除历史
 +
$wgGroupPermissions[’sysop’][’editinterface’] = true; //编辑系统界面Special:Allmessages
 +
$wgGroupPermissions[’sysop’][’import’]      = true; //导入页面
 +
$wgGroupPermissions[’sysop’][’importupload’] = true;
 +
$wgGroupPermissions[’sysop’][’move’]          = true; //移动页面
 +
$wgGroupPermissions[’sysop’][’patrol’]      = true;
 +
$wgGroupPermissions[’sysop’][’protect’]      = true; //保护页面
 +
$wgGroupPermissions[’sysop’][’proxyunbannable’] = true;
 +
$wgGroupPermissions[’sysop’][’rollback’]        = true; //
 +
$wgGroupPermissions[’sysop’][’trackback’]    = true;
 +
$wgGroupPermissions[’sysop’][’upload’]      = true; //上传文件
 +
$wgGroupPermissions[’sysop’][’reupload’]        = true;
 +
$wgGroupPermissions[’sysop’][’reupload-shared’] = true;
 +
$wgGroupPermissions[’sysop’][’unwatchedpages’] = true; //解除监视页面
 +
$wgGroupPermissions[’sysop’][’autoconfirmed’] = true; //
 +
//burreaucrat组,属于这个组的用户,有权限改变组的权限.
 +
$wgGroupPermissions[’bureaucrat’][’userrights’] = true; //用户权限管理
 +
 +
*要关闭默认开启的权限只需要从在LocalSetting.php修改他的值为false比如
 +
$wgGroupPermissions[’*' ][’edit’]          = false;
 +
$wgGroupPermissions[’user’ ][’move’]          = false;
 +
 +
 
https://blog.csdn.net/wzq9706/article/details/8575900
 
https://blog.csdn.net/wzq9706/article/details/8575900

2019年12月7日 (六) 11:17的最新版本


几百人在爱

2013-02-07 阅读数:3070

关注 一.分配权限给用户,手动修改用户组

自1.5版本以后,用户可以通过页面Special:Userrights管理分配用户权限.即通过审请加入组的方式来赋给用户权限.如果要让组具有比sysop更高的权限那么就需要通过SQL来手工修改了.(通常不需要这样做)

手动操作的话,需要分二步聚来操作. 1.取得用户编号.(用户编号user_id通常来标识这个用户) 2.将用户加入到指定的用户组

#查看用户名称相对应的用户编号 mysql> select user_id from user where user_name = ‘Admin’; +———+ | user_id | +———+ | 1 | +———+ 1 row in set (0.00 sec)

#通过用户编号把用户加入到相应的组当中,组名为sysop mysql> insert into user_groups (ug_user, ug_group) values (1, ’sysop’); Query OK, 1 row affected (0.00 sec)

  1. 其它相关操作
  2. 查看指定用户拥用少用户组,假设用户编号为1

mysql> select * from user_groups where ug_user = 1; +———+———-+ | ug_user | ug_group | +———+———-+ | 1 | sysop | +———+———-+ 1 row in set (0.00 sec)

#查看现有拥有多少个用户组 mysql> select distinct ug_group from user_groups; +————+ | ug_group | +————+ | bureaucrat | | proj | | projmgr | | sysop | +————+ 4 rows in set (0.02 sec)

#查看组只有多少用户,假设组名为sysop mysql> select user_id,user_name from user_groups left join user on ug_user= user_id where ug_group = ’sysop’; +———+———–+ | user_id | user_name | +———+———–+ | 1 | Admin | | 24 | Test | +———+———–+ 2 rows in set (0.00 sec)

*红字字体表示要替换成你自己的内容 *表名,必须加入前缀 *以上sql语句,可以在phpMyAdmin中执行

二.管理组权限

要编辑(修改)用户组(已存在的组或者添加的组)的访问级别(权限).只需要在LocalSetting.php中添加相应的PHP语句.来设定一个用户组是否持有还是没有某个用户权限.实例如下 1.禁止匿名用户注册账号 $wgGroupPermissions[’*'][’createaccount’] = false; 2.用户必须登入系统后才能编辑页面.即,没有登入的用户不能编辑页面 $wgGroupPermissions[’*'][’edit’] = false; 3.建立一个新的组,并设置这个组拥有删除页面的权限 $wgGroupPermissions[’webadmin’][’delete’] = true;

在这里,有必要解释一下用户,组,权限.以及他们是怎么相互起作用,相互关联的.

*用户和权限并没有直接的关系.用户与权限的关系是通过用户组间接赋给用户的. *用户和用户组有直接关系.一个用户至少属于一个组,也可以同时属于多个组.用户随着时间和所属组的数量的不同来决定用户的访问级别.比如,用户在登入系 统前属与用户组*,而在登入系统之后属于用户组User.同时用户还可以加入到不同的组,比如加入到sysop组,那么用户就会拥用sysop所具备的所 有权限. *一个用户组可以有多个用户.用户组和用户是多对多的关系,也就是一个用户可以有多个组,一个组也可以有多个用户.一个组可以开启多种权限.并且把开启的权限交给用户去使用.比如 下面二个用户组 webadmin {delete,new,edit,read,move} commongroup {read,update} 三个用户:UserA , UserB, UserC UserA加入了组webadmin UserB加入了组commongroup UserC加入了组webadmiin和组commongroup 那么UserA拥有权限delete,new,edit,read,move 那么UserB拥用权限read,update 那么UserC拥用权限delete,new,edit,read,move,update

结合上面的分析,可以知道下面语句的含意 $wgGroupPermissions[’webadmin’][’delete’] = true; 第一对中括号包含的webadmin表示组名 第二对中括号包含的delete表示权限名称 值true或者false,表示是否分配权限给组.如果分配则表示true,如果关闭则用false

三.MediaWiki默认开启的组权限

以MediaWiki1.8为参考.在include/DefaultSetting.php可以找到. $wgGroupPermissions = array();

// 组*表示所有的访问用户,还没有Loginned的用户 $wgGroupPermissions[’*' ][’createaccount’] = true; //免费注册 $wgGroupPermissions[’*' ][’read’] = true; //浏览页面 $wgGroupPermissions[’*' ][’edit’] = true; //编辑页面 $wgGroupPermissions[’*' ][’createpage’] = true; //新建词条 $wgGroupPermissions[’*' ][’createtalk’] = true; //新建讨论页面 // 组user表示所有注册用户,并且液态为Loggined $wgGroupPermissions[’user’ ][’move’] = true; //移动页面 $wgGroupPermissions[’user’ ][’read’] = true; //浏览页面 $wgGroupPermissions[’user’ ][’edit’] = true; //编辑页面 $wgGroupPermissions[’user’ ][’createpage’] = true; //新建词条 $wgGroupPermissions[’user’ ][’createtalk’] = true; //新加讨论action=eidt&section=new $wgGroupPermissions[’user’ ][’upload’] = true; //上传文件 $wgGroupPermissions[’user’ ][’reupload’] = true; //重复上传 $wgGroupPermissions[’user’ ][’reupload-shared’] = true; $wgGroupPermissions[’user’ ][’minoredit’] = true; //sysop组,进入该用户的有着最大的管理Wiki站点的权限 $wgGroupPermissions[’sysop’][’block’] = true; //封闭ip $wgGroupPermissions[’sysop’][’createaccount’] = true; //创建用户 $wgGroupPermissions[’sysop’][’delete’] = true; //删除页面 $wgGroupPermissions[’sysop’][’deletedhistory’] = true; //删除历史 $wgGroupPermissions[’sysop’][’editinterface’] = true; //编辑系统界面Special:Allmessages $wgGroupPermissions[’sysop’][’import’] = true; //导入页面 $wgGroupPermissions[’sysop’][’importupload’] = true; $wgGroupPermissions[’sysop’][’move’] = true; //移动页面 $wgGroupPermissions[’sysop’][’patrol’] = true; $wgGroupPermissions[’sysop’][’protect’] = true; //保护页面 $wgGroupPermissions[’sysop’][’proxyunbannable’] = true; $wgGroupPermissions[’sysop’][’rollback’] = true; // $wgGroupPermissions[’sysop’][’trackback’] = true; $wgGroupPermissions[’sysop’][’upload’] = true; //上传文件 $wgGroupPermissions[’sysop’][’reupload’] = true; $wgGroupPermissions[’sysop’][’reupload-shared’] = true; $wgGroupPermissions[’sysop’][’unwatchedpages’] = true; //解除监视页面 $wgGroupPermissions[’sysop’][’autoconfirmed’] = true; // //burreaucrat组,属于这个组的用户,有权限改变组的权限. $wgGroupPermissions[’bureaucrat’][’userrights’] = true; //用户权限管理

*要关闭默认开启的权限只需要从在LocalSetting.php修改他的值为false比如 $wgGroupPermissions[’*' ][’edit’] = false; $wgGroupPermissions[’user’ ][’move’] = false;


https://blog.csdn.net/wzq9706/article/details/8575900