非活动目录控制

1.安装软件

yum install httpd subversion mod_dav_svn -y

2. 创建svn库并修改权限

mkdir /home/svn <创建svn目录>
chown -R apache:apache /home/svn <变更文件所属权限,并应用到子文件夹>
svnadmin create /home/svn <新建svn库>
chmod -R g+rws /home/svn <修改文件读写属性,并应用到子文件夹>

3.修改svn配置文件,vim /etc/httpd/conf.modules.d/10-subversion.conf ,增加以下代码

<Location /svn>
	DAV svn
	SVNPath /home/svn
	AuthType Basic
	AuthName "SVN repository"
	AuthUserFile /etc/subversion/passwd
	AuthzSVNAccessFile /home/svn/conf/authz
	Require valid-user
</Location>

4.重启apache服务

service httpd restart

5.添加用户:vim /home/svn/conf/authz

[groups]
admin = tab
[/]
@admin = rw
* =
htpasswd -c /etc/subversion/passwd tab (创建passwd文件时需要打-c参数,tab为此svn第一个用户)

6.再次修改svn库权限

chown -R apache:apache /home/svn

7.防火墙上开放端口

firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=80/tcp --permanent

8.selinux 关闭

getenforce 检查是否开启
setenforce 0 临时关闭selinux
sed -i 's@SELINUX=enforcing@SELINUX=disabled@' /etc/selinux/config  永久关闭

活动目录控制

1.安装软件

yum install httpd subversion mod_dav_svn mod_ldap -y

2.创建SVN目录

mkdir -p /home/svn/test
svnadmin create /home/svn/test
chmod -R g+rws /home/svn/test
chown -R apache:apache /home/svn/test

3.编辑apache配置文件:/etc/httpd/conf.modules.d/10-subversion.conf,区分读写

<Location /svn/test>
DAV svn
SVNPath /home/svn/test
AuthType Basic
AuthBasicProvider ldap
AuthName "test subversion repository"
AuthLDAPURL "ldap://192.168.1.251:3268/dc=southbaytech,dc=co?sAMAccountName?sub?(objectCategory=person)"
AuthLDAPBindDN svn@southbaytech.co
AuthLDAPBindPassword svnpassword
AuthzSVNAccessFile /home/svn/test/conf/authz    
Require valid-user           
</Location>

4.编辑用户权限/home/svn/test/conf/authz

[groups]
	admin = asd  
	team = aaa
	[/]
	@admin = rw  #(admin组用户有读写权限)
	@team = r    #(team组用户有读权限)
	* =          #(其他用户没权限)

5.当SVN访问账户都为读写时,编辑/etc/httpd/conf.modules.d/10-subversion.conf

<Location /svn/test>
DAV svn
SVNPath /home/svn/test
AuthType Basic
AuthBasicProvider ldap
AuthName "test subversion repository"
AuthLDAPURL "ldap://192.168.1.251:3268/dc=southbaytech,dc=co?sAMAccountName?sub?(objectCategory=person)"
AuthLDAPBindDN svn@southbaytech.co
AuthLDAPBindPassword svnpassword
Require ldap-user aaa asd         
</Location>
其中 svn@southbaytech.co 为在活动目录下新创建的帐号 svn ,svnpassword 为其密码,此用来验证;aaa 和 asd 为访问SVN帐号。

6.重启Apache服务

service httpd restart

7.创建svn用户

在域主控制器1.251上 Users下创建一个普通账户svn,密码svnpassword,设置为密码永不过期

8.关闭selinux,编辑/etc/selinux/config

SELINUX=disabled