SVN服务器多个项目的权限分组管理,svn服务器权限分组


1.创建两个代码仓库 

cd /home/svn
svnadmin create project1
svnadmin create project2 

2. 复制 authz  passwd 两文件到SVN文件夹下

cp authz passwd /home/svn

3.修改project1 和project2 下svnserve.conf文件

vi svnserve.conf

修改成如下:
anon-access = none //禁止匿名访问
auth-access = write
password-db = /home/svn/passwd //统一使用密码文件
authz-db = /home/svn/authz
realm = project1 //权限域名,很重要,写你的工程名

 

4.修改两个权限管理文件

vi passwd
//用户名 = 密码
[users]
eg1 = 123

eg2 = 123

 

vi authz

[groups] //分组
admin = eg1,eg2

[project1:/] //工程1的访问控制,guest1,2无法访问
@admin = rw

eg1 = rw
eg2 = rw
[project2:/]
@admin = rw 

 

5. 重启
svnserve -d -r /home/svn

停止命令
killall svnserve


SVN服务器配置,怎在SVN服务器中设置多个管理员在客户端设置为开发人员开放与关闭访问权限

有个办法可以实现,但安装配置比较麻烦。
要实现你的想法,关键在于要把每个SVN库的权限文件分开存放,而不能是在同一个权限文件中存放所有版本库的权限。这样才有可能把某个权限文件的控制权限只开放给某个SVN管理员。

按照这个思路,在搭建SVN服务器的时候,可以用SVN、Apache集成搭建,在apache的httpd.conf的svn那段location中,不用svnparentpath去指向各版本库的父目录,而是用svnpath指向某一个版本库,也就是说为每个版本库写一段location,在每段location中指定一个单独的权限文件,用户ID密码文件可以用统一的。然后通过操作系统的共享权限设置,为每一个权限文件指定对应的管理员,甚至更进一步,将这些权限文件也做成一个单独的SVN库,每个权限文件存放在一个单独文件夹下,设定好每个文件夹的读写权限,再设定一下这个库的post-commit钩子,对这些权限文件有commit操作时,就通过钩子自动在服务器端更新权限文件。

这个过程稍微复杂些,但绝对可以实现,如有不明白可以继续问我。
 

有没有企业级的SVN服务系统?需要可以多项目的分级的权限管理的

要看SVN服务器端的权限设置情况,如果服务器端设置为所有匿名用户均可以访问,那么不需要用户名和密码也可以下载,如果服务器端设置为限定某些人员可以访问,那么就必须有用户名和密码了

通常那些开源软件的开发者,会将SVN服务器设置为匿名用户可以下载,但只有开发人员可以上传;公司内部的SVN服务器通常会设置为限定某些人员可以下载,某些人员可以上传。很少有SVN服务器会设定为匿名用户可以下载,匿名用户也能上传,虽然技术上可以这么设置,但很少有人这么做,因为会大家乱传东西上去会导致内容混乱不堪。
希望采纳
 

相关内容