linux系统上svn如何实现权限控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统上svn如何实现权限控制相关的知识,希望对你有一定的参考价值。

windows系统上有visualsvn server manage来实现每个项目组自己负责自己项目的svn访问权限。如何在linux环境实现同样的功能?

参考技术A 在你的版本库中有个conf文件夹,在这里有你要编辑的文档来设置权限。
配置SVN
1、 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)
 mkdir –p /home/svn/repos
#类似可以创建 mkdir –p /home/svn/repos2 /home/svn/repos3
2、 建立svn版本库(与上面目录对应)
svnadmin create /home/svn/repos
 执行此命令后svn自动在repos目录下添加必须的配置文件.
注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import命令将文件导入版本库.
此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
3、 修改版本库配置文件
 vi /home/svn/repos/conf/svnserve.conf
各参数功能在配置文件的注释中有说明, 此处配置如下:
 [general]
 anon-access = none # 使非授权用户无法访问
 auth-access = write # 使授权用户有写权限
 password-db = passwd # 指明密码文件路径
 authz-db = authz # 访问控制文件
 realm = /home/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.
4、 配置用户
 vi /home/svn/repos/conf/passwd
输入以下内容:
 [users]
 admin = admin
  可以添加多个,此为用户名和密码。
5、 配置权限
 vi /home/svn/repos/conf/authz
 此配置文件设置各用户的授权。
 包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:
 #对仓库repos根目录权限设置
 [repos:/]
 admin = rw
 * = r
7、 启动服务
  svnserve -d -r /home/svn/

阿里云CentOS搭建SVN服务器及权限管理

 

linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路!

 

 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN。

 

安装步骤如下:

 

1、yum install subversion
 

 

2、输入rpm -ql subversion查看安装位置.
 
检查一下subversion是否安装成功。$ svnserve --version
 

 

3、创建svn版本库目录

 

mkdir -p /var/svn/svnrepos

 

4、创建版本库

 

svnadmin create /var/svn/svnrepos

 

5、进入conf目录(该svn版本库配置文件)

 

authz :文件是权限控制文件

 

passwd:是帐号密码文件

 

svnserve.conf :SVN服务配置文件

 

6、设置帐号密码

 

vi passwd

 

在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan

 

7、设置权限

 

vi authz

 

在末尾添加如下代码:

[/]

dan=rw
w=r

 

意思是版本库的根目录dan对其有读写权限,w只有读权限

 

8、修改svnserve.conf文件

 

打开下面的几个注释:

 

anon-access = read #匿名用户可读

 

auth-access = write #授权用户可写

 

password-db = passwd #使用哪个文件作为账号文件

 

authz-db = authz #使用哪个文件作为权限文件

 

realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

 

9、启动svn版本库 

 

svnserve -d -r /var/svn/svnrepos
 

 

 启动SVN服务。

$ sudo systemctl start svnserve.service

检查服务是否启动成功。

$ ps aux | grep svn
root      16349  0.0  0.1 162180   900 ?        Ss   15:01   0:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /opt/svn

通过netstat可以看到SVN打开了3690端口。

$ sudo netstat -tnlp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      16349/svnserve 

设置成开机启动。

$ sudo systemctl enable svnserve.service

10.SVN默认的打开端口是3690

 

可以通过下面的命令查看:

 

netstat -antp | grep svn

 

tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      66486/svnserve 

 

11.centos7 打开防火墙端口(如下是普通的服务器)

 

$ sudo firewall-cmd --permanent --add-port=3690/tcp
$ sudo firewall-cmd --reload
备注:阿里云的ECS服务器,必须在网页控制台的安全组中-->添加入方向的安全规则(打开端口)

 

12、在TortoiseSVN上测试

svn://{your_ip}

技术分享图片





以上是关于linux系统上svn如何实现权限控制的主要内容,如果未能解决你的问题,请参考以下文章

linux下的git用户管理权限,如何实现一个用户下多目录不同权限管理问题?

阿里云CentOS搭建SVN服务器及权限管理

如何在服务器liunx上搭建svn服务器

如何使用SVN进行版本控制

windowlinux系统与linux服务器之间使用svn同步及自动部署代码的方法

使用Gitolite来对Git的repository实现权限控制