SVN服务器搭建

发布时间 2023-09-11 10:02:57作者: 妖岭

安装SVN服务器



要在Linux服务器上部署SVN服务器,需要以下步骤:

1.安装SVN服务器软件

在Linux服务器上,使用包管理器安装Subversion(SVN)服务器软件。具体命令可能因你使用的Linux发行版而有所不同。以下是几个常见发行版的安装命令示例:
Debian/Ubuntu:sudo apt-get install subversion
CentOS/RHEL:sudo yum install subversion
Fedora:sudo dnf install subversion
使用Ubuntu为例:
sudo apt-get install subversion


2.创建SVN存储库
在服务器上创建一个目录来存储SVN仓库。

sudo mkdir /home/Subversion

可以使用以下命令创建一个新的SVN仓库:

svnadmin create /home/Subversion

注:此处/home/Subversion即SVN仓库的存储位置,可修改为您的目标目录,例如:/home/myuser/svn/repository。

确保该目录对非root用户可写:

sudo chmod -R +777 /home/Subversion

3.配置SVN访问权限
进入/home/Subversion目录,并编辑conf/svnserve.conf文件。取消注释并修改以下行:

    anon-access = none
    auth-access = write
    password-db = passwd
    realm = /home/Subversion

anon-access = none表示匿名用户无任何权限
auth-access = write表示认证用户有可写权限
realm = /home/Subversion 表示版本库根目录在  realm = /home/Subversion下
注意:如果有复杂的权限管理需求,可在此处设置使用authz文件
取消注释并修改以下行:

authz-db = authz

4.添加SVN用户
打开conf/passwd文件并添加SVN用户。每行格式为用户名=密码,例如:

    john = ***
    mary = 123456

5.启动SVN服务器
使用以下命令启动SVN服务器:

svnserve -d -r /home/Subversion

查看是否运行:

ps aux|grep svnserve
thsj      9644  0.0  0.0  16184  1128 pts/2    S+   09:39   0:00 grep --color=auto svnserve
thsj     30156  0.0  0.0  79988  3056 ?        Ss   9月08   0:00 svnserve -d -r /home/Subversion/


现在SVN服务器已在Linux服务器上成功部署。可以使用SVN客户端工具(如TortoiseSVN、svn命令行工具等)连接到服务器,并开始使用SVN版本控制系统。

在Linux服务器上部署SVN服务器时,以非root用户身份进行操作是一个安全最佳实践。这可以帮助减少潜在的安全风险。


检查监听端口
SVN服务器默认监听3690端口。你可以使用以下命令检查该端口是否正在监听连接:

netstat -tuln | grep 3690

如果服务器成功启动,你应该能够看到类似以下输出:

tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN

这表明SVN服务器正在监听3690端口,并可以接受连接。
如果你能够成功找到SVN服务器的进程以及服务器正在监听所需的端口,那么你的SVN服务器已经成功启动。你现在可以使用SVN客户端工具连接到服务器并执行相应的操作。

本地连接

要在本地连接到已部署的SVN服务器,你需要使用SVN客户端工具。以下是连接到SVN服务器的一般步骤:
安装SVN客户端工具
在本地计算机上安装适用于你的操作系统的SVN客户端工具。以下是几个常见的SVN客户端工具:
TortoiseSVN(适用于Windows):https://tortoisesvn.net/downloads.html
SVN命令行客户端(适用于Linux、macOS和Windows):根据操作系统使用的包管理器安装相应的SVN命令行客户端,如svn命令。

创建本地工作副本

在本地选择一个目录作为SVN工作副本,这将是你在本地进行版本控制操作的目录。打开命令行终端或资源管理器,并导航到你想要创建工作副本的目录。
使用以下命令来检出仓库并创建本地工作副本:

svn checkout svn://服务器IP或主机名/仓库路径

例如:

svn checkout svn://ip地址/home/Subversion/

这将下载仓库中的文件和历史记录,并在本地创建一个工作副本。

Windows通过小乌龟新建远程svn仓库并与本地建立连接

windows安装svn小乌龟此处省略

 

 

 

注意:此处需要账户有权限,否则会认证失败。

 

 

 

 
进行版本控制操作

一旦工作副本创建成功,你就可以使用SVN客户端工具执行版本控制操作,例如添加、提交、更新、回滚等。

对于TortoiseSVN(Windows),你可以在资源管理器中右键单击工作副本文件夹,然后选择相应的操作。

对于SVN命令行客户端,你可以使用svn命令执行操作。例如,使用svn add命令添加新文件,svn commit命令提交更改等。使用svn help命令可以查看更多可用的SVN命令和选项。

连接到SVN服务器的具体步骤可能会因使用的SVN客户端工具和网络环境而有所不同。根据你使用的SVN客户端工具的特定文档和指南,你可以获得更详细的操作说明。

分配权限

要在SVN服务器上分配用户权限,可以使用以下步骤:

1.  打开SVN服务器上的svnserve.conf文件或相关的权限配置文件。这个文件通常位于SVN仓库的 conf 目录中。

2.  在配置文件中查找[users]部分。这部分用于定义用户和密码的键值对。

3.  添加或修改用户的权限:

a.  添加新用户:在[users]部分下添加一个新的键值对,键是用户名,值是该用户的密码。例如:

    [users]
    user1 = password1
    user2 = password2

b.  修改现有用户的权限:在[users]部分找到相应的用户,然后修改其密码。如果你不想更改密码,只需保留原始密码即可。

4.  保存并关闭配置文件。

5.  重启SVN服务器(如果需要)。某些服务器可能需要重新启动才能加载新的权限配置。

通过上述步骤,你可以在SVN服务器上添加新用户或修改现有用户的密码。这些用户将用于访问SVN仓库并执行版本控制操作。请确保为每个用户设置安全的密码,并根据需要调整其访问权限,以确保仅授予他们所需的权限。

下面是一个示例的svnserve.conf配置文件,其中包括了用户权限的设置:

    [general]
    # 其他配置项...
     
    [auth]
    # 认证设置...
    password-db = passwd  
     
    [sasl]
    # SASL认证设置...
     
    [groups]
    # 用户组设置...
     
    [users]
    # 用户权限设置
    user1 = password1
    user2 = password2
     


在上述示例中:

● [general]部分:可以配置其他一般设置,例如日志、IP限制等。

● [auth]部分:用于设置认证相关的配置,比如密码数据库。

● [sasl]部分:用于设置SASL认证相关的配置。

● [groups]部分:用于设置用户组的配置。

● [users]部分:用于设置用户权限的配置,其中user1和user2是两个示例用户,每个用户都有对应的密码。

你可以根据你的具体需求和服务器配置进行相应的修改。请确保在配置文件中正确指定密码数据库(password-db)的路径,并为每个用户设置合适的用户名和密码。

完成配置后,保存并关闭svnserve.conf文件,并确保重启SVN服务器以使配置生效。这样,用户将具有相应的权限来访问和操作SVN仓库。

对于更复杂的权限管理需求,你可以使用SVN服务器提供的更高级的权限配置选项来实现。

一种常见的方法是使用authz文件,它允许你为不同的用户或用户组分配不同的权限,并根据仓库的路径设置访问权限。

下面是一个authz文件的示例:

    [groups]
    # 用户组设置...
    admin = user1, user2
    dev = user3, user4  
     
    [/]
    # 仓库根目录的权限设置
    @admin = rw
    @dev = r  
     
    [project1:/]
    # 对特定项目的权限设置
    @admin = rw
    @dev = rw  
     
    [project2:/]
    # 对另一个项目的权限设置
    @admin = rw
    @dev = r

在上述示例中:

● [groups]部分:定义了用户组,比如admin组和dev组,每个组包含对应的用户。

● [/]:表示仓库根目录,可以在此设置根目录的权限。

● [project1:/]和[project2:/]:表示特定项目的路径,你可以在这里设置项目的权限。

通过在authz文件中设置用户和用户组以及对应的权限,你可以实现更精细的权限控制,让不同的用户或用户组管理不同的项目。

在配置完authz文件后,保存并关闭文件,并确保在SVN服务器的配置中指定了该文件的路径。然后重新启动SVN服务器,以使新的权限配置生效。

请注意,具体的authz文件配置可能会因SVN服务器的不同而有所差异,请参考你使用的SVN服务器的文档或指南,以获取更准确的配置方法和语法。
————————————————
版权声明:本文为CSDN博主「草药哥哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_24604781/article/details/131637507