SVN server on ubuntu

安装SVN svr

复制代码
apt-get update
​
apt-get install subversion

卸载SVN svr

复制代码
apt-get remove --purge subversion

查看svn svr版本信息

复制代码
svnserve --version

创建SVN版本库

复制代码
sudo mkdir /home/svn
sudo mkdir /home/svn/repository
cd /home/svn/repository
​
mkdir repository
#mkdir -p  /home/svn/repository
​
sudo chmod -R 777 /home/svn/repository

创建svn仓库

复制代码
svnadmin create /home/svn/repository
​
sudo svnadmin create /home/svn/repository
复制代码
执行命令后,会在repository下生成以下文件:

ls repository

对db进入权限设置

复制代码
cd /home/svn/repository
sudo chmod -R 777 db

设置访问权限

修改配置文件svnserve.conf

cd /home/svn/repository

cd ./conf

vi svnserve.conf

复制代码
说明:(去掉前面的#,并且顶格)
anon-access = none 匿名用户不可读
auth-access = write 权限用户可写

password-db = passwd 密码文件为passwd
authz-db = authz 权限文件为authz

添加访问用户

修改password文件,添加访问用户

复制代码
cd  /home/svn/repository
cd ./conf
vi passwd 

新增用户格式:名字 = 密码

复制代码
user = user1234567

给用户增加目录权限

复制代码
sudo vi authz

对以上进行解释:


# 用户王属于admin权限组
admin = user

# admin权限组的权限是读和写
# @admin = rw

# 所有的组都具有读权限
# * = r

normal = user1

[/]
@admin = rw
@normal = rw

具体意义及说明已经在图中标注写明了,图中的授权方式为对用户组进行授权,这里再提下

复制代码
[/]
@admin = rw
@normal = r

这个部分的说明,上面的 / 表示对根目录进行授权,即用户组成员对所有项目都具有权限共通性,我们如果要针对不同项目去设置不同权限,可以如下操作

复制代码
[JAVA:/]
user = rw  //表示用户 user 对项目 JAVA 的所有内容具有读写权限
Liu = r  //表示用户 Liu 对项目 JAVA 的所有内容仅具有读权限
​
[Python:/]
Ming = rw  //表示用户 Ming 对项目 Python 的所有内容具有读写权限
Tao = r  //表示用户 Tao 对项目 Python 的所有内容仅具有读权限
​

上面这种做法可以保证Heath仅拥有JAVA项目的读写权限,没有Python项目的权限,保证项目组成员之间的信息安全和项目安全,也便于项目组成员之间的管理。

精确目录权限控制

复制代码
[/]
A=rw
A拥有版本库根目录读写的权限
​
[/Android]
A=rw
B=r
A拥有Android目录读写的权限
B拥有Android目录读的权限,但没有写的权限
[/Android/Project1]
A=rw
*=r
A拥有/Android/Project1目录读写的权限
所有人都拥有/Android/Project1目录读的权限

svn srv启停

启动SVN服务器

复制代码
svnserve -d -r /home/svn/repository
​
svnserve -d -r /home/svn/repository --listen-port 81
复制代码
-d:表示在后台运行
​
-r:指定服务器的根目录

如果提示:权限不够。

复制代码
切换到root权限
命令:sudo su
重试启动svn:svnserve -d -r /home/svn --listen-port 81
​

查看是否启动成功

复制代码
ps aux | grep svnserve
​
netstat -alnt

停止服务器

复制代码
killall svnserve

如下图 说明已经关闭了

复制代码
ps aux | grep svnserve

远程访问

这样访问服务器时就可以直接用"svn://服务器ip/repository"来访问了。

复制代码
svn://ip:port
​
svn://192.168.1.15:81
相关推荐
别动我齐刘海4 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
玖石书6 小时前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
xiaoqiMikko6 小时前
Linux 实战(七):useradd、sudoers、umask、SGID、软链 —— 三台真机实测
linux·centos
拂拉氏8 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Fcy6488 小时前
Linux下 五种IO模型的认识与⾮阻塞IO的实现
linux·服务器·io
Mikko79 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
夏尔Gaesar9 小时前
解决Ubuntu安装vm tools时选项为灰色问题
ubuntu
书生执笔画浮沉9 小时前
分享一个开源小工具CAdapt
linux·c·gnu·glibc·kernel·升级·灵感
mounter6259 小时前
Linux 内核热升级(Live Update)技术详解:PCI、VFIO 与 IOMMU 子系统的演进与实战解析引言
linux·linux kernel·kernel·iommu·vfio
砚凝霜10 小时前
【软考信息安全】第十九章 Unix/Linux安全分析与防护
linux·安全·unix