svn集成ldap

简介:

推荐 http://lansgg.blog.51cto.com/5675165/1844836 

使用CollabNetSubversionEdge  界面很好,很赞

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
https: / / downloads - guests. open .collab.net / files / documents / 61 / 17071 / CollabNetSubversionEdge - 5.2 . 0_linux - x86_64.tar.gz
useradd  - / opt / svnuser svnuser
echo  "xx"  |passwd  - - stdin svnuser
groupadd svn
usermod  - G svn svnuser
mkdir  / svn
chown svnuser.svnuser  / svn  - R
visudo
## Allow root to run any commands anywhere
root     ALL = ( ALL )        ALL
svnuser  ALL = ( ALL )        ALL
su  -  svnuser
cd  / svn /
tar xf CollabNetSubversionEdge - 5.1 . 3_linux - x86_64.tar.gz 
cd csvn /
bin / csvn start
http: / / 192.168 . 85.130 : 3343 / csvn / login / auth 
用户名、密码都是admin
 
svn是Subversion Edge执行用户svnuser所在的组
[root@vm2 svn] # chown root:svn /svn/csvn/lib/httpd_bind/httpd_bind
[root@vm2 svn] # chmod u+s /svn/csvn/lib/httpd_bind/httpd_bind
sudo  - bin / csvn install
 
如果本机没有X桌面,就需要通过网络访问。需要将localhost更改为Subversion Edge服务器的IP地址,同时设置防火墙来保证能够访问到。


以下用原始方法,svn+apache+ldap手动搭建


基本安装

使用web方式访问svn

svn集成ldap,先参照git集成ldap(这个之前做过)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
基本安装
svn版本 1.6 
 
yum  - y install subversion
mkdir  - / application / svndata
mkdir  - / application / svnpasswd
svnserve  - - / application / svndata /   启动
lsof  - i tcp: 3690
svnadmin create  / application / svndata / sadoc
ll  / application / svndata / sadoc /
配置允许用户solin读写访问
cd  / application / svndata / sadoc / conf /
/ bin / cp svnserve.conf svnserve.conf.solin$(date  + % F)
egrep  "\-access|\-db ="  svnserve.conf
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
[root@node - 005  conf] # egrep "\-access|\-db =" svnserve.conf
# anon-access = none   #不允许匿名访问
# auth-access = write  #允许可写
# password-db = /application/svnpasswd/passwd  #密码数据库,存放SVN吗
# authz-db = /application/svnpasswd/authz      #控制权限的数据库
[root@node - 005  conf] # egrep "\-access|\-db =" svnserve.conf
# anon-access = read
anon - access  =  none
# auth-access = write
auth - access  =  write
# password-db = passwd
password - db  =  / application / svnpasswd / passwd
# authz-db = authz
authz - db  =  / application / svnpasswd / authz
[root@node - 005  conf] # diff svnserve.conf.solin2017-04-20 svnserve.conf
12a13
> anon - access  =  none
13a15
> auth - access  =  write
20a23
> password - db  =  / application / svnpasswd / passwd
27a31
> authz - db  =  / application / svnpasswd / authz
配置authz、passwd证书文件
[root@node - 005  conf] # cp authz passwd /application/svnpasswd/
[root@node - 005  conf] # ll /application/svnpasswd/
总用量  8
- rw - r - - r - -  1  root root  1080  4 月   20  17 : 22  authz
- rw - r - - r - -  1  root root   309  4 月   20  17 : 22  passwd
[root@node - 005  conf] # chmod 700 /application/svnpasswd/*
[root@node - 005  conf] # ll /application/svnpasswd/
总用量  8
- rwx - - - - - -  1  root root  1080  4 月   20  17 : 22  authz
- rwx - - - - - -  1  root root   309  4 月   20  17 : 22  passwd
 
vi  / application / svnpasswd / authz
添加如下:
[groups]
bd_sa  =  solin,test
# [/foo/bar]
[sadoc: / ]
# [repository:/baz/fuz]
@bd_sa  =  rw
test1  =  r
 
vi  / application / svnpasswd / passwd
添加如下:
[users]
solin  =  bdyun
test  =  bdyun
 
pkill svnserve
svnserve  - - / application / svndata /



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
使用web方式访问svn
yum  - y install httpd httpd - devel
yum  - y install mod_dav_svn mod_auth_mysql 
vim  / etc / httpd / conf / httpd.conf
LoadModule dav_svn_module modules / mod_dav_svn.so
LoadModule authz_svn_module modules / mod_authz_svn.so
<Location  / home>
   DAV svn
   SVNPath  / var / www / html / svna / home
< / Location>
 
权限控制
htpasswd  - / etc / svnpwd / svnpwdfile svnpwduser01
mkdir  / etc / svnpwd
htpasswd  - / etc / svnpwd / svnpwdfile svnpwduser01
 
AuthType Basic
AuthName  "svn repos"
AuthUserFile  / etc / svnpwd / svnpwdfile
Require valid - user


svn集成ldap

我的svn是单独一台机器的,ldap一台机器


先参考以前git做的

cd /opt/git/gitlab/config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
cat gitlab.yml|grep  - "#"
 
production: &base
 
   gitlab:
     host: 内部域名
 
 
 
 
 
     email_from: example@example.com
     email_display_name: GitLab
     email_reply_to: noreply@example.com
 
 
 
 
     default_projects_features:
       issues: true
       merge_requests: true
       wiki: true
       snippets: false
 
 
 
   incoming_email:
     enabled: false
     address:  "incoming+%{key}@gitlab.example.com"
 
   gravatar:
 
 
   gitlab_ci:
 
 
 
   ldap:
     enabled: true
     servers:
         label:  'LDAP'
 
         host:  'ldap ip'
         port:  389
         uid:  'uid'
         bind_dn:  'cn=gitlab,ou=People,dc=xx,dc=com'
         password:  'gitlab密码'
           
         active_directory: false
 
         allow_username_or_email_login: true
 
         block_auto_created_users: false
 
         base:  'dc=xx,dc=com'
 
         user_filter: ''
 
         attributes:
           username: [ 'uid' 'userid' 'sAMAccountName' ]
           email:    [ 'mail' 'email' 'userPrincipalName' ]
 
           name:        'cn'
           first_name:  'givenName'
           last_name:   'sn'
 
 
 
   omniauth:
     enabled: false
 
 
     allow_single_sign_on: false
     block_auto_created_users: true
     auto_link_ldap_user: false
 
     providers:
 
 
 
 
 
   satellites:
     path:  / opt / git / gitlab - satellites /
     timeout:  30
 
   backup:
 
   gitlab_shell:
     path:  / opt / git / gitlab - shell /
 
     repos_path:  / opt / git / repositories /
     hooks_path:  / opt / git / gitlab - shell / hooks /
 
     secret_file:  / opt / git / gitlab / .gitlab_shell_secret
 
     upload_pack: true
     receive_pack: true
 
 
   git:
     bin_path:  / opt / soft / git / bin / git
     timeout:  100
 
 
   extra:
 
 
   rack_attack:
     git_basic_auth:
 
development:
   <<:  * base
 
test:
   <<:  * base
   gravatar:
     enabled: true
   gitlab:
     host: 内部域名
     port:  80
 
   satellites:
     path: tmp / tests / gitlab - satellites /
   backup:
     path: tmp / tests / backups
   gitlab_shell:
     path: tmp / tests / gitlab - shell /
     repos_path: tmp / tests / repositories /
     hooks_path: tmp / tests / gitlab - shell / hooks /
   issues_tracker:
     redmine:
       title:  "Redmine"
       project_url:  "http://redmine/projects/:issues_tracker_id"
       issues_url:  "http://redmine/:project_id/:issues_tracker_id/:id"
       new_issue_url:  "http://redmine/projects/:issues_tracker_id/issues/new"
   ldap:
     enabled: true
     servers:
       main:
         label: ldap
         host: ldap ip
         port:  389
         uid:  'uid'
         base:  'dc=xx,dc=com'
         user_filter: ''
         bind_dn:  'cn=xx,ou=People,dc=xx,dc=com'
         password:  'xx密码'
         admin_group: ''
         sync_ssh_keys: false
 
staging:
   <<:  * base

apache配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@cm1 conf.d] # cat subversion.conf |grep -v "#"
LoadModule dav_svn_module     modules / mod_dav_svn.so
LoadModule authz_svn_module   modules / mod_authz_svn.so
<Location  / svn / >
         DAV svn
         SVNListParentPath on
         SVNParentPath  / application / svndata
         AuthBasicAuthoritative on
         AuthType Basic
         AuthName  "svn"
         AuthBasicProvider ldap
         AuthzLDAPAuthoritative    off
         AuthLDAPURL     "ldap://ldap ip:389/ou=People,dc=xx,dc=com?uid?sub?(objectClass=*)"
         AuthLDAPBindDN  "cn=xx,ou=People,dc=xx,dc=com"
         AuthLDAPBindPassword  "xx密码"  #xx在ldap服务器上有本地用户
         AuthzSVNAccessFile  / etc / httpd / conf / svnauthz.conf
         Require valid - user
< / Location>
 
cat  / etc / httpd / conf / svnauthz.conf
[groups]
admin  =  one
[ / ]
@admin  =  rw
#[test:/]
two  =  r


最后权限的问题,不知道是否需要chown -R apache.apache /application/*



本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1934847,如需转载请自行联系原作者

相关文章
|
9月前
|
SQL HIVE 数据安全/隐私保护
Hive Impala和Hue集成LDAP
Hive Impala和Hue集成LDAP
166 0
idea集成svn、安装目录、无svn.exe、(有图具有说服力)
idea集成svn、安装目录、无svn.exe、(有图具有说服力)
138 0
idea集成svn、安装目录、无svn.exe、(有图具有说服力)
|
开发工具 git
|
XML 存储 SQL
【译】Clickhouse与LDAP集成(一)
【译】Clickhouse与LDAP集成(一)
306 0
|
数据安全/隐私保护
极限网关无缝集成ldap
本文目的为例验证极限网关和ldap之间的集成功能: 1. 直接访问网关,走ldap验证 2. kibana连接网关,走ldap验证
224 0
|
Java 数据库连接
HiveServer2集成LDAP做用户认证
HiveServer2支持多种认证方式,通过`hive.server2.authentication`参数来设置,包括`nosasl, none, ldap, kerberos, pam, custom` 本文介绍如何在E-MapReduce中使用LDAP配置HiveServer的认证。
6280 0
|
安全 网络安全 开发工具
LDAP落地实战(三):GitLab集成OpenLDAP认证
上一篇文章介绍了svn集成OpenLDAP认证,版本控制除了svn外,git目前也被越来越多的开发者所喜爱,本文将介绍GitLab如何集成openldap实现账号认证 GitLab集成OpenLDAP认证 修改配置文件gitlab.
2928 0
|
数据安全/隐私保护 Apache
LDAP落地实战(二):SVN集成OpenLDAP认证
上一篇文章我们介绍了LDAP的部署以及管理维护,那么如何接入LDAP实现账号统一认证呢?这篇文章将带你完成svn的接入验证 subversion集成OpenLDAP认证 系统环境:debian8.
1867 0
|
Android开发
IntelliJ Idea 集成svn 和使用
原文:IntelliJ Idea 集成svn 和使用 IntelliJ Idea 集成svn 和使用 开始使用IntelliJ Idea尝试了一下,虽然快捷键与eclipse 有些不同,但是强大的搜索功能与“漂亮的界面”(个人认为没有eclipse好看 ),还是值得我们去使用的。
4670 0
|
jenkins Java 持续交付
Jenkins 集成 maven svn 自动构建打包
  Jenkins 集成 maven svn 自动打包   0.准备工作 安装 详解 0.1安装 jdk 0.2 安装tomcat 0.3 安装maven 0.4 安装nexus 0.
1174 0