VisualSvn权限控制
组权限交叉问题
如果在权限设置中出现这样的问题: 用户U在组G1和组G2中都有设置,同时对于同一个项目, G1和G2被安排的权限是不同的,此时用户U的权限是取2 组中权限的较大值。权限大小如下: No Access< Read Only< Read Only< Read / Write 用户U在组G1和组G2中都有设置,同时G1对父节点有权限 设置,G2对子节点也有权限设置,但是设置的不同,这时 U对子节点的操作的权限是根据G2的设置,而不管权限值 的大小。 用户U在组G1和组G2中都有设置,G1和G2对父节点的权限 设置是Ga和Gb,Ga>Gb那么U对父节点的操作权限是Ga, 而如果G2又对父节点下的一个子节点又设置了权限Gb (看似多余的操作)此时U对子节点的操作权限即是Gb (如果不设置则仍是Ga)。
组管理
点击Add按钮,可以在该组中添加成员,在 添加成员时,不仅能加入用户,同时也能加 入其他组。
权限分配操作
左侧选择要分配权限的项目,右键出菜单,选择Manage Security选项,可以在权限分配窗口中对用户进行权限分配。 点击Add按钮可以添加用户或组。然后在下方选择对于的 权限
权限分配的粒度
ቤተ መጻሕፍቲ ባይዱ
开发环境权限分配设计
针对权限变动不频繁的组如部署组和admin,可以在权限 分配时一次性地分配完成,日后个别人如有变化可以在这 些组的组成员中进行操作。 权限变动频繁的如开发组,可以直接通过authz文件来操作, 但是在操作前必须将原有的权限分配删除(可以在文件中 对应的该权限行前加#表示注释)以免出现解析不错。 对于guest用户试情况分配read权限和none权限,guest组 的权限分配不会像开发组那样频繁但一定也会有所调动, 而guest组的成员也会变更。
VisualSvn中权限分配的粒度跨度包括了svn服务器中所管理的 所有项,但是同时权限又是继承的即子节点的权限是基础于 父节点,svn节点类型: 1. 总库: 在总库下可以添加各个库,如现用的 mu2bc就是总库下的一个库。 2. 库: 在库下可以管理文件夹和文件。 3. 文件夹: 子文件夹的权限是与父文件夹相同的。 4. 文件:svn权限控制的最小粒度,可以对文件单独设置权 限 注:如果子节点的权限和父节点不同,则子节点的图标左上 角会出现*号。
权限类型
VisualSvn的权限类型分为4种: 1. Inherit from parent(Read/Write):权限和父节点的权限相 同,左右的子节点默认权限。 2. No Access:没有任何权限,用户无法将文件下载到本地。 3. Read Only:只读,用户只能从服务器将文件下载到本地, 无法将修改提交到服务器。 4. Read / Write:读写,用户可以从本地将修改提交到服务 器。
开发环境权限分配设计
这里的权限分配是指对库mub2c的维护,在没有特殊要求下, 不对其他库的权限进行修改。 将组大致分为四类: Administrator:对所有的代码、文件具有读写权限,改组 中的人员应该应及时收回。 Guest:对所有代码、文件只有读权限 部署组:只对配置文件具有读写权限,且一般情况下配置 文件也只对是在特殊或紧急情况下加入,对其开放所有权 限,事后部署组可写;对其他文件只读。 开发组:对代码读写,但是不能将配置文件的修改上传服 务器。在开发组下还可安装开发不同部分代码设置权限, 使开发人员只能提交自己负责的代码。
VisualSvn管理权限的实质
Svn服务器端权限的管理都是通过htpasswd、 authz这个2个文 件来配置的,其中htpasswd是用来管理用户和用户的秘密, authz则是用来管理组和权限的分配。 而VisualSvn则是通过图形化的方法来配置这2个文件,即如果 想批量化地管理一个较复杂的权限分配,而不想在图形界面 上一个个的设置过来,可先设计好父节点和子节点的相关关 系,然后通过程序来实现。 对authz文件编辑时须注意问题: 1. 已经删除的组不能被分配权限,不然会导致文件解析出 错。 2. svn对于非英文文件名和目录名使用utf-8格式编码处理, 要对中文目录进行正确控制,应该使用无BOM的utf-8格 式,如果在编辑中格式出现错误,svn无法解析。
VisualSvn权限控制
VisualSvn是简便化的svn服务器端,能通过图 形化的方式方便地配置用户、用户组、以及对 文件的权限控制。
用户管理
在左侧的Users上点击右键:
这样就新建了一个新用户。
组管理
为了方便对于用户权限的设置,可以将具有 相同性质的用户统一分配入一组中,这样在 对权限进行分配时只需对组进行操作,而不 用一个个地对用户操作。 通过如下操作可以新建、编辑组成员: