从Windows迁移SVN数据到CentOS7(三)

CentOS服务器的挂载磁盘,请参考  从Windows迁移SVN数据到CentOS7(一)

从Window服务器迁移SVN数据到CentOS,请参考 从Windows迁移SVN数据到CentOS7(二)

SVN相比Git来说拥有更加细粒度的权限控制,话不多说,我们马上接下来的配置。


三、创建、授权用户

1.首先我们找到SVN版本库下对应的配置文件 ~/conf/svnserve.conf,

vi /svn/Project20181022/conf/svnserve.conf

说明:对于授权用户与未被授权用户的访问级别控制:read,write,none

我们修改对应位置如下(注意去掉#号,顶格缩进):

anon-access = none
auth-access = write

说明:password-db字段,为配置密码数据文件的保存位置,默认为相对路径,如果以/开头则为绝对路径,如果SSL开启的话,那么就不会验证该文件。

这里我们不使用默认生成的“passwd”,用自己新建的文件代替(配置SSL会用到),该文件在接下来会被创建

password-db = /svn/svn_http_passwd

说明:authz-db字段,为用户数据文件的保存位置,默认为相对路径,如果以/开头则为绝对路径,如果未指定路径,则无访问控制。

这里我们依旧不使用默认生成的“authz”,用自己新建的文件代替(配置SSL会用到),该文件在接下来会被创建

authz-db = /svn/svn_authz

说明:realm 字段,此选项指定存储库的身份验证域。 如果两个存储库具有相同的身份验证域,则它们应具有相同的密码数据库,反之亦然。 默认域是repository的uuid。

这里如果项目符合上述要求的的话,需要去掉“#”号,配置两个相同的身份验证域,使配置生效,否则无需更改。

2.配置SSL

修改(没有该文件则新增) vi /etc/httpd/conf.d/subversion.conf,修改配置如下(Tip为说明,配置时请去掉)

<Location  /svn>
    DAV  svn
    SVNParentPath /svn
    SVNListParentPath on
    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /svn/svn_http_passwd   Tip:这是ssl的用户文件,等下创建
    AuthzSVNAccessFile /svn/svn_authz  Tip:这是鉴权文件,等下创建
    Require valid-user
    SSLRequireSSL
</Location>

创建httpd用户 -这里会创建上面提到的 /svn/svn_http_passwd 文件(执行后需要输入用户密码)

htpasswd -c /svn/svn_http_passwd turbo #创建apache用户和密码文件,已有文件则把-c去掉

以后加用户就直接使用下面代码段

htpasswd /svn/svn_http_passwd user123 #user123为你要添加的用户名

③ 增加svn用户权限文件 -这里会创建上面提到的 /svn/svn_authz 文件

vi /svn/svn_authz 

[groups]
ROOT = master   # 用户组,多个用户用逗号隔开
UNITY = turbo
SERVER = server  #master,server用户此时并没有创建,只是拎出来做一下演示

[Project20181022:/]  # 设置xxx库的权限
@ROOT = rw  # ROOT组里的用户对根目录有读写权限

[Project20181022:/Unity]
@UNITY = rw

[Project20181022:/Server]
@SERVER = rw

生成本地证书,配制https

cd /etc/pki/tls/private
openssl genrsa -out svn.key 1024 #生成私钥

openssl req -new -key svn.key -out svn.csr #生成证书

cd /etc/pki/tls/certs
openssl x509 -req -days 365 -in /etc/pki/tls/private/svn.csr -signkey /etc/pki/tls/private/svn.key -out svn.crt   #签名

⑤ 修改ssl配置文件:

vi /etc/httpd/conf.d/ssl.conf   #修改下面的配置项(就是刚才上面步骤创建的crt和key文件)
    SSLCertificateFile /etc/pki/tls/certs/svn.crt
    SSLCertificateKeyFile /etc/pki/tls/private/svn.key

⑥ 授予apache用户组 对/svn目录的 拥有者权限

chown -R apache:apache /svn/

⑦ 修改selinux权限,不然Apache只能访问www目录,其他地方的文件会访问失败:

chcon -R -t httpd_sys_rw_content_t  /svn/

⑧ 打开防火墙端口

firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

 启动服务

svnserve -d -r /svn
service httpd start

⑩ 加入开机启动项,如果之前不存在 rc.local,在创建该文件后需要执行: chmod +x /etc/rc.d/rc.local 赋予可执行权限

vi /etc/rc.d/rc.local #末尾增加以下配置
        /usr/bin/svnserve -d -r /svn
        /usr/sbin/service httpd start

好了,到这一步我们的SVN服务器就基本配置完成了,下一章节我们将验证小乌龟的连接和整理一些踩坑记录。

THE END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章