centos7 安装svn +(if.svnadmin+apache)并配置ldap

位流涟漪
• 阅读 2300

创建目录下载安装所需程序

yum -y install httpd
yum -y install subversion
yum -y install php
yum -y install mod_dav_svn
创建代码仓库
svnadmin create /home/svn/product
chown -R apache:apache /home/svn/product/
cd /home/svn && cp -a product/conf/* ./
#修改 /var/www 的权限为apache,后续都要使用apache的权限,否则权限会失败
rm -rf passwd && touch passwd
#多仓库,把product下面的配置文件移动到svn目录来实现
htpasswd /home/svn/passwd admin
设置admin的密码()
vi /home/svn/authz
 
admin = admin
[/]
@admin = rw
 
[product:/]
@admin = rw
* = r
#修改访问控制的配置文件
#原始文件的`21 行`用于设置用户组,要求在`/var/www/svn/passswd`文件内必须有此用户,每两个用户之间用`英文逗号`隔开。可以设置多个用户组,同一用户尽量不要在多个组中。  
#原始文件`25 行`用户设置根路径权限:
#`*` 为`所有用户`,
#`@XXX`为`用户组`,
#`XXX`为`单个用户`。
#**“=”后**
#`空`代表`不可读写`
#`r` 代表`只读`,
#`rw` 代表`读写`。
cp /etc/httpd/conf.modules.d/10-subversion.conf /etc/httpd/conf.d/subversion.conf
installl iF.SVNAdmin
cd /resource &&wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download
unzip download
#下载解压,iF.SVNAdmin应用程序是您的Subversion授权文件的基于Web的GUI
#这个是php写的,所以前面安装了php
cp -r iF.SVNAdmin-stable-1.6.2/ /var/www/html/svnadmin
#将iF.SVNAdmin拷贝到Apache目录
chmod -R 777 /var/www/html/svnadmin/data/
chown -R apache:apache /var/www/html/svnadmin/
chown -R apache:apache /home/svn/
yum -y install php-ldap
yum -y install mod_ldap
#ldap需要这两个模块的支持
systemctl restart httpd

subversion.conf

[root@prometheus-work-beijing ~]# cat /etc/httpd/conf.d/subversion.conf 
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_user_module moduels/mod_authz_user.so


<Location /svn/>
    DAV svn
    SVNParentPath /home/svn
    SVNListParentPath on
    AuthBasicProvider ldap
    AuthType Basic
    AuthName "Subversion repository"
    AuthLDAPURL "ldap://10.3x.14x.1x:389/OU=xxxxngshu-sh,DC=xxxongshu,DC=sh?sAMAccountName?sub?(objectClass=*)"
    AuthzSVNAccessFile /home/svn/authz
    AuthLDAPBindDN "CN=it_ldap,OU=ServiceAccount,DC=xxxxxxxhu,DC=sh"
    AuthLDAPBindPassword "xxx"
    Require valid-user
</Location>
#systemctl restart httpd
赋权限,重启配置生效
http://10.3x.1xx.x8/svnadmin/...
登录配置此处配置ldap
Subversion 授权文件: /home/svn/authz

centos7 安装svn +(if.svnadmin+apache)并配置ldap

centos7 安装svn +(if.svnadmin+apache)并配置ldap

#重启配置生效
svnserve -d -r /home/svn
#svn的启动命令,没写端口默认3690,-r写svn路径,
#svnserve -d -r /home/svn  --listen-port=3690 --log-file /tmp/svn.log &
#重启需要ps -aux |grep svn
#然后手动kill

centos7 安装svn +(if.svnadmin+apache)并配置ldap

centos7 安装svn +(if.svnadmin+apache)并配置ldap

centos7 安装svn +(if.svnadmin+apache)并配置ldap

svn 配置ldap

安装sasl

yum -y install sasl

修改认证方式

vim /etc/sysconfig/saslauthd #很多人发现自己机器没有这个文件,你就写着三行就够了
将MECH=pam 修改成MECH=ldap


[root@prometheus-work-beijing ~]# cat /etc/sysconfig/saslauthd
SOCKETDIR=/run/saslauthd
MECH=ldap
FLAGS=

创建/etc/saslauthd.conf 文件,写入以下内容


[root@prometheus-work-beijing ~]# cat /etc/saslauthd.conf
ldap_servers: ldap://10.x1.14x.1x:389
ldap_bind_dn: CN=it_ldap,OU=ServiceAccount,DC=xxxu,DC=sh
ldap_bind_pw: xxxxxx
ldap_search_base: OU=xixxxhu-sh,DC=xixaxxshu,DC=sh
#ldap_filter: sAMAccountName=%s
ldap_filter: sAMAccountName=%u
ldap_password_attr: userPassword
[root@prometheus-work-beijing ~]# 

创建/etc/sasl2/svn.conf文件,写入以下内容

vim /etc/sasl2/svn.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
[root@prometheus-work-beijing ~]# cat /home/svn/svnserve.conf 
[general]
anon-access = none #匿名访问的权限,可以是read,write,none,默认为read
auth-access = write #使授权用户有写权限
password-db = passwd #密码数据库的路径
authz-db = authz #访问控制文件
realm = repo
[sasl]
use-sasl = true

修改SVN svnserve.conf 配置文件

我的SVN仓库地址为/opt/svn/repo,所以服务器配置文件路径为/home/svn/code/conf/svnserve.conf

启用如下配置
vim /home/svn/code/conf/svnserve.conf
use-sasl = true

重启saslauthd服务
systemctl restart saslauthd

centos7 安装svn +(if.svnadmin+apache)并配置ldap

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
List的Select 和Select().tolist()
List<PersondelpnewList<Person{newPerson{Id1,Name"小明1",Age11,Sign0},newPerson{Id2,Name"小明2",Age12,
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这