当前位置:首页 » 操作系统 » svn配置linux

svn配置linux

发布时间: 2023-01-02 19:12:10

linux配置SVN,添加用户,配置用户组的权限

用xshell登陆服务器,cd切换到服务器中svn的项目仓库目录中,然后切换到conf文件中(也可使用xftp),会看到3个文件,分别是

authz、passwd、svnserve.conf

首先编辑svnserve.conf主配置文件,主要是对以下几项修改

如果后面大家要用到组权限的话,大家看authz-db = authz 前面应该会有 # 号键,记得去掉,这样才能在下面分配组权限的时候,才能起作用。

建立svn用户以及密码:

配置组:

配置各个组权限:

保存修改后的svnserve.conf ,passwd,authz 三个文件

然后用下面的命令重启一下svn

查看svn进程:ps -ef | grep svn 或者 ps aux | grep svn

强制杀死进程:kill -9 进程号

重启svn(/home/svn为自己的目录地址):svnserve -d -r /home/svn

最后看看是不是成功了,可以在本地测试一下,看看账户是否可用,对应的权限是不是已经有了,不是该组的用户应该不能访问没有赋予权限的目录的

helloword仓库:

现在对于def项目中,我不想让产品部的人看到开发部和数据部的目录下面的数据怎么办?可以通过 = 来设置,没有设置权限的人统统不能访问, = 这一句的目的,就是割断权限继承性,使得管理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限设置的影响

② linux下svn怎么配置路径权限

Linux 下可以直接通过如下命令直接获取svn server:(我使用的服务器系统为Debian 7.5 稳定版)
apt-get install subversion

安装完成后,可通过svnserve --version 查看安装的版本,我所使用的svn server 版本为1.6.17:

二、创建代码库
创建库(以test库为例):
sudo svnadmin create /home/user/svn/test

这样,一个简单的代码仓库就创建完成了。
接下来启动svn服务:
svnserve -d -r /home/user/svn/test

然后client端就可以通过“svn://ip.ip.ip.ip/test”来访问svn了。

③ Linux里面怎么搭建SVN

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的.

Linux上部署4个项目的svn操作步骤:搭建SVN

[root@localhost ~]# yum -y install subversion

[root@localhost ~]# svnserve --version

svnserve, version 1.6.11 (r934486)

......
[root@localhost ~]# mkdir -p /a/svn/

[root@localhost ~]# mkdir /a/passwd

[root@localhost ~]# svnserve -d -r /a/svn

[root@localhost ~]# svnadmin create /a/svn/repo1

[root@localhost ~]# svnadmin create /a/svn/repo2

[root@localhost ~]# cp /a/svn/repo1/conf/passwd /a/passwd/

[root@localhost ~]# cp /a/svn/repo1/conf/authz /a/passwd/

[root@localhost ~]# vim /a/svn/repo1/conf/svnserve.conf

[general]

anon-access=none

auth-access=write

password-db = /a/passwd/passwd

authz-db = /a/passwd/authz

realm=1111111111111111

[root@localhost ~]# mv /a/svn/repo2/conf/svnserve.conf

/a/svn/repo2/conf/svnserve.conf.bak

[root@localhost ~]# mv /a/svn/repo3/conf/svnserve.conf

/a/svn/repo3/conf/svnserve.conf.bak

[root@localhost ~]# mv /a/svn/repo4/conf/svnserve.conf

/a/svn/repo4/conf/svnserve.conf.bak

[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf

/a/svn/repo2/conf/svnserve.conf

[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf

/a/svn/repo3/conf/svnserve.conf

[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf

/a/svn/repo4/conf/svnserve.conf

[root@localhost ~]# vim /a/passwd/passwd

[users]

chen=chen123

lu=lu123

zhang=zhang123

wang=wang123

hua=hua123

dong=dong123

[root@localhost ~]# vim /a/passwd/authz

[groups]

java=chen,lu,zhang

ios=wang

web=hua

jishu=dong

[repo1:/]

@java=rw

[repo2:/]

@ios=rw

[repo3:/]

@web=rw

[repo4:/]

@jishu=rw

[root@localhost conf]# chmod 700 /a/passwd/*

[root@localhost ~]# pkill svnserve

[root@localhost ~]# ps -ef |grep svn

root 2405 2106 0 18:59 pts/1 00:00:00 grep svn

[root@localhost ~]# svnserve -d -r /a/svn/

[root@localhost ~]# ps -ef |grep svn

root 2411 1 0 19:00 ? 00:00:00 svnserve -d -r /a/svn/

root 2413 2106 0 19:00 pts/1 00:00:00 grep svn

④ 如何配置自己的Linux svnserver服务器

通常,很多Linux发行版已经自带了svn软件,安装系统时候选择即可。因此,本文并不讲解如何安装svn相关软件,而是重点总结一下如果使用svnserve服务器来构建自己的代码仓库,并且允许别人远程访问。

参考内容如下。
一、新建并初始化版本库
1.新建代码仓库
# svnadmin create /home/myrepos
这样,我们就在/home目录下新建了版本库myrepos。

2.初始化代码仓库
#mkdir -p code/{branches,tags,trunk}
按照svn手册上的建议,我们版本库的布局采用branches/tags/trunk这样的三个目录。然后可以将代码直接拷贝的trunk目录,也可以随后采用svn add的方式添加。

#svn import code file: ///home/myrepos
将我们构造好的版本库布局(以及代码,如果已经拷贝到trunk下的话)提交到版本库。由于这里我们是在本地操作,因此可以直接使用file协议方式提交。格式为:file:// + 版本库绝对的路径

OK,到这里我们已经构建了一个本地版本库,可以再本地使用svn ci的方法得到版本库的副本了。如果前面只是提交了版本库布局,而没有提交代码的话,则可以通过如下命令,提交版本代码:
#svn co file: ///home/myrepos/trunk repos
通常只从主线目录trunk下取出源码,放在了新建的repos目录。然后可以将源码拷贝到repos目录。
执行以下两条命令将代码添加的版本库。
#svn add *
#svn ci * -m "Committed codes"
首先需要将拷贝的代码加入到当前的副本中,然后将代码提交到版本库。

二、配置并启动svnserve
1. 配置svnserve
这一步主要完成远程用户访问版本的权限。
在版本库目录下有个conf目录:home/myrepos/conf,该目录包含三个文件:authz,passwd,svnserve.conf。
(1)svnserve.conf

此文件重点的设置内容如下:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
其中,anon-acces s和auth-access分别代表设置匿名用户和授权用户的访问权限。read代表只读,write代表可读可写,还有一个none,代表禁止访问。如果不想让匿名用户访问的话,可以设置anon-access = none。
password-db为保存版本库的用户名和密码,通常为conf目录下的passwd文件。
authz-db指向的文件,主要用于将用户进行分组,并赋予不同的组不同的权限。譬如有多个目录时,设置某个组的用户只可以访问其中的那些目录。
(2)passwd
如前面介绍,这个文件的主要内容如下
[users]
harry = harrysecret
sally = sallyssecret
以上两行就是可以访问版本库的用户名和密码。格式为:user = passwd。
(3)authz
[groups]
# harry_and_sally = harry,sally

# [/foo/bar]
# harry = rw
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
以上就是authz文件的格式。先给用户分组,然后分别设置每个组的工作目录以及权限等。
本文的讲解并未用到authz的配置。

2. 启动svnserve
#svnserve -d -r /home/
svnserve将以守护进程的方式运行。同时,通过-r选项指定了版本库的目录。这个目录可以是版本库的上级目录(/home),也可以是版本库的目录(/home/myrepos)。具体的区别会在后面讲到。当然,也可以不用-r指定。

三、远程访问svnserve。
假设版本服务器的地址为10.1.1.1,那么用户可以在远程linux端输入命令:
#svn checkout svn://10.1.1.1/myrepos myrepos
这样版本库的所有内容都被check出来,存放在当前目录myrepos下。这里相当于使用svn协议,不用搭建http服务器。

如果启动svnserve的时候,-r选项指定的是版本库的目录,譬如/home/myrepos,那么检出版本的时候,执行的命令为:
#svn checkout svn://10.1.1.1/ myrepos

如果启动svnserve是没有指定-r选项,则要输入版本库的绝对路径:
#svn checkout svn://10.1.1.1/home/myrepos myrepos

四、容易出现的问题
在访问svnserve时,遇到了不少的问题,大致总结一下:
1. 这一步最容易避免,一定要记得启动svnserve。
2. 记得要正确的修改配置文件svnserve.conf和passwd。
3. 保证版本库服务器没有配置限制远程访问svnserve的规则。有时在访问svn服务器的时候,会提示服务器积极拒绝链接。简单起见,可以看看iptables -L INPUT和iptables -L OUTPUT有没有限制访问的规则。
4. 要保证输入版本库的URL正确。

后记:

1. 版本库的初次导入可以采用多种方式:
(1)直接构建好版本库目录,并将源码拷贝的对应的位置,然后svn import即可;
(2)先用svn checkout取出版本,然后构建目录和源码,执行svn add 并且svn commit即可。
2. 导入或者提交文件类型的控制
svn客户端是可以配置忽略哪些些文件,比如说我们不想提交*.o之类的文件。那么可以通过设置svn:ignore或者global-ignore来进行过滤相关的文件。通常默认的情况就会过滤掉*.o, *.so,*.a等被svn认为是中间生成的文件。我本人使用的客服端不管是WIN的还是Linux的都是这种默认情况。
但是,如果有时基于某种需要,或者是导入一个别人之前维护的工程,里面有些*.so,*.a文件必须保留,那么如果在第一次import的时候全部导入呢?曾经问过有些朋友说,svn add或者svn import是可以直接把这种文件导入到版本库的。但是我个人进行测试的时候,确实导入不进去,除非你直接svn add这个文件,然后提交应该就可以了。
如果这样的文件比较多,而且比较分散,那么如何解决呢?看一下svn import和svn add这两个命令的帮助,都有--no-ignore选项。这个选项的功能就是执行相应动作的时候,不忽略任何文件。那么执行以下两条命令:
svn import [source] [repository] --no-ignore

svn add [source] --no-ignore
会自动将source目录下所有的内容全部import或者add。

因此,通过--no-ignore选项,可以满足提交一些特殊文件的需求。

3. 用一个旧版本的svnadmin创建的版本库,直接拷贝到另外一台svn版本比较高的PC上使用时,发现提示数据库版本不匹配。解决的方法:
(1)导出旧的版本库内容,包含版本信息
具体使用的命令为svnadmin mp, 详细使用方法参考手册。该命令的格式为:
svnadmin mp REPOS_PATH [-r LOWER[:UPPER]] [--incremental]
如果我将版本库完整的信息都倒出来的话,执行如下命令:
# svnadmin mp old_repos > repos.mp

默认版本库mp的时候是输出在终端的,通过重定下输出到repos.mp文件里面。该文件实际是文本文件。
(2)导入旧版本库的内容
在需要导入的位置,新建一个版本库
# svnadmin create new_repos
然后将repos.mp文件导入到新的版本库:
# svnadmin load new_repos < repos.mp
该命令成功执行完毕之后,新的版本库中已经包含了old_repos版本库中的所有版本内容。
svnadmin mp和svnadmin load命令都支持导入/导出某个指定revsion或者某个指定范围的所有revision。

⑤ linux 已经安装svn 怎么配置

代码库创建
SVN软件安装完成后还需要建立SVN库
[root@Linux moles]# mkdir -p /opt/svn/repo
[root@Linux moles]# svnadmin create /opt/svn/repo
执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置SVN代码库
进入上面生成的文件夹conf下,进行配置
[root@Linux moles]# cd /opt/svn/repo/conf

用户密码passwd配置
[root@Linux password]# cd /opt/svn/repos/conf
[root@Linux conf]# vim passwd
修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
root=raykaeso
用户名=密码
这样我们就建立了root用户, raykaeso密码
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

权限控制authz配置
[root@Linux conf]# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

#设置[/]代表根目录下所有的资源
[/] 或者写成[repl:/]
root= rw
意思是root用户对repo测试库下所有的目录有读写权限,当然也可以限定。
如果是自己用,就直接是读写吧。
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

服务svnserve.conf配置
[root@Linux conf]# vim svnserve.conf
追加以下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories

以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
配置防火墙,SVN端口为3690
[root@Linux conf]# vi /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3690 -j ACCEPT
保存后重启防火墙
[root@Linux conf]# service iptables restart

启动SVN
svnserve -d -r /opt/svn/repo

启动SVN服务
svnserve -d -r /opt/svn/
注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径:比如
/opt/svn/project1 /opt/svn/project2 ——————-> /opt/svn/

参考:CentOS 6.2 SVN搭建 (YUM安装)-http://www.leixuesong.cn/226

⑥ linux 下如何启动SVN服务

先转到SVN的安装目录,比如,你安装在/home/svn下面。然后转到bin目录下,在这里可以看见一个叫svnserve的文件,我们需要用这个来启动SVN服务。

⑦ 怎么在linux上搭建svn服务器

1,首先安装好LINUX系统,然后YUM安装:

#yum -y install svnversion

2,安全完成之后我们来配置:

创建版本库目录:

#mkdir -p /banbenku/svn/

3,然后启用:

#svnserve -d -r /banbenku/svn

然后查看是否启动了!

ps -ef|grep svn;

[root@207 conf]# lsof -i:3690

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

svnserve 8454 root 3u IPv4 1346200 0t0 TCP *:svn (LISTEN)

4,然后我们来新建版本:

mkdir -p /banbenku/svn/zhoujie/

cd /banbenku/svn/zhoujie/conf

在这里有三个文件:authz passwd svnserve.conf

svnserve.conf是主要配置文件;

vi svnserve.conf

修改如下:

anon-access = read

auth-access = write

password-db = /banbenku/svn/zhoujie/conf/passwd

authz-db = /banbenku/svn/zhoujie/conf/authz

wq!

保存退出:

然后修改passwd:

建立用户名与密码内容如下:

zhoujie = 123456

wq

保有存退出:

然后修改:authz:

内容如下:

[groups]

admin = zhoujie

[zhoujie:/]

@admin =rw

wq

保存退出!

这样我们便配置好了;要使用启生效,重启SVN:

ps -ef|grep svn

kill -9 PID

svnserve -d -r /banbenku/svn

然后再检测:

[root@207 conf]# lsof -i:3690

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

svnserve 8454 root 3u IPv4 1346200 0t0 TCP *:svn (LISTEN)

如果如上所示,那便没有问题了;

⑧ linux怎么使用svn进行多个版本库的配置

1、Linux系统安装svn服务
# yuminstall subversion<img id="selectsearch-icon" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" alt="搜索">

2、新建一个目录用于存储SVN所有文件

#mkdir -p /cbroot/svnserver/cbweb

3、在上面创建的文件夹中为项目project_1,创建一个版本仓库

# svnadmin create /cbroot/svnserver/cbweb/trunk

4、为项目配置权限
①svnserve.conf 是主配置文件

vim /cbroot/svnserver/cbweb/trunk/conf/svnserve.conf
anon-access=none #匿名可读
auth-access=write #验证用户可读写
password-db=passwd #指向验证用户名密码的数据文件 passwd
auth-db=authz #指向验证用户的权限配置文件 authz

注意:每一行前方不能有空格,否则会出现 Option expected错误!

②passwd用户名密码配置文件

vim /cbroot/svnserver/cbweb/trunk/conf/passwd
[users]
=123456
=123456

③authz用户权限配置文件

[groups]
trunk=,
[/]
@trunk=rw #定义群组 managers 有读写权限
manager3=r #定义 manager3 有读权限
*= #以上没有定义的用户都没有任何权限

5、启动SVN服务器上面的版本库cbweb

svnserve -d -r /cbroot/svnserver/cbweb/
###启动多个svn服务
svnserve -d –listen-port 3688 -r /static/

⑨ Linux中svn服务器安装与使用

直接开放svnserve的端口就可以了,默认端口是3690

如果selinux开启了,它会阻止文件的写入,从仓库中拉去正常,但上传的时候会出现 不能打开文件"***/db/txn-current-lock"权限不够

如果出现semanage未定义,可以参考 CentOS7 中安装semanage来设置selinux

仓库目录为 /home/svn/test ,如果要删除版本仓库直接删除目录就可以了 rm -rf /home/svn/test

在仓库目录 /home/svn/test 的 conf 目录中会有三个文件

修改配置

修改配置添加账号密码,以 账号=密码 的格式配置, = 号二边尽量不要存在空格

权限管理分为组管理和目录权限管理

多个创建可以共用一套账号和密码权限管理。也可以用不同的账号密码管理,如果用不同的配置少单仓库类似,修改每个仓库conf下的账号和权限文件就可以了。下面说一下共用账号权限文件的情况。

在仓库目录 /home/svn 目录中创建authz文件和passwd文件。

修改配置各仓库下conf/svnserve.conf。将password-db和authz-db指向/home/svn/目录下的文件

修改/home/svn/passwd配置添加账号密码,以 账号=密码 的格式配置, = 号二边尽量不要存在空格

修改/home/svn/authz权限管理分为组管理和目录权限管理

如果单仓库以/home/svn启动,此时访问的地址会有仓库名。 svn://ip/test

访问地址分别为:

编辑 /etc/sysconfig/svnserve 文件,修改 OPTIONS="-r /var/svn" 参数改为svn仓库目录 OPTIONS="-r /home/svn"

设置开机启动

修改后也可以用systemctl来启动、停止、重启

svnserve启动后,修改authz和passwd文件是时实生效的,并不需要重启服务

有时随着仓库越来越多,权限配置也越来越多时,会出现一些配置错误,导致访问时出现无法加载权限验证之前的错误,这个时候我们可以将svn服务器的日志打印出来,看些配置出错了。

停止svn服务器,重新附加log-file参数输入日志到指定文件

热点内容
如何选生信分析服务器 发布:2025-05-10 01:53:11 浏览:406
移动ip案例云dns服务器 发布:2025-05-10 01:51:46 浏览:164
侠盗飞车解压密码是多少 发布:2025-05-10 01:45:04 浏览:712
c语言程序操作 发布:2025-05-10 01:23:04 浏览:412
ad滤波算法 发布:2025-05-10 01:17:59 浏览:895
自制网络存储 发布:2025-05-10 01:03:29 浏览:505
java防重复提交 发布:2025-05-10 01:02:32 浏览:737
如何在家用乐高制作解压玩具 发布:2025-05-10 00:55:07 浏览:439
linux的mtu 发布:2025-05-10 00:54:52 浏览:155
android判断root 发布:2025-05-10 00:44:06 浏览:689