Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

CentOS 7 搭建 SVN 服務器完整指南:從倉庫創建到權限控制

編輯:Linux 教學

在 CentOS 7 上部署 Subversion (SVN) 版本控制服務器,涵蓋倉庫創建、服務配置、用戶權限管理、自啟動設置及 HTTP 訪問集成。

1. 安裝與倉庫創建

yum install -y subversion
mkdir -p /mnt/svn-repos
svnadmin create /mnt/svn-repos/project1

2. 服務配置與自啟動

# 創建系統服務配置
cat > /etc/sysconfig/svnserve <<'EOF'
OPTIONS="-r /mnt/svn-repos --log-file /var/log/svnserve.log"
EOF

# 啟用並啟動服務
systemctl enable svnserve
systemctl start svnserve

# 驗證
systemctl status svnserve
ss -ntlp | grep 3690

3. 權限精細控制

編輯倉庫配置目錄 /mnt/svn-repos/project1/conf/ 下三個核心文件:

svnserve.conf(主配置)

[general]
anon-access = none          # 禁止匿名訪問
auth-access = write         # 認證用戶可寫
password-db = passwd        # 用戶文件
authz-db = authz            # 權限文件
realm = /mnt/svn-repos/project1

passwd(用戶密碼)

[users]
dev1 = password123
dev2 = password456
admin = admin789

authz(路徑權限)

[groups]
developers = dev1, dev2
admins = admin

[/]
@admins = rw
* =

[project1:/trunk]
@developers = rw
@admins = rw

[project1:/branches]
@developers = rw
@admins = rw

[project1:/tags]
@developers = r
@admins = rw

4. 防火牆與 SELinux

# 防火牆開放 3690 端口
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload

# SELinux 設置正確上下文
chcon -R -t var_t /mnt/svn-repos
setsebool -P httpd_unified 1  # 若配合 Apache

5. 客戶端驗證

# 檢出項目
svn checkout svn://server_ip/project1/trunk project1_trunk --username dev1

# 提交測試
cd project1_trunk
echo "test" > test.txt
svn add test.txt
svn commit -m "Initial commit"

6. 進階:Apache + WebDAV 訪問(可選)

安裝 mod_dav_svn,配置 /etc/httpd/conf.d/subversion.conf 實現 HTTPS 訪問、瀏覽器查看版本歷史等功能。

7. 備份策略

# 熱備份腳本(每日定時任務)
#!/bin/bash
DATE=$(date +%F)
svnadmin hotcopy /mnt/svn-repos/project1 /backup/svn/project1_$DATE
find /backup/svn -mtime +30 -delete

總結

SVN 服務器核心在於 svnserve.conf、passwd、authz 三個文件的協同配置。採用「組+路徑」權限模型便於團隊管理,配合熱備份與監控,可構建穩定可靠的版本控制基礎設施。

Copyright © Windows教程網 All Rights Reserved