Apache Subversion 域认证与分库权限

版本管理 0 2090 张长瑞 收藏

操作系统:CentOS Linux release 7.5.1804 (Core)

Yum源: 清华大学源   https://mirror.tuna.tsinghua.edu.cn/centos/

AD域:Windows 2016

条件:

关闭防火墙

systemctl stop firewalld

关闭selinux,编辑/etc/selinux/config(必须)

SELINUX=disabled

一、安装apache与svn服务端

yum install httpd* mod_*  subversion*

查看apache与subversion的版本,此处要求apache版本大于2.4,subversion版本大于等于1.7

httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Mar 24 2022 14:57:57
svnadmin --version
svnadmin, version 1.7.14 (r1542130)
   compiled Sep 30 2020, 17:44:04

二、配置apache+subversion

进入到apache模块配置文件目录

cd /etc/httpd/conf.modules.d/

编辑文件 10-subversion.conf  添加后2行内容

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule dontdothat_module  modules/mod_dontdothat.so
LoadModule ldap_module	      modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

进入到apache的附加配置文件目录

cd /etc/httpd/conf.d

删除 mod_security.conf文件   (必须)

新建 subversion.conf 文件,内容如下

<Location /svn/>
 DAV svn
  SVNListParentPath on
  SVNParentPath /svn
  AuthType Basic
  AuthName "SVN Authorization Realm" 
   AuthzSVNReposRelativeAccessFile authz
   AuthBasicProvider ldap
   AuthLDAPBindDN "cn=username,ou=user,dc=domain,dc=com"
   AuthLDAPBindPassword "password"
   AuthLDAPURL "ldap://192.168.1.1:389/dc=domain,dc=com?sAMAccountName?sub?(objectClass=*)"
   Require valid-user
</Location>

以上描述的意思是:svn的库文件目录是 /svn ,所以你需要新建一个/svn目录


Location:

<Location /svn/>

描述的是http的路径,此处无需修改


SVNParentPath:

SVNParentPath /svn

路径为svn库文件路径,你可以按照本文直接新建/svn目录,也可以修改为其他目录


AuthzSVNReposRelativeAccessFile:

AuthzSVNReposRelativeAccessFile authz

此设置为subversion1.7以上版本才支持的参数,是指权限文件使用svn库权限文件,而不是集中一个认证文件


AuthBasicProvider:

AuthBasicProvider ldap

此设置为认证方式,此处为ldap,ldap包涵openlap和windows domain


AuthLDAPBindDN:

AuthLDAPBindDN "cn=username,ou=user,dc=domain,dc=com"

此设置为认证的用户设置,cn为用户名,ou是组织单位,dc是域


AuthLDAPBindPassword:

AuthLDAPBindPassword "password"

上一个设置的用户的密码


AuthLDAPURL:

AuthLDAPURL "ldap://192.168.1.1:389/dc=domain,dc=com?sAMAccountName?sub?(objectClass=*)"

此设置为域控服务器的地址和域名等信息


最后,启动apache并设置自启动

systemctl start httpd
systemctl enable httpd

三、创建svn库及svn库权限

创建svn库

进入到svn库目录,本文为/svn目录

创建一个test库,一个test1库

svnadmin create test
svnadmin create test1

将库权限修改为apahce

chown -R apache:apache test
chown -R apache:apache test1

设置svn库权限

进入到test库的配置目录

cd /svn/test/conf

编辑authz文件

[/]
zhangsan=rw

同理编辑test1库的权限

[/]
zhangsan=r

四、验证权限

使用TortoiseSVN客户端浏览器访问http://svn服务器IP/svn/test与http://svn服务器IP/svn/test1

测试test库zhangsan用户有读写权限

测试test1库张三用户有只读权限

五、配置完成!


相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码