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服务器及权限管理
虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN。
安装步骤如下:
1 、yum install subversion |
|
2 、输入rpm -ql subversion查看安装位置. 检查一下subversion是否安装成功。$ svnserve --version
|
|
3、创建svn版本库目录
4、创建版本库
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用户管理权限,如何实现一个用户下多目录不同权限管理问题?