svn权限设置

svn权限设置,第1张

一、为了保障高安全系数,必须设置匿名用户无任何权限,取消匿名登录

找到:  SVN安装目录\conf\svnserve.conf

找到:###anon-access = read

将前面的注释去掉,并将read改为:none

即使:anon-access=none表示匿名登陆下的用户权限为空。即:系统不支持匿名登陆

说明:

anon-access = read匿名登陆下可以只读文件,即:文件修改后无法提交到服务器,一般不想让匿名用户访问,所以设置成none。

auth-access = write通过验证的用户可以读和写

password-db =password用户保存文件的名称

authz-db =authz权限管理文件 这个是非常重要的,如果我们要对整个工程的文件进行权限分配的时候,就必须将这个行文件前面注释掉,否则即使我们在权限配置文件里面进行再多的配置都是无效的。

二、权限分配

然后我们在authz文件下面进行权限的分配

找到:  SVN安装目录\conf\authz

权限文件中有两个重要的概念分别是groups组的创建(红色部分)与文件夹权限的划分(绿色部分)

注:书写要领

等于号两侧必须有空格

权限说明:

r = read读

w = write写(写即包含读的权限)

* =代表上述人物以外的人物权限什么都不能做

/代表根目录

1.描述组的权限时,在组名前加@

2.组内人数大于2人时,最后一人账户名称前不用加&(我曾经加过且无法登陆)

3.根目录下有多个文件夹,且分别对每个文件夹进行权限设定时,不要忘记根目录至少设定r权限,否则会因为权限冲突导致无法登陆

当变更该配置文件后,若未出现登录对话框,直接出现下图,则意味着权限配置有冲突,需要调整

Subversion是一种集中式的版本控制系统,一般被简称为SVN。作为目前可用的众多版本控制选项之一,SVN依旧存在着分支功能弱、集中式导致服务器压力大等问题。

如果您的需求已经超过SVN所提供的功能范围应该怎么办?龙智将在系列文章中为您提供其他版本控制软件的实践参考。我们将从为什么使用SVN、命令备忘录清单、托管储存库、如何使用客户端等角度对比Perforce Helix Core、SVN与Git,让您能够深入了解各个版本控制软件的优缺点。

作为DevSecOps研发安全运营一体化解决方案供应商,龙智持续关注DevSecOps领域的动态与发展,集成世界主流工具,帮助企业实现研发安全运营一体化。

正确管理SVN储存库非常重要。让我们先介绍一下它的基本知识。

什么是Subversion储存库

Subversion储存库(通常缩写为SVN储存库)是一个填充了代码、文件和其他项目资产的数据库。SVN储存库保存了以前所有变更的完整历史记录。

SVN储存库概述

SVN储存库用于存储您的代码及其历史记录。

根据托管的服务器,您可以通过多种方式访问储存库:

来自组织的内部服务器(本地)。

来自外部web客户端(SaaS云服务器)。

开发团队具备用于一个或多个本地签出请求的中央SVN储存库。一旦所有变更准备就绪,可以将任何变更代码立即返还至中央储存库。

您是否应该托管SVN储存库?

对于希望托管服务处理SVN储存库的团队来说,SVN托管可能是一个很好的选择。SVN托管服务允许您:

在云中创建储存库

管理其访问权限

从内部服务器控制一切

避免维护和管理成本

随着团队优先考虑开发而不是增加IT基础设施和成本,云托管服务正变得越来越受欢迎。

Subversion托管选项

您最好的Subversion托管工具是Helix TeamHub。

对于致力于优秀SVN web客户端托管的团队,Helix TeamHub是一个直观的托管解决方案。大多数团队可以在几分钟内建立Helix TeamHub企业帐户。此外,对于拥有SVN和Git储存库的团队,Helix TeamHub允许您将它们与工件一起存储在一个项目中。

尽管Helix TeamHub是一个直观的SVN托管解决方案,但它并不能解决很多团队在使用SVN时所面临的问题。我们从很多以前曾使用过SVN的客户得到的反馈信息是,

1、本文档适用于对Subvesion的自带服务svnserve进行权限配置,全部在authz文件中完成。

2、如果要对含有中文的目录或文件进行管理或分配时,需要将该文件保存为UTF-8格式,微软的记事本保存为UTF-8格式无效,所以不要用。可用如UltraEdit或EditPlus等软件完成,保存时,格式应选择UTF-8 NO BOM。

3、权限分配时,应遵守从根目录到子目录、从设置最广泛权限到最精细权限、从只读权限到读写权限设置原则,即从根目录开始设置最广泛的访问权限,然后逐步设置下属子目录的访问权限。提示:目录的访问权限既可以分配给组,也可以分配指定用户。

现举例进行说明:

启动服务:服务应指向所有版本库的根目录,本例中为D:\SVN,命令如下:

sc create SVNService binpath= "D:\Subversion\bin\svnserve.exe --service -r D:/SVN" displayname= "SVNService" depend= Tcpip start= auto

项目情况:D盘根目录下有一个文件夹SVN,在该文件夹中有jsyxv3、svntest两个版本库(可以有更多个),这些版本库共享使用同一个权限配置文件,目录结构如下:

D:\SVN

|---jsyxv3(项目一,子目录略)

|---svntest(项目二,子目录略)

|---authz(共享的权限配置文件)

|---passwd(共享的密码文件)

#=====配置开始=====

#分组:

[groups]

group_admin = wws,aaa,bbb

group_user1 = sj,ccc

group_user2 = sy,dd,eeee

group_user3 = lxt

group_user4 = ss

#设置对根(即SVN)目录下,所有版本库的访问权限

[/]

* = r#所有登录用户默认权限为只读

@group_admin = rw #可以分配给组,该组有读写权限

wws = rw#也可以像这样分配给指定用户

#以下将对各版本库的及其目录进行权限分配

[jsyxv3:/]#设置对jsyxv3版本库中,所有项目的访问权限

* = #未授权用户没有任何权限

@group_user1 = rw

[jsyxv3:/程序管理]#设置对jsyxv3版本库中程序管理目录的访问权限

* = #未授权用户没有任何权限

@group_user2 = rw

[jsyxv3:/项目管理]#设置对jsyxv3版本库中项目管理目录的访问权限

* = #未授权用户没有任何权限

@group_user3 = rw

[svntest:/]#设置对svntest版本库中,所有项目的访问权限

* = #未授权用户没有任何权限

@group_user1 = rw

[svntest:/程序管理]#设置对svntest版本库中程序管理目录的访问权限

* = #未授权用户没有任何权限

@group_user2 = rw

@group_user3 = rw

[svntest:/项目管理]#设置对svntest版本库中项目管理目录的访问权限

* = #未授权用户没有任何权限

@group_user4 = rw

#=====配置结束=====

4、最后重要提示:

4.1启动的服务与客户端检出的关系:

4.1.1 如果启动的服务指向一个具体的版本库,如红字部分描述:

sc create SVNService binpath= "D:\Subversion\bin\svnserve.exe --service -r D:/SVN/svntest" displayname= "SVNService" depend= Tcpip start= auto

则客户端检出的地址应为:svn://192.168.0.1/

4.1.2 如果启动的服务指向的是多个版本库的父目录,如红字部分描述:

sc create SVNService binpath= "D:\Subversion\bin\svnserve.exe --service -r D:/SVN" displayname= "SVNService" depend= Tcpip start= auto

则客户端检出的地址应为:svn://192.168.0.1/svntest

4.2如果权限管理完成时,对各版本库还未完成导入工作,请记得使用对SVN目录有读写权限的用户身份进行 *** 作,否则有可能会提示 *** 作失败(因为权限不够)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9883405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存