Linux 下 svn 多个项目多用户分配
安装步骤如下:
1、yum install subversion
2、输入rpm -ql subversion查看安装位置,如下图:
输入 svn –help可以查看svn的使用方法
需求
开发服务器搭建好SVN服务器,不可能只管理一个工程项目,如何做到不在一个项目中的开发人员不能访问其它项目中的代码,做好技术保密工作。
代码仓库有三个仓库:project1,project2,project3
假设人员有6个人:eg1,eg2,eg3,eg4,eg5,eg6
eg1,eg2,只能访问project1;
eg3,eg4,只能访问project2;
eg5,eg6,只能访问project3;
3、创建svn版本库目录
mkdir /var/svn
cd /var/svn
//创建三个代码仓库
svnadmin create project1
svnadmin create project2
svnadmin create project3
执行命令后project1下会生成如下文件
进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
4.新建个目录统一管理用户权限
mkdir /var/svn/conf
//把两个权限配置文件复制到 /var/svn/conf路径下统一管理所有代码仓库
cd /projcet1/conf
cp authz passwd /var/svn/conf
5.修改配置文件
vi svnserve.conf
打开下面的几个注释(同时要删除#后面的空格):
anon-access = none
auth-access = write #授权用户可写
password-db = /var/svn/conf/passwd #使用哪个文件作为账号文件 统一使用密码文件
authz-db = /var/svn/conf/authz #使用哪个文件作为权限文件
realm = project1 # 认证空间名,版本库所在目录 权限域名,很重要,写你的工程名
同时把project2的svnserve.conf也改了
anon-access = none
auth-access = write
password-db = /var/svn/conf/passwd
authz-db = /var/svn/conf/authz
realm = project2
同时把project3的svnserve.conf也改了
anon-access = none
auth-access = write
password-db = /var/svn/conf/passwd
authz-db = /var/svn/conf/authz
realm = project3
6.修改两个权限管理文件:
vi passwd
//用户名 = 密码
[users]
eg1 = 123
eg2 = 123
eg3 = 123
eg4 = 123
eg5 = 123
eg6 = 123
保存
注意:对用户配置文件的修改立即生效,不必重启svn服务。
vi authz
[groups] //分组
admin = eg1,eg2
guest = eg3,eg4
guest1 = eg5,eg6
[/]
* = #以上没有定义的用户都没有任何权限(添加自己root账户)
[project1:/] //工程1的访问控制,guest1,2无法访问
@admin = rw
[project2:/]
@guest = rw
[project3:/]
@guest1 = rw
注意:对权限配置文件的修改立即生效,不必重启svn。
7.启动svn服务
/usr/bin/svnserve -d -r /var/svn/
注意:不要使用系统提供的 /etc/init.d/svnserve start 来启动,因为系统默认的启动脚本中没有使用 –r /svn/project参数指定一个资源。这种情况下启动的svn服务,客户端连接会提示“svn: No repository found in ‘svn://192.168.11.229/project’ ”这样的错误。
默认svn服务器端口是3690。
杀死svn服务:
ps -ef|grep svn
root 4642 1 0 16:08 ? 00:00:00 svnserve -d -r /var/svn/
root 4692 3676 0 16:13 pts/2 00:00:00 grep svn
kill -9 4642
若要使用/etc/init.d/svnserve 脚本,可以修改start()函数部分,如下:
start() {
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
daemon --pidfile=${pidfile} $exec $args -r /var/svn
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
完成
8.、在windows上测试
新建一个测试文件夹,在该文件夹下右键选择 SVN checkout如下图(要事先安装TortoiseSVN):
svn://192.168.1.12/project1
svn://192.168.1.12/project2
svn://192.168.1.12/project3
问题:不能连接?
解决办法:
是因为:修改svnserve.conf 文件时。解开注释时要注意,同时要删除#后面的空格。也就是说要全部顶置。
然后认证失败是要注意前面的[/]. 然后重启下SVN就好了
问题:svn 日志文件显示时间为1970-01-01 No data
解决办法:
此问题主要出现在svnserve文件中的anon-access访问权限的设置问题上。
anon-access
控制非鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。
即”write”为可读可写,”read”为只读,”none”表示无访问权限。
缺省值:read
anon-access = none时,按照文档中注释:禁止所有匿名访问,也就是说如果不在authz-db中开放访问的用户,是不会允许读写版本日志的,故系统对日志的读写也纳入禁止访问范围,
在查看日志时,出现时间日期显示为1970-01-01, 日志信息显示no data。也就是这个原因。
所以在设置svnserve中的访问权限时,请设置为 anon-access = read,只读模式。这样的话,日志文件即可显示正常。
但是经过亲测 应该设置为anon-access = none
问题: 命令行方式连接,提示svn: No repository found in ‘svn://192.168.11.229/project’错误?
解决:启动svn服务的时候没有使用-r /var/svn参数,没有指明资源库的具体路径。使用# svnserve -d -r /var/svn/ 命令来启动就可以了,不要使用/etc/init.d/svnserver脚本。
问题: 执行命令# svn co svn://192.168.11.229/project时提示“svn: Authorization failed”错误?
解决:一般这种授权失败的错误原因都来自conf/authz文件的配置
Linux 下 svn 多个项目多用户分配的更多相关文章
- linux下svn定时更新项目
方法一.用shell脚本定时更新项目 1.进入网站的根目录,假设项目位置放在/var/www/test cd /var/www/test 2.建立脚本文件update.sh,分两步进行.首先利 ...
- Linux下SVN创建新的项目
Linux下SVN创建新的项目 Linux环境下的SVN创建新的项目 一.前置条件: 1)有安装了linux系统的服务器,123.*.*.29 2)服务器上安装了svn,本人服务器的svn的数据安 ...
- linux下svn命令使用大全
最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全:1.将文件checkout到本地目录 svn checkout path(path是服务器 ...
- Linux下SVN服务器安装配置及客户端安装说明
原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...
- Linux下SVN的一些使用方法总结
Linux下SVN的一些使用方法总结 近期的一个项目不方便 Check 到本地,需要在测试服务器上进行编写和测试,所以就研究了一下如何在 Linux 命令行下使用 SVN. 首先 svn help ...
- Linux下SVN服务器搭建配置
Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...
- [转载]linux下svn命令使用大全
原文地址:http://blog.chinaunix.net/uid-22150747-id-189264.html 最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个li ...
- linux下svn 搭建
linux 下SVN搭建加自动提交更新到指定目录一.安装#yum install subversion yum安装SVN#mkdir -p /opt/svn/repos 创建s ...
- linux下SVN忽略文件/文件夹的方法
linux下SVN忽略文件/文件夹的方法 假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录) ...
随机推荐
- Java通过poi读取excel中文件
maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</a ...
- 「HAOI2015」树上操作(非树剖)
题目链接(luogu) 看到标签::树链剖分,蒟蒻Sy开始发抖,不知所措,但其实,本题只需要一个恶心普通的操作就可以了!! 前提知识:欧拉序 首先我们知道dfs序,就是在dfs过程中,按访问顺序进行编 ...
- 创建新react项目 运行npm start 报错踩过的坑
1.看react官网创建新的react项目 :npx create-react-app my-app cd到my-app npm start 遇见如下报错 这是因为电脑本地git的原因 ,不是 ...
- ImageView基本用法
1.background通常指的都是背景,而src指的是内容. 2.当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸. 3.scaleType缩放类型设置: fitXY:对图像的横向与纵 ...
- Java基础扫盲系列(二)—— Java中BigDecimal和浮点类型
一直以来我几乎未使用过BigDecimal类型,只有在DB中涉及到金额字段时听说要用Decimal类型,但是今天再项目代码中看到使用BigDecimal表示贷款金额. 本篇文章不是介绍BigDecim ...
- 基于 DNS 动态发现方式部署 Etcd 集群
使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discove ...
- mycat在windows环境下安装和启动
1.下载从如下地址下载mycat的安装包: http://www.mycat.io/ eg:Mycat-server-1.6.6.1-release-20181031195535-win.tar.gz ...
- Spring项目中的数据库加密
有时候为了安全,我们需要对数据库密码进行加密: SpringDruid数据源加密数据库密码 当我们初步开始打造系统时,什么都没有一片空白,而数据源使用的是SpringDruid时,我们可以通过这篇博客 ...
- FineReport连接SSAS多维数据库
1.服务器——定义数据连接,如下图: 2.配置SSAS服务器地址及登录名密码: 注意这里的用户名.密码是指的服务器的登录名和登录密码,也就是你远程桌面的登录用户名和密码,不是数据库的登录用户名密码. ...
- CDH5.14.4中的Hue集成HBase
1.进入CDH中的给HBase添加Thrift Server角色实例, 为了方便, 将Thrift Server添加到Hue同一主机 2.HBase Thrift Server中选择主机cm1: 3. ...